/* Composants éditoriaux communs aux écrans métier. */
.page:not(:has(.accueil-entete, .lecon, .guide-traitement)) {
  min-width: 0;
  padding-top: 3rem;
  padding-bottom: 5rem;
}

.page h1,
.page h2,
.page h3,
.page p,
.page dd,
.page li { overflow-wrap: anywhere; }

.page > .repere:first-child,
.page > p:first-child > .repere {
  margin-top: 0;
}

.page > .repere {
  margin-bottom: .55rem;
  font-size: .78rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.page > h1 {
  max-width: 58rem;
  font-size: clamp(2.7rem, 6vw, 4.8rem);
}

.page > .introduction {
  max-width: 48rem;
  margin-bottom: 2.25rem;
  font: italic 1.12rem/1.55 var(--serif);
}

.page > h2,
.page > section > h2,
.page > div > h2 {
  margin-top: 2.75rem;
  padding-top: .8rem;
  border-top: 1.5px solid var(--texte);
  font-size: 1.65rem;
}

.page > section:not(.messages, .urgent, .section-documents),
.page > aside:not(.dossier-compris),
.page > div.aide,
.page > div.alerte {
  max-width: 62rem;
}

.page > form:not(.navigation-deconnexion),
.page > section > form,
.page > article > form {
  max-width: 52rem;
  margin: 1.5rem 0;
  padding: 1.25rem 0 1.5rem;
  border-block: 1px solid var(--trait);
}

form > div + div { margin-top: .85rem; }
form p { max-width: 52rem; }
.helptext {
  display: block;
  margin-top: .3rem;
  color: var(--texte-secondaire);
  font-size: .86rem;
}
.errorlist {
  margin: .5rem 0;
  padding: .6rem .8rem .6rem 2rem;
  border-left: 4px solid var(--alerte);
  background: var(--alerte-fond);
}
fieldset {
  margin: 1.25rem 0;
  padding: 0;
  border: 0;
  border-top: 1.5px solid var(--texte);
}
legend {
  padding: .7rem .75rem .65rem 0;
  font: 600 1.2rem var(--serif);
}

.page input:not([type="checkbox"], [type="radio"], [type="submit"]):hover,
.page select:hover,
.page textarea:hover { border-color: var(--vert); }
.page textarea { min-height: 8rem; resize: vertical; }
.page input[type="file"] { min-height: 48px; padding: .55rem; }

.cartes {
  margin: 1.25rem 0 2rem;
  gap: 0;
  border-top: 1.5px solid var(--texte);
  border-left: 1.5px solid var(--texte);
}
.carte {
  display: flex;
  min-width: 0;
  min-height: 12rem;
  padding: 1.2rem;
  flex-direction: column;
  align-items: flex-start;
  border: 0;
  border-right: 1.5px solid var(--texte);
  border-bottom: 1.5px solid var(--texte);
  background: transparent;
}
.carte h2, .carte h3 {
  margin: 0 0 .6rem;
  font-size: 1.35rem;
}
.carte p { margin: .35rem 0; }
.carte .bouton, .carte .bouton-principal { margin-top: auto; }

.section-documents {
  margin: 2rem 0;
  padding: 1.5rem;
  border: 1.5px solid var(--texte);
  background: transparent;
}
.section-documents > h2 { margin-top: 0; padding-top: 0; border-top: 0; }
.section-documents .cartes { margin-bottom: .5rem; }
.carte-document { min-height: 20rem; }
.carte-document .liens-document { margin-top: .8rem; font-size: .88rem; }

.page article:not(.lecon) {
  max-width: 62rem;
  padding: 1rem 0 1.2rem;
  border-top: 1px solid var(--trait);
}
.page article:not(.lecon) h2,
.page article:not(.lecon) h3 { margin: 0 0 .45rem; }
.page article:not(.lecon) > :last-child { margin-bottom: 0; }

.page dl:not(.apercu-fiche dl) {
  max-width: 62rem;
  margin: 1.25rem 0 2rem;
  border-top: 1.5px solid var(--texte);
}
.page dl:not(.apercu-fiche dl) dt {
  margin: 0;
  padding: .8rem 0 .15rem;
  color: var(--texte-secondaire);
  font-size: .76rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.page dl:not(.apercu-fiche dl) dd {
  margin: 0;
  padding: 0 0 .8rem;
  border-bottom: 1px solid var(--trait);
  font-family: var(--serif);
  font-size: 1.08rem;
}

.page pre {
  max-width: 100%;
  padding: 1rem;
  overflow-x: auto;
  border: 1px solid var(--texte);
  background: var(--feuille);
  font: .88rem/1.5 ui-monospace, SFMono-Regular, Consolas, monospace;
}

.page .aide,
.page .alerte {
  margin: 1rem 0;
  padding: 1rem 1.1rem;
}
.page .aide h2, .page .alerte h2 { margin-top: 0; }
.page .aide > :last-child, .page .alerte > :last-child { margin-bottom: 0; }

.page details:not(.autres-fonctions, .pourquoi) {
  max-width: 62rem;
  margin: 1rem 0;
  padding: .7rem 0;
  border-block: 1px solid var(--trait);
}
.page details:not(.autres-fonctions, .pourquoi) summary {
  min-height: 44px;
  cursor: pointer;
  font-weight: 700;
}

.page--registre_rgpd > .actions,
.page--registre_ia > .actions {
  margin-bottom: 1.75rem;
  padding-bottom: 1rem;
  border-bottom: 1.5px solid var(--texte);
}
.page--registre_rgpd > article:not(.guide-traitement),
.page--registre_ia > article {
  display: grid;
  grid-template-columns: minmax(12rem, .8fr) minmax(0, 1.2fr);
  gap: 1.5rem;
}

.page--charte_ia > section,
.page--documents > section:not(.messages, .urgent, .section-documents),
.page--accuses > section {
  padding: 1.25rem 0;
  border-top: 1.5px solid var(--texte);
}
.page--charte_ia > section h2,
.page--documents > section h2,
.page--accuses > section h2 { margin-top: 0; }
.page--charte_ia > form {
  display: inline-block;
  width: min(100%, 32rem);
  margin-right: 1.5rem;
  vertical-align: top;
}
.page--charte_ia > .aide:last-child { margin-top: 2rem; }

.page--demandes_droits > .cartes,
.page--violations > .cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.page--demandes_droits article,
.page--violations article { position: relative; padding-left: 1.2rem; }
.page--demandes_droits article::before,
.page--violations article::before {
  position: absolute;
  left: 0;
  top: 1.35rem;
  width: .45rem;
  height: .45rem;
  border-radius: 50%;
  background: var(--vert-vif);
  content: "";
}

.page--cabinets .etape,
.page--revues > section,
.page--aipd > section,
.page--donnees > section {
  max-width: 62rem;
  padding: 1.2rem 0;
  border-top: 1.5px solid var(--texte);
}

.site--comptes .connexion {
  padding: 2rem;
  border: 1.5px solid var(--texte);
  background: var(--feuille);
  box-shadow: 10px 10px 0 var(--doux);
}
.site--comptes .connexion h1 { font-size: 3rem; }
.site--comptes .connexion form { padding-top: .5rem; border: 0; }

.site--publique .page,
.site--demandes_droits:not(:has(.site-header)) .page,
.site--accuses:not(:has(.site-header)) .page {
  max-width: 56rem;
}

@media (max-width: 899px) {
  .page:not(:has(.accueil-entete, .lecon, .guide-traitement)) {
    padding-top: 1.5rem;
    padding-bottom: 3rem;
  }
  .page > h1 { font-size: 2.45rem; }
  .page > .introduction { margin-bottom: 1.5rem; font-size: 1rem; }
  .page > h2,
  .page > section > h2,
  .page > div > h2 { margin-top: 2rem; font-size: 1.4rem; }
  .page > form:not(.navigation-deconnexion),
  .page > section > form,
  .page > article > form { width: 100%; margin: 1rem 0; }
  .cartes { grid-template-columns: 1fr; }
  .carte { min-height: 0; }
  .carte-document { min-height: 0; }
  .section-documents { padding: 1rem; }
  .page--registre_rgpd > article:not(.guide-traitement),
  .page--registre_ia > article { display: block; }
  .page--charte_ia > form { display: block; width: 100%; margin-right: 0; }
  .page--demandes_droits > .cartes,
  .page--violations > .cartes { grid-template-columns: 1fr; }
  .actions .bouton,
  .actions .bouton-principal,
  .actions .bouton-secondaire,
  .actions button { width: 100%; }
  .site--comptes .connexion { padding: 1.25rem; box-shadow: 6px 6px 0 var(--doux); }
}

@media (max-width: 420px) {
  .page > h1 { font-size: 2.15rem; }
  .page .bouton,
  .page .bouton-principal,
  .page .bouton-secondaire,
  .page button[type="submit"] { width: 100%; }
  .page .navigation-deconnexion button { width: auto; }
  .site--comptes .connexion { padding: 1rem; }
}
