/* ════════════════════════════════════════════════════════════
   Cabinet de Dissuasion Médicale — Dr Antoine Villard
   Registre visuel : papier administratif français, encre bleue,
   cachet rouge. Sérieux dans la forme, absurde dans le fond.
   ════════════════════════════════════════════════════════════ */

:root {
  --papier:      #f7f4ed;
  --papier-alt:  #efebe1;
  --papier-pur:  #fffdf8;
  --encre:       #1b2a4a;
  --encre-clair: #4a5b7d;
  --encre-pale:  #8d99b0;
  --cachet:      #a8243a;
  --cachet-pale: #d9a3ad;
  --or:          #9a7b3f;
  --trait:       #d6cfc0;
  --trait-fort:  #b9ae99;
  --vert:        #3f6b4a;

  --serif:  "Libre Baskerville", Georgia, "Times New Roman", serif;
  --sans:   "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono:   "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --max: 1080px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--papier);
  color: var(--encre);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.7;
  /* Grain de papier très léger, pour éviter le fond plat numérique. */
  background-image:
    radial-gradient(circle at 20% 30%, rgba(155,140,110,.035) 0 1px, transparent 1px),
    radial-gradient(circle at 70% 60%, rgba(155,140,110,.03) 0 1px, transparent 1px);
  background-size: 23px 23px, 31px 31px;
}

.wrap { max-width: var(--max); margin: 0 auto; padding: 0 1.5rem; }
.mono { font-family: var(--mono); font-size: .86em; letter-spacing: .01em; }

/* ─────────── Bandeau officiel ─────────── */
.bandeau-officiel {
  background: var(--encre);
  color: #cdd6e6;
  font-size: .76rem;
  letter-spacing: .04em;
  padding: .5rem 0;
  text-transform: uppercase;
}
.bandeau-officiel .wrap { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; }
.cocarde {
  width: 13px; height: 13px; border-radius: 50%; flex: 0 0 auto;
  background: conic-gradient(#2a4a8f 0 33.3%, #f2efe8 0 66.6%, var(--cachet) 0);
  box-shadow: 0 0 0 1px rgba(255,255,255,.35);
}

/* ─────────── En-tête ─────────── */
.entete {
  background: var(--papier-pur);
  border-bottom: 1px solid var(--trait);
  padding: 3rem 0 2.6rem;
  position: relative;
}
.entete::after {
  /* filet double, comme un en-tête de papier à lettre officiel */
  content: ""; position: absolute; left: 0; right: 0; bottom: 3px;
  height: 1px; background: var(--trait);
}
.entete-grid {
  display: grid; grid-template-columns: auto 1fr; gap: 2.2rem; align-items: start;
}
.blason-cercle {
  width: 104px; height: 104px; border-radius: 50%;
  border: 2px solid var(--encre);
  outline: 1px solid var(--encre); outline-offset: 4px;
  display: grid; place-items: center;
  background: var(--papier);
}
.blason-glyphe { font-size: 3rem; color: var(--encre); line-height: 1; }

.surtitre {
  font-family: var(--mono); font-size: .76rem; text-transform: uppercase;
  letter-spacing: .13em; color: var(--encre-pale); margin: 0 0 .5rem;
}
.entete h1 {
  font-family: var(--serif); font-weight: 700;
  font-size: clamp(2rem, 5.2vw, 3.1rem); line-height: 1.12;
  margin: 0 0 .5rem; letter-spacing: -.015em;
}
.sous-titre {
  font-family: var(--serif); font-size: 1.12rem; color: var(--encre-clair);
  margin: 0 0 1.4rem;
}
.devise {
  border-left: 3px solid var(--cachet);
  padding: .1rem 0 .1rem 1.1rem;
  font-family: var(--serif); font-style: italic;
  font-size: 1.04rem; color: var(--encre); margin: 0; max-width: 46ch;
}
.devise-attr {
  display: block; margin-top: .45rem;
  font-style: normal; font-family: var(--sans);
  font-size: .82rem; color: var(--encre-pale);
}

/* ─────────── Navigation ─────────── */
.navigation {
  background: var(--papier-alt);
  border-bottom: 1px solid var(--trait);
  position: sticky; top: 0; z-index: 20;
}
.navigation .wrap {
  display: flex; gap: .3rem; flex-wrap: wrap;
  overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.navigation a {
  color: var(--encre-clair); text-decoration: none;
  font-size: .84rem; font-weight: 500; letter-spacing: .02em;
  padding: .85rem .9rem; white-space: nowrap;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s, background .15s;
}
.navigation a:hover, .navigation a:focus-visible {
  color: var(--cachet); border-bottom-color: var(--cachet);
  background: rgba(168,36,58,.04); outline: none;
}

/* ─────────── Sections ─────────── */
.section { padding: 3.6rem 0; }
.section-alt { background: var(--papier-alt); border-block: 1px solid var(--trait); }
.section-avis { padding: 2.6rem 0 1rem; }

.section-num {
  font-family: var(--mono); font-size: .74rem; text-transform: uppercase;
  letter-spacing: .16em; color: var(--cachet); margin: 0 0 .5rem;
}
.section h2 {
  font-family: var(--serif); font-weight: 700;
  font-size: clamp(1.5rem, 3.4vw, 2.1rem); line-height: 1.2;
  margin: 0 0 .9rem; letter-spacing: -.01em;
}
.section h2 .th { font-weight: 400; font-style: italic; color: var(--encre-pale); font-size: .7em; }
.chapeau {
  font-family: var(--serif); font-size: 1.06rem; color: var(--encre-clair);
  max-width: 62ch; margin: 0 0 2.2rem;
}

/* ─────────── Encart d'avis ─────────── */
.encart-avis {
  background: var(--papier-pur);
  border: 1px solid var(--trait-fort);
  border-left: 4px solid var(--cachet);
  padding: 1.6rem 1.8rem;
  box-shadow: 2px 2px 0 rgba(27,42,74,.05);
}
.encart-titre {
  font-family: var(--mono); font-size: .74rem; text-transform: uppercase;
  letter-spacing: .14em; color: var(--cachet); margin: 0 0 .7rem;
}
.encart-avis p:last-child { margin-bottom: 0; }

/* ─────────── Grilles / cartes ─────────── */
.grille-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); gap: 1.3rem; }
.grille-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.6rem; align-items: start; }

.carte {
  background: var(--papier-pur);
  border: 1px solid var(--trait);
  padding: 1.5rem 1.4rem;
  position: relative;
}
.carte-ico { font-size: 1.7rem; display: block; margin-bottom: .6rem; filter: saturate(.55); }
.carte h3 {
  font-family: var(--serif); font-size: 1.14rem; margin: 0 0 .6rem; line-height: 1.25;
}
.carte p { margin: 0; font-size: .95rem; color: var(--encre-clair); }

/* ─────────── Chiffres ─────────── */
.chiffres {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1px; margin-top: 2.4rem;
  background: var(--trait); border: 1px solid var(--trait);
}
.chiffre { background: var(--papier-pur); padding: 1.5rem 1rem; text-align: center; }
.chiffre-val {
  display: block; font-family: var(--serif); font-weight: 700;
  font-size: 2.5rem; line-height: 1; color: var(--cachet);
  font-variant-numeric: tabular-nums;
}
.chiffre-lib {
  display: block; margin-top: .6rem; font-size: .82rem;
  color: var(--encre-clair); line-height: 1.45;
}
.note-chiffres {
  font-size: .82rem; color: var(--encre-pale); font-style: italic;
  margin: .9rem 0 0;
}

/* ─────────── Borne d'auto-diagnostic ─────────── */
.borne { max-width: 720px; }
.borne-ecran {
  background: var(--encre);
  color: #e8edf6;
  border: 1px solid #0e1830;
  border-radius: 4px;
  box-shadow: 0 10px 28px rgba(27,42,74,.18), inset 0 1px 0 rgba(255,255,255,.06);
  overflow: hidden;
}
.borne-entete {
  display: flex; align-items: center; gap: .6rem;
  padding: .65rem 1.1rem;
  background: rgba(255,255,255,.05);
  border-bottom: 1px solid rgba(255,255,255,.1);
  color: var(--encre-pale);
}
.borne-led {
  width: 8px; height: 8px; border-radius: 50%; background: #5fd08a;
  box-shadow: 0 0 7px #5fd08a; animation: pouls 2.4s ease-in-out infinite;
}
@keyframes pouls { 0%,100% { opacity: 1 } 50% { opacity: .35 } }

#borne-contenu { padding: 1.8rem 1.6rem; min-height: 240px; }
.borne-question {
  font-family: var(--serif); font-size: 1.22rem; line-height: 1.45;
  margin: 0 0 1.5rem; color: #fff;
}
.borne-options { display: grid; gap: .6rem; }
.borne-opt {
  display: block; width: 100%; text-align: left;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16);
  color: #dde4f0;
  font-family: var(--sans); font-size: .96rem;
  padding: .8rem 1rem; border-radius: 3px; cursor: pointer;
  transition: background .15s, border-color .15s, transform .1s;
}
.borne-opt:hover, .borne-opt:focus-visible {
  background: rgba(255,255,255,.13); border-color: var(--cachet-pale);
  outline: none; transform: translateX(3px);
}
.borne-pied {
  display: flex; align-items: center; gap: 1rem;
  padding: .7rem 1.1rem; background: rgba(0,0,0,.2);
  border-top: 1px solid rgba(255,255,255,.08);
  color: var(--encre-pale);
}
.borne-progres {
  flex: 1; height: 4px; background: rgba(255,255,255,.12); border-radius: 2px; overflow: hidden;
}
.borne-progres span {
  display: block; height: 100%; width: 20%;
  background: var(--cachet-pale); transition: width .35s ease;
}

/* Verdict */
.verdict-tampon {
  border: 3px double var(--cachet-pale);
  color: #fff;
  padding: 1.1rem 1.2rem; margin: 0 0 1.2rem;
  text-align: center; transform: rotate(-1.4deg);
  background: rgba(168,36,58,.16);
}
.verdict-tampon strong {
  display: block; font-family: var(--serif); font-size: 1.4rem;
  letter-spacing: .04em; text-transform: uppercase; line-height: 1.2;
}
.verdict-tampon span {
  display: block; margin-top: .35rem; font-family: var(--mono); font-size: .74rem;
  letter-spacing: .1em; color: var(--cachet-pale);
}
.verdict-texte { font-size: .98rem; color: #d3dbe9; margin: 0 0 1.4rem; }
.verdict-texte strong { color: #fff; }

.bouton {
  background: var(--cachet); color: #fff; border: none;
  font-family: var(--sans); font-size: .9rem; font-weight: 600;
  letter-spacing: .02em; padding: .7rem 1.3rem; border-radius: 3px;
  cursor: pointer; transition: background .15s, transform .1s;
}
.bouton:hover, .bouton:focus-visible { background: #8c1c30; outline: none; transform: translateY(-1px); }
.bouton-fantome {
  background: transparent; color: #cfd8e8;
  border: 1px solid rgba(255,255,255,.3);
}
.bouton-fantome:hover { background: rgba(255,255,255,.08); color: #fff; }

/* ─────────── Barème ─────────── */
.bareme {
  width: 100%; border-collapse: collapse; background: var(--papier-pur);
  border: 1px solid var(--trait-fort); font-size: .94rem;
}
.bareme th {
  background: var(--encre); color: #dfe6f2; text-align: left;
  font-size: .76rem; text-transform: uppercase; letter-spacing: .1em;
  font-weight: 600; padding: .8rem 1rem;
}
.bareme td { padding: .95rem 1rem; border-top: 1px solid var(--trait); vertical-align: top; }
.bareme tr:nth-child(even) td { background: rgba(27,42,74,.018); }
.bareme td:nth-child(2) { font-family: var(--serif); font-style: italic; color: var(--encre-clair); }

.niv {
  display: inline-block; font-family: var(--mono); font-size: .72rem;
  letter-spacing: .06em; padding: .22rem .5rem; border-radius: 2px;
  white-space: nowrap; font-weight: 500;
}
.niv-1 { background: #e4ede4; color: var(--vert); border: 1px solid #c2d6c4; }
.niv-2 { background: #e9ecf4; color: var(--encre-clair); border: 1px solid #ccd4e4; }
.niv-3 { background: #f4efdf; color: var(--or); border: 1px solid #e0d3ae; }
.niv-4 { background: #f7e7d6; color: #a35a1e; border: 1px solid #e8cbab; }
.niv-5 { background: var(--cachet); color: #fff; border: 1px solid var(--cachet); }

/* ─────────── Horaires ─────────── */
.horaires {
  width: 100%; border-collapse: collapse;
  background: var(--papier-pur); border: 1px solid var(--trait-fort); font-size: .95rem;
}
.horaires td { padding: .72rem 1rem; border-top: 1px solid var(--trait); }
.horaires tr:first-child td { border-top: none; }
.horaires td:first-child {
  font-family: var(--mono); font-size: .8rem; text-transform: uppercase;
  letter-spacing: .06em; color: var(--encre-pale); width: 8.5rem; white-space: nowrap;
}
.encart-lateral {
  background: var(--papier-pur); border: 1px solid var(--trait);
  border-top: 3px solid var(--encre); padding: 1.4rem 1.5rem;
}
.encart-lateral p { font-size: .93rem; color: var(--encre-clair); }
.encart-lateral p:last-child { margin-bottom: 0; }

/* ─────────── Ordonnance ─────────── */
.ordonnance {
  background: var(--papier-pur);
  border: 1px solid var(--trait-fort);
  max-width: 700px; margin: 0 auto;
  padding: 2rem 2.2rem;
  box-shadow: 3px 3px 0 rgba(27,42,74,.06), 0 8px 24px rgba(27,42,74,.07);
  position: relative;
}
/* cachet « VU » en filigrane */
.ordonnance::before {
  content: "SANS VALEUR";
  position: absolute; top: 45%; left: 50%;
  transform: translate(-50%,-50%) rotate(-19deg);
  font-family: var(--serif); font-weight: 700; font-size: clamp(2rem, 6vw, 3.4rem);
  color: rgba(168,36,58,.09); letter-spacing: .1em;
  pointer-events: none; white-space: nowrap; user-select: none;
  border: 4px solid rgba(168,36,58,.09); padding: .3rem 1.2rem; border-radius: 6px;
}
.ordo-entete { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.ordo-nom {
  font-family: var(--serif); font-weight: 700; font-size: 1.12rem; margin: 0 0 .2rem;
  letter-spacing: .02em;
}
.ordo-qual { margin: 0; font-size: .82rem; color: var(--encre-pale); line-height: 1.5; }
.ordo-date { margin: 0; color: var(--encre-clair); }
.ordonnance hr { border: none; border-top: 1px solid var(--trait); margin: 1.3rem 0; }

.ordo-liste { list-style: none; margin: 0; padding: 0; position: relative; }
.ordo-liste li {
  display: grid; grid-template-columns: 1.8rem 1fr; gap: .4rem;
  font-size: .96rem; margin-bottom: 1rem; color: var(--encre-clair);
}
/* Le texte doit être UN seul item de grille : sans ce conteneur, le
   <strong> occupe la colonne 2 et le reste de la phrase tombe dans une
   3e colonne implicite, soit un mot par ligne. */
.ordo-corps { min-width: 0; }
.ordo-liste li:last-child { margin-bottom: 0; }
.ordo-puce { font-family: var(--mono); color: var(--cachet); font-weight: 500; }
.ordo-liste strong { color: var(--encre); }

.ordo-pied { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; flex-wrap: wrap; }
.ordo-pied .mono { color: var(--encre-pale); margin: 0; }
.ordo-signature {
  font-family: var(--serif); font-style: italic; font-size: 1.5rem;
  color: var(--encre); margin: 0; transform: rotate(-3deg); opacity: .78;
}

/* ─────────── FAQ ─────────── */
.faq { max-width: 760px; }
.faq details {
  background: var(--papier-pur); border: 1px solid var(--trait);
  margin-bottom: .6rem; padding: 0;
}
.faq summary {
  cursor: pointer; padding: .95rem 1.2rem;
  font-family: var(--serif); font-size: 1.03rem; font-weight: 700;
  list-style: none; position: relative; padding-right: 2.8rem;
  transition: color .15s;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; position: absolute; right: 1.1rem; top: 50%;
  transform: translateY(-50%); font-family: var(--mono); font-size: 1.3rem;
  color: var(--cachet); font-weight: 400; line-height: 1;
}
.faq details[open] summary::after { content: "−"; }
.faq summary:hover { color: var(--cachet); }
.faq details p {
  margin: 0; padding: 0 1.2rem 1.2rem;
  font-size: .95rem; color: var(--encre-clair);
}

/* ─────────── Citation finale ─────────── */
.section-final { background: var(--encre); color: #dde4f0; padding: 4rem 0; }
.citation-finale { margin: 0; text-align: center; }
.citation-finale p {
  font-family: var(--serif); font-style: italic;
  font-size: clamp(1.1rem, 2.6vw, 1.45rem); line-height: 1.65;
  margin: 0 0 1.2rem; color: #fff;
}
.citation-finale cite {
  font-family: var(--mono); font-style: normal; font-size: .8rem;
  letter-spacing: .1em; text-transform: uppercase; color: var(--encre-pale);
}

/* ─────────── Pied ─────────── */
.pied {
  background: var(--papier-alt); border-top: 1px solid var(--trait);
  padding: 2.8rem 0 2rem; font-size: .89rem; color: var(--encre-clair);
}
.pied-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1.8rem; margin-bottom: 2rem;
}
.pied-titre {
  font-family: var(--mono); font-size: .74rem; text-transform: uppercase;
  letter-spacing: .12em; color: var(--encre); margin: 0 0 .6rem;
}
.pied p { margin: 0 0 .4rem; }
.pied-legal {
  border-top: 1px solid var(--trait); padding-top: 1.4rem; margin: 0;
  font-size: .8rem; color: var(--encre-pale); max-width: 78ch;
}

/* ─────────── Responsive ─────────── */
@media (max-width: 720px) {
  body { font-size: 16px; }
  .entete { padding: 2.2rem 0 2rem; }
  .entete-grid { grid-template-columns: 1fr; gap: 1.4rem; }
  .blason-cercle { width: 78px; height: 78px; }
  .blason-glyphe { font-size: 2.2rem; }
  .section { padding: 2.6rem 0; }
  .ordonnance { padding: 1.5rem 1.2rem; }
  .bareme { font-size: .88rem; }
  .bareme td, .bareme th { padding: .7rem .6rem; }
  .navigation .wrap { flex-wrap: nowrap; }
}

/* ─────────── Impression : seule l'ordonnance sort ─────────── */
@media print {
  body { background: #fff; }
  .bandeau-officiel, .navigation, .pied, .section-final,
  .section-avis, #mission, #autodiagnostic, #bareme, #horaires, #faq,
  .entete, #btn-imprimer, .note-chiffres, .section-num, .chapeau { display: none !important; }
  #ordonnance { padding: 0; }
  #ordonnance h2 { display: none; }
  .ordonnance { box-shadow: none; border: 1px solid #999; max-width: 100%; }
}

/* ─────────── Mouvement réduit ─────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ════════════════════════════════════════════════════════════
   PAGES INTÉRIEURES
   ════════════════════════════════════════════════════════════ */

.entete-page { padding: 2.4rem 0 2rem; }
.entete-page h1 { font-size: clamp(1.7rem, 4.4vw, 2.6rem); margin-bottom: .4rem; }
.entete-page .sous-titre { margin-bottom: 0; max-width: 60ch; }
.fil { color: var(--encre-pale); text-decoration: none; border-bottom: 1px dotted var(--trait-fort); }
.fil:hover { color: var(--cachet); border-bottom-color: var(--cachet); }
.navigation a.actif { color: var(--cachet); border-bottom-color: var(--cachet); background: rgba(168,36,58,.05); }
.lien-pied { color: var(--encre-clair); text-decoration: none; border-bottom: 1px solid var(--trait-fort); }
.lien-pied:hover { color: var(--cachet); border-bottom-color: var(--cachet); }

.bouton-sombre { background: var(--encre); }
.bouton-sombre:hover { background: #10203f; }
.bouton:disabled { opacity: .5; cursor: not-allowed; transform: none; }

/* ─────────── Salle d'attente : écran d'appel ─────────── */
.ecran-appel {
  background: var(--encre); border-radius: 4px; overflow: hidden;
  box-shadow: 0 10px 28px rgba(27,42,74,.18);
  max-width: 780px; margin: 0 auto 1.4rem;
}
.ecran-appel-grille {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1px; background: rgba(255,255,255,.1);
}
.appel-bloc { background: var(--encre); padding: 1.4rem 1rem; text-align: center; }
.appel-bloc-vous { background: #16274a; }
.appel-lib {
  font-family: var(--mono); font-size: .68rem; text-transform: uppercase;
  letter-spacing: .12em; color: var(--encre-pale); margin: 0 0 .5rem;
}
.appel-num {
  font-family: var(--serif); font-weight: 700; font-size: 2.1rem;
  color: #fff; margin: 0; line-height: 1; font-variant-numeric: tabular-nums;
}
.appel-bloc-vous .appel-num { color: var(--cachet-pale); }
.appel-num-petit { font-size: 1.5rem; }
.appel-barre { height: 5px; background: rgba(255,255,255,.1); }
.appel-barre span {
  display: block; height: 100%; width: 2%;
  background: var(--cachet-pale); transition: width .6s ease;
}
.appel-etat {
  margin: 0; padding: .9rem 1.2rem; text-align: center;
  color: #c3cddf; background: rgba(0,0,0,.2); font-size: .82rem;
  min-height: 2.6rem; display: grid; place-items: center;
}
.appel-actions {
  display: flex; gap: .7rem; justify-content: center; flex-wrap: wrap;
  padding: 1.1rem; background: rgba(0,0,0,.28);
}

/* ─────────── Revues & portraits ─────────── */
.revue {
  background: var(--papier-pur); border: 1px solid var(--trait);
  border-top: 3px solid var(--or); padding: 1.3rem 1.3rem;
}
.revue-date { color: var(--encre-pale); margin: 0 0 .4rem; letter-spacing: .08em; text-transform: uppercase; font-size: .7rem; }
.revue h3 { font-family: var(--serif); font-size: 1.08rem; margin: 0 0 .55rem; line-height: 1.25; }
.revue p { margin: 0; font-size: .92rem; color: var(--encre-clair); }

.portrait {
  background: var(--papier-pur); border: 1px solid var(--trait);
  padding: 1.3rem 1.4rem; display: grid;
  grid-template-columns: auto 1fr; gap: .3rem 1rem; align-items: start;
}
.portrait-ico { font-size: 1.7rem; grid-row: span 2; line-height: 1; filter: saturate(.6); }
.portrait h3 { font-family: var(--serif); font-size: 1.06rem; margin: 0 0 .4rem; line-height: 1.25; }
.portrait p { margin: 0; font-size: .92rem; color: var(--encre-clair); grid-column: 2; }

/* ─────────── Jeudi : compteur ─────────── */
.jeudi-compteur {
  background: var(--encre); color: #fff; border-radius: 4px;
  padding: 2.2rem 1.5rem; text-align: center; max-width: 720px; margin: 0 auto;
  box-shadow: 0 10px 28px rgba(27,42,74,.18);
}
.jeudi-lib {
  font-size: .72rem; text-transform: uppercase; letter-spacing: .16em;
  color: var(--cachet-pale); margin: 0 0 .9rem;
}
.jeudi-valeur {
  font-family: var(--serif); font-weight: 700;
  font-size: clamp(1.6rem, 5.4vw, 2.9rem); line-height: 1.1; margin: 0;
  font-variant-numeric: tabular-nums; letter-spacing: .01em;
}
.jeudi-note {
  margin: 1rem auto 0; max-width: 52ch; font-size: .9rem;
  color: #c3cddf; line-height: 1.6;
}

/* ─────────── Article scientifique ─────────── */
.article-sci {
  background: var(--papier-pur); border: 1px solid var(--trait-fort);
  padding: 1.8rem 2rem; max-width: 760px;
}
.sci-auteurs { font-family: var(--serif); font-size: 1rem; margin: 0 0 .3rem; letter-spacing: .06em; }
.sci-exp { font-size: .7em; vertical-align: super; color: var(--cachet); }
.sci-affil { font-size: .8rem; color: var(--encre-pale); margin: 0 0 1.4rem; line-height: 1.5; }
.sci-abstract { border-top: 1px solid var(--trait); padding-top: 1.2rem; }
.sci-abstract p { font-size: .95rem; margin: 0 0 .9rem; color: var(--encre-clair); }
.sci-abstract p:last-child { margin-bottom: 0; }
.sci-abstract strong { color: var(--encre); }

/* ─────────── Hypothèses ─────────── */
.hypotheses { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.2rem; }
.hypothese { background: var(--papier-pur); border: 1px solid var(--trait); padding: 1.4rem 1.4rem; }
.hypo-num { color: var(--cachet); font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 .4rem; }
.hypothese h3 { font-family: var(--serif); font-size: 1.08rem; margin: 0 0 .6rem; }
.hypothese p { font-size: .93rem; color: var(--encre-clair); margin: 0 0 .7rem; }
.hypo-verdict { font-size: .85rem !important; margin: 0 !important; }
.etiq {
  display: inline-block; font-family: var(--mono); font-size: .72rem;
  padding: .18rem .5rem; border-radius: 2px; letter-spacing: .04em;
}
.etiq-vert   { background: #e4ede4; color: var(--vert);  border: 1px solid #c2d6c4; }
.etiq-rouge  { background: #f7e0e4; color: var(--cachet); border: 1px solid #e6bcc4; }
.etiq-orange { background: #f7e7d6; color: #a35a1e; border: 1px solid #e8cbab; }

/* ─────────── Traducteur ─────────── */
.traducteur {
  display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.2rem;
  align-items: start; max-width: 940px;
}
.trad-col { min-width: 0; }
.trad-lib { color: var(--encre-pale); text-transform: uppercase; letter-spacing: .12em; font-size: .7rem; margin: 0 0 .5rem; }
.trad-champ {
  width: 100%; font-family: var(--serif); font-size: 1rem; line-height: 1.6;
  padding: .9rem 1rem; border: 1px solid var(--trait-fort); border-radius: 3px;
  background: var(--papier-pur); color: var(--encre); resize: vertical;
}
.trad-champ:focus { outline: none; border-color: var(--cachet); box-shadow: 0 0 0 3px rgba(168,36,58,.1); }
/* Alignée sur le champ de saisie (hauteur du libellé + ~1/3 du champ),
   et non centrée sur la colonne entière : les puces d'exemples rendent
   la colonne de gauche bien plus haute que celle de droite. */
.trad-fleche { font-size: 1.6rem; color: var(--trait-fort); align-self: start; padding-top: 3.6rem; }
.trad-sortie {
  background: var(--encre); color: #e8edf6; border-radius: 3px;
  padding: 1.1rem 1.2rem; min-height: 7.4rem;
}
.trad-vide { color: var(--encre-pale); font-style: italic; margin: 0; font-size: .92rem; }
.trad-item { border-bottom: 1px solid rgba(255,255,255,.1); padding-bottom: .9rem; margin-bottom: .9rem; }
.trad-item:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.trad-texte { font-family: var(--serif); font-size: 1rem; line-height: 1.55; margin: 0 0 .4rem; color: #fff; }
.trad-note { font-size: .8rem; color: var(--encre-pale); margin: 0; line-height: 1.5; }
.trad-suggestions { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .8rem; }
.trad-sug {
  font-family: var(--sans); font-size: .78rem; color: var(--encre-clair);
  background: var(--papier-pur); border: 1px solid var(--trait);
  padding: .35rem .65rem; border-radius: 99px; cursor: pointer;
  transition: border-color .15s, color .15s;
}
.trad-sug:hover { border-color: var(--cachet); color: var(--cachet); }

/* ─────────── Lexique ─────────── */
.lexique { margin: 0; max-width: 800px; }
.lex-entree {
  background: var(--papier-pur); border: 1px solid var(--trait);
  border-left: 3px solid var(--encre); padding: 1.1rem 1.3rem; margin-bottom: .7rem;
}
.lex-entree dt { font-family: var(--serif); font-weight: 700; font-size: 1.02rem; margin-bottom: .45rem; }
.lex-entree dd { margin: 0; font-size: .93rem; color: var(--encre-clair); }

/* ─────────── Formulaires ─────────── */
.form-dossier, .form-plainte { max-width: 640px; }
.form-lib {
  display: block; font-family: var(--mono); font-size: .74rem;
  text-transform: uppercase; letter-spacing: .1em; color: var(--encre-clair); margin-bottom: .5rem;
}
.form-note { text-transform: none; letter-spacing: 0; color: var(--encre-pale); }
.form-ligne { display: flex; gap: .6rem; flex-wrap: wrap; }
.form-champ {
  flex: 1 1 200px; font-family: var(--sans); font-size: 1rem;
  padding: .7rem .9rem; border: 1px solid var(--trait-fort); border-radius: 3px;
  background: var(--papier-pur); color: var(--encre);
}
.form-champ:focus { outline: none; border-color: var(--cachet); box-shadow: 0 0 0 3px rgba(168,36,58,.1); }
select.form-champ { width: 100%; }
textarea.form-champ { width: 100%; resize: vertical; }
.form-aide { font-size: .82rem; color: var(--encre-pale); margin: .5rem 0 0; font-style: italic; }
.form-bloc { margin-bottom: 1.5rem; }
.cases { display: grid; gap: .5rem; }
.case {
  display: flex; gap: .6rem; align-items: flex-start;
  background: var(--papier-pur); border: 1px solid var(--trait);
  padding: .65rem .85rem; font-size: .93rem; cursor: pointer;
  transition: border-color .15s;
}
.case:hover { border-color: var(--trait-fort); }
.case input { margin-top: .25rem; accent-color: var(--cachet); flex: 0 0 auto; }

/* ─────────── Fiche patient ─────────── */
.fiche {
  background: var(--papier-pur); border: 1px solid var(--trait-fort);
  max-width: 720px; padding: 1.8rem 2rem; margin-top: 2rem;
  box-shadow: 3px 3px 0 rgba(27,42,74,.06), 0 8px 24px rgba(27,42,74,.07);
}
.fiche-entete { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.fiche-nom { font-family: var(--serif); font-weight: 700; font-size: 1.5rem; margin: 0 0 .2rem; text-transform: capitalize; }
.fiche-sub { font-family: var(--mono); font-size: .76rem; color: var(--encre-pale); margin: 0; }
.fiche-tampon {
  border: 2px solid var(--cachet); color: var(--cachet);
  font-family: var(--mono); font-size: .7rem; letter-spacing: .1em;
  padding: .35rem .7rem; transform: rotate(-3deg); white-space: nowrap;
}
.fiche-stats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 1px; background: var(--trait); border: 1px solid var(--trait);
  margin: 1.5rem 0;
}
.fiche-stat { background: var(--papier); padding: .9rem .6rem; text-align: center; }
.fiche-stat-val {
  display: block; font-family: var(--serif); font-weight: 700;
  font-size: 1.5rem; color: var(--cachet); line-height: 1;
}
.fiche-stat-lib { display: block; margin-top: .4rem; font-size: .72rem; color: var(--encre-clair); line-height: 1.4; }
.fiche-bloc { border-top: 1px solid var(--trait); padding-top: 1rem; margin-bottom: 1rem; }
.fiche-bloc-titre {
  color: var(--cachet); text-transform: uppercase; letter-spacing: .1em;
  font-size: .7rem; margin: 0 0 .5rem;
}
.fiche-bloc p { margin: 0; font-size: .94rem; color: var(--encre-clair); }
.fiche-liste { margin: 0; padding-left: 1.1rem; font-size: .94rem; color: var(--encre-clair); }
.fiche-liste li { margin-bottom: .3rem; }
.fiche-pied {
  border-top: 1px solid var(--trait); padding-top: .9rem; margin: 1.2rem 0 0;
  color: var(--encre-pale); font-size: .72rem; line-height: 1.5;
}

/* ─────────── Récépissé de plainte ─────────── */
.recu {
  background: var(--papier-pur); border: 1px solid var(--trait-fort);
  border-top: 4px solid var(--cachet);
  max-width: 640px; padding: 1.7rem 1.9rem; margin-top: 2rem;
  box-shadow: 0 8px 24px rgba(27,42,74,.08);
}
.recu-titre { font-family: var(--serif); font-weight: 700; font-size: 1.25rem; margin: 0 0 .3rem; }
.recu-num { color: var(--encre-pale); margin: 0 0 1.3rem; }
.recu-ligne {
  display: grid; grid-template-columns: 11rem 1fr; gap: .5rem;
  padding: .6rem 0; border-top: 1px solid var(--trait); font-size: .93rem;
}
.recu-lib { font-family: var(--mono); font-size: .74rem; text-transform: uppercase; letter-spacing: .07em; color: var(--encre-pale); padding-top: .15rem; }
.recu-val { color: var(--encre-clair); }
.recu-faits { margin: .2rem 0 .6rem 11.5rem; padding-left: 1rem; font-size: .89rem; color: var(--encre-clair); }
.recu-faits li { margin-bottom: .25rem; }
.recu-verdict {
  background: var(--papier-alt); border-left: 3px solid var(--cachet);
  padding: 1rem 1.2rem; margin: 1.2rem 0 0;
}
.recu-verdict strong {
  display: block; font-family: var(--mono); font-size: .72rem;
  text-transform: uppercase; letter-spacing: .1em; color: var(--cachet); margin-bottom: .4rem;
}
.recu-verdict p { margin: 0; font-family: var(--serif); font-size: 1rem; }
.recu-pied { color: var(--encre-pale); font-size: .74rem; margin: 1.2rem 0 0; line-height: 1.5; }

/* ─────────── Responsive pages intérieures ─────────── */
@media (max-width: 720px) {
  .traducteur { grid-template-columns: 1fr; }
  .trad-fleche { transform: rotate(90deg); padding: 0; justify-self: center; }
  .recu-ligne { grid-template-columns: 1fr; gap: .2rem; }
  .recu-faits { margin-left: 0; }
  .fiche { padding: 1.4rem 1.2rem; }
  .article-sci { padding: 1.3rem 1.2rem; }
  .portrait { grid-template-columns: 1fr; }
  .portrait-ico { grid-row: auto; }
  .portrait p { grid-column: 1; }
}

/* ─────────── Cartes de service (accueil) ─────────── */
.service {
  display: flex; flex-direction: column;
  background: var(--papier-pur); border: 1px solid var(--trait);
  padding: 1.5rem 1.4rem; text-decoration: none; color: inherit;
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
a.service:hover, a.service:focus-visible {
  border-color: var(--cachet); transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(27,42,74,.09); outline: none;
}
.service-ico { font-size: 1.7rem; display: block; margin-bottom: .6rem; filter: saturate(.55); }
.service h3 { font-family: var(--serif); font-size: 1.1rem; margin: 0 0 .6rem; line-height: 1.25; }
.service p { margin: 0 0 1rem; font-size: .93rem; color: var(--encre-clair); flex: 1; }
.service-lien {
  font-family: var(--mono); font-size: .76rem; letter-spacing: .04em;
  color: var(--cachet); font-weight: 500;
}
.service-inactif { opacity: .62; }
.service-inactif .service-lien { color: var(--encre-pale); }
