:root {
  /* Marque — valeurs exactes §4.1 */
  --green:  #3DA935;
  --blue:   #1C3F94;
  --amber:  #F4B616;
  --ink:    #1F2A2E;
  --grey:   #5B6770;
  --paper:  #F6F8F5;
  --white:  #FFFFFF;

  /* Échelles dérivées — color-mix oklab déterministe */
  --green-50:  color-mix(in oklab, var(--green) 8%,  white);
  --green-100: color-mix(in oklab, var(--green) 16%, white);
  --green-200: color-mix(in oklab, var(--green) 32%, white);
  --green-300: color-mix(in oklab, var(--green) 52%, white);
  --green-400: color-mix(in oklab, var(--green) 76%, white);
  --green-500: var(--green);
  --green-600: color-mix(in oklab, var(--green) 84%, black);
  --green-700: color-mix(in oklab, var(--green) 68%, black);
  --green-800: color-mix(in oklab, var(--green) 52%, black);
  --green-900: color-mix(in oklab, var(--green) 38%, black);

  --blue-50:  color-mix(in oklab, var(--blue) 7%,  white);
  --blue-100: color-mix(in oklab, var(--blue) 14%, white);
  --blue-200: color-mix(in oklab, var(--blue) 28%, white);
  --blue-300: color-mix(in oklab, var(--blue) 46%, white);
  --blue-400: color-mix(in oklab, var(--blue) 72%, white);
  --blue-500: var(--blue);
  --blue-600: color-mix(in oklab, var(--blue) 86%, black);
  --blue-700: color-mix(in oklab, var(--blue) 70%, black);
  --blue-800: color-mix(in oklab, var(--blue) 55%, black);
  --blue-900: color-mix(in oklab, var(--blue) 42%, black);

  --amber-50:  color-mix(in oklab, var(--amber) 12%, white);
  --amber-100: color-mix(in oklab, var(--amber) 24%, white);
  --amber-200: color-mix(in oklab, var(--amber) 44%, white);
  --amber-300: color-mix(in oklab, var(--amber) 66%, white);
  --amber-400: color-mix(in oklab, var(--amber) 84%, white);
  --amber-500: var(--amber);
  --amber-600: color-mix(in oklab, var(--amber) 86%, black);
  --amber-700: color-mix(in oklab, var(--amber) 70%, black);

  --n-0:   var(--white);
  --n-50:  var(--paper);
  --n-100: color-mix(in oklab, var(--ink) 5%,  white);
  --n-200: color-mix(in oklab, var(--ink) 11%, white);
  --n-300: color-mix(in oklab, var(--ink) 20%, white);
  --n-400: color-mix(in oklab, var(--ink) 38%, white);
  --n-500: var(--grey);
  --n-700: color-mix(in oklab, var(--ink) 78%, white);
  --n-900: var(--ink);

  /* Sémantique */
  --bg: var(--paper);
  --surface: var(--white);
  --fg: var(--ink);
  --muted: var(--grey);
  --border: color-mix(in oklab, var(--ink) 13%, white);
  --border-strong: color-mix(in oklab, var(--ink) 24%, white);
  --primary: var(--green-500);
  --primary-ink: var(--green-700);
  --trust: var(--blue-500);
  --accent: var(--amber-500);
  --success: var(--green-600);
  --danger: #C02626;

  /* Typo — base validée : titres Archivo (grotesque), texte Inter.
     Archivo retombe sur Sora si la page ne charge pas la fonte. */
  --font-display: 'Archivo', 'Sora', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --font-mono:    ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  /* Espacement — base 4px */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;
  --space-12: 48px; --space-16: 64px; --space-20: 80px; --space-24: 96px;

  /* Rayons — base validée : angles nets (éditorial) */
  --radius-sm: 3px;
  --radius-md: 5px;
  --radius-lg: 7px;
  --radius-xl: 10px;
  --radius-pill: 999px;

  /* Élévation */
  --shadow-sm: 0 1px 2px rgba(31,42,46,.06), 0 1px 1px rgba(31,42,46,.04);
  --shadow-md: 0 4px 16px rgba(31,42,46,.07), 0 1px 3px rgba(31,42,46,.05);
  --shadow-lg: 0 16px 40px rgba(31,42,46,.10), 0 2px 8px rgba(31,42,46,.06);
  --shadow-focus: 0 0 0 3px color-mix(in oklab, var(--green) 35%, transparent);

  /* Layout */
  --maxw: 1240px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--fg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-size:16px;
}
h1,h2,h3,h4,h5{
  font-family:var(--font-display);
  line-height:1.12;
  letter-spacing:-.02em;
  color:var(--ink);
  font-weight:800;
}
p{color:var(--n-700)}
a{color:var(--primary-ink);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:0;background:none}
:focus-visible{outline:none;box-shadow:var(--shadow-focus);border-radius:var(--radius-sm)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.section{padding:96px 0;position:relative}
.section--alt{background:var(--white)}
.section--ink{background:var(--ink);color:#fff}
.section--ink h2,.section--ink h3{color:#fff}
.section__head{margin-bottom:48px}
.kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--primary);margin-bottom:14px
}
.kicker::before{content:"";width:24px;height:2px;background:var(--primary);border-radius:2px}
.kicker--blue{color:var(--blue-700)}
.kicker--blue::before{background:var(--blue)}
.btn{
  font-family:var(--font-body);
  font-weight:600;font-size:15px;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 24px;border-radius:var(--radius-sm);
  border:1.5px solid transparent;
  transition:background .15s,border-color .15s,color .15s,transform .08s,box-shadow .15s;
  text-decoration:none;cursor:pointer;white-space:nowrap;
}
.btn:hover{text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn svg{width:18px;height:18px}
.btn--primary{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 14px color-mix(in oklab,var(--green) 35%,transparent)}
.btn--primary:hover{background:var(--green-600);border-color:var(--green-600)}
.btn--secondary{background:transparent;color:var(--blue);border-color:var(--blue)}
.btn--secondary:hover{background:var(--blue-50)}
.btn--ghost{background:var(--white);color:var(--ink);border-color:var(--border)}
.btn--ghost:hover{background:var(--paper);border-color:var(--border-strong)}
.btn--amber{background:var(--accent);color:var(--ink);border-color:var(--accent)}
.btn--amber:hover{background:var(--amber-600)}
.btn--lg{font-size:16.5px;padding:18px 30px}
.btn--sm{font-size:13.5px;padding:10px 16px}
.btn--link{padding:0;color:var(--primary);background:none;border:0;font-weight:600;gap:6px}
.btn--link:hover{color:var(--green-800);text-decoration:underline}
.trust-row{display:flex;flex-wrap:wrap;gap:10px}
.trust{
  display:inline-flex;align-items:center;gap:9px;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-pill);padding:8px 14px;
  font-size:12.5px;font-weight:600;color:var(--ink);
  box-shadow:var(--shadow-sm);
}
.trust svg{width:16px;height:16px;color:var(--blue);flex:none}
.trust--inverse{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff}
.trust--inverse svg{color:var(--amber)}
.tag{
  display:inline-flex;align-items:center;gap:6px;
  font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:5px 11px;border-radius:var(--radius-pill);
  width:fit-content;
}
.tag--green{background:var(--green-50);color:var(--green-700);border:1px solid var(--green-200)}
.tag--blue{background:var(--blue-50);color:var(--blue-700);border:1px solid var(--blue-200)}
.tag--amber{background:var(--amber-50);color:var(--amber-700);border:1px solid var(--amber-200)}
.tag--ink{background:var(--n-100);color:var(--ink);border:1px solid var(--border)}
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .15s,box-shadow .15s,border-color .15s;
  display:flex;flex-direction:column;
}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.card__body{padding:24px;display:flex;flex-direction:column;gap:10px;flex:1}
.ph{
  position:relative;
  background:
    repeating-linear-gradient(135deg,
      color-mix(in oklab,var(--blue) 6%,white) 0 14px,
      color-mix(in oklab,var(--blue) 9%,white) 14px 28px);
  display:flex;align-items:center;justify-content:center;
  color:var(--blue-700);
}
.ph::after{
  content:attr(data-label);
  font-family:var(--font-mono);font-size:12px;font-weight:500;
  background:rgba(255,255,255,.85);
  border:1px solid color-mix(in oklab,var(--blue) 18%,white);
  padding:4px 10px;border-radius:6px;
  letter-spacing:.02em;
}
.ph--inv{
  background:
    repeating-linear-gradient(135deg,
      color-mix(in oklab,var(--green) 8%,white) 0 14px,
      color-mix(in oklab,var(--green) 12%,white) 14px 28px);
}
.ph--inv::after{color:var(--green-700);border-color:color-mix(in oklab,var(--green) 22%,white)}
.header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--border);
}
.header__inner{
  display:flex;align-items:center;justify-content:space-between;
  height:78px;gap:32px;
  max-width:var(--maxw);margin:0 auto;padding:0 32px;
}
.header__brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.header__brand img{height:60px;width:auto;display:block}
.header__brand-text{display:none}
.header__nav{display:flex;align-items:center;gap:24px;font-size:14.5px;font-weight:500;white-space:nowrap}
.header__nav a{color:var(--ink);text-decoration:none;position:relative;padding:6px 0}
.header__nav .nav-link:hover{color:var(--primary-ink)}
.header__nav .nav-link:hover::after{
  content:"";position:absolute;bottom:0;left:0;right:0;
  height:2px;background:var(--primary);border-radius:2px;
}
.header__cta{display:flex;align-items:center;gap:12px}
.header__tel{
  display:inline-flex;align-items:center;gap:8px;
  color:var(--blue);font-weight:600;font-size:14px;
}
.header__tel svg{width:16px;height:16px}
.header__cta .btn--sm{padding:11px 18px;font-size:14px;line-height:22px;border-width:1px}
.header__nav .mega-row:hover .mega-row__chev,
.header__nav .dropdown a:hover .dd-chev{transform:translateX(5px);color:var(--primary)}
.wp-block-ecothib-chero .btn--amber-on-dark{color:var(--paper)}
.rank-math-breadcrumb{background:var(--paper);border-bottom:1px solid var(--border);font-size:13px}
.rank-math-breadcrumb p{max-width:var(--maxw);margin:0 auto;padding:13px 32px;display:flex;flex-wrap:wrap;gap:9px;align-items:center;color:var(--muted)}
.rank-math-breadcrumb a{color:var(--muted);text-decoration:none}
.rank-math-breadcrumb a:hover{color:var(--primary-ink)}
.rank-math-breadcrumb .separator{color:var(--n-300)}
.rank-math-breadcrumb .last{color:var(--ink);font-weight:600}
.footer{
  background:var(--ink);color:#aab4b1;padding:80px 0 32px;font-size:14px;
}
.footer h4{color:#fff;font-size:14px;font-family:var(--font-body);font-weight:700;
  text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px}
.footer__grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:48px;
  padding-bottom:48px;border-bottom:1px solid #333d3a}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer a{color:#aab4b1;text-decoration:none}
.footer a:hover{color:#fff}
.footer__brand img{height:48px;width:auto;background:#fff;padding:8px 12px;border-radius:8px;margin-bottom:18px}
.footer__brand p{color:#aab4b1;line-height:1.6;max-width:38ch}
.footer__bottom{padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:12.5px;color:#6f7c79}
.nav-burger{
  display:none; /* masqué sur desktop, visible dans @media ≤960 */
  flex-direction:column;justify-content:center;align-items:center;
  gap:5px;width:40px;height:40px;padding:8px;
  border-radius:var(--radius-sm);border:1.5px solid var(--border);
  background:var(--white);color:var(--ink);cursor:pointer;
  transition:background .15s,border-color .15s;flex-shrink:0;
}
.nav-burger:hover{background:var(--paper);border-color:var(--border-strong)}
.nav-burger span{
  display:block;width:18px;height:1.75px;
  background:currentColor;border-radius:2px;
  transition:transform .28s,opacity .28s;
}
html.nav-is-open .nav-burger span:nth-child(1){transform:translateY(6.75px) rotate(45deg)}
html.nav-is-open .nav-burger span:nth-child(2){opacity:0;transform:scaleX(0)}
html.nav-is-open .nav-burger span:nth-child(3){transform:translateY(-6.75px) rotate(-45deg)}
.nav-drawer{
  display:none; /* caché sur desktop; affiché via @media ≤960 */
}
@media (max-width:1160px){
  /* spécificité .header pour battre un .header__nav{display:flex} inline mergé après */
  .header .header__nav{display:none}

  /* Burger visible sur mobile */
  .header .nav-burger{display:inline-flex}

  /* Bouton « Simuler » masqué (présent dans le drawer) ; on garde le tél. */
  .header .header__cta .btn{display:none}

  /* ——— Drawer ——— */
  .nav-drawer{
    display:block;
    position:fixed;inset:0;z-index:200;
    /* Fermé : l'overlay plein écran ne doit PAS capter les taps (sinon il intercepte
       le clic sur le burger qui est sous lui). On réactive les events à l'ouverture. */
    pointer-events:none;
  }
  html.nav-is-open .nav-drawer{pointer-events:auto}

  /* Backdrop foncé */
  .nav-drawer__backdrop{
    position:absolute;inset:0;
    background:rgba(0,0,0,.52);
    opacity:0;visibility:hidden;
    transition:opacity .28s,visibility .28s;
  }

  /* Panneau glissant depuis la droite */
  .nav-drawer__panel{
    position:absolute;top:0;right:0;bottom:0;
    width:min(86vw,360px);
    background:var(--white);
    transform:translateX(100%);
    transition:transform .28s cubic-bezier(.4,0,.2,1);
    display:flex;flex-direction:column;
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    box-shadow:-4px 0 24px rgba(0,0,0,.12);
    z-index:1; /* au-dessus du backdrop */
  }

  /* État ouvert — classe portée par <html> */
  html.nav-is-open .nav-drawer__backdrop{opacity:1;visibility:visible}
  html.nav-is-open .nav-drawer__panel{transform:translateX(0)}
  /* Bloquer le scroll body */
  html.nav-is-open{overflow:hidden}

  /* En-tête du drawer */
  .nav-drawer__header{
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0;
  }
  .nav-drawer__brand img{height:44px;width:auto;display:block}
  .nav-drawer__close{
    display:inline-flex;align-items:center;justify-content:center;
    width:36px;height:36px;border-radius:var(--radius-sm);
    border:1.5px solid var(--border);background:var(--white);color:var(--ink);
    cursor:pointer;transition:background .15s,border-color .15s;flex-shrink:0;
  }
  .nav-drawer__close:hover{background:var(--paper);border-color:var(--border-strong)}

  /* Zone de navigation scrollable */
  .nav-drawer__nav{flex:1;overflow-y:auto;padding:8px 0}

  /* Liste principale */
  .nav-drawer__list{list-style:none;margin:0;padding:0}

  /* Chaque item */
  .nav-drawer__item{border-bottom:1px solid var(--border)}
  .nav-drawer__item:last-child{border-bottom:0}

  /* Lien feuille */
  .nav-drawer__link{
    display:block;padding:14px 20px;
    font-size:15px;font-weight:500;color:var(--ink);
    text-decoration:none;transition:color .15s,background .15s;
  }
  .nav-drawer__link:hover{color:var(--primary-ink);background:var(--paper);text-decoration:none}
  .nav-drawer__link--parent{
    font-size:13px;font-weight:600;color:var(--primary-ink);
    border-bottom:1px solid var(--border);
  }

  /* Bouton accordéon */
  .nav-drawer__toggle{
    display:flex;align-items:center;justify-content:space-between;
    width:100%;padding:14px 20px;
    font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--ink);
    background:none;border:0;cursor:pointer;text-align:left;
    transition:color .15s,background .15s;
  }
  .nav-drawer__toggle:hover{color:var(--primary-ink);background:var(--paper)}
  .nav-drawer__chev{
    width:16px;height:16px;flex-shrink:0;color:var(--muted);
    transition:transform .25s;
  }
  .nav-drawer__toggle[aria-expanded="true"] .nav-drawer__chev{transform:rotate(180deg)}

  /* Sous-liste accordion */
  .nav-drawer__sub{
    list-style:none;margin:0;padding:0;
    max-height:0;overflow:hidden;
    transition:max-height .28s cubic-bezier(.4,0,.2,1);
    background:var(--paper);
  }
  .nav-drawer__item--has-children.is-open .nav-drawer__sub{
    max-height:600px; /* valeur suffisamment grande pour tous les menus */
  }
  .nav-drawer__sub-item{border-top:1px solid var(--border)}

  /* Pied du drawer (CTA) */
  .nav-drawer__footer{
    padding:20px;border-top:1px solid var(--border);
    display:flex;flex-direction:column;gap:12px;flex-shrink:0;
  }
  .nav-drawer__tel{
    display:inline-flex;align-items:center;gap:8px;
    color:var(--blue);font-weight:600;font-size:14px;text-decoration:none;
  }
  .nav-drawer__tel:hover{text-decoration:underline}
  .nav-drawer__footer .btn{width:100%;justify-content:center}
}

@media (max-width:600px){
  .wrap{padding:0 16px}
  .section{padding:44px 0}
  .footer__grid{grid-template-columns:1fr}
}
.footer-zones{padding-top:32px}
.footer-zones__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px 32px;margin-top:18px}
.footer-zones__label{display:block;font-size:11.5px;font-weight:700;letter-spacing:.04em;color:var(--ink);margin-bottom:10px}
.footer-zones__col ul{list-style:none;display:flex;flex-direction:column;gap:7px;margin:0;padding:0}
.footer-zones__col a{color:var(--muted);font-size:12.5px;text-decoration:none;transition:color .15s}
.footer-zones__col a:hover{color:var(--primary-ink)}
.footer-zones__note{margin-top:22px;font-size:12px;color:var(--muted)}
@media (max-width:760px){.footer-zones__grid{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.footer-zones__grid{grid-template-columns:1fr}}
.cta-form{flex:none;width:448px;background:#fff;border-radius:var(--radius-lg);
  padding:26px;box-shadow:0 26px 64px -22px rgba(0,0,0,.6)}
.cta-form__title{font-family:var(--font-display);font-weight:800;font-size:19px;
  color:var(--ink);letter-spacing:-.01em;margin-bottom:16px}
.cta-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-bottom:13px}
.cta-field{display:flex;flex-direction:column;gap:6px}
.cta-field--full{grid-column:1/-1}
.cta-field>span{font-size:12px;font-weight:600;color:var(--muted)}
.cta-field input,.cta-field select,.cta-field textarea{
  font-family:var(--font-body);font-size:14px;color:var(--ink);
  background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:11px 13px;width:100%;outline:none;transition:border-color .15s,box-shadow .15s}
.cta-field input:focus,.cta-field select:focus,.cta-field textarea:focus{
  border-color:var(--green);box-shadow:0 0 0 3px color-mix(in oklab,var(--green) 18%,transparent)}
.cta-field textarea{resize:vertical;min-height:60px}
.cta-form .btn{width:100%;margin-top:3px}
.cta-form__note{font-size:11.5px;color:var(--muted);text-align:center;line-height:1.5;margin-top:12px}
.cta-form__note a{color:var(--primary-ink);font-weight:600;text-decoration:none}
.cta-form__done{display:none;flex-direction:column;align-items:center;text-align:center;
  gap:8px;padding:28px 16px}
.cta-form__done svg{width:48px;height:48px;color:var(--green);margin-bottom:4px}
.cta-form__done b{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--ink)}
.cta-form__done span{font-size:14px;color:var(--muted);line-height:1.5;max-width:30ch}
.cta-form.is-sent .cta-form__fields{display:none}
.cta-form.is-sent .cta-form__done{display:flex}
@media (max-width:880px){.cta-form{width:100%}}
@media (max-width:960px){
  /* Grilles 2-col → 1-col */
  html .simu-grid{grid-template-columns:1fr;gap:32px}
  html .shero__grid{grid-template-columns:1fr;gap:40px}
  /* .simu-wrap doit garder overflow:hidden sur mobile : son décor ::before
     (cercle radial top:-100px;right:-100px;width:400px) et le contenu interne
     débordent du conteneur sinon, et le border-radius n'est plus respecté. */
  html .simu-wrap{overflow:hidden}
  /* La vcard absolue déborde quand empilée → on la remet dans le flux */
  html .shero__vcard{
    position:static;left:auto;right:auto;bottom:auto;
    margin:24px 0 0;min-width:0;width:100%;
  }
  /* .process 4-col → 2-col */
  html .process{grid-template-columns:1fr 1fr}
  /* Grilles 2-col asymétriques (média + texte) → 1-col */
  html .chero__inner{grid-template-columns:1fr}
  html .def__grid{grid-template-columns:1fr}
  html .local-split{grid-template-columns:1fr}
  html .story__grid{grid-template-columns:1fr}
  html .plus__grid{grid-template-columns:1fr}
  html .roi{grid-template-columns:1fr}
  html .proof-local{grid-template-columns:1fr}
  html .aides{grid-template-columns:1fr}
  /* .proof = bento « Réalisations » (carte featured + colonne) ; .why = bloc
     média+texte. Tous deux 2-col asymétriques → 1-col. */
  html .proof{grid-template-columns:1fr}
  html .why{grid-template-columns:1fr}

  /* Footer 4-col → 2-col + sections plus compactes (≤960, hors header). */
  .footer__grid{grid-template-columns:1fr 1fr;gap:32px}
  .section{padding:64px 0}

  /* SIMULATEUR : le padding de 64px (×2 = 128px) reste en place une fois en
     1-col et fait déborder le panneau. On le réduit pour mobile. */
  html .simu-grid{padding:40px 24px}
  html .simu-panel{padding:24px}

  /* SUB-NAV (sommaire sticky) : déborde sur mobile.
     - padding latéral 32px → 16px (trop large sinon) ;
     - .subnav__links est scrollable (overflow-x:auto) mais justify-content:center
       rend les 1ers liens inatteignables au scroll quand ça déborde → flex-start ;
     - min-width:0 pour que le conteneur flex puisse rétrécir et ne pousse pas
       la page au-delà du viewport. */
  html .subnav__inner{padding:0 16px}
  html .subnav__links{justify-content:flex-start;min-width:0}
}
@media (max-width:768px){
  /* .solutions-grid 3-col → 2-col */
  html .solutions-grid{grid-template-columns:1fr 1fr}
  /* .coords 3-col → 1-col (l'override @860 inline est mort, cf. Cluster C) */
  html .coords{grid-template-columns:1fr;gap:14px}
  /* Grilles 2-col symétriques (1fr 1fr) → 1-col */
  html .entree__grid{grid-template-columns:1fr}
  html .models{grid-template-columns:1fr}
  html .stakes{grid-template-columns:1fr}
  html .zone__grid{grid-template-columns:1fr}
  html .cta-form__grid{grid-template-columns:1fr}
  html .simu-panel__grid{grid-template-columns:1fr}
  /* Rangées ROI complexes → empilées en 1-col */
  html .roi-row{grid-template-columns:1fr}
  html .roi__row{grid-template-columns:1fr}
  /* Grilles de 3 cartes → 2-col */
  html .values__grid{grid-template-columns:1fr 1fr}
  html .team__grid{grid-template-columns:1fr 1fr}
  html .diff__grid{grid-template-columns:1fr 1fr}
  html .reviews__grid{grid-template-columns:1fr 1fr}
  /* minmax(0,1fr) : sans ça les pistes 1fr respectent le min-content des
     cartes .mode (flex, min-width:auto) → piste élargie → débordement ~25px
     vers 500px sur les pages solution. min-width:0 laisse la carte rétrécir. */
  html .modes{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  html .mode{min-width:0}
  html .zones__grid{grid-template-columns:1fr 1fr}
  html .local-facts{grid-template-columns:1fr 1fr}
  html .agri-solutions{grid-template-columns:1fr 1fr}
  html .router-grid{grid-template-columns:1fr 1fr}
  /* .related-grid porte un style inline grid-template-columns dans la maquette
     (seul cas du site) → !important pour battre la spécificité inline. */
  html .related-grid{grid-template-columns:1fr 1fr!important}
  /* Grilles 4-col → 2-col */
  html .benefits-grid{grid-template-columns:1fr 1fr}
  html .dispos{grid-template-columns:1fr 1fr}
  html .kpis__grid{grid-template-columns:1fr 1fr}
  /* .anchor = bloc chiffres 3-col */
  html .anchor{grid-template-columns:1fr 1fr}
}
@media (max-width:480px){
  html .process{grid-template-columns:1fr}
  html .solutions-grid{grid-template-columns:1fr}
  /* Grilles de 3 cartes → 1-col */
  html .values__grid{grid-template-columns:1fr}
  html .team__grid{grid-template-columns:1fr}
  html .diff__grid{grid-template-columns:1fr}
  html .reviews__grid{grid-template-columns:1fr}
  html .modes{grid-template-columns:1fr}
  html .zones__grid{grid-template-columns:1fr}
  html .local-facts{grid-template-columns:1fr}
  html .agri-solutions{grid-template-columns:1fr}
  html .router-grid{grid-template-columns:1fr}
  /* idem 480 : !important pour battre le style inline de .related-grid */
  html .related-grid{grid-template-columns:1fr!important}
  /* Grilles 4-col → 1-col */
  html .benefits-grid{grid-template-columns:1fr}
  html .dispos{grid-template-columns:1fr}
  html .kpis__grid{grid-template-columns:1fr}
  html .anchor{grid-template-columns:1fr}
  /* Le filigrane décoratif (.process-step__watermark) est déjà borné par
     .process-step{overflow:hidden} dans le CSS de base — pas d'override requis. */

  /* SIMULATEUR : padding encore réduit sur petit mobile + garde-fou anti-débordement
     (le panneau, le slider et la barre d'échelle ne doivent pas dépasser). */
  html .simu-grid{padding:32px 16px}
  html .simu-panel{padding:20px;min-width:0}
  html .simu-range{max-width:100%}
}
.realisation-hero{position:relative;isolation:isolate;color:#fff;min-height:440px;display:flex;align-items:flex-end;overflow:hidden}
.realisation-hero__media{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center}
.realisation-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(15,20,28,.12) 0%,rgba(13,17,24,.55) 55%,rgba(13,17,24,.92) 100%)}
.realisation-hero__body{position:relative;z-index:2;padding:52px 0 40px;width:100%}
.realisation-hero__badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.realisation-hero__badge{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:6px 13px;border-radius:var(--radius-pill);background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.realisation-hero__title{color:#fff;font-family:var(--font-display);font-size:clamp(30px,5vw,48px);font-weight:800;line-height:1.05;letter-spacing:-.02em;max-width:20ch;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.realisation-hero__loc{font-size:16px;color:#e7ece9;margin-top:12px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.realisation-hero__stats{display:flex;flex-wrap:wrap;gap:30px;margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.22)}
.realisation-hero__stat b{display:block;font-family:var(--font-display);font-size:30px;font-weight:800;color:#fff;letter-spacing:-.02em}
.realisation-hero__stat span{display:block;font-size:13px;color:#cdd5d0;margin-top:3px}
@media(max-width:600px){.realisation-hero{min-height:380px}.realisation-hero__stats{gap:18px}.realisation-hero__stat b{font-size:24px}}
.realisations-archive{padding:56px 0 72px}
.realisations-archive .proof-card{min-height:300px}
.realisations-archive .wp-block-query-pagination{margin-top:40px;justify-content:center;gap:8px}
.realisations-archive .wp-block-query-pagination a,.realisations-archive .wp-block-query-pagination .wp-block-query-pagination-numbers .page-numbers{color:var(--muted);text-decoration:none;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border)}
.realisations-archive .wp-block-query-pagination .page-numbers.current{background:var(--green);border-color:var(--green);color:#fff}
.realisation-facts{padding:26px 0;background:var(--white);border-bottom:1px solid var(--border)}
.realisation-facts__specs{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;margin:0 auto}
.realisation-facts__spec{flex:1 1 130px;text-align:center;padding:6px 24px;position:relative}
.realisation-facts__spec + .realisation-facts__spec::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:34px;background:var(--border)}
.realisation-facts__spec dt{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.realisation-facts__spec dd{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);margin:5px 0 0;line-height:1.15}
@media(max-width:680px){.realisation-facts__specs{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 0}.realisation-facts__spec{flex:none}.realisation-facts__spec + .realisation-facts__spec::before{display:none}}
.realisation-hero__title{text-wrap:balance}
.realisation-story{background:var(--paper)}
.realisation-body{max-width:var(--maxw);margin:0 auto}
.realisation-body>h2{font-size:clamp(23px,3vw,30px);margin:44px 0 16px}
.realisation-body>h2:first-child{margin-top:0}
.realisation-body>p{font-size:16.5px;line-height:1.8;color:var(--n-700);margin-bottom:18px;text-wrap:pretty}
.realisation-body>p:first-of-type{font-size:19px;line-height:1.7;color:var(--ink)}
.realisation-related{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.realisation-body .wp-block-table{margin:6px 0 24px}
.realisation-body .wp-block-table table{width:100%;border-collapse:collapse;font-size:15px}
.realisation-body .wp-block-table table,.realisation-body .wp-block-table td,.realisation-body .wp-block-table th{border:0}
.realisation-body .wp-block-table td{padding:11px 2px;border-bottom:1px solid var(--border);vertical-align:top}
.realisation-body .wp-block-table td:first-child{color:var(--muted);font-weight:600;width:46%}
.realisation-body .wp-block-table td:last-child{color:var(--ink);font-weight:600}
.realisation-body .wp-block-table tr:last-child td{border-bottom:none}
.realisation-note{display:flex;gap:14px;align-items:flex-start;background:var(--green-50);border:1px solid var(--green-200);border-radius:var(--radius-lg);padding:18px 20px;margin:6px 0 26px}
.realisation-note svg{flex:none;width:22px;height:22px;color:var(--green-700);margin-top:1px}
.realisation-note__body{display:flex;flex-direction:column;gap:4px}
.realisation-note__label{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--green-700)}
.realisation-note__body p{margin:0;font-size:15.5px;line-height:1.6;color:var(--n-700)}
.realisation-results{background:var(--white);border-top:1px solid var(--border)}
.realisation-results .section__head{text-align:center;max-width:90ch;margin:0 auto 44px}
.realisation-results .section__head h2{text-wrap:balance}
.realisation-results__figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:20px}
.realisation-results__figure{text-align:center;padding:26px 18px;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-lg)}
.realisation-results__figure b{display:block;font-family:var(--font-display);font-size:clamp(25px,3.2vw,33px);font-weight:800;color:var(--green-700);letter-spacing:-.02em;line-height:1.05}
.realisation-results__figure:nth-child(even){background:var(--amber-50);border-color:var(--amber-200)}
.realisation-results__figure:nth-child(even) b{color:var(--amber-700)}
.realisation-results__figure span{display:block;font-size:13px;color:var(--muted);margin-top:8px}
.realisation-results__quote{max-width:680px;margin:44px auto 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.realisation-results__stars{display:flex;gap:3px}
.realisation-results__stars svg{width:20px;height:20px;fill:var(--amber)}
.realisation-results__quote blockquote{margin:0;font-family:var(--font-display);font-size:clamp(19px,2.4vw,23px);font-weight:600;line-height:1.45;color:var(--ink);text-wrap:balance}
.realisation-results__quote figcaption{font-size:14px;color:var(--muted)}
.before-after{position:relative;aspect-ratio:16/10;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);margin:8px 0 26px;--pos:50%;touch-action:none;user-select:none}
.before-after__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.before-after__after{clip-path:inset(0 0 0 var(--pos))}
.before-after__label{position:absolute;top:14px;z-index:2;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(13,17,24,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:5px 11px;border-radius:var(--radius-pill)}
.before-after__label--before{left:14px}
.before-after__label--after{right:14px}
.before-after__handle{position:absolute;top:0;bottom:0;left:var(--pos);z-index:3;width:2px;background:#fff;transform:translateX(-1px);pointer-events:none;box-shadow:0 0 6px rgba(0,0,0,.35)}
.before-after__handle svg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;padding:9px;background:#fff;border-radius:50%;color:var(--ink);box-shadow:0 2px 10px rgba(0,0,0,.3)}
.before-after__range{position:absolute;inset:0;z-index:4;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.before-after__range:focus-visible{opacity:0;outline:none}
.before-after:focus-within .before-after__handle svg{box-shadow:0 0 0 3px var(--green-300),0 2px 10px rgba(0,0,0,.3)}
.realisation-next{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:10px}
.realisation-next__card{display:flex;align-items:center;gap:13px;padding:16px 18px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;transition:transform .12s ease,box-shadow .15s,border-color .15s}
.realisation-next__card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--green-200);text-decoration:none}
.realisation-next__ico{flex:none;width:38px;height:38px;border-radius:10px;background:var(--green-50);color:var(--green-700);display:grid;place-items:center}
.realisation-next__ico svg{width:19px;height:19px}
.realisation-next__txt{display:flex;flex-direction:column;min-width:0;flex:1}
.realisation-next__txt b{font-size:14.5px;color:var(--ink);line-height:1.2}
.realisation-next__txt span{font-size:12.5px;color:var(--muted)}
.realisation-next__arrow{flex:none;width:16px;height:16px;color:var(--n-300);transition:transform .15s,color .15s}
.realisation-next__card:hover .realisation-next__arrow{transform:translateX(3px);color:var(--green-700)}
.realisation-next__card--primary{background:var(--green-50);border-color:var(--green-200)}
.realisation-next__card--primary .realisation-next__ico{background:var(--green);color:#fff}
@media(max-width:680px){.realisation-next{grid-template-columns:1fr}}
.wp-block-group.is-style-note{position:relative;background:var(--green-50);border:1px solid var(--green-200);border-radius:var(--radius-lg);padding:18px 20px 18px 54px;margin:6px 0 26px}
.wp-block-group.is-style-note::before{content:"";position:absolute;left:18px;top:19px;width:22px;height:22px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315803d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.3 1 2.1h6c0-.8.4-1.6 1-2.1A7 7 0 0 0 12 2z'/%3E%3C/svg%3E") no-repeat center/contain}
.wp-block-group.is-style-note>*{margin-top:0;margin-bottom:0}
.wp-block-group.is-style-note .note__label,.wp-block-group.is-style-note>p:first-child{font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--green-700);margin-bottom:3px}
.wp-block-group.is-style-note>p:last-child{font-size:15.5px;line-height:1.6;color:var(--n-700)}
.proof-card:hover,.proof-card:hover b,.proof-card:hover span,
.proof-feature:hover,.proof-feature:hover *{text-decoration:none}
.realisations-grid__cta{text-align:center;margin-top:36px}
.aide-feature .aide-feature__number{color:var(--accent)}
.local-split__body .local-split__stats{gap:0;margin-bottom:32px}
.local-split__body .local-split__stat{flex:1 1 0;padding-left:24px;position:relative}
.local-split__body .local-split__stat:first-child{padding-left:0}
.local-split__body .local-split__stat:not(:first-child)::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:36px;background:var(--border)}
.localites-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin-top:8px}
.localite-card{display:flex;flex-direction:column;gap:6px;padding:24px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s,border-color .15s}
.localite-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.localite-card:hover,.localite-card:hover *{text-decoration:none}
.localite-card__cp{font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--muted)}
.localite-card__ville{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--ink);line-height:1.1}
.localite-card__svcs{font-size:13.5px;color:var(--n-700)}
.localite-card__cta{margin-top:8px;display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--primary-ink)}
.localite-card__cta svg{width:16px;height:16px;transition:transform .15s}
.localite-card:hover .localite-card__cta svg{transform:translateX(4px)}
.guide-body{padding:64px 32px}
.guide-body > *{max-width:var(--maxw);margin-left:auto;margin-right:auto}
.guide-body > h2{font-family:var(--font-display);font-size:clamp(23px,2.6vw,31px);line-height:1.18;font-weight:800;color:var(--ink);margin:2.6em auto .65em;text-wrap:balance}
.guide-body > h2:first-child{margin-top:0}
.guide-body > h3{font-family:var(--font-display);font-size:21px;line-height:1.25;font-weight:800;color:var(--ink);margin:2em auto .4em}
.guide-body > h3 a{color:var(--ink)}
.guide-body > p{font-size:16.5px;line-height:1.8;color:var(--n-700);margin:0 auto 1.2em}
.guide-body > p:last-child{margin-bottom:0}
.guide-body a{color:var(--primary-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.guide-body a:hover{color:var(--green-800)}
.guide-body strong{color:var(--ink);font-weight:700}

[id]{scroll-margin-top:120px}
.header{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}
.header__inner{position:relative;gap:24px}
.header__nav{display:flex;align-items:stretch;gap:4px;height:100%;white-space:nowrap}
.nav-item{position:relative;display:flex;align-items:stretch}
.header__nav .nav-link{
  display:inline-flex;align-items:center;gap:6px;height:100%;
  padding:0 16px;font-family:var(--font-body);font-size:14.5px;font-weight:500;
  color:var(--ink);background:none;border:0;cursor:pointer;text-decoration:none;
  position:relative;white-space:nowrap;
}
.nav-link__chev{width:13px;height:13px;color:var(--muted);transition:transform .25s}
.nav-item:hover .nav-link__chev{transform:rotate(180deg)}
.header__nav .nav-link:hover::after{display:none}
.header__nav .nav-link::before{
  content:"";position:absolute;left:16px;right:16px;bottom:22px;height:2px;
  background:var(--primary);border-radius:2px;
  transform:scaleX(0);transform-origin:left;transition:transform .22s;
}
.nav-item:hover .nav-link::before,.header__nav .nav-link[aria-current]::before{transform:scaleX(1)}
.mega{
  position:absolute;top:100%;left:0;transform:translateY(12px);
  width:760px;max-width:92vw;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:22px;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .18s,transform .18s,visibility .18s;z-index:60;white-space:normal;
}
.mega::before{content:"";position:absolute;top:-16px;left:0;right:0;height:18px}
.nav-item:hover .mega,.nav-item:focus-within .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(6px)}
.mega__inner{display:grid;grid-template-columns:1fr 260px;gap:20px;align-items:stretch}
.mega__list{display:flex;flex-direction:column;gap:4px;min-width:0}
.mega__list-label{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:4px 12px 10px}
.mega-row{display:flex;gap:16px;align-items:center;padding:14px 14px;border-radius:var(--radius-md);text-decoration:none;color:var(--ink);transition:background .15s}
.mega-row:hover{background:var(--paper);text-decoration:none}
.mega-row__thumb{width:68px;height:68px;border-radius:12px;flex:none;background-size:cover;background-position:center;position:relative;overflow:hidden}
.mega-row__txt{min-width:0;flex:1}
.mega-row__txt b{display:block;font-size:15.5px;font-weight:700;color:var(--ink);margin-bottom:3px}
.mega-row__txt span{display:block;font-size:13px;color:var(--muted);line-height:1.45}
.mega-row__chev{flex:none;width:16px;height:16px;color:var(--n-300);transition:transform .15s,color .15s}
.mega-row:hover .mega-row__chev{transform:translateX(3px);color:var(--primary)}
.mega__feature{position:relative;border-radius:var(--radius-md);overflow:hidden;min-width:0;background-size:cover;background-position:center;min-height:270px;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none}
.mega__feature::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,20,28,0) 0%,rgba(15,20,28,.42) 44%,rgba(13,17,24,.96) 100%)}
.mega__feature-body{position:relative;z-index:1;padding:20px}
.mega__feature-eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green-400);display:block;margin-bottom:8px;text-shadow:0 1px 6px rgba(0,0,0,.7)}
.mega__feature-body b{display:block;font-size:15px;font-weight:700;color:#fff;line-height:1.35;margin-bottom:16px;max-width:24ch;white-space:normal;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.mega__feature-cta{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:#fff;background:var(--green);border:1px solid var(--green);padding:9px 15px;border-radius:var(--radius-pill);box-shadow:0 6px 18px -6px color-mix(in oklab,var(--green) 60%,transparent);transition:background .15s}
.mega__feature-cta svg{width:13px;height:13px}
.mega__foot{display:flex;align-items:center;gap:8px;margin-top:14px;padding:12px 12px 4px;border-top:1px solid var(--border);font-size:12.5px;color:var(--muted)}
.mega__foot svg{width:15px;height:15px;color:var(--green);flex:none}
.header__tel{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:var(--radius-sm);border:1.5px solid var(--border-strong);background:var(--white);font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap;transition:border-color .15s,background .15s,color .15s}
.header__tel:hover{border-color:var(--blue);background:var(--blue-50);color:var(--blue);text-decoration:none}
.header__tel svg{width:16px;height:16px;color:var(--ink)}
.dropdown{position:absolute;top:100%;left:0;transform:translateY(12px);min-width:260px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:8px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s,visibility .18s;z-index:60}
.dropdown::before{content:"";position:absolute;top:-16px;left:0;right:0;height:18px}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(6px)}
.dropdown a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--ink);text-decoration:none;transition:background .15s,color .15s}
.dropdown a:hover{background:var(--paper);color:var(--primary-ink);text-decoration:none}
.dropdown a .dot{width:8px;height:8px;border-radius:50%;flex:none}
.dropdown a .dot--green{background:var(--green)}
.dropdown a .dot--blue{background:var(--blue)}
.dropdown a .dot--amber{background:var(--amber)}
.dropdown a .dot--ink{background:var(--n-400)}
.dropdown a small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:1px}
.dropdown a .dd-txt{flex:1;min-width:0}
.dropdown a .dd-txt b{font-weight:600;display:block}
.dropdown a .dd-chev{width:14px;height:14px;color:var(--n-300);transition:transform .15s,color .15s;flex:none}
.dropdown a:hover .dd-chev{transform:translateX(3px);color:var(--primary)}
.crumbs{background:var(--paper);border-bottom:1px solid var(--border);padding:13px 0;font-size:13px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:9px;align-items:center;max-width:var(--maxw);margin:0 auto;padding:0 32px}
.crumbs li{display:flex;align-items:center;gap:9px;color:var(--muted)}
.crumbs li+li::before{content:"›";color:var(--n-300)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--primary-ink)}
.crumbs li[aria-current]{color:var(--ink);font-weight:600}
.page-hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;background:var(--ink);padding:78px 0 84px}
.page-hero__bg{position:absolute;inset:0;z-index:0;background-image:url('../assets/realisation-maison-bois-guillaume.webp');background-size:cover;background-position:center 38%}
.page-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(16,22,28,.78) 0%, rgba(16,22,28,.64) 42%, rgba(16,22,28,.82) 100%)}
.page-hero__inner{position:relative;z-index:2;max-width:74rem;text-align:center}
.page-hero__eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-300);margin-bottom:18px}
.page-hero__eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green-300);box-shadow:0 0 10px var(--green)}
.page-hero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(34px,5vw,58px);line-height:1.07;letter-spacing:-.025em;color:#fff;text-wrap:balance;margin:0 auto 22px;max-width:34ch;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.page-hero h1 em{font-style:normal;color:var(--green-300)}
.page-hero .lede{font-size:clamp(18px,2vw,21px);line-height:1.6;color:rgba(255,255,255,.92);max-width:62ch;margin:0 auto;text-wrap:pretty;text-shadow:0 1px 14px rgba(0,0,0,.3)}
.page-hero__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;margin-top:26px;font-size:13.5px;color:rgba(255,255,255,.72)}
.page-hero__meta b{font-weight:600;color:#fff}
.page-hero__meta .meta-dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.4)}
.trust-strip{background:var(--white);border-bottom:1px solid var(--border)}
.trust-strip__inner{max-width:var(--maxw);margin:0 auto;padding:18px 32px;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 26px;align-items:center}
.trust-strip__item{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;color:var(--ink)}
.trust-strip__item svg{width:17px;height:17px;color:var(--green);flex:none}
.trust-strip__sep{width:1px;height:18px;background:var(--border)}
.story__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.story__body p{font-size:16.5px;line-height:1.7;color:var(--n-700);margin-top:16px}
.story__body .kicker{color:var(--primary);margin-top:0}
.story__body p:first-of-type{margin-top:22px}
.story__body strong{color:var(--ink);font-weight:700}
.story__shot{aspect-ratio:4/5;border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden;position:relative}
.story__photo{position:absolute;inset:0;background-size:cover;background-position:center;background-image:url('../assets/toiture-panneaux-ardoise.webp')}
@media (max-width:860px){.story__grid{grid-template-columns:1fr;gap:32px}.story__shot{aspect-ratio:4/3}}
.diff{background:var(--ink);color:#fff}
.diff__top{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:64px;align-items:start}
.diff__kicker{display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-400)}
.diff__kicker::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green-400);box-shadow:0 0 0 4px color-mix(in oklab,var(--green) 22%,transparent)}
.diff__meta{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:13px}
.diff__meta li{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.diff__title{font-size:clamp(38px,4.6vw,62px);line-height:1.02;letter-spacing:-.025em;color:#fff;margin:0}
.diff__p{font-size:19px;line-height:1.6;color:rgba(255,255,255,.9);margin:26px 0 0;max-width:60ch}
.diff__p--muted{font-size:16px;color:rgba(255,255,255,.5);margin-top:18px}
.diff__rule{border:0;height:1px;background:rgba(255,255,255,.12);margin:52px 0}
.diff__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.diff__bar{display:block;width:32px;height:3px;border-radius:3px}
.diff__bar--green{background:var(--green-400)}
.diff__bar--blue{background:var(--blue-400)}
.diff__col h3{font-size:20px;font-weight:700;color:#fff;letter-spacing:-.01em;margin:16px 0 10px}
.diff__col p{font-size:15px;line-height:1.6;color:rgba(255,255,255,.55);margin:0;max-width:38ch}
@media (max-width:860px){.diff__top{grid-template-columns:1fr;gap:28px}.diff__grid{grid-template-columns:1fr;gap:32px}}
.kpis__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.kpi{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 26px;box-shadow:var(--shadow-sm)}
.kpi__num{font-family:var(--font-display);font-weight:800;font-size:clamp(38px,4vw,52px);line-height:1;letter-spacing:-.03em;color:var(--green-700)}
.kpi__num small{font-size:.5em;font-weight:700;margin-left:2px}
.kpi__label{font-size:14px;color:var(--muted);line-height:1.5;margin-top:12px}
@media (max-width:860px){.kpis__grid{grid-template-columns:1fr 1fr;gap:14px}}
.team__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.team-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.team-card__photo{aspect-ratio:4/3;background:var(--n-100)}
.team-card__photo .ph{height:100%}
.team-card__body{padding:20px 22px 24px}
.team-card__body b{display:block;font-family:var(--font-display);font-size:18px;font-weight:800;color:var(--ink)}
.team-card__role{display:block;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--green-700);margin-top:4px}
.team-card__body p{font-size:14.5px;color:var(--muted);line-height:1.55;margin-top:12px}
@media (max-width:860px){.team__grid{grid-template-columns:1fr}}
.values__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.value-card{display:flex;flex-direction:column;gap:12px}
.value-card__ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--green-50);color:var(--green-700);border:1.5px solid var(--green-200)}
.value-card__ico svg{width:24px;height:24px}
.value-card h3{font-size:18px;font-weight:700;color:var(--ink)}
.value-card p{font-size:14.5px;color:var(--muted);line-height:1.6;margin:0}
.sec-note{font-size:16px;color:var(--muted);line-height:1.6;margin-top:14px}
.zone-prose{max-width:64ch;margin:0 auto;text-align:center}
.zone-prose p{font-size:16.5px;line-height:1.75;color:var(--n-700);margin-top:18px}
.zone-prose p:first-child{margin-top:0}
.zone-prose strong{color:var(--ink);font-weight:700}
.zone-prose a{color:var(--primary-ink);font-weight:600}
.cert-card h3{font-size:18px;font-weight:700;color:var(--ink)}
.cert-card p{font-size:14.5px;color:var(--muted);line-height:1.6;margin-top:8px}
@media (max-width:860px){.values__grid{grid-template-columns:1fr}}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.related-card{position:relative;min-height:260px;border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;color:#fff;border:1px solid var(--border)}
.related-card__bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.related-card:hover .related-card__bg{transform:scale(1.05)}
.related-card:hover,.related-card:hover b,.related-card:hover span,.related-card:hover i{text-decoration:none}
.related-card__ov{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(15,20,28,.12),rgba(13,17,24,.86))}
.related-card__body{position:relative;z-index:2;padding:24px 26px}
.related-card__body b{font-family:var(--font-display);font-size:21px;font-weight:800;color:#fff;display:block;text-shadow:0 2px 10px rgba(0,0,0,.5)}
.related-card__body span{font-size:14px;color:rgba(255,255,255,.85);display:block;margin-top:4px;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.related-card__body i{display:inline-flex;align-items:center;gap:7px;font-style:normal;font-size:13.5px;font-weight:700;margin-top:14px;color:var(--green-300)}
.related-card__body i svg{width:14px;height:14px}
@media (max-width:860px){.related-grid{grid-template-columns:1fr}}
.cta-band{position:relative;overflow:hidden;color:#fff;isolation:isolate;background:var(--ink)}
.cta-band__bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center right;background-image:url('../assets/realisation-maison-bois-guillaume.webp')}
.cta-band__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(15,20,28,.97) 0%,rgba(15,20,28,.9) 42%,rgba(15,20,28,.66) 76%,rgba(15,20,28,.48) 100%)}
.cta-band__inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:56px;padding-top:76px;padding-bottom:76px;flex-wrap:wrap}
.cta-band__text{max-width:560px;min-width:0}
.cta-band__text .kicker{margin-bottom:14px}
.cta-band__text h2{color:#fff;font-size:clamp(34px,3.6vw,46px);line-height:1.08;letter-spacing:-.02em}
.cta-band__text h2 em{font-style:normal;color:var(--amber)}
.cta-band__text .kicker::before{background:var(--amber)}
.cta-band__text p{color:#cfd6d4;font-size:17px;line-height:1.55;margin-top:16px;max-width:58ch}
.cta-band__trust{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
@media (max-width:860px){.cta-band__inner{flex-direction:column;align-items:flex-start;gap:32px}.cta-band .cta-form{width:100%}}
.footer--light{background:var(--paper);color:var(--n-700);border-top:3px solid var(--green)}
.footer--light h4{color:var(--ink);position:relative;padding-bottom:12px;margin-bottom:18px}
.footer--light h4::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:2px;background:var(--green);border-radius:2px}
.footer--light a{color:var(--n-700);transition:color .15s}
.footer--light a:hover{color:var(--primary-ink)}
.footer--light .footer__grid{border-bottom-color:var(--border);padding-bottom:40px}
.footer--light .footer__brand p{color:var(--muted)}
.footer--light .footer__brand img{background:transparent;padding:0}
.footer--light .footer__bottom{color:var(--muted);align-items:center}
.footer__badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.footer__badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--ink);background:var(--white);border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius-pill)}
.footer__badge svg{width:13px;height:13px;color:var(--green)}
.footer__contact{list-style:none;display:flex;flex-direction:column;gap:13px}
.footer__contact li{display:flex;align-items:flex-start;gap:11px;font-size:14px;color:var(--n-700);line-height:1.4}
.footer__contact svg{width:16px;height:16px;color:var(--green);flex:none;margin-top:2px}
.footer__contact a{color:var(--n-700)}
.footer__social{display:flex;gap:10px}
.footer__social a{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--white);display:flex;align-items:center;justify-content:center;color:var(--ink);transition:border-color .15s,color .15s,transform .15s}
.footer__social a:hover{border-color:var(--green);color:var(--green);transform:translateY(-2px)}
.footer__social svg{width:18px;height:18px}
.hero{
  position:relative;overflow:hidden;
  background:
    radial-gradient(60% 80% at 88% -10%, var(--green-50) 0%, transparent 50%),
    radial-gradient(50% 70% at -5% 10%, var(--blue-50) 0%, transparent 55%),
    var(--white);
  padding:72px 0 96px;
}
.hero__grid{
  display:grid;grid-template-columns:1.5fr .5fr;gap:64px;align-items:center;
}
.hero__intro{font-family:var(--font-body);font-weight:600;font-size:13px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--primary-ink);
  display:inline-flex;align-items:center;gap:10px;margin-bottom:22px}
.hero__intro::before{content:"";width:24px;height:2px;background:var(--primary);border-radius:2px}
.hero h1{
  font-size:clamp(42px,5.4vw,68px);font-weight:800;line-height:1.04;
  letter-spacing:-.025em;color:var(--ink);max-width:14ch;
}
.hero h1 em{font-style:normal;color:var(--green)}
.hero h1 .blue{color:var(--blue)}
.hero__lead{font-size:19px;color:var(--n-700);line-height:1.55;
  max-width:48ch;margin:24px 0 32px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:36px}
.hero__trust{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:24px}
.hero__rating{
  display:flex;align-items:center;gap:12px;padding-top:8px;
  border-top:1px dashed var(--border-strong);max-width:520px;
}
.hero__rating-stars{display:flex;gap:1px;color:var(--n-300)}
.hero__rating-stars svg{width:18px;height:18px}
.hero__rating-txt{font-size:13px;color:var(--muted);line-height:1.4}
.hero__rating-txt b{color:var(--ink)}

.hero__visual{position:relative}
.hero__visual-shot{
  aspect-ratio:4/5;border-radius:var(--radius-xl);
  border:1px solid var(--border);
  box-shadow:var(--shadow-lg);
}
.hero__visual-shot .ph{height:100%;border-radius:var(--radius-xl)}
.hero__visual-card{
  position:absolute;bottom:-24px;left:-32px;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:16px 18px;
  box-shadow:var(--shadow-lg);
  display:flex;align-items:center;gap:14px;
  max-width:280px;
}
.hero__visual-card-ico{
  width:44px;height:44px;border-radius:12px;flex:none;
  background:var(--green-50);color:var(--green-700);
  display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--green-200);
}
.hero__visual-card-ico svg{width:24px;height:24px}
.hero__visual-card-txt b{display:block;font-size:13.5px;color:var(--ink);line-height:1.25;margin-bottom:2px}
.hero__visual-card-txt span{font-size:12px;color:var(--muted)}
.hero__visual-mascot{
  position:absolute;top:-24px;right:-24px;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-pill);padding:10px 16px 10px 12px;
  box-shadow:var(--shadow-md);font-size:12.5px;font-weight:600;color:var(--ink);
  display:flex;align-items:center;gap:8px;
}
.hero__visual-mascot::before{
  content:"";width:8px;height:8px;border-radius:50%;background:var(--green);
  box-shadow:0 0 0 4px var(--green-100);
}
.nav-item:hover .nav-link::before{transform:scaleX(1)}
.mega{
  position:absolute;top:100%;left:0;
  transform:translateY(12px);
  width:760px;max-width:92vw;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
  padding:22px;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .18s,transform .18s,visibility .18s;z-index:60;
}
.nav-item:hover .mega,.nav-item:focus-within .mega{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(6px);
}
.mega__list-label{
  font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);padding:4px 12px 10px;
}
.mega-row{
  display:flex;gap:16px;align-items:center;
  padding:14px 14px;border-radius:var(--radius-md);
  text-decoration:none;color:var(--ink);
  transition:background .15s;
}
.mega-row__thumb{
  width:68px;height:68px;border-radius:12px;flex:none;
  background-size:cover;background-position:center;
  position:relative;overflow:hidden;
}
.mega{white-space:normal}
.mega__feature{
  position:relative;border-radius:var(--radius-md);overflow:hidden;min-width:0;
  background-size:cover;background-position:center;
  min-height:270px;display:flex;flex-direction:column;justify-content:flex-end;
  text-decoration:none;
}
.mega__feature::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(15,20,28,0) 0%,rgba(15,20,28,.42) 44%,rgba(13,17,24,.96) 100%);
}
.mega__feature-eyebrow{
  font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--green-400);display:block;margin-bottom:8px;text-shadow:0 1px 6px rgba(0,0,0,.7)
}
.mega__feature-cta{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12.5px;font-weight:700;color:#fff;
  background:var(--green);border:1px solid var(--green);
  padding:9px 15px;border-radius:var(--radius-pill);box-shadow:0 6px 18px -6px color-mix(in oklab,var(--green) 60%,transparent);
  transition:background .15s;
}
.mega__foot{
  display:flex;align-items:center;gap:8px;
  margin-top:14px;padding:12px 12px 4px;border-top:1px solid var(--border);
  font-size:12.5px;color:var(--muted);
}
.header__tel{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 16px;border-radius:var(--radius-sm);
  border:1.5px solid var(--border-strong);background:var(--white);
  font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap;
  transition:border-color .15s,background .15s,color .15s;
}
.dropdown{
  position:absolute;top:100%;left:0;transform:translateY(12px);
  min-width:260px;background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);box-shadow:var(--shadow-lg);
  padding:8px;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .18s,transform .18s,visibility .18s;z-index:60;
}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(6px);
}
.dropdown a{
  display:flex;align-items:center;gap:12px;
  padding:11px 12px;border-radius:var(--radius-sm);
  font-size:14px;font-weight:500;color:var(--ink);text-decoration:none;
  transition:background .15s,color .15s;
}
.header__tel{white-space:nowrap}
.hero-v{display:none}
html .hero-v{display:none}
html[data-piste="immersif"]  .heroB{display:flex}
html[data-piste="epure"]     .heroA{display:block}
html[data-piste="confiance"] .heroC{display:block}
:root{
  --p-50:  color-mix(in oklab, var(--primary) 8%,  white);
  --p-100: color-mix(in oklab, var(--primary) 16%, white);
  --p-200: color-mix(in oklab, var(--primary) 32%, white);
  --p-300: color-mix(in oklab, var(--primary) 52%, white);
  --p-600: color-mix(in oklab, var(--primary) 86%, black);
}
html[data-accent="green"]{--primary:var(--green-500);--primary-ink:var(--green-700)}
html[data-accent="blue"] {--primary:var(--blue-500); --primary-ink:var(--blue-700)}
html[data-accent="amber"]{--primary:var(--amber-600);--primary-ink:var(--amber-700)}
.btn--primary{background:var(--primary);border-color:var(--primary);
  box-shadow:0 4px 14px color-mix(in oklab,var(--primary) 35%,transparent)}
.btn--primary:hover{background:var(--p-600);border-color:var(--p-600)}
html[data-accent="amber"] .btn--primary{color:var(--ink)}
.heroC h1 em{font-style:normal;color:var(--primary)}
html[data-angles="sharp"]{
  --radius-sm:3px;--radius-md:5px;--radius-lg:7px;--radius-xl:10px;
}
html[data-typo="spectral"]{--font-display:'Spectral',Georgia,'Times New Roman',serif}
html[data-typo="archivo"] {--font-display:'Archivo','Sora',system-ui,sans-serif}
.heroA{
  position:relative;overflow:hidden;background:var(--white);
  border-bottom:1px solid var(--border);
}
.heroA::before{
  content:"";position:absolute;top:-30%;right:-10%;width:55%;height:160%;
  background:radial-gradient(closest-side, var(--p-50), transparent 75%);
  pointer-events:none;
}
.heroA__grid{
  position:relative;display:grid;grid-template-columns:1fr .85fr;gap:72px;align-items:center;
  padding:96px 0 100px;
}
.heroA__eyebrow{
  font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:26px;display:block;
}
.heroA h1{
  font-size:clamp(46px,5.6vw,74px);font-weight:800;line-height:1.02;
  letter-spacing:-.03em;color:var(--ink);max-width:13ch;margin:0;
}
.heroA__lead{
  font-size:19px;color:var(--n-700);line-height:1.55;max-width:46ch;margin:26px 0 36px;
}
.heroA__cta{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.heroA__tel{
  display:inline-flex;align-items:center;gap:9px;
  font-size:15px;font-weight:600;color:var(--ink);
}
.heroA__tel svg{width:17px;height:17px;color:var(--blue)}
.heroA__trust{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  margin-top:40px;padding-top:24px;border-top:1px solid var(--border);
  font-size:13px;font-weight:500;color:var(--muted);
}
.heroA__trust span{display:inline-flex;align-items:center;gap:7px}
.heroA__trust svg{width:15px;height:15px;color:var(--green)}
.heroA__trust i{width:4px;height:4px;border-radius:50%;background:var(--n-300);font-style:normal}
.heroA__visual{position:relative}
.heroA__photo{
  aspect-ratio:4/5;border-radius:var(--radius-xl);overflow:hidden;
  background-size:cover;background-position:center;
  background-image:url('/wp-content/uploads/2026/06/equipe-installation-panneaux-toiture-industrielle.webp');
  box-shadow:var(--shadow-lg);
}
.heroA__badge{
  position:absolute;left:-28px;bottom:32px;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:16px 20px;
  box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:14px;
}
.heroA__badge-ico{
  width:42px;height:42px;border-radius:11px;flex:none;
  background:linear-gradient(135deg,var(--primary),var(--p-600));color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
}
.heroA__badge-ico svg{width:22px;height:22px}
.heroA__badge b{display:block;font-size:14px;color:var(--ink);line-height:1.2}
.heroA__badge span{font-size:12px;color:var(--muted)}
.heroB{
  position:relative;overflow:hidden;color:#fff;isolation:isolate;
  min-height:660px;display:flex;align-items:center;
}
.heroB__bg{
  position:absolute;inset:0;z-index:0;
  /* Image du hero rendue via un <img fetchpriority="high"> par le bloc ecothib/hero-immersif (élément LCP découvrable au parse HTML). Pas de background-image ici : elle déclencherait un second téléchargement inutile derrière l'img. */
}
.heroB__veil{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(rgba(15,20,28,.22), rgba(15,20,28,.22)),
    linear-gradient(110deg, rgba(15,20,28,.82) 0%, rgba(15,20,28,.55) 45%, rgba(15,20,28,.20) 100%);
}
.heroB__inner{position:relative;z-index:2;padding:80px 32px;width:100%;max-width:1240px;margin:0 auto}
.heroB__eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.82);background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);padding:7px 14px;border-radius:var(--radius-pill);
  backdrop-filter:blur(6px);margin-bottom:28px;
}
.heroB__eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--primary);box-shadow:0 0 10px var(--primary)}
.heroB h1{
  font-size:clamp(46px,6vw,82px);font-weight:800;line-height:1.0;
  letter-spacing:-.03em;color:#fff;max-width:15ch;margin:0;
  text-shadow:0 4px 30px rgba(0,0,0,.35);
}
.heroB h1 em{font-style:normal;color:var(--green)}
.heroB__lead{
  font-size:19px;color:rgba(255,255,255,.92);line-height:1.55;max-width:46ch;margin:24px 0 36px;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
}
.heroB__cta{display:flex;gap:14px;flex-wrap:wrap}
.heroB__cta .btn--secondary{
  background:rgba(255,255,255,.1)!important;color:#fff!important;
  border-color:rgba(255,255,255,.35)!important;backdrop-filter:blur(6px);
}
.heroB__cta .btn--secondary:hover{background:rgba(255,255,255,.2)!important;border-color:rgba(255,255,255,.6)!important}
.heroB__trust{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  margin-top:44px;font-size:13px;font-weight:500;color:rgba(255,255,255,.85);
}
.heroB__trust span{display:inline-flex;align-items:center;gap:7px}
.heroB__trust svg{width:15px;height:15px;color:var(--p-300)}
.heroB__trust i{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.3);font-style:normal}
.heroC{position:relative;background:var(--paper);border-bottom:1px solid var(--border)}
.heroC__grid{
  display:grid;grid-template-columns:1fr 1fr;align-items:stretch;
  min-height:600px;
}
.heroC__text{
  display:flex;flex-direction:column;justify-content:center;
  padding:88px 56px 88px max(32px,calc((100vw - 1240px)/2 + 32px));
  margin:0;
}
.heroC__eyebrow{
  font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:24px;display:block;
}
.heroC h1{
  font-size:clamp(44px,5vw,68px);font-weight:800;line-height:1.03;
  letter-spacing:-.03em;color:var(--ink);max-width:13ch;margin:0;
}
.heroC__lead{font-size:18px;color:var(--n-700);line-height:1.55;max-width:42ch;margin:24px 0 34px}
.heroC__cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:36px}
.heroC__stats{display:flex;gap:36px;flex-wrap:wrap;padding-top:28px;border-top:1px solid var(--border)}
.heroC__stat b{
  display:block;font-family:var(--font-display);font-weight:800;
  font-size:30px;line-height:1;color:var(--ink);letter-spacing:-.02em;
}
.heroC__stat span{font-size:13px;color:var(--muted);margin-top:6px;display:block}
.heroC__photo{
  background-size:cover;background-position:center;
  background-image:url('/wp-content/uploads/2026/06/maison-panneaux-solaires-particulier-normandie.webp');
  position:relative;
}
.heroC__photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg, var(--paper) 0%, transparent 12%);
}
.entree__grid{display:grid;gap:36px;grid-template-columns:1fr 1fr}

.entree-card{
  position:relative;background:var(--white);
  border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:0;overflow:hidden;
  text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;
  transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s,border-color .2s;
}
.entree-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-strong);text-decoration:none}
.entree-card__banner{
  position:relative;min-height:158px;
  background-size:cover;background-position:center;
  display:flex;flex-direction:column;justify-content:flex-start;gap:12px;
  padding:24px 32px;
}
.entree-card__banner::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(15,20,28,.30) 0%, rgba(15,20,28,.74) 100%);
}
.entree-card__banner > *{position:relative;z-index:1}
.entree-card--b2c .entree-card__banner{background-image:url('/wp-content/uploads/2026/06/maison-panneaux-solaires-particulier-normandie.webp')}
.entree-card--b2b .entree-card__banner{background-image:url('/wp-content/uploads/2026/06/batiment-industriel-panneaux-solaires-entreprise.webp')}
.entree-card__tag{
  display:inline-flex;align-items:center;padding:6px 14px;
  border-radius:var(--radius-pill);width:fit-content;
  font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.entree-card--b2c .entree-card__tag{background:var(--green)}
.entree-card--b2b .entree-card__tag{background:var(--blue)}
.entree-card h3{
  font-size:24px;font-weight:800;margin:0;letter-spacing:-.015em;
  max-width:18ch;line-height:1.15;color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
}
.entree-card__content{
  display:flex;flex-direction:column;gap:14px;flex:1;
  padding:26px 32px 32px;
}
.entree-card__content > p{font-size:15.5px;color:var(--muted);line-height:1.55;margin:0;max-width:42ch}

.entree-card__presta-label{
  font-family:var(--font-body);font-size:11.5px;font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;color:var(--muted);
  margin-top:8px;
}
.entree-card__prestas{
  list-style:none;display:flex;flex-direction:column;gap:0;margin:0;padding:0;
  border-top:1px solid var(--border);
}
.entree-card__prestas li{padding:0;margin:0}
.entree-card__prestas a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 0;
  font-size:15.5px;font-weight:600;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--border);
  transition:color .15s,padding .15s;
}
.entree-card__prestas li:last-child a{border-bottom:0}
.entree-card__prestas a:hover{padding-left:6px;text-decoration:none}
.entree-card--b2c .entree-card__prestas a:hover{color:var(--green-700)}
.entree-card--b2b .entree-card__prestas a:hover{color:var(--blue-700)}
.entree-card__prestas a svg{
  flex:none;width:18px;height:18px;
  color:var(--n-400);transition:transform .2s,color .15s;
}
.entree-card--b2c .entree-card__prestas a:hover svg{color:var(--green);transform:translateX(4px)}
.entree-card--b2b .entree-card__prestas a:hover svg{color:var(--blue);transform:translateX(4px)}

.entree-card__cta{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-size:15px;font-weight:700;color:#fff;
  margin-top:auto;
  padding:14px 22px;border-radius:var(--radius-sm);
  transition:background .15s,box-shadow .15s;
}
.entree-card--b2c .entree-card__cta{background:var(--green);box-shadow:0 4px 14px color-mix(in oklab,var(--green) 35%,transparent)}
.entree-card--b2c .entree-card__cta:hover{background:var(--green-600);text-decoration:none}
.entree-card--b2b .entree-card__cta{background:var(--blue);box-shadow:0 4px 14px color-mix(in oklab,var(--blue) 35%,transparent)}
.entree-card--b2b .entree-card__cta:hover{background:var(--blue-700);text-decoration:none}
.entree-card__cta svg{width:16px;height:16px;transition:transform .2s}
.entree-card__cta:hover svg{transform:translateX(4px)}
.router-slider{position:relative}
.router-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:4px;margin:-4px;scrollbar-width:none}
.router-track::-webkit-scrollbar{display:none}
.router-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:22px}
.router-dots{display:flex;gap:8px;align-items:center}
.router-dots button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:var(--n-300);cursor:pointer;transition:width .25s,background .25s}
.router-dots button.active{width:26px;border-radius:5px;background:var(--green)}
.router-arrows{display:flex;gap:10px}
.router-nav__btn{width:46px;height:46px;border-radius:50%;border:1px solid var(--border);background:var(--white);color:var(--ink);font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;box-shadow:var(--shadow-sm)}
.router-nav__btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--paper)}
.router-nav__btn:disabled{opacity:.35;cursor:default}
@media(max-width:980px){.router-card{flex-basis:43%!important}}
@media(max-width:600px){.router-card{flex-basis:82%!important}}
.router-card{
  flex:0 0 30%;scroll-snap-align:start;
  position:relative;min-height:430px;
  border-radius:var(--radius-lg);overflow:hidden;
  text-decoration:none;color:inherit;
  display:flex;flex-direction:column;justify-content:flex-end;
  box-shadow:var(--shadow-sm);
  transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s;
}
.router-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);text-decoration:none}
.router-card__bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
.router-card:hover .router-card__bg{transform:scale(1.06)}
.router-card__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(20,30,40,.05) 0%,
    rgba(20,30,40,.30) 40%,
    rgba(15,20,30,.88) 78%,
    rgba(10,15,25,.96) 100%);
}
.router-card__body{
  position:relative;z-index:2;
  padding:24px 26px 28px;
  display:flex;flex-direction:column;gap:10px;
  color:#fff;
}
.router-card h3{
  font-size:26px;font-weight:800;color:#fff;
  line-height:1.1;letter-spacing:-.02em;
  text-shadow:0 2px 12px rgba(0,0,0,.45);
}
.router-card p{
  font-size:14.5px;color:rgba(255,255,255,.94);
  line-height:1.55;margin:0;
  text-shadow:0 1px 6px rgba(0,0,0,.55);
}
.router-card__link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13.5px;font-weight:700;color:#fff;
  margin-top:8px;padding-top:14px;
  border-top:1px solid rgba(255,255,255,.25);
}
.router-card__link svg{width:14px;height:14px;transition:transform .2s}
.router-card:hover .router-card__link svg{transform:translateX(4px)}
.router-card .tag{
  background:rgba(255,255,255,.96);border:0;width:fit-content;
  box-shadow:0 4px 12px rgba(0,0,0,.28);
  backdrop-filter:blur(4px);margin-bottom:2px;
}
.router-card--b2c .tag{color:var(--green-700)}
.router-card--b2b .tag{color:var(--blue-700)}
.router-card--ter .tag{color:var(--blue-700)}
.router-card--agri .tag{color:var(--amber-700)}
.router-card--coll .tag{color:var(--green-700)}
.router-card--b2c  .router-card__bg{background-image:url('../assets/realisation-maison-bois-guillaume.webp')}
.router-card--b2b  .router-card__bg{background-image:url('../assets/realisation-ombriere-lehavre.webp')}
.router-card--ter  .router-card__bg{background-image:url('../assets/toiture-panneaux-ardoise.webp')}
.router-card--agri .router-card__bg{background-image:url('../assets/realisation-hangar-yvetot.webp')}
.router-card--coll .router-card__bg{background-image:url('/wp-content/uploads/2026/06/panneaux-solaires-collectivite-batiment-public.webp')}
.solutions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.solution-card .ph{height:200px}
.solution-card__photo{
  height:200px;
  background-size:cover;background-position:center;
  background-color:var(--n-200);
}
/* Images par carte posées en inline (--card-bg via bgUrl du bloc solutions).
   Les anciennes règles --toiture/--sol/--ombriere (dont un hotlink Unsplash)
   étaient partagées par toutes les pages et désormais mortes : supprimées. */
.solution-card h3{font-size:21px;font-weight:700}
.solution-card p{font-size:14.5px;color:var(--muted);line-height:1.55}
.solution-card__meta{
  display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:14px;
  border-top:1px solid var(--border);font-size:12.5px;color:var(--muted);
}
.solution-card__meta b{color:var(--ink)}
.why{
  display:grid;grid-template-columns:.95fr 1.05fr;gap:64px;align-items:center;
}
.why__shot{
  aspect-ratio:4/5;border-radius:var(--radius-xl);
  border:1px solid var(--border);box-shadow:var(--shadow-md);
  overflow:hidden;position:relative;
}
.why__shot .ph{height:100%;border-radius:var(--radius-xl)}
.why__photo{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  background-image:url('/wp-content/uploads/2026/06/couvreur-pose-panneaux-solaires-toiture.webp');
}
.why__list{list-style:none;display:flex;flex-direction:column;gap:22px;margin-top:24px}
.why__list li{display:flex;gap:16px;align-items:flex-start}
.why__list .why__check{
  flex:none;width:36px;height:36px;border-radius:50%;
  background:linear-gradient(135deg,var(--blue),var(--blue-700));
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 12px color-mix(in oklab,var(--blue) 32%,transparent),
             inset 0 1px 0 rgba(255,255,255,.2);
  margin-top:2px;
}
.why__list .why__check svg{
  width:18px;height:18px;stroke-width:2.6;
  color:#fff;stroke:#fff;
  display:block;
}
.why__list b{display:block;font-size:16px;color:var(--ink);margin-bottom:4px;font-weight:700}
.why__list span{font-size:14.5px;color:var(--muted);line-height:1.5;display:block}
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative}
.process-step{
  position:relative;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:28px 26px 24px;
  display:flex;flex-direction:column;gap:12px;
  box-shadow:var(--shadow-sm);
  transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s,border-color .2s;
  overflow:hidden;
}
.process-step:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.process-step__watermark{
  position:absolute;top:-8px;right:-2px;
  font-family:var(--font-display);font-weight:800;
  font-size:110px;line-height:1;letter-spacing:-.03em;
  color:var(--n-100);
  pointer-events:none;user-select:none;
  z-index:0;
}
.process-step__ico{
  position:relative;z-index:1;
  width:48px;height:48px;border-radius:12px;
  background:linear-gradient(135deg,var(--blue),var(--blue-700));
  display:flex;align-items:center;justify-content:center;
  color:#fff;
  box-shadow:0 6px 14px color-mix(in oklab,var(--blue) 35%,transparent),
             inset 0 1px 0 rgba(255,255,255,.18);
  margin-bottom:6px;
}
.process-step__ico svg{width:24px;height:24px;stroke-width:1.8}
.process-step__step{
  position:absolute;top:24px;right:24px;z-index:2;
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-body);
  font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);
}
.process-step__step::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--blue);box-shadow:0 0 0 3px color-mix(in oklab,var(--blue) 20%,transparent);
}
.process-step h3{
  position:relative;z-index:1;
  font-size:19px;font-weight:800;letter-spacing:-.015em;line-height:1.15;
  margin-bottom:2px;
}
.process-step p{
  position:relative;z-index:1;
  font-size:14px;color:var(--muted);line-height:1.55;
  flex:1;margin:0;
}
.process-step__delay{
  position:relative;z-index:1;
  display:inline-flex;align-items:center;gap:6px;width:fit-content;
  margin-top:8px;
  font-size:11.5px;font-weight:600;
  color:var(--blue-700);background:var(--blue-50);
  padding:5px 11px 5px 9px;border-radius:var(--radius-pill);
  border:1px solid var(--blue-200);
}
.process-step__delay svg{width:13px;height:13px;flex:none}
.simu-wrap{
  background:linear-gradient(135deg,var(--blue-600) 0%,var(--blue-800) 70%,#0e1e4e 100%);
  border-radius:var(--radius-xl);overflow:hidden;
  position:relative;
}
.simu-wrap::before{
  content:"";position:absolute;top:-100px;right:-100px;width:400px;height:400px;
  background:radial-gradient(circle,color-mix(in oklab,var(--amber) 18%,transparent),transparent 70%);
  border-radius:50%;
}
.simu-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;
  padding:64px;position:relative;z-index:1;align-items:center}
.simu-grid__left h2{color:#fff;font-size:36px;line-height:1.1}
.simu-grid__left h2 em{font-style:normal;color:var(--amber)}
.simu-grid__left p{color:#c4cee8;font-size:16px;margin-top:18px;max-width:42ch}
.simu-grid__left .kicker{color:var(--amber);margin-bottom:18px}
.simu-grid__left .kicker::before{background:var(--amber)}
.simu-bullets{list-style:none;margin-top:28px;display:flex;flex-direction:column;gap:12px}
.simu-bullets li{display:flex;gap:10px;align-items:center;color:#dde3f3;font-size:14px}
.simu-bullets svg{width:18px;height:18px;color:var(--amber);flex:none}
.simu-panel{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius-lg);padding:32px;
  backdrop-filter:blur(8px);
}
.simu-panel__label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#aebbdc;margin-bottom:14px}
.simu-panel__bill{
  font-family:var(--font-display);font-size:32px;font-weight:700;color:#fff;
  display:flex;align-items:baseline;gap:8px;margin-bottom:14px;
}
.simu-panel__bill small{font-size:14px;font-weight:500;color:#aebbdc}
.simu-range{
  width:100%;-webkit-appearance:none;appearance:none;height:6px;
  border-radius:3px;background:rgba(255,255,255,.15);outline:none;margin:18px 0 6px;
}
.simu-range::-webkit-slider-thumb{
  -webkit-appearance:none;width:24px;height:24px;border-radius:50%;
  background:var(--amber);border:3px solid #fff;cursor:pointer;
  box-shadow:0 4px 12px rgba(0,0,0,.3);
}
.simu-range::-moz-range-thumb{
  width:24px;height:24px;border-radius:50%;background:var(--amber);
  border:3px solid #fff;cursor:pointer;
}
.simu-scale{display:flex;justify-content:space-between;font-size:11.5px;color:#aebbdc;margin-bottom:24px}
.simu-result{
  background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-md);padding:20px 22px;margin-bottom:18px;
}
.simu-result__row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.simu-result__row:last-child{margin-bottom:0;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}
.simu-result__row span{font-size:14px;color:#aebbdc}
.simu-result__row b{font-family:var(--font-display);font-weight:700;color:#fff;font-size:23px}
.simu-result__row--big b{font-size:48px;color:var(--amber)}
.simu-result__row .simu-u{font-family:var(--font-body);font-weight:600;font-size:13px;color:#aebbdc;margin-left:6px}
.simu-result__row b.is-mono .simu-u{color:#fff}
.simu-result__row--big .simu-u{color:#fff;margin-left:7px}
.simu-panel .btn{width:100%}
.simu-disclaimer{font-size:11.5px;color:#8c97b6;text-align:center;margin-top:12px;line-height:1.45}
.aides__head{text-align:center;margin:0 auto 48px}
.aides__head h2{font-size:clamp(34px,3.8vw,46px);line-height:1.1;margin:14px 0 16px}
.aides__head p{font-size:17px;color:var(--muted);line-height:1.55}

.aides{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:stretch}
.aide-feature{
  position:relative;overflow:hidden;
  border-radius:var(--radius-xl);
  padding:44px 44px 40px;
  min-height:460px;
  display:flex;flex-direction:column;gap:16px;
  color:#fff;
  background:#1a1410;
  isolation:isolate;
}
.aide-feature__bg{
  position:absolute;inset:0;z-index:0;
  background-image:url('/wp-content/uploads/2026/06/panneaux-solaires-toiture-normandie.webp');
  background-size:cover;background-position:center;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
}
.aide-feature:hover .aide-feature__bg{transform:scale(1.04)}
.aide-feature__overlay{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(180deg, rgba(16,12,8,.74) 0%, rgba(16,12,8,.60) 45%, rgba(16,12,8,.78) 100%);
}
.aide-feature > *:not(.aide-feature__bg):not(.aide-feature__overlay){position:relative;z-index:2}
.aide-feature__tag{
  display:inline-flex;align-items:center;gap:8px;width:fit-content;
  background:var(--amber);color:var(--ink);
  padding:7px 14px;border-radius:var(--radius-pill);
  font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  box-shadow:0 4px 14px rgba(0,0,0,.3);
}
.aide-feature__tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink)}
.aide-feature__label{
  font-family:var(--font-body);font-size:12.5px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.85);
}
.aide-feature__number{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(96px,11vw,156px);
  line-height:.9;letter-spacing:-.04em;
  color:#fff;margin:6px 0;
  text-shadow:0 4px 30px rgba(0,0,0,.4);
}
.aide-feature__number sup{
  font-size:.32em;font-weight:700;color:var(--amber);
  margin-left:8px;vertical-align:top;top:.5em;position:relative;
}
.aide-feature__desc{
  font-size:16px;color:rgba(255,255,255,.92);line-height:1.55;
  margin:0;max-width:44ch;
  text-shadow:0 2px 12px rgba(0,0,0,.4);
}
.aide-feature__econo{
  display:inline-flex;align-items:center;gap:8px;width:fit-content;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.25);
  padding:9px 16px;border-radius:var(--radius-pill);
  font-size:13.5px;font-weight:600;color:#fff;
  margin-top:auto;
  backdrop-filter:blur(8px);
}
.aide-feature__econo svg{width:16px;height:16px;color:var(--amber)}
.aides__col{display:flex;flex-direction:column;gap:14px}
.aide-mini{
  position:relative;flex:1;
  background:var(--white);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
  padding:24px 28px;
  display:flex;flex-direction:column;gap:6px;
  transition:transform .2s,border-color .2s,box-shadow .2s;
  isolation:isolate;
}
.aide-mini::before{
  content:"";position:absolute;top:0;left:0;bottom:0;
  width:3px;border-radius:3px 0 0 3px;
  transition:width .2s;
}
.aide-mini--rachat::before  {background:var(--blue)}
.aide-mini--prime::before   {background:var(--green)}
.aide-mini--demarche::before{background:var(--ink)}
.aide-mini:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:var(--shadow-md)}
.aide-mini:hover::before{width:5px}

.aide-mini__eyebrow{
  font-family:var(--font-body);font-size:10.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}
.aide-mini--rachat   .aide-mini__eyebrow{color:var(--blue-700)}
.aide-mini--prime    .aide-mini__eyebrow{color:var(--green-700)}
.aide-mini--demarche .aide-mini__eyebrow{color:var(--ink)}

.aide-mini__num{
  font-family:var(--font-display);font-weight:800;
  font-size:46px;line-height:.95;letter-spacing:-.025em;
  margin:2px 0 2px;
  display:inline-flex;align-items:baseline;gap:6px;
}
.aide-mini--rachat   .aide-mini__num{color:var(--blue)}
.aide-mini--prime    .aide-mini__num{color:var(--green)}
.aide-mini--demarche .aide-mini__num{color:var(--ink)}
.aide-mini__num small{
  font-family:var(--font-body);font-size:13px;font-weight:600;
  color:var(--muted);letter-spacing:.04em;
  margin-left:2px;
}

.aide-mini h4{
  font-size:15.5px;font-weight:700;color:var(--ink);
  font-family:var(--font-body);line-height:1.25;margin-top:8px;
}
.aide-mini p{font-size:13.5px;color:var(--muted);line-height:1.5;margin:0}
.aide-mini__deco{
  position:absolute;top:22px;right:22px;
  width:28px;height:28px;color:var(--n-200);
  pointer-events:none;
  transition:color .2s;
}
.aide-mini__deco svg{width:100%;height:100%;stroke-width:1.4}
.aide-mini--rachat:hover   .aide-mini__deco{color:color-mix(in oklab,var(--blue) 50%,var(--n-200))}
.aide-mini--prime:hover    .aide-mini__deco{color:color-mix(in oklab,var(--green) 50%,var(--n-200))}
.aide-mini--demarche:hover .aide-mini__deco{color:color-mix(in oklab,var(--ink) 50%,var(--n-200))}

.aides__strip{
  margin-top:28px;
  display:flex;flex-direction:column;align-items:center;gap:18px;
  padding:30px 24px;
  background:var(--paper);border:1px solid var(--border);
  border-radius:var(--radius-lg);
}
.aides__strip-label{
  font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:0;
}
.aides__logos{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:14px;
}
.aide-logo{
  display:flex;align-items:center;justify-content:center;
  height:74px;min-width:164px;padding:0 24px;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);box-shadow:var(--shadow-sm);
  font-family:var(--font-display);font-weight:700;font-size:14.5px;
  letter-spacing:-.01em;color:var(--ink);text-align:center;line-height:1.12;
}
.aides__logos-note{
  font-family:var(--font-mono);font-size:11px;color:var(--muted);margin:0;
}

.aides__cta{display:flex;justify-content:center;margin-top:24px}
.proof{
  display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:stretch;
}
.proof-feature{
  position:relative;display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-lg);overflow:hidden;
  transition:transform .2s,box-shadow .2s,border-color .2s;
}
.proof-feature:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.proof-feature__img{
  height:280px;background-size:cover;background-position:center;position:relative;
  background-image:url('../assets/realisation-maison-bois-guillaume.webp');
}
.proof-feature__badge{
  position:absolute;top:16px;left:16px;
  display:inline-flex;align-items:center;gap:7px;
  background:var(--green);color:#fff;
  font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:6px 13px;border-radius:var(--radius-pill);box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.proof-feature__body{padding:26px 28px;display:flex;flex-direction:column;gap:14px;flex:1}
.proof-feature__title b{display:block;font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.01em;line-height:1.2}
.proof-feature__title span{font-size:13.5px;color:var(--muted);display:block;margin-top:3px}
.proof-feature__stats{display:flex;gap:24px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.proof-feature__stat{flex:1;min-width:0}
.proof-feature__stat b{display:block;font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--green-700);line-height:1}
.proof-feature__stat span{font-size:12px;color:var(--muted);margin-top:4px;display:block}
.proof-feature__quote{display:flex;flex-direction:column;gap:8px}
.proof-feature__stars{display:flex;gap:2px;color:var(--amber)}
.proof-feature__stars svg{width:16px;height:16px;fill:var(--amber)}
.proof-feature__quote p{font-size:14.5px;color:var(--n-700);line-height:1.55;font-style:italic;margin:0}
.proof-feature__quote cite{font-size:13px;color:var(--muted);font-style:normal}
.proof-feature__quote cite b{color:var(--ink);font-weight:600}
.proof__col{display:flex;flex-direction:column;gap:24px}
.proof-card{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;
  min-height:248px;flex:1;isolation:isolate;color:#fff;
  border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;
  transition:transform .2s,box-shadow .2s;
}
.proof-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.proof-card__img{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.proof-card:hover .proof-card__img{transform:scale(1.05)}
.proof-card__overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(15,20,28,.15) 0%,rgba(15,20,28,.55) 48%,rgba(13,17,24,.9) 100%)}
.proof-card__body{position:relative;z-index:2;padding:22px 24px;display:flex;flex-direction:column;gap:5px;align-items:flex-start;text-align:left}
.proof-card__eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-400);text-shadow:0 1px 6px rgba(0,0,0,.55)}
.proof-card__body b{font-family:var(--font-display);font-size:20px;font-weight:800;color:#fff;line-height:1.15;letter-spacing:-.01em;text-shadow:0 2px 12px rgba(0,0,0,.55)}
.proof-card__loc{font-size:13px;color:rgba(255,255,255,.82);text-shadow:0 1px 6px rgba(0,0,0,.55)}
.proof-card__meta{display:flex;gap:20px;flex-wrap:wrap;margin-top:10px;padding-top:12px;border-top:1px solid rgba(255,255,255,.22);font-size:12.5px;color:rgba(255,255,255,.85);text-shadow:0 1px 6px rgba(0,0,0,.55)}
.proof-card__meta b{font-family:var(--font-body);color:#fff;font-weight:700;font-size:13px}
.anchor{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
}
.anchor-card{
  position:relative;overflow:hidden;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:28px;
  display:flex;flex-direction:column;gap:10px;
  transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s,border-color .2s;
}
.anchor-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.anchor-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px}
.anchor-card--loc::before{background:var(--green)}
.anchor-card--metiers::before{background:var(--blue)}
.anchor-card--certif::before{background:var(--amber)}
.anchor-card--since::before{background:var(--ink)}
.anchor-card__bg{position:absolute;right:-16px;bottom:-16px;width:104px;height:104px;opacity:.05;pointer-events:none}
.anchor-card__bg svg{width:100%;height:100%}
.anchor-card__ico{
  width:50px;height:50px;border-radius:13px;color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 6px 14px rgba(31,42,46,.12);
  display:flex;align-items:center;justify-content:center;margin-bottom:6px;position:relative;
}
.anchor-card--loc .anchor-card__ico{background:linear-gradient(135deg,var(--green),var(--green-700))}
.anchor-card--metiers .anchor-card__ico{background:linear-gradient(135deg,var(--blue),var(--blue-700))}
.anchor-card--certif .anchor-card__ico{background:linear-gradient(135deg,var(--amber),var(--amber-700));color:var(--ink)}
.anchor-card--since .anchor-card__ico{background:linear-gradient(135deg,#2a363c,var(--ink))}
.anchor-card__ico svg{width:24px;height:24px}
.anchor-card__num{font-family:var(--font-display);font-size:34px;font-weight:800;line-height:1;letter-spacing:-.02em;position:relative}
.anchor-card--loc .anchor-card__num{color:var(--green-700)}
.anchor-card--metiers .anchor-card__num{color:var(--blue-700)}
.anchor-card--certif .anchor-card__num{color:var(--amber-700)}
.anchor-card--since .anchor-card__num{color:var(--ink)}
.anchor-card__num small{font-size:16px;font-weight:600;margin-left:2px;opacity:.7}
.anchor-card__label{font-size:13.5px;color:var(--muted);line-height:1.45;position:relative}
.anchor-card__label b{color:var(--ink);font-weight:700}
.faq{max-width:820px;margin:0 auto}
.faq-item{
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius-md);margin-bottom:12px;overflow:hidden;
}
.faq-item summary{
  list-style:none;cursor:pointer;
  padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;
  font-weight:600;font-size:16px;color:var(--ink);
  transition:background .15s;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary:hover{background:var(--paper)}
.faq-item summary::after{
  content:"+";flex:none;width:32px;height:32px;border-radius:50%;
  background:var(--green-50);color:var(--green-700);
  display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:600;
  transition:transform .2s,background .15s;
}
.faq-item[open] summary::after{transform:rotate(45deg);background:var(--green);color:#fff}
.faq-item__body{padding:0 24px 24px;font-size:15px;color:var(--n-700);line-height:1.65;border-top:1px solid var(--border);padding-top:18px}
.footer--light{
  background:var(--paper);color:var(--n-700);
  border-top:3px solid var(--green);
}
.footer--light .footer__bottom{color:var(--muted)}
.footer__badge{
  display:inline-flex;align-items:center;gap:6px;
  font-size:11.5px;font-weight:600;color:var(--ink);
  background:var(--white);border:1px solid var(--border);
  padding:6px 12px;border-radius:var(--radius-pill);
}
.footer__social a{
  width:38px;height:38px;border-radius:10px;
  border:1px solid var(--border);background:var(--white);
  display:flex;align-items:center;justify-content:center;color:var(--ink);
  transition:border-color .15s,color .15s,transform .15s;
}
.footer--light .footer__bottom{align-items:center}
.cta-final{
  background:var(--ink);color:#fff;
  border-radius:var(--radius-xl);overflow:hidden;
  position:relative;
}
.cta-final::before{
  content:"";position:absolute;top:-100px;left:-100px;width:400px;height:400px;
  background:radial-gradient(circle,color-mix(in oklab,var(--green) 30%,transparent),transparent 65%);
  border-radius:50%;
}
.cta-final::after{
  content:"";position:absolute;bottom:-150px;right:-100px;width:500px;height:500px;
  background:radial-gradient(circle,color-mix(in oklab,var(--blue) 35%,transparent),transparent 65%);
  border-radius:50%;
}
.cta-final__grid{
  display:block;
  padding:64px;position:relative;z-index:1;
}
.cta-final__grid h2{max-width:none}
.cta-final__grid p{max-width:none}
.cta-final h2{color:#fff;font-size:42px;line-height:1.08;letter-spacing:-.02em}
.cta-final h2 em{font-style:normal;color:var(--green-300)}
.cta-final p{color:#cfd6d4;font-size:17px;margin-top:18px;max-width:42ch;line-height:1.55}
.cta-final__buttons{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.cta-final__trust{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}

.cta-final__map{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-lg);padding:28px;
}
.cta-final__map h4{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--amber);
  font-family:var(--font-body);font-weight:700;margin-bottom:16px}
.cta-final__map-svg{
  aspect-ratio:1/1;background:rgba(255,255,255,.03);border-radius:var(--radius-md);
  padding:16px;margin-bottom:20px;
}
.cta-final__cities{display:flex;flex-wrap:wrap;gap:8px}
.cta-final__cities span{
  font-size:12.5px;font-weight:500;color:#cfd6d4;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  padding:5px 11px;border-radius:var(--radius-pill);
}
.cta-final__cities span.major{background:rgba(255,255,255,.12);color:#fff;font-weight:600}
.tva-bar{
  background:linear-gradient(90deg,var(--green-100),var(--green-50),var(--green-100));
  border-bottom:1px solid var(--green-200);
  padding:10px 0;font-size:13.5px;text-align:center;color:var(--ink);
}
.tva-bar b{color:var(--green-700)}
.tva-bar a{color:var(--green-700);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.diff__top{
  display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:64px;align-items:start;
}
.diff__kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--green-400);
}
.diff__kicker::before{
  content:"";width:8px;height:8px;border-radius:50%;background:var(--green-400);
  box-shadow:0 0 0 4px color-mix(in oklab,var(--green) 22%,transparent);
}
.diff__meta li{
  font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.45);
}
.diff__title{
  font-size:clamp(38px,4.6vw,62px);line-height:1.02;letter-spacing:-.025em;color:#fff;margin:0;
}
@media (max-width:860px){
  .diff__top{grid-template-columns:1fr;gap:32px}
  .diff__grid{grid-template-columns:1fr;gap:32px}
}
.section__head h2,
.why h2{
  font-size:clamp(34px,3.6vw,46px);
  line-height:1.12;letter-spacing:-.02em;
}
.cta-band__bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center right;
  background-image:url('/wp-content/uploads/2026/06/panneaux-solaires-au-sol-normandie.webp')}
.cta-band__overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(15,20,28,.97) 0%,rgba(15,20,28,.9) 42%,rgba(15,20,28,.66) 76%,rgba(15,20,28,.48) 100%)}
.cta-band__inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:56px;
  padding-top:76px;padding-bottom:76px;flex-wrap:wrap}
.cta-band__text{max-width:640px;min-width:0}
.cta-band__actions{display:flex;flex-direction:column;gap:14px;flex:none;width:280px}
.cta-band__actions .btn{width:100%}
@media (max-width:860px){
  .cta-band__inner{flex-direction:column;align-items:flex-start;gap:32px}
  .cta-band__actions{width:100%;max-width:360px}
}
.heroB__eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.82);background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);padding:7px 14px;border-radius:var(--radius-pill);
  backdrop-filter:blur(6px);margin-bottom:28px;
}
.router-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.router-card{
  position:relative;min-height:450px;
  border-radius:var(--radius-lg);overflow:hidden;
  text-decoration:none;color:inherit;
  display:flex;flex-direction:column;justify-content:flex-end;
  box-shadow:var(--shadow-sm);
  transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s;
}

.sol-hero{position:relative;overflow:hidden;color:#fff;isolation:isolate;background:var(--ink)}
.sol-hero__bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;background-image:url('../assets/realisation-maison-bois-guillaume.webp')}
.sol-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(15,20,28,.95) 0%,rgba(15,20,28,.86) 40%,rgba(15,20,28,.55) 72%,rgba(15,20,28,.32) 100%)}
.sol-hero__inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:84px 32px 88px}
.sol-hero__eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-300);margin-bottom:20px}
.sol-hero__eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green-300);box-shadow:0 0 10px var(--green)}
.sol-hero h1{color:#fff;font-size:clamp(38px,5vw,64px);line-height:1.04;letter-spacing:-.025em;max-width:18ch;margin:0}
.sol-hero h1 em{font-style:normal;color:var(--green)}
.sol-hero__lead{font-size:19px;line-height:1.55;color:rgba(255,255,255,.9);max-width:54ch;margin:22px 0 32px}
.sol-hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:30px}
.sol-hero__cta .btn--secondary{background:rgba(255,255,255,.1)!important;color:#fff!important;border-color:rgba(255,255,255,.35)!important;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.sol-hero__cta .btn--secondary:hover{background:rgba(255,255,255,.2)!important;border-color:rgba(255,255,255,.6)!important}
.sol-hero__mini{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;font-weight:500;color:rgba(255,255,255,.82)}
.sol-hero__mini span{display:inline-flex;align-items:center;gap:7px}
.sol-hero__mini svg{width:15px;height:15px;color:var(--green-300)}

.def__grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.def__lead p{font-size:16.5px;line-height:1.7;color:var(--n-700);margin-top:16px}
.def__lead p strong{color:var(--ink);font-weight:700}
.forwho{display:flex;flex-direction:column;gap:12px}
.forwho__label{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.forwho a{display:flex;align-items:center;gap:14px;padding:15px 18px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s}
.forwho a:hover{border-color:var(--border-strong);transform:translateX(3px);box-shadow:var(--shadow-sm)}
.forwho__ico{width:42px;height:42px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center}
.forwho__ico svg{width:23px;height:23px}
.forwho__ico--green{background:var(--green-50);color:var(--green-700);border:1px solid var(--green-200)}
.forwho__ico--blue{background:var(--blue-50);color:var(--blue-700);border:1px solid var(--blue-200)}
.forwho__ico--amber{background:var(--amber-50);color:var(--amber-700);border:1px solid var(--amber-200)}
.forwho__txt b{display:block;font-size:15.5px;color:var(--ink);font-weight:700}
.forwho__txt span{font-size:13px;color:var(--muted)}
.forwho a > svg{margin-left:auto;width:17px;height:17px;color:var(--n-300);flex:none;transition:transform .15s,color .15s}
.forwho a:hover > svg{transform:translateX(3px);color:var(--primary)}

.benefits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.benefit{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 26px;display:flex;flex-direction:column;gap:7px;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s}
.benefit:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.benefit::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--green)}
.benefit__num{font-family:var(--font-display);font-size:38px;font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--green-700)}
.benefit__num small{font-size:16px;font-weight:600;color:var(--muted);margin-left:2px}
.benefit h3{font-size:15.5px;font-weight:700;color:var(--ink);font-family:var(--font-body);margin-top:4px}
.benefit p{font-size:13.5px;color:var(--muted);line-height:1.5;margin:0}

.plus{background:var(--ink);color:#fff}
.plus__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}
.plus__photo{aspect-ratio:4/5;border-radius:var(--radius-xl);overflow:hidden;background-size:cover;background-position:center;background-image:url('../assets/toiture-panneaux-ardoise.webp');border:1px solid rgba(255,255,255,.12)}
.plus__eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-400);display:inline-flex;align-items:center;gap:9px;margin-bottom:16px}
.plus__eyebrow::before{content:"";width:24px;height:2px;background:var(--green-300);border-radius:2px}
.plus h2{color:#fff;font-size:clamp(30px,3.4vw,44px);line-height:1.08;letter-spacing:-.02em}
.plus h2 em{font-style:normal;color:var(--green-300)}
.plus__lead{font-size:17px;line-height:1.6;color:rgba(255,255,255,.82);margin:18px 0 26px;max-width:50ch}
.plus__list{list-style:none;display:flex;flex-direction:column;gap:18px}
.plus__list li{display:flex;gap:15px;align-items:flex-start}
.plus__check{flex:none;width:22px;height:22px;display:block;color:var(--green-300);margin-top:1px}
.plus__check svg{display:block;width:22px;height:22px;stroke:currentColor;stroke-width:2.4;fill:none}
.plus__list b{display:block;font-size:16px;color:#fff;margin-bottom:3px;font-weight:700}
.plus__list span{font-size:14.5px;color:rgba(255,255,255,.7);line-height:1.5;display:block}

.reviews__head{display:flex;justify-content:center;margin-bottom:36px}
.reviews__rating{display:inline-flex;align-items:center;gap:10px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-pill);padding:9px 18px;box-shadow:var(--shadow-sm);font-size:13.5px;color:var(--muted)}
.reviews__rating b{font-size:18px;color:var(--ink);font-family:var(--font-display)}
.reviews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.review{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px;display:flex;flex-direction:column;gap:14px}
.review__stars{display:flex;gap:2px;color:var(--amber)}
.review__stars svg{width:16px;height:16px;fill:var(--amber)}
.review p{font-size:14.5px;line-height:1.6;color:var(--n-700);margin:0;flex:1;font-style:italic}
.review__by{display:flex;align-items:center;gap:11px;padding-top:14px;border-top:1px solid var(--border)}
.review__av{width:38px;height:38px;border-radius:50%;background:var(--green-100);color:var(--green-700);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex:none}
.review__by>span b{font-size:14px;color:var(--ink);font-weight:700;display:block}
.review__by>span span{font-size:12.5px;color:var(--muted)}

.zone{background:var(--paper)}
.zone__grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.zone__map{aspect-ratio:4/3;border-radius:var(--radius-lg);border:1px solid var(--border);position:relative;overflow:hidden}
.zone__cities{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.zone__cities span{font-size:13px;font-weight:500;color:var(--n-700);background:var(--white);border:1px solid var(--border);padding:7px 14px;border-radius:var(--radius-pill)}
.zone__cities span.major{background:var(--green-50);border-color:var(--green-200);color:var(--green-700);font-weight:600}

.related-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.related-card{position:relative;min-height:230px;border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;color:#fff;border:1px solid var(--border)}
.related-card__body b{font-family:var(--font-display);font-size:22px;font-weight:800;color:#fff;display:block;text-shadow:0 2px 10px rgba(0,0,0,.5)}

@media (max-width:900px){
  .def__grid,.plus__grid,.zone__grid{grid-template-columns:1fr;gap:36px}
  .benefits-grid{grid-template-columns:1fr 1fr}
  .reviews__grid,.related-grid{grid-template-columns:1fr}
}
.shero{position:relative;overflow:hidden;border-bottom:1px solid var(--border);
  background:radial-gradient(58% 80% at 92% -12%, var(--green-50), transparent 55%),radial-gradient(48% 70% at -6% 8%, var(--blue-50), transparent 55%),var(--white)}
.shero__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center;padding:72px 0 88px}
.shero__tag{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-700);background:var(--green-50);border:1px solid var(--green-200);padding:7px 14px;border-radius:var(--radius-pill);margin-bottom:22px}
.shero__tag svg{width:14px;height:14px}
.shero h1{font-size:clamp(38px,5vw,62px);line-height:1.03;letter-spacing:-.025em;color:var(--ink);max-width:15ch;margin:0}
.shero h1 em{font-style:normal;color:var(--green)}
.shero__lead{font-size:18px;line-height:1.6;color:var(--n-700);max-width:50ch;margin:22px 0 30px}
.shero__lead b{color:var(--ink);font-weight:700}
.shero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:34px}
.shero__kpi{display:flex;flex-wrap:wrap;gap:18px 14px;padding-top:26px;border-top:1px solid var(--border)}
.shero__kpi>div{flex:1;min-width:130px}
.shero__kpi b{display:block;font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1}
.shero__kpi span{font-size:12.5px;color:var(--muted);margin-top:7px;display:block;line-height:1.35}
.shero__visual{position:relative}
.shero__shot{aspect-ratio:4/5;border-radius:var(--radius-xl);overflow:hidden;background-size:cover;background-position:center;background-image:url('../assets/realisation-maison-bois-guillaume.webp');box-shadow:var(--shadow-lg);border:1px solid var(--border)}
.shero__vtag{position:absolute;top:-16px;right:-10px;display:inline-flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-pill);padding:9px 15px;box-shadow:var(--shadow-md);font-size:13px;font-weight:700;color:var(--ink)}
.shero__vtag svg{width:16px;height:16px;color:var(--green)}
.shero__vcard{position:absolute;bottom:-24px;left:-28px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 22px;box-shadow:var(--shadow-lg);min-width:258px}
.shero__vrow{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:7px 0}
.shero__vrow+.shero__vrow{border-top:1px solid var(--border)}
.shero__vrow span{font-size:13px;color:var(--muted);white-space:nowrap}
.shero__vrow b{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--ink);white-space:nowrap}
.shero__vrow b.acc{color:var(--green-700)}
.subnav{position:fixed;left:0;right:0;top:78px;z-index:40;background:rgba(255,255,255,.92);-webkit-backdrop-filter:saturate(180%) blur(10px);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--border);transform:translateY(-14px);opacity:0;visibility:hidden;transition:opacity .28s ease,transform .28s ease,visibility .28s}
.subnav.is-visible{transform:translateY(0);opacity:1;visibility:visible}
.subnav__inner{max-width:var(--maxw);margin:0 auto;padding:0 32px;height:54px;display:flex;align-items:center;gap:18px}
.subnav__title{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex:none}
.subnav__links{display:flex;align-items:center;justify-content:center;gap:0;overflow-x:auto;flex:1;scrollbar-width:none}
.subnav__links::-webkit-scrollbar{display:none}
.subnav__links a{display:inline-flex;align-items:center;font-size:13.5px;font-weight:500;color:var(--n-700);text-decoration:none;white-space:nowrap;padding:8px 11px;border-radius:var(--radius-sm);transition:background .15s,color .15s}
.subnav__links a:not(:first-child)::before{content:"";flex:none;width:3px;height:3px;border-radius:50%;background:var(--n-300);margin:0 9px 0 -2px}
.subnav__links a:hover{background:var(--paper);color:var(--primary-ink)}
.subnav__cta{flex:none}
section[id]{scroll-margin-top:140px}
@media(max-width:980px){.subnav__title{display:none}}
.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.mode{position:relative;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 26px;display:flex;flex-direction:column;gap:18px;transition:transform .2s,box-shadow .2s,border-color .2s}
.mode:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.mode--reco{border-color:var(--green);box-shadow:0 0 0 1px var(--green),var(--shadow-md);background:linear-gradient(180deg,var(--green-50),var(--white) 42%)}
.mode--reco:hover{box-shadow:0 0 0 1px var(--green),var(--shadow-lg)}
.mode__badge{position:absolute;top:-12px;left:26px;background:var(--green);color:#fff;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:var(--radius-pill);box-shadow:0 4px 12px color-mix(in oklab,var(--green) 35%,transparent)}
.mode__head{display:flex;align-items:center;gap:14px}
.mode__head-ico{width:46px;height:46px;border-radius:12px;flex:none;background:var(--green-50);color:var(--green-700);border:1px solid var(--green-200);display:flex;align-items:center;justify-content:center}
.mode__head-ico svg{width:24px;height:24px}
.mode--reco .mode__head-ico{background:linear-gradient(135deg,var(--green),var(--green-700));color:#fff;border-color:transparent}
.mode__head h3{font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.01em;line-height:1.15}
.mode__head>div span{font-size:12.5px;color:var(--muted)}
.mode__list{list-style:none;display:flex;flex-direction:column;gap:11px;flex:1}
.mode__list li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--n-700);line-height:1.45}
.mode__list li svg{flex:none;width:17px;height:17px;color:var(--green);margin-top:2px}
.mode__list li.neutral{color:var(--muted)}
.mode__list li.neutral svg{color:var(--n-300)}
.mode__roi{background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:15px 18px;text-align:center}
.mode--reco .mode__roi{background:var(--green-50);border-color:var(--green-200)}
.mode__roi>span{display:block;font-size:12px;color:var(--muted)}
.mode__roi b{display:block;font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--green-700);letter-spacing:-.02em;margin:3px 0}
@media(max-width:900px){.modes{grid-template-columns:1fr}}
.kicker--amber{color:var(--amber-700)}
.kicker--amber::before{background:var(--amber)}
.shero__tag--amber{color:var(--amber-700);background:var(--amber-50);border-color:var(--amber-200)}
.shero__shot--agri{background-image:url('../assets/realisation-hangar-yvetot.webp')!important}
.stakes{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.stakes__head h2{font-size:clamp(30px,3.4vw,42px);line-height:1.08;letter-spacing:-.02em;margin-top:6px}
.stakes__head h2 em{font-style:normal;color:var(--amber-700)}
.stakes__head p{font-size:16.5px;line-height:1.65;color:var(--n-700);margin-top:16px}
.stakes__list{list-style:none;display:flex;flex-direction:column;gap:13px}
.stakes__list li{display:flex;gap:15px;align-items:flex-start;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:17px 20px}
.stakes__list li>svg{flex:none;width:24px;height:24px;color:var(--amber-700);margin-top:1px}
.stakes__list b{display:block;font-size:15.5px;color:var(--ink);font-weight:700}
.stakes__list span{font-size:13.5px;color:var(--muted);line-height:1.5}
@media(max-width:900px){.stakes{grid-template-columns:1fr;gap:32px}}
.roi-table{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.roi-table__head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 28px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.roi-table__head h3{font-size:19px;font-weight:800;color:var(--ink)}
.roi-table__head p{font-size:13.5px;color:var(--muted);margin-top:4px}
.roi-table__head-tag{font-size:12px;font-weight:600;color:var(--amber-700);background:var(--amber-50);border:1px solid var(--amber-200);padding:6px 12px;border-radius:var(--radius-pill)}
.roi-rows{display:flex;flex-direction:column}
.roi-row{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:16px;align-items:center;padding:18px 28px;border-bottom:1px solid var(--border)}
.roi-row:last-child{border-bottom:0}
.roi-row--header{background:var(--paper);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.roi-row__type{display:flex;align-items:center;gap:13px}
.roi-row__type-ico{width:42px;height:42px;border-radius:11px;flex:none;background:var(--amber-50);color:var(--amber-700);border:1px solid var(--amber-200);display:grid;place-items:center}
.roi-row__type-ico svg{width:22px;height:22px}
.roi-row__type b{display:block;font-size:15px;color:var(--ink);font-weight:700}
.roi-row__type span{font-size:12.5px;color:var(--muted)}
.roi-row__val b{display:block;font-family:var(--font-display);font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.roi-row__val span{font-size:12px;color:var(--muted);margin-top:2px;display:block}
.roi-row__val--accent b{color:var(--amber-700);font-size:19px}
.roi-table__foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 28px;background:var(--paper);font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.roi-table__foot a{color:var(--amber-700);font-weight:700;text-decoration:none}
@media(max-width:860px){.roi-row{grid-template-columns:1fr 1fr;gap:10px}.roi-row--header{display:none}.roi-row__type{grid-column:1/-1}}
.agri-solutions{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.agri-sol{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s}
.agri-sol:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.agri-sol__img{height:178px;background-size:cover;background-position:center}
.agri-sol__body{padding:22px 24px;display:flex;flex-direction:column;gap:9px;flex:1}
.agri-sol__body h3{font-size:19px;font-weight:800;color:var(--ink)}
.agri-sol__desc{font-size:14px;color:var(--muted);line-height:1.55;flex:1}
.agri-sol__meta{display:flex;gap:18px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--border)}
.agri-sol__meta b{display:block;font-family:var(--font-display);font-size:14.5px;font-weight:800;color:var(--ink)}
.agri-sol__meta span{font-size:12px;color:var(--muted)}
@media(max-width:900px){.agri-solutions{grid-template-columns:1fr}}
.models{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.model{position:relative;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:30px 28px;display:flex;flex-direction:column;gap:15px}
.model--tiers{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber),var(--shadow-md);background:linear-gradient(180deg,var(--amber-50),var(--white) 38%)}
.model__num{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--amber-700)}
.model h3{font-size:21px;font-weight:800;color:var(--ink);line-height:1.2}
.model h3 em{font-style:normal;color:var(--amber-700)}
.model__intro{font-size:14.5px;color:var(--n-700);line-height:1.6}
.model__list{list-style:none;display:flex;flex-direction:column;gap:10px;flex:1}
.model__list li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--n-700);line-height:1.45}
.model__list li svg{flex:none;width:17px;height:17px;color:var(--amber-600);margin-top:2px}
.model__stat{display:flex;align-items:baseline;justify-content:space-between;gap:12px;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 18px}
.model--tiers .model__stat{background:var(--amber-50);border-color:var(--amber-200)}
.model__stat span{font-size:13px;color:var(--muted)}
.model__stat b{font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--amber-700);letter-spacing:-.02em}
@media(max-width:900px){.models{grid-template-columns:1fr}}
.dispos{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.dispo{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 22px;display:flex;flex-direction:column;gap:9px}
.dispo--feat{border-color:var(--amber-200);background:var(--amber-50)}
.dispo__ico{width:46px;height:46px;border-radius:12px;background:var(--green-50);color:var(--green-700);border:1px solid var(--green-200);display:grid;place-items:center}
.dispo__ico svg{width:23px;height:23px}
.dispo b{font-size:15.5px;color:var(--ink);font-weight:700}
.dispo p{font-size:13px;color:var(--muted);line-height:1.5}
.dispos+p{margin-top:24px}
@media(max-width:900px){.dispos{grid-template-columns:1fr 1fr}}
.chero{position:relative;overflow:hidden;color:#fff;isolation:isolate;background:#16281d}
.chero__bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;background-image:url('../assets/realisation-maison-bois-guillaume.webp');opacity:.6}
.chero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(12,20,16,.34) 0%,rgba(12,20,16,.08) 36%,transparent 60%)}
.chero__inner{position:relative;z-index:2;display:grid;grid-template-columns:1.5fr .5fr;gap:56px;align-items:center;padding-top:80px;padding-bottom:84px}
.chero__tag{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);background:rgba(244,182,22,.14);border:1px solid rgba(244,182,22,.42);padding:7px 14px;border-radius:var(--radius-pill);margin-bottom:22px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.chero__tag svg{width:15px;height:15px}
.chero__tag::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px var(--amber);flex:none}
.chero h1{color:#fff;font-size:clamp(40px,5.2vw,66px);line-height:1.02;letter-spacing:-.025em;margin:0;text-shadow:3px 3px 11px rgb(0 0 0 / 46%)}
.chero h1 em{font-style:normal;color:var(--amber)}
.chero__lead{font-size:19px;line-height:1.55;color:rgba(255,255,255,.94);margin:22px 0 32px;text-shadow:0 1px 10px rgba(0,0,0,.7)}
.chero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:34px}
.chero__cta .btn--secondary{background:rgba(255,255,255,.1)!important;color:#fff!important;border-color:rgba(255,255,255,.35)!important;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.chero__cta .btn--secondary:hover{background:rgba(255,255,255,.2)!important;border-color:rgba(255,255,255,.6)!important}
.chero__kpi{display:flex;flex-wrap:wrap;gap:18px 14px;padding-top:24px;border-top:1px solid rgba(255,255,255,.18)}
.chero__kpi>div{flex:1;min-width:130px}
.chero__kpi b{display:block;font-family:var(--font-display);font-size:24px;font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.chero__kpi span{font-size:12.5px;color:rgba(255,255,255,.8);margin-top:7px;display:block;line-height:1.35;text-shadow:0 1px 6px rgba(0,0,0,.7)}
.chero__card{align-self:end;justify-self:end;max-width:300px;width:100%;margin-bottom:6px;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:var(--radius-lg);padding:18px 22px;box-shadow:0 18px 40px -16px rgba(0,0,0,.55)}
.chero__card-label{font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--amber-700);display:block;margin-bottom:8px}
.chero__card-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 0}
.chero__card-row+.chero__card-row{border-top:1px solid rgba(0,0,0,.08)}
.chero__card-row span{font-size:12px;color:var(--muted)}
.chero__card-row b{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--ink);white-space:nowrap}
.chero__card-row b.acc{color:var(--amber-700)}
@media(max-width:900px){.chero__inner{grid-template-columns:1fr;gap:36px}.chero__card{justify-self:start;align-self:start;max-width:280px}}
.reviews-empty{max-width:760px;margin:0 auto;background:var(--white);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:44px 40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.reviews-empty__ico{width:56px;height:56px;border-radius:14px;background:var(--green-50);color:var(--green-700);border:1px solid var(--green-200);display:flex;align-items:center;justify-content:center}
.reviews-empty__ico svg{width:28px;height:28px}
.reviews-empty h3{font-size:21px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.reviews-empty p{font-size:15px;color:var(--muted);line-height:1.6;max-width:52ch;margin:0}
.reviews-empty .btn{margin-top:8px}
.page-hero{
  position:relative;overflow:hidden;isolation:isolate;color:#fff;
  background:var(--ink);
  padding:72px 0 80px;
}
.page-hero__bg{
  position:absolute;inset:0;z-index:0;
  background-image:url('../assets/realisation-maison-bois-guillaume.webp');
  background-size:cover;background-position:center 38%;
}
.page-hero__overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(16,22,28,.74) 0%, rgba(16,22,28,.62) 42%, rgba(16,22,28,.80) 100%);
}
.page-hero h1{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(34px,5vw,58px);line-height:1.07;letter-spacing:-.025em;
  color:#fff;text-wrap:balance;margin:0 auto 22px;max-width:24ch;
  text-shadow:0 2px 24px rgba(0,0,0,.35);
}
.page-hero[data-accent="amber"] h1 em{font-style:normal;color:var(--amber)}
.page-hero .lede{
  font-size:clamp(18px,2vw,21px);line-height:1.6;color:rgba(255,255,255,.92);
  max-width:62ch;margin:0 auto;text-wrap:pretty;text-shadow:0 1px 14px rgba(0,0,0,.3);
}
.page-hero__meta{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px;margin-top:26px;
  font-size:13.5px;color:rgba(255,255,255,.72);
}
.page-hero__meta time{font-weight:600;color:#fff}
.update-note{
  display:flex;gap:15px;align-items:flex-start;
  background:var(--amber-50);border:1px solid var(--amber-200);
  border-radius:var(--radius-lg);padding:20px 22px;margin:32px 0 0;
}
.update-note__ico{flex:none;width:24px;height:24px;color:var(--amber-700);margin-top:1px}
.update-note__ico svg{width:100%;height:100%;stroke-width:1.8}
.update-note b{color:var(--ink);font-family:var(--font-display);font-size:15.5px}
.update-note p{margin:5px 0 0;font-size:15px;line-height:1.6;color:var(--n-900)}
.wrap.article{
  display:grid;grid-template-columns:238px minmax(0,1fr);
  gap:60px;align-items:start;padding-top:52px;padding-bottom:16px;
}
@media(max-width:920px){.wrap.article{grid-template-columns:1fr;gap:0;padding-top:36px}}
.toc{position:sticky;top:96px}
@media(max-width:920px){.toc{position:static;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--border)}}
.toc__label{font-family:var(--font-body);font-size:11.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--border);
  display:flex;flex-direction:column}
.toc a{display:block;padding:7px 0 7px 16px;margin-left:-1px;
  font-size:13.5px;line-height:1.35;color:var(--muted);text-decoration:none;
  border-left:2px solid transparent;transition:color .15s,border-color .15s}
.toc a:hover{color:var(--ink)}
.toc a.is-active{color:var(--primary-ink);border-left-color:var(--green);font-weight:600}
.prose{max-width:72ch}
.prose>section{scroll-margin-top:96px}
.prose>*+section{margin-top:52px}
.prose h2{font-family:var(--font-display);font-weight:800;
  font-size:clamp(26px,3vw,34px);line-height:1.16;letter-spacing:-.02em;
  color:var(--ink);margin:0 0 16px;text-wrap:balance}
.prose h3{font-family:var(--font-display);font-weight:700;font-size:20px;
  line-height:1.28;color:var(--ink);margin:30px 0 10px}
.prose p{font-size:17px;line-height:1.72;color:var(--n-900);margin:0 0 18px;text-wrap:pretty}
.prose a{color:var(--primary-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.prose a:hover{color:var(--green)}
.prose strong{font-weight:700;color:var(--ink)}
.prose ul{margin:0 0 22px;padding:0;list-style:none;display:flex;flex-direction:column;gap:11px}
.prose ul li{position:relative;padding-left:28px;font-size:16.5px;line-height:1.6;color:var(--n-900)}
.prose ul li::before{content:"";position:absolute;left:2px;top:8px;width:9px;height:9px;border-radius:2px;background:var(--green)}
.prose ul li b{color:var(--ink)}
.aide-table-wrap{width:100%;max-width:100%;overflow-x:auto;margin:24px 0 28px;border:1px solid var(--border);border-radius:var(--radius-lg)}
.prose{min-width:0}
.aide-table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:600px}
.aide-table th,.aide-table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.45}
.aide-table thead th{background:var(--ink);color:#fff;font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.aide-table tbody tr:nth-child(even){background:var(--paper)}
.aide-table tbody tr:last-child td{border-bottom:0}
.aide-table td b{color:var(--ink)}
.aide-table .yes{color:var(--green-700);font-weight:700}
.aide-table .no{color:var(--muted);font-weight:600}
.callout{display:flex;gap:13px;align-items:flex-start;border:1px solid var(--border);
  border-radius:var(--radius-lg);padding:17px 20px;margin:24px 0;background:var(--paper)}
.callout__ico{flex:none;width:21px;height:21px;margin-top:2px}
.callout__ico svg{width:100%;height:100%;stroke-width:1.9}
.callout p{margin:0;font-size:15.5px;line-height:1.6;color:var(--n-900)}
.callout p+p{margin-top:8px}
.callout b{color:var(--ink)}
.callout--info{background:var(--blue-50);border-color:var(--blue-200)}
.callout--info .callout__ico{color:var(--blue)}
.callout--warn{background:var(--amber-50);border-color:var(--amber-200)}
.callout--warn .callout__ico{color:var(--amber-700)}
.callout--tip{background:var(--green-50);border-color:var(--green-200)}
.callout--tip .callout__ico{color:var(--green-700)}
.inline-cta{
  position:relative;overflow:hidden;isolation:isolate;
  margin:40px 0 8px;padding:30px 32px;border-radius:var(--radius-lg);
  background:var(--ink);
  display:flex;flex-wrap:wrap;gap:20px 28px;align-items:center;justify-content:space-between;
}
.inline-cta__bg{position:absolute;inset:0;z-index:0;
  background-image:url('../assets/toiture-panneaux-ardoise.webp');
  background-size:cover;background-position:center;opacity:.9}
.inline-cta__overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg, rgba(15,20,28,.96) 0%, rgba(15,20,28,.88) 46%, rgba(15,20,28,.6) 100%)}
.inline-cta__txt{position:relative;z-index:2;min-width:0}
.inline-cta__txt b{font-family:var(--font-display);font-weight:800;font-size:19px;
  letter-spacing:-.01em;color:#fff;display:block;margin:0}
.inline-cta__txt p{margin:6px 0 0;font-size:14.5px;color:rgba(255,255,255,.82);line-height:1.55;max-width:48ch}
.prose .inline-cta .btn{position:relative;z-index:2;flex:none;text-decoration:none}
.prose .inline-cta .btn--amber{color:var(--ink)}
.prose .inline-cta .btn--amber:hover{color:var(--ink)}
.prose .faq{max-width:none;margin:8px 0 0}

@media (prefers-reduced-motion: reduce){ .toc a{transition:none} }
.simu-head{padding:52px 56px 0;position:relative;z-index:1}
.simu-head h2{color:#fff;font-size:34px;line-height:1.1}
.simu-head h2 em{font-style:normal;color:var(--amber)}
.simu-head p{color:#c4cee8;font-size:16px;margin-top:14px;max-width:62ch}
.simu-head .kicker{color:var(--amber);margin-bottom:14px}
.simu-head .kicker::before{background:var(--amber)}
.simu-panel__grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}
@media(max-width:820px){.simu-head{padding:40px 28px 0}.simu-panel__grid{grid-template-columns:1fr;gap:28px}}
.simu-bullets{list-style:none;margin-top:20px;display:flex;flex-wrap:wrap;gap:10px 26px}
.simu-panel{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius-lg);padding:28px;margin:28px 56px 52px;position:relative;z-index:1;
  backdrop-filter:blur(8px);
}
@media(max-width:820px){.simu-panel{margin:24px 28px 40px}}
.simu-result{
  background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-md);padding:20px 22px;margin-bottom:16px;
}
.simu-result__row--big b{font-size:42px;color:var(--amber)}
.simu-result__row--big b > span:first-child{font-size:18px}
#simu-cost{font-size:18px}

.simu-toggle{display:flex;gap:4px;padding:4px;border-radius:10px;background:rgba(255,255,255,.08);margin-bottom:4px}
.simu-toggle button{flex:1;border:0;background:transparent;color:#aebbdc;font-family:var(--font-body);font-size:13.5px;font-weight:600;padding:9px;border-radius:7px;cursor:pointer;transition:background .15s,color .15s}
.simu-toggle button.active{background:var(--amber);color:var(--ink)}
.btn--amber-on-dark{background:var(--amber);color:var(--ink);border-color:var(--amber)}
.btn--amber-on-dark:hover{background:var(--amber-600);border-color:var(--amber-600)}
.chero__bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;background-image:url('../assets/realisation-hangar-yvetot.webp');opacity:.6}
.simu-result__row--big b{font-size:48px}
.simu-note{margin-top:18px;font-size:13px;color:#aebbdc;line-height:1.5}
.simu-result__row b.is-mono{color:#aebbdc}
.simu-result__row--big b{color:#8c98b8}
.simu-result__row--big .simu-u{color:#8c98b8}
.simu-result__row--big b .simu-eco{color:var(--amber)}
.page-hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;background:var(--ink);padding:72px 0 78px}
.page-hero__bg{position:absolute;inset:0;z-index:0;background-image:var(--page-hero-bg, url('../assets/realisation-ombriere-lehavre.webp'));background-size:cover;background-position:center 42%}
.page-hero__overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(16,22,28,.80) 0%, rgba(16,22,28,.66) 42%, rgba(16,22,28,.84) 100%)}
.page-hero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(34px,5vw,56px);line-height:1.07;letter-spacing:-.025em;color:#fff;text-wrap:balance;margin:0 auto 22px;max-width:34ch;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.page-hero .lede{font-size:clamp(18px,2vw,21px);line-height:1.6;color:rgba(255,255,255,.92);max-width:60ch;margin:0 auto;text-wrap:pretty;text-shadow:0 1px 14px rgba(0,0,0,.3)}
.page-hero__cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:30px}
.page-hero__cta .btn--ghost{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.page-hero__cta .btn--ghost:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.6)}
.coords{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.coord-card{display:flex;gap:16px;align-items:flex-start;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 22px;box-shadow:var(--shadow-sm);text-decoration:none}
a.coord-card{transition:border-color .15s,box-shadow .15s,transform .15s}
a.coord-card:hover{border-color:var(--green-200);box-shadow:var(--shadow-md);transform:translateY(-2px);text-decoration:none}
.coord-card__ico{width:44px;height:44px;border-radius:12px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--green-50);color:var(--green-700);border:1.5px solid var(--green-200)}
.coord-card__ico svg{width:22px;height:22px}
.coord-card__txt{min-width:0}
.coord-card__label{display:block;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.coord-card__value{display:block;font-family:var(--font-display);font-size:19px;font-weight:800;color:var(--ink);line-height:1.2;word-break:break-word}
.coord-card__value--addr{font-size:17px}
.coord-card__sub{display:block;font-size:13.5px;color:var(--muted);margin-top:4px;line-height:1.5}
.coord-promise{display:flex;gap:12px;align-items:center;justify-content:center;text-align:left;background:var(--green-50);border:1px solid var(--green-200);border-radius:var(--radius-lg);padding:16px 22px;margin-top:16px}
.coord-promise svg{width:22px;height:22px;color:var(--green-700);flex:none}
.coord-promise b{display:block;font-size:14.5px;color:var(--green-900,var(--ink))}
.coord-promise span{display:block;font-size:13px;color:var(--green-700);margin-top:2px}
.cta-form--wide{width:100%;max-width:860px;margin:0 auto}
.cta-form--wide .cta-form__grid{gap:16px}

/* Fluent Forms habillé comme la .cta-form historique (page contact, hors bloc). */
.cta-form--ff .frm-fluent-form fieldset{display:grid;grid-template-columns:1fr 1fr;gap:13px;border:0;margin:0;padding:0;min-width:0}
.cta-form--ff.cta-form--wide .frm-fluent-form fieldset{gap:16px}
.cta-form--ff .frm-fluent-form legend{grid-column:1 / -1}
.cta-form--ff .ff-el-group{margin:0}
.cta-form--ff .ff-el-group.ff-col-full,
.cta-form--ff .ff-el-group.ff_submit_btn_wrapper{grid-column:1 / -1}
.cta-form--ff .ff-el-input--label label{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px;line-height:1.2}
.cta-form--ff .ff-el-is-required>label::after{color:var(--green)}
.cta-form--ff .ff-el-form-control{font-family:var(--font-body);font-size:14px;color:var(--ink);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 13px;width:100%;outline:none;transition:border-color .15s,box-shadow .15s}
.cta-form--ff .ff-el-form-control:focus{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in oklab,var(--green) 18%,transparent)}
.cta-form--ff textarea.ff-el-form-control{resize:vertical;min-height:60px}
.cta-form--ff .ff-btn-submit{width:100%;margin-top:3px;padding:14px 22px;font-family:var(--font-display);font-weight:700;font-size:15px;color:#fff;background:var(--green);border:0;border-radius:var(--radius-md);cursor:pointer;transition:background .15s,transform .05s}
.cta-form--ff .ff-btn-submit:hover{background:var(--green-600,var(--green))}
.cta-form--ff .ff-btn-submit:active{transform:translateY(1px)}
.cta-form--ff .ff-message-success{text-align:center;font-size:15px;line-height:1.5;color:var(--ink);padding:10px 0}
.cta-form--ff .error.text-danger,
.cta-form--ff .ff-el-is-error .text-danger{font-size:12px;color:#c0392b;margin-top:4px}
@media (max-width:880px){.cta-form--ff .frm-fluent-form fieldset{grid-template-columns:1fr}}
.coords-head{text-align:center;margin:56px 0 22px}
.coords-head .kicker{justify-content:center}
@media (max-width:860px){.coords{grid-template-columns:1fr;gap:14px}}
@media (max-width:860px){.reviews__grid{grid-template-columns:1fr}}
.cta-field--consent{display:flex;flex-direction:row;align-items:flex-start;gap:10px}
.cta-field--consent input{width:auto;margin-top:3px;flex:none}
.cta-field--consent span{font-size:12.5px;color:var(--muted);line-height:1.5;font-weight:400}
.cta-field--consent a{color:var(--primary-ink);font-weight:600}
.cta-form__legend{grid-column:1/-1;display:flex;align-items:center;gap:10px;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:6px 0 2px}
.cta-form__legend::after{content:"";flex:1;height:1px;background:var(--border)}
.cta-form__legend:first-child{margin-top:0}
.cta-field .req{color:var(--green-700);font-weight:700;margin-left:2px}
.cta-field__hint{font-size:11.5px;font-weight:400;color:var(--muted);margin-top:2px}
.ff-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.map__frame{aspect-ratio:16/7;border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-sm);background:var(--n-100)}
.map__frame iframe{width:100%;height:100%;border:0;display:block}
.map__cap{font-size:13.5px;color:var(--muted);margin-top:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.map__cap svg{width:15px;height:15px;color:var(--green);flex:none}
.faq-item{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:12px;overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:600;font-size:16px;color:var(--ink);transition:background .15s}
.faq-item summary::after{content:"+";flex:none;width:32px;height:32px;border-radius:50%;background:var(--green-50);color:var(--green-700);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:600;transition:transform .2s,background .15s}
.header__nav .nav-link{display:inline-flex;align-items:center;gap:6px;height:100%;padding:0 16px;font-family:var(--font-body);font-size:14.5px;font-weight:500;color:var(--ink);background:none;border:0;cursor:pointer;text-decoration:none;position:relative;white-space:nowrap}
.header__nav .nav-link::before{content:"";position:absolute;left:16px;right:16px;bottom:22px;height:2px;background:var(--primary);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .22s}
.mega{position:absolute;top:100%;left:0;transform:translateY(12px);width:760px;max-width:92vw;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:22px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s,visibility .18s;z-index:60;white-space:normal}
.page-hero h1{font-family:var(--font-display);font-weight:800;font-size:clamp(32px,4.6vw,52px);line-height:1.07;letter-spacing:-.025em;color:#fff;text-wrap:balance;margin:0 auto 22px;max-width:34ch;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.local-split{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.local-split__body p{font-size:16px;line-height:1.7;color:var(--n-700);margin-top:14px}
.local-split__body strong{color:var(--ink);font-weight:700}
.local-split__bullets{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:11px}
.local-split__bullets li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--n-700);line-height:1.5}
.local-split__bullets svg{width:18px;height:18px;color:var(--green);flex:none;margin-top:2px}
.local-split__stats{display:flex;gap:30px;flex-wrap:wrap;margin:24px 0 4px;padding-top:20px;border-top:1px solid var(--border)}
.local-split__stat b{display:block;font-family:var(--font-display);font-weight:800;font-size:24px;color:var(--green-700);line-height:1}
.local-split__stat span{font-size:12.5px;color:var(--muted);margin-top:5px;display:block}
.local-split__cta{margin-top:28px}
.local-split__media{aspect-ratio:3/4;min-height:100%;border-radius:8px;border:1px solid var(--border);box-shadow:var(--shadow-lg);overflow:hidden;position:relative}
.local-split__photo{position:absolute;inset:0;background-size:cover;background-position:center;background-image:url('../assets/realisation-maison-bois-guillaume.webp')}
.local-split__tag{position:absolute;bottom:14px;left:14px;background:rgba(255,255,255,.95);border-radius:var(--radius-pill);padding:8px 14px;font-size:12.5px;font-weight:700;color:var(--ink);box-shadow:0 4px 12px rgba(0,0,0,.18);display:inline-flex;align-items:center;gap:7px}
.local-split__tag svg{width:14px;height:14px;color:var(--green)}
@media (max-width:860px){.local-split{grid-template-columns:1fr;gap:28px}.local-split__media{order:-1;aspect-ratio:16/10}}
.proof-local{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.proof-local__shot{aspect-ratio:4/3;border-radius:var(--radius-xl);border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden;position:relative}
.proof-local__photo{position:absolute;inset:0;background-size:cover;background-position:center;background-image:url('../assets/realisation-maison-bois-guillaume.webp')}
.proof-local__badge{position:absolute;top:16px;left:16px;display:inline-flex;align-items:center;gap:7px;background:var(--green);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:7px 13px;border-radius:var(--radius-pill);box-shadow:0 4px 12px rgba(0,0,0,.2)}
.proof-local__stats{display:flex;gap:28px;flex-wrap:wrap;margin:20px 0 0;padding-top:18px;border-top:1px solid var(--border)}
.proof-local__stat b{display:block;font-family:var(--font-display);font-weight:800;font-size:28px;color:var(--green-700);line-height:1}
.proof-local__stat span{font-size:13px;color:var(--muted);margin-top:5px;display:block}
.proof-local__quote{font-size:15px;font-style:italic;color:var(--n-700);line-height:1.6;margin-top:18px}
.proof-local__quote cite{display:block;font-style:normal;font-size:13.5px;color:var(--muted);margin-top:8px}
.proof-local__body h3{font-size:22px;font-weight:800;color:var(--ink)}
@media (max-width:860px){.proof-local{grid-template-columns:1fr;gap:28px}}
.local-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.local-fact{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 22px;box-shadow:var(--shadow-sm)}
.local-fact h3{font-size:17px;font-weight:700;color:var(--ink)}
.local-fact p{font-size:14.5px;color:var(--muted);line-height:1.6;margin-top:8px}
/* Icône de carte (accent de page). */
.local-fact__ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:color-mix(in oklab,var(--primary) 12%,white);color:var(--primary);margin-bottom:14px}
.local-fact__ico svg{width:22px;height:22px}
/* 4 cartes : grille 2x2 équilibrée (évite la 4e carte orpheline en 3 colonnes). */
.local-facts--4{grid-template-columns:repeat(2,1fr)}
@media (max-width:860px){.local-facts{grid-template-columns:1fr}}
.zones__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 44px}
.zones__col h3{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);padding-bottom:10px;border-bottom:2px solid var(--green);margin:0 0 4px;display:inline-block}
.zones__list{list-style:none;margin:0;padding:0}
.zones__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14.5px;color:var(--ink);text-decoration:none;transition:color .15s,padding-left .15s}
a.zones__row:hover{color:var(--green-700);padding-left:4px;text-decoration:none}
.zones__row .km{font-size:12px;color:var(--muted);white-space:nowrap;font-weight:500}
.zones__row--here{font-weight:700;color:var(--green-700)}
.zones__row--here .km{color:var(--green-700)}
.zones__note{color:var(--muted);font-size:13.5px;line-height:1.7;margin-top:22px;text-align:center}
.zones__note a{color:var(--primary-ink);font-weight:600}
@media (max-width:760px){.zones__grid{grid-template-columns:1fr;gap:24px}}
body{background:var(--paper)}
.lib-head{
  background:var(--ink);color:#fff;padding:40px 0 36px;
}
.lib-head .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.lib-head h1{color:#fff;font-size:clamp(28px,3vw,40px);line-height:1.1;letter-spacing:-.02em}
.lib-head p{color:rgba(255,255,255,.7);font-size:16px;line-height:1.55;margin-top:14px;max-width:70ch}
.lib-head code{font-family:var(--font-mono);font-size:13px;background:rgba(255,255,255,.1);padding:2px 7px;border-radius:6px;color:#fff}
.lib-block{border-top:1px dashed var(--border-strong)}
.lib-tag{
  background:var(--ink);color:#fff;
}
.lib-tag .wrap{max-width:var(--maxw);margin:0 auto;padding:20px 32px;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline}
.lib-tag b{font-family:var(--font-body);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}
.lib-tag span{font-size:13.5px;color:rgba(255,255,255,.8)}
.lib-tag span strong{color:#fff;font-weight:600}
.entree-card__banner{
  position:relative;min-height:158px;
  background-size:cover;background-position:center;
  display:flex;flex-direction:column;justify-content:center;gap:12px;
  padding:24px 32px;
}
.entree-card--b2c .entree-card__banner{background-image:url('../assets/realisation-maison-bois-guillaume.webp')}
.entree-card--b2b .entree-card__banner{background-image:url('../assets/realisation-hangar-yvetot.webp')}
.why__photo{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  background-image:url('../assets/realisation-maison-bois-guillaume.webp');
}
.mega__feature-body b{display:block;font-size:15px;font-weight:700;color:#fff;line-height:1.35;margin-bottom:16px;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.simu-aper{display:flex;align-items:center;gap:9px;justify-content:center;margin:0 0 16px;padding:11px 16px;border-radius:var(--radius-md);font-size:13.5px;font-weight:700;line-height:1.3;text-align:center}
.simu-aper::before{content:"";width:9px;height:9px;border-radius:50%;flex:none}
.simu-aper.is-required{background:color-mix(in oklab,var(--amber) 22%,transparent);color:#ffe6a6;border:1px solid color-mix(in oklab,var(--amber) 40%,transparent)}
.simu-aper.is-required::before{background:var(--amber);box-shadow:0 0 10px var(--amber)}
.simu-aper.is-optional{background:rgba(255,255,255,.06);color:#c4cee8;border:1px solid rgba(255,255,255,.14)}
.simu-aper.is-optional::before{background:#8c97b6}
.simu-toggle{display:flex;gap:0;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius-pill);padding:4px;margin-bottom:22px}
.simu-toggle button{
  flex:1;border:0;cursor:pointer;background:transparent;color:#aebbdc;
  font-family:var(--font-body);font-size:12.5px;font-weight:600;letter-spacing:.02em;
  padding:9px 12px;border-radius:var(--radius-pill);transition:background .15s,color .15s;white-space:nowrap;
}
.simu-toggle button.is-active{background:var(--amber);color:var(--ink);box-shadow:0 3px 10px rgba(0,0,0,.25)}
.proof-feature__img{
  height:280px;background-size:cover;background-position:center;position:relative;
  background-image:url('../assets/realisation-ombriere-lehavre.webp');
}
.sol-hero__bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;background-image:url('../assets/realisation-hangar-yvetot.webp')}
.plus__photo{aspect-ratio:4/5;border-radius:var(--radius-xl);overflow:hidden;background-size:cover;background-position:center;background-image:url('../assets/realisation-ombriere-lehavre.webp');border:1px solid rgba(255,255,255,.12)}
.shero__shot{aspect-ratio:4/5;border-radius:var(--radius-xl);overflow:hidden;background-size:cover;background-position:center;background-image:url('../assets/realisation-ombriere-lehavre.webp');box-shadow:var(--shadow-lg);border:1px solid var(--border)}
.roi{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;align-items:stretch}
.roi__table{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}
.roi__row{display:grid;grid-template-columns:1.4fr .8fr .8fr 1fr;gap:14px;align-items:center;padding:18px 24px;border-bottom:1px solid var(--border)}
.roi__row:last-child{border-bottom:0}
.roi__row--head{background:var(--paper);border-bottom:1px solid var(--border)}
.roi__row--head span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.roi__surface{display:flex;flex-direction:column;gap:2px}
.roi__surface b{font-size:15.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.roi__surface span{font-size:12.5px;color:var(--muted)}
.roi__kwc{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.roi__kwc small{font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--muted);margin-left:3px}
.roi__prod{font-size:14px;color:var(--n-700);font-weight:600}
.roi__prod small{font-weight:400;color:var(--muted)}
.roi__rev{font-family:var(--font-display);font-size:22px;font-weight:800;color:var(--amber-700);letter-spacing:-.02em;text-align:right}
.roi__rev small{font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--muted);display:block;margin-top:2px;text-align:right}
.roi__note{padding:16px 24px;font-size:12.5px;color:var(--muted);line-height:1.55;background:var(--paper);border-top:1px solid var(--border)}
.roi__agri{position:relative;overflow:hidden;border-radius:var(--radius-lg);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;min-height:340px;isolation:isolate;border:1px solid var(--border)}
.roi__agri-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;background-image:url('/wp-content/uploads/2026/06/hangar-agricole-panneaux-solaires-normandie.webp')}
.roi__agri-ov{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(15,28,18,.18) 0%,rgba(15,28,18,.55) 46%,rgba(10,22,14,.95) 100%)}
.roi__agri-body{position:relative;z-index:2;padding:28px}
.roi__agri-tag{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--amber);padding:6px 13px;border-radius:var(--radius-pill);box-shadow:0 4px 12px rgba(0,0,0,.25);margin-bottom:16px}
.roi__agri-body h3{font-family:var(--font-display);font-size:24px;font-weight:800;color:#fff;line-height:1.15;letter-spacing:-.015em;text-shadow:0 2px 12px rgba(0,0,0,.5);margin-bottom:10px}
.roi__agri-body p{font-size:14.5px;color:rgba(255,255,255,.92);line-height:1.55;margin:0 0 16px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.roi__agri-list{list-style:none;display:flex;flex-direction:column;gap:9px;margin:0;padding:0}
.roi__agri-list li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:rgba(255,255,255,.92);line-height:1.4;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.roi__agri-list svg{flex:none;width:16px;height:16px;color:var(--amber);margin-top:2px}
@media(max-width:900px){.roi{grid-template-columns:1fr}.roi__row{grid-template-columns:1fr 1fr;row-gap:10px}.roi__row--head{display:none}.roi__rev,.roi__rev small{text-align:left}}
.proof-feature__img{
  height:280px;background-size:cover;background-position:center;position:relative;
  background-image:url('../assets/realisation-hangar-yvetot.webp');
}
.plus__photo{aspect-ratio:4/5;border-radius:var(--radius-xl);overflow:hidden;background-size:cover;background-position:center;background-image:url('../assets/realisation-hangar-yvetot.webp');border:1px solid rgba(255,255,255,.12)}
.shero__shot{aspect-ratio:4/5;border-radius:var(--radius-xl);overflow:hidden;background-size:cover;background-position:center;background-image:url('../assets/realisation-hangar-yvetot.webp');box-shadow:var(--shadow-lg);border:1px solid var(--border)}

/* --- Fix responsive blocs modes + aper (2026-06-26) — override propre, monotone --- */
@media (max-width:980px){
  html .modes{grid-template-columns:1fr 1fr}
  html .aper__grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  html .modes{grid-template-columns:1fr}
}

/* --- Cohérence couleur d'accent (2026-06-29) ---
 * Règle : là où il y a accent, c'est la couleur d'accent EXACTE (= --primary,
 * la même que le hero), pas une variante plus foncée (--primary-ink).
 * Là où la zone doit rester standard (vert de marque), on re-fixe --primary
 * en vert dans le scope concerné, indépendamment du data-accent de la page. */

/* Header chrome : ne suit JAMAIS l'accent de page -> reste vert de marque.
 * (CTA « Simuler mes économies », soulignés nav, chevrons + hover mega-menu) */
.header{ --primary:var(--green-500); --primary-ink:var(--green-700); }

/* Simulateur : bouton « Affiner mon estimation » (btn--primary du panneau clair)
 * reste vert. La carte sombre de gauche garde son ambre (hardcodé). */
.simu-panel{ --primary:var(--green-500); --primary-ink:var(--green-700); }

/* Icônes du bloc « Vos enjeux » : couleur d'accent exacte (était --primary-ink). */
.wp-block-ecothib-enjeux svg{ color:var(--primary); stroke:var(--primary); }

/* Eyebrow du bloc APER : posé en style inline (--primary-ink) côté render.php,
 * on le ramène à l'accent exact (!important pour battre l'inline). */
.wp-block-ecothib-aper .kicker{ color:var(--primary) !important; }

/* Blocs solutions + dispositifs : leur CSS interne utilise --accent-strong
 * (teinte foncée) pour l'eyebrow, les liens « Découvrir » et les icônes de
 * typologie. On les ramène à l'accent EXACT du hero (--primary). */
.wp-block-ecothib-solutions .kicker,
.wp-block-ecothib-solutions .btn--link{ color:var(--primary) !important; }
.wp-block-ecothib-dispositifs .kicker{ color:var(--primary) !important; }
.wp-block-ecothib-dispositifs .dispo__ico{ color:var(--primary) !important; stroke:var(--primary) !important; }
/* Fusion carte + contacts (localité) : contacts rendus DANS la section map. */
.map-contacts{margin-top:56px}
/* Avis — carrousel (3 cartes desktop, 2 tablette, 1 mobile ; défile par 1, sans autoplay) */
.reviews-carousel{position:relative;padding:0 6px}
.reviews__viewport{overflow:hidden}
.reviews__track{display:flex;gap:20px;transition:transform .45s cubic-bezier(.4,0,.2,1);will-change:transform}
.reviews__track .review{flex:0 0 calc((100% - 40px)/3);box-sizing:border-box}
@media (max-width:980px){.reviews__track .review{flex-basis:calc((100% - 20px)/2)}}
@media (max-width:640px){.reviews__track .review{flex-basis:100%}}
.reviews-nav{position:absolute;top:calc(50% + 8px);transform:translateY(-50%);z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid var(--border);background:var(--white);color:var(--primary-ink);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-md);transition:background .15s,opacity .15s}
.reviews-nav svg{width:20px;height:20px}
.reviews-nav--prev{left:-8px}
.reviews-nav--next{right:-8px}
.reviews-nav:hover{background:var(--paper)}
.reviews-nav:disabled{opacity:.35;cursor:default;box-shadow:none}
.reviews-nav[hidden]{display:none}
.reviews-dots{display:flex;justify-content:center;gap:8px;margin-top:26px}
.reviews-dots[hidden]{display:none}
.reviews-dot{width:9px;height:9px;border-radius:50%;border:0;background:var(--border-strong);cursor:pointer;padding:0;transition:background .15s,transform .15s}
.reviews-dot[hidden]{display:none}
.reviews-dot.is-active{background:var(--primary);transform:scale(1.3)}
/* Logos de la section certifications (À propos) — dans .card__body, alignés au texte */
.cert-card__logo{height:58px;display:flex;align-items:center;justify-content:flex-start;margin-bottom:6px}
.cert-card__logo img{max-height:58px;width:auto;max-width:140px;object-fit:contain;object-position:left center}
.cert-card__logo--badge svg{height:64px;width:64px}
/* Cartes certifications : toujours même hauteur (le CSS core force flex sur
 * .wp-block-columns ; on rétablit une grille stretch + cartes pleine hauteur). */
.wp-block-columns.values__grid{display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch;gap:24px}
.values__grid > .wp-block-column{display:flex}
.values__grid .card{width:100%;height:100%}
/* --- Blog (posts natifs) : réutilise .card/.card__body/.tag/.page-hero --- */
.blog-card{overflow:hidden}
.blog-card .blog-card__media{margin:0}
.blog-card .blog-card__media img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.blog-card .card__body h3{margin:0;font-size:1.15rem;line-height:1.3}
.blog-card .card__body h3 a{color:var(--ink);text-decoration:none}
.blog-card .card__body h3 a:hover{color:var(--green-700)}
.blog-card .card__body p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}
.blog-card .tag{align-self:flex-start}
.blog-card__meta{color:var(--muted);font-size:.82rem}
.blog-archive .wp-block-query-pagination{margin-top:40px;justify-content:center;gap:8px}
.blog-archive .wp-block-query-pagination a,.blog-archive .wp-block-query-pagination .page-numbers{color:var(--muted);text-decoration:none;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--border)}
.blog-archive .wp-block-query-pagination .page-numbers.current{background:var(--green);border-color:var(--green);color:#fff}
