/* Polices Sora et Manrope hébergées sur le site (licence SIL OFL 1.1, voir fonts/) */
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/manrope-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/manrope-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Sora';font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/sora-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Sora';font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/sora-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  --navy:#142C46; --yellow:#E7B73E; --white:#FFFFFF;
  --bg:#FFFFFF; --surface:#F1F4F8; --line:#D5DDE6;
  --text:#142C46; --muted:#4A5E73;
  --band-bg:#142C46; --band-text:#FFFFFF; --band-muted:#C5D0DC;
  --logo-ink:#142C46; --btn-bg:#142C46; --btn-text:#FFFFFF;
  --focus:#1F5FAD;
  color-scheme: light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0F2236; --surface:#142C46; --line:#2A4562;
    --text:#F3F6FA; --muted:#B8C5D3;
    --band-bg:#1A3654; --band-text:#FFFFFF; --band-muted:#C5D0DC;
    --logo-ink:#FFFFFF; --btn-bg:#E7B73E; --btn-text:#142C46;
    --focus:#8FC1FF;
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0F2236; --surface:#142C46; --line:#2A4562;
  --text:#F3F6FA; --muted:#B8C5D3;
  --band-bg:#1A3654; --band-text:#FFFFFF; --band-muted:#C5D0DC;
  --logo-ink:#FFFFFF; --btn-bg:#E7B73E; --btn-text:#142C46;
  --focus:#8FC1FF;
  color-scheme: dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 88px)}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Manrope",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
h1,h2,h3{font-family:"Sora","Manrope",system-ui,sans-serif;font-weight:600;line-height:1.15;margin:0;letter-spacing:-0.01em}
h1{font-size:clamp(2.25rem,5.2vw,4rem)}
h2{font-size:clamp(1.6rem,3vw,2.25rem)}
h3{font-size:1.2rem}
p{margin:0}
a{color:inherit}
img,svg{max-width:100%}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}
.wrap{max-width:1160px;margin:0 auto;padding:0 clamp(20px,4vw,40px)}
.measure{max-width:62ch}

/* Header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;flex-wrap:wrap}
.brand{display:block;width:190px;padding:10px 0}
.logo-svg{display:block;width:100%;height:auto}
.nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.nav a{text-decoration:none;font-weight:500;padding:10px 12px;border-radius:8px;min-height:44px;display:inline-flex;align-items:center}
.nav a:hover{background:var(--surface)}
.nav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--yellow)}
.nav .nav-cta{background:var(--btn-bg);color:var(--btn-text);margin-left:6px}
.cta-short{display:none}
.nav .nav-cta:hover{background:var(--btn-bg);filter:brightness(1.12)}
@media (max-width:720px){
  .site-header .wrap{padding-top:4px;padding-bottom:6px}
  .brand{width:160px}
  .nav{width:100%;justify-content:space-between;gap:2px}
  .nav a{padding:8px 8px;font-size:.95rem}
  .nav .nav-cta{margin-left:0;padding:8px 14px}
  .cta-long{display:none}.cta-short{display:inline}
}

/* Buttons */
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border-radius:10px;font-weight:700;text-decoration:none;border:2px solid transparent;font-size:1rem;font-family:inherit;cursor:pointer}
.btn-primary{background:var(--btn-bg);color:var(--btn-text)}
.btn-primary:hover{filter:brightness(1.12)}
.btn-alert{background:var(--yellow);color:#142C46}
.btn-alert:hover{filter:brightness(1.05)}
.btn-ghost{border-color:currentColor;background:transparent;color:inherit}

/* Views */
[data-view]{display:none}
[data-view].is-active{display:block}

/* Hero */
.hero{padding:clamp(48px,8vw,104px) 0 clamp(56px,8vw,96px)}
.hero .wrap{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero-lede{margin-top:22px;font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--muted);max-width:40ch}
.hero .btns{margin-top:34px}
.hero-mark{justify-self:center;width:min(100%,380px)}
.hero-mark svg{display:block;width:100%;height:auto;overflow:visible}
.mark-shell{fill:var(--logo-ink);stroke:var(--logo-ink);stroke-width:.6;stroke-dasharray:260;stroke-dashoffset:260;fill-opacity:0;animation:draw 1.4s ease-out .15s forwards, fillin .6s ease-out 1.25s forwards}
.mark-cell{fill:#E7B73E;transform-origin:126.4px 181.3px;transform:scale(.2);opacity:0;animation:cell .55s cubic-bezier(.2,.8,.2,1.2) 1.6s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fillin{to{fill-opacity:1;stroke-width:0}}
@keyframes cell{to{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){
  .mark-shell{animation:none;stroke-dashoffset:0;fill-opacity:1;stroke-width:0}
  .mark-cell{animation:none;transform:none;opacity:1}
}
@media (max-width:820px){
  .hero .wrap{grid-template-columns:1fr}
  .hero-mark{order:-1;width:120px;justify-self:start}
}

/* Sections */
.section{padding-block:clamp(56px,8vw,96px)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:36px}
.section-head p{color:var(--muted);max-width:52ch}
.alt{background:var(--surface)}
.band{background:var(--band-bg);color:var(--band-text)}
.band .muted{color:var(--band-muted)}

/* Services grid */
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.service{padding:28px 24px 30px 0;border-bottom:1px solid var(--line)}
.service + .service{padding-left:24px;border-left:1px solid var(--line)}
.service svg{width:52px;height:52px;display:block;margin-bottom:18px}
.service p{color:var(--muted);margin-top:8px;font-size:1rem}
.ico-line{fill:none;stroke:var(--text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ico-acc{fill:none;stroke:#E7B73E;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ico-dot{fill:#E7B73E}
.text-link{display:inline-block;margin-top:28px;font-weight:700;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:var(--yellow);min-height:44px;line-height:44px}
@media (max-width:900px){
  .services{grid-template-columns:1fr 1fr}
  .service:nth-child(3){padding-left:0;border-left:0}
}
@media (max-width:540px){
  .services{grid-template-columns:1fr}
  .service,.service + .service{padding-left:0;border-left:0}
}

/* Values (hex bullets) */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px);margin-top:44px}
.value h3{margin-top:14px;color:var(--band-text)}
.value p{margin-top:8px}
.hexdot{width:22px;height:25px;display:block}
.hexdot path{fill:#E7B73E}
@media (max-width:820px){.values{grid-template-columns:1fr}}

/* Audience */
.audience{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,32px)}
.aud{padding:32px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.aud p{color:var(--muted);margin-top:10px}
@media (max-width:720px){.audience{grid-template-columns:1fr}}

/* Zone strip */
.zone{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center}
.zone p{font-size:1.15rem;margin-top:12px}
.zone .btns{justify-content:flex-end}
@media (max-width:820px){.zone{grid-template-columns:1fr}.zone .btns{justify-content:flex-start}}

/* Inner pages */
.page-head{padding:clamp(48px,7vw,88px) 0 clamp(28px,4vw,44px);border-bottom:1px solid var(--line)}
.page-head p{margin-top:18px;color:var(--muted);font-size:1.15rem;max-width:56ch}
.svc-list{display:grid;gap:0}
.svc-row{display:grid;grid-template-columns:72px 1fr;gap:24px;padding:34px 0;border-bottom:1px solid var(--line)}
.svc-row svg{width:56px;height:56px}
.h3like{font-size:1.35rem}
.svc-row p{color:var(--muted);margin-top:8px;max-width:64ch}
.pro-box{margin-top:48px;padding:32px;border-radius:14px;background:var(--band-bg);color:var(--band-text)}
.pro-box p{margin-top:10px;color:var(--band-muted);max-width:64ch}

.prose{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,5vw,72px);align-items:start}
.prose article h2{font-size:1.45rem;margin-top:44px}
.prose article h2:first-child{margin-top:0}
.prose article p{margin-top:14px;max-width:66ch}
.photo-slot{position:sticky;top:110px;aspect-ratio:4/5;border:2px dashed var(--line);border-radius:14px;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--muted);background:var(--surface);font-size:.95rem}
@media (max-width:860px){.prose{grid-template-columns:1fr}.photo-slot{position:static;aspect-ratio:16/9}}

/* Contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(32px,5vw,64px);align-items:start;padding-block:clamp(36px,5vw,56px) clamp(56px,8vw,96px)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.tab{min-height:48px;padding:0 18px;border-radius:10px;border:2px solid var(--line);background:transparent;color:var(--text);font:700 1rem "Manrope",sans-serif;cursor:pointer}
.tab[aria-selected="true"]{border-color:var(--text);background:var(--text);color:var(--bg)}
.tab.is-alert[aria-selected="true"]{border-color:#E7B73E;background:#E7B73E;color:#142C46}
form{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1 / -1}
label,.legend{font-weight:700;font-size:.95rem}
.req{color:var(--muted);font-weight:500}
input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;min-height:48px;width:100%}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 30%,transparent)}
fieldset{border:0;padding:0;margin:0;grid-column:1 / -1}
.choices{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.choice{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1.5px solid var(--line);border-radius:10px;font-weight:500;cursor:pointer}
.choice input{width:18px;height:18px;min-height:0;margin:0;accent-color:#142C46}
.form-foot{grid-column:1 / -1;display:flex;flex-direction:column;gap:14px}
.rgpd{font-size:.88rem;color:var(--muted)}
.notice{grid-column:1 / -1;padding:14px 16px;border-radius:10px;background:var(--surface);font-weight:500}
.notice:empty{display:none}
.aside-card{padding:28px;border-radius:14px;background:var(--surface)}
.aside-card + .aside-card{margin-top:16px}
.aside-card h3{font-size:1.05rem}
.aside-card p{margin-top:8px;color:var(--muted);font-size:.98rem}
.tel{display:inline-block;margin-top:10px;font-family:"Sora",sans-serif;font-weight:600;font-size:1.5rem;text-decoration:none;min-height:44px}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:560px){form{grid-template-columns:1fr}}

/* Legal */
.legal{padding-block:clamp(36px,5vw,56px) clamp(56px,8vw,96px)}
.legal h2{font-size:1.25rem;margin-top:36px}
.legal p,.legal li{margin-top:10px;max-width:72ch;color:var(--text)}
.legal ul{padding-left:20px;margin:0}
.todo{background:color-mix(in srgb,#E7B73E 28%,transparent);padding:1px 6px;border-radius:4px}

/* Footer */
.site-footer{background:var(--band-bg);color:var(--band-text);padding:48px 0 calc(28px + env(safe-area-inset-bottom,0px))}
.foot{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px}
.foot-brand{display:flex;gap:14px;align-items:center}
.foot-brand svg{width:40px;height:46px;flex:none}
.foot-brand .shell{fill:#FFFFFF}
.foot-brand .cell{fill:#E7B73E}
.foot h3{font-size:1rem;margin-bottom:10px}
.foot a{text-decoration:none;display:inline-block;min-height:36px;line-height:36px}
.foot a:hover{text-decoration:underline;text-decoration-color:#E7B73E}
.foot p,.foot li{color:var(--band-muted);font-size:.96rem}
.foot ul{list-style:none;padding:0;margin:0}
.foot-bottom{margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);color:var(--band-muted);font-size:.88rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media (max-width:760px){.foot{grid-template-columns:1fr}}

/* ===== V2 : accueil narratif ===== */
:root{--muted:#3F5468}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--muted:#B8C5D3}}
:root[data-theme="dark"]{--muted:#B8C5D3}
.muted{color:var(--muted)}
.section .value h3{color:var(--text)}
.band .value h3{color:var(--band-text)}

/* Header au-dessus du héros */
.site-header{transition:background-color .3s,border-color .3s}
.site-header.on-hero{background:#142C46;border-color:transparent;--logo-ink:#FFFFFF}
.site-header.on-hero .nav a{color:#FFFFFF}
.site-header.on-hero .nav a:hover{background:rgba(255,255,255,.12)}
.site-header.on-hero .nav .nav-cta{background:#E7B73E;color:#142C46}

.btn-yellow{background:#E7B73E;color:#142C46}
.btn-yellow:hover{filter:brightness(1.06)}
.btn-ghost-light{border-color:rgba(255,255,255,.75);color:#FFFFFF;background:transparent}
.btn-ghost-light:hover{background:rgba(255,255,255,.1)}

/* Héros */
.x-hero{background:#142C46;color:#FFFFFF;min-height:calc(100vh - 76px);min-height:calc(100svh - 76px);display:flex;flex-direction:column;justify-content:center;position:relative;padding:48px 0 88px}
.x-hero-in{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,5vw,72px);align-items:center}
.x-hero h1{font-size:clamp(2.8rem,7vw,6rem);letter-spacing:-0.025em;line-height:1.02}
.x-hero-lede{margin-top:26px;font-size:clamp(1.15rem,1.7vw,1.4rem);color:#D3DCE6;max-width:38ch}
.x-hero .btns{margin-top:38px}
.x-hero-mark{justify-self:center;width:min(100%,420px)}
.x-hero-mark svg{display:block;width:100%;height:auto;overflow:visible}
.x-hero .mark-shell{fill:#FFFFFF;stroke:#FFFFFF}
.x-scroll-hint{position:absolute;left:0;right:0;bottom:24px;text-align:center;color:#AFC0D1;font-size:.92rem}
@media (max-width:820px){
  .x-hero-in{grid-template-columns:1fr}
  .x-hero-mark{order:-1;width:140px;justify-self:start}
}

/* Phrase d'intro révélée au défilement */
.x-intro{padding:clamp(96px,18vh,200px) 0}
.x-statement{font-family:"Sora","Manrope",sans-serif;font-weight:600;font-size:clamp(1.8rem,4.2vw,3.4rem);line-height:1.18;letter-spacing:-0.015em;max-width:24ch}
.x-statement .w{opacity:.16;transition:opacity .25s}
.x-statement .w.on{opacity:1}

/* Sections narratives épinglées */
.story{height:240vh;position:relative}
.story:nth-of-type(odd){background:var(--surface)}
.stage{position:sticky;top:76px;height:calc(100vh - 76px);height:calc(100svh - 76px);display:flex;align-items:center;overflow:hidden}
.stage-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,88px);align-items:center;width:100%}
.stage-in.flip .stage-text{order:2}
.step-count{font-weight:700;color:var(--muted);font-size:.95rem;margin-bottom:12px}
.stage-text h2{font-size:clamp(2.4rem,5.4vw,4.4rem);letter-spacing:-0.02em}
.stage-lede{margin-top:16px;font-size:clamp(1.15rem,1.8vw,1.45rem);color:var(--muted);max-width:32ch}
.details{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:14px;max-width:46ch}
.details li{position:relative;padding-left:28px;font-size:1.06rem;font-weight:500;opacity:0;transform:translateY(14px);transition:opacity .45s ease,transform .45s ease}
.details li::before{content:"";position:absolute;left:0;top:.42em;width:14px;height:16px;background:#E7B73E;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.details li.on{opacity:1;transform:none}
.x-mt{margin-top:30px}
.stage-art{display:flex;justify-content:center;transform:scale(var(--s,.92));transition:transform .2s linear}
.stage-art svg{width:100%;max-width:520px;max-height:62vh;overflow:visible}
.a-line{fill:none;stroke:var(--text);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.a-fill{fill:var(--bg)}
.a-acc{fill:none;stroke:#E7B73E;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}
.a-thick{stroke-width:6}
.a-dot{fill:#E7B73E}
.pad{fill:#E7B73E;fill-opacity:.28;stroke:#E7B73E;stroke-width:2}
@media (max-width:820px){
  .story{height:270vh}
  .stage-in,.stage-in.flip{grid-template-columns:1fr;gap:18px}
  .stage-in.flip .stage-text{order:0}
  .stage-art{order:-1}
  .stage-art svg{max-height:30vh}
  .stage-text h2{font-size:clamp(2rem,9vw,2.8rem)}
  .details{margin-top:18px;gap:10px}
  .details li{font-size:1rem}
}

/* Bande jaune */
.x-yellow{background:#E7B73E;color:#142C46;padding:clamp(80px,12vw,150px) 0}
.x-yellow-in{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(32px,6vw,80px);align-items:center}
.x-yellow h2{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-0.02em}
.x-yellow p{margin-top:20px;font-size:clamp(1.1rem,1.6vw,1.3rem);max-width:50ch}
.text-link.dark{text-decoration-color:#142C46;color:#142C46}
.x-yellow-mark{justify-self:center;width:min(100%,280px)}
.x-yellow-mark svg{width:100%;height:auto;display:block}
@media (max-width:820px){.x-yellow-in{grid-template-columns:1fr}.x-yellow-mark{width:120px;justify-self:start;order:-1}}

/* Final */
.x-final{background:#142C46;color:#FFFFFF;padding:clamp(88px,13vw,170px) 0;text-align:center}
.x-final-in{display:flex;flex-direction:column;align-items:center}
.x-final-mark{width:104px;margin-bottom:30px}
.x-final-mark svg{width:100%;height:auto;display:block}
.x-final h2{font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-0.02em;max-width:18ch}
.x-final p{margin-top:20px;color:#C5D0DC;font-size:1.15rem;max-width:56ch}
.x-center{justify-content:center;margin-top:34px}


/* Mini-jardins */
.stem{fill:none;stroke:var(--text);stroke-width:2.2;stroke-linecap:round}
.leaf{fill:var(--text);opacity:.85}
.pt{fill:#E7B73E;stroke:var(--text);stroke-width:1.1}
.hc{fill:var(--text)}
.ground{fill:none;stroke:var(--line);stroke-width:2;stroke-linecap:round}
.garden{display:block;width:150px;height:auto;overflow:visible}
.garden-row{display:flex;justify-content:flex-end;margin-bottom:28px}
.garden-row.end{margin-bottom:24px}
.head-garden{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.x-queen{font-weight:700}
@media (max-width:720px){.garden{width:118px}.garden-row{justify-content:flex-start}.head-garden .garden{margin-left:auto}}


/* Détails techniques */
.x-tech-lede{margin-top:14px;color:var(--muted);max-width:56ch;font-size:1.1rem}
.tech-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:40px;border-top:1px solid var(--line)}
.tech{padding:28px 28px 30px 0;border-bottom:1px solid var(--line)}
.tech:nth-child(even){padding-left:28px;border-left:1px solid var(--line)}
.tech p{margin-top:8px;color:var(--muted)}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.on{opacity:1;transform:none}
@media (max-width:720px){.tech-grid{grid-template-columns:1fr}.tech,.tech:nth-child(even){padding-left:0;border-left:0}}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}


/* Pages intérieures v2 */
.page-head.big{padding:clamp(56px,9vw,120px) 0 clamp(36px,5vw,56px)}
.page-head.big h1{font-size:clamp(2.6rem,6.4vw,5.2rem);letter-spacing:-0.025em;line-height:1.04}
.page-head.big p{font-size:clamp(1.15rem,1.7vw,1.4rem)}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,88px);align-items:center;padding:clamp(56px,8vw,104px) 0;border-bottom:1px solid var(--line)}
.feat.flip .feat-text{order:2}
.feat h2{font-size:clamp(2rem,4.2vw,3.2rem);letter-spacing:-0.02em}
.feat-lede{margin-top:14px;color:var(--muted);font-size:clamp(1.05rem,1.5vw,1.2rem);max-width:46ch}
.feat-art{display:flex;justify-content:center}
.feat-art svg{width:100%;max-width:500px;height:auto;overflow:visible}
.details.static li{opacity:1;transform:none}
.garden-row.in-text{margin:36px 0 0}
.aside-garden{justify-content:flex-start;margin:0 0 16px}
@media (max-width:820px){.feat{grid-template-columns:1fr;gap:20px}.feat.flip .feat-text{order:0}.feat-art{order:-1}.feat-art svg{max-height:34vh}}


/* Fond d'alvéoles du héros */
.x-hero{overflow:hidden}
@media (hover:none) and (pointer:coarse){.x-hero::before{transform:none !important}}
.x-hero::before{content:"";position:absolute;left:0;right:0;top:-25%;bottom:-25%;background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20width%3D%2755.4%27%20height%3D%2796%27%3E%3Cpath%20d%3D%27M27.7%200.0%20L55.4%2016.0%20L55.4%2048.0%20L27.7%2064.0%20L-0.0%2048.0%20L0.0%2016.0%20Z%20M0.0%2048.0%20L27.7%2064.0%20L27.7%2096.0%20L0.0%20112.0%20L-27.7%2096.0%20L-27.7%2064.0%20Z%20M55.4%2048.0%20L83.1%2064.0%20L83.1%2096.0%20L55.4%20112.0%20L27.7%2096.0%20L27.7%2064.0%20Z%27%20fill%3D%27none%27%20stroke%3D%27white%27%20stroke-opacity%3D%270.06%27%20stroke-width%3D%271.2%27/%3E%3C/svg%3E");background-size:55.4px 96px;transform:translate3d(0,var(--hy,0px),0);pointer-events:none}
.x-hero > *:not(.x-scroll-hint){position:relative;z-index:1}
.x-hero > .x-scroll-hint{z-index:1}

/* Rail d'étapes */
.steps-rail{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:16;display:flex;flex-direction:column;gap:6px;opacity:0;pointer-events:none;transition:opacity .3s}
.steps-rail.show{opacity:1;pointer-events:auto}
.steps-rail button{display:flex;align-items:center;justify-content:flex-end;gap:10px;background:none;border:0;padding:6px;min-height:36px;cursor:pointer;color:var(--text);font:600 .85rem "Manrope",sans-serif;flex-direction:row-reverse}
.rail-hex{width:16px;height:18px;display:block;background:var(--line);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);transition:background .25s,transform .25s}
.steps-rail button.done .rail-hex{background:var(--text)}
.steps-rail button.on .rail-hex{background:#E7B73E;transform:scale(1.25)}
.rail-label{opacity:0;transform:translateX(6px);transition:opacity .2s,transform .2s;white-space:nowrap;background:var(--bg);padding:2px 8px;border-radius:6px;border:1px solid var(--line)}
.steps-rail button:hover .rail-label,.steps-rail button:focus-visible .rail-label,.steps-rail button.on .rail-label{opacity:1;transform:none}
@media (max-width:820px){.steps-rail{display:none}}

/* Particuliers / Pros v2 */
.aud2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,28px)}
.aud-panel{padding:clamp(28px,4vw,44px);border-radius:18px;background:var(--bg);border:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start}
.aud-panel.dark{background:#142C46;color:#FFFFFF;border-color:#142C46}
.aud-ico{width:56px;height:56px;color:var(--text)}
.aud-panel.dark .aud-ico{color:#FFFFFF}
.aud-kicker{margin-top:18px;font-weight:700;color:var(--muted)}
.aud-panel.dark .aud-kicker{color:#C5D0DC}
.aud-panel h3{font-size:clamp(1.5rem,2.6vw,2.1rem);margin-top:6px;letter-spacing:-0.015em}
.checks{list-style:none;padding:0;margin:20px 0 28px;display:grid;gap:10px}
.checks li{position:relative;padding-left:28px}
.checks li::before{content:"";position:absolute;left:0;top:.4em;width:14px;height:16px;background:#E7B73E;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.aud-panel .btn{margin-top:auto}
@media (max-width:720px){.aud2{grid-template-columns:1fr}}

/* Menu mobile */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.menu-btn{display:none;width:48px;height:48px;border:0;background:transparent;color:inherit;cursor:pointer;border-radius:10px;align-items:center;justify-content:center}
.menu-bars,.menu-bars::before,.menu-bars::after{display:block;width:24px;height:2.5px;background:currentColor;border-radius:2px;position:relative;transition:transform .25s,opacity .25s}
.menu-bars::before,.menu-bars::after{content:"";position:absolute;left:0}
.menu-bars::before{top:-8px}.menu-bars::after{top:8px}
.site-header{color:var(--text)}
.site-header.on-hero{color:#FFFFFF}
.menu-open .menu-bars{background:transparent}
.menu-open .menu-bars::before{transform:translateY(8px) rotate(45deg)}
.menu-open .menu-bars::after{transform:translateY(-8px) rotate(-45deg)}
@media (max-width:720px){
  .site-header .wrap{flex-wrap:nowrap;min-height:68px;padding-top:0;padding-bottom:0}
  .menu-btn{display:inline-flex}
  .nav{display:none}
  .site-header.menu-open{background:#142C46;color:#FFFFFF;--logo-ink:#FFFFFF;border-color:transparent}
  .menu-open .nav{display:flex;position:fixed;left:0;right:0;top:calc(68px + env(safe-area-inset-top,0px));bottom:0;background:#142C46;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;padding:24px clamp(20px,4vw,40px);width:auto}
  .site-header.menu-open .nav a{font-family:"Sora","Manrope",sans-serif;font-size:1.6rem;font-weight:600;padding:14px 4px;color:#FFFFFF;border-bottom:1px solid rgba(255,255,255,.16);border-radius:0}
  .site-header.menu-open .nav a[aria-current="page"]{box-shadow:inset 4px 0 0 #E7B73E;padding-left:14px}
  .site-header.menu-open .nav .nav-cta{margin-top:18px;border:0;border-radius:12px;text-align:center;justify-content:center;background:#E7B73E;color:#142C46;font-size:1.15rem}
  .menu-open .cta-long{display:inline}.menu-open .cta-short{display:none}
  .stage{top:68px;height:calc(100vh - 68px);height:calc(100svh - 68px)}
}
@media (prefers-reduced-motion:reduce){.x-hero::before{transform:none}}


/* Logo du héros */
.x-hero-in{grid-template-columns:1fr 1fr}
.x-hero h1{font-size:clamp(2.6rem,5.6vw,5rem)}
.x-hero-mark{width:min(100%,600px);justify-self:end}
.hero-logo{display:block;width:100%;height:auto;overflow:visible;--logo-ink:#FFFFFF}
.hero-logo .mark-shell{fill:#FFFFFF;stroke:#FFFFFF}
.hero-logo .mark-cell{transform-box:fill-box;transform-origin:50% 50%}
.mark-word{opacity:0;animation:wordin .9s ease-out 1.9s forwards}
@keyframes wordin{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.mark-word{animation:none;opacity:1}}
@media (max-width:820px){.x-hero-in{grid-template-columns:1fr}.x-hero-mark{order:-1;width:min(100%,340px);justify-self:start;margin-bottom:8px}}

/* Jardins dispersés */
.x-intro,.x-tech{position:relative}
.g-float{position:absolute;left:var(--gx);right:var(--gr);top:var(--gy);z-index:1;pointer-events:none}
.g-solo{width:56px}.g-duo{width:96px}
.garden.g-solo,.garden.g-duo{height:auto}
.garden-row.center{justify-content:center}
.garden-row.in-text.start{justify-content:flex-start}
@media (max-width:1100px){.g-float{display:none}}

/* Schéma frigorifique */
.schema-story{height:260vh}
.schema-in{grid-template-columns:.9fr 1.1fr}
.schema-steps li{font-weight:400}
.schema-steps b{font-weight:700}
.schema-art{flex-direction:column;align-items:center}
.schema-art svg{max-width:640px;max-height:64vh}
.pipe{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.pipe.thick{stroke-width:7}
.pipe.hp{stroke:#D9443B}
.pipe.bp{stroke:#2D6CDF}
.flow{fill:none;stroke:#FFFFFF;stroke-opacity:.9;stroke-width:2;stroke-dasharray:4 16;animation:flow 1.2s linear infinite}
@keyframes flow{to{stroke-dashoffset:-40}}
.box{fill:var(--bg);stroke:var(--text);stroke-width:2.6;stroke-linejoin:round;transition:stroke .3s,filter .3s}
.coil{fill:none;stroke:var(--text);stroke-width:2;stroke-linejoin:round}
.sym{fill:none;stroke:var(--text);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.sym.thin{stroke-width:1.6}
.air{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.air.hot{stroke:#D9443B}.air.cold{stroke:#2D6CDF}
.lbl{font:600 14px "Manrope",sans-serif;fill:var(--text)}
.lbl.sm{font-size:12px;font-weight:500;fill:var(--muted)}
.gauge circle{fill:var(--bg);stroke:var(--text);stroke-width:1.8}
.gauge text{font:700 8.5px "Manrope",sans-serif;fill:var(--text)}
.comp.on .box{stroke:#E7B73E;stroke-width:4;filter:drop-shadow(0 0 8px rgba(231,183,62,.55))}
.comp.on .sym,.comp.on .coil{stroke:#C9961F}
.schema-note{margin-top:8px;font-size:.88rem;color:var(--muted);text-align:center}
@media (max-width:820px){.schema-in{grid-template-columns:1fr}.schema-story{height:auto}.schema-story .stage{position:static;height:auto;padding:64px 0}.schema-art svg{max-height:none}.schema-steps li{opacity:1;transform:none;font-size:.98rem}}
@media (prefers-reduced-motion:reduce){.flow{animation:none;display:none}}


/* Schéma de principe (installation) */
.art-stack{flex-direction:column;align-items:center;gap:10px}
.art-stack .illu{max-height:34vh}
.feat-art.art-stack .illu{max-height:none;max-width:440px}
.mini-schema{width:100%;max-width:520px;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px 8px}
.mini-schema svg{display:block;width:100%;height:auto;max-height:26vh;overflow:visible}
.feat-art .mini-schema svg{max-height:none}
.mini-cap{font-size:.8rem;color:var(--muted);text-align:center;margin-top:2px}
.lbl.xs{font-size:10.5px;font-weight:500}
.lbl.xs.b{font-weight:700;font-size:11.5px}
.insul{fill:none;stroke:#2E343B;stroke-width:11;stroke-linecap:round;stroke-linejoin:round}
.drain{fill:none;stroke:#8C98A5;stroke-width:2.2;stroke-dasharray:4 4}
.valve{fill:var(--bg);stroke:var(--text);stroke-width:1.6;stroke-linejoin:round}
.flow.sm{stroke-width:1.6;stroke-dasharray:3 12}
@media (max-width:820px){.story-install{height:auto}.story-install .stage{position:static;height:auto;padding:64px 0}.story-install .details li{opacity:1;transform:none}.art-stack .illu{max-height:30vh}.mini-schema svg{max-height:none}}


/* Pourquoi c'est important */
.why{margin-top:18px;padding:12px 0 12px 16px;border-left:3px solid #E7B73E;max-width:52ch;font-size:.98rem;line-height:1.55}
.why b{display:block;font-weight:700;margin-bottom:4px}
.stage-text .details{margin-top:20px}
@media (max-width:820px){.story{height:auto}.story .stage{position:static;height:auto;padding:64px 0}.story .details li{opacity:1;transform:none}}


/* Carte de France */
.x-final{text-align:left}
.x-final-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,5vw,72px);align-items:center}
.x-final-text h2{max-width:14ch}
.x-final-text p{margin-top:20px;color:#C5D0DC;font-size:1.12rem;max-width:46ch}
.x-final-text .btns{margin-top:30px}
.map-legend{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px;color:#E6ECF2;font-size:.98rem}
.map-legend li{display:flex;align-items:center;gap:12px}
.sw{width:22px;height:14px;border-radius:3px;flex:none;border:1.5px solid #E7B73E}
.sw-on{background:rgba(231,183,62,.35)}
.sw-pro{background:repeating-linear-gradient(45deg,rgba(231,183,62,.7) 0 2px,rgba(231,183,62,.12) 2px 5px)}
.x-map{position:relative}
.fr-map{display:block;width:100%;height:auto;max-height:78vh;overflow:visible}
.reg{fill:rgba(255,255,255,.06);stroke:rgba(255,255,255,.3);stroke-width:.8;stroke-linejoin:round}
.reg.on{fill:rgba(231,183,62,.24);stroke:#E7B73E;stroke-width:1.3}
.reg.pro{fill:url(#hatch);stroke:#E7B73E;stroke-width:1.1}
.honey{fill:none;stroke:url(#hg);stroke-width:var(--w);stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 2.8s cubic-bezier(.3,.6,.3,1)}
.gloss{fill:none;stroke:#FFF3C4;stroke-opacity:.6;stroke-width:1.3;stroke-linecap:round;stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 2.8s cubic-bezier(.3,.6,.3,1) .15s;transform:translate(-1px,-1.5px)}
.x-map.on .honey,.x-map.on .gloss{stroke-dashoffset:0}
.drip{display:none;fill:url(#hg);transform-box:fill-box;transform-origin:50% 0;transform:scaleY(0);transition:transform .9s ease 2.2s}
.x-map.on .drip{transform:scaleY(1);animation:ooze 3.2s ease-in-out 3.2s infinite alternate}
@keyframes ooze{to{transform:scaleY(1.22)}}
.city{fill:#FFFFFF}
.clbl{fill:#111111;font:700 17px "Sora","Manrope",sans-serif;paint-order:stroke;stroke:#E7B73E;stroke-width:4px;stroke-linejoin:round}
.clbl.b{font-size:18px}
.ldrip{fill:#E7B73E;transform-box:fill-box;transform-origin:50% 0;transform:scaleY(0);transition:transform .9s ease}
.x-map.on .ldrip{transform:scaleY(1);animation:ooze 3s ease-in-out 1.2s infinite alternate}
.x-map.on .ldrip:nth-child(3n){animation-duration:3.8s}
.mbee .mbee-in{animation:bob 1.3s ease-in-out infinite alternate}
.mbee:nth-child(even) .mbee-in{animation-duration:1.7s}
@keyframes bob{to{transform:translate(1.5px,-3.5px)}}
.x-final .map-credit{font-size:.74rem;color:#8FA2B6;margin-top:6px;text-align:right}
@media (max-width:860px){.x-final-grid{grid-template-columns:1fr}.fr-map{max-height:none}}
@media (prefers-reduced-motion:reduce){.ldrip{transition:none;transform:none;animation:none}.honey,.gloss{transition:none;stroke-dashoffset:0}.drip{transition:none;transform:none;animation:none}.mbee .mbee-in{animation:none}}

.mail{display:inline-block;margin-top:10px;font-family:"Sora","Manrope",sans-serif;font-weight:600;font-size:1.15rem;text-decoration:none;min-height:44px;line-height:44px;word-break:break-all}
.mail:hover{text-decoration:underline;text-decoration-color:#E7B73E}

/* Essaim */
.swarm{position:fixed;inset:0;pointer-events:none;z-index:15;overflow:hidden}
.bee{position:absolute;left:0;top:0;width:28px;height:24px;margin:-12px 0 0 -14px;will-change:transform}
.bee svg{width:100%;height:100%;display:block;overflow:visible}
.bee .wing{fill:#DDEBF7;fill-opacity:.62;stroke:#142C46;stroke-opacity:.45;stroke-width:.7;transform-box:fill-box;transform-origin:50% 100%;animation:flap .07s linear infinite alternate}
.bee.rest .wing{animation-duration:.22s}
@keyframes flap{from{transform:scaleY(1)}to{transform:scaleY(.35)}}
@media (prefers-reduced-motion:reduce){
  .swarm{display:none}
  .details li{opacity:1;transform:none;transition:none}
  .x-statement .w{opacity:1}
  .stage-art{transform:none}
  .story{height:auto}
  .stage{position:static;height:auto;padding:72px 0}
}


/* Trois métiers */
.metiers{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,28px);margin-top:44px}
.metiers-services{margin-top:clamp(40px,6vw,64px)}
.metier{position:relative;padding:clamp(28px,3vw,40px);border-radius:18px;background:var(--bg);border:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;color:var(--text);text-decoration:none;transition:transform .2s,box-shadow .2s}
.metier:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(20,44,70,.10)}
.metier::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;border-radius:18px 18px 0 0;background:var(--acc)}
.metier .hexi{width:64px;height:72px}
.metier .hx{fill:var(--acc-soft);stroke:var(--acc);stroke-width:2.4}
.metier .ic{fill:none;stroke:var(--acc-ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.metier .ic-fill{fill:var(--acc)}
.metier h3{font-size:clamp(1.5rem,2.4vw,2rem);margin-top:18px;letter-spacing:-0.015em}
.metier p{margin-top:10px;color:var(--muted)}
.metier .text-link{text-decoration:underline;text-decoration-color:var(--acc);margin-top:auto;padding-top:18px}
.metier .m-flower{position:absolute;top:-44px;right:20px;width:52px;height:52px;overflow:visible}
.metier .m-flower .pt{fill:var(--acc)}
.m-clim{--acc:#3D9FE0;--acc-soft:#E0F1FC;--acc-ink:#3D9FE0}
.m-vent{--acc:#AEBCCB;--acc-soft:#FFFFFF;--acc-ink:#7E91A5}
.m-chau{--acc:#EE8A25;--acc-soft:#FDEBD8;--acc-ink:#EE8A25}
.m-vent .m-flower .pt{fill:#FFFFFF}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .m-clim{--acc-soft:#16324D}:root:not([data-theme="light"]) .m-vent{--acc-soft:#1E2F42}:root:not([data-theme="light"]) .m-chau{--acc-soft:#3A2A1A}}
:root[data-theme="dark"] .m-clim{--acc-soft:#16324D}:root[data-theme="dark"] .m-vent{--acc-soft:#1E2F42}:root[data-theme="dark"] .m-chau{--acc-soft:#3A2A1A}
.m-head{position:relative}
.m-head::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:4px;background:var(--acc)}
.m-kicker{font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.85rem !important;color:var(--acc-ink) !important;margin:0 0 10px !important}
.metier-cta{border-top:1px solid var(--line)}
@media (max-width:860px){.metiers{grid-template-columns:1fr;gap:40px}}

/* Schémas ventilation et chauffage */
.pipe.neuf{stroke:#2D6CDF}.pipe.insuf{stroke:#E8913A}.pipe.extr{stroke:#9A8C7E}.pipe.rejet{stroke:#B9C3CD}
.pipe.gaz{stroke:#E7B73E}.pipe.fumee{stroke:#B9C3CD}
.air.warm{stroke:#E8913A}.air.used{stroke:#9A8C7E}
.flame{fill:#5FAEF0;transition:fill .3s}.comp.on .flame{fill:#EE8A25}
.prose.no-photo{grid-template-columns:minmax(0,1fr)}
