/*!
 * MJ Rénovation Toiture — feuille de style unique du thème.
 * Repris de la maquette V1 « clair & aéré », nettoyé des éléments de
 * prévisualisation, complété de la couche WordPress.
 * Aucune requête réseau : les seules URL sont des data: URI inline.
 */
/* ============ TOKENS ============ */
:root{
  --rouge:#D9482B; --rouge-cta:#C7401F; --rouge-fonce:#B03720; --rouge-sombre:#7A2415; --rouge-pale:#FDEDE8;
  --graphite:#17181A; --graphite-2:#2A2C2F;
  --ivoire:#FBF8F5; --sable:#F0E9E3; --blanc:#FFFFFF;
  --gris:#6B6560; --vert:#1B7A5A; --ligne:#EDE4DC;
  --r-card:18px; --r-lg:24px; --r-sm:14px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(23,24,26,.04), 0 2px 8px rgba(23,24,26,.04);
  --sh-2:0 2px 4px rgba(23,24,26,.04), 0 10px 24px rgba(23,24,26,.06);
  --sh-3:0 4px 8px rgba(23,24,26,.05), 0 20px 48px rgba(23,24,26,.10);
  --sh-red:0 8px 20px rgba(217,72,43,.24);
  --pv:0px;
  --ttl:'Inter Tight','Manrope','Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --txt:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --pad:clamp(72px,7vw,104px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--ivoire); color:var(--graphite);
  font-family:var(--txt); font-size:17px; line-height:1.62; font-weight:400;
  -webkit-font-smoothing:antialiased; overflow-wrap:break-word; padding-top:var(--pv);
}
img{max-width:100%; height:auto; display:block; background:var(--sable); color:var(--gris); font-size:12px}
h1,h2,h3,h4{font-family:var(--ttl); letter-spacing:-.03em; line-height:1.08; margin:0; font-weight:800; text-wrap:balance}
h1{font-size:clamp(38px,5.5vw,68px)}
h2{font-size:clamp(28px,3.4vw,44px)}
h3{font-size:clamp(19px,1.5vw,23px); letter-spacing:-.02em; line-height:1.25}
h4{font-size:17px; letter-spacing:-.02em; font-weight:700}
p{margin:0 0 14px}
a{color:inherit}
ul{margin:0 0 14px; padding-left:20px}
li{margin:0 0 6px}
button{font:inherit; color:inherit}
:focus-visible{outline:3px solid var(--rouge); outline-offset:3px; border-radius:6px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;z-index:999;background:var(--rouge-cta);color:#fff;padding:12px 18px;border-radius:0 0 12px 0}
.skip:focus{left:0}

/* ============ LAYOUT ============ */
.wrap{width:min(1240px,100% - 40px); margin-inline:auto}
@media (max-width:600px){ .wrap{width:min(1240px,100% - 32px)} }
section{padding-block:var(--pad)}
.bg-w{background:var(--blanc)}
.bg-s{background:var(--sable)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--rouge-pale);color:var(--rouge-fonce);
  font-size:13.5px;font-weight:600;padding:7px 14px;border-radius:var(--r-pill);margin:0 0 18px;letter-spacing:.01em}
.eyebrow svg{width:15px;height:15px}
.lede{color:var(--gris);font-size:clamp(16px,1.2vw,18px);max-width:56ch;margin:14px 0 0}
.sec-head{margin-bottom:clamp(28px,3.5vw,48px)}
.sec-head .lede{margin-top:12px}

/* ============ BOUTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:14px 26px;
  border-radius:var(--r-pill);font-family:var(--ttl);font-weight:700;font-size:16.5px;letter-spacing:-.01em;
  text-decoration:none;border:1.75px solid transparent;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.btn svg{width:19px;height:19px;flex:none}
.btn-p{background:var(--rouge-cta);color:#fff;box-shadow:var(--sh-red)}
.btn-p:hover{background:var(--rouge-fonce);transform:translateY(-2px);box-shadow:0 12px 26px rgba(217,72,43,.3)}
.btn-o{background:var(--blanc);color:var(--graphite);border-color:var(--ligne);box-shadow:var(--sh-1)}
.btn-o:hover{border-color:var(--rouge);color:var(--rouge-fonce);transform:translateY(-2px)}
.btn-g{background:var(--graphite);color:#fff}
.btn-g:hover{background:var(--graphite-2);transform:translateY(-2px)}
.btn-full{width:100%}
.btn-lg{min-height:60px;font-size:18px;padding:16px 32px}

/* ============ BARRE UTILITAIRE ============ */
.topbar{background:var(--graphite);color:#CFC8C2;font-size:13.5px;border-bottom:1px solid #2A2C2F}
.topbar .wrap{display:flex;align-items:center;gap:10px 22px;flex-wrap:wrap;min-height:44px;padding-block:6px}
.topbar a{color:#fff;text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:7px;min-height:44px}
.topbar a:hover{color:var(--rouge-pale)}
.topbar svg{width:15px;height:15px}
.tb-zone{display:inline-flex;align-items:center;gap:7px}
/* Note Google : remontée ici depuis la barre collante, faute de place en en-tête. */
.tb-note{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.tb-note b{color:#fff;font-family:var(--ttl)}
.tb-note svg{color:#E8A317}
.tb-urg{display:inline-flex;align-items:center;gap:8px;margin-left:auto;background:rgba(217,72,43,.2);
  color:#FFD9CF;border-radius:var(--r-pill);padding:4px 12px;font-weight:600}
.dot{width:8px;height:8px;border-radius:50%;background:var(--rouge);flex:none;animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}

/* ============ EN-TÊTE ============ */
.hdr{position:sticky;top:var(--pv);z-index:100;background:rgba(251,248,245,.92);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--ligne)}
/* La barre reste sur UNE seule ligne : rien n'y passe jamais à la ligne. */
/*
 * L'en-tête a sa propre largeur utile, plus large que la colonne de lecture :
 * le menu réel compte DIX entrées (Accueil, Couverture, Charpente, Zinguerie,
 * Isolation, Urgence, Réalisations, Zones d'intervention, Prix, Contact) et
 * mesure ~1 000 px ; avec le logo et le bouton « Devis gratuit », 1 240 px ne
 * suffisent pas. On monte à 1 460 px et on ne montre la barre horizontale
 * qu'à partir de 1 440 px de fenêtre — en dessous, burger.
 */
.hdr .wrap{width:min(1460px,100% - 40px);display:flex;flex-wrap:nowrap;align-items:center;gap:14px;min-height:76px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none;min-height:44px}
.logo-img{height:44px;width:auto;display:block;background:none}
/*
 * La baseline textuelle est masquée dans l'en-tête : la largeur utile y est
 * plafonnée à 1240 px par .wrap, et ses ~195 px poussaient le menu sur le
 * bouton de devis. La baseline reste affichée dans le bandeau de tête.
 */
.logo-base{display:none;font-family:var(--txt);font-size:11px;font-weight:600;color:var(--gris);letter-spacing:.05em;
  text-transform:uppercase;line-height:1.2;border-left:1px solid var(--ligne);padding-left:12px;white-space:nowrap}
@media (max-width:1439px){ .logo-img{height:34px} }
/* min-width:0 : la nav accepte de se comprimer avant de pousser le bouton. */
.nav{display:flex;gap:0;margin-left:8px;margin-right:20px;min-width:0;flex-wrap:nowrap}
.nav a{text-decoration:none;font-size:14px;font-weight:500;color:#3B3D40;padding:10px 8px;border-radius:var(--r-pill);
  min-height:44px;display:inline-flex;align-items:center;white-space:nowrap;transition:.16s}
.nav a:hover{background:var(--rouge-pale);color:var(--rouge-fonce)}
/*
 * Filet de sécurité : si un jour une entrée de plus était ajoutée au menu, les
 * libellés se rognent au lieu de passer SOUS le bouton « Devis gratuit ».
 */
.nav .menu{min-width:0;flex-wrap:nowrap}
.nav .menu > li{min-width:0}
.nav .menu > li > a{min-width:0;overflow:hidden}
/* flex:none + nowrap : le bouton « Devis gratuit » ne se coupe jamais en deux. */
.hdr-r{margin-left:auto;display:flex;flex:none;align-items:center;gap:12px}
.hdr-r .btn{white-space:nowrap;flex:none}
.stars{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--gris);white-space:nowrap;flex:none}
.stars b{font-family:var(--ttl);color:var(--graphite);font-size:15px}
.stars svg{width:15px;height:15px;color:#E8A317}
.burger{display:none;width:48px;height:48px;border:1.5px solid var(--ligne);background:var(--blanc);border-radius:14px;
  align-items:center;justify-content:center;cursor:pointer;margin-left:auto;flex:none}
.burger svg{width:22px;height:22px}
.hdr nav.mnav{display:none;border-top:1px solid var(--ligne);background:var(--blanc);padding:10px 0 18px}
.hdr nav.mnav.open{display:block}
.mnav a{display:block;text-decoration:none;font-weight:600;padding:13px 4px;border-bottom:1px solid var(--ligne);min-height:48px}
.mnav .btn{margin-top:14px}

/*
 * Le menu réel compte dix entrées dont six à sous-menu. Mesuré sur le rendu
 * Chromium, il occupe ~1 000 px ; avec le logo (~130 px), les gouttières et le
 * bouton « Devis gratuit » (~145 px), il faut ~1 300 px de largeur utile.
 * La barre horizontale n'apparaît donc qu'à partir de 1 440 px de fenêtre, où
 * .hdr .wrap vaut 1 400 px : la marge devant le bouton reste franche.
 * En dessous, bascule en burger — le menu complet y reste accessible.
 */
@media (max-width:1439px){
  .nav{display:none}
  .burger{display:flex}
  .hdr-r{display:none}
  .hdr .wrap{min-height:68px}
}

/* ============ HERO ============ */
.hero{position:relative;overflow:hidden;padding-block:clamp(40px,4.4vw,72px) clamp(56px,6vw,96px);background:
  radial-gradient(1000px 620px at 92% -12%, #FDEDE8 0%, rgba(253,237,232,0) 64%),
  radial-gradient(760px 420px at -8% 105%, #F6EDE6 0%, rgba(246,237,230,0) 60%), var(--ivoire)}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:repeating-linear-gradient(58deg, rgba(217,72,43,.055) 0 1px, transparent 1px 26px);
  -webkit-mask-image:radial-gradient(720px 460px at 82% 4%, #000 0%, transparent 72%);
  mask-image:radial-gradient(720px 460px at 82% 4%, #000 0%, transparent 72%)}
.hero .wrap{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(30px,4.5vw,76px);align-items:center;
  grid-template-areas:"txt est"}
.hero-txt{grid-area:txt;min-width:0}
.hero-col{grid-area:est;min-width:0}
/* Bandeau clair avec photo : le fil d'Ariane occupe sa propre rangée. */
.hero--visuel .hero-grid{grid-template-areas:"fil fil" "txt est";align-items:center}
.hero--visuel .hero-grid > .fil{grid-area:fil}
.hero-visuel{margin:0}
.hero-visuel img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;
  border-radius:var(--r-lg);border:1px solid var(--ligne);box-shadow:var(--sh-2);background:var(--sable)}
.hero h1{margin:0 0 18px}
.hero h1 em{font-style:normal;color:var(--rouge-fonce)}
.hero-sub{font-size:clamp(16.5px,1.35vw,19px);color:var(--gris);margin:0 0 22px;max-width:44ch}
.proofs{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 26px;padding:0;list-style:none}
.proofs li{display:inline-flex;align-items:center;gap:8px;background:var(--blanc);border:1px solid var(--ligne);
  border-radius:var(--r-pill);padding:8px 15px;font-size:14.5px;font-weight:600;box-shadow:var(--sh-1)}
.proofs svg{width:16px;height:16px;color:var(--rouge)}
.telbig{display:inline-flex;align-items:center;gap:13px;text-decoration:none;margin-bottom:26px}
.telbig-i{width:52px;height:52px;border-radius:16px;background:var(--rouge);display:grid;place-items:center;flex:none;box-shadow:var(--sh-red)}
.telbig-i svg{width:24px;height:24px;color:#fff}
.telbig-n,.telbig-l{display:block}
.telbig-n{font-family:var(--ttl);font-weight:800;font-size:clamp(24px,2.6vw,33px);letter-spacing:-.035em;line-height:1}
.telbig-l{font-size:13px;color:var(--gris);font-weight:500}
.telbig:hover .telbig-n{color:var(--rouge-fonce)}
.hero-txt h1{margin-bottom:20px;font-size:clamp(38px,4.6vw,60px)}
.hero-rule{width:64px;height:4px;border-radius:99px;background:var(--rouge);margin:0 0 22px}
@media (max-width:1080px){
  .hero-grid{grid-template-columns:1fr;grid-template-areas:"txt" "est";gap:30px;align-items:start}
  .hero--visuel .hero-grid{grid-template-areas:"fil" "txt" "est"}
  .hero-txt{max-width:none}
  .telbig{margin-bottom:20px}
}

/* ---- HERO AVEC PHOTO DE FOND, EN DÉFILEMENT FIXE ---- */
/*
 * Effet fixe façon parallaxe SANS background-attachment:fixed, qui casse le
 * défilement sur iOS et empêche de préchargér l'image. La photo reste une
 * vraie balise <img> (alt, srcset, preload, fetchpriority) placée en
 * position:fixed ; c'est `clip-path:inset(0)` posé sur la section qui la
 * découpe aux bords du bandeau. Vérifié sous Chromium : clip-path découpe bien
 * les descendants fixes sans devenir leur bloc conteneur, donc l'image reste
 * accrochée au viewport pendant le défilement.
 * Replis : sous 1080 px et sous prefers-reduced-motion, l'image repasse en
 * position:absolute — l'équivalent de background-attachment:scroll.
 */
.hero--photo{background:#0E0B0A;color:#fff;isolation:isolate;clip-path:inset(0)}
.hero--photo::before{display:none}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{position:fixed;top:0;left:0;width:100vw;height:100vh;
  object-fit:cover;object-position:50% 46%;background:#0E0B0A}
/*
 * Voile sombre dégradé. Mesuré sur les pixels réels du rendu : le texte blanc
 * de la colonne de gauche reste au-dessus de 4,5:1 sur toute sa hauteur.
 */
.hero-bg::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(10,8,7,.66) 0%, rgba(10,8,7,.56) 40%, rgba(10,8,7,.22) 70%, rgba(10,8,7,.06) 100%),
    linear-gradient(180deg, rgba(10,8,7,.12) 0%, rgba(10,8,7,.06) 50%, rgba(10,8,7,.24) 100%)}
@media (prefers-reduced-motion:reduce){
  .hero--photo{clip-path:none}
  .hero-bg{overflow:hidden}
  .hero-bg img{position:absolute;inset:0;width:100%;height:100%}
}
.hero--photo .hero-sub{color:#F2EAE5}
.hero--photo h1{color:#fff}
.hero--photo h1 em{color:#FFC9B8}
.hero--photo .hero-txt .proofs li{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.42);color:#fff;
  box-shadow:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hero--photo .hero-txt .proofs svg{color:#FFC9B8}
.hero--photo .hero-txt .telbig-n{color:#fff}
.hero--photo .hero-txt .telbig-l{color:#E4DBD5}
.hero--photo .hero-txt .telbig:hover .telbig-n{color:#FFC9B8}
.hero--photo .hero-txt .telbig-i{background:var(--rouge-cta)}
@media (max-width:1080px){
  /* Repli « scroll » : sur tactile, l'image suit la page. */
  .hero--photo{clip-path:none}
  .hero-bg{overflow:hidden}
  .hero-bg img{position:absolute;inset:0;width:100%;height:100%}
  .hero-bg::after{background:linear-gradient(180deg, rgba(10,8,7,.56) 0%, rgba(10,8,7,.72) 100%)}
}

/* ============ ESTIMATEUR ============ */
.est{background:var(--blanc);color:var(--graphite);border:1px solid var(--ligne);border-radius:var(--r-lg);
  box-shadow:var(--sh-3);padding:clamp(20px,2vw,28px);position:relative;overflow:hidden}
.est::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--rouge),#F0714F)}
.est-hd{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.est-hd h2,.est-hd .est-t{font-family:var(--ttl);font-weight:800;font-size:21px;letter-spacing:-.03em;line-height:1.15;margin:0}
.est-hd .est-s{font-size:13.5px;color:var(--gris);margin:3px 0 0}
.est-badge{margin-left:auto;flex:none;background:var(--rouge-pale);color:var(--rouge-fonce);font-size:12.5px;font-weight:700;
  padding:6px 12px;border-radius:var(--r-pill);white-space:nowrap}
.est-bar{height:6px;border-radius:99px;background:var(--sable);overflow:hidden;margin-bottom:18px}
.est-bar i{display:block;height:100%;border-radius:99px;background:var(--rouge);transition:width .4s cubic-bezier(.4,0,.2,1)}
.est-q{font-family:var(--ttl);font-weight:700;font-size:17.5px;letter-spacing:-.02em;margin:0 0 13px}
.est-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.est-grid.one{grid-template-columns:1fr}
.tile{display:flex;align-items:center;gap:10px;min-height:56px;padding:12px 13px;background:var(--blanc);
  border:1.75px solid var(--ligne);border-radius:var(--r-sm);cursor:pointer;text-align:left;font-size:14.5px;
  font-weight:600;line-height:1.25;transition:.16s ease}
.tile svg{width:21px;height:21px;flex:none;color:var(--rouge);stroke-width:1.75}
.tile:hover{border-color:#D9C9BC;background:#FFFCFA;transform:translateY(-1px);box-shadow:var(--sh-1)}
.tile[aria-pressed="true"],.tile.sel{border-color:var(--rouge);background:var(--rouge-pale);color:var(--rouge-fonce)}
.est-fields{display:grid;gap:12px}
.fld label{display:block;font-size:13.5px;font-weight:600;margin-bottom:5px}
.fld input{width:100%;min-height:52px;padding:13px 15px;border:1.75px solid var(--ligne);border-radius:var(--r-sm);
  font:inherit;font-size:16px;background:var(--blanc);color:var(--graphite)}
.fld input:focus{border-color:var(--rouge);outline:none;box-shadow:0 0 0 4px var(--rouge-pale)}
.est-foot{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.est-back{background:none;border:0;color:var(--gris);font-size:14px;font-weight:600;cursor:pointer;padding:11px 6px;
  min-height:44px;display:inline-flex;align-items:center;gap:6px;border-radius:10px}
.est-back:hover{color:var(--rouge-fonce)}
.est-back svg{width:16px;height:16px}
.est-note{font-size:12.5px;color:var(--gris);margin:12px 0 0;display:flex;align-items:flex-start;gap:7px;line-height:1.45}
.est-note svg{width:15px;height:15px;color:var(--vert);flex:none;margin-top:2px}
.est-step{animation:stepIn .34s cubic-bezier(.2,.7,.3,1) both}
@keyframes stepIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.est-ok{text-align:center;padding:8px 0 4px}
.est-ok-i{width:64px;height:64px;border-radius:50%;background:var(--rouge-pale);display:grid;place-items:center;margin:0 auto 16px}
.est-ok-i svg{width:30px;height:30px;color:var(--vert)}
.est-ok h3{margin:0 0 8px}
.est-ok p{font-size:15px;color:var(--gris);margin:0 0 18px}
.est-ok .telbig{margin:0 auto 14px;justify-content:center}
.est-recap{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;margin-bottom:18px}
.est-recap span{background:var(--sable);border-radius:var(--r-pill);padding:5px 12px;font-size:12.5px;font-weight:600}

/* ============ AVANT / APRÈS — COMPOSANT DÉSACTIVÉ ============
   Retiré à la demande du client : le fonds photo ne contient aucun couple
   avant/apres du meme toit. CSS conserve tel quel, pret a reactiver le jour
   ou les couples de photos seront fournis (voir aussi le HTML et le JS commentes).

.ba{position:relative}
.ba-frame{position:relative;aspect-ratio:16/10;border-radius:var(--r-lg);overflow:hidden;background:var(--sable);
  box-shadow:var(--sh-3);cursor:ew-resize;user-select:none;-webkit-user-select:none}
.ba-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-after{clip-path:inset(0 0 0 var(--pos,50%))}
.ba-tag{position:absolute;top:14px;z-index:3;background:rgba(23,24,26,.72);color:#fff;font-family:var(--ttl);
  font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;padding:6px 13px;border-radius:var(--r-pill);
  backdrop-filter:blur(6px);pointer-events:none}
.ba-tag-a{left:14px}
.ba-tag-b{right:14px;background:var(--rouge);box-shadow:var(--sh-red)}
.ba-line{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:3px;background:#fff;transform:translateX(-50%);
  z-index:4;pointer-events:none;box-shadow:0 0 0 1px rgba(23,24,26,.14)}
.ba-handle{position:absolute;top:50%;left:var(--pos,50%);transform:translate(-50%,-50%);z-index:5;
  width:56px;height:56px;border-radius:50%;background:var(--rouge);border:3px solid #fff;cursor:grab;
  display:grid;place-items:center;box-shadow:0 6px 20px rgba(23,24,26,.28);touch-action:none;padding:0}
.ba-handle:active{cursor:grabbing}
.ba-handle svg{width:30px;height:18px;color:#fff;pointer-events:none}
.ba-cap{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:16px 0 0;font-size:14.5px;font-weight:600}
.ba-cap i{font-style:normal;color:var(--gris);font-weight:500}
.ba-cap i::before{content:"·";margin-right:9px;color:#C9BEB4}
.ba-hint{font-size:12.5px;color:var(--gris);font-weight:500;margin-left:auto}
.ba-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.ba-thumb{padding:0;border:1.75px solid var(--ligne);background:var(--blanc);border-radius:var(--r-sm);overflow:hidden;
  cursor:pointer;text-align:left;transition:.18s;display:block}
.ba-thumb img{width:100%;aspect-ratio:16/10;object-fit:cover}
.ba-thumb span{display:block;padding:9px 11px;font-size:13px;font-weight:600;line-height:1.25}
.ba-thumb:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:#D9C9BC}
.ba-thumb[aria-pressed="true"]{border-color:var(--rouge);box-shadow:0 0 0 3px var(--rouge-pale)}
============ FIN DU COMPOSANT AVANT / APRÈS DÉSACTIVÉ ============ */

/* ============ GRILLES / CARTES ============ */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.6vw,44px);align-items:center}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px)}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,22px)}
.card{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);box-shadow:var(--sh-1);
  overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.metier img{width:100%;aspect-ratio:4/3;object-fit:cover}
.metier-ph{aspect-ratio:4/3;background:linear-gradient(135deg,var(--rouge-pale),#F7E2DA);display:grid;
  place-content:center;justify-items:center;gap:10px;text-align:center;padding:16px;border-bottom:1px solid var(--ligne)}
.metier-ph svg{width:38px;height:38px;color:var(--rouge-fonce)}
.metier-ph span{font-size:12.5px;font-weight:600;color:#6B3122;line-height:1.4}
.metier-b{padding:18px}
.metier-b h3{margin:0 0 6px}
.metier-b p{font-size:14.5px;color:var(--gris);margin:0}
.metier details{margin-top:12px;border-top:1px solid var(--ligne);padding-top:10px}

/* ============ BANDEAU DE PREUVE ============ */
.proofband{background:var(--blanc);border-block:1px solid var(--ligne);padding-block:clamp(22px,2.4vw,34px)}
/* Colonnes égales calées sur le nombre de badges réellement remplis dans le
   Customizer : les pistes vides se referment, le bandeau reste équilibré
   qu'il compte quatre, cinq ou six entrées. Libellé au-dessus, sous-titre en
   dessous : aucun badge ne coupe son libellé en deux. */
.proofband ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:18px 26px;list-style:none;padding:0;margin:0;justify-items:start}
.proofband li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:3px;
  align-items:start;margin:0;font-size:15px;font-weight:600}
.proofband svg{width:19px;height:19px;color:var(--rouge);flex:none;grid-column:1;grid-row:1;margin-top:4px}
.proofband b{grid-column:2;font-family:var(--ttl);font-size:18px;letter-spacing:-.03em;line-height:1.25}
.proofband .sub{grid-column:2;color:var(--gris);font-weight:500;font-size:13.5px;line-height:1.4}
@media (max-width:1080px){ .proofband ul{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))} }
@media (max-width:560px){ .proofband ul{grid-template-columns:1fr;gap:14px} }

/* ============ BANDE URGENCE ============ */
.urg{background:var(--rouge-sombre);color:#fff;padding-block:clamp(34px,4vw,54px)}
.urg .wrap{display:flex;align-items:center;gap:clamp(18px,3vw,44px);flex-wrap:wrap}
.urg h2{color:#fff;font-size:clamp(24px,2.6vw,36px);margin:0 0 6px}
.urg p{margin:0;color:#F6D5CB;font-size:15.5px}
.urg-r{margin-left:auto;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.urg-n{font-family:var(--ttl);font-weight:800;font-size:clamp(28px,3.2vw,42px);letter-spacing:-.035em;color:#fff;
  text-decoration:none;line-height:1;display:inline-flex;align-items:center;min-height:44px}
.urg-n:hover{color:#FFD9CF}
.urg .btn-p{background:#fff;color:var(--rouge-sombre);box-shadow:0 8px 22px rgba(0,0,0,.25)}
.urg .btn-p:hover{background:#FFEDE7;color:var(--rouge-sombre)}

/* ============ GALERIE FILTRABLE ============ */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;align-items:center}
.filters + .filters{margin-top:-12px}
.pill{min-height:44px;padding:10px 17px;border-radius:var(--r-pill);border:1.5px solid var(--ligne);background:var(--blanc);
  font-size:14.5px;font-weight:600;cursor:pointer;transition:.16s;white-space:nowrap}
.pill:hover{border-color:#D9C9BC;transform:translateY(-1px)}
.pill[aria-pressed="true"]{background:var(--rouge-cta);border-color:var(--rouge-cta);color:#fff;box-shadow:var(--sh-red)}
/* ============ CARROUSEL NARRATIF NUMÉROTÉ ============ */
.carr{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(20px,2.6vw,38px);align-items:start}
.carr-main{min-width:0}
.carr-frame{position:relative;aspect-ratio:3/2;border-radius:var(--r-lg);overflow:hidden;background:var(--sable);
  box-shadow:var(--sh-3)}
.carr-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;
  transition:opacity .5s ease, visibility .5s step-end}
.carr-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transform:scale(1.05);transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.carr-slide.on{opacity:1;visibility:visible;transition:opacity .5s ease, visibility 0s}
.carr-slide.on img{transform:scale(1)}
.carr-cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(44px,6vw,74px) clamp(18px,2.4vw,30px) clamp(16px,2vw,24px);
  background:linear-gradient(0deg, rgba(12,10,9,.95) 0%, rgba(12,10,9,.92) 52%, rgba(12,10,9,.84) 76%, rgba(12,10,9,.42) 91%, rgba(12,10,9,0) 100%);
  color:#fff;text-align:left}
.carr-num{display:inline-block;font-family:var(--ttl);font-weight:800;font-size:12.5px;letter-spacing:.14em;
  color:#fff;background:var(--rouge-cta);padding:4px 11px;border-radius:var(--r-pill);margin-bottom:9px}
.carr-t{display:block;font-family:var(--ttl);font-weight:800;font-size:clamp(19px,2.1vw,27px);letter-spacing:-.03em;line-height:1.15}
.carr-city{display:block;font-size:14px;font-weight:600;color:#EFE5E0;margin-top:5px}
.carr-meta{display:flex;flex-wrap:wrap;gap:4px 9px;margin:16px 0 0;font-size:14.5px;font-weight:600;color:var(--graphite)}
.carr-meta span{color:var(--gris);font-weight:500}
.carr-meta span:first-child{color:var(--graphite);font-weight:700}
.carr-meta span+span::before{content:"·";margin-right:9px;color:#C9BEB4}
.carr-nav{display:flex;align-items:center;gap:10px;margin-top:16px}
.carr-nav button{width:48px;height:48px;min-width:48px;border-radius:50%;border:1.5px solid var(--ligne);background:var(--blanc);
  display:grid;place-items:center;cursor:pointer;transition:.16s;color:var(--graphite)}
.carr-nav button:hover{border-color:var(--rouge);color:var(--rouge-fonce);transform:translateY(-2px)}
.carr-nav svg{width:19px;height:19px}
.carr-count{font-size:14px;font-weight:600;color:var(--gris);margin-left:4px}
.carr-idx{list-style:none;margin:0;padding:0;border-top:1px solid var(--ligne)}
.carr-idx li{margin:0}
.carr-ib{display:flex;align-items:baseline;gap:13px;width:100%;text-align:left;background:none;border:0;
  border-bottom:1px solid var(--ligne);padding:14px 4px;min-height:56px;cursor:pointer;transition:color .16s,background .16s;
  position:relative;color:var(--graphite)}
.carr-ib::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--rouge);
  transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.carr-ib:hover{color:var(--rouge-fonce)}
.carr-ib-n{font-family:var(--ttl);font-weight:800;font-size:12.5px;letter-spacing:.1em;color:var(--gris);flex:none}
.carr-ib-t{font-size:15px;font-weight:500;line-height:1.3}
.carr-ib[aria-current="true"]{color:var(--graphite)}
.carr-ib[aria-current="true"]::after{transform:scaleX(1)}
.carr-ib[aria-current="true"] .carr-ib-t{font-weight:700}
.carr-ib[aria-current="true"] .carr-ib-n{color:var(--rouge-fonce)}
@media (max-width:900px){
  .carr{grid-template-columns:1fr}
  .carr-idx{border-top:0}
}
/* ---- DUO DE PHOTOS ---- */
.photo-duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,1.8vw,24px);align-items:start}
.photo-duo figure{margin:0;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);
  overflow:hidden;box-shadow:var(--sh-1)}
.photo-duo img{width:100%;aspect-ratio:1/1;object-fit:cover}
.photo-duo figcaption{padding:14px 16px 16px;font-size:14px;color:#3B3D40;line-height:1.5}
@media (max-width:620px){ .photo-duo{grid-template-columns:1fr} }

/* ---- ENCADRÉ D'INFORMATION AVANT/APRÈS ---- */
.note-info{display:flex;align-items:flex-start;gap:14px;background:var(--rouge-pale);border:1px solid #F2D6CB;
  border-radius:var(--r-card);padding:18px 20px;margin-top:clamp(24px,3vw,36px);color:#5C2314}
.note-info svg{width:21px;height:21px;flex:none;color:var(--rouge-fonce);margin-top:2px}
.note-info p{margin:0;font-size:14.5px;line-height:1.55}

/* ============ AVIS ============ */
.avis-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px}
.avis-note{font-family:var(--ttl);font-weight:800;font-size:44px;letter-spacing:-.04em;line-height:1}
.avis-stars{display:flex;gap:3px}
.avis-stars svg{width:19px;height:19px;color:#E8A317}
.avis-c{color:var(--gris);font-size:14.5px}
.avis-slide{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-lg);padding:clamp(24px,3vw,40px);
  box-shadow:var(--sh-2);max-width:820px}
.avis-slide[hidden]{display:none}
.avis-slide blockquote{margin:0 0 18px;font-family:var(--ttl);font-weight:600;font-size:clamp(19px,1.9vw,26px);
  letter-spacing:-.025em;line-height:1.34}
.avis-who{display:flex;align-items:center;gap:12px;font-size:14.5px}
.avis-av{width:44px;height:44px;border-radius:50%;background:var(--rouge-pale);color:var(--rouge-fonce);display:grid;
  place-items:center;font-family:var(--ttl);font-weight:800;flex:none}
.avis-who b{font-weight:700}
.avis-who i{font-style:normal;color:var(--gris);display:block;font-size:13px}
.avis-nav{display:flex;align-items:center;gap:10px;margin-top:20px}
.avis-nav button{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--ligne);background:var(--blanc);
  display:grid;place-items:center;cursor:pointer;transition:.16s}
.avis-nav button:hover{border-color:var(--rouge);color:var(--rouge-fonce);transform:translateY(-2px)}
.avis-nav svg{width:19px;height:19px}
.avis-dots{display:flex;gap:7px;margin-left:6px}
.avis-dots button{width:auto;height:auto;min-width:30px;min-height:44px;border:0;background:none;padding:0 4px;display:grid;place-items:center}
.avis-dots button i{display:block;width:26px;height:5px;border-radius:99px;background:#DCD2CA;transition:.2s}
.avis-dots button[aria-current="true"] i{background:var(--rouge);width:34px}
.avis-dots button:hover{transform:none;border:0}

/* ============ FRISE PROCESS ============ */
.frise{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,22px);list-style:none;margin:0;padding:0}
.frise-i{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);padding:24px 22px 22px;
  box-shadow:var(--sh-1);transition:transform .2s ease,box-shadow .2s ease;margin:0}
.frise-i:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.frise-hd{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.frise-ic{width:44px;height:44px;border-radius:14px;background:var(--rouge-pale);display:grid;place-items:center;flex:none}
.frise-ic svg{width:21px;height:21px;color:var(--rouge-fonce)}
.frise-n{font-family:var(--ttl);font-weight:700;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--rouge-fonce)}
.frise-i h3{font-size:17.5px;margin-bottom:8px}
.frise-i p{font-size:15px;color:#3B3D40;margin:0;line-height:1.55}
/* Photo facultative d'une étape (métabox « Les étapes du chantier »). */
.frise-img{display:block;width:calc(100% + 44px);margin:-24px -22px 16px;aspect-ratio:16/9;object-fit:cover}

/* --- AIDES : 4 cartes ouvrables --- */
.aides{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:0;align-items:start}
details.aide{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);box-shadow:var(--sh-1);
  padding:0;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;overflow:hidden}
details.aide:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
details.aide[open]{border-color:#E6C7BB;box-shadow:var(--sh-2)}
details.aide > summary{list-style:none;display:flex;align-items:center;gap:14px;cursor:pointer;padding:20px;min-height:76px}
details.aide > summary::-webkit-details-marker{display:none}
details.aide > summary::after{content:"";flex:none;margin-left:auto;width:30px;height:30px;border-radius:50%;
  background:var(--sable) center/13px 13px no-repeat;
  background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMTcxODFBJyBzdHJva2Utd2lkdGg9JzIuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdtNiA5IDYgNiA2LTYnLz48L3N2Zz4=");
  transition:transform .28s cubic-bezier(.4,0,.2,1),background-color .2s}
details.aide[open] > summary::after{transform:rotate(180deg);background-color:var(--rouge-pale)}
details.aide > summary:hover .aide-h{color:var(--rouge-fonce)}
details.aide .aide-i{margin-bottom:0;flex:none}
.aide-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.aide-h{font-family:var(--ttl);font-weight:800;font-size:18px;letter-spacing:-.025em;line-height:1.15}
.aide-m{font-size:13.5px;font-weight:600;color:var(--rouge-fonce)}
details.aide .acc-body{padding:0 20px 20px;max-width:none}
details.aide .acc-body p{font-size:15px;margin:0}
details.aide .acc-body p + p{margin-top:10px}
/* Photo facultative d'un dispositif (métabox « Aides et financement »). */
.aide-img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-card);margin:0 0 14px}

/* --- CARTE ZONE GARD + HÉRAULT --- */
.zones-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,3vw,44px);align-items:center}
/* Photo facultative du bloc zones (métabox « Zone desservie et visuel »). */
.zones-img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-card);margin:0 0 18px;box-shadow:var(--sh-1)}
.map-w{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-lg);padding:clamp(14px,1.6vw,22px);box-shadow:var(--sh-1)}
.map{width:100%;height:auto;display:block}
.m-herault{fill:#FDEDE8;stroke:#D9482B;stroke-width:2.5;stroke-linejoin:round}
.m-gard{fill:#FBDFD6;stroke:#D9482B;stroke-width:2.5;stroke-linejoin:round}
.m-sea path{fill:none;stroke:#D9482B;stroke-width:2;opacity:.3;stroke-linecap:round}
.m-lead path{stroke:#B03720;stroke-width:1.5;opacity:.55}
.m-dot circle{fill:#C7401F;stroke:#fff;stroke-width:2.5}
.m-siege circle:first-child{fill:none;stroke:#17181A;stroke-width:2.5}
.m-siege circle:last-child{fill:#17181A}
.m-dept text{font-family:var(--ttl);font-weight:800;font-size:27px;fill:#6B6560;letter-spacing:-.02em}
.m-city text{font-family:var(--txt);font-weight:600;font-size:19px;fill:#17181A}
.m-city .m-strong{font-weight:700;fill:#17181A}
.map-cap{display:none;margin:10px 0 0;font-size:13.5px;font-weight:600;color:var(--gris);text-align:center}
.villes li{margin:0}

/* ============ AIDES / ZONES ============ */
.aides{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
.aide{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);padding:20px;box-shadow:var(--sh-1);transition:.2s}
.aide:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.aide-i{width:42px;height:42px;border-radius:13px;background:var(--rouge-pale);display:grid;place-items:center;margin-bottom:12px}
.aide-i svg{width:21px;height:21px;color:var(--rouge-fonce)}
.villes{display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none}
.villes a{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:var(--r-pill);
  background:var(--blanc);border:1.5px solid var(--ligne);text-decoration:none;font-weight:600;font-size:15px;transition:.16s}
.villes a:hover{border-color:var(--rouge);color:var(--rouge-fonce);transform:translateY(-2px);box-shadow:var(--sh-1)}
.nap{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}
.nap-c{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);padding:20px;box-shadow:var(--sh-1)}
.nap-c h3{font-size:16px;margin-bottom:6px}
.nap-c address{font-style:normal;font-size:14.5px;color:var(--gris);line-height:1.6}

/* ============ CONTRAT D'ENTRETIEN ANNUEL ============ */
.entretien{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(22px,3vw,48px);align-items:start}
.entretien-h h2{margin:0}
.entretien-h .lede{margin-top:12px}
.entretien-e{display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;padding:5px 13px;
  border-radius:var(--r-pill);background:var(--rouge-pale);color:var(--rouge-fonce);
  font-size:12.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.entretien-e svg{width:16px;height:16px}
.entretien-cta{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.entretien-l{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.entretien-l li{display:flex;gap:14px;align-items:flex-start;margin:0;background:var(--blanc);
  border:1px solid var(--ligne);border-radius:var(--r-card);padding:14px 16px;box-shadow:var(--sh-1)}
.entretien-i{width:38px;height:38px;flex:none;border-radius:12px;background:var(--rouge-pale);display:grid;place-items:center}
.entretien-i svg{width:19px;height:19px;color:var(--rouge-fonce)}
.entretien-l b{display:block;font-family:var(--ttl);font-size:16.5px;letter-spacing:-.02em;margin-bottom:3px}
.entretien-l span span{color:var(--gris);font-size:14.5px;line-height:1.55}
@media (max-width:900px){ .entretien{grid-template-columns:1fr} }

/* ============ ACCORDÉONS ============ */
.acc{border-top:1px solid var(--ligne)}
.acc details{border-bottom:1px solid var(--ligne)}
.acc summary,.metier summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:14px;
  padding:20px 4px;font-family:var(--ttl);font-weight:700;font-size:clamp(16.5px,1.35vw,19px);letter-spacing:-.02em;
  min-height:52px;transition:color .16s}
.acc summary::-webkit-details-marker,.metier summary::-webkit-details-marker{display:none}
.acc summary::after,.metier summary::after{content:"";flex:none;margin-left:auto;width:30px;height:30px;border-radius:50%;
  background:var(--sable) center/13px 13px no-repeat;
  background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMTcxODFBJyBzdHJva2Utd2lkdGg9JzIuNCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdtNiA5IDYgNiA2LTYnLz48L3N2Zz4=");
  transition:transform .28s cubic-bezier(.4,0,.2,1),background-color .2s}
.acc summary:hover,.metier summary:hover{color:var(--rouge-fonce)}
.acc summary:hover::after,.metier summary:hover::after{background-color:var(--rouge-pale)}
.acc details[open] > summary::after,.metier details[open] > summary::after{transform:rotate(180deg);background-color:var(--rouge-pale)}
.acc-body{padding:0 4px 24px;max-width:74ch}
.acc-body p{font-size:16px;color:#3B3D40}
.acc-body li{font-size:16px;color:#3B3D40}
.acc-body h4{margin:18px 0 8px}
/*
 * Module « Tout savoir » : plusieurs centaines de mots par section. On y aère
 * les paragraphes et les listes, sans quoi le texte replié devient illisible
 * une fois déplié.
 */
.acc-seo .acc-body p + p,.acc-seo .acc-body ul + p{margin-top:14px}
.acc-seo .acc-body ul{margin:14px 0 0;padding-left:22px}
.acc-seo .acc-body li + li{margin-top:7px}
.acc-seo .acc-body strong{color:var(--graphite);font-weight:700}
.metier summary{padding:8px 0;font-size:14.5px;min-height:44px}
.metier summary::after{width:26px;height:26px}
.metier .acc-body{padding:4px 0 8px;font-size:14.5px}
.metier .acc-body p{font-size:14.5px;margin-bottom:0}

/* ============ ONGLETS ============ */
.tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--ligne);padding-bottom:14px;margin-bottom:26px}
.tabs button{min-height:48px;padding:11px 20px;border-radius:var(--r-pill);border:1.5px solid var(--ligne);
  background:var(--blanc);font-family:var(--ttl);font-weight:700;font-size:15.5px;letter-spacing:-.01em;cursor:pointer;transition:.16s}
.tabs button:hover{border-color:#D9C9BC;transform:translateY(-1px)}
.tabs button[aria-selected="true"]{background:var(--rouge-cta);border-color:var(--rouge-cta);color:#fff;box-shadow:var(--sh-red)}
.tabp[hidden]{display:none}
.tabp{animation:fadeUp .3s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tabp > p:first-of-type{font-size:17px;max-width:70ch}

/* ============ FIL D'ARIANE / TABLEAU ============ */
.fil{font-size:13.5px;color:var(--gris);padding-block:16px 0}
.fil ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.fil li+li::before{content:"›";margin-right:6px;color:#C9BEB4}
.fil a{color:var(--gris);text-decoration:none}
.fil a:hover{color:var(--rouge-fonce)}
.fil [aria-current]{color:var(--graphite);font-weight:600}
.tbl-w{overflow-x:auto;border:1px solid var(--ligne);border-radius:var(--r-card);background:var(--blanc);box-shadow:var(--sh-1)}
table{border-collapse:collapse;width:100%;min-width:520px;font-size:15px}
th,td{text-align:left;padding:14px 18px;border-bottom:1px solid var(--ligne)}
th{font-family:var(--ttl);font-weight:700;font-size:14px;background:var(--ivoire)}
tr:last-child td{border-bottom:0}
td b{font-family:var(--ttl);letter-spacing:-.02em}

/* ============ PIED DE PAGE ============ */
.ft{background:var(--graphite);color:#B9B3AE;padding-block:clamp(48px,5vw,72px) 28px;font-size:14.5px}
.ft h3{color:#fff;font-size:15px;margin:0 0 14px}
.ft a{color:#B9B3AE;text-decoration:none}
.ft a:hover{color:#fff}
.ft-g{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:32px}
.ft ul{list-style:none;padding:0;margin:0}
.ft li{margin-bottom:9px}
.ft .logo{display:inline-flex;background:#fff;border-radius:14px;padding:12px 16px;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.ft .logo-img{height:52px}
.ft-bot{border-top:1px solid #2A2C2F;margin-top:36px;padding-top:22px;display:flex;flex-wrap:wrap;gap:12px 24px;font-size:13px;color:#8E8781}
.ft address{font-style:normal;line-height:1.7}
.ft-tel{font-family:var(--ttl);font-weight:800;font-size:24px;letter-spacing:-.03em;color:#fff!important;display:inline-block;margin-bottom:8px}

/* ============ BARRE MOBILE ============ */
.mbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:110;background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);border-top:1px solid var(--ligne);padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  gap:10px;box-shadow:0 -6px 24px rgba(23,24,26,.08)}
.mbar .btn{flex:1;min-height:52px;font-size:16px}
@media (max-width:900px){ .mbar{display:flex} body{padding-bottom:78px} }

/* ============ RÉVÉLATION ============ */
/*
 * `opacity:0` en attendant le script : sans filet, une page servie à un
 * navigateur sans JavaScript est intégralement invisible — encarts d'articles,
 * cartes du blog, bloc auteur compris. Deux garde-fous :
 *   · `scripting:none` remet tout visible quand le navigateur n'exécute rien ;
 *   · une animation de secours révèle le bloc au bout de 2,5 s si le script
 *     n'est jamais arrivé (fichier bloqué, erreur JS, navigateur ancien qui
 *     ignore `scripting`). Elle finit sur le même état que `.in`, elle ne
 *     contrarie donc jamais l'animation normale.
 */
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.3,1);
  animation:mjrt-secours .01s linear 2.5s forwards}
[data-reveal].in{opacity:1;transform:none;animation:none}
@keyframes mjrt-secours{to{opacity:1;transform:none}}
@media (scripting:none){
  [data-reveal]{opacity:1;transform:none;animation:none}
}

/* ============ RESPONSIVE ============ */
@media (max-width:1080px){
  .g4{grid-template-columns:1fr 1fr}
  .frise{grid-template-columns:repeat(2,1fr)}
  .zones-grid{grid-template-columns:1fr}
}
@media (max-width:900px){
  .gal{grid-template-columns:1fr 1fr}
  .g2{grid-template-columns:1fr}
  .g3{grid-template-columns:1fr 1fr}
  .aides{grid-template-columns:1fr}
  .nap,.nap-1{grid-template-columns:1fr}
  .ft-g{grid-template-columns:1fr 1fr}
  .urg-r{margin-left:0;width:100%}
}
@media (max-width:620px){
  body{font-size:16px}
  .hero{padding-top:22px}
  .hero h1{margin-bottom:12px}
  .hero-sub{margin-bottom:16px}
  .proofs{margin-bottom:16px;gap:7px}
  .telbig{margin-bottom:16px}
  .eyebrow{margin-bottom:12px}
  .gal{grid-template-columns:1fr}
  .g3,.g4{grid-template-columns:1fr}
  .frise{grid-template-columns:1fr}
  .m-right,.m-lead{display:none}
  .m-city text{font-size:26px}
  .m-dept text{font-size:32px}
  .m-dot circle{r:9px}
  .map-cap{display:block}
  .map-w{padding:10px}
  .ft-g{grid-template-columns:1fr}
  .est-grid{grid-template-columns:1fr}
  .topbar .tb-zone,.topbar .tb-note{display:none}
  .avis-note{font-size:36px}
}
@media (max-width:380px){
  .topbar{font-size:12.5px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1;transform:none}
}

/* ================================================================
   ============  AJOUTS GABARITS G04 → G18  =======================
   ================================================================ */

.frise-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.frise-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1080px){ .frise-4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:620px){ .frise-2,.frise-4{grid-template-columns:1fr} }

/* ---------- HERO SANS PHOTO (gabarits internes) ---------- */
.hero--flat{background:
  radial-gradient(900px 520px at 96% -14%, #FDEDE8 0%, rgba(253,237,232,0) 62%),
  radial-gradient(680px 380px at -6% 108%, #F6EDE6 0%, rgba(246,237,230,0) 58%), var(--ivoire)}
.hero--flat{padding-block:clamp(26px,3vw,48px) clamp(38px,4.4vw,66px)}
.hero--flat h1{font-size:clamp(32px,4.1vw,52px)}
.hero-1c{display:block;max-width:none}
.hero-1c .hero-sub{max-width:60ch}
.hero-act{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:6px}

/* ---------- HERO ROUGE PLEIN (urgence) ---------- */
.hero--rouge{background:linear-gradient(160deg,#8E2A18 0%,#B03720 46%,#C7401F 100%);color:#fff}
.hero--rouge::before{display:none}
.hero--rouge h1{color:#fff}
.hero--rouge .hero-sub{color:#FFE3DB}
.hero--rouge .eyebrow{background:rgba(255,255,255,.16);color:#fff}
.hero--rouge .proofs li{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.42);color:#fff;box-shadow:none}
.hero--rouge .proofs svg{color:#FFD2C6}
.hero--rouge .fil,.hero--rouge .fil a{color:#FFE3DB}
.hero--rouge .fil [aria-current]{color:#fff;font-weight:700}
.hero--rouge .fil li+li::before{color:#F0A794}
.urg-tel{display:inline-flex;align-items:center;gap:14px;text-decoration:none;color:#fff;background:rgba(0,0,0,.22);
  border:1.75px solid rgba(255,255,255,.4);border-radius:var(--r-lg);padding:14px 22px;margin:4px 0 18px;transition:.18s;max-width:100%}
@media (max-width:400px){ .urg-tel{padding:12px 14px;gap:10px} .urg-tel svg{width:26px;height:26px} }
.urg-tel:hover{background:rgba(0,0,0,.34);transform:translateY(-2px)}
.urg-tel .n{font-family:var(--ttl);font-weight:800;font-size:clamp(25px,4.6vw,50px);letter-spacing:-.04em;line-height:1;word-break:normal}
.urg-tel .l{display:block;font-size:13px;color:#FFE8E2;font-weight:600;margin-top:4px}
.urg-tel svg{width:34px;height:34px;flex:none}
.hero--rouge .btn-p{background:#fff;color:#A62F14;box-shadow:0 10px 26px rgba(0,0,0,.28)}
.hero--rouge .btn-p:hover{background:#FFEDE7;color:#8E2A18}
.hero--rouge .btn-o{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);box-shadow:none}
.hero--rouge .btn-o:hover{background:rgba(255,255,255,.14);color:#fff;border-color:#fff}

/* ---------- SOMMAIRE ANCRÉ ---------- */
.lay-toc{display:grid;grid-template-columns:minmax(0,250px) minmax(0,1fr);gap:clamp(22px,3vw,52px);align-items:start}
.lay-toc > *{min-width:0}
.toc-body{min-width:0}
.g2 > *,.g3 > *,.g4 > *,.g2-form > *,.frise > *,.gal > *,.stats > *,.team > *,.aides > *,
.hero-grid > *,.carr > *,.photo-duo > *,.two-col > *{min-width:0}
.tbl-w{max-width:100%}
.toc{position:sticky;top:calc(var(--pv) + 92px);background:var(--blanc);border:1px solid var(--ligne);
  border-radius:var(--r-card);box-shadow:var(--sh-1);padding:18px 18px 14px}
.toc h2,.toc .toc-t{font-family:var(--ttl);font-weight:800;font-size:12px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--gris);margin:0 0 10px}
.toc ol{list-style:none;margin:0;padding:0;counter-reset:t}
.toc li{margin:0;counter-increment:t}
.toc a{display:flex;gap:9px;align-items:baseline;text-decoration:none;font-size:14.5px;font-weight:600;line-height:1.35;
  padding:9px 6px;min-height:44px;border-radius:10px;color:#3B3D40;transition:.16s}
.toc a::before{content:counter(t,decimal-leading-zero);font-family:var(--ttl);font-size:11.5px;font-weight:800;
  color:var(--rouge-fonce);letter-spacing:.06em;flex:none}
.toc a:hover{background:var(--rouge-pale);color:var(--rouge-fonce)}
/* Second niveau : les H3 d'un article. Ils ne sont pas numérotés — la
   numérotation 01, 02… reste celle des sections, sinon elle devient illisible —
   mais ils sont indentés sous leur H2 et marqués d'un tiret. Le sommaire reste
   collant, et l'ensemble tient sans défilement propre jusqu'à une douzaine
   d'entrées de premier niveau. */
.toc ol ol.toc-2{counter-reset:none;margin:0 0 4px;padding:0 0 0 26px;border-left:1px solid var(--ligne);
  margin-left:9px}
.toc .toc-2 li{counter-increment:none}
.toc .toc-2 a{font-size:13.5px;font-weight:500;min-height:38px;padding:6px 6px;color:#55575A}
.toc .toc-2 a::before{content:"–";color:#C9BEB4;font-family:var(--txt);font-size:13px;font-weight:600}
@media (max-width:980px){ .lay-toc{grid-template-columns:1fr} .toc{position:static;top:auto} }
.toc-body > section{padding-block:0 clamp(34px,4vw,54px)}
.toc-body > section:first-child{padding-top:0}
.anchor{scroll-margin-top:calc(var(--pv) + 96px)}

/* ---------- ENCADRÉ RÉPONSE DIRECTE (GEO) ---------- */
.ans{background:var(--blanc);border:1px solid #F0CFC3;border-left:5px solid var(--rouge);border-radius:var(--r-card);
  box-shadow:var(--sh-1);padding:clamp(18px,2vw,26px)}
.ans .ans-l{display:inline-flex;align-items:center;gap:8px;font-family:var(--ttl);font-size:11.5px;font-weight:800;
  letter-spacing:.11em;text-transform:uppercase;color:var(--rouge-fonce);margin:0 0 9px}
.ans .ans-l svg{width:15px;height:15px}
.ans p{margin:0;font-size:clamp(17px,1.5vw,20px);font-weight:600;line-height:1.5;letter-spacing:-.01em}
.ans p + p{margin-top:9px;font-size:15px;font-weight:400;color:#3B3D40}

/* ---------- LISTES À COCHES ---------- */
.ul-check{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ul-check li{display:flex;gap:11px;align-items:flex-start;margin:0;font-size:15.5px;line-height:1.5}
.ul-check svg{width:19px;height:19px;flex:none;margin-top:3px;color:var(--rouge)}
.ul-check.two{grid-template-columns:1fr 1fr;gap:10px 24px}
@media (max-width:720px){ .ul-check.two{grid-template-columns:1fr} }
.ul-warn li svg{color:#B03720}

/* ---------- CARTES GÉNÉRIQUES ---------- */
.cardp{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);box-shadow:var(--sh-1);
  padding:22px;transition:transform .2s ease,box-shadow .2s ease;min-width:0}
.cardp:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.cardp h3{margin:0 0 7px}
.cardp p{margin:0;font-size:14.5px;color:#3B3D40;line-height:1.55}
.cardp p + p{margin-top:8px}
.cardp .aide-i{margin-bottom:13px}
.cardp .k{display:block;font-family:var(--ttl);font-weight:800;font-size:clamp(26px,2.6vw,34px);letter-spacing:-.04em;
  color:var(--rouge-fonce);line-height:1;margin-bottom:6px}
a.cardp{display:block;text-decoration:none;color:inherit}
a.cardp:hover h3{color:var(--rouge-fonce)}
.card-arrow{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-weight:700;font-size:14.5px;
  color:var(--rouge-fonce);font-family:var(--ttl)}
a.card-arrow{min-height:44px;text-decoration:none}
a.card-arrow:hover{text-decoration:underline}
address a{display:inline-flex;align-items:center;min-height:44px}
.card-arrow svg{width:17px;height:17px}

/* ---------- CHIFFRES CLÉS ---------- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;list-style:none;margin:0;padding:0}
.stats li{margin:0;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);
  box-shadow:var(--sh-1);padding:22px 20px;text-align:left}
.stats b{display:block;font-family:var(--ttl);font-weight:800;font-size:clamp(30px,3.2vw,42px);letter-spacing:-.04em;
  line-height:1;color:var(--graphite)}
.stats span{display:block;font-size:14px;color:var(--gris);margin-top:7px;font-weight:600}
@media (max-width:900px){ .stats{grid-template-columns:1fr 1fr} }

/* ---------- FICHE TECHNIQUE (G09) ---------- */
.fiche{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);box-shadow:var(--sh-1);
  padding:8px 20px;margin:0}
.fiche div{display:flex;gap:14px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--ligne);flex-wrap:wrap}
.fiche div:last-child{border-bottom:0}
.fiche dt{flex:none;width:120px;font-size:13px;font-weight:700;color:var(--gris);text-transform:uppercase;
  letter-spacing:.05em;font-family:var(--ttl)}
.fiche dd{margin:0;font-size:15.5px;font-weight:600;min-width:0}

/* ---------- GALERIE / GRILLE DE VIGNETTES ---------- */
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.8vw,22px)}
.gal-i{margin:0;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);overflow:hidden;
  box-shadow:var(--sh-1);transition:transform .2s ease,box-shadow .2s ease;display:block;text-decoration:none;color:inherit}
.gal-i:hover{transform:translateY(-4px);box-shadow:var(--sh-2)}
.gal-i img{width:100%;aspect-ratio:3/2;object-fit:cover}
.gal-ph{aspect-ratio:3/2;background:linear-gradient(135deg,var(--rouge-pale),#F7E2DA);display:grid;place-content:center;
  justify-items:center;gap:9px;text-align:center;padding:16px;border-bottom:1px solid var(--ligne)}
.gal-ph svg{width:32px;height:32px;color:var(--rouge-fonce)}
.gal-ph span{font-size:12px;font-weight:600;color:#6B3122;line-height:1.4;max-width:22ch}
.gal-b{padding:15px 17px 17px}
.gal-cat{display:inline-block;background:var(--rouge-pale);color:var(--rouge-fonce);font-size:11.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:var(--r-pill);margin-bottom:9px;
  font-family:var(--ttl)}
.gal-b h3{font-size:17.5px;margin:0 0 6px}
.gal-i:hover h3{color:var(--rouge-fonce)}
.gal-m{font-size:13.5px;color:var(--gris);margin:0;line-height:1.5}
.gal-x{font-size:14.5px;color:#3B3D40;margin:8px 0 0;line-height:1.5}
.gal-i[hidden]{display:none}
@media (max-width:900px){ .gal{grid-template-columns:1fr 1fr} }
@media (max-width:620px){ .gal{grid-template-columns:1fr} }
.count{font-size:14.5px;color:var(--gris);font-weight:600;margin:0 0 18px}
.count b{font-family:var(--ttl);color:var(--graphite)}

/* ---------- ARTICLE MIS EN AVANT ---------- */
.feat{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0;background:var(--blanc);
  border:1px solid var(--ligne);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2);
  text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease}
.feat:hover{transform:translateY(-4px);box-shadow:var(--sh-3)}
.feat img{width:100%;height:100%;min-height:240px;object-fit:cover}
.feat-b{padding:clamp(22px,2.6vw,38px);align-self:center}
.feat-b h3{font-size:clamp(22px,2.4vw,31px);margin:0 0 10px}
.feat:hover h3{color:var(--rouge-fonce)}
@media (max-width:820px){ .feat{grid-template-columns:1fr} .feat img{min-height:180px;aspect-ratio:16/9} }

/* ---------- PAGINATION ---------- */
.pager{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center;margin-top:clamp(26px,3vw,40px)}
.pager a,.pager span{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 14px;border-radius:var(--r-pill);border:1.5px solid var(--ligne);background:var(--blanc);
  text-decoration:none;font-weight:700;font-size:15px;font-family:var(--ttl);transition:.16s}
.pager a:hover{border-color:var(--rouge);color:var(--rouge-fonce)}
.pager [aria-current="page"]{background:var(--rouge-cta);border-color:var(--rouge-cta);color:#fff}
.pager .dots{border:0;background:none;color:var(--gris)}

/* ---------- RECHERCHE / FILTRES FAQ ---------- */
.srch{position:relative;max-width:520px;margin:0 0 18px}
.srch input{width:100%;min-height:52px;padding:13px 15px 13px 46px;border:1.75px solid var(--ligne);
  border-radius:var(--r-pill);font:inherit;font-size:16px;background:var(--blanc);color:var(--graphite)}
.srch input:focus{border-color:var(--rouge);outline:none;box-shadow:0 0 0 4px var(--rouge-pale)}
.srch svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--gris);
  pointer-events:none}
.faq-grp{margin:0 0 8px}
.faq-grp[hidden]{display:none}
.faq-grp > h3{font-family:var(--ttl);font-size:12.5px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  color:var(--rouge-fonce);margin:26px 0 2px}
.acc details[hidden]{display:none}
.nores{background:var(--rouge-pale);border:1px solid #F2D6CB;border-radius:var(--r-card);padding:20px;color:#5C2314;
  font-size:15px;margin-top:18px}
.nores[hidden]{display:none}

/* ---------- QUESTIONNAIRE D'ÉLIGIBILITÉ (G07) ---------- */
.quiz{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-lg);box-shadow:var(--sh-2);
  padding:clamp(20px,2.4vw,30px);position:relative;overflow:hidden}
.quiz::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--rouge),#F0714F)}
.quiz fieldset{border:0;margin:0 0 20px;padding:0;min-width:0}
.quiz legend{font-family:var(--ttl);font-weight:700;font-size:16.5px;letter-spacing:-.02em;padding:0;margin-bottom:11px}
.quiz .opts{display:flex;flex-wrap:wrap;gap:9px}
.quiz .opt{position:relative}
.quiz .opt input{position:absolute;opacity:0;width:1px;height:1px}
.quiz .opt span{display:inline-flex;align-items:center;min-height:48px;padding:11px 18px;border-radius:var(--r-pill);
  border:1.75px solid var(--ligne);background:var(--blanc);font-size:15px;font-weight:600;cursor:pointer;transition:.16s}
.quiz .opt span:hover{border-color:#D9C9BC;transform:translateY(-1px)}
.quiz .opt input:checked + span{border-color:var(--rouge);background:var(--rouge-pale);color:var(--rouge-fonce)}
.quiz .opt input:focus-visible + span{outline:3px solid var(--rouge);outline-offset:3px}
.quiz-res{border-top:1px solid var(--ligne);padding-top:20px;margin-top:4px}
.quiz-res h3{font-size:19px;margin:0 0 12px}
.quiz-res .ul-check{margin-bottom:14px}
.quiz-res .ko{color:var(--gris)}
.quiz-res .ko svg{color:#B9B0A9}
.legal{font-size:12.5px;color:var(--gris);line-height:1.5;display:flex;gap:8px;align-items:flex-start;margin:14px 0 0}
.legal svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--rouge-fonce)}

/* ---------- BARRE DE PROGRESSION DE LECTURE (G14) ---------- */
.rprog{position:fixed;left:0;right:0;top:var(--pv);height:4px;z-index:115;background:transparent;pointer-events:none}
.rprog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--rouge),#F0714F);
  transition:width .12s linear;border-radius:0 99px 99px 0}
.rprog[hidden]{display:none}

/* ---------- CORPS D'ARTICLE (G14) ----------
   `.art` contient `.entry-content` dans single.php : les deux définissaient les
   mêmes h2/h3/p/li, avec deux largeurs de colonne concurrentes (70ch / 74ch).
   `.art` ne garde donc que la colonne de lecture et l'habillage des visuels ;
   toute la typographie du corps d'article appartient à `.entry-content`, seule
   feuille appliquée au contenu de l'éditeur. Une propriété, une autorité. */
.art{max-width:70ch}
.art > .entry-content{max-width:none}
.art figure{margin:26px 0}
.art figure img{width:100%;border-radius:var(--r-card);border:1px solid var(--ligne)}
.art figcaption{font-size:13.5px;color:var(--gris);margin-top:9px;line-height:1.5}
.art .tbl-w{margin:22px 0}
.art-vis{margin:0 0 28px}
.meta-line{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px;color:var(--gris);font-weight:600;margin:0 0 20px}
.meta-line b{color:var(--graphite);font-weight:700}
.inline-cta{background:var(--rouge-pale);border:1px solid #F2D6CB;border-radius:var(--r-card);padding:22px 24px;
  margin:clamp(28px,3vw,40px) 0;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.inline-cta div{min-width:0;flex:1 1 260px}
.inline-cta h3{margin:0 0 5px;font-size:19px;color:#5C2314}
.inline-cta p{margin:0;font-size:14.5px;color:#6B3122}
.author{display:flex;gap:16px;align-items:flex-start;background:var(--blanc);border:1px solid var(--ligne);
  border-radius:var(--r-card);box-shadow:var(--sh-1);padding:22px;margin-top:clamp(28px,3vw,40px)}
.author .av{width:56px;height:56px;border-radius:50%;background:var(--rouge-pale);display:grid;place-items:center;flex:none}
.author .av svg{width:26px;height:26px;color:var(--rouge-fonce)}
.author h2,.author h3{margin:0 0 5px;font-size:17px;letter-spacing:-.02em;line-height:1.25}
.author p{margin:0;font-size:14.5px;color:#3B3D40}
.author p + p{margin-top:6px}
/* Fonction et ancienneté : la ligne qui incarne la signature. */
.author .author-r{font-family:var(--ttl);font-weight:700;font-size:13.5px;color:var(--rouge-fonce);letter-spacing:.01em}
.author .author-d{font-size:13px;color:var(--gris);margin-top:9px}
.author .author-d time{font-variant-numeric:tabular-nums}
.author-r span,.author-d span{color:#C9BEB4;margin:0 3px}

/* ---------- FORMULAIRE LONG (G15 / G16) ---------- */
.frm{display:grid;gap:16px;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-lg);
  box-shadow:var(--sh-2);padding:clamp(20px,2.4vw,30px)}
.frm-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:620px){ .frm-2{grid-template-columns:1fr} }
.frm .fld label{font-size:14px;font-weight:600;margin-bottom:6px;display:block}
.frm .fld .req{color:var(--rouge-fonce)}
.frm input,.frm select,.frm textarea{width:100%;min-height:52px;padding:13px 15px;border:1.75px solid var(--ligne);
  border-radius:var(--r-sm);font:inherit;font-size:16px;background:var(--blanc);color:var(--graphite)}
.frm textarea{min-height:120px;resize:vertical;line-height:1.55}
.frm select{appearance:none;background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPScjMTcxODFBJyBzdHJva2Utd2lkdGg9JzIuMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJz48cGF0aCBkPSdtNiA5IDYgNiA2LTYnLz48L3N2Zz4=");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:42px}
.frm input:focus,.frm select:focus,.frm textarea:focus{border-color:var(--rouge);outline:none;box-shadow:0 0 0 4px var(--rouge-pale)}
.frm .fld.bad input,.frm .fld.bad select,.frm .fld.bad textarea{border-color:#B03720;background:#FFF8F6}
.err{display:none;font-size:13.5px;color:#93301A;font-weight:600;margin-top:6px;align-items:center;gap:7px}
.err svg{width:15px;height:15px;flex:none}
.fld.bad .err{display:flex}
.chk{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;color:#3B3D40}
.chk{min-height:44px;padding:4px 0}
.chk input{width:24px;height:24px;min-height:24px;flex:none;margin-top:1px;accent-color:var(--rouge-cta);padding:0}
.frm-ok{text-align:center;padding:14px 0 6px}
.frm-ok .est-ok-i{margin-bottom:16px}
.frm-ok h3{margin:0 0 10px;font-size:24px}
.frm-ok p{font-size:15.5px;color:#3B3D40;max-width:46ch;margin:0 auto 18px}
.frm[aria-busy="true"] button[type="submit"]{opacity:.72;pointer-events:none}
.spin{width:17px;height:17px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;
  animation:spin .7s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- BLOCS CONTACT ---------- */
.g2-form{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(22px,3vw,48px);align-items:start}
@media (max-width:900px){ .g2-form{grid-template-columns:1fr} }
.ctc{display:grid;gap:14px}
.ctc-i{display:flex;gap:14px;align-items:flex-start;background:var(--blanc);border:1px solid var(--ligne);
  border-radius:var(--r-card);box-shadow:var(--sh-1);padding:18px;text-decoration:none;color:inherit;transition:.18s}
a.ctc-i:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:#E6C7BB}
.ctc-i .aide-i{margin:0;flex:none}
.ctc-i h3{font-size:16.5px;margin:0 0 3px}
.ctc-i p{margin:0;font-size:14.5px;color:#3B3D40}
.ctc-i .d{display:block;font-size:12.5px;color:var(--rouge-fonce);font-weight:700;margin-top:5px}
.bandeau-urg{background:var(--rouge-sombre);color:#fff;border-radius:var(--r-card);padding:16px 20px;display:flex;
  gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:clamp(22px,2.6vw,34px)}
.bandeau-urg p{margin:0;font-size:15px;color:#FFD9CF;flex:1 1 240px;min-width:0}
.bandeau-urg b{color:#fff;font-family:var(--ttl)}
.bandeau-urg a.tel{font-family:var(--ttl);font-weight:800;font-size:22px;letter-spacing:-.03em;color:#fff;
  text-decoration:none;display:inline-flex;align-items:center;gap:9px;min-height:44px}
.bandeau-urg a.tel:hover{color:#FFE8E2}
.bandeau-urg a.tel svg{width:20px;height:20px}

/* ---------- ÉQUIPE (G11) ---------- */
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:980px){ .team{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .team{grid-template-columns:1fr} }
.team .cardp{padding:0;overflow:hidden}
.team-ph{aspect-ratio:4/3;background:linear-gradient(135deg,var(--rouge-pale),#F7E2DA);display:grid;place-content:center;
  justify-items:center;gap:8px;text-align:center;padding:14px;border-bottom:1px solid var(--ligne)}
.team-ph svg{width:30px;height:30px;color:var(--rouge-fonce)}
.team-ph span{font-size:11.5px;font-weight:600;color:#6B3122}
.team-b{padding:18px}
.team-b h3{margin:0 0 3px;font-size:18px}
.team-r{font-size:13.5px;font-weight:700;color:var(--rouge-fonce);margin:0 0 8px}
.team-b p{margin:0;font-size:14px;color:#3B3D40;line-height:1.5}

/* ---------- SEGMENTS PRO (G16) ---------- */
.seg{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);box-shadow:var(--sh-1);
  padding:24px 22px;min-width:0}
.seg .aide-i{margin-bottom:14px}
.seg h3{margin:0 0 12px}
.seg ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.seg li{display:flex;gap:10px;font-size:14.5px;line-height:1.5;margin:0}
.seg li svg{width:17px;height:17px;flex:none;margin-top:3px;color:var(--rouge)}

/* ---------- GARANTIES (G17) ---------- */
.gar{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);box-shadow:var(--sh-1);
  padding:24px 22px;display:flex;flex-direction:column;gap:14px;min-width:0}
.gar-hd{display:flex;gap:13px;align-items:center}
.gar-hd .aide-i{margin:0;flex:none}
.gar-hd h3{margin:0}
.gar-d{font-size:12.5px;font-weight:700;color:var(--rouge-fonce);letter-spacing:.04em;text-transform:uppercase;
  font-family:var(--ttl)}
.gar dl{margin:0;display:grid;gap:11px}
.gar dt{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);
  font-family:var(--ttl);margin-bottom:4px}
.gar dd{margin:0;font-size:14.5px;line-height:1.55;color:#3B3D40}
.gar .no dt{color:#93301A}

/* ---------- PAGE SIMPLE (G18) ---------- */
.simple{max-width:68ch}
.simple h2{font-size:clamp(22px,2.2vw,29px);margin:clamp(28px,3vw,42px) 0 12px}
.simple p,.simple li{font-size:16.5px;color:#2E3033;line-height:1.68}
.sitemap{list-style:none;padding:0;margin:0}
.sitemap > li{margin:0 0 22px}
.sitemap > li > a,.sitemap > li > span{font-family:var(--ttl);font-weight:800;font-size:18px;letter-spacing:-.02em;
  display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.sitemap ul{list-style:none;padding:0 0 0 18px;margin:6px 0 0;border-left:2px solid var(--ligne)}
.sitemap ul li{margin:0}
.sitemap ul a{display:inline-flex;align-items:center;min-height:40px;font-size:15px;text-decoration:none;color:#3B3D40}
.sitemap ul a:hover{color:var(--rouge-fonce)}

/* ---------- DIVERS ---------- */
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.tags li{margin:0}
.tags a,.tags span{display:inline-flex;align-items:center;min-height:44px;padding:9px 16px;border-radius:var(--r-pill);
  background:var(--blanc);border:1.5px solid var(--ligne);text-decoration:none;font-weight:600;font-size:14.5px}
.tags a:hover{border-color:var(--rouge);color:var(--rouge-fonce)}
.tags span{color:var(--gris);background:var(--sable);border-color:transparent;min-height:38px;padding:7px 14px;font-size:13.5px}

/* Communes des codes postaux voisins : pastilles compactes, zone dense et
   discrète sous la carte. Elles restent lisibles et n'entrent pas en
   concurrence avec les dix grandes pastilles de villes. */
.tags-mini{gap:5px 6px}
.tags-mini a,.tags-mini span{min-height:28px;padding:3px 10px;font-size:12.5px;line-height:1.35;border-radius:var(--r-pill)}
.tags-mini span{background:var(--sable);color:var(--gris);border-color:transparent}
.tags-mini a{background:var(--blanc);border-color:var(--ligne)}
.zones-proches{margin-top:clamp(22px,2.4vw,32px);padding-top:20px;border-top:1px solid var(--ligne)}
.zones-proches-i{margin:0 0 14px;color:var(--gris);font-size:14px;max-width:80ch}
.zones-cp{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 16px;align-items:start;margin-top:10px}
.zones-cp-t{margin:0;font-size:13px;font-weight:700;color:var(--gris);letter-spacing:.02em;padding-top:3px}
@media (max-width:620px){ .zones-cp{grid-template-columns:1fr;gap:6px} }
.cta-band{background:var(--graphite);color:#fff;border-radius:var(--r-lg);padding:clamp(26px,3vw,44px);
  display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.cta-band h2{color:#fff;margin:0 0 8px;font-size:clamp(24px,2.5vw,34px)}
.cta-band p{margin:0;color:#C4BDB7;font-size:15.5px}
.cta-band > div:first-child{flex:1 1 300px;min-width:0}
.cta-band .telbig-n{color:#fff}
.cta-band .telbig-l{color:#C4BDB7}
.mini-est{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:var(--rouge-pale);border:1px solid #F2D6CB;
  border-radius:var(--r-card);padding:20px 24px}
.mini-est div{flex:1 1 260px;min-width:0}
.mini-est h3{margin:0 0 5px;color:#5C2314;font-size:19px}
.mini-est p{margin:0;font-size:14.5px;color:#6B3122}
.hr{border:0;border-top:1px solid var(--ligne);margin:clamp(30px,3.4vw,48px) 0}
.two-col{columns:2;column-gap:34px}
@media (max-width:720px){ .two-col{columns:1} }


/* ================================================================
   ============  COUCHE WORDPRESS  ================================
   Ajouts propres au thème : barre d'admin, menus wp_nav_menu,
   classes générées par WordPress, feuille de contenu de the_content().
   ================================================================ */

/* ---------- BARRE D'ADMINISTRATION ----------
   --pv vaut 0 sur le site public ; la barre d'admin la remplit. */
body.admin-bar{--pv:32px}
@media screen and (max-width:782px){ body.admin-bar{--pv:46px} }
@media screen and (max-width:600px){
  body.admin-bar .hdr{top:0}
  body.admin-bar{--pv:0px}
}

/* ---------- LIENS D'ÉVITEMENT ---------- */
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--rouge-cta);color:#fff;
  padding:12px 18px;border-radius:0 0 12px 0;text-decoration:none;font-weight:700}
.skip-link:focus{left:0}
#main:focus{outline:none}

/* ---------- MENU PRINCIPAL (wp_nav_menu) ---------- */
.nav .menu{list-style:none;display:flex;align-items:center;gap:2px;margin:0;padding:0}
.nav .menu > li{margin:0;position:relative}
.nav .menu a{gap:3px}
.nav .menu a svg{width:14px;height:14px;opacity:.55;transition:transform .18s ease}
.nav .current-menu-item > a,.nav .current-menu-ancestor > a,.nav .current_page_item > a{
  background:var(--rouge-pale);color:var(--rouge-fonce)}
.nav .sub-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;min-width:250px;margin:0;padding:8px;
  list-style:none;background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);
  box-shadow:var(--sh-3);opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .16s ease,transform .16s ease,visibility 0s .16s}
.nav .has-children:hover > .sub-menu,
.nav .has-children:focus-within > .sub-menu{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.nav .has-children:hover > a svg,.nav .has-children:focus-within > a svg{transform:rotate(180deg)}
.nav .sub-menu li{margin:0}
.nav .sub-menu a{display:flex;width:100%;padding:10px 13px;border-radius:10px;font-size:14.5px;font-weight:500}

/* ---------- MENU MOBILE ---------- */
.mnav .menu{list-style:none;margin:0;padding:0}
.mnav .menu li{margin:0}
.mnav .menu > li > a{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 4px;border-bottom:1px solid var(--ligne);min-height:48px;font-weight:600;text-decoration:none}
.mnav .sub-menu{list-style:none;margin:0 0 6px;padding:4px 0 4px 16px;border-left:2px solid var(--ligne)}
.mnav .sub-menu a{display:flex;align-items:center;min-height:44px;padding:10px 4px;border-bottom:0;
  font-weight:500;font-size:15px;color:#3B3D40;text-decoration:none}
.mnav .sub-menu a:hover{color:var(--rouge-fonce)}
.mnav .current-menu-item > a{color:var(--rouge-fonce)}
.mnav .btn{margin-top:12px}
.mnav .btn + .btn{margin-top:10px}
.mnav[hidden]{display:none}

/* ---------- PIED DE PAGE ---------- */
.ft-col{min-width:0}
.ft .logo{margin-bottom:18px}
.ft .menu{list-style:none;margin:0;padding:0}
.ft .menu li{margin:0 0 4px}
.ft .menu a{display:inline-flex;align-items:center;min-height:40px}
.ft-mail{margin:0 0 10px;word-break:break-word}
.ft address strong{color:#fff;font-weight:700}
.ft-h3-2{margin-top:22px}
/* Horaires du secrétariat : une seule ligne, pas un tableau de sept jours. */
.ft-horaire{margin:0;font-size:13.5px}
.ft-social{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:18px 0 0;padding:0}
.ft-social li{margin:0}
.ft-social a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;
  border:1px solid #34363A;color:#B9B3AE;transition:.16s}
.ft-social a:hover{border-color:var(--rouge);color:#fff;background:rgba(217,72,43,.2)}
.ft-legal{list-style:none;display:flex;flex-wrap:wrap;gap:6px 22px;margin:0;padding:0}
.ft-legal li{margin:0}
.ft-bot a{text-decoration:underline;text-underline-offset:3px}
.ft-bot .ft-legal a{min-height:auto}
/* Crédit de création : lien sortant, légèrement plus clair que le reste du bas de page. */
.ft-credit a{color:#B7AFA9;transition:color .18s ease}
.ft-credit a:hover,.ft-credit a:focus-visible{color:#fff}

/* ---------- BARRE UTILITAIRE : lien d'urgence ---------- */
a.tb-urg{text-decoration:none;color:#FFD9CF}
a.tb-urg:hover{background:rgba(217,72,43,.34);color:#fff}

/* ---------- GALERIE : carte cliquable ---------- */
.gal-i .gal-link{display:block;text-decoration:none;color:inherit}
.gal-b{display:block}
.gal-t{font-family:var(--ttl);font-weight:800;letter-spacing:-.02em;font-size:17.5px;line-height:1.25;margin:0 0 6px}
.gal-i:hover .gal-t{color:var(--rouge-fonce)}
.gal-m,.gal-x{display:block}

/* ---------- FORMULAIRE DE RECHERCHE ---------- */
.srch-go{position:absolute;right:5px;top:50%;transform:translateY(-50%);min-height:44px;padding:0 20px;
  border:0;border-radius:var(--r-pill);background:var(--rouge-cta);color:#fff;font-family:var(--ttl);
  font-weight:700;font-size:14.5px;cursor:pointer;transition:.16s}
.srch-go:hover{background:var(--rouge-fonce)}
.srch input{padding-right:124px}
@media (max-width:420px){
  .srch input{padding-right:96px}
  .srch-go{padding:0 14px;font-size:13.5px}
}

/* ================================================================
   CLASSES GÉNÉRÉES PAR WORDPRESS
   ================================================================ */

.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}
.screen-reader-text:focus{position:static!important;width:auto;height:auto;margin:0;clip:auto;
  background:var(--blanc);padding:12px 18px;border-radius:12px;box-shadow:var(--sh-2)}

.alignwide{width:min(1240px,100% - 40px);max-width:none;margin-inline:auto}
.alignfull{width:100vw;max-width:none;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.alignfull img,.alignwide img{width:100%}
.aligncenter{display:block;margin-inline:auto;text-align:center}
.alignleft{float:left;margin:4px 26px 18px 0;max-width:50%}
.alignright{float:right;margin:4px 0 18px 26px;max-width:50%}
.alignnone{margin:0 0 18px}
@media (max-width:620px){
  .alignleft,.alignright{float:none;margin:0 0 18px;max-width:100%}
}

.wp-caption{max-width:100%;margin:0 0 22px}
.wp-caption img{border-radius:var(--r-card);border:1px solid var(--ligne)}
.wp-caption-text,.wp-element-caption,figcaption{font-size:13.5px;color:var(--gris);line-height:1.5;
  margin-top:9px;text-align:left}
.wp-block-image{margin:0 0 26px}
.wp-block-image img{border-radius:var(--r-card)}
.wp-block-image figcaption{margin-top:9px}

.sticky .gal-cat::after{content:" ★"}
.post-password-form input[type="password"]{min-height:52px;padding:13px 15px;border:1.75px solid var(--ligne);
  border-radius:var(--r-sm);font:inherit}
.post-password-form input[type="submit"]{min-height:52px;padding:13px 26px;border:0;border-radius:var(--r-pill);
  background:var(--rouge-cta);color:#fff;font-family:var(--ttl);font-weight:700;cursor:pointer}

.wp-block-button__link,.wp-element-button{display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:14px 26px;border-radius:var(--r-pill);background:var(--rouge-cta);color:#fff;
  font-family:var(--ttl);font-weight:700;font-size:16.5px;text-decoration:none;border:0;
  box-shadow:var(--sh-red);transition:.18s}
.wp-block-button__link:hover,.wp-element-button:hover{background:var(--rouge-fonce);transform:translateY(-2px)}
.wp-block-button.is-style-outline .wp-block-button__link{background:var(--blanc);color:var(--graphite);
  border:1.75px solid var(--ligne);box-shadow:var(--sh-1)}

.wp-block-quote{margin:26px 0;padding-left:22px;border-left:4px solid var(--rouge);font-family:var(--ttl);
  font-weight:600;font-size:clamp(18px,1.7vw,22px);letter-spacing:-.02em;line-height:1.4}
.wp-block-quote cite{display:block;margin-top:10px;font-family:var(--txt);font-size:14.5px;font-weight:500;
  font-style:normal;color:var(--gris)}
.wp-block-pullquote{margin:34px 0;padding:26px;background:var(--rouge-pale);border-radius:var(--r-card);
  border-left:5px solid var(--rouge);text-align:left}

.wp-block-separator{border:0;border-top:1px solid var(--ligne);margin:clamp(30px,3.4vw,48px) 0}
.wp-block-separator.is-style-dots{border:0;text-align:center}

.wp-block-table{margin:22px 0}
.wp-block-table table{border-collapse:collapse;width:100%;font-size:15px;background:var(--blanc)}
.wp-block-table figcaption{margin-top:10px}
.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background:var(--ivoire)}

.wp-block-embed{margin:26px 0}
.wp-block-embed figcaption{margin-top:9px}
.wp-block-gallery.has-nested-images figure.wp-block-image img{border-radius:var(--r-sm)}
.wp-block-code,pre.wp-block-preformatted{background:var(--graphite);color:#F1ECE8;border-radius:var(--r-card);
  padding:18px 20px;overflow-x:auto;font-size:14px;line-height:1.6}
.wp-block-code code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}

.wp-block-group.has-background,.wp-block-cover{border-radius:var(--r-lg)}
.wp-block-latest-posts,.wp-block-categories,.wp-block-archives{list-style:none;padding:0}

/* ================================================================
   FEUILLE DE CONTENU — the_content()
   ================================================================ */

.entry-content{max-width:74ch}
.entry-content.is-wide{max-width:none}
.entry-content > *:first-child{margin-top:0}
.entry-content > *:last-child{margin-bottom:0}

.entry-content h2{font-size:clamp(23px,2.3vw,31px);margin:clamp(30px,3vw,44px) 0 12px}
.entry-content h3{font-size:clamp(19px,1.5vw,23px);margin:26px 0 9px}
.entry-content h4{font-size:17.5px;margin:22px 0 8px}
.entry-content h5,.entry-content h6{font-family:var(--ttl);font-weight:700;font-size:15px;
  letter-spacing:.04em;text-transform:uppercase;color:var(--gris);margin:20px 0 7px}

.entry-content p{font-size:16.5px;color:#2E3033;line-height:1.68;margin:0 0 16px}
.entry-content p.lede,.entry-content > p:first-of-type{font-size:17.5px}
.entry-content a{color:var(--rouge-fonce);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px}
.entry-content a:hover{text-decoration-thickness:2px}
.entry-content strong{font-weight:700}

.entry-content ul,.entry-content ol{margin:0 0 18px;padding-left:22px}
.entry-content li{font-size:16.5px;color:#2E3033;line-height:1.6;margin:0 0 8px}
.entry-content li::marker{color:var(--rouge)}
.entry-content ul ul,.entry-content ol ol{margin:8px 0 0}
.entry-content dl{margin:0 0 20px}
.entry-content dt{font-family:var(--ttl);font-weight:700;margin-top:14px}
.entry-content dd{margin:4px 0 0 18px;color:#3B3D40}

.entry-content blockquote{margin:26px 0;padding-left:22px;border-left:4px solid var(--rouge);
  font-family:var(--ttl);font-weight:600;font-size:clamp(18px,1.7vw,22px);letter-spacing:-.02em;line-height:1.4}
.entry-content blockquote p{font-size:inherit;font-family:inherit;color:inherit;margin-bottom:10px}
.entry-content blockquote cite{display:block;font-family:var(--txt);font-size:14.5px;font-style:normal;
  font-weight:500;color:var(--gris)}

.entry-content figure{margin:26px 0}
.entry-content img{border-radius:var(--r-card)}
.entry-content figure img{border:1px solid var(--ligne)}

.entry-content table{border-collapse:collapse;width:100%;min-width:0;font-size:15px;background:var(--blanc);
  border:1px solid var(--ligne);border-radius:var(--r-card);overflow:hidden;margin:0 0 22px}
.entry-content th,.entry-content td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--ligne)}
.entry-content th{font-family:var(--ttl);font-weight:700;font-size:14px;background:var(--ivoire)}
.entry-content tr:last-child td{border-bottom:0}

.entry-content hr{border:0;border-top:1px solid var(--ligne);margin:clamp(30px,3.4vw,48px) 0}
.entry-content code{background:var(--sable);border-radius:6px;padding:2px 6px;font-size:.92em;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.entry-content pre{background:var(--graphite);color:#F1ECE8;border-radius:var(--r-card);padding:18px 20px;
  overflow-x:auto;font-size:14px;line-height:1.6;margin:0 0 22px}
.entry-content pre code{background:none;color:inherit;padding:0}
.entry-content abbr[title]{text-decoration:underline dotted;cursor:help}

/* ================================================================
   COMMENTAIRES
   ================================================================ */

.comments{margin-top:clamp(34px,4vw,56px);border-top:1px solid var(--ligne);padding-top:clamp(26px,3vw,40px)}
.comments h2{font-size:clamp(21px,2vw,27px);margin-bottom:20px}
.comment-list,.comment-list .children{list-style:none;margin:0;padding:0}
.comment-list .children{padding-left:22px;border-left:2px solid var(--ligne);margin-top:14px}
.comment-body{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-card);
  box-shadow:var(--sh-1);padding:18px 20px;margin-bottom:14px}
.comment-meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13.5px;
  color:var(--gris);margin-bottom:10px}
.comment-author .fn{font-family:var(--ttl);font-weight:700;font-style:normal;color:var(--graphite)}
.comment-list .bypostauthor > .comment-body{border-color:#E6C7BB}
.comment-reply-link{display:inline-flex;align-items:center;min-height:44px;font-weight:700;font-size:14px;
  color:var(--rouge-fonce);text-decoration:none}
.comment-form{display:grid;gap:14px;margin-top:20px}
.comment-form label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],
.comment-form textarea{width:100%;min-height:52px;padding:13px 15px;border:1.75px solid var(--ligne);
  border-radius:var(--r-sm);font:inherit;font-size:16px;background:var(--blanc)}
.comment-form textarea{min-height:130px;resize:vertical}
.comment-form input:focus,.comment-form textarea:focus{border-color:var(--rouge);outline:none;
  box-shadow:0 0 0 4px var(--rouge-pale)}
.comment-form .submit{min-height:52px;padding:14px 26px;border:0;border-radius:var(--r-pill);
  background:var(--rouge-cta);color:#fff;font-family:var(--ttl);font-weight:700;font-size:16.5px;
  cursor:pointer;justify-self:start}
.comment-form .submit:hover{background:var(--rouge-fonce)}

/* ================================================================
   ============  COMPOSANTS ÉDITORIAUX DU BLOG  ===================
   Les vingt-huit articles du cocon ont besoin d'encadrés, de tableaux de prix
   et de listes typées. Sans ces composants, chaque encadré devrait être écrit
   en HTML brut dans un bloc « HTML personnalisé » — inéditable par la cliente
   et impossible à faire évoluer.

   Contrainte déterminante : les moteurs génératifs découpent la page en
   fragments de 100 à 300 mots et citent des passages isolés ; aucun de leurs
   crawlers n'exécute JavaScript. Chaque composant est donc du HTML servi, jamais
   injecté, jamais masqué derrière un clic, et sémantiquement autonome — un
   encadré arraché à son contexte doit rester compréhensible.

   Chaque composant répond à DEUX sélecteurs :
     · `.enc-<nom>`             — posé par les compositions (register_block_pattern) ;
     · `.is-style-mjrt-<nom>`   — posé par les variations (register_block_style),
                                  quand la cliente convertit un bloc existant.
   Les deux listes doivent rester synchronisées avec inc/setup.php.
   ================================================================ */

.enc,
.is-style-mjrt-retenir,.is-style-mjrt-definition,.is-style-mjrt-alerte,
.is-style-mjrt-chiffre,.is-style-mjrt-terrain{
  margin:clamp(24px,2.6vw,34px) 0;padding:clamp(18px,2vw,24px) clamp(18px,2vw,26px);
  background:var(--blanc);border:1px solid var(--ligne);border-left:5px solid var(--rouge);
  border-radius:var(--r-card);box-shadow:var(--sh-1);break-inside:avoid
}
.enc > *:first-child,.is-style-mjrt-retenir > *:first-child,.is-style-mjrt-definition > *:first-child,
.is-style-mjrt-alerte > *:first-child,.is-style-mjrt-chiffre > *:first-child,
.is-style-mjrt-terrain > *:first-child{margin-top:0}
.enc > *:last-child,.is-style-mjrt-retenir > *:last-child,.is-style-mjrt-definition > *:last-child,
.is-style-mjrt-alerte > *:last-child,.is-style-mjrt-chiffre > *:last-child,
.is-style-mjrt-terrain > *:last-child{margin-bottom:0}

/* Étiquette de l'encadré : « À retenir », « Définition », « Attention »…
   C'est elle qui porte le sens. La couleur ne fait jamais le travail toute
   seule — exigence WCAG 1.4.1 et, accessoirement, condition pour qu'un moteur
   qui lit le texte brut comprenne la nature du bloc. */
.enc-l{display:flex;align-items:center;gap:8px;font-family:var(--ttl);font-size:11.5px;font-weight:800;
  letter-spacing:.11em;text-transform:uppercase;color:var(--rouge-fonce);margin:0 0 10px}
.enc-l svg{width:15px;height:15px;flex:none}
.enc-l::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor;flex:none}
.entry-content .enc-l{font-size:11.5px;line-height:1.3}

.enc p,.entry-content .enc p{margin:0 0 10px;font-size:16px;line-height:1.6;color:#2E3033}
.enc p:last-child,.entry-content .enc p:last-child{margin-bottom:0}
.enc ul,.enc ol,.entry-content .enc ul,.entry-content .enc ol{margin:0 0 10px;padding-left:20px}
.enc li,.entry-content .enc li{font-size:15.5px;line-height:1.55;margin:0 0 6px}

/* ---- « À retenir » : la réponse synthétique, en tête ou en fin de section.
        C'est le format le plus repris par les moteurs génératifs, d'où le
        traitement le plus affirmé de la charte : le rouge dominant. ---- */
.enc-retenir,.is-style-mjrt-retenir{background:var(--rouge-pale);border-color:#F2D6CB;border-left-color:var(--rouge)}
.enc-retenir .enc-l,.is-style-mjrt-retenir .enc-l{color:var(--rouge-fonce)}
.enc-retenir p,.is-style-mjrt-retenir p,
.entry-content .enc-retenir p,.entry-content .is-style-mjrt-retenir p{color:#4A1D10;font-size:16.5px;font-weight:500}

/* ---- « Définition » : une phrase, « X est … ». Sobre volontairement : c'est
        une note de lexique, pas un point d'insistance. ---- */
.enc-def,.is-style-mjrt-definition{background:var(--ivoire);border-color:var(--ligne);border-left-color:var(--graphite)}
.enc-def .enc-l,.is-style-mjrt-definition .enc-l{color:var(--gris)}
.enc-def p,.is-style-mjrt-definition p,
.entry-content .enc-def p,.entry-content .is-style-mjrt-definition p{font-size:17px;line-height:1.55}
.enc-def strong,.is-style-mjrt-definition strong{font-family:var(--ttl);letter-spacing:-.02em}

/* ---- « Avertissement » : ce qu'il ne faut pas faire. Trois marqueurs
        indépendants de la couleur — le mot « Attention », la barre hachurée et
        le fond blanc qui le distingue de « À retenir ». ---- */
.enc-alerte,.is-style-mjrt-alerte{background:var(--blanc);border-color:#E6C7BB;border-left:0;
  padding-left:clamp(22px,2.2vw,30px);position:relative;overflow:hidden}
.enc-alerte::before,.is-style-mjrt-alerte::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;
  background:repeating-linear-gradient(135deg,var(--rouge-sombre) 0 6px,#9A3520 6px 12px)}
.enc-alerte .enc-l,.is-style-mjrt-alerte .enc-l{color:var(--rouge-sombre)}

/* ---- « Chiffre clé » : une statistique isolée. Format le plus cité de tous ;
        il doit se lire seul, donc il porte sa source dans le bloc. ---- */
.enc-chiffre,.is-style-mjrt-chiffre{background:var(--graphite);border-color:var(--graphite);
  border-left-color:var(--rouge);color:#fff;text-align:left}
.enc-chiffre .enc-l,.is-style-mjrt-chiffre .enc-l{color:#FFB9A4}
.enc-chiffre p,.is-style-mjrt-chiffre p,
.entry-content .enc-chiffre p,.entry-content .is-style-mjrt-chiffre p{color:#D8D2CD;font-size:15.5px}
/* La statistique elle-même : déclarée APRÈS la couleur de paragraphe du bloc,
   et avec la même spécificité de descendance, sinon le 15,5 px du paragraphe
   l'emporterait et le chiffre passerait inaperçu — exactement ce qu'on ne veut
   pas d'un composant dont tout l'intérêt est d'être vu et cité. */
.enc-n,.entry-content .enc-n,
.enc-chiffre .enc-n,.is-style-mjrt-chiffre .enc-n,
.entry-content .enc-chiffre .enc-n,.entry-content .is-style-mjrt-chiffre .enc-n{
  display:block;font-family:var(--ttl);font-weight:800;font-size:clamp(38px,5vw,58px);
  letter-spacing:-.045em;line-height:1;color:#fff;margin:0 0 8px}
.enc-chiffre a,.is-style-mjrt-chiffre a,
.entry-content .enc-chiffre a,.entry-content .is-style-mjrt-chiffre a{color:#FFD9CF}
/* Source de la statistique : plus petite, mais jamais sous 13 px. */
.enc-src,.entry-content .enc-src{font-size:13.5px;color:#B9B3AE;margin:10px 0 0}

/* ---- « Notre expérience » : le retour de terrain de l'entreprise. Il doit se
        voir immédiatement comme une parole d'artisan, pas comme du contenu
        générique : d'où le fond sable et le vert, réservé ici au filet et à
        l'icône — sur sable, le vert de la charte ne tient pas le 4,5:1 en
        texte, le libellé reste donc en graphite. ---- */
.enc-terrain,.is-style-mjrt-terrain{background:var(--sable);border-color:#E2D8D0;border-left-color:var(--vert)}
.enc-terrain .enc-l,.is-style-mjrt-terrain .enc-l{color:var(--graphite)}
.enc-terrain .enc-l::before,.is-style-mjrt-terrain .enc-l::before{background:var(--vert)}
.enc-terrain .enc-l svg,.is-style-mjrt-terrain .enc-l svg{color:var(--vert)}
.enc-terrain p,.is-style-mjrt-terrain p,
.entry-content .enc-terrain p,.entry-content .is-style-mjrt-terrain p{color:#33352F}

/* ---------- TABLEAU DE PRIX ----------
   Toujours un <table> natif : jamais de grille de <div>, jamais d'image, jamais
   de PDF. C'est le seul format qu'un moteur génératif sait relire ligne à ligne.
   Le style s'applique aussi bien à `.tbl-prix` posé à la main qu'à la variation
   « Tableau de prix » d'un bloc Tableau. */
.tbl-prix,.is-style-mjrt-prix{margin:clamp(24px,2.6vw,34px) 0}
.tbl-prix table,.is-style-mjrt-prix table,.entry-content .tbl-prix table,.entry-content .is-style-mjrt-prix table{
  width:100%;min-width:460px;border-collapse:collapse;background:var(--blanc);border:1px solid var(--ligne);
  border-radius:var(--r-card);overflow:hidden;font-size:15px;margin:0}
.tbl-prix th,.is-style-mjrt-prix th,.entry-content .tbl-prix th,.entry-content .is-style-mjrt-prix th{
  background:var(--graphite);color:#fff;font-family:var(--ttl);font-weight:700;font-size:13px;
  letter-spacing:.03em;text-transform:uppercase;padding:13px 16px;border-bottom:0;vertical-align:bottom}
/* Unité de l'en-tête (« € TTC / m² ») : saisie en italique dans l'éditeur,
   rendue en seconde ligne discrète. La cliente n'a aucune classe à poser. */
.tbl-prix th em,.is-style-mjrt-prix th em{display:block;font-style:normal;font-family:var(--txt);font-weight:500;
  font-size:12px;letter-spacing:0;text-transform:none;color:#C4BDB7;margin-top:3px}
.tbl-prix td,.is-style-mjrt-prix td,.entry-content .tbl-prix td,.entry-content .is-style-mjrt-prix td{
  padding:13px 16px;border-bottom:1px solid var(--ligne);vertical-align:top;line-height:1.5}
.tbl-prix tbody tr:nth-child(even),.is-style-mjrt-prix tbody tr:nth-child(even){background:var(--ivoire)}
.tbl-prix tbody tr:last-child td,.is-style-mjrt-prix tbody tr:last-child td{border-bottom:0}
/* Colonne de prix : dernière colonne par convention, alignée à droite et en
   police de titre pour que les montants se comparent d'un coup d'œil. */
.tbl-prix th:last-child,.is-style-mjrt-prix th:last-child,
.tbl-prix td:last-child,.is-style-mjrt-prix td:last-child{text-align:right}
.tbl-prix td:last-child,.is-style-mjrt-prix td:last-child,
.entry-content .tbl-prix td:last-child,.entry-content .is-style-mjrt-prix td:last-child{
  font-family:var(--ttl);font-weight:800;letter-spacing:-.02em;font-size:16px;white-space:nowrap;
  font-variant-numeric:tabular-nums}
.tbl-prix figcaption,.is-style-mjrt-prix figcaption{margin-top:10px}

/* Défilement horizontal sous 620 px — sur le wrapper quand il y en a un
   (figure.wp-block-table, .tbl-w, .tbl-prix), sur le tableau lui-même sinon.
   Le <table> reste un <table> dans le DOM : la sémantique n'est jamais sacrifiée
   à la mise en page. */
@media (max-width:620px){
  .tbl-prix,.is-style-mjrt-prix,.entry-content .wp-block-table,.entry-content .tbl-w{
    overflow-x:auto;-webkit-overflow-scrolling:touch}
  .entry-content > table{display:block;overflow-x:auto;max-width:100%}
  .tbl-prix th,.is-style-mjrt-prix th,.tbl-prix td,.is-style-mjrt-prix td{padding:11px 13px}
  /* Sélecteurs alignés sur ceux de la règle de base : une requête média
     n'ajoute aucune spécificité, il faut donc reprendre `.entry-content …`
     sous peine de ne rien surcharger du tout. */
  /* `overflow:hidden` sur le <table> (posé pour arrondir ses coins) en ferait
     un conteneur de défilement à lui seul, ce qui casse le collage de la
     colonne de prix. L'arrondi et le cadre passent donc sur l'enveloppe. */
  .tbl-prix,.is-style-mjrt-prix{border:1px solid var(--ligne);border-radius:var(--r-card)}
  /* `border-collapse:collapse` empêche Chrome de coller une cellule : on passe
     en `separate` sans espacement, le rendu est identique et la colonne colle. */
  .tbl-prix table,.is-style-mjrt-prix table,
  .entry-content .tbl-prix table,.entry-content .is-style-mjrt-prix table{
    min-width:520px;overflow:visible;border:0;border-radius:0;border-collapse:separate;border-spacing:0}
  /* La colonne de prix reste figée à droite pendant que la description défile :
     un prix qu'il faut aller chercher hors écran ne sert à personne, et c'est
     la seule colonne que le lecteur compare vraiment d'une ligne à l'autre. */
  .tbl-prix th:last-child,.is-style-mjrt-prix th:last-child,
  .tbl-prix td:last-child,.is-style-mjrt-prix td:last-child,
  .entry-content .tbl-prix td:last-child,.entry-content .is-style-mjrt-prix td:last-child{
    position:sticky;right:0;background:var(--blanc);box-shadow:-9px 0 12px -8px rgba(23,24,26,.30)}
  .tbl-prix thead th:last-child,.is-style-mjrt-prix thead th:last-child{background:var(--graphite)}
  .tbl-prix tbody tr:nth-child(even) td:last-child,
  .is-style-mjrt-prix tbody tr:nth-child(even) td:last-child,
  .entry-content .tbl-prix tbody tr:nth-child(even) td:last-child,
  .entry-content .is-style-mjrt-prix tbody tr:nth-child(even) td:last-child{background:var(--ivoire)}
}

/* ---------- LISTE À COCHER ----------
   Items validés. La coche est une image de fond en data: URI — aucun appel
   réseau, aucun caractère typographique dont la présence dépend de la police
   système, et un <li> qui reste un <li> pour les lecteurs d'écran. */
.li-check,.is-style-mjrt-check,
.entry-content .li-check,.entry-content .is-style-mjrt-check{list-style:none;padding-left:0;margin:0 0 18px}
.li-check li,.is-style-mjrt-check li,.entry-content .li-check li,.entry-content .is-style-mjrt-check li{
  position:relative;padding-left:32px;margin:0 0 10px;line-height:1.55}
.li-check li::before,.is-style-mjrt-check li::before{content:"";position:absolute;left:0;top:2px;
  width:21px;height:21px;border-radius:50%;background-color:var(--rouge-pale);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B03720' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-size:13px 13px;background-position:center;background-repeat:no-repeat}

/* ---------- ÉTAPES NUMÉROTÉES ----------
   Une liste ordonnée mise en avant : le numéro sort du texte, chaque étape est
   un fragment autonome. Reste une <ol> : l'ordre est porté par le balisage. */
.ol-etapes,.is-style-mjrt-etapes,
.entry-content .ol-etapes,.entry-content .is-style-mjrt-etapes{list-style:none;padding-left:0;
  margin:clamp(22px,2.4vw,30px) 0;counter-reset:mjrt-etape}
.ol-etapes li,.is-style-mjrt-etapes li,.entry-content .ol-etapes li,.entry-content .is-style-mjrt-etapes li{
  counter-increment:mjrt-etape;position:relative;padding:2px 0 2px 54px;margin:0 0 18px;min-height:38px;
  line-height:1.6}
.ol-etapes li::before,.is-style-mjrt-etapes li::before{content:counter(mjrt-etape);
  position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;background:var(--rouge-cta);color:#fff;
  font-family:var(--ttl);font-weight:800;font-size:17px;display:grid;place-items:center;
  box-shadow:var(--sh-red)}
.ol-etapes li strong,.is-style-mjrt-etapes li strong{display:block;font-family:var(--ttl);font-size:17px;
  letter-spacing:-.02em;margin-bottom:2px}
.ol-etapes li::marker,.is-style-mjrt-etapes li::marker{content:none}

/* Titres rendus par un bloc à l'intérieur de la colonne d'article — FAQ,
   articles liés, signature. Ils suivent l'échelle du corps d'article et non
   celle des titres de section pleine largeur : dans une colonne de 70ch, un h2
   à 44 px écrase tout ce qui l'entoure. */
.art .sec-head{margin-bottom:16px}
.art .sec-head h2{font-size:clamp(22px,2.2vw,29px);margin:clamp(30px,3vw,44px) 0 0}

/* ---------- ANCRES ----------
   Les titres du contenu portent une ancre slugifiée. Sans marge de défilement,
   l'en-tête collant recouvre le titre visé quand on arrive par un lien partagé. */
.entry-content h2[id],.entry-content h3[id],.entry-content h4[id]{scroll-margin-top:calc(var(--pv) + 96px)}

/* ================================================================
   ============  INDEX DU BLOG ET COCON  ==========================
   ================================================================ */

/* ---------- SOMMAIRE DES SIX RUBRIQUES ----------
   De vrais liens d'ancre, pas des pastilles JavaScript : c'est la carte du blog,
   et elle doit exister pour un crawler qui n'exécute rien. */
.silo-nav{margin-top:clamp(22px,2.6vw,34px);background:var(--ivoire);border:1px solid var(--ligne);
  border-radius:var(--r-card);padding:20px 22px}
.silo-nav-t{font-family:var(--ttl);font-weight:800;font-size:12px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--gris);margin:0 0 12px}
.silo-nav ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px}
.silo-nav li{margin:0;min-width:0}
.silo-nav a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;
  padding:8px 14px;border-radius:var(--r-pill);background:var(--blanc);border:1.5px solid var(--ligne);
  text-decoration:none;font-weight:600;font-size:14.5px;line-height:1.3;transition:.16s}
.silo-nav a:hover{border-color:var(--rouge);color:var(--rouge-fonce)}
.silo-nav a span{flex:none;font-family:var(--ttl);font-size:12.5px;font-weight:800;color:var(--rouge-fonce);
  background:var(--rouge-pale);border-radius:var(--r-pill);padding:2px 9px}
@media (max-width:900px){ .silo-nav ul{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ .silo-nav ul{grid-template-columns:1fr} }

/* ---------- UNE BRANCHE DU COCON ---------- */
.silos{display:grid;gap:clamp(30px,3.6vw,52px)}
.silo{scroll-margin-top:calc(var(--pv) + 96px);padding-top:clamp(6px,1vw,12px);border-top:3px solid var(--rouge-pale)}
.silo-hd{margin-bottom:clamp(16px,1.8vw,24px)}
.silo-t{font-size:clamp(24px,2.6vw,34px);margin:12px 0 8px}
.silo-t a{text-decoration:none}
.silo-t a:hover{color:var(--rouge-fonce)}
.silo-d{margin:0;color:var(--gris);font-size:16px;line-height:1.6;max-width:78ch}
/* Tête de silo : la carte la plus visible de la rubrique, c'est elle qui porte
   l'autorité thématique et vers laquelle pointent tous les clusters. */
.silo-tete{display:grid;grid-template-columns:minmax(0,200px) minmax(0,1fr);gap:0;background:var(--blanc);
  border:1px solid var(--ligne);border-radius:var(--r-card);box-shadow:var(--sh-1);overflow:hidden;
  text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease}
.silo-tete:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.silo-ph{display:block}
.silo-ph img{width:100%;height:100%;min-height:150px;object-fit:cover}
.silo-tb{display:block;padding:20px 22px}
.silo-tb h3{font-size:clamp(18px,1.8vw,22px);margin:0 0 8px}
.silo-tete:hover h3{color:var(--rouge-fonce)}
.silo-tb .gal-x{display:block;margin:0 0 4px}
@media (max-width:720px){ .silo-tete{grid-template-columns:1fr} .silo-ph img{aspect-ratio:16/9;min-height:0} }
/* Les clusters en liste et non en vignettes : six rubriques de cinq articles
   feraient trente cartes. Chaque item porte titre + résumé, donc se tient seul
   s'il est cité hors de son contexte. */
.silo-l{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:2px}
.silo-l li{margin:0;border-top:1px solid var(--ligne);padding:12px 2px}
.silo-l li:first-child{border-top:0}
.silo-l a{display:inline-flex;align-items:center;min-height:32px;font-family:var(--ttl);font-weight:700;
  font-size:16.5px;letter-spacing:-.02em;line-height:1.3;text-decoration:none}
.silo-l a:hover{color:var(--rouge-fonce);text-decoration:underline;text-underline-offset:3px}
.silo-l span{display:block;font-size:14.5px;color:var(--gris);line-height:1.5;margin-top:3px}
.silo-plus{margin:16px 0 0}

/* ---------- « DANS LA MÊME SÉRIE » ----------
   Encart de fin d'article : la tête de silo, les frères, et la position du
   lecteur. Entièrement servi en HTML, y compris la position. */
.serie{background:var(--ivoire);border:1px solid var(--ligne);border-radius:var(--r-lg);
  padding:clamp(20px,2.4vw,30px);margin:clamp(28px,3vw,40px) 0 0}
.serie-k{display:inline-flex;align-items:center;gap:8px;font-family:var(--ttl);font-size:11.5px;font-weight:800;
  letter-spacing:.11em;text-transform:uppercase;color:var(--rouge-fonce);margin:0 0 10px}
.serie-k svg{width:15px;height:15px}
.serie-t{font-size:clamp(20px,2vw,26px);margin:0 0 8px}
.serie-t a{text-decoration:none}
.serie-t a:hover{color:var(--rouge-fonce)}
.serie-d{margin:0 0 12px;font-size:14.5px;color:var(--gris);line-height:1.55}
.serie-pos{margin:0 0 16px;font-size:14.5px;color:#3B3D40}
.serie-pos b{font-family:var(--ttl);color:var(--rouge-fonce)}
.serie-l{list-style:none;margin:0;padding:0;counter-reset:s}
.serie-l li{counter-increment:s;margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;
  padding:9px 0 9px 34px;border-top:1px solid var(--ligne);position:relative;line-height:1.45}
.serie-l li:first-child{border-top:0}
.serie-l li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:11px;
  font-family:var(--ttl);font-size:11.5px;font-weight:800;color:var(--gris);letter-spacing:.06em}
.serie-l a{font-weight:600;font-size:15.5px;text-decoration:none;min-height:32px;display:inline-flex;
  align-items:center}
.serie-l a:hover{color:var(--rouge-fonce);text-decoration:underline;text-underline-offset:3px}
.serie-l .is-tete a{font-family:var(--ttl);font-weight:800;letter-spacing:-.02em;font-size:16.5px}
.serie-l .is-ici{background:var(--rouge-pale);border-radius:10px;margin-left:-8px;
  padding-left:42px;padding-right:10px}
.serie-l .is-ici::before{left:8px;color:var(--rouge-fonce)}
.serie-n{font-family:var(--ttl);font-weight:800;letter-spacing:-.02em;font-size:16px;color:#5C2314}
.serie-b{font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--gris);
  background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--r-pill);padding:2px 9px;
  white-space:nowrap}
.serie-b--tete{color:var(--rouge-fonce);background:var(--rouge-pale);border-color:#F2D6CB}
.serie-l .is-ici .serie-b{color:var(--rouge-fonce);border-color:#F2D6CB}

/* ---------- DESCRIPTION D'ARCHIVE DE CATÉGORIE ----------
   Contenu indexable et très souvent cité tel quel : il est rendu en HTML
   complet, liens et paragraphes conservés, immédiatement sous le H1. */
.cat-intro{max-width:78ch}
.cat-intro > *:last-child{margin-bottom:0}
/* La description et l'article de référence qui la suit sont sur le même fond :
   deux gouttières pleines à la suite creusaient un trou au milieu de la page. */
section.sec-intro{padding-bottom:0}

/* ---------- CARTE DE L'ARTICLE COURANT ---------- */
.gal-i--ici{border-color:var(--rouge);box-shadow:none}
.gal-ici{display:inline-block;margin-left:8px;font-size:11.5px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--rouge-fonce)}

/* ================================================================
   IMPRESSION
   ================================================================ */

@media print{
  .topbar,.hdr,.mbar,.ft-social,.skip,.skip-link,.rprog,.est,.quiz,.frm{display:none!important}
  body{padding:0;background:#fff;color:#000;font-size:12pt}
  .wrap{width:auto}
  /* Un bloc jamais révélé est un bloc jamais imprimé. */
  [data-reveal]{opacity:1!important;transform:none!important;animation:none!important}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:10pt;color:#555}
  section{padding-block:12pt;break-inside:avoid}

  /* Les composants éditoriaux à l'impression : plus d'ombre ni d'aplat sombre —
     ils coûtent de l'encre et ressortent gris sur une imprimante noir et blanc —
     mais un filet net, et jamais de coupure au milieu d'un encadré. */
  .enc,.is-style-mjrt-retenir,.is-style-mjrt-definition,.is-style-mjrt-alerte,
  .is-style-mjrt-chiffre,.is-style-mjrt-terrain,.serie,.silo-tete,.silo-nav,.author,.toc{
    box-shadow:none!important;background:#fff!important;color:#000!important;
    border:1px solid #999!important;border-left:4px solid #333!important;break-inside:avoid}
  .enc-l,.serie-k{color:#000!important}
  .enc-chiffre p,.is-style-mjrt-chiffre p,.enc-src{color:#333!important}
  .enc-n{color:#000!important}
  .enc-alerte::before,.is-style-mjrt-alerte::before{display:none}
  .ol-etapes li::before,.is-style-mjrt-etapes li::before{background:#000!important;box-shadow:none!important}
  /* Un tableau de prix qui déborde sur deux pages doit reporter ses en-têtes. */
  .tbl-prix,.is-style-mjrt-prix,.entry-content .wp-block-table,.entry-content .tbl-w{overflow:visible!important}
  .tbl-prix thead,.is-style-mjrt-prix thead,.entry-content thead{display:table-header-group}
  .tbl-prix th,.is-style-mjrt-prix th{background:#fff!important;color:#000!important;border-bottom:2px solid #000!important}
  .tbl-prix tbody tr:nth-child(even),.is-style-mjrt-prix tbody tr:nth-child(even){background:#F2F2F2!important}
  .tbl-prix tr,.is-style-mjrt-prix tr{break-inside:avoid}
  .tbl-prix th em,.is-style-mjrt-prix th em{color:#333!important}
  /* Le sommaire ancré n'a aucun usage sur papier : il ne resterait qu'une
     colonne de gauche vide sur toute la hauteur de l'article. */
  .lay-toc{display:block}
  .toc{display:none!important}
  /* Les ancres internes ne servent à rien sur papier. */
  .art a[href^="#"]::after{content:""}
}

/* ---------- MESSAGE D'ERREUR GLOBAL DE L'ESTIMATEUR ---------- */
.est-err{display:flex;align-items:flex-start;gap:8px;margin:2px 0 0;font-size:13.5px;
  color:#93301A;font-weight:600;line-height:1.45}
.est-err[hidden]{display:none}
[data-mjrt-form-status]{margin:0;font-size:14.5px;font-weight:600;color:#93301A;line-height:1.5}
[data-mjrt-form-status]:empty{display:none}
