/*
Theme Name: Docteur du Corps
Theme URI: https://karadocteur.fr/
Author: Docteur du Corps
Description: Habillage ecrit a la main pour karadocteur.fr — annuaire local sante, sport et bien-etre. Parti pris : le cabinet clair. Serif humaniste (Newsreader) en titre quand toute la niche est en sans-serif, vert de pharmacie sourd (#6a4a9c) quand toute la niche est en bleu/teal, safran uniquement en semantique. Procedes propres au site : barre de prudence, moteur metier+ville pleine largeur, grille des villes couvertes, triptyque de fiches, tuiles chiffrees comptees, fiche pratique collante. Ne pas reutiliser sur un autre site du parc.
Version: 1.0
Text Domain: docteur-du-corps
*/

/* =====================================================================================
   1. JETONS — la palette est CHOISIE, aucun gris pur, aucun blanc pur en fond.
   Contrastes verifies sur le fond lin #F4F1EA :
     encre #171a1c ~ 15:1 · encre douce #4A5A52 ~ 6,5:1 · accent #6a4a9c ~ 5,6:1
     safran #8F5514 ~ 5,3:1 · blanc sur accent ~ 6,3:1
   ===================================================================================== */
:root{
  color-scheme: light;
  --lin:#F4F1EA;          /* fond de page : lin chaud, jamais #FFF */
  --surf:#FFFFFF;         /* surface de carte */
  --surf2:#FBF9F5;        /* surface secondaire */
  --encre:#171a1c;        /* vert-noir, jamais #000 */
  --douce:#4A5A52;        /* encre secondaire */
  --accent:#6a4a9c;       /* vert de pharmacie, SEUL accent de marque */
  --accent-fort:#20503A;
  --halo:#DFEAE1;         /* aplat d'accent tres dilue */
  --safran:#8F5514;       /* semantique uniquement (a savoir, prudence) */
  --safran-halo:#F3E7D5;
  --ligne:#DDD7C9;
  --ombre:0 1px 0 var(--ligne);
  --rayon:14px;
  --rayon-s:8px;
  --titre:"Newsreader",Georgia,"Times New Roman",serif;
  --corps:"Cabin","Segoe UI",system-ui,-apple-system,sans-serif;
  --pas:clamp(2.6rem,5vw,4.6rem);
  --gout:clamp(1rem,3vw,1.6rem);
}
/* etat 2 : aucun choix pose, le systeme decide */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --lin:#0F1714; --surf:#182421; --surf2:#131D1A;
    --encre:#eef0f1; --douce:#A7B7AE;
    --accent:#6FBF98; --accent-fort:#8FD3B0; --halo:#1E3229;
    --safran:#E0AC6A; --safran-halo:#2C2317;
    --ligne:#2A3833;
  }
}
/* etat 3 : choix explicite, il gagne dans les deux sens */
:root[data-theme="dark"]{
  color-scheme: dark;
  --lin:#0F1714; --surf:#182421; --surf2:#131D1A;
  --encre:#eef0f1; --douce:#A7B7AE;
  --accent:#6FBF98; --accent-fort:#8FD3B0; --halo:#1E3229;
  --safran:#E0AC6A; --safran-halo:#2C2317;
  --ligne:#2A3833;
}

/* =====================================================================================
   2. SOCLE
   ===================================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--lin);color:var(--encre);
  font-family:var(--corps);font-size:17px;line-height:1.65;
  overflow-x:hidden;                       /* P-470 : jamais de debordement lateral */
  padding-bottom:0;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--accent-fort);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{color:var(--encre)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
h1,h2,h3{font-family:var(--titre);font-weight:600;line-height:1.12;letter-spacing:-.012em;margin:0 0 .4em}
h1{font-size:clamp(2.1rem,5.2vw,3.5rem)}
h2{font-size:clamp(1.5rem,3.2vw,2.15rem)}
h3{font-size:clamp(1.08rem,1.8vw,1.32rem);line-height:1.28}
p{margin:0 0 1em}
.dc-in{width:min(1180px,100% - 2.4rem);margin-inline:auto}
.sb-oeil{position:absolute;left:-9999px}
.sb-oeil:focus{position:static;display:inline-block;padding:.6rem 1rem;background:var(--accent);color:#fff}

/* le filet d'ordonnance : double trait sous chaque titre de section */
.dc-titre{position:relative;padding-bottom:.5rem;margin-bottom:.3rem}
.dc-titre::after{
  content:"";position:absolute;left:0;bottom:0;width:74px;height:5px;
  background:linear-gradient(to bottom,var(--accent) 0 2px,transparent 2px 3px,var(--ligne) 3px 4px);
}
.dc-sous{color:var(--douce);max-width:62ch;margin:.6rem 0 0}
.dc-meta{color:var(--douce);font-size:.86rem;margin:.35rem 0 0}
.dc-chapo{color:var(--douce);margin:.45rem 0 0}
.dc-pt{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}
.dc-etiq{
  display:inline-block;font-family:var(--corps);font-size:.71rem;font-weight:700;
  letter-spacing:.11em;text-transform:uppercase;color:var(--accent-fort);
  background:var(--halo);padding:.22em .7em;border-radius:999px;margin:0 0 .5rem
}
.dc-etiq--grand{font-size:.78rem}

.dc-bouton{
  display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.94rem;
  padding:.62rem 1.15rem;border-radius:999px;border:1.5px solid var(--accent);
  color:var(--accent-fort);text-decoration:none;background:transparent;white-space:nowrap
}
.dc-bouton:hover{background:var(--halo);color:var(--accent-fort)}
.dc-bouton--plein{background:var(--accent);border-color:var(--accent);color:#fff}
:root[data-theme="dark"] .dc-bouton--plein{color:#0F1714}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .dc-bouton--plein{color:#0F1714}}
.dc-bouton--plein:hover{background:var(--accent-fort);border-color:var(--accent-fort);color:#fff}
.dc-bouton svg{width:18px;height:18px}

/* bandes alternees : c'est le rythme de la page, pas une decoration */
.dc-bande{padding-block:var(--pas)}
.dc-bande--clair{background:var(--surf)}
.dc-bande--lin{background:var(--lin)}
.dc-bande--sombre{background:#14201C;color:#EAF1EC}
.dc-bande--sombre h2,.dc-bande--sombre h3{color:#F3F7F4}
.dc-bande--sombre .dc-sous,.dc-bande--sombre .dc-chapo,.dc-bande--sombre .dc-meta{color:#B4C6BB}
.dc-bande--sombre a{color:#9BD9B7}
.dc-bande--sombre .dc-bouton{border-color:#9BD9B7;color:#9BD9B7}
.dc-bande--sombre .dc-bouton:hover{background:#1E3229;color:#DCF0E4}
.dc-tete-section{display:flex;gap:1.4rem;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;margin-bottom:2rem}

/* =====================================================================================
   3. BARRE DE PRUDENCE + EN-TETE — procede signature n°1
   ===================================================================================== */
.dc-prudence{
  background:var(--safran-halo);color:var(--safran);border-bottom:1px solid var(--ligne);
  font-size:.79rem;line-height:1.4
}
.dc-prudence p{margin:0}
.dc-prudence{display:flex;gap:1rem;justify-content:space-between;align-items:center;
  padding:.42rem max(1.2rem,calc(50vw - 590px))}
.dc-prudence strong{font-weight:700}
.dc-prudence-date{white-space:nowrap;opacity:.85}

.dc-tete{position:sticky;top:0;z-index:40;background:var(--surf);border-bottom:1px solid var(--ligne);
  transition:box-shadow .2s ease,padding .2s ease}
.dc-tete.is-compact{box-shadow:0 6px 24px -18px rgba(0,0,0,.55)}
.dc-tete-in{width:min(1180px,100% - 2.4rem);margin-inline:auto;
  display:flex;align-items:center;gap:1.2rem;padding-block:.75rem}
.dc-tete.is-compact .dc-tete-in{padding-block:.5rem}
.dc-marque{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--encre);flex:none}
.dc-sceau{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:var(--halo);border:1.5px solid var(--accent);overflow:hidden}
.dc-sceau svg{width:24px;height:24px}
.dc-marque-txt{display:flex;flex-direction:column;line-height:1.1}
.dc-marque-nom{font-family:var(--titre);font-size:1.32rem;font-weight:700;letter-spacing:-.015em}
.dc-marque-bl{font-size:.7rem;color:var(--douce);max-width:24ch;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-rubs{display:flex;gap:1.1rem;flex-wrap:wrap;margin-left:auto;font-size:.9rem}
.dc-rubs a{color:var(--douce);text-decoration:none;font-weight:500;padding-block:.25rem;
  border-bottom:2px solid transparent}
.dc-rubs a:hover{color:var(--accent-fort);border-bottom-color:var(--accent)}
.dc-tete-cta{flex:none}

/* =====================================================================================
   4. HEROS + MOTEUR — procede signature n°2
   ===================================================================================== */
.dc-heros{background:
   radial-gradient(120% 90% at 12% 0%,var(--halo) 0%,transparent 62%),var(--lin);
  padding-block:clamp(2.2rem,5vw,4rem) var(--pas);border-bottom:1px solid var(--ligne)}
.dc-heros-in{width:min(1180px,100% - 2.4rem);margin-inline:auto;
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(1.6rem,4vw,3.4rem);align-items:start}
.dc-oeil{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent-fort);margin:0 0 .9rem}
.dc-heros h1{margin-bottom:.35em}
.dc-heros h1 em{font-style:italic;font-weight:400;color:var(--accent-fort)}
.dc-heros-chapo{font-size:clamp(1.02rem,1.6vw,1.16rem);color:var(--douce);max-width:52ch}

.dc-moteur{margin-top:1.6rem}
.dc-moteur-label{display:block;font-size:.8rem;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--douce);margin-bottom:.5rem}
.dc-moteur-barre{display:flex;align-items:center;gap:.5rem;background:var(--surf);
  border:1.5px solid var(--ligne);border-radius:999px;padding:.35rem .35rem .35rem 1rem;
  box-shadow:0 10px 30px -22px rgba(22,33,28,.7)}
.dc-moteur-barre:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--halo)}
.dc-moteur-ico{display:grid;place-items:center;color:var(--accent);flex:none}
.dc-moteur-ico svg{width:22px;height:22px}
.dc-moteur-champ{flex:1;min-width:0;border:0;background:transparent;color:var(--encre);
  font-family:var(--corps);font-size:1.02rem;padding:.6rem .2rem}
.dc-moteur-champ:focus{outline:none}
.dc-moteur-champ::placeholder{color:var(--douce);opacity:.85}
.dc-moteur-go{flex:none;border:0;border-radius:999px;background:var(--accent);color:#fff;
  font-family:var(--corps);font-weight:700;font-size:.94rem;padding:.68rem 1.35rem;cursor:pointer}
.dc-moteur-go:hover{background:var(--accent-fort)}
.dc-moteur--compact .dc-moteur-label{font-size:.72rem}
.dc-moteur--compact .dc-moteur-barre{padding-left:.8rem}
.dc-moteur--compact .dc-moteur-champ{font-size:.94rem;padding-block:.45rem}
.dc-moteur--compact .dc-moteur-go{padding:.5rem 1rem;font-size:.86rem}

.dc-rail{margin-top:1.1rem;display:flex;gap:.6rem;align-items:baseline;flex-wrap:wrap}
.dc-rail-t{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--douce)}
.dc-rail ul{list-style:none;margin:0;padding:0;display:flex;gap:.45rem;flex-wrap:wrap}
.dc-rail a{display:inline-flex;align-items:center;gap:.4rem;font-size:.86rem;font-weight:600;
  text-decoration:none;color:var(--encre);background:var(--surf);border:1px solid var(--ligne);
  border-radius:999px;padding:.3rem .8rem}
.dc-rail a:hover{border-color:var(--accent);background:var(--halo);color:var(--accent-fort)}

/* le triptyque de fiches : 3 vraies publications empilees */
.dc-triptyque{display:grid;gap:.75rem}
.dc-fiche a{display:grid;grid-template-columns:96px minmax(0,1fr);gap:.9rem;align-items:center;
  background:var(--surf);border:1px solid var(--ligne);border-radius:var(--rayon);
  padding:.6rem;text-decoration:none;color:var(--encre);
  transition:transform .18s ease,border-color .18s ease}
.dc-fiche a:hover{transform:translateX(-4px);border-color:var(--accent)}
.dc-fiche-img{display:block;border-radius:var(--rayon-s);overflow:hidden;aspect-ratio:4/3}
.dc-fiche-img img{width:100%;height:100%;object-fit:cover}
.dc-fiche-img .jr-plaque{border-radius:var(--rayon-s);font-size:30px}
.dc-fiche-txt{display:block;min-width:0}
.dc-fiche-t{display:block;font-family:var(--titre);font-size:1rem;font-weight:600;line-height:1.25}
.dc-fiche--1 a{margin-left:1.4rem}
.dc-fiche--2 a{margin-left:2.8rem}

/* =====================================================================================
   5. SPECIALITES — pastilles, jamais des cartes grises
   ===================================================================================== */
.dc-specialites{list-style:none;margin:1.6rem 0 0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:.8rem}
.dc-specialites a{display:flex;flex-direction:column;gap:.15rem;text-decoration:none;
  color:var(--encre);background:var(--surf2);border:1px solid var(--ligne);
  border-radius:999px;padding:.85rem 1.1rem .85rem 3.2rem;position:relative;min-height:64px;
  justify-content:center}
.dc-specialites a:hover{border-color:var(--accent);background:var(--halo)}
.dc-spe-ico{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);
  display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  background:var(--halo);color:var(--accent-fort)}
.dc-spe-ico svg{width:20px;height:20px}
.dc-spe-nom{font-weight:600;font-size:.96rem;line-height:1.2}
.dc-spe-n{font-size:.78rem;color:var(--douce)}

/* =====================================================================================
   6. LES VILLES COUVERTES — procede signature n°3
   ===================================================================================== */
.dc-villes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(272px,100%),1fr));gap:1.1rem}
.dc-ville{background:var(--surf);border:1px solid var(--ligne);border-left:4px solid var(--accent);
  border-radius:var(--rayon);overflow:hidden;display:flex;flex-direction:column}
.dc-ville-img{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--halo)}
.dc-ville-img img{width:100%;height:100%;object-fit:cover}
.dc-ville-img .jr-plaque{aspect-ratio:16/9;border-radius:0}
.dc-ville-corps{padding:1rem 1.1rem 1.2rem}
.dc-ville h3{font-size:1.42rem;margin-bottom:.1em}
.dc-ville-n{font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--accent-fort);margin:0 0 .7rem}
.dc-ville-liste{list-style:none;margin:0;padding:0;display:grid;gap:.32rem}
.dc-ville-liste a{color:var(--encre);text-decoration:none;font-size:.94rem;
  display:block;padding-left:.85rem;position:relative}
.dc-ville-liste a::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;
  border-radius:50%;background:var(--accent)}
.dc-ville-liste a:hover{color:var(--accent-fort);text-decoration:underline}
.dc-plus{display:inline-block;margin-top:.7rem;font-size:.84rem;font-weight:600;color:var(--accent-fort)}

/* =====================================================================================
   7. TUILES CHIFFREES — chiffres COMPTES
   ===================================================================================== */
.dc-chiffres{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:1.4rem}
.dc-chiffres li{display:flex;flex-direction:column;gap:.2rem;padding-left:1.1rem;
  border-left:2px solid rgba(155,217,183,.4)}
.dc-n{font-family:var(--titre);font-size:clamp(2.8rem,6vw,4.2rem);font-weight:700;
  line-height:.95;color:#9BD9B7}
.dc-u{font-size:.8rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#B4C6BB}

/* =====================================================================================
   8. LES QUATRE SILHOUETTES DE RUBRIQUE
   ===================================================================================== */
/* a. zigzag texte/image */
.dc-zigzag{display:grid;gap:clamp(1.6rem,3vw,2.6rem)}
.dc-zz{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.2rem,3vw,2.4rem);align-items:center}
.dc-zz:nth-child(even) .dc-zz-img{order:2}
.dc-zz-img{display:block;border-radius:var(--rayon);overflow:hidden;aspect-ratio:16/10;background:var(--halo)}
.dc-zz-img img{width:100%;height:100%;object-fit:cover}
.dc-zz-img .jr-plaque{aspect-ratio:16/10;border-radius:0}
.dc-zz-txt h3{font-size:clamp(1.3rem,2.4vw,1.75rem)}
.dc-zz-txt a{color:inherit;text-decoration:none}
.dc-zz-txt a:hover{color:var(--accent-fort);text-decoration:underline}

/* b. grille de 3, une photo dans CHAQUE carte */
.dc-grille3{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(276px,100%),1fr));gap:1.3rem}
.dc-carte{background:var(--surf);border:1px solid var(--ligne);border-radius:var(--rayon);
  overflow:hidden;display:flex;flex-direction:column;padding-bottom:1.1rem}
.dc-carte:hover{border-color:var(--accent)}
.dc-carte-img{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--halo)}
.dc-carte-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.dc-carte:hover .dc-carte-img img{transform:scale(1.035)}
.dc-carte-img .jr-plaque{aspect-ratio:16/10;border-radius:0}
.dc-carte h3{margin:.9rem 1.1rem 0}
.dc-carte h3 a{color:inherit;text-decoration:none}
.dc-carte h3 a:hover{color:var(--accent-fort);text-decoration:underline}
.dc-carte .dc-chapo,.dc-carte .dc-meta{margin-inline:1.1rem}

/* c. liste compacte numerotee */
.dc-compacte{list-style:none;margin:0;padding:0;display:grid;gap:0;
  border-top:1px solid var(--ligne)}
.dc-compacte li{display:grid;grid-template-columns:2.6rem 84px minmax(0,1fr);gap:1rem;
  align-items:center;padding:.95rem 0;border-bottom:1px solid var(--ligne)}
.dc-rang{font-family:var(--titre);font-size:1.5rem;font-weight:700;color:var(--accent);line-height:1}
.dc-comp-img{display:block;border-radius:var(--rayon-s);overflow:hidden;aspect-ratio:4/3;background:var(--halo)}
.dc-comp-img img{width:100%;height:100%;object-fit:cover}
.dc-comp-img .jr-plaque{border-radius:var(--rayon-s);font-size:26px}
.dc-comp-txt{min-width:0}
.dc-comp-txt a{display:block;font-family:var(--titre);font-size:1.14rem;font-weight:600;
  line-height:1.25;color:var(--encre);text-decoration:none}
.dc-comp-txt a:hover{color:var(--accent-fort);text-decoration:underline}
.dc-comp-txt .dc-chapo{display:block;font-size:.88rem}

/* d. bande de nuit : une grande + trois */
.dc-nuit{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1.4rem}
.dc-nuit-item--large{grid-row:span 3}
.dc-nuit-img{display:block;border-radius:var(--rayon);overflow:hidden;aspect-ratio:16/10;
  background:#1E3229;margin-bottom:.7rem}
.dc-nuit-item:not(.dc-nuit-item--large) .dc-nuit-img{aspect-ratio:16/7}
.dc-nuit-img img{width:100%;height:100%;object-fit:cover}
.dc-nuit-img .jr-plaque{aspect-ratio:16/10;border-radius:0}
.dc-nuit h3 a{color:inherit;text-decoration:none}
.dc-nuit h3 a:hover{text-decoration:underline}

/* appel praticien : la SEULE zone qui porte l'accent du generateur */
.dc-appel{background:color-mix(in srgb,#B26406 14%,var(--surf));border-block:1px solid var(--ligne)}
.dc-appel-in{display:flex;gap:1.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap}

/* =====================================================================================
   9. ARTICLE — fiche annuaire (2 colonnes) ou lecture (68ch)
   ===================================================================================== */
.dc-art-tete{background:var(--surf);border-bottom:1px solid var(--ligne);padding-block:1.8rem 2rem}
.dc-fil-ariane{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.82rem;color:var(--douce);margin-bottom:1rem}
.dc-fil-ariane a{color:var(--douce);text-decoration:none}
.dc-fil-ariane a:hover{color:var(--accent-fort);text-decoration:underline}
.dc-art-tete h1{max-width:22ch}
.dc-page--lecture .dc-art-tete h1{max-width:24ch}
.dc-art-moteur{margin-top:1.4rem;max-width:640px}

.dc-art-corps{display:grid;grid-template-columns:minmax(0,1fr);gap:2.4rem;padding-block:2.4rem}
.dc-page--fiche .dc-art-corps{grid-template-columns:minmax(0,1fr) minmax(0,320px)}
.dc-art-texte{min-width:0}
.dc-page--lecture .dc-art-texte{max-width:68ch;margin-inline:auto}
.dc-art-illu{margin:0 0 1.8rem}
.dc-art-illu img{width:100%;border-radius:var(--rayon)}
.dc-art-illu figcaption{font-size:.82rem;color:var(--douce);margin-top:.5rem}

.dc-sommaire{background:var(--surf);border:1px solid var(--ligne);border-left:4px solid var(--accent);
  border-radius:var(--rayon);padding:1rem 1.2rem;margin-bottom:1.8rem}
.dc-sommaire-t{font-size:.76rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--douce);margin:0 0 .5rem}
.dc-sommaire ol{margin:0;padding-left:1.2rem;display:grid;gap:.3rem}
.dc-sommaire a{color:var(--encre);text-decoration:none;font-size:.94rem}
.dc-sommaire a:hover{color:var(--accent-fort);text-decoration:underline}

.dc-corps{font-size:1.06rem}
.dc-corps h2{margin-top:2.2em;scroll-margin-top:110px}
.dc-corps h3{margin-top:1.6em}
.dc-corps ul,.dc-corps ol{padding-left:1.3em}
.dc-corps li{margin-bottom:.35em}
.dc-corps img{border-radius:var(--rayon);margin-block:1.4rem}
.dc-corps blockquote{margin:1.6rem 0;padding:.2rem 0 .2rem 1.2rem;border-left:3px solid var(--accent);
  font-family:var(--titre);font-size:1.14rem;font-style:italic;color:var(--douce)}
/* P-470 : un tableau large defile DANS son cadre, la page ne bouge pas */
.dc-corps table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.94rem;margin-block:1.4rem}
.dc-corps thead,.dc-corps tbody{display:table;width:100%;min-width:520px}
.dc-corps th,.dc-corps td{border:1px solid var(--ligne);padding:.6rem .7rem;text-align:left;vertical-align:top}
.dc-corps th{background:var(--halo);color:var(--accent-fort);font-weight:700}

.dc-faq-zone{display:grid;gap:.6rem;margin-block:1.4rem}
.dc-faq{background:var(--surf);border:1px solid var(--ligne);border-radius:var(--rayon-s);padding:.2rem .2rem}
.dc-faq summary{cursor:pointer;list-style:none;padding:.85rem 1rem;font-weight:600;
  font-family:var(--titre);font-size:1.05rem;display:flex;gap:.7rem;align-items:flex-start}
.dc-faq summary::-webkit-details-marker{display:none}
.dc-faq summary::before{content:"+";flex:none;color:var(--accent);font-weight:700;font-size:1.15rem;line-height:1.2}
.dc-faq[open] summary::before{content:"–"}
.dc-faq-rep{padding:0 1rem .9rem 2.4rem;color:var(--douce)}
.dc-faq-rep p:last-child{margin-bottom:0}

.dc-savoir{background:var(--safran-halo);border:1px solid var(--safran);border-radius:var(--rayon);
  padding:1.2rem 1.4rem;margin-block:2rem}
.dc-savoir-t{font-family:var(--titre);font-size:1.2rem;font-weight:700;color:var(--safran);margin:0 0 .6rem}
.dc-savoir ul{margin:0;padding-left:1.1em;display:grid;gap:.45rem}
.dc-savoir li{color:var(--encre);font-size:.96rem}

.dc-cote{min-width:0}
.dc-fiche-pratique,.dc-voisins{background:var(--surf);border:1px solid var(--ligne);
  border-radius:var(--rayon);padding:1.1rem 1.2rem;margin-bottom:1rem}
.dc-fiche-pratique{border-top:4px solid var(--accent)}
.dc-fiche-t,.dc-voisins-t{font-size:.76rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--douce);margin:0 0 .8rem}
.dc-fiche-pratique dl{margin:0;display:grid;gap:.15rem}
.dc-fiche-pratique dt{font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--accent-fort);margin-top:.7rem}
.dc-fiche-pratique dt:first-child{margin-top:0}
.dc-fiche-pratique dd{margin:0;font-size:.98rem}
.dc-fiche-note{font-size:.8rem;color:var(--douce);margin:1rem 0 0;padding-top:.8rem;border-top:1px solid var(--ligne)}
.dc-voisins ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.dc-voisins a{color:var(--encre);text-decoration:none;font-size:.94rem;padding-left:.85rem;position:relative;display:block}
.dc-voisins a::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.dc-voisins a:hover{color:var(--accent-fort);text-decoration:underline}

.sb-signature{display:grid;grid-template-columns:64px minmax(0,1fr);gap:1rem;align-items:start;
  background:var(--surf2);border:1px solid var(--ligne);border-radius:var(--rayon);
  padding:1.1rem 1.2rem;margin-top:2.4rem}
.sb-signature img{width:64px;height:64px;border-radius:50%;object-fit:cover}
.sb-signature-nom{font-family:var(--titre);font-weight:700;font-size:1.08rem;margin:0}
.sb-signature-bio{font-size:.92rem;color:var(--douce);margin:.3rem 0 0}
.sb-signature .sb-date{font-size:.8rem;color:var(--douce);margin:.5rem 0 0}

/* =====================================================================================
   10. RUBRIQUE
   ===================================================================================== */
.dc-rub-tete{background:var(--surf);border-bottom:1px solid var(--ligne);padding-block:2rem 2.4rem}
.dc-rub-tete--annuaire{background:radial-gradient(110% 100% at 8% 0%,var(--halo) 0%,transparent 60%),var(--surf)}
.dc-rub-moteur{margin-top:1.5rem;max-width:660px}
.dc-depliant{margin-top:1rem;max-width:66ch}
.dc-depliant summary{cursor:pointer;font-weight:600;color:var(--accent-fort)}
.dc-depliant p{margin-top:.6rem;color:var(--douce)}

.dc-alpha{display:flex;gap:.4rem;flex-wrap:wrap}
.dc-alpha a{font-size:.86rem;font-weight:600;text-decoration:none;color:var(--encre);
  background:var(--surf2);border:1px solid var(--ligne);border-radius:999px;padding:.3rem .8rem}
.dc-alpha a:hover{border-color:var(--accent);background:var(--halo);color:var(--accent-fort)}

.dc-index{display:grid;gap:2rem}
.dc-index-ville{scroll-margin-top:120px;background:var(--surf);border:1px solid var(--ligne);
  border-radius:var(--rayon);padding:1.2rem 1.3rem 1.4rem}
.dc-index-tete{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}
.dc-index-img{display:block;width:88px;flex:none;border-radius:var(--rayon-s);overflow:hidden;aspect-ratio:4/3}
.dc-index-img img{width:100%;height:100%;object-fit:cover}
.dc-index-img .jr-plaque{border-radius:var(--rayon-s);font-size:28px}
.dc-index-tete h2{margin:0;font-size:clamp(1.4rem,2.6vw,1.9rem)}
.dc-index-liste{list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(min(238px,100%),1fr));gap:.55rem}
.dc-index-liste a{display:flex;flex-direction:column;text-decoration:none;color:var(--encre);
  border:1px solid var(--ligne);border-left:3px solid var(--accent);border-radius:var(--rayon-s);
  padding:.6rem .8rem;background:var(--surf2)}
.dc-index-liste a:hover{background:var(--halo);border-color:var(--accent)}
.dc-index-metier{font-weight:600;font-size:.98rem;line-height:1.25}
.dc-index-ville-n{font-size:.78rem;color:var(--douce)}

.dc-une{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(1.2rem,3vw,2.4rem);
  align-items:center;margin-bottom:2.4rem;padding-bottom:2.4rem;border-bottom:1px solid var(--ligne)}
.dc-une-img{display:block;border-radius:var(--rayon);overflow:hidden;aspect-ratio:16/10;background:var(--halo)}
.dc-une-img img{width:100%;height:100%;object-fit:cover}
.dc-une-img .jr-plaque{aspect-ratio:16/10;border-radius:0}
.dc-une h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
.dc-une h2 a{color:inherit;text-decoration:none}
.dc-une h2 a:hover{color:var(--accent-fort);text-decoration:underline}

.dc-pagination{margin-top:2.4rem}
.dc-pagination ul{list-style:none;display:flex;gap:.4rem;flex-wrap:wrap;padding:0;margin:0}
.dc-pagination a,.dc-pagination span{display:grid;place-items:center;min-width:40px;height:40px;
  padding:0 .6rem;border:1px solid var(--ligne);border-radius:var(--rayon-s);
  text-decoration:none;color:var(--encre);font-weight:600}
.dc-pagination .current{background:var(--accent);border-color:var(--accent);color:#fff}

/* =====================================================================================
   11. PIED
   ===================================================================================== */
.dc-pied{background:#14201C;color:#D5E2D9;padding-top:var(--pas);margin-top:0}
.dc-pied-haut{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:2rem;padding-bottom:2.4rem}
.dc-pied h2{font-size:.8rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:#9BD9B7;margin-bottom:.9rem}
.dc-pied ul{list-style:none;margin:0;padding:0;display:grid;gap:.42rem}
.dc-pied a{color:#D5E2D9;text-decoration:none;font-size:.94rem}
.dc-pied a:hover{color:#9BD9B7;text-decoration:underline}
.dc-pied li{display:flex;gap:.6rem;align-items:baseline;justify-content:space-between}
.dc-pied-n{font-size:.76rem;color:#8FA398;flex:none}
.dc-pied-villes{grid-template-columns:repeat(auto-fill,minmax(min(120px,100%),1fr))}
.dc-pied-villes li{justify-content:flex-start}
.dc-sceau--pied{background:#1E3229;border-color:#9BD9B7;margin-bottom:.8rem}
.dc-pied-nom{font-family:var(--titre);font-size:1.32rem;font-weight:700;margin:0;color:#F0F6F2}
.dc-pied-bl{font-size:.9rem;color:#9FB3A6;margin:.2rem 0 .9rem}
.dc-pied-avert{font-size:.82rem;color:#8FA398;max-width:38ch;margin:0}
.dc-pied-moteur{margin-top:1.2rem}
.dc-pied-moteur .dc-moteur-label{color:#8FA398}
.dc-pied-moteur .dc-moteur-barre{background:#1B2A25;border-color:#2A3833;box-shadow:none}
.dc-pied-moteur .dc-moteur-champ{color:#EAF1EC}
.dc-pied-moteur .dc-moteur-champ::placeholder{color:#8FA398}
.dc-pied-moteur .dc-moteur-ico{color:#9BD9B7}
.dc-pied-moteur .dc-moteur-go{background:#9BD9B7;color:#0F1714}
.dc-ours{display:flex;gap:1rem;justify-content:space-between;align-items:center;flex-wrap:wrap;
  border-top:1px solid #2A3833;padding-block:1rem 1.2rem;font-size:.84rem;color:#8FA398}
.dc-ours p{margin:0}
.dc-bascule{background:transparent;border:1px solid #2A3833;color:#D5E2D9;border-radius:999px;
  padding:.42rem 1rem;font-family:var(--corps);font-size:.84rem;font-weight:600;cursor:pointer}
.dc-bascule:hover{border-color:#9BD9B7;color:#9BD9B7}

/* =====================================================================================
   12. NAV MOBILE BASSE
   ===================================================================================== */
.sb-nav-mobile{display:none}
.sb-nav-mobile-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;
  flex:1;padding:.5rem .2rem calc(.5rem + env(safe-area-inset-bottom));
  color:var(--douce);text-decoration:none;font-size:.66rem;font-weight:600;text-align:center;
  line-height:1.15;min-width:0}
.sb-nav-mobile-item span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.sb-nav-ico svg{width:22px;height:22px}
.sb-nav-mobile-item.is-actif{color:var(--accent-fort)}

/* =====================================================================================
   13. RESPONSIVE — P-470 : rien ne deborde, tout se replie
   ===================================================================================== */
@media (max-width:1080px){
  .dc-pied-haut{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .dc-heros-in{grid-template-columns:minmax(0,1fr)}
  .dc-triptyque{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}
  .dc-fiche--1 a,.dc-fiche--2 a{margin-left:0}
  .dc-page--fiche .dc-art-corps{grid-template-columns:minmax(0,1fr)}
  .dc-nuit{grid-template-columns:minmax(0,1fr)}
  .dc-nuit-item--large{grid-row:auto}
  .dc-nuit-item:not(.dc-nuit-item--large) .dc-nuit-img{aspect-ratio:16/10}
  .dc-zz,.dc-une{grid-template-columns:minmax(0,1fr)}
  .dc-zz:nth-child(even) .dc-zz-img{order:0}
  .dc-rubs{display:none}
}
@media (max-width:720px){
  body{padding-bottom:76px}
  .sb-nav-mobile{display:flex;position:fixed;inset:auto 0 0 0;z-index:60;
    background:var(--surf);border-top:1px solid var(--ligne)}
  .dc-tete{position:static}
  .dc-prudence{flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left}
  .dc-prudence-date{white-space:normal}
  .dc-tete-in{gap:.7rem}
  .dc-marque-bl{display:none}
  .dc-tete-cta{margin-left:auto;padding:.5rem .85rem;font-size:.86rem}
  .dc-moteur-barre{flex-wrap:wrap;border-radius:var(--rayon);padding:.6rem}
  .dc-moteur-champ{flex:1 1 100%;order:2;padding-inline:.2rem}
  .dc-moteur-ico{order:1}
  .dc-moteur-go{order:3;flex:1 1 100%;margin-top:.5rem}
  .dc-compacte li{grid-template-columns:2rem 64px minmax(0,1fr);gap:.7rem}
  .dc-index-liste{grid-template-columns:minmax(0,1fr)}
  .dc-pied-haut{grid-template-columns:minmax(0,1fr);gap:1.8rem}
  .dc-appel-in{flex-direction:column;align-items:flex-start}
  .sb-signature{grid-template-columns:minmax(0,1fr)}
  .dc-corps{font-size:1.02rem}
}
@media (max-width:400px){
  .dc-specialites{grid-template-columns:minmax(0,1fr)}
  .dc-chiffres{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
}

/* =====================================================================================
   14. MOUVEMENT REDUIT
   ===================================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .dc-carte:hover .dc-carte-img img{transform:none}
  .dc-fiche a:hover{transform:none}
}
@media print{
  .dc-tete,.sb-nav-mobile,.dc-pied,.dc-moteur,.dc-prudence{display:none!important}
}

/* P-470 — la 1re carte de l accueil porte grid-column:span 2 en style INLINE.
   Sur telephone la grille n a plus qu une colonne : le span fabrique une colonne
   implicite dimensionnee sur le contenu (526px dans un ecran de 390) et pousse la page.
   !important est indispensable : on annule un style inline. */
@media (max-width:760px){.sb-grille>*{grid-column:auto!important}}

/* P-470 — la plume cite ses sources en URL BRUTE entre parentheses. Une URL ne
   contient aucun point de coupure : le paragraphe fait 677px de large dans une colonne
   de 329 et la page deborde de 351px sur telephone. Le piege : AUCUN element ne depasse
   le viewport (getBoundingClientRect ne voit rien), c est le contenu qui deborde de son
   propre element — seul scrollWidth > clientWidth le montre. */
.sb-corps{overflow-wrap:anywhere}

/* P-491 — display:contents : le h1 de la marque n existe pas pour la mise en page. */
.sb-marque-h1{display:contents}

/* sb-contraste-fix 20260905 (texte recalcule contre le fond mesure, R-0122) */
@media (prefers-color-scheme: dark){.dc-moteur-go{color:#3D3D3D !important}}
