/* QUALITE 24 — site public (r15, direction « Cinéma », maquette D05 choisie le 28/09/2026)
   Fond noir profond, titres Instrument Serif, texte Instrument Sans, rouge QUALITE 24 réservé aux actions.
   QUALITE 24, l'exigence du travail bien fait : exigence, rigueur, sérieux. */

@font-face{font-family:"Instrument Serif";src:url("/assets/fonts/InstrumentSerif-normal-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("/assets/fonts/InstrumentSerif-italic-400.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("/assets/fonts/InstrumentSans-var.woff2") format("woff2"),url("/assets/fonts/instrumentsans-regular.woff") format("woff");font-weight:400 500;font-style:normal;font-display:swap}@font-face{font-family:"Instrument Sans";src:url("/assets/fonts/InstrumentSans-var.woff2") format("woff2"),url("/assets/fonts/instrumentsans-bold.woff") format("woff");font-weight:600 700;font-style:normal;font-display:swap}

:root{
  --noir:#0c0c0c;
  --noir-2:#141414;
  --noir-3:#1b1b1b;
  --trait:#262626;
  --trait-2:#3a3a3a;
  --blanc:#F4F2EE;
  --gris:#D9D6D0;
  --gris-2:#aaa69f;
  --rouge:#B3121D;
  --rouge-fonce:#8f0e17;
  --rouge-clair:#ef4a54;
  --titre:"Instrument Serif",Georgia,"Times New Roman",serif;
  --texte:"Instrument Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --marge:clamp(16px,4vw,48px);
  --max:1344px;
  --section:clamp(72px,9vw,120px);
  --entete:84px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--entete) + 16px);background:var(--noir)}
body{margin:0;background:var(--noir);color:var(--blanc);font-family:var(--texte);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.22em}
h1,h2,h3{margin:0;font-family:var(--titre);font-weight:400;line-height:1.02;letter-spacing:.005em;text-wrap:balance}
h1 em,h2 em,h3 em{font-style:italic}
p{margin:0;text-wrap:pretty}
.ligne{display:block}
.insecable{white-space:nowrap}
:focus-visible{outline:3px solid #fff;outline-offset:3px}
.container{width:min(100% - 2 * var(--marge),var(--max));margin-inline:auto}
.skip-link{position:absolute;left:var(--marge);top:-120px;z-index:100;background:var(--blanc);color:var(--noir);padding:12px 18px;font-weight:700;text-decoration:none}
.skip-link:focus{top:12px}
.surtitre{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--gris)}
.muted{color:var(--gris)}

/* ---------- Boutons et liens ---------- */
.button,.gold-button,.outline-dark{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border:1px solid transparent;border-radius:0;font-family:var(--texte);font-size:1rem;font-weight:700;line-height:1.1;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.button--rouge,.gold-button{background:var(--rouge);color:#fff}
.button--rouge:hover,.gold-button:hover{background:var(--rouge-fonce)}
.gold-button:disabled{background:#3a3a3a;color:#bbb;cursor:not-allowed}
.button--contour,.outline-dark{border-color:var(--blanc);background:transparent;color:var(--blanc)}
.button--contour:hover,.outline-dark:hover{background:var(--blanc);color:var(--noir)}
.button--blanc{background:var(--blanc);color:var(--noir)}
.button--blanc:hover{background:#fff}
.button--grand{min-height:58px;padding:0 34px;font-size:1.0625rem}
.lien,.text-link{font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px;white-space:nowrap}
.lien:hover,.text-link:hover{text-decoration-color:var(--rouge-clair)}

/* ---------- En-tête ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(12,12,12,.94);border-bottom:1px solid var(--trait);padding-top:env(safe-area-inset-top,0px)}
@supports (backdrop-filter:blur(8px)){.site-header{background:rgba(12,12,12,.82);backdrop-filter:blur(10px)}}
.site-header__in{display:flex;align-items:center;gap:16px;width:min(100% - 2 * var(--marge),1440px);margin-inline:auto;min-height:var(--entete)}
.site-logo{flex:none;display:block;padding:6px 12px;background:var(--blanc)}
.site-logo img{height:48px;width:auto}
.site-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:1}
.site-nav__liens{display:flex;align-items:center;margin-left:auto}
.site-nav__liens a{display:inline-flex;align-items:center;min-height:44px;padding:0 13px;font-size:.975rem;font-weight:500;text-decoration:none;white-space:nowrap}
.site-nav__liens a:hover,.site-nav__liens a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}
.site-nav__liens a[aria-current="page"]{text-decoration-color:var(--rouge-clair)}
.site-nav .nav-accueil{display:none}
.site-nav__actions{display:flex;align-items:center;gap:10px}
.nav-phone{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;font-weight:700;text-decoration:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.site-nav__actions .button{min-height:46px;padding:0 18px;font-size:.9375rem}
.menu-button{display:none}

/* Accueil : en-tête posé sur la photo, logo sur voile clair (maquette D05) */
.site-header--hero{position:absolute;left:0;right:0;background:transparent;border-bottom:0}
@supports (backdrop-filter:blur(8px)){.site-header--hero{background:transparent;backdrop-filter:none}}
.site-header--hero .site-header__in{align-items:flex-start;padding-top:20px}
.site-header--hero .site-logo{padding:0;background:none;position:relative}
.site-header--hero .site-logo::before{content:"";position:absolute;inset:-60px -110px -50px -90px;z-index:-1;background:radial-gradient(ellipse at 45% 45%,rgba(244,242,238,.94) 0%,rgba(244,242,238,.8) 42%,rgba(244,242,238,0) 72%)}
.site-header--hero .site-logo img{height:clamp(96px,11vw,176px)}
.site-header--hero .site-nav{margin-top:clamp(14px,2.2vw,44px)}
.site-header--hero .site-nav__liens,.site-header--hero .site-nav__actions{background:rgba(12,12,12,.62);padding:4px}

/* ---------- Accueil : ouverture plein écran ---------- */
.ouverture{position:relative;height:clamp(640px,100svh,860px);overflow:hidden;background:#000}
.ouverture__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.ouverture__voile{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,12,12,0) 0%,rgba(12,12,12,0) 50%,rgba(12,12,12,.9) 100%)}
.ouverture__texte{position:absolute;left:0;right:0;bottom:clamp(28px,5vw,56px);padding:0 var(--marge);text-align:center}
.ouverture h1{max-width:1120px;margin:0 auto;font-size:clamp(2.6rem,5.2vw,4.75rem);line-height:1.02}
.ouverture__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:26px}
.etiquette-illu,.illustration{position:absolute;z-index:1;padding:6px 9px;background:#141414;color:var(--blanc);font-size:.8125rem;font-weight:500;line-height:1.2;pointer-events:none}
.ouverture .etiquette-illu{right:var(--marge);top:auto;bottom:calc(clamp(28px,5vw,56px) + 150px)}
.illustration{left:12px;bottom:12px}

/* ---------- Chapitres (valeurs) ---------- */
.chapitres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:#222}
.chapitre{background:var(--noir);padding:clamp(56px,7vw,88px) clamp(24px,3.4vw,48px);text-align:center}
.chapitre h2{margin-top:14px;font-size:clamp(3rem,4.6vw,4rem)}
.chapitre p:last-child{margin:14px auto 0;max-width:320px;font-size:1.125rem;line-height:1.55;color:var(--gris)}

/* ---------- Sections ---------- */
.section{padding-block:var(--section)}
.section--bord{border-top:1px solid var(--trait)}
.section--beton{background:var(--noir-2)}
.titre-section{font-size:clamp(2.75rem,5.4vw,4.75rem);line-height:1}
.titre-section--moyen{font-size:clamp(2.25rem,3.8vw,3.5rem)}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:clamp(36px,4.4vw,64px)}
.section-head .titre-section{margin-top:10px}
.section-head p.chapo{max-width:44ch;color:var(--gris);font-size:1.125rem}

/* Programme : savoir-faire sans prix */
.programme{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,5vw,80px);margin:0;padding:0;list-style:none;border-top:1px solid var(--trait)}
.programme li{border-bottom:1px solid var(--trait)}
.programme a{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:22px 0;text-decoration:none}
.programme .num{font-size:.8125rem;font-weight:700;letter-spacing:.2em;color:var(--gris-2)}
.programme b{font-family:var(--titre);font-size:clamp(1.75rem,2.4vw,2.25rem);font-weight:400;line-height:1.05}
.programme span.desc{display:block;margin-top:6px;font-family:var(--texte);font-size:.9375rem;color:var(--gris)}
.programme .fleche{font-size:1.4rem;color:var(--gris-2);transition:transform .2s ease,color .2s ease}
.programme a:hover .fleche{transform:translateX(4px);color:var(--rouge-clair)}
.programme a:hover b{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px}

/* Avant / après */
.avant-apres{position:relative;overflow:hidden;aspect-ratio:16/8;background:#000;user-select:none;touch-action:pan-y}
.avant-apres img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.avant-apres__avant{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0)}
.avant-apres__trait{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:3px;margin-left:-1px;background:#fff;pointer-events:none}
.avant-apres__poignee{position:absolute;top:50%;left:var(--pos,50%);width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#fff;color:var(--noir);display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;pointer-events:none}
.avant-apres__range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.avant-apres__range:focus-visible+.avant-apres__poignee{outline:3px solid var(--rouge-clair);outline-offset:3px}
.avant-apres__lbl{position:absolute;top:16px;z-index:1;padding:6px 10px;font-size:.8125rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;pointer-events:none}
.avant-apres__lbl--avant{left:16px;background:#141414}
.avant-apres__lbl--apres{right:16px;background:var(--rouge)}
.avant-apres+.legende{margin-top:14px;color:var(--gris);font-size:.9375rem}

/* Carrousel des projets types */
.carrousel{outline:none}
.carrousel__piste{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--marge);padding:0 var(--marge) 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.carrousel__piste::-webkit-scrollbar{display:none}
.projet{flex:0 0 min(78vw,980px);margin:0;scroll-snap-align:start}
.projet__img{position:relative;aspect-ratio:16/9;overflow:hidden;background:#111}
.projet__img img{width:100%;height:100%;object-fit:cover}
.projet figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:16px}
.projet figcaption b{font-family:var(--titre);font-size:clamp(1.6rem,2.4vw,2.125rem);font-weight:400;line-height:1.05}
.projet figcaption span{font-size:.8125rem;font-weight:700;letter-spacing:.2em;color:var(--gris-2)}
.projet .lien{display:inline-block;margin-top:8px;font-size:.9375rem}
.carrousel__nav{display:flex;align-items:center;gap:10px}
.carrousel__nav button{width:56px;height:56px;border:1px solid var(--blanc);background:transparent;color:var(--blanc);font-size:1.25rem;cursor:pointer}
.carrousel__nav button:hover{background:var(--blanc);color:var(--noir)}
.carrousel__compteur{margin-right:10px;font-weight:700;letter-spacing:.1em;font-variant-numeric:tabular-nums}
.carrousel__pied{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:32px}
.carrousel__pied p{color:var(--gris);font-size:.9375rem}

/* Générique (engagements) */
.generique{text-align:center}
.generique dl{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px;max-width:780px;margin:0 auto;font-size:1.1875rem}
.generique dt{text-align:right;color:var(--gris)}
.generique dd{margin:0;text-align:left;font-weight:700}

/* Territoire (carte de l'Isère) */
.territoire{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:center}
.territoire svg{width:100%;height:auto;max-width:560px}
.territoire p.chapo{margin-top:20px;color:var(--gris);font-size:1.125rem}
.commune-test{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:28px;max-width:520px}
.commune-test label{grid-column:1/-1;font-size:.9375rem;font-weight:700}
.commune-test input{min-height:52px;padding:0 14px;border:1px solid var(--trait-2);background:var(--noir-2);color:var(--blanc);font:400 1rem var(--texte)}
.commune-test output{grid-column:1/-1;min-height:1.6em;color:var(--gris)}
.communes-liste{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;padding:0;list-style:none}
.communes-liste li{padding:8px 12px;border:1px solid var(--trait-2);font-size:.9375rem}

/* Avis */
.avis-bloc{text-align:center}
.avis-bloc .note{font-family:var(--titre);font-size:clamp(4rem,8vw,6.5rem);line-height:1}
.avis-bloc .etoiles{color:#e3a51a;font-size:1.5rem;letter-spacing:.2em}
.avis-bloc blockquote{max-width:900px;margin:32px auto 0;font-family:var(--titre);font-style:italic;font-size:clamp(1.75rem,3.4vw,2.75rem);line-height:1.2}
.avis-bloc .auteur{margin-top:14px;color:var(--gris)}
.avis-bloc .lien{display:inline-block;margin-top:24px}

/* Méthode */
.etapes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin:0;padding:0;list-style:none}
.etape{border-top:1px solid var(--blanc);padding-top:20px}
.etape__num{display:block;margin-bottom:20px;font-family:var(--titre);font-size:clamp(3.5rem,5.6vw,5rem);line-height:.9;color:var(--gris-2)}
.etape h3{font-size:clamp(1.75rem,2.2vw,2.125rem)}
.etape p{margin-top:10px;color:var(--gris)}
.etape .delai{display:inline-block;margin-top:14px;padding:4px 10px;border:1px solid var(--trait-2);font-size:.8125rem;font-weight:700}

/* FAQ */
.faq .container{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:32px 48px;align-items:start}
.faq details{border-top:1px solid var(--trait)}
.faq details:last-of-type{border-bottom:1px solid var(--trait)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;font-size:1.1875rem;font-weight:700;line-height:1.35;list-style:none;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;font-family:var(--titre);font-size:2.25rem;line-height:.7;color:var(--gris-2)}
.faq details[open] summary::after{content:"–"}
.faq details p{max-width:64ch;padding-bottom:24px;color:var(--gris)}
.faq details p+p{margin-top:-12px}

/* Appel final + rappel express */
.appel{padding-block:clamp(72px,9vw,120px);border-top:1px solid var(--trait);background:var(--noir-2)}
.appel .container{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:start}
.appel h2{font-size:clamp(2.75rem,5.4vw,4.5rem)}
.appel h2 em{color:var(--blanc)}
.appel p.chapo{margin-top:18px;color:var(--gris);font-size:1.125rem;max-width:46ch}
.appel__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.rappel{padding:clamp(24px,3vw,36px);border:1px solid var(--trait-2);background:var(--noir)}
.rappel h3{font-size:2rem}
.rappel p.muted{margin-top:6px;font-size:.9375rem}
.rappel .form-grid{margin-top:20px}

/* ---------- Pied de page ---------- */
.site-footer{background:var(--noir);border-top:1px solid var(--trait);padding:clamp(56px,7vw,88px) 0 32px}
.footer-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,3fr);gap:40px}
.footer-marque{font-family:var(--titre);font-size:clamp(2.75rem,4.6vw,4rem);line-height:1}
.footer-marque em{font-style:italic;color:var(--gris)}
.footer-grid p{margin-top:14px;color:var(--gris)}
.site-footer h3{margin-bottom:14px;font-family:var(--texte);font-size:.8125rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gris-2)}
.footer-liens{display:grid;gap:6px}
.site-footer a{text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.footer-bas{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:56px;padding-top:24px;border-top:1px solid var(--trait);color:var(--gris-2);font-size:.9375rem}
.footer-bas span{margin-right:auto}

/* ---------- Visuels ---------- */
.visuel{position:relative}
.expertise__img,.feature__img{position:relative}

/* ---------- Anciennes sections encore utilisées par les pages intérieures ---------- */
.garanties{border-bottom:1px solid var(--trait)}
.garanties .container{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.garantie{padding:28px 24px 30px 0;border-right:1px solid var(--trait)}
.garantie+.garantie{padding-left:24px}
.garantie:last-child{border-right:0}
.garantie strong{display:block;font-family:var(--titre);font-size:clamp(1.625rem,2.3vw,2.125rem);font-weight:400;line-height:1.05}
.garantie>span{display:block;margin-top:8px;color:var(--gris);font-size:.9375rem;line-height:1.45}
.feature{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);background:var(--noir-2)}
.feature__img img{width:100%;height:100%;min-height:560px;object-fit:cover}
.feature__texte{align-self:center;padding:clamp(48px,6vw,96px) var(--marge);max-width:600px}
.feature__texte p{margin-top:24px;color:var(--gris)}
.feature__texte .button{margin-top:36px}
.feature__texte small{display:block;margin-top:24px;color:var(--gris-2);font-size:.875rem;line-height:1.5}
.expertises{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 28px}
.expertise{display:flex;flex-direction:column;text-decoration:none}
.expertise__img{aspect-ratio:3/2;overflow:hidden;background:#111}
.expertise__img img{width:100%;height:100%;object-fit:cover}
.expertise__img--bas img{object-position:50% 100%}
.expertise h3{margin-top:18px;font-size:clamp(1.75rem,2.4vw,2.25rem)}
.expertise p{margin-top:6px;color:var(--gris)}
.avis__grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:0;padding:0;list-style:none}
.avis__carte{border-top:1px solid var(--blanc);padding-top:20px}

/* ---------- Pages intérieures ---------- */
.page-intro{padding:clamp(48px,7vw,104px) 0 clamp(40px,5vw,72px);border-bottom:1px solid var(--trait)}
.page-intro h1{font-size:clamp(3rem,7vw,6rem);line-height:1}
.page-intro p{margin-top:24px;max-width:56ch;color:var(--gris);font-size:1.1875rem}
.page-intro .surtitre+h1{margin-top:14px}

/* Contact */
.contact .container{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(40px,6vw,96px);align-items:start}
.contact-info h2{font-size:clamp(2.25rem,3.4vw,3rem)}
.contact-phone{display:block;margin-top:20px;font-family:var(--titre);font-size:clamp(2.5rem,4vw,3.25rem);line-height:1;text-decoration:none;font-variant-numeric:tabular-nums}
.contact-email{display:block;margin-top:10px;font-weight:700}
.contact-info address{margin-top:20px;font-style:normal;color:var(--gris)}
.contact-info .note{margin-top:12px;color:var(--gris-2);font-size:.9375rem}
.contact-info .lien{display:inline-block;margin-top:20px}
.contact-info .button{margin-top:20px}
.carte{display:grid;gap:12px;justify-items:start;margin-top:28px;padding:24px;border:1px solid var(--trait-2);background:var(--noir-2)}
.carte small{color:var(--gris-2);font-size:.875rem;line-height:1.45}
.carte .button{min-height:48px}
#map-panel.loaded iframe{width:100%;min-height:320px;border:0}
.formulaire{padding:clamp(24px,3.4vw,48px);border:1px solid var(--trait-2);background:var(--noir-2)}
.formulaire h2{font-size:clamp(2.25rem,3.4vw,3rem)}
.formulaire__delai{margin-top:10px;color:var(--gris)}
.photos-bloc{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px 24px;margin:28px 0 32px;padding:20px 24px;background:var(--noir-3)}
.photos-bloc p{font-size:.9375rem;line-height:1.5;color:var(--gris)}
.photos-bloc p strong{display:block;font-size:1.0625rem;color:var(--blanc)}

/* Formulaires (fond sombre) */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-grid label{display:grid;gap:8px;font-size:.9375rem;font-weight:700;line-height:1.3}
.form-grid .wide{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:52px;padding:12px 14px;border:1px solid var(--trait-2);border-radius:0;background:var(--noir);color:var(--blanc);font:400 1rem/1.4 var(--texte)}
.form-grid select{appearance:auto}
.form-grid textarea{min-height:130px;resize:vertical}
.form-grid input::placeholder,.form-grid textarea::placeholder{color:#8d8982}
.form-grid input:focus-visible,.form-grid select:focus-visible,.form-grid textarea:focus-visible{outline:2px solid var(--blanc);outline-offset:0;border-color:var(--blanc)}
.form-grid .upload-zone input{padding:14px;border-style:dashed}
.form-grid small{color:var(--gris-2);font-size:.8125rem;font-weight:400;line-height:1.45}
.form-grid .honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-grid .consent{display:flex;align-items:flex-start;gap:12px;font-weight:400;color:var(--gris)}
.form-grid .consent input{flex:none;width:22px;min-height:0;height:22px;margin-top:1px;padding:0;accent-color:var(--rouge)}
.form-grid .consent a{color:var(--blanc)}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:24px}
.field-error{margin:0;color:var(--rouge-clair);font-size:.875rem;font-weight:600}
[aria-invalid="true"]{border-color:var(--rouge-clair)!important}

/* Savoir-faire (page détaillée) */
.sauts{border-bottom:1px solid var(--trait);background:var(--noir)}
.sauts ul{display:flex;gap:8px;margin:0 auto;padding:14px 0;list-style:none;overflow-x:auto;scrollbar-width:thin}
.sauts a{display:inline-flex;align-items:center;min-height:42px;padding:0 14px;border:1px solid var(--trait-2);font-size:.9375rem;font-weight:600;text-decoration:none;white-space:nowrap}
.sauts a:hover{border-color:var(--blanc)}
.service{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,5vw,80px);align-items:center;padding-block:clamp(56px,7vw,104px);border-bottom:1px solid var(--trait)}
.service:last-child{border-bottom:0}
.service:nth-child(even) .service__img{order:2}
.service__img{position:relative}
.service__img img{width:100%;aspect-ratio:3/2;object-fit:cover}
.service__img .position-bas{object-position:50% 100%}
.service h2{font-size:clamp(2.5rem,4.2vw,3.75rem)}
.service h3{margin-top:12px;font-family:var(--texte);font-size:1.1875rem;font-weight:700;line-height:1.4}
.service p{margin-top:14px;color:var(--gris)}
.service .tarif{margin-top:18px;padding:16px 18px;border-left:3px solid var(--rouge);background:var(--noir-2)}
.service .tarif b{display:block;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris-2)}
.service .tarif span{display:block;margin-top:6px;font-size:1.125rem;font-weight:700;color:var(--blanc)}
.service .tarif small{display:block;margin-top:4px;color:var(--gris-2);font-size:.8125rem}
.dossier{margin-top:20px;padding:16px 18px;background:var(--noir-2)}
.dossier b{display:block;font-size:.9375rem}
.dossier p{margin-top:6px;color:var(--gris);font-size:.9375rem;line-height:1.5}
.service .button{margin-top:26px}
.merci__action{margin-top:32px}

/* Projets types (page) */
.avertissement{margin-top:18px;max-width:62ch;color:var(--gris-2);font-size:.9375rem}
.sequence{padding-block:clamp(56px,7vw,104px);border-top:1px solid var(--trait)}
.sequence p.chapo{margin-top:12px;max-width:58ch;color:var(--gris);font-size:1.125rem}
.sequence-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(28px,4vw,44px)}
.sequence .lien{display:inline-block;margin-top:24px}
.photo-button{position:relative;display:block;width:100%;padding:0;border:0;background:none;color:inherit;text-align:left;font:inherit;cursor:zoom-in}
.photo-button .visuel{overflow:hidden;background:#111}
.photo-button img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:50% 100%;transition:transform .4s ease}
.photo-button:hover img{transform:scale(1.02)}
.photo-button__legende{display:flex;gap:12px;align-items:baseline;margin-top:12px;font-weight:600;color:var(--gris)}
.photo-button__legende b{font-family:var(--titre);font-size:1.5rem;font-weight:400;line-height:1;color:var(--blanc)}
.photo-dialog{max-width:min(1100px,94vw);padding:0;border:0;background:var(--noir-2);color:var(--blanc)}
.photo-dialog::backdrop{background:rgba(0,0,0,.88)}
.photo-dialog img{display:block;width:100%;max-height:78vh;object-fit:contain;background:#000}
.photo-dialog p{padding:14px 18px;font-size:.9375rem}
.photo-dialog button{position:absolute;top:10px;right:10px;min-height:44px;padding:0 16px;border:0;background:var(--blanc);color:var(--noir);font:700 .9375rem var(--texte);cursor:pointer}

/* Entreprise */
.implantation .container{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(40px,6vw,96px);align-items:center}
.implantation img{width:100%;aspect-ratio:4/3;object-fit:cover}
.implantation p{margin-top:20px;font-size:1.125rem;color:var(--gris)}
.implantation .button{margin-top:32px}

/* ---------- Estimation ---------- */
.estimation-page .container{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,5vw,72px);align-items:start}
.estimate-aside{position:sticky;top:calc(var(--entete) + 24px)}
#estimate-steps{display:grid;margin:0;padding:0;list-style:none;border-top:1px solid var(--trait)}
#estimate-steps li{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:baseline;padding:16px 0;border-bottom:1px solid var(--trait);color:var(--gris-2)}
#estimate-steps li b{font-family:var(--titre);font-size:2rem;font-weight:400;line-height:1}
#estimate-steps li span{font-weight:700}
#estimate-steps li small{display:block;font-weight:400;font-size:.875rem}
#estimate-steps li.active{color:var(--blanc);box-shadow:inset 3px 0 0 var(--rouge);padding-left:14px}
.estimate-help{margin-top:28px;padding:20px;background:var(--noir-2)}
.estimate-help h2,.estimate-help h3{font-size:1.75rem}
.estimate-help p{margin-top:8px;font-size:.9375rem;color:var(--gris)}
.estimate-help a{display:inline-block;margin-top:12px;font-weight:700;font-variant-numeric:tabular-nums}
.fine{margin-top:14px;color:var(--gris-2);font-size:.875rem;line-height:1.5}
.estimate-work{min-width:0;padding:clamp(22px,3.4vw,44px);border:1px solid var(--trait-2);background:var(--noir-2)}
#estimate-root h2{margin-top:10px;font-size:clamp(2.25rem,4vw,3.25rem);outline:none}
#estimate-root h3{margin-top:34px;font-size:1.75rem}
.step-pill{display:inline-block;color:var(--gris-2);font-size:.8125rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.subtext{margin-top:12px;color:var(--gris)}
.work-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:26px}
.work-choice{display:grid;gap:4px;min-height:72px;padding:14px 16px;border:1px solid var(--trait-2);background:var(--noir);color:var(--blanc);text-align:left;font:inherit;cursor:pointer}
.work-choice b{font-size:1.0625rem}
.work-choice span{color:var(--gris);font-size:.875rem;line-height:1.45}
.work-choice:hover{border-color:var(--blanc)}
.work-choice[aria-pressed="true"]{border-color:var(--blanc);box-shadow:inset 4px 0 0 var(--rouge)}
.choix-variantes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.choix-variantes label{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;border:1px solid var(--trait-2);background:var(--noir);font-weight:600;cursor:pointer}
.choix-variantes input{width:20px;height:20px;min-height:0;accent-color:var(--rouge)}
.choix-variantes label:has(input:checked){border-color:var(--blanc);box-shadow:inset 4px 0 0 var(--rouge)}
fieldset.bloc{margin:26px 0 0;padding:0;border:0}
fieldset.bloc legend{padding:0;font-weight:700}
#estimate-root .form-grid{margin-top:22px}
#estimate-root details{margin-top:24px;border-top:1px solid var(--trait);border-bottom:1px solid var(--trait)}
#estimate-root summary{padding:16px 0;font-weight:700;cursor:pointer}
.price-result{display:grid;gap:8px;margin-top:26px;padding:26px;background:var(--noir);border:1px solid var(--trait-2)}
.price-result span{color:var(--gris-2);font-size:.8125rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.price-result strong{font-family:var(--titre);font-size:clamp(2.25rem,4vw,3.25rem);font-weight:400;line-height:1.05}
.price-result .ttc{font-size:1.25rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--blanc)}
.price-result small{color:var(--gris);font-size:.875rem;line-height:1.5}
.quantities,.price-breakdown{display:grid;margin-top:14px;border-top:1px solid var(--trait)}
.quantities div,.price-breakdown div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--trait)}
.quantities b,.price-breakdown b{font-variant-numeric:tabular-nums;white-space:nowrap}
.deplacement{margin-top:14px;padding:14px 16px;border-left:3px solid var(--gris-2);background:var(--noir);color:var(--gris)}
.summary-list{margin:14px 0 0;padding-left:20px;color:var(--gris)}
.summary-list li{margin-top:6px}
.result-actions,.estimate-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.estimate-nav{justify-content:space-between;align-items:center;padding-top:22px;border-top:1px solid var(--trait)}
#estimate-contact{margin-top:40px;padding-top:8px;border-top:1px solid var(--blanc)}
#estimate-send .gold-button{margin-top:22px}
.notice{padding:16px 18px;background:var(--noir-3)}
.form-status:empty{display:none}
.form-status{margin-top:20px;font-weight:700}
.form-status.success{background:#10311c;color:#c9f0d5}
.form-status.error{background:#3b0d11;color:#ffd0d3}
.form-status p{margin-top:6px;font-weight:400}

/* Pages de texte */
.texte-legal{max-width:760px}
.texte-legal h2{margin-top:48px;font-size:clamp(2rem,3vw,2.5rem)}
.texte-legal h2:first-child{margin-top:0}
.texte-legal p,.texte-legal li{margin-top:14px;color:var(--gris)}
.texte-legal a{color:var(--blanc)}

/* r13 : encart de réservation d'appel après une demande */
.booking-cta{margin-top:18px;padding:22px;border:1px solid var(--trait-2);background:var(--noir);text-align:center}
.booking-cta .gold-button{margin-top:10px}
.booking-cta-title{margin:0 0 6px;font-family:var(--titre);font-size:1.75rem}
.booking-cta-promises{margin:14px 0 0;font-size:.95rem;color:var(--gris)}

/* ---------- Barre d'action mobile ---------- */
.barre-mobile{display:none}
.barre-mobile.est-cachee{transform:translateY(110%)}

/* ---------- Adaptations ---------- */
@media (max-width:1180px){
  .site-nav__liens a{padding:0 9px}
  .site-nav__actions .nav-phone{display:none}
}
@media (max-width:1024px){
  .menu-button{display:inline-flex;align-items:center;gap:12px;margin-left:auto;min-height:44px;padding:0 16px;border:1px solid var(--trait-2);background:rgba(12,12,12,.7);color:var(--blanc);font:700 .9375rem/1 var(--texte);cursor:pointer}
  .menu-button__icone{position:relative;width:18px;height:2px;background:currentColor}
  .menu-button__icone::before,.menu-button__icone::after{content:"";position:absolute;left:0;width:18px;height:2px;background:currentColor}
  .menu-button__icone::before{top:-6px}
  .menu-button__icone::after{top:6px}
  .site-nav{display:none}
  .site-nav.open{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:24px;padding:calc(var(--entete) + 24px + env(safe-area-inset-top,0px)) var(--marge) 40px;background:var(--noir);overflow:auto}
  .site-nav.open .site-nav__liens,.site-nav.open .site-nav__actions{flex-direction:column;align-items:stretch;margin:0;background:none;padding:0}
  .site-nav.open .site-nav__liens a{padding:14px 0;border-bottom:1px solid var(--trait);font-family:var(--titre);font-size:2.25rem;line-height:1.1}
  .site-nav.open .nav-accueil{display:flex}
  .site-nav.open .site-nav__actions .nav-phone{display:flex;font-size:1.25rem}
  .site-nav.open .site-nav__actions .button{min-height:56px}
  .site-header .menu-button{position:relative;z-index:46}
  .site-header--hero .site-header__in{align-items:center}
  .site-header--hero .menu-button{margin-top:0}
  .chapitres{grid-template-columns:minmax(0,1fr)}
  .programme{grid-template-columns:minmax(0,1fr)}
  .territoire{grid-template-columns:minmax(0,1fr)}
  .etapes{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:44px}
  .appel .container{grid-template-columns:minmax(0,1fr)}
  .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .footer-grid>div:first-child{grid-column:1/-1}
  .expertises{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feature{grid-template-columns:minmax(0,1fr)}
  .feature__img img{min-height:0;aspect-ratio:16/10}
  .avis__grille{grid-template-columns:minmax(0,1fr)}
  .contact .container,.service,.implantation .container,.estimation-page .container{grid-template-columns:minmax(0,1fr)}
  .service:nth-child(even) .service__img{order:0}
  .estimate-aside{position:static}
  .sequence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq .container{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  :root{--entete:64px}
  body{font-size:1rem;padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .site-logo{padding:4px 8px}
  .site-logo img{height:36px}
  .site-header--hero .site-header__in{padding-top:12px}
  .site-header--hero .site-logo img{height:84px}
  .site-header--hero .site-logo::before{inset:-40px -60px -30px -50px}
  .ouverture{height:auto;min-height:92svh}
  .ouverture__img{object-position:60% 50%}
  .ouverture h1{font-size:clamp(2.1rem,9.4vw,3rem)}
  .ouverture__actions{flex-direction:column;align-items:stretch}
  .ouverture .etiquette-illu{top:auto;bottom:auto;right:12px;top:170px}
  .avant-apres{aspect-ratio:4/3}
  .projet{flex-basis:86vw}
  .carrousel__nav button{width:48px;height:48px}
  .section-head{flex-direction:column;align-items:flex-start}
  .generique dl{grid-template-columns:minmax(0,1fr);gap:4px;text-align:left}
  .generique dt{text-align:left;margin-top:14px}
  .generique dd{text-align:left}
  .etapes{grid-template-columns:minmax(0,1fr);row-gap:0}
  .etape{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:12px;padding:20px 0 24px}
  .etape__num{grid-row:span 3;margin:0;font-size:3rem}
  .programme a{grid-template-columns:36px minmax(0,1fr) auto;gap:10px;padding:18px 0}
  .footer-grid{grid-template-columns:minmax(0,1fr)}
  .footer-bas span{flex-basis:100%}
  .expertises{grid-template-columns:minmax(0,1fr)}
  .garanties .container{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
  .page-intro h1{font-size:clamp(2.5rem,12vw,3.5rem)}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .photos-bloc{grid-template-columns:minmax(0,1fr);padding:16px}
  .photos-bloc .button,.form-actions .button{width:100%}
  .formulaire{padding:22px 16px}
  .sequence-grid,.work-choices,.choix-variantes{grid-template-columns:minmax(0,1fr)}
  .estimate-work{padding:20px 14px}
  .estimate-nav .gold-button,.estimate-nav .outline-dark{flex:1}
  .commune-test{grid-template-columns:minmax(0,1fr)}
  .barre-mobile{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;position:fixed;right:0;bottom:0;left:0;z-index:60;padding:10px var(--marge) calc(10px + env(safe-area-inset-bottom,0px));background:rgba(12,12,12,.96);border-top:1px solid var(--trait);transition:transform .25s ease}
  .barre-mobile .button{min-height:50px;padding:0 6px;font-size:.9375rem;white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
@media print{
  body{background:#fff;color:#000}
  .site-header,.site-footer,.appel,.barre-mobile,.estimate-aside,.page-intro,.estimate-nav,.result-actions,#estimate-contact{display:none!important}
  .estimate-work{border:0;padding:0;background:#fff}
  .estimation-page .container{display:block}
  .price-result{background:#fff;color:#000;border:2px solid #000}
  .price-result span,.price-result small,.quantities,.price-breakdown{color:#000}
}

/* r15 : contact (horaires, rappel), projets types */
.horaires{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin-top:20px;font-size:.9375rem}
.horaires dt{color:var(--gris-2);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;padding-top:3px}
.horaires dd{margin:0;color:var(--gris)}
.rappel--contact{margin-top:28px}
.sequence>.lien{display:inline-block;margin-top:22px}
.carte-zone .lbl-m{display:none}
@media (max-width:760px){.carte-zone g text{font-size:19px}.carte-zone .km{display:none}.carte-zone .lbl-d{display:none}.carte-zone .lbl-m{display:inline}}
/* r15 : « D’autres perspectives » (projets types) */
.perspectives{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px);margin-top:clamp(28px,3vw,44px)}
.perspectives a{display:block;color:inherit;text-decoration:none}
.perspectives .visuel{aspect-ratio:4/3;overflow:hidden;background:#111}
.perspectives img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.perspectives a:hover img{transform:scale(1.03)}
.perspectives h3{margin-top:14px;font-family:var(--titre);font-weight:400;font-size:clamp(1.5rem,2vw,1.875rem)}
.perspectives h3::after{content:" →";font-family:var(--texte);font-size:.7em;color:var(--rouge-clair)}
@media (max-width:760px){.perspectives{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.perspectives img{transition:none}}
@media (max-width:1024px){
  .site-nav.open{margin-top:0!important}
  .menu-button[aria-expanded="true"] .menu-button__icone{background:transparent}
  .menu-button[aria-expanded="true"] .menu-button__icone::before{top:0;transform:rotate(45deg)}
  .menu-button[aria-expanded="true"] .menu-button__icone::after{top:0;transform:rotate(-45deg)}
}
/* r15 : estimation sur téléphone — le formulaire et le prix d’abord, l’aide ensuite */
@media (max-width:1024px){
  .estimation-page .estimate-work{order:-1}
  .estimation-page #estimate-steps{display:none}
}
/* r17 : pas de saut au chargement — l’aide s’affiche en même temps que le simulateur */
@media (max-width:1024px) and (scripting:enabled){.estimation-page .container:has(#estimate-root:empty) .estimate-aside{visibility:hidden}}
@media (max-width:760px){.surtitre{letter-spacing:.2em}}
/* r15 : vraie carte Google Maps (zone et contact) */
.carte-google{margin:0}
.carte-google iframe{display:block;width:100%;height:auto;aspect-ratio:1/1;border:1px solid var(--trait-2);background:#1a1a1a}
.carte-google figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;margin-top:12px;color:var(--gris);font-size:.9375rem}
.carte-google figcaption .lien{margin:0}
.contact-info .carte-google{margin-top:24px}
.contact-info .carte-google iframe{aspect-ratio:4/3}
@media (max-width:760px){.carte-google iframe{aspect-ratio:4/5}.contact-info .carte-google iframe{aspect-ratio:1/1}}
/* r15 : étapes Avant / Chantier / Après des projets types */
.projet__etapes{display:flex;gap:6px;margin-top:12px}
.projet__etapes button{min-height:36px;padding:0 14px;border:1px solid var(--trait-2);background:transparent;color:var(--gris);font:600 .875rem/1 var(--texte);cursor:pointer}
.projet__etapes button:hover{color:var(--blanc);border-color:var(--gris-2)}
.projet__etapes button[aria-pressed="true"]{background:var(--rouge);border-color:var(--rouge);color:#fff}
.projet__etapes button:focus-visible{outline:2px solid var(--rouge-clair);outline-offset:2px}
/* ===== r18 début ===== (généré depuis scripts/r18/site-r18.css par scripts/site-r18.mjs — modifier ce fichier-là) */
/* Fil d'Ariane et actions d'introduction */
.fil ol{display:flex;flex-wrap:wrap;gap:4px 0;margin:0 0 22px;padding:0;list-style:none;font-size:.875rem;color:var(--gris-2)}
.fil li+li::before{content:"/";margin:0 10px;color:var(--trait-2)}
.fil a{color:var(--gris);text-decoration:none}
.fil a:hover{color:var(--blanc);text-decoration:underline}
.fil [aria-current]{color:var(--gris)}
.intro-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.sequence-grid--r18{margin-top:clamp(40px,5vw,64px)}
.service .lien--detail{display:inline-block;margin:26px 0 0 18px;vertical-align:middle}
/* Engagements */
.atouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:0;padding:0;list-style:none}
.atouts li{padding-top:18px;border-top:2px solid var(--rouge)}
.atouts strong{display:block;font-family:var(--titre);font-size:clamp(1.5rem,2vw,1.875rem);font-weight:400;line-height:1.08}
.atouts span{display:block;margin-top:10px;color:var(--gris);font-size:.9375rem;line-height:1.5}
/* Compris / non compris */
.perimetre{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.perimetre__col{padding:clamp(22px,3vw,36px);border:1px solid var(--trait-2);background:var(--noir-2)}
.perimetre__col h3{font-size:clamp(1.75rem,2.4vw,2.25rem)}
.perimetre__col ul{margin:18px 0 0;padding:0;list-style:none}
.perimetre__col li{position:relative;padding:10px 0 10px 34px;border-top:1px solid var(--trait);color:var(--gris)}
.perimetre__col li::before{position:absolute;left:0;top:9px;width:22px;text-align:center;font-weight:700}
.perimetre__col--oui li::before{content:"✓";color:#8fd6a5}
.perimetre__col--non li::before{content:"—";color:var(--gris-2)}
/* Démarches, textes, FAQ */
.demarches,.ville-contexte{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:32px clamp(32px,5vw,80px);align-items:start}
.demarches__liste{margin:0;padding:0;list-style:none}
.demarches__liste li{padding:16px 0 16px 28px;border-top:1px solid var(--trait);color:var(--gris);position:relative}
.demarches__liste li:last-child{border-bottom:1px solid var(--trait)}
.demarches__liste li::before{content:"";position:absolute;left:0;top:26px;width:10px;height:2px;background:var(--rouge-clair)}
.demarches__liste a,.prose a{color:var(--blanc)}
.prose p{color:var(--gris);font-size:1.0625rem}
.prose p+p{margin-top:16px}
.faq__plus{margin-top:22px}
/* Villes et zones */
.communes-liste--km li{padding:0;border:0}
.communes-liste--km li>a,.communes-liste--km li:not(:has(a)){display:inline-flex;gap:10px;align-items:baseline;padding:10px 14px;border:1px solid var(--trait-2);text-decoration:none}
.communes-liste--km li>a:hover{border-color:var(--blanc)}
.communes-liste--km span{color:var(--gris-2);font-size:.875rem}
.communes-liste a{color:inherit;text-decoration:none}
.communes-liste a:hover{text-decoration:underline}
.zones{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px clamp(32px,5vw,80px);align-items:start}
/* Conseils */
.perspectives--conseils{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0}
.perspectives--conseils .visuel{position:relative}
.perspectives--conseils p.muted{margin-top:10px;font-size:.9375rem;line-height:1.5}
.perspectives--conseils h2{margin-top:14px;font-size:clamp(1.5rem,2vw,1.875rem)}
.perspectives--conseils h2::after{content:" →";font-family:var(--texte);font-size:.7em;color:var(--rouge-clair)}
.article-meta{font-size:.9375rem!important;color:var(--gris-2)!important}
.article-grille{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(32px,5vw,80px);align-items:start;padding-block:clamp(40px,6vw,88px)}
.article__image{margin:0}
.article__image .visuel{position:relative}
.article__image img{width:100%;aspect-ratio:3/2;object-fit:cover}
.article__texte{max-width:70ch;margin-top:clamp(28px,4vw,48px)}
.article__texte h2{margin-top:44px;font-size:clamp(1.875rem,2.8vw,2.5rem)}
.article__texte h2:first-child{margin-top:0}
.article__texte p{margin-top:14px;color:var(--gris);font-size:1.0625rem;line-height:1.7}
.article__texte a{color:var(--blanc)}
.article__texte strong{color:var(--blanc)}
.checklist{margin:18px 0 0;padding:0;list-style:none}
.checklist li{position:relative;padding:10px 0 10px 34px;border-top:1px solid var(--trait);color:var(--gris)}
.checklist li::before{content:"✓";position:absolute;left:4px;top:9px;color:var(--rouge-clair);font-weight:700}
.seuils{display:grid;gap:0;margin:18px 0 0}
.seuils div{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px;padding:14px 0;border-top:1px solid var(--trait)}
.seuils div:last-child{border-bottom:1px solid var(--trait)}
.seuils dt{font-weight:700}
.seuils dd{margin:0;color:var(--gris)}
.tableau-defile{margin-top:20px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.comparatif{width:100%;min-width:520px;border-collapse:collapse;font-size:.9375rem}
.comparatif th,.comparatif td{padding:12px 14px;border-bottom:1px solid var(--trait);text-align:left;vertical-align:top}
.comparatif thead th{font-family:var(--titre);font-size:1.375rem;font-weight:400;border-bottom:1px solid var(--blanc)}
.comparatif tbody th{color:var(--gris-2);font-weight:600}
.comparatif td{color:var(--gris)}
.a-retenir{margin-top:48px;padding:clamp(22px,3vw,34px);border-left:3px solid var(--rouge);background:var(--noir-2)}
.a-retenir h2{font-size:clamp(1.75rem,2.4vw,2.25rem)}
.a-retenir ul{margin:14px 0 0;padding-left:1.2em;color:var(--gris)}
.a-retenir li+li{margin-top:8px}
.article-aside{position:sticky;top:calc(var(--entete) + 24px);display:grid;gap:24px}
.article-aside__carte{display:grid;gap:14px;padding:26px;border:1px solid var(--trait-2);background:var(--noir-2)}
.article-aside__carte p:not(.surtitre){color:var(--gris);font-size:.9375rem}
.article-aside__carte .lien{justify-self:start}
.article-aside__autres ul{margin:12px 0 0;padding:0;list-style:none}
.article-aside__autres li{border-top:1px solid var(--trait)}
.article-aside__autres a{display:block;padding:12px 0;text-decoration:none;font-family:var(--titre);font-size:1.3125rem;line-height:1.15}
.article-aside__autres a:hover{text-decoration:underline;text-underline-offset:6px}
/* Parrainage */
.parrainage{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px clamp(32px,5vw,80px);align-items:start}
.parrainage__regles .demarches__liste{margin-top:28px}
.bloc-form{margin:24px 0 0;padding:0;border:0}
.bloc-form legend{padding:0;margin-bottom:12px;font-size:.8125rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gris-2)}
.bloc-form+.bloc-form{padding-top:22px;border-top:1px solid var(--trait)}
/* Avis Google */
.avis-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:18px 28px;margin-top:24px}
.avis-google{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;max-width:1100px;margin:32px auto 0;text-align:left}
.avis-google article{padding:22px;border:1px solid var(--trait-2);background:var(--noir-2)}
.avis-google .etoiles{font-size:1rem;letter-spacing:.1em}
.avis-google p{margin-top:10px;color:var(--gris);font-size:.9375rem}
.avis-google footer{margin-top:12px;font-size:.875rem;color:var(--gris-2)}
/* Pied de page à 4 colonnes */
.footer-grid.footer-grid--r18{grid-template-columns:minmax(0,4fr) minmax(0,3fr) minmax(0,3fr) minmax(0,3fr)}
/* Fluidité : transitions entre pages (navigateurs compatibles), coupées si « Réduire les animations » */
@view-transition{navigation:auto}
::view-transition-old(root){animation:r18-sortie .22s cubic-bezier(.4,0,1,1) both}
::view-transition-new(root){animation:r18-entree .32s cubic-bezier(.2,.8,.2,1) both}
@keyframes r18-sortie{to{opacity:0;transform:translateY(-6px)}}
@keyframes r18-entree{from{opacity:0;transform:translateY(10px)}}
@keyframes r18-panneau{from{transform:translateY(100%)}to{transform:none}}
@keyframes r18-fondu{from{opacity:0}}
/* Photos agrandies : zoom au toucher, pincement natif */
.photo-dialog__zone{max-height:78vh;overflow:auto;background:#000;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch}
.photo-dialog__zone img{max-height:78vh;cursor:zoom-in;transition:width .25s ease}
.photo-dialog__zone.zoom img{width:220%;max-width:none;max-height:none;cursor:zoom-out}
.photo-dialog[open]{animation:r18-fondu .22s ease both}
/* Simulateur : options, comparaison, partage */
.options-r18{display:grid;gap:12px;margin-top:6px}
.compare-r18{margin-top:28px;padding-top:22px;border-top:1px solid var(--trait)}
.compare-r18__grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.compare-r18__carte{padding:20px;border:1px solid var(--trait-2);background:var(--noir-2)}
.compare-r18__carte h4{margin:0;font-family:var(--titre);font-size:1.5rem;font-weight:400}
.compare-r18__carte strong{display:block;margin-top:10px;font-size:1.25rem}
.compare-r18__carte .ttc{display:block;color:var(--gris);font-size:.9375rem}
.compare-r18__carte ul{margin:12px 0 0;padding-left:1.1em;color:var(--gris);font-size:.875rem}
.compare-r18 .form-grid{margin-top:14px}
.visite-r18{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:24px;padding:20px;border-left:3px solid var(--rouge);background:var(--noir-3)}
.visite-r18 p{margin:0;flex:1 1 260px;color:var(--gris)}
.partage-r18{margin-top:10px;min-height:1.4em;color:var(--gris);font-size:.9375rem}
.imprime-r18{display:none}
/* Mobile et tablette */
@media (max-width:1024px){
  .atouts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .demarches,.ville-contexte,.zones,.parrainage,.article-grille{grid-template-columns:minmax(0,1fr)}
  .article-aside{position:static}
  .perspectives--conseils{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid.footer-grid--r18{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* Menu en panneau qui monte du bas, fermeture en glissant vers le bas */
  .site-nav.open{top:auto;bottom:0;max-height:min(90svh,780px);gap:18px;padding:30px var(--marge) calc(24px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--trait-2);border-radius:22px 22px 0 0;background:rgba(20,20,20,.96);-webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);box-shadow:0 -24px 60px rgba(0,0,0,.55);animation:r18-panneau .34s cubic-bezier(.2,.9,.25,1) both;overscroll-behavior:contain}
  .site-nav.open::before{content:"";flex:none;align-self:center;width:42px;height:5px;margin:-16px 0 4px;border-radius:3px;background:var(--trait-2)}
  .site-nav.open .site-nav__liens a{padding:11px 0;font-size:1.875rem}
  .site-nav.glisse{animation:none;transition:none}
  /* Le flou de l'en-tête faisait du menu ouvert un bandeau limité à l'en-tête (bug antérieur, pages intérieures) : on le retire menu ouvert. */
  .menu-ouvert .site-header{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--noir)}
  .nav-voile{position:fixed;inset:0;z-index:44;background:rgba(0,0,0,.55);animation:r18-fondu .25s ease both}
}
@media (max-width:760px){
  .atouts,.perimetre,.perspectives--conseils,.compare-r18__grille{grid-template-columns:minmax(0,1fr)}
  .footer-grid.footer-grid--r18{grid-template-columns:minmax(0,1fr)}
  .intro-actions{flex-direction:column;align-items:stretch}
  .service .lien--detail{margin-left:0;display:block;margin-top:16px}
  .seuils div{grid-template-columns:minmax(0,1fr);gap:4px}
}
@media (prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none}
  .site-nav.open,.nav-voile,.photo-dialog[open]{animation:none}
}
@media print{
  .imprime-r18{display:block;margin-bottom:18px;color:#000}
  .imprime-r18 img{width:140px;height:auto}
  .imprime-r18 p{margin:4px 0;color:#000}
  .compare-r18__carte{background:#fff;color:#000;border:1px solid #000}
  .compare-r18__carte .ttc,.compare-r18__carte ul{color:#000}
  .compare-r18 .form-grid,.visite-r18,.partage-r18,#compare-toggle{display:none!important}
  #estimate-root .subtext,#estimate-root .fine,.price-result .ttc,.price-result small{color:#222!important}
  #estimate-root .deplacement{background:#fff!important;color:#000!important;border:1px solid #000}
  #estimate-root .step-pill{display:none}
}
/* ===== r18 fin ===== */
/* ===== r19 début ===== (généré depuis scripts/r19/cinema.css par scripts/site-r18.mjs — modifier ce fichier-là) */
/* ---------- r19 « Cinéma » (01/10/2026) : ouverture de film, scènes au défilement, plans tracés ---------- */
/* Tout est en CSS : aucun script ajouté, rien ne bloque l'affichage ; « réduire les animations » coupe tout. */
:root{--plan-rouge:#e5484d;--plan-trait:#efe9df}

/* 1. Ouverture de film (accueil) */
.cine-bandes,.cine-grain,.cine-lumiere{position:absolute;pointer-events:none}
.cine-bandes{inset:0;z-index:3}
.cine-bandes::before,.cine-bandes::after{content:"";position:absolute;left:0;right:0;height:51%;background:#000;transform:scaleY(0)}
.cine-bandes::before{top:0;transform-origin:50% 0}
.cine-bandes::after{bottom:0;transform-origin:50% 100%}
.cine-lumiere{inset:-10%;z-index:1;opacity:0;background:radial-gradient(42% 46% at 18% 24%,rgba(255,176,96,.42),rgba(255,140,60,.12) 45%,transparent 70%);mix-blend-mode:screen}
.cine-grain{inset:-60%;z-index:2;opacity:.07;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:overlay}
.ouverture__texte{z-index:4}
.ouverture .etiquette-illu{z-index:4}
.ouverture h1 .mot{display:inline-block}
@media (prefers-reduced-motion:no-preference){
  .cine-bandes::before,.cine-bandes::after{animation:r19-rideau 1.05s cubic-bezier(.76,0,.24,1) .05s backwards}
  .ouverture__img{animation:r19-travelling 16s cubic-bezier(.2,.55,.25,1) both}
  .cine-lumiere{animation:r19-lumiere 3.4s ease-out .5s both}
  .cine-grain{animation:r19-grain .9s steps(6) 9}
  .ouverture h1 .mot{animation:r19-mot .95s cubic-bezier(.2,.75,.2,1) both}
  .ouverture h1 .m1{animation-delay:.55s}.ouverture h1 .m2{animation-delay:.63s}.ouverture h1 .m3{animation-delay:.71s}.ouverture h1 .m4{animation-delay:.79s}
  .ouverture h1 .m5{animation-delay:.87s}.ouverture h1 .m6{animation-delay:.95s}.ouverture h1 .m7{animation-delay:1.03s}.ouverture h1 .m8{animation-delay:1.11s}
  .ouverture__actions{animation:r19-monte .8s cubic-bezier(.2,.75,.2,1) 1.15s both}
}
@keyframes r19-rideau{from{transform:scaleY(1)}to{transform:scaleY(0)}}
@keyframes r19-travelling{from{transform:scale(1.13) translate3d(-1.2%,1.4%,0)}to{transform:scale(1.02) translate3d(0,0,0)}}
@keyframes r19-lumiere{0%{opacity:0;transform:translate3d(-12%,0,0)}35%{opacity:1}100%{opacity:0;transform:translate3d(28%,4%,0)}}
@keyframes r19-grain{0%{transform:translate3d(0,0,0)}20%{transform:translate3d(-6%,4%,0)}40%{transform:translate3d(5%,-7%,0)}60%{transform:translate3d(-3%,8%,0)}80%{transform:translate3d(7%,2%,0)}100%{transform:translate3d(-5%,-4%,0)}}
@keyframes r19-mot{from{opacity:0;transform:translate3d(0,.42em,0) rotate(1.5deg);filter:blur(7px)}to{opacity:1;transform:none;filter:none}}
@keyframes r19-monte{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:none}}

/* 2. Scènes au défilement : chaque bloc entre comme un plan de film (navigateurs récents ; ailleurs, tout reste affiché). */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    main .section .container>:not(form):not(:has(form)),main .chapitres>*,main .appel .container>:not(form):not(:has(form)),main .service>*{animation:r19-scene linear both;animation-timeline:view();animation-range:entry 0% entry 240px}
    main .section img:not(.avant-apres img),main .service img{animation:r19-devoile linear both;animation-timeline:view();animation-range:entry 0% entry 320px}
  }
}
@keyframes r19-scene{from{opacity:0;transform:translate3d(0,46px,0) scale(.985)}to{opacity:1;transform:none}}
@keyframes r19-devoile{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0)}}

/* 3. Plans de principe tracés trait par trait (pages services) */
.page-intro--plan .container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(28px,4vw,72px);align-items:center}
.page-intro--plan .container>*{grid-column:1}
.page-intro--plan .plan-cine{grid-column:2;grid-row:1 / span 6}
.plan-cine{margin:0;color:var(--plan-trait);background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/24px 24px,#101010;border:1px solid var(--trait-2);box-shadow:0 40px 80px -40px rgba(0,0,0,.9)}
.plan-cine svg{display:block;width:100%;height:auto}
.plan-cine path{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.plan-cine .h,.plan-cine .j{stroke-width:.7;opacity:.45}
.plan-cine .g{stroke-width:.9;opacity:.7}
.plan-cine .a{stroke:var(--plan-rouge);stroke-width:1.8}
.plan-cine .c{stroke:var(--plan-rouge);stroke-width:1}
.plan-cine .f{opacity:.5}
.plan-cine text{font:600 10.5px/1 var(--texte);letter-spacing:.14em;fill:currentColor;paint-order:stroke;stroke:#101010;stroke-width:5px;stroke-linejoin:round}
.plan-cine .tc{text-anchor:middle}.plan-cine .te{text-anchor:end}.plan-cine .k{fill:var(--plan-rouge)}.plan-cine .tt{font-size:10px;opacity:.6}
@media (prefers-reduced-motion:no-preference){
  .plan-cine path{stroke-dasharray:1;stroke-dashoffset:1;animation:r19-trace 1.5s cubic-bezier(.65,0,.25,1) .2s forwards}
  .plan-cine .d1{animation-delay:.5s}.plan-cine .d2{animation-delay:.85s}.plan-cine .d3{animation-delay:1.15s}.plan-cine .d4{animation-delay:1.5s}.plan-cine .d5{animation-delay:1.8s}
  .plan-cine text{opacity:0;animation:r19-fondu-texte .8s ease 2.1s forwards}
  .plan-cine .tt{animation-delay:.4s}
}
@keyframes r19-trace{to{stroke-dashoffset:0}}
@keyframes r19-fondu-texte{to{opacity:1}}
@media (max-width:900px){
  .page-intro--plan .container{display:block}
  .plan-cine{margin-top:32px}
}

/* 4. Visionneuse « salle de cinéma » (photos agrandies) */
.photo-dialog::backdrop{background:#000}
.photo-dialog p{font-family:var(--titre);font-style:italic;font-size:1.25rem;text-align:center}
/* ===== r19 fin ===== */
/* ===== r20 début ===== (généré depuis scripts/r20/realisations.css par scripts/site-r18.mjs — modifier ce fichier-là) */
/* 8.5 (lot 3e) : photos réelles des chantiers sur la page Réalisations (section remplie par js/realisations-reelles.js). */
#chantiers-reels[hidden]{display:none}
.reels .surtitre{margin-bottom:6px}
.reel{margin-top:clamp(28px,4vw,44px)}
.reel__titre{margin:0;font-family:var(--titre);font-weight:400;font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.15}
.reel__lieu{margin:6px 0 16px;color:var(--gris);font-size:.9375rem}
.photo-reelle{position:absolute;z-index:1;left:12px;bottom:12px;padding:6px 9px;background:var(--rouge);color:#fff;font-size:.8125rem;font-weight:600;line-height:1.2;pointer-events:none}
/* ===== r20 fin ===== */
/* ===== r21 début ===== (généré depuis scripts/r21/immersif.css par scripts/site-r18.mjs — modifier ce fichier-là) */
/* ---------- r21 « Immersif » (02/10/2026) : toutes les pages prennent le design clair de l'accueil immersif ---------- */
/* Ivoire, encre, rouge QUALITE24 ; mêmes polices. Le contenu des pages ne change pas : seules les couleurs et l'habillage changent. */
:root{
  --noir:#f7f5f0;
  --noir-2:#efebe3;
  --noir-3:#fffdf9;
  --trait:#e3ddd2;
  --trait-2:#cfc8bc;
  --blanc:#23262b;
  --gris:#5a5e66;
  --gris-2:#7a7e86;
  --rouge:#9e1022;
  --rouge-fonce:#7e0c1b;
  --rouge-clair:#b8323f;
  --entete:72px;
  --plan-rouge:#c4313f;
  --plan-trait:#23262b;
  color-scheme:light;
}
html{background:var(--noir)}
:focus-visible{outline:3px solid var(--rouge)}
.skip-link{background:var(--blanc);color:#fff}

/* En-tête translucide clair */
.site-header{background:rgba(255,253,249,.94);border-bottom:1px solid rgba(35,38,43,.08)}
@supports (backdrop-filter:blur(8px)){.site-header{background:rgba(255,253,249,.86);backdrop-filter:saturate(1.4) blur(12px)}}
.site-logo{padding:0;background:none}
.site-logo img{height:40px}
.site-nav__liens a{font-size:.9rem}
.site-nav__liens a:hover,.site-nav__liens a[aria-current="page"]{color:var(--rouge)}

/* Boutons : coins doux, graisse moyenne, comme l'accueil */
.button,.gold-button,.outline-dark{border-radius:4px;font-weight:500}
.button--contour:hover,.outline-dark:hover{color:#fff}
.button--blanc{color:#fff}
.gold-button:disabled{background:#d9d4ca;color:#7a7e86}
.lien,.text-link{font-weight:500}

/* Surtitres rouges, titres avec filet rouge */
.surtitre{color:var(--rouge);font-weight:600;letter-spacing:.16em}
.page-intro{background:var(--noir)}
.page-intro h1::after{content:"";display:block;width:56px;height:2px;margin-top:26px;background:var(--rouge)}
.page-intro--plan h1::after{margin-top:22px}

/* Encadrés et panneaux : papier clair, coins doux */
.formulaire,.estimate-work,.perimetre__col,.article-aside__carte,.compare-r18__carte,.avis-google article,.rappel,.carte,.a-retenir,.dossier,.estimate-help,.service .tarif,.photos-bloc,.booking-cta,.visite-r18,.notice,.price-result,.deplacement{background:var(--noir-3);border-radius:6px}
.a-retenir,.service .tarif,.visite-r18,.deplacement{border-radius:0 6px 6px 0}
.work-choice,.choix-variantes label,.form-grid input,.form-grid select,.form-grid textarea,.commune-test input{background:#fff;border-radius:4px}
.work-choice[aria-pressed="true"],.choix-variantes label:has(input:checked){border-color:var(--rouge)}
.form-grid input:focus-visible,.form-grid select:focus-visible,.form-grid textarea:focus-visible{outline:2px solid var(--rouge);border-color:transparent}
.form-status.success{background:#e4f1e8;color:#1f6b3a;padding:14px 16px;border-radius:4px}
.form-status.error{background:#f8e3e5;color:var(--rouge);padding:14px 16px;border-radius:4px}
.perimetre__col--oui li::before{color:#1f6b3a}

/* Étapes : grands numéros rouges */
.etape__num{color:var(--rouge)}
.etape{border-top-color:var(--trait-2)}
.atouts li{border-top-color:var(--rouge)}

/* Étiquettes posées sur les images (lisibles sur photo) */
.etiquette-illu,.illustration{background:rgba(255,253,249,.9);color:var(--blanc)}
.avant-apres__lbl--avant{background:rgba(255,253,249,.92);color:var(--blanc)}
.avant-apres__lbl--apres{color:#fff}
.chapitres{background:var(--trait)}
.expertise__img,.projet__img,.perspectives .visuel,.photo-button .visuel{background:#e8e3d9}
.carte-google iframe{background:#e8e3d9}

/* Plans de principe : papier à carreaux clair */
.plan-cine{background:linear-gradient(rgba(35,38,43,.05) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,rgba(35,38,43,.05) 1px,transparent 1px) 0 0/24px 24px,#fffdf9;box-shadow:0 30px 60px -40px rgba(35,38,43,.35)}
.plan-cine text{stroke:#fffdf9}

/* Visionneuse photo */
.photo-dialog{background:var(--noir-3)}
.photo-dialog::backdrop{background:rgba(31,34,38,.9)}
.photo-dialog button{color:#fff}

/* Bandeau d'appel final : sable, comme les sections alternées de l'accueil */
.appel{background:var(--noir-2)}

/* Pied de page sombre, comme l'accueil */
.site-footer{--blanc:#f3efe8;--gris:#c9c4bb;--gris-2:#9a958d;--trait:#34383d;--trait-2:#4a4e54;background:#1f2226;color:#d9d5cd;border-top:0}
.site-footer a{color:#e6e1d8}

/* Menu mobile (panneau clair qui monte du bas) */
@media (max-width:1024px){
  .menu-button{background:transparent;border-color:rgba(35,38,43,.18);font-weight:500}
  .site-nav.open{background:rgba(255,253,249,.97);box-shadow:0 -24px 60px rgba(35,38,43,.18)}
  .menu-ouvert .site-header{background:var(--noir-3)}
  .nav-voile{background:rgba(35,38,43,.35)}
}
@media (max-width:760px){
  :root{--entete:60px}
  .site-logo img{height:32px}
  .barre-mobile{background:rgba(255,253,249,.96)}
}

/* Surtitres des bandeaux de page : rouge aussi (une règle plus précise les laissait gris) */
.page-intro .surtitre,.page-intro--plan .surtitre{color:var(--rouge)}
/* ===== r21 fin ===== */
