/* =====================================================================
   sdb.css — feuille de style du thème « La Clinique du Bain »
   Base issue de la Direction artistique v2 (tokens §8 du brief v5),
   complétée pour l'intégration WordPress (plan SVG, menu off-canvas,
   CTA sticky mobile, formulaires CF7, blocs natifs, accessibilité).
   Aucune donnée business ni couleur hors palette n'est ajoutée ici.
   ===================================================================== */
:root{
  --primary-900:#1A2028; --primary-800:#252D38; --primary-600:#495666;
  --primary-100:#E6EAEE; --primary-50:#F3F5F7;
  --accent-600:#214FC4; --accent-500:#2457D6; --accent-100:#E8EEFF;
  --positive-500:#7FAF9A; --positive-100:#EAF3EE;
  --n-900:#161B22; --n-700:#39414B; --n-500:#68717D; --n-200:#D7DDE3; --n-50:#F7F8FA;
  --white:#fff;
  --display:"Barlow Semi Condensed","Arial Narrow",system-ui,sans-serif;
  --body:"Source Sans 3",system-ui,-apple-system,sans-serif;
  --wide:1180px; --reading:760px; --narrow:640px;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s6:24px;--s8:32px;--s12:48px;--s16:64px;--s24:96px;
  --cdb-header-h:72px;
}
*{box-sizing:border-box}
html{overflow-x:clip;scroll-padding-top:calc(var(--cdb-header-h) + 16px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;font-family:var(--body);font-size:17px;line-height:1.65;color:var(--n-700);background:var(--n-50)}
h1,h2,h3{font-family:var(--display);color:var(--n-900);margin:0 0 var(--s4);font-weight:700;letter-spacing:-.005em}
h1{font-size:clamp(2.2rem,4vw,3rem);line-height:1.1}
h2{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.15;margin-top:var(--s12)}
h3{font-size:1.4rem;line-height:1.25;margin-top:var(--s8);font-weight:600}
p{margin:0 0 var(--s4)}
a{color:var(--accent-500)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--accent-500);outline-offset:3px}
ul,ol{padding-left:1.25rem}
small,.sdb-meta{font-size:14px;color:var(--n-500)}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 var(--s6)}
.reading{max-width:var(--reading)}
img{max-width:100%;height:auto}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- Accessibilité ---------- */
.sdb-skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--accent-500);color:#fff;padding:10px 16px;font-weight:700;text-decoration:none}
.sdb-skip-link:focus{left:8px;top:8px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- Header / footer ---------- */
.sdb-header{background:var(--white);border-bottom:1px solid var(--n-200)}
.sdb-header .wrap{display:flex;align-items:center;gap:var(--s8);min-height:72px}
.sdb-brand{font-family:var(--display);font-weight:700;font-size:1.35rem;color:var(--n-900);text-decoration:none;display:flex;align-items:center;gap:10px}
.sdb-brand i{display:inline-block;width:22px;height:22px;border:2px solid var(--accent-500);border-right-color:transparent;border-bottom-color:transparent}
.sdb-nav{display:flex;gap:var(--s6);margin-left:auto;font-weight:600;font-size:15px;list-style:none;padding:0;margin-top:0;margin-bottom:0}
.sdb-nav a{color:var(--n-700);text-decoration:none}
.sdb-nav a[aria-current]{color:var(--accent-500);box-shadow:inset 0 -2px 0 var(--accent-500)}
.sdb-header .sdb-btn{margin-left:var(--s4)}
.sdb-menu-toggle{display:none;margin-left:auto;background:#fff;border:1px solid var(--n-200);width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;color:var(--n-900)}
.sdb-menu-toggle svg{width:22px;height:22px;display:block}
.sdb-nav__close{display:none;background:none;border:0;cursor:pointer;color:var(--n-900)}
.sdb-footer{background:var(--primary-900);color:#c9d1da;padding:var(--s12) 0 var(--s8);margin-top:var(--s24);font-size:15px}
.sdb-footer .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--s8)}
.sdb-footer h4{font-family:var(--display);color:#fff;margin:0 0 var(--s3);font-size:1.1rem}
.sdb-footer ul{list-style:none;padding:0;margin:0}
.sdb-footer a{color:#e6eaee;text-decoration:none;display:block;margin-bottom:6px}
.sdb-footer .zone{color:#fff;font-family:var(--display);font-size:1.25rem}
.sdb-footer__legal{display:block;margin-top:var(--s8);font-size:13px;color:#8a95a3}
.sdb-footer__legal a{display:inline;color:#e6eaee}
/* Colonne 1 : coordonnees + reseaux (palette footer, angles droits) */
.sdb-footer__coords{margin-top:var(--s4)}
.sdb-footer .sdb-footer__coord{display:flex;align-items:center;gap:10px;color:#c9d1da;text-decoration:none;margin:0 0 8px}
.sdb-footer .sdb-footer__coord:hover{color:#fff}
.sdb-footer .sdb-footer__coord .ico{flex:0 0 auto;width:18px;height:18px}
.sdb-footer .sdb-footer__addr{color:#8a95a3;font-size:14px;margin:8px 0 0}
.sdb-footer__social{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4)}
.sdb-footer .sdb-footer__soc{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--primary-800);color:#fff;margin:0}
.sdb-footer .sdb-footer__soc:hover{background:var(--primary-600)}
.sdb-footer .sdb-footer__soc svg{width:20px;height:20px;display:block}

/* ---------- Boutons ---------- */
.sdb-btn{display:inline-block;background:var(--accent-500);color:#fff;font-weight:700;padding:14px 22px;text-decoration:none;border:2px solid var(--accent-500);line-height:1.2;min-height:44px;font-size:16px}
.sdb-btn:hover{background:var(--accent-600);border-color:var(--accent-600)}
.sdb-btn--ghost{background:transparent;color:var(--accent-500)}
.sdb-btn--ghost:hover{background:var(--accent-100)}
.sdb-btn--dark{background:var(--primary-900);border-color:var(--primary-900)}
/* Bloc bouton natif (wp:buttons > wp:button) portant nos classes : neutraliser
   classic-theme-styles (border-radius:9999px, fond, padding) sur le lien interne.
   Le style bouton est alors porté par .sdb-btn (le div .wp-block-button), et le
   rendu est identique à un lien .sdb-btn du thème (couleur, bordure, hauteur). */
.wp-block-button.sdb-btn .wp-block-button__link,
.sdb-btn .wp-block-button__link{border-radius:0;background:transparent;color:inherit;padding:0;font:inherit;box-shadow:none;text-decoration:none}

/* =====================================================================
   SIGNATURE — le système de repérage (cotes, marques, angle ouvert)
   ===================================================================== */
.sdb-cote{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;font-size:15px;color:var(--accent-500);margin:var(--s4) 0}
.sdb-cote::before,.sdb-cote::after{content:"";flex:1;height:1px;background:var(--accent-500);position:relative}
.sdb-cote::before{box-shadow:-1px -5px 0 0 var(--accent-500) inset}
.sdb-cote span{white-space:nowrap}
.sdb-cote i{display:inline-block;width:1px;height:12px;background:var(--accent-500)}
.sdb-cote--n{color:var(--n-500)} .sdb-cote--n::before,.sdb-cote--n::after,.sdb-cote--n i{background:var(--n-500)}
.sdb-repere{display:inline-flex;align-items:stretch;border:1px solid var(--accent-500);font-family:var(--display);font-weight:600;font-size:14px;line-height:1;color:var(--n-900);background:#fff}
.sdb-repere b{background:var(--accent-500);color:#fff;padding:7px 9px;font-weight:700}
.sdb-repere span{padding:7px 10px}
.sdb-cadre{position:relative;border:1px solid var(--n-200);border-top:2px solid var(--accent-500);background:#fff;padding:var(--s6)}
.sdb-cadre::after{content:"";position:absolute;right:-2px;top:-2px;width:36px;height:2px;background:var(--n-50)}
.sdb-cadre>h3:first-child,.sdb-cadre>*:first-child{margin-top:0}
.sdb-cadre ul{padding-left:1.1rem;margin:0}
.sdb-cote-v{position:absolute;left:-28px;top:0;bottom:0;width:1px;background:var(--accent-500)}
.sdb-cote-v::before,.sdb-cote-v::after{content:"";position:absolute;left:-5px;width:11px;height:1px;background:var(--accent-500)}
.sdb-cote-v::before{top:0}.sdb-cote-v::after{bottom:0}
.sdb-cote-v span{position:absolute;left:-7px;top:50%;transform:translate(-100%,-50%) rotate(180deg);writing-mode:vertical-rl;font-family:var(--display);font-weight:600;font-size:14px;color:var(--accent-500);white-space:nowrap}

/* ---------- Hero ---------- */
.sdb-hero{background:#fff;border-bottom:1px solid var(--n-200);padding:var(--s8) 0 var(--s12)}
.sdb-hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:var(--s8);align-items:center;max-width:1280px}
.sdb-hero--single .wrap{grid-template-columns:1fr}
.sdb-hero h1{font-size:clamp(2rem,3.2vw,2.4rem);line-height:1.1}
.sdb-hero .lead{font-size:1.1rem}
.sdb-hero .acts{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s6)}
.sdb-hero--dark{background:var(--primary-900);color:#c9d1da}
.sdb-hero--dark h1{color:#fff}.sdb-hero--dark .lead{color:#dfe5ec}
.sdb-hero--dark .sdb-cote{color:#fff}.sdb-hero--dark .sdb-cote::before,.sdb-hero--dark .sdb-cote::after,.sdb-hero--dark .sdb-cote i{background:#fff}
.sdb-hero__media{position:relative}

/* Plan schématique (SVG signature — libellés seuls, aucun chiffre présenté comme réel) */
.sdb-plan-svg{display:block;width:100%;height:auto;margin:var(--s6) 0 0}
/* Image mise en avant dans la zone média du hero (même emplacement que le plan,
   cadrée sans déformation). */
.sdb-hero__img{display:block;width:100%;height:auto;margin:var(--s6) 0 0;border:1px solid var(--n-200)}
.sdb-hero--dark .sdb-hero__img{border-color:var(--primary-800)}
.sdb-plan-svg .frame{fill:#fff;stroke:var(--n-900);stroke-width:2}
.sdb-plan-svg .el{fill:none;stroke:var(--n-900);stroke-width:1.5}
.sdb-plan-svg .el--acc{fill:var(--accent-100);stroke:var(--accent-500);stroke-width:1.5}
.sdb-plan-svg .el--pos{fill:var(--positive-100);stroke:var(--positive-500);stroke-width:1.5}
.sdb-plan-svg .dash{stroke-dasharray:5 3}
.sdb-plan-svg .lab{font-family:var(--display);font-size:11px;font-weight:600;fill:var(--n-900)}
.sdb-plan-svg .lab--acc{fill:var(--accent-500)}
.sdb-plan-svg .lab--pos{fill:#2f5e4a}

/* ---------- Sections ---------- */
.sdb-section{padding:var(--s12) 0}
.sdb-section--alt{background:var(--primary-50)}
.sdb-section--dark{background:var(--primary-900);color:#c9d1da}
.sdb-section--dark h2,.sdb-section--dark h3{color:#fff}
.sdb-section h2{margin-top:0}
.sdb-intro{font-size:1.15rem;max-width:72ch}

/* --- Intégration Gutenberg (thème classique, sans FSE ni theme.json) ---
   1a) core/group insère parfois un .wp-block-group__inner-container entre le
   groupe et ses enfants : la grille de la classe de mise en page ne verrait
   alors qu'un seul enfant. display:contents rend ce wrapper transparent pour
   que la grille voie directement ses enfants. S'applique PARTOUT (contenu
   rédacteur de toutes les pages), pas seulement à l'accueil. */
.sdb-portes > .wp-block-group__inner-container,
.sdb-2col > .wp-block-group__inner-container,
.sdb-options > .wp-block-group__inner-container,
.sdb-option > .wp-block-group__inner-container,
.sdb-paliers > .wp-block-group__inner-container,
.sdb-conserve > .wp-block-group__inner-container,
.sdb-av-ap > .wp-block-group__inner-container,
.sdb-cas > .wp-block-group__inner-container,
.sdb-fiche > .wp-block-group__inner-container{display:contents}

/* core/columns portant une classe de mise en page : forcer la grille du thème
   (spécificité > .wp-block-columns du cœur, quel que soit l'ordre de chargement)
   et neutraliser les marges de colonnes. */
.wp-block-columns.sdb-portes{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0}
.wp-block-columns.sdb-2col{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s12);margin:0}
.wp-block-columns.sdb-portes > .wp-block-column,
.wp-block-columns.sdb-2col > .wp-block-column{margin:0;min-width:0}

/* 2) Sections de contenu (core/group.sdb-section) : bandes PLEINE LARGEUR
   alternées (blanc / primary-50) ; l'inner-container est borné a --wide et
   centré. Le contenu de l'accueil n'est plus enveloppé dans un .wrap unique. */
.wp-block-group.sdb-section{background:var(--white)}
.wp-block-group.sdb-section--alt{background:var(--primary-50)}
.sdb-section > .wp-block-group__inner-container{max-width:var(--wide);margin:0 auto;padding:0 var(--s6)}
.sdb-section > .wp-block-group__inner-container > :first-child{margin-top:0}

/* Routage par intention (accueil) — deux portes, pas des cartes */
.sdb-portes{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--n-200);background:#fff}
.sdb-porte{padding:var(--s8);text-decoration:none;color:inherit;position:relative}
.sdb-porte+.sdb-porte{border-left:1px solid var(--n-200)}
.sdb-porte h3{margin-top:0;font-size:1.75rem}
.sdb-porte:hover h3{color:var(--accent-500)}
.sdb-porte ul{margin:var(--s4) 0 0;padding:0;list-style:none}
.sdb-porte li{padding:8px 0;border-top:1px solid var(--n-200)}
.sdb-porte li span{color:var(--n-500);font-size:15px}
.sdb-porte--incident{background:var(--n-50)}

/* Liste de solutions / familles — lignes, pas cartes */
.sdb-lignes{list-style:none;padding:0;margin:0;border-top:2px solid var(--n-900)}
.sdb-lignes li{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;gap:var(--s6);padding:var(--s4) 0;border-bottom:1px solid var(--n-200);align-items:baseline}
.sdb-lignes strong{font-family:var(--display);font-size:1.15rem;font-weight:600;color:var(--n-900)}
.sdb-lignes a{white-space:nowrap;font-weight:600}
.sdb-lignes li:hover{background:#fff}

/* Encadrés */
.sdb-encadre{border-left:4px solid var(--accent-500);background:var(--accent-100);padding:var(--s4) var(--s6);margin:var(--s6) 0}
.sdb-encadre__titre{font-family:var(--display);font-weight:700;color:var(--n-900);margin:0 0 var(--s2);font-size:1.05rem}
.sdb-conseil{border:1px solid var(--n-200);border-left:4px solid var(--positive-500);background:#fff;padding:var(--s4) var(--s6);margin:var(--s6) 0}
.sdb-limite{border:1px solid var(--n-200);border-left:4px solid var(--n-500);background:#fff;padding:var(--s4) var(--s6);margin:var(--s6) 0}
.sdb-limite .sdb-encadre__titre{color:var(--n-700)}
.sdb-encadre>*:last-child,.sdb-conseil>*:last-child,.sdb-limite>*:last-child{margin-bottom:0}

/* Réassurance : liste factuelle, pas badges */
.sdb-faits{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s8);margin:var(--s6) 0;padding:0;list-style:none;font-size:15px;color:var(--n-700)}
.sdb-faits li{padding-left:16px;position:relative}
.sdb-faits li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border:1.5px solid var(--accent-500)}
.sdb-hero--dark .sdb-faits{color:#dfe5ec}

/* Sommaire */
/* Sommaire — colonne (PC) et version repliable (mobile) */
.sdb-sommaire{background:var(--white);border:1px solid var(--n-200);padding:var(--s4) var(--s6)}
.sdb-sommaire__toggle{display:none}
.sdb-sommaire .sdb-cote{margin-top:0}
.sdb-sommaire__titre{font-family:var(--display);font-weight:600;font-size:15px;color:var(--n-900);margin:var(--s2) 0 var(--s3)}
.sdb-sommaire ol{list-style:none;margin:0;padding:0;counter-reset:somm;font-size:15px}
.sdb-sommaire li{counter-increment:somm;margin:0}
.sdb-sommaire a{display:flex;gap:10px;align-items:flex-start;padding:6px 0;color:var(--n-700);text-decoration:none;line-height:1.4}
.sdb-sommaire a::before{content:counter(somm);flex:0 0 auto;width:22px;height:22px;border:1.5px solid var(--accent-500);color:var(--accent-500);font-family:var(--display);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}
.sdb-sommaire a:hover{color:var(--accent-500)}
.sdb-sommaire a[aria-current="true"]{color:var(--accent-500);font-weight:600}
.sdb-sommaire a[aria-current="true"]::before{background:var(--accent-500);color:#fff}

/* Colonne collante sommaire + formulaire, défilement interne discret */
.sdb-rail{position:sticky;top:calc(var(--cdb-header-h) + var(--s6));max-height:calc(100vh - var(--cdb-header-h) - var(--s6));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--n-200) transparent}
.sdb-rail::-webkit-scrollbar{width:6px}
.sdb-rail::-webkit-scrollbar-thumb{background:var(--n-200)}
.sdb-rail>*+*{margin-top:var(--s6)}

/* Tableau */
.sdb-tableau{overflow-x:auto;margin:var(--s6) 0}
.sdb-tableau table{width:100%;border-collapse:collapse;font-size:15px;min-width:520px;background:#fff}
.sdb-tableau th{text-align:left;font-family:var(--display);font-size:1.05rem;padding:12px;border-bottom:2px solid var(--n-900);color:var(--n-900)}
.sdb-tableau td{padding:12px;border-bottom:1px solid var(--n-200);vertical-align:top}
.sdb-tableau td:first-child{font-weight:600;color:var(--n-900)}
.sdb-tableau .num{font-family:var(--display);font-weight:600;color:var(--accent-500);white-space:nowrap}

/* Paliers de budget (page prix) */
.sdb-paliers{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--n-200);background:#fff;margin:var(--s6) 0}
.sdb-palier{padding:var(--s6);position:relative}
.sdb-palier+.sdb-palier{border-left:1px solid var(--n-200)}
.sdb-palier .montant{font-family:var(--display);font-size:2rem;font-weight:700;color:var(--n-900);line-height:1;margin-bottom:var(--s2)}
.sdb-palier .montant small{display:block;font-size:14px;color:var(--n-500);font-family:var(--body);margin-top:4px}
.sdb-palier ul{margin:var(--s3) 0 0;padding:0;list-style:none;font-size:15px}
.sdb-palier li{padding:6px 0;border-top:1px solid var(--n-200)}
.sdb-palier--coeur{background:var(--accent-100)}
.sdb-palier--coeur::before{content:"cœur de cible";position:absolute;top:-1px;left:-1px;background:var(--accent-500);color:#fff;font-family:var(--display);font-weight:600;font-size:13px;padding:4px 8px}

/* Options / arbitrages (projet) */
.sdb-options{border-top:2px solid var(--n-900);margin:var(--s6) 0}
.sdb-option{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:var(--s6);padding:var(--s6) 0;border-bottom:1px solid var(--n-200)}
.sdb-option h3{margin:0;font-size:1.25rem}
.sdb-option .lab{font-size:14px;color:var(--n-500);display:block;margin-bottom:4px}

/* Étapes (process, guides) — aucun schema */
.sdb-etapes{list-style:none;padding:0;margin:var(--s6) 0;counter-reset:e}
.sdb-etapes>li{position:relative;padding:0 0 var(--s6) 44px;counter-increment:e;border-left:1px solid var(--accent-500);margin-left:14px}
.sdb-etapes>li::before{content:counter(e);position:absolute;left:-15px;top:0;width:28px;height:28px;background:#fff;border:1.5px solid var(--accent-500);color:var(--accent-500);font-family:var(--display);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px}
.sdb-etapes>li:last-child{border-left-color:transparent}
.sdb-etapes strong{font-family:var(--display);font-size:1.15rem;color:var(--n-900);display:block}

/* Procédure réalisable par le lecteur (guides) → HowTo */
.sdb-howto{list-style:none;padding:0;margin:var(--s6) 0;counter-reset:h}
.sdb-howto>li{position:relative;padding:0 0 var(--s6) 44px;counter-increment:h;border-left:1px solid var(--accent-500);margin-left:14px}
.sdb-howto>li::before{content:counter(h);position:absolute;left:-15px;top:0;width:28px;height:28px;background:#fff;border:1.5px solid var(--accent-500);color:var(--accent-500);font-family:var(--display);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px}
.sdb-howto>li:last-child{border-left-color:transparent}
.sdb-howto strong{font-family:var(--display);font-size:1.15rem;color:var(--n-900);display:block}

/* Photo réelle */
.sdb-photo{position:relative;background:var(--primary-100);border:1px solid var(--n-200);overflow:hidden}
.sdb-photo img{display:block;width:100%;height:100%;object-fit:cover}
.sdb-photo--ph{aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;color:var(--n-500);font-size:14px;text-align:center;padding:var(--s4)}
.sdb-photo--avant::after,.sdb-photo--apres::after{position:absolute;top:0;left:0;background:var(--n-900);color:#fff;font-family:var(--display);font-weight:600;padding:5px 10px;font-size:14px;z-index:1}
.sdb-photo--avant::after{content:"avant"}
.sdb-photo--apres::after{content:"après";background:var(--accent-500)}
.sdb-av-ap{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin:var(--s6) 0}

/* Fiche cas réel — reste correcte de 1 à 4 valeurs */
.sdb-fiche{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));border:1px solid var(--n-200);background:#fff;margin:var(--s6) 0}
.sdb-fiche div{padding:var(--s4) var(--s6);border-right:1px solid var(--n-200)}
.sdb-fiche div:last-child{border-right:0}
.sdb-fiche span{display:block;font-size:14px;color:var(--n-500)}
.sdb-fiche b{font-family:var(--display);font-size:1.5rem;font-weight:700;color:var(--n-900)}
.sdb-conserve{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6);margin:var(--s6) 0}
.sdb-conserve ul{list-style:none;padding:0;margin:0;border-top:2px solid var(--n-900)}
.sdb-conserve li{padding:8px 0;border-bottom:1px solid var(--n-200)}
.sdb-conserve h3{margin-top:0}
.sdb-conserve .pos li::before{content:"conservé";font-size:12px;color:#2f5e4a;background:var(--positive-100);padding:2px 6px;margin-right:8px;font-family:var(--display);font-weight:600}
.sdb-conserve .chg li::before{content:"changé";font-size:12px;color:#fff;background:var(--accent-500);padding:2px 6px;margin-right:8px;font-family:var(--display);font-weight:600}

/* Liste de cas (hub réalisations) */
.sdb-cas{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s6)}
.sdb-cas article{background:#fff;border:1px solid var(--n-200)}
.sdb-cas article .sdb-photo{aspect-ratio:3/2;border:0;border-bottom:1px solid var(--n-200)}
.sdb-cas .body{padding:var(--s4) var(--s6) var(--s6)}
.sdb-cas h3{margin:0 0 var(--s2);font-size:1.25rem}
.sdb-cas h3 a{text-decoration:none;color:inherit}
.sdb-cas h3 a:hover{color:var(--accent-500)}
.sdb-cas .fiche-mini{display:flex;flex-wrap:wrap;gap:var(--s4);font-family:var(--display);font-weight:600;color:var(--accent-500);font-size:15px;margin-bottom:var(--s3)}
.sdb-filtres{display:flex;gap:var(--s2);flex-wrap:wrap;margin:var(--s6) 0}
.sdb-filtres a,.sdb-filtres button{font:600 15px var(--body);background:#fff;border:1px solid var(--n-200);padding:8px 14px;color:var(--n-700);min-height:44px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.sdb-filtres a[aria-current],.sdb-filtres a.is-active,.sdb-filtres button[aria-pressed=true]{border-color:var(--accent-500);color:var(--accent-500);background:var(--accent-100)}

/* Outil (slot) */
.sdb-outil{border:1px solid var(--n-200);background:#fff;padding:var(--s6);margin:var(--s6) 0}
.sdb-outil__q{font-family:var(--display);font-size:1.35rem;font-weight:600;color:var(--n-900);margin:0 0 var(--s4)}
.sdb-outil .rep{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s3)}
.sdb-outil .rep button{font:600 16px var(--body);background:#fff;border:1.5px solid var(--n-200);padding:14px;text-align:left;color:var(--n-900);cursor:pointer;min-height:44px}
.sdb-outil .rep button:hover{border-color:var(--accent-500)}
.sdb-outil .prog{display:flex;gap:6px;margin-bottom:var(--s4)}
.sdb-outil .prog i{flex:1;height:4px;background:var(--n-200)}
.sdb-outil .prog i.on{background:var(--accent-500)}
.sdb-outil__empty{color:var(--n-500);font-size:15px;margin:0}
.sdb-resultat{border:1px solid var(--n-200);border-top:3px solid var(--accent-500);background:#fff;padding:var(--s6);margin:var(--s6) 0}
.sdb-resultat .grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--s6)}
.sdb-resultat h4{font-family:var(--display);margin:0 0 var(--s2);font-size:1.05rem;color:var(--n-900)}
.sdb-resultat ul{margin:0;padding-left:1.1rem;font-size:15px}
.sdb-resultat .certain{border-left:3px solid var(--positive-500);padding-left:12px}
.sdb-resultat .probable{border-left:3px solid var(--accent-500);padding-left:12px}
.sdb-resultat .inconnu{border-left:3px solid var(--n-500);padding-left:12px}

/* Outil « Situer votre projet » (P5) — sur le modèle de sdb-resultat */
.sdb-situer__out h3{margin-top:0}
.sdb-situer__montant{margin:var(--s2) 0 var(--s4)}
.sdb-situer__montant .lab{font-size:15px;color:var(--n-500)}
.sdb-situer__montant b{display:block;font-family:var(--display);font-size:2rem;font-weight:700;line-height:1.1;color:var(--n-900)}
.sdb-situer__duree{font-size:15px;color:var(--n-700);margin:0 0 var(--s4)}
.sdb-situer__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s6)}
.sdb-situer__fixes{margin-top:var(--s6)}
.sdb-situer__fixes p{font-size:14px;color:var(--n-500);margin:0 0 var(--s2)}
.sdb-situer__fixes p:last-child{margin-bottom:0}
.sdb-situer__res .acts{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s6)}
.sdb-situer .rep button[aria-pressed="true"]{border-color:var(--accent-500);color:var(--accent-500)}

/* Outil diagnostic (P9/P10/P11) — résultat vertical en 4 parties + sdb-limite (stop) */
.sdb-diagnostic .rep{grid-template-columns:1fr}
.sdb-diagnostic .rep button[aria-pressed="true"]{border-color:var(--accent-500);color:var(--accent-500);background:var(--accent-100);font-weight:600}
/* Choix multiple : mention sous l'intitulé + zone de validation nettement séparée */
.sdb-diagnostic__multi{margin:0 0 var(--s4)}
.sdb-diagnostic__valider{margin-top:var(--s8);padding-top:var(--s6);border-top:1px solid var(--n-200)}
.sdb-diagnostic__valider .sdb-btn[disabled]{opacity:.45;cursor:not-allowed}
.sdb-diagnostic__screen{animation:cdb-fade .15s ease}
.sdb-diagnostic__back{background:none;border:0;color:var(--accent-500);font:600 15px var(--body);cursor:pointer;padding:0;margin-bottom:var(--s3)}
.sdb-diagnostic__note{margin-top:var(--s4)}
.sdb-diagnostic__stop{margin:0}
.sdb-diagnostic__stop ol{margin:var(--s3) 0 0;padding-left:1.2rem}
.sdb-diagnostic__stop li{margin-bottom:var(--s2)}
/* Résultat en 4 parties verticales : verdict / vérifier / technicien / étape */
.sdb-diagnostic__part{margin:0 0 var(--s5)}
.sdb-diagnostic__part h3{font-family:var(--display);margin:0 0 var(--s2);font-size:1.05rem;color:var(--n-900)}
.sdb-diagnostic__part ul{margin:0;padding-left:1.1rem;font-size:15px}
.sdb-diagnostic__verdict{border-left:3px solid var(--accent-500);padding-left:var(--s4)}
.sdb-diagnostic__verdict p{margin:0 0 var(--s2)}
.sdb-diagnostic__verdict ul{color:var(--n-700)}
.sdb-diagnostic__tech ul{color:var(--n-700)}
.sdb-diagnostic__link{margin:var(--s3) 0 0}
.sdb-diagnostic__etape{border-left:3px solid var(--accent-500);background:var(--accent-100);padding:var(--s3) var(--s4);margin:var(--s6) 0 0}
.sdb-diagnostic__etape strong{font-family:var(--display);color:var(--n-900);display:block;margin-bottom:var(--s2)}
.sdb-diagnostic__etape p{margin:0}
.sdb-diagnostic__res .acts{display:flex;gap:var(--s3);flex-wrap:wrap;margin-top:var(--s6)}
.sdb-diagnostic__restart{background:none;border:0;color:var(--n-500);font:400 14px var(--body);cursor:pointer;text-decoration:underline;padding:0;margin-top:var(--s4)}
@keyframes cdb-fade{from{opacity:0}to{opacity:1}}
/* Titre H2 de l'outil + intro (au-dessus de la 1re question) */
.sdb-diagnostic__title{margin:0 0 var(--s3)}
.sdb-diagnostic__intro{margin:0 0 var(--s6);color:var(--n-700)}
.sdb-diagnostic__intro p{margin:0 0 var(--s2)}
.sdb-diagnostic__intro p:last-child{margin-bottom:0}
/* Largeur de lecture : tout l'outil, y compris le résultat (désormais vertical). */
.sdb-diagnostic__title,.sdb-diagnostic__screen,.sdb-diagnostic__stop,.sdb-diagnostic__res{max-width:var(--reading)}
/* Resserrement vertical */
.sdb-diagnostic .prog{margin-bottom:var(--s4)}
.sdb-diagnostic .sdb-outil__q{margin:var(--s2) 0 var(--s4)}

/* Urgent : action immédiate + « nous joindre » (chrome du template incident) */
.sdb-action{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--s8);border:1px solid var(--n-200);background:#fff;margin:var(--s6) 0}
.sdb-action>div{padding:var(--s6)}
.sdb-action>div+div{border-left:1px solid var(--n-200);background:var(--n-50)}
.sdb-action h3{margin-top:0}
.sdb-joindre{padding:var(--s6);background:var(--n-50);border:1px solid var(--n-200);border-top:3px solid var(--accent-500);margin:var(--s6) 0}
.sdb-joindre h3{margin-top:0}
.sdb-joindre .tel{font-family:var(--display);font-size:2rem;font-weight:700;color:var(--n-900);text-decoration:none;display:inline-block;margin:var(--s2) 0}
.sdb-joindre .zone{color:var(--n-500);font-size:15px}

/* CTA */
.sdb-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s6);align-items:center;background:var(--primary-900);color:#c9d1da;padding:var(--s8);margin:var(--s12) 0}
.sdb-cta h3{color:#fff;margin:0 0 var(--s2)}
.sdb-cta p{margin:0}
.sdb-cta .acts{display:flex;gap:var(--s3);flex-wrap:wrap}
.sdb-cta .sdb-btn--ghost{color:#fff;border-color:#fff}
.sdb-cta--soft{background:var(--accent-100);color:var(--n-700);border:1px solid var(--n-200)}
.sdb-cta--soft h3{color:var(--n-900)}.sdb-cta--soft .sdb-btn--ghost{color:var(--accent-500);border-color:var(--accent-500)}

/* FAQ */
.sdb-faq details{border-top:1px solid var(--n-200);padding:var(--s3) 0}
.sdb-faq details:last-child{border-bottom:1px solid var(--n-200)}
.sdb-faq summary{cursor:pointer;font-family:var(--display);font-weight:600;font-size:1.15rem;color:var(--n-900);list-style:none;display:flex;justify-content:space-between;gap:var(--s4);padding:6px 0}
.sdb-faq summary::-webkit-details-marker{display:none}
.sdb-faq summary::after{content:"+";color:var(--accent-500);font-weight:700}
.sdb-faq details[open] summary::after{content:"–"}
.sdb-faq p{margin:var(--s2) 0 var(--s3);max-width:70ch}

/* Fil d'Ariane */
.sdb-ariane{font-size:14px;color:var(--n-500);padding:var(--s3) 0 0}
.sdb-ariane a{color:var(--n-500);text-decoration:none}
.sdb-ariane a:hover{color:var(--accent-500)}
.sdb-ariane span{margin:0 8px}

/* Deux colonnes (texte + aside) */
.sdb-2col{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:var(--s12)}
.sdb-aside{position:sticky;top:var(--s6)}
.sdb-aside>*+*{margin-top:var(--s6)}

/* Liens de repli (recherche / 404) */
.sdb-menu-inline{list-style:none;display:flex;flex-wrap:wrap;gap:var(--s4);padding:0;margin:var(--s4) 0;font-weight:600}
.sdb-menu-inline a{text-decoration:none}

/* Utilitaires d'espacement (évitent tout style="" dans les templates) */
.sdb-more{margin-top:var(--s6)}
.sdb-mt12{margin-top:var(--s12)}
.sdb-note{margin:var(--s4) 0}

/* Prose (the_content) — rythme vertical par défaut */
.sdb-prose{overflow-wrap:break-word}
.sdb-prose>h2:first-child{margin-top:0}
.sdb-prose figure{margin:var(--s6) 0}
.sdb-prose figcaption{font-size:14px;color:var(--n-500);margin-top:var(--s2)}
.sdb-prose .wp-block-image{margin:var(--s6) 0}
/* Tableaux natifs Gutenberg collés dans le contenu (SANS classe .sdb-tableau) :
   conteneur défilant + largeur naturelle avec un plancher de colonne, pour que
   les tableaux larges défilent proprement dans leur cadre (1re colonne lisible,
   la page ne défile pas de côté grâce à html{overflow-x:clip}) et que les
   tableaux courts de 2-3 colonnes remplissent la largeur sans défilement. */
.sdb-prose .wp-block-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sdb-prose .wp-block-table>table{width:auto;min-width:100%;border-collapse:collapse;font-size:15px}
.sdb-prose .wp-block-table th,.sdb-prose .wp-block-table td{border:1px solid var(--n-200);padding:10px;min-width:9rem}
/* C) .sdb-tableau est lui aussi un .wp-block-table sous .sdb-prose : les règles
   natives ci-dessus l'atteignaient et écrasaient son rendu (filet bas seul,
   padding 12, largeur mini 520). On le réaffirme APRÈS, à spécificité égale,
   pour qu'il l'emporte. (.sdb-tableau ne sort jamais du contenu → prose sûr.) */
.sdb-prose .sdb-tableau table{width:100%;min-width:520px}
.sdb-prose .sdb-tableau th{border:0;border-bottom:2px solid var(--n-900);padding:12px}
.sdb-prose .sdb-tableau td{border:0;border-bottom:1px solid var(--n-200);padding:12px}

/* ---------- Formulaires (slot Contact Form 7) ---------- */
.sdb-formslot{margin:var(--s4) 0 0}
.sdb-formslot .sdb-meta{margin-bottom:var(--s4)}
.sdb-formslot .wpcf7-form p{margin:0 0 var(--s3)}
.sdb-formslot .wpcf7-form label{display:block;font-weight:600;font-size:15px;margin-bottom:4px;color:var(--n-900)}
.sdb-formslot .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.sdb-formslot .wpcf7-form textarea,
.sdb-formslot .wpcf7-form select{width:100%;padding:12px;border:1px solid var(--n-200);font:inherit;background:#fff;color:var(--n-900)}
.sdb-formslot .wpcf7-form textarea{min-height:120px}
.sdb-formslot .wpcf7-submit{background:var(--accent-500);color:#fff;border:2px solid var(--accent-500);font-family:var(--body);font-weight:700;padding:14px 22px;min-height:44px;font-size:16px;cursor:pointer;width:auto}
.sdb-formslot .wpcf7-submit:hover{background:var(--accent-600);border-color:var(--accent-600)}
.sdb-formslot .wpcf7-not-valid-tip{color:var(--n-700);font-size:14px}
.sdb-formslot .wpcf7-form .wpcf7-not-valid{border-color:var(--accent-500);border-left-width:3px}
.sdb-formslot .wpcf7-response-output{border:1px solid var(--n-200);padding:12px;font-size:15px;margin:var(--s4) 0 0}
.sdb-formslot__missing{border:1px dashed var(--n-200);padding:var(--s6);color:var(--n-500);font-size:14px;text-align:center}

/* ---------- Barre d'actions mobile ---------- */
.sdb-barre{display:none}

/* ---------- Responsive ---------- */
@media (max-width:820px){
  .sdb-hero .wrap,.sdb-2col,.sdb-portes,.sdb-cas,.sdb-paliers,.sdb-option,.sdb-conserve,.sdb-action,.sdb-cta,.sdb-resultat .grid,.sdb-footer .wrap,.sdb-av-ap{grid-template-columns:1fr}
  .wp-block-columns.sdb-portes,.wp-block-columns.sdb-2col{grid-template-columns:1fr}
  .sdb-porte+.sdb-porte,.sdb-palier+.sdb-palier,.sdb-action>div+div{border-left:0;border-top:1px solid var(--n-200)}
  .sdb-fiche div{border-right:0;border-bottom:1px solid var(--n-200)}
  .sdb-fiche div:last-child{border-bottom:0}
  .sdb-lignes li{grid-template-columns:1fr}
  .sdb-lignes a{white-space:normal}

  /* Tableaux du contenu → fiches empilées verticalement (plus de défilement).
     Le <table> reste un vrai tableau dans le HTML ; la mise en fiches est
     visuelle. Couvre .sdb-tableau (avec/sans inner-container) ET les tableaux
     natifs sans groupe. Les libellés de colonne devant chaque valeur viennent
     de l'attribut data-label posé par main.js (repris du <thead>) ; sans
     data-label (tableau sans en-tête), les valeurs s'empilent sans libellé.
     Spécificité alignée sur les règles tableau globales + source postérieure
     pour l'emporter. */
  .sdb-prose .wp-block-table{overflow-x:visible}
  .sdb-prose .wp-block-table>table,
  .sdb-prose .sdb-tableau table,
  .sdb-prose table{display:block;width:100%;min-width:0}
  .sdb-prose thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .sdb-prose tbody{display:block}
  .sdb-prose tr{display:block;border:0;border-top:1px solid var(--n-200);padding:var(--s4) 0}
  .sdb-prose tbody tr:first-child{border-top:0}
  .sdb-prose .wp-block-table th,.sdb-prose .wp-block-table td,
  .sdb-prose .sdb-tableau th,.sdb-prose .sdb-tableau td,
  .sdb-prose th,.sdb-prose td{display:block;border:0;padding:0;min-width:0}
  .sdb-prose td:first-child{font-family:var(--display);font-weight:700;font-size:1.05rem;color:var(--n-900);margin:0 0 var(--s2)}
  .sdb-prose td[data-label]:not(:first-child){margin-top:var(--s2)}
  .sdb-prose td[data-label]:not(:first-child)::before{content:attr(data-label) " : ";font-weight:600;color:var(--n-700)}
  .sdb-situer .rep,.sdb-situer__grid{grid-template-columns:1fr}
  .sdb-aside{position:static}
  .sdb-rail{position:static;max-height:none;overflow:visible}
  .sdb-cote-v{display:none}
  h2{margin-top:var(--s8)}
  .sdb-cta{padding:var(--s6)}
  .sdb-section{padding:var(--s8) 0}
  .sdb-hero{padding:var(--s6) 0 var(--s8)}
  /* Menu off-canvas */
  .sdb-menu-toggle{display:inline-flex}
  .sdb-header .sdb-btn--tel{display:none}
  .sdb-header .sdb-nav{position:fixed;inset:0;z-index:999;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:var(--s6);background:#fff;margin:0;padding:var(--s16) var(--s8);font-size:1.5rem;transform:translateX(100%);transition:transform .2s ease}
  .sdb-header .sdb-nav.is-open{transform:none}
  body.sdb-menu-open .sdb-nav__close{display:flex;position:fixed;top:var(--s4);right:var(--s4);z-index:1000;width:44px;height:44px;align-items:center;justify-content:center;background:#fff;border:1px solid var(--n-200)}
  .sdb-nav__close svg{width:24px;height:24px}
  body.sdb-menu-open{overflow:hidden}

  /* Header masquable + place réservée (pages à sommaire) */
  body.has-sommaire .sdb-header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:transform .2s ease}
  body.has-sommaire .sdb-header.is-hidden{transform:translateY(-100%)}
  body.has-sommaire{padding-top:calc(var(--cdb-header-h) + 44px);transition:padding-top .2s ease}

  /* Sommaire : ligne fixe sous le header, panneau dépliable */
  body.has-sommaire .sdb-sommaire{position:fixed;left:0;right:0;top:var(--cdb-header-h);z-index:800;background:var(--white);border:0;border-bottom:1px solid var(--n-200);padding:0;transition:top .2s ease}
  .sdb-sommaire__toggle{display:flex;align-items:center;gap:var(--s3);width:100%;height:44px;padding:0 var(--s6);background:var(--white);border:0;cursor:pointer;font-family:var(--body);text-align:left}
  .sdb-sommaire__label{font-family:var(--display);font-weight:600;font-size:15px;color:var(--n-900)}
  .sdb-sommaire__now{flex:1;min-width:0;font-size:14px;color:var(--n-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sdb-sommaire__chevron{flex:0 0 auto;width:20px;height:20px;color:var(--n-500);transition:transform .15s ease}
  .sdb-sommaire.is-open .sdb-sommaire__chevron{transform:rotate(180deg)}
  .sdb-sommaire .sdb-cote,.sdb-sommaire__titre{display:none}
  .sdb-sommaire__panel{display:none}
  .sdb-sommaire.is-open .sdb-sommaire__panel{display:block;position:absolute;left:0;right:0;top:44px;background:var(--white);border-bottom:1px solid var(--n-200);padding:var(--s3) var(--s6) var(--s4);max-height:60vh;overflow-y:auto;animation:cdb-somm .15s ease}
  .sdb-sommaire__panel li a{min-height:48px;align-items:center}

  /* Barre d'actions basse */
  .sdb-barre{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:900;gap:1px;background:var(--primary-900);padding-bottom:env(safe-area-inset-bottom)}
  .sdb-barre .sdb-btn{flex:1;display:flex;align-items:center;justify-content:center;min-height:56px;border:0;text-align:center}
  .sdb-barre .sdb-btn--ghost{background:var(--primary-900);color:#fff;box-shadow:inset 0 0 0 1px #fff}
  body.has-barre-mobile{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
}
@keyframes cdb-somm{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* =====================================================================
   Polices auto-hébergées (WOFF2, sous-ensemble latin — couvre le français).
   Fichiers dans assets/fonts/, licences OFL 1.1 à côté (Barlow-OFL.txt,
   SourceSans3-OFL.txt). Total ~91 Ko. Preload des deux fichiers au-dessus
   de la ligne de flottaison géré par inc/performance.php.
   ===================================================================== */
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/barlow-semi-condensed-600.woff2) format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/barlow-semi-condensed-700.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/source-sans-3-400.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/source-sans-3-600.woff2) format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/source-sans-3-700.woff2) format("woff2")}
