/* ============ TOKENS ============ */
  :root{
    --font-display:'Fraunces', serif;
    --font-body:'Manrope', sans-serif;
    --radius-sm:6px;
    --radius-md:14px;
    --ease:cubic-bezier(.4,0,.2,1);

    --shadow-sm:0 6px 18px -10px rgba(11,13,11,.35);
    --shadow-md:0 20px 40px -20px rgba(11,13,11,.45);
    --shadow-lg:0 30px 60px -22px rgba(11,13,11,.55);
    --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");

    --ink:#12140F;

    --land-bg:var(--vit-bg);
    --land-bg-soft:var(--vit-bg-alt);
    --land-text:var(--ink);
    --land-muted:#6B7264;

    --auto-bg:#0E130F;
    --auto-bg-alt:#16251A;
    --auto-panel:#1D3022;
    --auto-green:#1F5C2E;
    --auto-green-light:#3F7D4C;
    --auto-accent:#F1EAD9;
    --auto-text:#F5F1E6;
    --auto-muted:#BCC8B9;
    --auto-green-bright:#7DBE8B;
    --auto-cta:#EFB93F;
    --auto-line:#3F7D4C;

    --vit-bg:#F1EAD9;
    --vit-bg-alt:#E7DCC0;
    --vit-panel:#FBF8F0;
    --vit-green:#1F5C2E;
    --vit-green-dark:#0A2A0E;
    --vit-clay:#1F5C2E;
    --vit-text:#16321B;
    --vit-muted:#46563F;
    --vit-line:#D9CBA6;
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top:90px;}
  body{
    margin:0;
    font-family:var(--font-body);
    background:var(--land-bg);
    color:var(--land-text);
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{font-family:var(--font-display); margin:0; font-weight:600; line-height:1.1;}
  p{margin:0; line-height:1.6;}
  a{color:inherit;}
  button{font-family:var(--font-body); cursor:pointer;}
  img,video{max-width:100%; display:block;}
  :focus-visible{outline:2px solid currentColor; outline-offset:3px; border-radius:2px;}
  body.theme-auto :focus-visible{outline-color:var(--auto-accent);}
  body.theme-vitres :focus-visible{outline-color:var(--vit-green-dark);}
  .skip-link{
    position:absolute; left:-9999px; top:8px; z-index:200;
    padding:10px 18px; border-radius:999px; font-size:.85rem; font-weight:700;
    background:var(--vit-green-dark); color:#F1EAD9; text-decoration:none;
  }
  .skip-link:focus{left:16px;}
  .visually-hidden{position:absolute; width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

  .container{max-width:1120px; margin:0 auto; padding:0 24px;}

  /* ============ HEADER ============ */
  .site-header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 28px;
    background:rgba(241,234,217,.92);
    color:var(--ink);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
    transition:background .3s var(--ease), color .3s var(--ease),
               padding .3s var(--ease), box-shadow .3s var(--ease);
  }
  /* Barre pleinement opaque + ombre dès qu'on défile, pour qu'elle reste bien lisible */
  .site-header.scrolled{
    padding:11px 28px;
    background:var(--vit-bg);
    box-shadow:0 2px 18px rgba(18,20,15,.18);
  }
  .site-header.scrolled .brand img{height:28px;}
  body.theme-auto .site-header.scrolled{
    background:var(--auto-bg);
    box-shadow:0 2px 20px rgba(0,0,0,.5);
  }
  .site-header .brand{
    background:transparent; border:none; padding:0; display:flex; align-items:center;
  }
  .site-header .brand img{height:32px; width:auto; display:block;}
  .logo-plate{
    display:inline-flex; align-items:center; justify-content:center;
    border-radius:9px; padding:0; background:transparent;
    transition:background .3s var(--ease), padding .3s var(--ease);
  }
  body.theme-auto .logo-plate{background:var(--auto-accent); padding:5px 10px;}
  .header-actions{display:flex; align-items:center; gap:10px;}

  /* ---- Message éphémère ---- */
  .toast{
    position:fixed; left:50%; bottom:26px; z-index:150;
    transform:translate(-50%, 24px);
    display:flex; align-items:center; gap:12px;
    max-width:min(440px, calc(100vw - 32px));
    padding:15px 22px; border-radius:999px;
    background:var(--auto-green); color:var(--auto-accent);
    box-shadow:0 10px 30px rgba(0,0,0,.35);
    font-size:.88rem; font-weight:600; line-height:1.4;
    opacity:0; pointer-events:none;
    transition:opacity .4s var(--ease), transform .4s var(--ease);
  }
  .toast.show{opacity:1; transform:translate(-50%, 0);}
  .toast-check{
    flex-shrink:0; width:22px; height:22px; border-radius:50%;
    background:var(--auto-accent); color:var(--auto-green);
    display:flex; align-items:center; justify-content:center;
    font-size:.72rem; font-weight:700;
  }
  @media (max-width:520px){ .toast{bottom:80px; padding:13px 18px; font-size:.82rem;} }
  @media (prefers-reduced-motion:reduce){ .toast{transition:opacity .2s;} }

  /* ---- Étapes suivantes dans la confirmation ---- */
  .next-steps{
    text-align:left; margin:8px 0 4px; padding:20px 22px;
    border-radius:var(--radius-md); max-width:460px;
  }
  body.theme-auto .next-steps{background:rgba(241,234,217,.06); border:1px solid var(--auto-line);}
  body.theme-vitres .next-steps{background:rgba(31,92,46,.06); border:1px solid var(--vit-line);}
  .ns-title{
    display:block; font-size:.72rem; font-weight:700; letter-spacing:.06em;
    text-transform:uppercase; margin-bottom:12px;
  }
  body.theme-auto .ns-title{color:var(--auto-accent);}
  body.theme-vitres .ns-title{color:var(--vit-green-dark);}
  .next-steps ol{margin:0; padding-left:20px; display:flex; flex-direction:column; gap:9px; font-size:.85rem; line-height:1.55;}
  body.theme-auto .next-steps ol{color:var(--auto-muted);}
  body.theme-vitres .next-steps ol{color:var(--vit-muted);}
  .confirm-actions{display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:18px;}

  /* ---- Bouton WhatsApp flottant ---- */
  /* ---- FAQ ---- */
  .faq-list{display:flex; flex-direction:column; max-width:820px;}
  .faq-item{padding:4px 0;}
  .faq-item summary{
    cursor:pointer; padding:18px 0; font-weight:700; font-size:.98rem;
    list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px;
  }
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{content:"+"; font-size:1.3rem; font-weight:400; flex-shrink:0;}
  .faq-item[open] summary::after{content:"−";}
  .faq-item p{padding:0 0 20px; font-size:.92rem; max-width:70ch;}
  body.theme-auto .faq-item{border-bottom:1px solid var(--auto-line);}
  body.theme-auto .faq-item summary{color:var(--auto-text);}
  body.theme-auto .faq-item summary::after{color:var(--auto-accent);}
  body.theme-auto .faq-item p{color:var(--auto-muted);}
  body.theme-vitres .faq-item{border-bottom:1px solid var(--vit-line);}
  body.theme-vitres .faq-item summary{color:var(--vit-text);}
  body.theme-vitres .faq-item summary::after{color:var(--vit-green-dark);}
  body.theme-vitres .faq-item p{color:var(--vit-muted);}

  /* ---- Bloc contact direct ---- */
  .contact-card{max-width:820px;}
  .contact-card .kicker{font-size:.78rem; font-weight:700; display:block; margin-bottom:10px;}
  .contact-card h2{font-size:clamp(1.6rem,3vw,2.2rem); margin-bottom:16px;}
  .contact-lead{font-size:.96rem; max-width:60ch; margin-bottom:32px;}
  body.theme-auto .contact-card .kicker{color:var(--auto-green-bright);}
  body.theme-auto .contact-lead{color:var(--auto-muted);}
  body.theme-vitres .contact-card .kicker{color:var(--vit-green-dark);}
  body.theme-vitres .contact-lead{color:var(--vit-muted);}
  .contact-methods{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
  @media (max-width:760px){ .contact-methods{grid-template-columns:1fr;} }
  .contact-method{
    display:flex; flex-direction:column; gap:5px; padding:22px 20px;
    border-radius:var(--radius-md); text-decoration:none;
    box-shadow:var(--shadow-sm);
    transition:transform .2s var(--ease), box-shadow .2s var(--ease);
  }
  .contact-method:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
  .cm-icon{font-size:1.3rem; margin-bottom:4px;}
  .cm-label{font-size:.74rem; font-weight:700; letter-spacing:.04em; opacity:.7;}
  .cm-value{font-weight:700; font-size:.98rem;}
  body.theme-auto .contact-method{border:1px solid var(--auto-line); background:var(--auto-panel); color:var(--auto-text);}
  body.theme-auto .contact-method .cm-icon{color:var(--auto-accent);}
  body.theme-vitres .contact-method{border:1px solid var(--vit-line); background:var(--vit-panel); color:var(--vit-text);}
  body.theme-vitres .contact-method .cm-icon{color:var(--vit-green-dark);}

  /* ---- Abonnements ---- */
  .sub-lead{max-width:62ch; margin-bottom:36px; color:var(--vit-muted); font-size:.96rem;}
  .abo-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
  @media (max-width:820px){ .abo-grid{grid-template-columns:1fr;} }
  .abo-card{
    position:relative; border:1px solid var(--vit-line); border-radius:var(--radius-md);
    padding:28px 24px; background:var(--vit-panel); display:flex; flex-direction:column; gap:8px;
    box-shadow:var(--shadow-sm); transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .abo-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
  .abo-featured{border-color:var(--vit-green-dark); border-width:2px;}
  .abo-badge{position:absolute; top:-10px; left:22px;}
  .abo-card h3{font-size:1.1rem; color:var(--vit-text);}
  .abo-freq{font-size:.82rem; color:var(--vit-muted); font-weight:600;}
  .abo-remise{font-family:var(--font-display); font-size:1.9rem; color:var(--vit-green-dark); margin:4px 0;}
  .abo-card p{font-size:.86rem; color:var(--vit-muted);}

  /* ---- Mentions légales ---- */
  .todo-field{opacity:.6; font-style:italic;}
  .legal-overlay{
    display:none; position:fixed; inset:0; z-index:200;
    background:rgba(11,13,11,.72); padding:24px;
    align-items:center; justify-content:center;
  }
  .legal-overlay.open{display:flex;}
  .legal-box{
    background:var(--vit-panel); color:var(--vit-text);
    max-width:640px; max-height:80vh; overflow-y:auto;
    padding:36px 32px; border-radius:var(--radius-md);
  }
  .legal-box h2{font-size:1.4rem; margin-bottom:18px;}
  .legal-box h3{font-size:.95rem; margin:20px 0 6px;}
  .legal-box p{font-size:.88rem; color:var(--vit-muted); line-height:1.65;}
  .legal-box .btn{margin-top:26px;}

  /* ---- Bandeau déplacement ---- */
  .travel-note{
    display:inline-flex; align-items:center; gap:10px; padding:11px 18px;
    border-radius:999px; font-size:.82rem; font-weight:600; margin-top:24px;
  }
  body.theme-auto .travel-note{background:rgba(241,234,217,.08); color:var(--auto-text); border:1px solid var(--auto-line);}
  body.theme-vitres .travel-note{background:rgba(31,92,46,.08); color:var(--vit-text); border:1px solid var(--vit-line);}

  .wa-float{
    position:fixed; right:20px; bottom:20px; z-index:99;
    width:54px; height:54px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:#25D366; color:#fff; text-decoration:none;
    box-shadow:0 6px 18px rgba(0,0,0,.28);
    transition:transform .2s var(--ease);
  }
  .wa-float::before{
    content:""; position:absolute; inset:0; border-radius:50%;
    background:#25D366; animation:waPulse 2.4s var(--ease) infinite; z-index:-1;
  }
  @keyframes waPulse{
    0%{transform:scale(1); opacity:.55;}
    100%{transform:scale(1.7); opacity:0;}
  }
  .wa-float:hover{transform:scale(1.06);}
  .wa-float svg{width:30px; height:30px;}
  @media (max-width:520px){ .wa-float{right:14px; bottom:14px; width:50px; height:50px;} }
  @media (prefers-reduced-motion:reduce){ .wa-float::before{animation:none; display:none;} }


  /* ---- Navigation ---- */
  .site-nav{display:flex; gap:26px; align-items:center;}
  .site-nav a{
    font-size:.84rem; font-weight:600; text-decoration:none; color:inherit;
    opacity:.8; transition:opacity .2s var(--ease);
  }
  .site-nav a:hover{opacity:1;}
  .nav-toggle{
    display:none; flex-direction:column; gap:4px; background:transparent; border:none;
    padding:8px; cursor:pointer;
  }
  .nav-toggle span{display:block; width:20px; height:2px; background:currentColor; border-radius:2px;}
  .nav-toggle[hidden]{display:none !important;}
  @media (max-width:900px){
    .nav-toggle{display:flex;}
    .site-nav{
      position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch;
      gap:0; padding:0 24px; max-height:0; overflow:hidden;
      transition:max-height .3s var(--ease), padding .3s var(--ease);
      background:inherit; backdrop-filter:blur(10px);
    }
    .site-nav.open{max-height:340px; padding:8px 24px 20px;}
    .site-nav a{padding:13px 0; border-bottom:1px solid currentColor; opacity:.85;}
    .site-nav a:last-child{border-bottom:none;}
  }
  @media (max-width:520px){
    .back-btn{padding:8px 12px; font-size:.78rem;}
  }

  .back-btn{
    display:none; align-items:center; gap:8px;
    background:transparent; border:1px solid rgba(18,20,15,.22);
    color:inherit; padding:8px 16px; border-radius:999px; font-size:.82rem; font-weight:600;
    transition:border-color .2s var(--ease), background .2s var(--ease);
  }
  .back-btn:hover{background:rgba(18,20,15,.06);}
  .back-btn.show{display:inline-flex;}
  .header-cta{
    display:none; padding:9px 20px; border-radius:999px; font-size:.82rem; font-weight:700;
    text-decoration:none; white-space:nowrap; background:var(--vit-green-dark); color:#F1EAD9;
  }
  .header-cta.show{display:inline-flex;}

  body.theme-auto .site-header{background:rgba(14,19,15,.92); color:var(--auto-text);}
  body.theme-auto .back-btn{border-color:rgba(255,255,255,.25);}
  body.theme-auto .back-btn:hover{background:rgba(255,255,255,.08);}
  body.theme-auto .header-cta{background:var(--auto-cta); color:#1B1405; font-weight:800; box-shadow:0 6px 20px -6px rgba(239,185,63,.6);}
  @media (min-width:900px){ body.theme-auto .header-cta{font-size:.98rem; padding:13px 28px;} }
  .landing-header .header-cta{display:none !important;}

  /* ============ RÉVÉLATION AU DÉFILEMENT ============ */
  .reveal{opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
  .reveal.in{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion:reduce){
    .reveal{opacity:1; transform:none; transition:none;}
  }

  /* ============ PAGES ============ */
  .page{display:none; min-height:100vh; opacity:0;}
  .page.active{display:block; animation:fadeIn .5s var(--ease) forwards;}
  @keyframes fadeIn{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}
  @media (prefers-reduced-motion:reduce){
    .page.active{animation:none; opacity:1;}
  }

  /* ============ LANDING ============ */
  #page-landing{
    background:var(--vit-bg); color:var(--ink);
    background-image:
      radial-gradient(circle at 50% 0%, var(--vit-bg-alt) 0%, transparent 60%),
      radial-gradient(circle at 90% 20%, rgba(31,92,46,.08) 0%, transparent 45%);
  }
  .landing-hero{
    padding:150px 0 20px;
    text-align:center;
  }
  .landing-logo-plate{
    width:fit-content; margin:0 auto 24px;
  }
  .landing-logo{width:130px; height:auto; display:block;}
  .landing-hero .eyebrow{
    display:block; font-size:.78rem; font-weight:700; color:var(--vit-green-dark); margin-bottom:16px;
  }
  .landing-hero h1{font-size:clamp(2rem,4.4vw,3.2rem); max-width:680px; margin:0 auto; color:var(--ink);}
  .landing-hero .sub{
    margin:20px auto 0; max-width:500px; color:var(--vit-muted); font-size:1rem;
  }
  .choice-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:24px;
    margin:64px auto 0; max-width:1040px; padding:0 24px;
  }
  @media (max-width:780px){ .choice-grid{grid-template-columns:1fr;} }

  .choice-card{
    /* Les cartes sont des liens : on neutralise le style par défaut */
    text-decoration:none; color:inherit; cursor:pointer;
    position:relative; overflow:hidden; padding:44px 36px 40px; min-height:340px;
    display:flex; flex-direction:column; justify-content:flex-end;
    text-align:left; width:100%; border-radius:20px;
    transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  }
  .choice-card:hover{transform:translateY(-8px) scale(1.01);}
  .choice-card::after{
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    background-image:var(--grain); opacity:.05; mix-blend-mode:overlay;
  }
  .choice-card .tag,
  .choice-card h2,
  .choice-card p,
  .choice-card .cta,
  .choice-card .card-icon{position:relative; z-index:1;}
  .choice-card .tag{
    position:absolute; top:32px; left:36px; font-size:.72rem; font-weight:700; letter-spacing:.04em; opacity:.85;
  }
  .choice-card .card-icon{
    position:absolute; top:-18px; right:-14px; width:150px; height:150px;
    opacity:.14; transform:rotate(-6deg); pointer-events:none;
    transition:transform .5s var(--ease), opacity .5s var(--ease);
  }
  .choice-card:hover .card-icon{transform:rotate(-2deg) scale(1.06); opacity:.2;}
  .choice-card h2{font-size:1.55rem; margin-bottom:12px;}
  .choice-card p{font-size:.9rem; max-width:300px; margin-bottom:24px;}
  .choice-card .cta{
    display:inline-flex; align-items:center; gap:10px; font-weight:700; font-size:.85rem;
    padding:12px 22px; border-radius:999px; width:max-content;
    transition:gap .25s var(--ease);
  }
  .choice-card:hover .cta{gap:14px;}
  .choice-card.auto{
    background:var(--auto-bg);
    background-image:radial-gradient(circle at 85% -10%, var(--auto-green) 0%, transparent 55%);
    border:1px solid var(--auto-line);
    color:var(--auto-text);
    box-shadow:0 24px 50px -20px rgba(11,13,11,.5);
  }
  .choice-card.auto:hover{box-shadow:0 32px 70px -18px rgba(11,13,11,.7);}
  .choice-card.auto .tag{color:var(--auto-accent);}
  .choice-card.auto .card-icon{color:var(--auto-accent);}
  .choice-card.auto .cta{background:var(--auto-accent); color:#0F2A13; box-shadow:0 10px 24px -10px rgba(241,234,217,.5);}
  .choice-card.vitres{
    background:var(--vit-panel);
    border:1px solid var(--vit-line);
    color:var(--vit-text);
  }
  .choice-card.vitres:hover{box-shadow:0 28px 56px -22px rgba(22,50,27,.4);}
  .choice-card.vitres .tag{color:var(--vit-green-dark);}
  .choice-card.vitres .card-icon{color:var(--vit-green-dark);}
  .choice-card.vitres .cta{background:var(--vit-green-dark); color:#F1EAD9; box-shadow:0 10px 24px -10px rgba(31,92,46,.4);}
  @media (prefers-reduced-motion:reduce){
    .choice-card,.choice-card .card-icon,.choice-card .cta{transition:none;}
  }

  .landing-trust{
    display:flex; justify-content:center; gap:32px; flex-wrap:wrap;
    margin-top:56px; padding:0 24px; font-size:.78rem; font-weight:700; color:var(--vit-muted);
  }
  .landing-trust li{list-style:none; display:flex; align-items:center; gap:6px;}
  .landing-trust li::before{content:"✓"; color:var(--vit-green-dark);}

  .landing-foot{
    text-align:center; padding:48px 24px 60px; color:var(--vit-muted); font-size:.82rem;
  }

  /* ============ SHARED SECTION PATTERNS ============ */
  .section{padding:96px 0;}
  .section-head{max-width:620px; margin-bottom:48px;}
  .section-head .kicker{font-size:.78rem; font-weight:700; margin-bottom:10px; display:block;}
  .section-head h2{font-size:clamp(1.7rem,3.2vw,2.4rem);}
  .two-col{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
  @media (max-width:820px){ .two-col{grid-template-columns:1fr;} }

  .media-placeholder{
    aspect-ratio:4/3; border-radius:var(--radius-md);
    display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px;
    font-size:.8rem; text-align:center; padding:20px;
  }
  .media-placeholder svg{width:34px; height:34px; opacity:.7;}

  /* ---- Photo d'illustration section "À propos" avec badge flottant ---- */
  .about-media{position:relative; border-radius:var(--radius-md); overflow:hidden; aspect-ratio:4/3; box-shadow:var(--shadow-lg);}
  .about-media img{width:100%; height:100%; object-fit:cover; display:block;}
  .about-media::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(0deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 45%);
    pointer-events:none;
  }
  .about-badge{
    position:absolute; left:20px; bottom:20px; z-index:1;
    display:flex; flex-direction:column; gap:2px;
    padding:14px 18px; border-radius:var(--radius-sm);
    background:rgba(11,13,11,.55); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    color:#F1EAD9;
  }
  .about-badge strong{font-family:var(--font-display); font-size:1.4rem; line-height:1;}
  .about-badge span{font-size:.74rem; opacity:.85; max-width:20ch;}

  /* ============ AUTO THEME ============ */
  body.theme-auto{background:var(--auto-bg); color:var(--auto-text);}
  #page-auto .hero-auto{
    position:relative; overflow:hidden;
    padding:160px 0 80px;
    background:
      radial-gradient(circle at 80% 0%, var(--auto-green) 0%, transparent 55%),
      radial-gradient(circle at 10% 110%, rgba(241,234,217,.08) 0%, transparent 45%),
      var(--auto-bg);
  }
  #page-auto .hero-auto::before{
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    background-image:var(--grain); opacity:.05; mix-blend-mode:overlay;
  }
  #page-auto .hero-auto .container{position:relative; z-index:1;}
  #page-auto .hero-auto .eyebrow{color:var(--auto-green-bright); font-size:.8rem; font-weight:700; letter-spacing:.03em;}
  #page-auto .hero-auto h1{font-size:clamp(2.2rem,4.6vw,3.6rem); margin:16px 0 22px; max-width:680px;}
  #page-auto .hero-auto p.lead{color:var(--auto-muted); max-width:520px; font-size:1.05rem;}

  #page-auto .about .media-placeholder{background:var(--auto-panel); border:1px solid var(--auto-line); color:var(--auto-muted);}
  #page-auto .section-head .kicker{color:var(--auto-green-bright);}
  #page-auto .about-text p{color:var(--auto-muted); margin-top:16px;}
  #page-auto .about-text h2{margin-bottom:6px;}
  #page-auto .about-text .signoff{margin-top:22px; font-family:var(--font-display); font-size:1.1rem; color:var(--auto-text);}

  #page-auto .section-alt{background:var(--auto-bg-alt);}

  /* ---- Badge Google sous les avis ---- */
  .review-source{
    display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px;
    margin-top:22px; font-size:.82rem;
  }
  body.theme-auto .review-source{color:var(--auto-muted);}
  body.theme-vitres .review-source{color:var(--vit-muted);}
  .google-badge{
    display:inline-flex; align-items:center; gap:1px;
    font-family:var(--font-body); font-weight:700; font-size:.95rem;
    padding:4px 10px; border-radius:6px; background:#fff;
  }
  .g-letter{line-height:1;}
  .g-b{color:#4285F4;} .g-r{color:#EA4335;} .g-y{color:#FBBC05;} .g-g{color:#34A853;}
  .review-source a{font-weight:700; text-decoration:underline;}
  body.theme-auto .review-source a{color:var(--auto-accent);}
  body.theme-vitres .review-source a{color:var(--vit-green-dark);}

  /* ---- Bandeau marques ---- */
  .marques{padding:56px 0;}
  .marques-intro{
    text-align:center; font-size:.76rem; font-weight:700; letter-spacing:.08em;
    text-transform:uppercase; color:var(--auto-muted); margin-bottom:24px;
  }
  .marques-band{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
    gap:18px 44px;
  }
  .marques-band span{
    font-family:var(--font-display); font-size:1.25rem; font-weight:600;
    color:var(--auto-text); opacity:.55; transition:opacity .3s var(--ease);
  }
  .marques-band span:hover{opacity:1;}
  @media (max-width:600px){ .marques-band{gap:14px 28px;} .marques-band span{font-size:1.05rem;} }

  /* ---- Déroulé de l'intervention ---- */
  .process-list{
    list-style:none; margin:0; padding:0; max-width:760px;
    display:flex; flex-direction:column;
  }
  .process-list li{
    display:flex; gap:22px; align-items:flex-start;
    padding:24px 0; border-bottom:1px solid var(--auto-line);
  }
  .process-list li:last-child{border-bottom:none;}
  .pl-num{
    font-family:var(--font-display); font-size:1.3rem; color:var(--auto-accent);
    flex-shrink:0; min-width:34px;
  }
  .process-list h3{font-size:1rem; margin-bottom:6px;}
  .process-list p{font-size:.87rem; color:var(--auto-muted); line-height:1.6; max-width:58ch;}

  /* ---- Comparateur avant / après ---- */
  .ba-lead{font-size:.88rem; margin-bottom:18px;}
  body.theme-auto .ba-lead{color:var(--auto-muted);}
  body.theme-vitres .ba-lead{color:var(--vit-muted);}

  .ba-compare{
    position:relative; width:100%; max-width:820px; aspect-ratio:4/3;
    border-radius:var(--radius-md); overflow:hidden; user-select:none;
    border:1px solid var(--auto-line); background:#000; box-shadow:var(--shadow-lg);
  }
  body.theme-vitres .ba-compare{border-color:var(--vit-line);}
  @media (min-width:700px){ .ba-compare{aspect-ratio:16/10;} }
  .ba-compare img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; display:block; pointer-events:none;
  }
  .ba-before-wrap{
    position:absolute; inset:0; width:50%; overflow:hidden;
  }
  .ba-before-wrap img{width:100vw; max-width:820px;}
  .ba-tag{
    position:absolute; bottom:14px; z-index:3;
    padding:5px 13px; border-radius:999px;
    font-size:.68rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
    background:rgba(11,13,11,.7); color:#F1EAD9; backdrop-filter:blur(6px);
    pointer-events:none;
  }
  .ba-tag-before{left:14px;}
  .ba-tag-after{right:14px;}
  .ba-handle{
    position:absolute; top:0; bottom:0; left:50%; width:3px; z-index:2;
    background:var(--auto-accent); transform:translateX(-50%); pointer-events:none;
  }
  body.theme-vitres .ba-handle{background:var(--vit-bg);}
  .ba-handle span{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:42px; height:42px; border-radius:50%;
    background:var(--auto-accent); box-shadow:0 3px 12px rgba(0,0,0,.4);
    display:flex; align-items:center; justify-content:center;
  }
  body.theme-vitres .ba-handle span{background:var(--vit-bg);}
  .ba-handle span::after{
    content:"‹ ›"; font-size:.9rem; font-weight:700; color:#0F2A13; letter-spacing:-1px;
  }
  .ba-range{
    position:absolute; inset:0; z-index:4; width:100%; height:100%;
    margin:0; opacity:0; cursor:ew-resize; -webkit-appearance:none; appearance:none;
    background:transparent;
  }
  .ba-range::-webkit-slider-thumb{-webkit-appearance:none; width:44px; height:100%; cursor:ew-resize;}
  .ba-range::-moz-range-thumb{width:44px; height:100%; border:0; background:transparent; cursor:ew-resize;}

  /* ---- Galerie en défilement horizontal ---- */
  .gallery-rail{position:relative;}
  .gallery-grid{
    display:flex; gap:20px; overflow-x:auto; padding:4px 4px 18px;
    scroll-snap-type:x mandatory; scroll-behavior:smooth;
    scrollbar-width:thin;
  }
  .gallery-grid > *{flex:0 0 clamp(240px, 32%, 340px); scroll-snap-align:start;}
  @media (max-width:600px){ .gallery-grid > *{flex:0 0 82%;} }
  .gallery-grid::-webkit-scrollbar{height:6px;}
  .gallery-grid::-webkit-scrollbar-thumb{border-radius:999px;}
  body.theme-auto .gallery-grid{scrollbar-color:var(--auto-line) transparent;}
  body.theme-auto .gallery-grid::-webkit-scrollbar-thumb{background:var(--auto-line);}
  body.theme-vitres .gallery-grid{scrollbar-color:var(--vit-line) transparent;}
  body.theme-vitres .gallery-grid::-webkit-scrollbar-thumb{background:var(--vit-line);}

  /* ---- Chantiers : une case à la fois, photos qui défilent à l'intérieur ----
       Pour ajouter un chantier : dupliquer un bloc .chantier-card dans le HTML,
       lui donner un id unique, et lister ses photos dans .chantier-photos. */
  .chantier-rail{
    display:flex; align-items:flex-start; gap:20px; overflow-x:auto; padding:4px 30px 18px 4px;
    scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:thin;
  }
  .chantier-rail > *{flex:0 0 88%; scroll-snap-align:start;}
  @media (min-width:640px){ .chantier-rail > *{flex:0 0 62%;} }
  .chantier-rail::-webkit-scrollbar{height:6px;}
  .chantier-rail::-webkit-scrollbar-thumb{border-radius:999px;}
  body.theme-vitres .chantier-rail{scrollbar-color:var(--vit-line) transparent;}
  body.theme-vitres .chantier-rail::-webkit-scrollbar-thumb{background:var(--vit-line);}

  .chantier-card{
    border:1px solid var(--vit-line); background:var(--vit-panel);
    border-radius:18px; overflow:hidden; box-shadow:var(--shadow-md);
  }
  body.theme-auto .chantier-card{border-color:var(--auto-line); background:var(--auto-panel);}

  .chantier-photos{
    position:relative; display:flex; overflow-x:auto;
    scroll-snap-type:x mandatory; scroll-behavior:smooth;
    scrollbar-width:none;
  }
  .chantier-photos::-webkit-scrollbar{display:none;}
  .chantier-photos img{
    flex:0 0 100%; scroll-snap-align:center;
    width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
  }

  .chantier-media{position:relative;}
  .chantier-arrow{
    position:absolute; top:50%; transform:translateY(-50%);
    width:38px; height:38px; border-radius:50%; border:none; cursor:pointer;
    background:rgba(0,0,0,.45); color:#fff; font-size:1.2rem; line-height:1;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s var(--ease), opacity .2s var(--ease);
  }
  .chantier-arrow:hover{background:rgba(0,0,0,.7);}
  .chantier-arrow.prev{left:10px;}
  .chantier-arrow.next{right:10px;}
  .chantier-count{
    position:absolute; top:10px; right:12px;
    background:rgba(0,0,0,.5); color:#fff; font-size:.72rem; font-weight:600;
    padding:4px 9px; border-radius:999px; letter-spacing:.02em;
  }
  .chantier-dots{
    position:absolute; bottom:10px; left:0; right:0;
    display:flex; gap:6px; justify-content:center;
  }
  .chantier-dots span{
    width:6px; height:6px; border-radius:50%;
    background:rgba(255,255,255,.45); transition:background .2s var(--ease), width .2s var(--ease);
  }
  .chantier-dots span.on{background:#fff; width:18px; border-radius:999px;}
  .chantier-label{
    padding:14px 16px; font-size:.9rem; font-weight:600;
    border-top:1px solid var(--vit-line); color:var(--vit-muted);
  }
  body.theme-auto .chantier-label{border-top-color:var(--auto-line); color:var(--auto-muted);}
  .ba-caption{
    padding:12px 4px 0; font-size:.9rem; font-weight:600; text-align:center;
    color:var(--auto-muted);
  }
  body.theme-vitres .ba-caption{color:var(--vit-muted);}
  .vehicle-thumbs{
    display:flex; gap:8px; justify-content:center; padding:2px 4px 0; margin-top:20px;
  }
  .vehicle-thumb{
    flex:0 0 auto; width:64px; display:flex; flex-direction:column; align-items:center; gap:6px;
    background:none; border:none; cursor:pointer; padding:0; opacity:.55;
    transition:opacity .2s var(--ease);
  }
  .vehicle-thumb-img{
    width:56px; height:56px; border-radius:12px; background-size:cover; background-position:center;
    border:2px solid transparent; transition:border-color .2s var(--ease), transform .2s var(--ease);
  }
  .vehicle-thumb-txt{
    font-size:.7rem; font-weight:600; text-align:center; line-height:1.2;
    color:var(--auto-muted);
  }
  body.theme-vitres .vehicle-thumb-txt{color:var(--vit-muted);}
  .vehicle-thumb:hover{opacity:.85;}
  .vehicle-thumb.active{opacity:1;}
  .vehicle-thumb.active .vehicle-thumb-img{border-color:var(--auto-accent); transform:translateY(-2px);}
  body.theme-vitres .vehicle-thumb.active .vehicle-thumb-img{border-color:var(--vit-bg);}

  .rail-nav{display:flex; gap:10px; justify-content:flex-end; margin-bottom:16px;}
  .rail-btn{
    width:40px; height:40px; border-radius:50%; background:transparent;
    display:flex; align-items:center; justify-content:center; font-size:1.1rem;
    transition:background .2s var(--ease), opacity .2s var(--ease);
  }
  .rail-btn:disabled{opacity:.3; cursor:default;}
  body.theme-auto .rail-btn{border:1px solid var(--auto-line); color:var(--auto-text);}
  body.theme-auto .rail-btn:not(:disabled):hover{background:rgba(241,234,217,.08);}
  body.theme-vitres .rail-btn{border:1px solid var(--vit-line); color:var(--vit-text);}
  body.theme-vitres .rail-btn:not(:disabled):hover{background:rgba(31,92,46,.08);}
  .rail-hint{font-size:.76rem; margin-top:2px;}
  body.theme-auto .rail-hint{color:var(--auto-muted);}
  body.theme-vitres .rail-hint{color:var(--vit-muted);}
  .ba-pair{border:1px solid var(--auto-line); border-radius:var(--radius-md); overflow:hidden; background:var(--auto-panel);}
  .ba-pair .ba-imgs{display:grid; grid-template-columns:1fr 1fr;}
  .ba-imgs .media-placeholder{aspect-ratio:1/1; border-radius:0; background:#071F0A; color:var(--auto-muted); font-size:.7rem;}
  .ba-imgs img{aspect-ratio:1/1; object-fit:cover; width:100%; height:100%;}
  .gallery-photo{
    margin:0; border:1px solid var(--auto-line); border-radius:var(--radius-md);
    overflow:hidden; background:var(--auto-panel);
    box-shadow:var(--shadow-sm); transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .gallery-photo:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
  .gallery-photo .photo-frame{display:block; overflow:hidden;}
  .gallery-photo img{width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform .5s var(--ease);}
  .gallery-photo:hover img{transform:scale(1.08);}
  .gallery-photo figcaption{
    padding:12px 16px; font-size:.82rem; color:var(--auto-muted); border-top:1px solid var(--auto-line);
  }
  @media (prefers-reduced-motion:reduce){ .gallery-photo,.gallery-photo img{transition:none;} }
  .ba-pair .ba-label{padding:12px 16px; font-size:.82rem; color:var(--auto-muted); border-top:1px solid var(--auto-line);}
  .video-block{border:1px solid var(--auto-line); border-radius:var(--radius-md); overflow:hidden; background:#000; margin-top:28px;}
  .video-block video{width:100%; aspect-ratio:16/9; background:#000;}
  .video-block figcaption{padding:12px 16px; font-size:.82rem; color:var(--auto-muted); background:var(--auto-panel);}

  .price-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  @media (max-width:980px){ .price-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .price-grid{grid-template-columns:1fr;} }
  .price-card{
    border:1px solid var(--auto-line); border-radius:var(--radius-md); padding:26px 22px;
    background:var(--auto-panel); display:flex; flex-direction:column; gap:14px;
  }
  .price-card h3{font-size:1.05rem; color:var(--auto-text);}
  .price-card .amount{font-family:var(--font-display); font-size:1.6rem; color:var(--auto-accent);}
  .price-card ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; font-size:.84rem; color:var(--auto-muted); flex:1;}
  .price-card li::before{content:"\2713\00a0"; color:var(--auto-green-bright); font-weight:700;}
  .price-note{font-size:.74rem; color:var(--auto-muted);}

  /* ---- Section detailing (polissage & céramique) ---- */
  .detailing-lead{max-width:68ch; color:var(--auto-muted); font-size:.98rem; margin-bottom:18px;}
  .detailing-lieu{
    max-width:68ch; margin-bottom:42px; padding:14px 18px;
    border-left:2px solid var(--auto-accent); border-radius:0 8px 8px 0;
    background:rgba(241,234,217,.05);
    color:var(--auto-muted); font-size:.9rem;
  }

  .benefit-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:48px;}
  @media (max-width:880px){ .benefit-grid{grid-template-columns:1fr;} }
  .benefit{display:flex; flex-direction:column; gap:10px;}
  .benefit-icon{font-size:1.3rem; color:var(--auto-accent);}
  .benefit h3{font-size:1.02rem;}
  .benefit p{font-size:.86rem; color:var(--auto-muted); line-height:1.6;}

  .process-strip{
    display:grid; grid-template-columns:repeat(4,1fr); gap:0;
    border-top:1px solid var(--auto-line); border-bottom:1px solid var(--auto-line);
    margin-bottom:48px;
  }
  @media (max-width:880px){ .process-strip{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .process-strip{grid-template-columns:1fr;} }
  .process-step{display:flex; gap:14px; align-items:flex-start; padding:22px 20px 22px 0;}
  .process-step + .process-step{border-left:1px solid var(--auto-line); padding-left:20px;}
  @media (max-width:880px){ .process-step:nth-child(odd){border-left:none; padding-left:0;} }
  .ps-num{font-family:var(--font-display); font-size:1.05rem; color:var(--auto-accent); flex-shrink:0;}
  .ps-label{display:flex; flex-direction:column; gap:3px; font-size:.86rem; font-weight:600;}
  .ps-label em{font-style:normal; font-size:.76rem; color:var(--auto-muted); font-weight:400;}

  .detail-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:44px;}
  @media (max-width:980px){ .detail-grid{grid-template-columns:1fr;} }
  .detail-card{
    position:relative; border:1px solid var(--auto-line); border-radius:var(--radius-md);
    padding:30px 24px; background:var(--auto-panel); display:flex; flex-direction:column; gap:14px;
    box-shadow:var(--shadow-sm); transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .detail-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
  .detail-featured{border-color:var(--auto-accent);}
  .dc-badge{position:absolute; top:-10px; left:22px;}
  .dc-head{display:flex; flex-direction:column; gap:5px;}
  .dc-head h3{font-size:1.12rem;}
  .dc-duration{font-size:.75rem; color:var(--auto-muted); font-weight:600;}
  .dc-protect{
    font-size:.8rem; color:var(--auto-accent); font-weight:600;
    padding:8px 12px; border-radius:var(--radius-sm); background:rgba(241,234,217,.07);
  }
  .dc-list{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px; font-size:.82rem; color:var(--auto-muted); flex:1;}
  .dc-list li::before{content:"\2713\00a0"; color:var(--auto-green-bright); font-weight:700;}
  .dc-prices{display:flex; flex-direction:column; gap:8px; padding-top:16px; border-top:1px solid var(--auto-line);}
  .dc-prices span{display:flex; justify-content:space-between; align-items:baseline; gap:12px;}
  .dc-prices em{font-style:normal; font-size:.78rem; color:var(--auto-muted);}
  .dc-prices strong{font-family:var(--font-display); font-size:1.12rem; color:var(--auto-accent); font-weight:600; white-space:nowrap;}

  .tarif-cta{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:8px;}

  .detail-options{margin-bottom:40px;}
  .detail-cta{
    border:1px solid var(--auto-line); border-radius:var(--radius-md);
    padding:28px 26px; background:var(--auto-panel);
  }
  .detail-cta p{font-size:.88rem; color:var(--auto-muted); max-width:60ch; margin-bottom:22px;}
  .detail-cta-row{display:flex; gap:12px; flex-wrap:wrap;}

  /* ---- Badge "Populaire" (vert de marque, texte beige) ---- */
  .pop-badge{
    display:inline-flex; align-items:center;
    background:#3B2F1B; color:#E0B96E;
    font-family:var(--font-body); font-size:.7rem; font-weight:700;
    letter-spacing:.05em; text-transform:uppercase;
    padding:4px 11px; border-radius:999px; white-space:nowrap;
  }
  /* Badge posé sur le bord haut d'une carte */
  /* Variantes de pastille : Populaire (défaut), Recommandé, Nouveau, info */
  .badge-reco{background:#1E3A26; color:#8FCFA3;}
  .badge-new{background:#2E2340; color:#C9A7E8;}
  .badge-info{background:#2A2A28; color:#B9B3A5;}

  .tarif-badge, .formule-card .pop-badge{
    position:absolute; top:-10px; left:22px; z-index:1;
  }
  .formule-card{position:relative;}
  /* Badge aligné à la suite d'un libellé */
  .pop-inline{margin-left:8px; font-size:.6rem; padding:3px 9px; vertical-align:middle;}
  .options-list .pop-inline{align-self:flex-start; margin:2px 0 0;}
  body.theme-vitres .pop-badge{background:var(--vit-green); color:var(--vit-bg);}

  /* ---- Grille tarifaire auto ---- */
  .tarif-intro{max-width:64ch; margin-bottom:34px;}
  .tarif-intro p{color:var(--auto-muted); font-size:.94rem;}
  .tarif-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:44px;}
  @media (max-width:940px){ .tarif-grid{grid-template-columns:1fr;} }
  .tarif-grid-2{grid-template-columns:repeat(2,1fr); margin-bottom:18px;}
  @media (max-width:940px){ .tarif-grid-2{grid-template-columns:1fr;} }
  .tarif-duree{
    margin-top:14px; padding-top:14px; border-top:1px solid var(--auto-line);
    font-size:.85rem; font-weight:600; color:var(--auto-muted); letter-spacing:.02em;
  }
  .tarif-note{
    text-align:center; font-size:.9rem; color:var(--auto-muted);
    margin:0 0 44px;
  }
  .tarif-card{
    position:relative; border:1px solid var(--auto-line); border-radius:var(--radius-md);
    padding:28px 24px; background:var(--auto-panel); display:flex; flex-direction:column; gap:16px;
    box-shadow:var(--shadow-sm); transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .tarif-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
  .tarif-featured{border-color:var(--auto-accent);}
  .tarif-card h3{font-size:1.08rem;}

  /* ---- Sélecteur de gabarit au-dessus des packs ---- */
  .gab-switch{
    display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-bottom:26px;
  }
  .gab-btn{
    padding:10px 18px; border-radius:999px; cursor:pointer;
    border:1px solid var(--auto-line); background:transparent;
    color:var(--auto-muted); font-size:.85rem; font-weight:600; font-family:inherit;
    transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);
  }
  .gab-btn:hover{color:var(--auto-text); border-color:var(--auto-accent);}
  .gab-btn.is-on{
    background:var(--auto-accent); border-color:var(--auto-accent);
    color:var(--auto-bg);
  }
  .only-utilitaire{display:none;}
  body.gab-utilitaire .only-utilitaire{display:list-item;}
  .tarif-big{
    font-family:var(--font-display); font-size:2.6rem; line-height:1;
    color:var(--auto-accent); font-weight:600; margin:6px 0 4px;
  }

  .tarif-prices{display:flex; flex-direction:column; gap:8px;}
  .tarif-prices span{display:flex; justify-content:space-between; align-items:baseline; gap:12px;}
  .tarif-prices em{font-style:normal; font-size:.8rem; color:var(--auto-muted);}
  .tarif-prices strong{font-family:var(--font-display); font-size:1.25rem; color:var(--auto-accent); font-weight:600;}
  .tarif-card ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:7px; font-size:.83rem; color:var(--auto-muted);}
  .tarif-card li::before{content:"\2713\00a0"; color:var(--auto-green-bright); font-weight:700;}

  /* ---- Listes d'options ---- */
  .options-wrap{display:grid; grid-template-columns:1fr 1fr; gap:36px; margin-bottom:40px;}
  @media (max-width:860px){ .options-wrap{grid-template-columns:1fr; gap:30px;} }
  .options-title{font-size:1rem; margin-bottom:16px; color:var(--auto-accent);}
  .options-list{margin:0; padding:0; list-style:none; display:flex; flex-direction:column;}
  .options-list li{
    display:flex; justify-content:space-between; align-items:flex-start; gap:16px;
    padding:13px 0; border-bottom:1px solid var(--auto-line); font-size:.88rem;
  }
  .options-list li:last-child{border-bottom:none;}
  .options-list span{display:flex; flex-direction:column; gap:3px;}
  .options-list em{font-style:normal; font-size:.76rem; color:var(--auto-muted); line-height:1.45;}
  .options-list b{white-space:nowrap; color:var(--auto-accent); font-size:.88rem;}
  .supp-block{margin-bottom:40px;}
  .options-inline li{border-bottom:1px dashed var(--auto-line);}


  .review-rail{
    display:flex; gap:20px; overflow-x:auto; padding:4px 4px 18px;
    scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:thin;
  }
  .review-rail > *{flex:0 0 clamp(260px, 33%, 380px); scroll-snap-align:start;}
  @media (max-width:600px){ .review-rail > *{flex:0 0 84%;} }
  .review-rail::-webkit-scrollbar{height:6px;}
  .review-rail::-webkit-scrollbar-thumb{border-radius:999px;}
  body.theme-auto .review-rail{scrollbar-color:var(--auto-line) transparent;}
  body.theme-auto .review-rail::-webkit-scrollbar-thumb{background:var(--auto-line);}
  body.theme-vitres .review-rail{scrollbar-color:var(--vit-line) transparent;}
  body.theme-vitres .review-rail::-webkit-scrollbar-thumb{background:var(--vit-line);}
  .review-rail .review-card{display:flex; flex-direction:column; justify-content:space-between;}

  .review-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:860px){ .review-grid{grid-template-columns:1fr;} }
  .review-card{
    position:relative; margin:0; padding:28px 24px 24px; border-radius:var(--radius-md); font-size:.9rem; border:1px solid;
    box-shadow:var(--shadow-sm); transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .review-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
  .review-card::before{
    content:"\201C"; position:absolute; top:6px; left:18px; font-family:var(--font-display);
    font-size:3rem; line-height:1; opacity:.18; pointer-events:none;
  }
  .review-card footer{margin-top:16px; font-size:.82rem; display:flex; justify-content:space-between;}
  .review-stars{letter-spacing:1px;}
  .review-source{margin-top:22px; font-size:.8rem; text-align:center;}
  body.theme-auto .review-card{border-color:var(--auto-line); background:var(--auto-panel); color:var(--auto-text);}
  body.theme-auto .review-card footer{color:var(--auto-muted);}
  body.theme-auto .review-stars{color:var(--auto-accent);}
  body.theme-auto .review-source{color:var(--auto-muted);}
  body.theme-vitres .review-card{border-color:var(--vit-line); background:var(--vit-panel); color:var(--vit-text);}
  body.theme-vitres .review-card footer{color:var(--vit-muted);}
  body.theme-vitres .review-stars{color:var(--vit-green-dark);}
  body.theme-vitres .review-source{color:var(--vit-muted);}

  .contact-send{display:flex; gap:12px; flex-wrap:wrap; margin-bottom:14px;}

  /* ---- Réservation créneau vitres ---- */
  .vitres-booking{
    margin-top:32px; padding:28px 24px;
    border:1px solid var(--vit-line); border-radius:var(--radius-md); background:var(--vit-panel);
  }
  .vb-head{margin-bottom:20px;}
  .vb-head h3{font-size:1.15rem; margin-bottom:6px; color:var(--vit-text);}
  .vb-head p{font-size:.85rem; color:var(--vit-muted);}
  .vb-intro{max-width:60ch; margin-bottom:10px;}
  #vbRecap{font-weight:600; color:var(--vit-text) !important;}
  body.theme-vitres .calcom-loading{background:var(--vit-bg-alt); border-color:var(--vit-line); color:var(--vit-muted);}
  body.theme-vitres .cal-spinner{border-color:var(--vit-line); border-top-color:var(--vit-green-dark);}
  body.theme-vitres .cal-fallback{border-color:var(--vit-line); background:var(--vit-bg-alt);}
  body.theme-vitres .cal-fallback p{color:var(--vit-muted);}
  #vitresConfirm{margin-top:28px;}

  /* ---- Compteur de fenêtres en hauteur ---- */
  .counter-row{
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:14px 16px; margin-top:10px;
    border:1px solid var(--vit-line); border-radius:var(--radius-sm); background:#fff;
  }
  .counter-text{display:flex; flex-direction:column; gap:4px;}
  .counter-label{font-size:.86rem; font-weight:700; color:var(--vit-text);}
  .counter-help{font-size:.74rem; color:var(--vit-muted); line-height:1.45; max-width:34ch;}
  .counter-ctrl{display:flex; align-items:center; gap:6px; flex-shrink:0;}
  .counter-btn{
    width:34px; height:34px; border-radius:50%; font-size:1.1rem; font-weight:700;
    border:1px solid var(--vit-line); background:#fff; color:var(--vit-green-dark);
    display:flex; align-items:center; justify-content:center;
    transition:background .2s var(--ease);
  }
  .counter-btn:hover{background:rgba(31,92,46,.08);}
  .counter-value{
    min-width:30px; text-align:center; font-family:var(--font-display);
    font-size:1.2rem; color:var(--vit-text);
  }

  /* ---- Bloc résultat ---- */
  .qr-actions{display:flex; flex-direction:column; gap:10px;}
  .qr-disclaimer{font-size:.76rem; line-height:1.5; opacity:.85; margin-bottom:4px;}
  .quote-result .qr-call{border-color:rgba(23,52,42,.35); color:#17342A; text-align:center; text-decoration:none;}

  .quote-step-label{
    display:block; font-size:.72rem; font-weight:700; letter-spacing:.06em;
    text-transform:uppercase; color:var(--vit-green-dark); margin:0 0 10px;
  }
  .slider-row + .one-face-check{margin-top:14px;}
  .quote-step-label:not(:first-child){margin-top:24px;}

  .access-picker{display:grid; grid-template-columns:1fr; gap:8px; margin-bottom:6px;}
  .access-btn{
    display:flex; flex-direction:column; gap:2px; text-align:left;
    padding:12px 15px; border-radius:var(--radius-sm);
    border:1px solid var(--vit-line); background:#fff; color:var(--vit-text);
    transition:border-color .2s var(--ease), background .2s var(--ease);
  }
  .access-btn.selected{border-color:var(--vit-green-dark); background:rgba(31,92,46,.08);}
  .ab-label{font-weight:700; font-size:.86rem;}
  .ab-desc{font-size:.75rem; color:var(--vit-muted);}
  .qr-amount.qr-devis{font-size:1.9rem;}

  .one-face-check{display:flex; align-items:center; gap:8px; font-size:.84rem; font-weight:600; margin:18px 0 14px; color:var(--vit-text);}



  /* Booking stepper (shared skeleton, themed via body class) */
  .booker{border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-lg);}
  body.theme-auto .booker{background:var(--auto-panel); border:1px solid var(--auto-line);}
  body.theme-vitres .booker{background:var(--vit-panel); border:1px solid var(--vit-line);}

  .steps-nav{display:flex; list-style:none; margin:0; padding:0;}
  .steps-nav li{
    flex:1; text-align:center; padding:18px 10px; font-size:.78rem; font-weight:700;
    position:relative; letter-spacing:.01em;
  }
  body.theme-auto .steps-nav{border-bottom:1px solid var(--auto-line);}
  body.theme-auto .steps-nav li{color:var(--auto-muted);}
  body.theme-auto .steps-nav li.active{color:var(--auto-accent);}
  body.theme-auto .steps-nav li.done{color:var(--auto-green-light);}
  body.theme-vitres .steps-nav{border-bottom:1px solid var(--vit-line);}
  body.theme-vitres .steps-nav li{color:var(--vit-muted);}
  body.theme-vitres .steps-nav li.active{color:var(--vit-green-dark);}
  .steps-nav li .num{display:block; font-family:var(--font-display); font-size:1.1rem; margin-bottom:2px;}

  .step-body{padding:36px 32px;}
  .step-body h3{font-size:1.15rem; margin-bottom:6px;}
  .step-body .step-hint{font-size:.85rem; margin-bottom:24px;}
  body.theme-auto .step-body .step-hint{color:var(--auto-muted);}
  body.theme-vitres .step-body .step-hint{color:var(--vit-muted);}

  /* ---- Cartes gabarit véhicule ---- */
  .vehicle-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
  @media (max-width:880px){ .vehicle-grid{grid-template-columns:1fr 1fr;} }
  .vehicle-card{
    position:relative; display:flex; flex-direction:column; align-items:center; gap:6px;
    padding:22px 14px 18px; border-radius:var(--radius-md); background:transparent;
    border:1px solid var(--auto-line); color:var(--auto-text); text-align:center;
    transition:transform .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
  }
  .vehicle-card:hover{transform:translateY(-3px);}
  .vehicle-card.selected{border-color:var(--auto-accent); background:rgba(241,234,217,.07);}
  .vc-art{display:block; width:100%; max-width:130px; margin-bottom:6px;}
  .vc-art svg{width:100%; height:auto; display:block; fill:var(--auto-muted); transition:fill .25s var(--ease);}
  .vc-art svg .win{fill:var(--auto-bg);}
  .vc-art svg .rim{fill:var(--auto-bg);}
  .vehicle-card.selected .vc-art svg{fill:var(--auto-accent);}
  .vc-title{font-weight:700; font-size:.95rem;}
  .vc-models{font-size:.74rem; color:var(--auto-muted); line-height:1.4;}
  .vc-supp{
    position:absolute; top:10px; right:10px; font-size:.68rem; font-weight:700;
    padding:3px 8px; border-radius:999px; background:rgba(241,234,217,.12); color:var(--auto-accent);
  }

  .vehicle-grid-2{grid-template-columns:1fr 1fr !important;}
  @media (max-width:560px){ .vehicle-grid-2{grid-template-columns:1fr !important;} }

  /* ---- Cartes formule ---- */
  .formule-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
  @media (max-width:900px){ .formule-grid{grid-template-columns:1fr;} }
  .formule-card{
    display:flex; flex-direction:column; gap:12px; text-align:left;
    padding:22px 20px; border-radius:var(--radius-md); background:transparent;
    border:1px solid var(--auto-line); color:var(--auto-text);
    transition:transform .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
  }
  .formule-card:hover{transform:translateY(-3px);}
  .fc-duree{font-size:.8rem; font-weight:600; color:var(--auto-muted); letter-spacing:.02em;}
  .formule-card.selected{border-color:var(--auto-accent); background:rgba(241,234,217,.07);}
  .fc-head{display:flex; justify-content:space-between; align-items:baseline; gap:10px;}
  .fc-title{font-weight:700; font-size:.98rem;}
  .fc-price{font-family:var(--font-display); font-size:1.15rem; color:var(--auto-accent); white-space:nowrap;}
  .fc-list{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:6px; font-size:.8rem; color:var(--auto-muted);}
  .fc-list li::before{content:"\2713\00a0"; color:var(--auto-green-bright); font-weight:700;}

  /* ---- Options à cocher ---- */
  .opt-block{margin-bottom:28px;}
  .opt-title{
    display:block; font-size:.76rem; font-weight:700; letter-spacing:.05em;
    color:var(--auto-accent); margin-bottom:12px;
  }
  .opt-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  @media (max-width:760px){ .opt-grid{grid-template-columns:1fr;} }
  .opt-card{
    display:flex; align-items:flex-start; gap:12px; text-align:left;
    padding:14px 16px; border-radius:var(--radius-md); background:transparent;
    border:1px solid var(--auto-line); color:var(--auto-text);
    transition:border-color .2s var(--ease), background .2s var(--ease);
  }
  .opt-card.selected{border-color:var(--auto-accent); background:rgba(241,234,217,.07);}
  .opt-check{
    flex-shrink:0; width:18px; height:18px; border-radius:5px; margin-top:2px;
    border:1.5px solid var(--auto-line); position:relative;
  }
  .opt-card.selected .opt-check{background:var(--auto-accent); border-color:var(--auto-accent);}
  .opt-card.selected .opt-check::after{
    content:"✓"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    color:#0F2A13; font-size:.72rem; font-weight:700;
  }
  .opt-body{display:flex; flex-direction:column; gap:3px; flex:1;}
  .opt-label{font-weight:600; font-size:.88rem; line-height:1.35;}
  .opt-desc{font-size:.75rem; color:var(--auto-muted); line-height:1.45;}
  .opt-price{font-weight:700; font-size:.85rem; color:var(--auto-accent); white-space:nowrap; margin-top:1px;}

  .option-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px;}
  .option-card{
    border-radius:var(--radius-md); padding:18px 16px; text-align:left;
    display:flex; flex-direction:column; gap:6px; background:transparent;
    transition:transform .18s var(--ease);
  }
  .option-card:hover{transform:translateY(-2px);}
  .option-card .oc-title{font-weight:700; font-size:.95rem;}
  .option-card .oc-meta{font-size:.78rem;}
  body.theme-auto .option-card{border:1px solid var(--auto-line); color:var(--auto-text);}
  body.theme-auto .option-card .oc-meta{color:var(--auto-muted);}
  body.theme-auto .option-card.selected{border-color:var(--auto-accent); background:rgba(241,234,217,.10);}
  body.theme-vitres .option-card{border:1px solid var(--vit-line); color:var(--vit-text);}
  body.theme-vitres .option-card .oc-meta{color:var(--vit-muted);}
  body.theme-vitres .option-card.selected{border-color:var(--vit-green-dark); background:rgba(31,92,46,.12);}

  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px;}
  @media (max-width:560px){ .field-row{grid-template-columns:1fr;} }
  .field{display:flex; flex-direction:column; gap:6px;}
  .field label{font-size:.8rem; font-weight:700;}
  .field input,.field select,.field textarea{
    padding:11px 13px; border-radius:var(--radius-sm); font-size:.92rem; font-family:var(--font-body);
  }
  body.theme-auto .field input,body.theme-auto .field select,body.theme-auto .field textarea{
    background:#0D2F12; border:1px solid var(--auto-line); color:var(--auto-text);
  }
  body.theme-vitres .field input,body.theme-vitres .field select,body.theme-vitres .field textarea{
    background:#fff; border:1px solid var(--vit-line); color:var(--vit-text);
  }

  .recap-list{list-style:none; margin:0 0 22px; padding:0; display:flex; flex-direction:column; gap:10px; font-size:.9rem;}
  .recap-list li{display:flex; justify-content:space-between; padding-bottom:10px;}
  body.theme-auto .recap-list li{border-bottom:1px dashed var(--auto-line);}
  body.theme-vitres .recap-list li{border-bottom:1px dashed var(--vit-line);}
  .recap-mini{
    font-size:.86rem; padding:12px 16px; border-radius:var(--radius-sm); margin-bottom:20px;
  }
  body.theme-auto .recap-mini{background:rgba(241,234,217,.07); color:var(--auto-muted); border:1px solid var(--auto-line);}
  .step-acompte{
    margin:14px 0 18px; padding:12px 16px; border-radius:10px;
    border-left:2px solid var(--auto-accent);
    background:rgba(241,234,217,.05);
    color:var(--auto-muted); font-size:.85rem; line-height:1.5;
  }
  body.theme-auto .recap-mini strong{color:var(--auto-accent);}
  /* Hauteur libre : Cal.com redimensionne lui-même son cadre.
     Une hauteur fixe couperait le bas du formulaire (bouton de confirmation). */
  .calcom-wrap{position:relative; min-height:640px;}
  .calcom-embed{min-width:280px; min-height:640px; border-radius:var(--radius-md); overflow:hidden;}
  .calcom-embed iframe{width:100% !important; border:0;}
  /* Champ pré-rempli non modifiable (adresse de l'atelier) */
  .field input[readonly]{
    opacity:.7; cursor:default;
  }

  .cal-launch{
    display:flex; flex-direction:column; gap:14px; align-items:center;
    text-align:center; padding:24px; margin-top:18px;
    border:1px solid var(--auto-line); border-radius:var(--radius-md);
    background:var(--auto-panel);
  }
  .cal-launch-title{font-family:var(--font-display); font-size:1.15rem; color:var(--auto-accent); margin:0;}
  .cal-launch-text{max-width:46ch; color:var(--auto-muted); font-size:.92rem; margin:0 0 6px;}
  .cal-launch .btn{width:100%; max-width:340px;}

  .cal-newtab{
    margin-top:12px; text-align:center; font-size:.85rem; color:var(--auto-muted);
  }
  .cal-newtab a{color:var(--auto-accent); text-decoration:underline;}
  .cal-fallback{
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
    min-height:340px; padding:36px 24px; text-align:center;
    border:1px solid var(--auto-line); border-radius:var(--radius-md); background:var(--auto-panel);
  }
  .cal-fallback p{color:var(--auto-muted); font-size:.9rem;}

  .calcom-loading{
    position:absolute; inset:0; z-index:1; border-radius:var(--radius-md);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
    background:var(--auto-panel); border:1px solid var(--auto-line);
    color:var(--auto-muted); font-size:.86rem;
    transition:opacity .4s var(--ease);
  }
  .calcom-loading.hidden{opacity:0; pointer-events:none;}
  .cal-spinner{
    width:26px; height:26px; border-radius:50%;
    border:2px solid var(--auto-line); border-top-color:var(--auto-accent);
    animation:calSpin .8s linear infinite;
  }
  @keyframes calSpin{to{transform:rotate(360deg);}}
  @media (prefers-reduced-motion:reduce){ .cal-spinner{animation:none;} }

  .recap-total{display:flex; justify-content:space-between; align-items:baseline; margin-top:6px; font-family:var(--font-display); font-size:1.5rem;}
  body.theme-auto .recap-total{color:var(--auto-accent);}
  body.theme-vitres .recap-total{color:var(--vit-green-dark);}

  .step-actions{display:flex; justify-content:space-between; margin-top:30px; gap:12px;}
  .btn{
    padding:12px 24px; border-radius:999px; border:none; font-weight:700; font-size:.85rem;
    transition:opacity .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
  }
  .btn:disabled{opacity:.35; cursor:not-allowed;}
  .btn:not(:disabled):hover{transform:translateY(-2px);}
  .btn:not(:disabled):active{transform:translateY(0);}
  .btn-ghost{background:transparent;}
  body.theme-auto .btn-primary{background:var(--auto-cta); color:#1B1405; font-weight:800; text-decoration:none; box-shadow:0 12px 28px -10px rgba(239,185,63,.55);}
  body.theme-auto .btn-primary:hover{box-shadow:0 16px 34px -8px rgba(239,185,63,.7);}
  body.theme-auto .btn-lg{font-size:1.06rem; padding:19px 38px;}
  body.theme-auto .btn-lg.btn-primary::after{content:"\2192"; margin-left:.65em;}
  .cta-note{margin:14px 0 0; font-size:.86rem; color:var(--auto-muted);}
  body.theme-auto .btn-ghost{border:1px solid var(--auto-line); color:var(--auto-text);}
  body.theme-auto .btn-ghost:hover{background:rgba(241,234,217,.08); border-color:var(--auto-accent);}
  body.theme-vitres .btn-primary{background:var(--vit-green-dark); color:#fff; box-shadow:0 12px 26px -12px rgba(10,42,14,.5);}
  body.theme-vitres .btn-primary:hover{box-shadow:0 16px 32px -10px rgba(10,42,14,.6);}
  body.theme-vitres .btn-ghost{border:1px solid var(--vit-line); color:var(--vit-text);}
  body.theme-vitres .btn-ghost:hover{background:rgba(31,92,46,.08); border-color:var(--vit-green-dark);}

  .confirm-box{
    display:none; text-align:center; padding:60px 32px; flex-direction:column; align-items:center; gap:14px;
  }
  .confirm-box.show{display:flex;}
  .confirm-box .check{
    width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:1.6rem;
  }
  body.theme-auto .confirm-box .check{background:var(--auto-accent); color:#0F2A13;}
  body.theme-vitres .confirm-box .check{background:var(--vit-green-dark); color:#fff;}
  .confirm-box h3{font-size:1.3rem;}
  .confirm-box p{max-width:380px; font-size:.92rem;}
  body.theme-auto .confirm-box p{color:var(--auto-muted);}
  body.theme-vitres .confirm-box p{color:var(--vit-muted);}

  /* ============ VITRES THEME ============ */
  body.theme-vitres{background:var(--vit-bg); color:var(--vit-text);}

  /* Le fond clair est posé sur la page elle-même, pas seulement sur <body> :
     ainsi la page Vitres reste lisible même si la classe de thème n'a pas
     été appliquée (retour arrière, ancre directe, rendu partiel). */
  #page-vitres{background:var(--vit-bg); color:var(--vit-text);}
  #page-vitres h1, #page-vitres h2, #page-vitres h3{color:var(--vit-text);}

  #page-vitres .hero-vitres{
    padding:160px 0 80px;
    background:
      radial-gradient(circle at 85% -10%, rgba(31,92,46,.14) 0%, transparent 55%),
      linear-gradient(180deg, var(--vit-bg-alt) 0%, var(--vit-bg) 70%);
  }
  #page-vitres .hero-vitres .eyebrow{color:var(--vit-green-dark); font-size:.8rem; font-weight:700;}
  #page-vitres .hero-vitres h1{font-size:clamp(2.1rem,4.4vw,3.3rem); margin:16px 0 22px; max-width:640px;}
  #page-vitres .hero-vitres p.lead{color:var(--vit-muted); max-width:500px; font-size:1.02rem;}

  .hero-cta-row{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
  .trust-strip{list-style:none; display:flex; gap:24px; margin:28px 0 0; padding:0; flex-wrap:wrap; font-size:.78rem; font-weight:700;}
  .trust-strip li{display:flex; align-items:center; gap:6px;}
  .trust-strip li::before{content:"✓";}
  body.theme-auto .trust-strip{color:var(--auto-muted);}
  body.theme-auto .trust-strip li::before{color:var(--auto-accent);}
  body.theme-vitres .trust-strip{color:var(--vit-muted);}
  body.theme-vitres .trust-strip li::before{color:var(--vit-green-dark);}
  #page-vitres .section-head .kicker{color:var(--vit-green-dark);}
  #page-vitres .media-placeholder{background:var(--vit-panel); border:1px solid var(--vit-line); color:var(--vit-muted);}
  #page-vitres .about-text p{color:var(--vit-muted); margin-top:16px;}
  #page-vitres .about-text .signoff{margin-top:22px; font-family:var(--font-display); font-size:1.1rem;}
  #page-vitres .section-alt{background:var(--vit-bg-alt);}
  #page-vitres .video-block{border:1px solid var(--vit-line); border-radius:var(--radius-md); overflow:hidden; background:#000; margin-top:28px;}
  #page-vitres .video-block video{width:100%; aspect-ratio:16/9;}
  #page-vitres .video-block figcaption{padding:12px 16px; font-size:.82rem; color:var(--vit-muted); background:var(--vit-panel);}

  /* Quote calculator */
  .quote-tool{
    display:grid; grid-template-columns:1.2fr 1fr; gap:0; border-radius:var(--radius-md); overflow:hidden;
    border:1px solid var(--vit-line); background:var(--vit-panel); box-shadow:var(--shadow-lg);
  }
  @media (max-width:820px){ .quote-tool{grid-template-columns:1fr;} }
  .quote-inputs{padding:36px 34px;}
  .quote-result{
    padding:36px 34px; background:var(--vit-green); color:#F1EAD9;
    display:flex; flex-direction:column; justify-content:space-between;
  }
  .surface-picker{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:26px;}
  @media (max-width:480px){ .surface-picker{grid-template-columns:1fr;} }
  .surface-btn{
    padding:14px 10px; border-radius:var(--radius-sm); border:1px solid var(--vit-line);
    background:#fff; font-size:.82rem; font-weight:700; text-align:center; color:var(--vit-text);
  }
  .surface-btn.selected{border-color:var(--vit-green-dark); background:rgba(31,92,46,.14);}
  .slider-row{margin-bottom:8px;}
  .slider-row label{display:flex; justify-content:space-between; font-size:.85rem; font-weight:700; margin-bottom:10px;}
  .slider-row input[type=range]{width:100%; accent-color:var(--vit-green-dark);}
  .quote-note{font-size:.78rem; color:var(--vit-muted); margin-top:18px;}
  body.theme-auto .quote-note{color:var(--auto-muted);}
  .quote-result .qr-label{font-size:.8rem; font-weight:700; opacity:.75; margin-bottom:6px;}
  .quote-result .qr-amount{font-family:var(--font-display); font-size:2.6rem; margin-bottom:4px;}
  .quote-result .qr-apres{
    display:block; font-family:var(--font-body); font-size:.95rem;
    font-weight:500; opacity:.9; margin-top:2px;
  }
  .quote-result .qr-apres strong{font-weight:700;}
  .quote-result .qr-detail{font-size:.82rem; opacity:.85; margin-bottom:26px;}
  .quote-result .btn-primary{background:#0A2A0E; color:#F1EAD9;}

  /* ---- Section crédit d'impôt ----
     Fond et couleurs posés explicitement : la section reste lisible même si
     le thème clair n'est pas encore appliqué au moment du rendu. */
  #vitres-credit{background:var(--vit-bg); color:var(--vit-text);}
  #vitres-credit .section-head .kicker{color:var(--vit-green);}
  #vitres-credit .section-head h2{color:var(--vit-text);}
  .ci-wrap{max-width:900px; margin:0 auto;}
  .ci-lead{font-size:1rem; color:var(--vit-text); max-width:68ch; margin-bottom:22px;}
  .ci-highlight{
    font-family:var(--font-display); font-size:1.3rem; line-height:1.4;
    padding:20px 24px; border-radius:var(--radius-md);
    background:var(--vit-green-dark);
    border:1px solid var(--vit-green-dark);
    margin-bottom:30px;
  }
  #page-vitres .ci-highlight{color:#F1EAD9;}
  .ci-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-bottom:26px;}
  @media (max-width:860px){ .ci-grid{grid-template-columns:1fr;} }
  .ci-card{
    padding:22px; border-radius:var(--radius-md);
    border:1px solid var(--vit-line); background:var(--vit-panel);
    box-shadow:var(--shadow-sm); transition:transform .3s var(--ease), box-shadow .3s var(--ease);
  }
  .ci-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
  .ci-card h3{font-size:1rem; margin-bottom:10px; color:var(--vit-green-dark);}
  .ci-card p{font-size:.9rem; color:var(--vit-text); line-height:1.6;}
  .ci-card a{color:var(--vit-green); font-weight:600; text-decoration:underline;}
  .abo-seuil{font-size:.78rem; opacity:.85; margin-top:-6px;}
  .ci-cta{display:flex; justify-content:center; margin-bottom:26px;}
  #page-vitres .lead-ci{margin-top:14px;}
  .ci-note{font-size:.8rem; color:var(--vit-muted); line-height:1.65;}

  .contact-block{border-top:1px solid var(--vit-line);}
  body.theme-auto .contact-block{border-top:1px solid var(--auto-line);}

  .site-foot{
    text-align:center; padding:48px 24px 28px; font-size:.85rem;
  }
  .foot-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:28px; text-align:left;
    max-width:1120px; margin:0 auto 28px; padding-bottom:28px; border-bottom:1px solid;
  }
  @media (max-width:700px){ .foot-grid{grid-template-columns:1fr; text-align:center;} }
  .foot-grid strong{display:block; font-family:var(--font-display); font-size:1.02rem; margin-bottom:8px; font-weight:600;}
  .foot-grid p{font-size:.85rem; line-height:1.7;}
  .foot-grid a{text-decoration:none; font-weight:600;}
  .foot-grid a:hover{text-decoration:underline;}
  .foot-legal{font-size:.75rem; opacity:.75;}
  body.theme-auto .site-foot{color:var(--auto-muted); background:var(--auto-bg-alt);}
  body.theme-auto .foot-grid{border-color:var(--auto-line);}
  body.theme-auto .foot-grid strong{color:var(--auto-text);}
  body.theme-auto .foot-grid a{color:var(--auto-accent);}
  body.theme-vitres .site-foot{color:var(--vit-muted); background:var(--vit-bg-alt);}
  body.theme-vitres .foot-grid{border-color:var(--vit-line);}
  body.theme-vitres .foot-grid strong{color:var(--vit-text);}
  body.theme-vitres .foot-grid a{color:var(--vit-green-dark);}

  /* ---- Lien croisé entre les deux pages de service ---- */
  .cross-link{padding:60px 0;}
  .cross-card{
    display:flex; flex-direction:column; align-items:center; gap:16px;
    text-align:center; max-width:640px; margin:0 auto;
    padding:30px 26px; border-radius:var(--radius-md);
  }
  body.theme-auto .cross-card{border:1px solid var(--auto-line); background:var(--auto-panel);}
  body.theme-vitres .cross-card{border:1px solid var(--vit-line); background:var(--vit-panel);}
  .cross-card p{font-size:.95rem; margin:0; max-width:52ch;}

  .review-star-off{opacity:.3;}

  /* ---- Bandeau de consentement aux cookies (affiché uniquement si le suivi est activé) ---- */
  .cookie-banner{
    position:fixed; left:12px; right:12px; bottom:12px; z-index:180;
    max-width:560px; margin:0 auto; padding:16px 18px;
    background:#F1EAD9; color:#10281A; border:1px solid #BFB08A; border-radius:16px;
    box-shadow:0 14px 44px rgba(0,0,0,.4); font-size:.85rem; line-height:1.5;
  }
  .cookie-banner p{margin:0 0 12px;}
  .cookie-banner a{color:#1F5C2E; font-weight:700; text-decoration:underline;}
  .cookie-actions{display:flex; gap:10px;}
  .cookie-actions button{
    flex:1; min-height:44px; padding:10px 14px; border-radius:999px; cursor:pointer;
    font:inherit; font-weight:700; border:2px solid #1F5C2E;
  }
  .ck-refuse{background:transparent; color:#1F5C2E;}
  .ck-accept{background:#1F5C2E; color:#F1EAD9;}
  .cookie-banner button:focus-visible,.cookie-banner a:focus-visible{outline:3px solid #7DBE8B; outline-offset:2px;}

  /* ---- Bouton « Réserver » flottant (page auto) : visible après le haut de page, masqué sur la réservation ---- */
  .float-cta{
    position:fixed; right:96px; bottom:24px; z-index:110;
    display:inline-flex; align-items:center; justify-content:center; gap:.55em;
    background:var(--auto-cta); color:#1B1405; font-weight:800; font-size:1rem;
    padding:16px 28px; border-radius:999px; text-decoration:none;
    box-shadow:0 12px 34px rgba(0,0,0,.5), 0 0 0 1px rgba(239,185,63,.65);
    opacity:0; transform:translateY(16px); pointer-events:none;
    transition:opacity .25s var(--ease), transform .25s var(--ease);
  }
  .float-cta.show{opacity:1; transform:none; pointer-events:auto;}
  .float-cta:hover{transform:translateY(-2px);}
  .float-cta:focus-visible{outline:3px solid #fff; outline-offset:3px;}
  .float-cta .fc-short{display:none;}
  @media (max-width:640px){
    .float-cta{left:auto; right:84px; bottom:20px; padding:12px 20px; font-size:.92rem; box-shadow:0 8px 22px rgba(0,0,0,.5), 0 0 0 1px rgba(239,185,63,.65);}
    .float-cta .fc-long{display:none;}
    .float-cta .fc-short{display:inline;}
    body.theme-auto .btn-lg{font-size:1rem; padding:15px 26px;}
  }

  /* ---- Tarifs et réservation : plus de contraste (charbon + crème + ambre, le vert en simple touche) ---- */
  body.theme-auto #auto-booking{background:var(--auto-bg);}
  body.theme-auto .tarif-card,
  body.theme-auto .formule-card,
  body.theme-auto .opt-card,
  body.theme-auto .vehicle-card{background:#1A211B; border:1px solid #5A6E5E;}
  body.theme-auto .tarif-card{box-shadow:0 10px 30px rgba(0,0,0,.45);}
  body.theme-auto .tarif-featured{border-color:#5A6E5E;}
  body.theme-auto .tarif-card .tarif-badge,
  body.theme-auto .formule-card .pop-badge{background:var(--auto-cta); color:#1B1405; font-weight:800;}
  body.theme-auto .booker{background:#0F130F; border:1px solid #5A6E5E; box-shadow:0 24px 60px rgba(0,0,0,.55);}
  body.theme-auto .steps-nav{background:#161C17; border-bottom:1px solid #3A463C;}
  body.theme-auto .steps-nav li{color:#9AA79A;}
  body.theme-auto .steps-nav li.active{color:var(--auto-cta);}
  body.theme-auto .steps-nav li.active::after{content:""; position:absolute; left:12px; right:12px; bottom:-1px; height:3px; border-radius:3px; background:var(--auto-cta);}
  body.theme-auto .steps-nav li.done{color:var(--auto-green-bright);}
  body.theme-auto .vehicle-card.selected,
  body.theme-auto .formule-card.selected,
  body.theme-auto .opt-card.selected{border-color:var(--auto-cta); background:rgba(239,185,63,.11); box-shadow:inset 0 0 0 1px var(--auto-cta);}
  body.theme-auto .vehicle-card.selected .vc-art svg{fill:var(--auto-cta);}
  body.theme-auto .opt-check{border-color:#9AA79A;}
  body.theme-auto .opt-card.selected .opt-check{background:var(--auto-cta); border-color:var(--auto-cta);}
  body.theme-auto .opt-card.selected .opt-check::after{color:#1B1405;}
  body.theme-auto .fc-price,
  body.theme-auto .opt-price,
  body.theme-auto .opt-title{color:var(--auto-cta);}
  body.theme-auto .vc-supp{background:rgba(239,185,63,.16); color:var(--auto-cta);}
  body.theme-auto .recap-total,
  body.theme-auto .recap-mini strong{color:var(--auto-cta);}
  body.theme-auto .gab-btn{border-color:#5A6E5E; color:#D3DBD0;}
  body.theme-auto .gab-btn:hover{border-color:var(--auto-cta); color:#fff;}
  body.theme-auto .gab-btn.is-on{background:var(--auto-cta); border-color:var(--auto-cta); color:#1B1405; font-weight:800;}
