/* Toiture + : CSS commun. Partie 1 : copie du <style> de maquettes/melange.html (généré par site/build.py). */

:root{
  --bg:#F6F6F6; --surface:#FFFFFF; --ink:#000000; --text:#1D1D1F; --muted:#6E6E73; --faint:#A1A1A6;
  --line:rgba(0,0,0,.08); --line-2:rgba(0,0,0,.15);
  --chip:rgba(0,0,0,.05); --chip-text:#525252;
  --night:#000000; --on-night:#F5F5F7; --night-muted:#8E8E93;
  --accent:#000000; --on-accent:#FFFFFF; --accent-hi:#FFFFFF; --on-accent-hi:#000000; --glow:255,255,255;
  --shell:rgba(0,0,0,.035); --shell-ring:rgba(0,0,0,.06); --hl:rgba(255,255,255,.8);
  --nav-bg:rgba(255,255,255,.74); --nav-ring:rgba(0,0,0,.07);
  --ease:cubic-bezier(.32,.72,0,1); --ease-io:cubic-bezier(.65,0,.35,1);
  --font:'Archivo', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono:'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --r-xl:28px; --r-lg:22px;
  --gutter:clamp(16px, 4vw, 40px);
  --stage-w:min(1180px, 100vw - 2 * var(--gutter));
  --overlap:clamp(150px, 17vw, 236px);
  --rise:calc(var(--stage-w) * .2083);
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
h1,h2,h3,p,figure{margin:0}
a{color:inherit}
img,svg{display:block}
button,input{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}
.band :focus-visible{outline-color:#FFFFFF}
.skip{position:fixed;left:16px;top:-60px;z-index:60;padding:10px 16px;border-radius:999px;background:var(--ink);color:var(--bg);text-decoration:none;font-weight:600;transition:top .4s var(--ease)}
.skip:focus{top:16px}
.wrap{width:min(1180px, 100% - 2 * var(--gutter));margin-inline:auto}
.nb{white-space:nowrap}


/* Typo */
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:4px 9px;border-radius:4px;background:var(--chip);color:var(--chip-text);font-size:12.5px;font-weight:500;line-height:1.35}
.band .eyebrow{background:rgba(255,255,255,.1);color:#D1D1D6}
.h1{font-size:clamp(2.6rem, 1rem + 5.1vw, 5.25rem);font-weight:600;letter-spacing:-.048em;line-height:.98;text-wrap:balance}
.h2{font-size:clamp(2.05rem, 1.15rem + 2.9vw, 3.75rem);font-weight:600;letter-spacing:-.042em;line-height:1.03;color:var(--ink);text-wrap:balance}
.h2 .l{display:block}
.h3{font-size:clamp(1.2rem, 1.05rem + .5vw, 1.45rem);font-weight:600;letter-spacing:-.025em;line-height:1.2;color:var(--ink)}
.lead{font-size:clamp(1.06rem, .96rem + .42vw, 1.28rem);line-height:1.52;color:var(--muted);text-wrap:pretty}
.small{font-size:14px;line-height:1.5;color:var(--muted)}
.band{background:var(--night);color:var(--on-night)}
.band .h2,.band .h3{color:var(--on-night)}
.band .lead,.band .small{color:var(--night-muted)}

/* Boutons : pilule, icône dans son propre cercle */
.btn{--b-bg:var(--accent);--b-fg:var(--on-accent);--b-ic:rgba(255,255,255,.16);position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:14px;min-height:52px;padding:6px 6px 6px 22px;border:0;border-radius:999px;background:var(--b-bg);color:var(--b-fg);font-size:16px;font-weight:550;letter-spacing:-.012em;line-height:1.2;text-decoration:none;cursor:pointer;transition:transform .5s var(--ease), background-color .4s var(--ease), box-shadow .5s var(--ease);-webkit-tap-highlight-color:transparent}
.btn:active{transform:scale(.98)}
.btn .ic{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--b-ic);transition:transform .6s var(--ease)}
.btn .ic svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.btn:hover .ic{transform:translate(3px,-1px) scale(1.06)}
.btn-ghost{--b-bg:transparent;--b-fg:var(--ink);padding:6px 24px;box-shadow:inset 0 0 0 1px var(--line-2)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.band .btn{--b-bg:var(--accent-hi);--b-fg:var(--on-accent-hi);--b-ic:rgba(0,0,0,.08)}
.band .btn-ghost{--b-bg:rgba(255,255,255,.06);--b-fg:var(--on-night);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.band .btn-ghost:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}

/* Navigation : îlot flottant */
.nav{position:fixed;top:12px;left:50%;z-index:40;width:min(1010px, 100% - 24px);height:58px;transform:translateX(-50%);display:flex;align-items:center;gap:8px;padding:0 8px 0 20px;border-radius:999px;background:var(--nav-bg);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:inset 0 0 0 1px var(--nav-ring), 0 10px 30px -14px rgba(0,0,0,.18);color:var(--text);transition:background-color .6s var(--ease), color .6s var(--ease), box-shadow .6s var(--ease)}
.nav.is-dark,.menu-open .nav{background:rgba(22,22,24,.6);color:var(--on-night);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12), 0 10px 30px -14px rgba(0,0,0,.6)}
.logo{display:inline-flex;align-items:center;gap:10px;font-size:17px;font-weight:600;letter-spacing:-.025em;text-decoration:none;white-space:nowrap}
.logo svg{height:19px;width:auto;display:block}
.nav-links{display:flex;gap:2px;margin-inline:auto}
.nav-links a{padding:8px 14px;border-radius:999px;font-size:14.5px;text-decoration:none;opacity:.8;transition:opacity .35s var(--ease), background-color .35s var(--ease)}
.nav-links a:hover{opacity:1;background:rgba(128,128,128,.14)}
.nav-cta{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:14.5px;font-weight:550;text-decoration:none;white-space:nowrap;transition:transform .5s var(--ease), background-color .5s var(--ease)}
.nav-cta:active{transform:scale(.97)}
.nav.is-dark .nav-cta,.menu-open .nav-cta{background:var(--accent-hi);color:var(--on-accent-hi)}
.nav-ghost{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:999px;font-size:14.5px;font-weight:550;text-decoration:none;white-space:nowrap;box-shadow:inset 0 0 0 1px var(--line-2);transition:box-shadow .4s var(--ease)}
.nav-ghost:hover{box-shadow:inset 0 0 0 1px currentColor}
.nav.is-dark .nav-ghost,.menu-open .nav-ghost{box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.nav.is-dark .nav-ghost:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.8)}
.burger{display:none;position:relative;width:44px;height:44px;margin-left:auto;border:0;border-radius:50%;background:transparent;cursor:pointer}
.burger span{position:absolute;left:13px;top:21px;width:18px;height:1.5px;border-radius:2px;background:currentColor;transition:transform .55s var(--ease)}
.burger span:nth-child(1){transform:translateY(-4px)}
.burger span:nth-child(2){transform:translateY(4px)}
.menu-open .burger span:nth-child(1){transform:rotate(45deg)}
.menu-open .burger span:nth-child(2){transform:rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:39;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:100px 28px 40px;background:rgba(0,0,0,.86);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);color:#F5F5F7;opacity:0;visibility:hidden;transition:opacity .5s var(--ease), visibility 0s .5s}
.menu-open .menu{opacity:1;visibility:visible;transition:opacity .5s var(--ease)}
.menu a{padding:6px 0;font-size:clamp(2rem, 1.3rem + 3vw, 3rem);font-weight:600;letter-spacing:-.04em;text-decoration:none;opacity:0;transform:translateY(36px);transition:opacity .7s var(--ease), transform .8s var(--ease)}
.menu-open .menu a{opacity:1;transform:none}
.menu-open .menu a:nth-child(2){transition-delay:.05s}
.menu-open .menu a:nth-child(3){transition-delay:.1s}
.menu-open .menu a:nth-child(4){transition-delay:.15s}
.menu-open .menu a:nth-child(5){transition-delay:.2s}
.menu-open .menu a:nth-child(6){transition-delay:.25s}
.menu .btn{--b-bg:var(--accent-hi);--b-fg:var(--on-accent-hi);--b-ic:rgba(0,0,0,.08);align-self:flex-start;margin-top:22px;font-size:17px;letter-spacing:-.012em}
body.menu-open{overflow:hidden}
.menu .btn-ghost{--b-bg:transparent;--b-fg:#F5F5F7;margin-top:10px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
@media (max-width:1100px){.nav .nav-ghost{display:none}}
@media (max-width:880px){.nav-links,.nav .nav-cta{display:none}.burger{display:block}}

/* Photo de secours : si une nouvelle photo manque, l'image se cache et le fond CSS prend le relais */
.fb{background-color:#1C1C1E;background-size:cover;background-position:50% 50%}
img.manque{visibility:hidden}

/* N2 · Hero : la photo du quartier, les prix sur les toits, le guide en bas */
.hero{position:relative;isolation:isolate;padding:clamp(140px, 17vh, 196px) 0 clamp(56px, 6vw, 84px);text-align:center;overflow:hidden}
.hero-photo,.hero-ombre,.hero-prix{position:absolute;left:0;top:0;width:100%;height:100%}
.hero-photo{z-index:-4;object-fit:cover}
.hero-ombre{z-index:-3;background:radial-gradient(48% 30% at 50% 26%, rgba(0,0,0,.42), rgba(0,0,0,0) 74%),radial-gradient(52% 26% at 50% 84%, rgba(0,0,0,.5), rgba(0,0,0,0) 80%),linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.28) 30%, rgba(0,0,0,.34) 56%, rgba(0,0,0,.74) 82%, #000 100%)}
.hero-prix{z-index:-2;pointer-events:none}
.hero-in{position:relative;display:flex;flex-direction:column;align-items:center;gap:24px}
.hero .h1{max-width:15ch;padding-bottom:.06em;background:linear-gradient(180deg, #FFFFFF 40%, #C9C9CE 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .h1 .l{display:block}
.hero .lead{max-width:40rem;color:rgba(255,255,255,.84)}
.hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:6px}
.checks{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;margin:10px 0 0;padding:0;list-style:none;font-size:14px;color:rgba(255,255,255,.78)}
.checks li{display:inline-flex;align-items:center;gap:8px}
.checks svg{width:16px;height:16px;fill:none;stroke:var(--accent-hi);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hero-guide{display:flex;flex-direction:column;align-items:center;gap:14px;width:min(820px, 100%);margin-top:clamp(64px, 9vw, 132px);padding-top:clamp(28px, 3vw, 40px);border-top:1px solid rgba(255,255,255,.16)}
.hero-guide .h3{color:#FFF;font-size:clamp(1.45rem, 1.1rem + 1.1vw, 2.1rem);letter-spacing:-.035em}
.hero-guide .small{color:rgba(255,255,255,.62)}

/* Étiquette : pastille sombre, pointe et point lumineux sur le toit */
.pin .halo{fill:rgba(var(--glow),.28)}
.pin .pt{fill:rgb(var(--glow))}
.pin .tige{stroke:rgba(255,255,255,.55);stroke-width:1.5}
.pin rect{fill:rgba(10,10,12,.72);stroke:rgba(255,255,255,.22);stroke-width:1.2}
.pin text{font-family:var(--font);font-weight:600;font-size:25px;letter-spacing:-.02em;fill:#FFFFFF;text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums}
.pin .t{opacity:0;transform-box:fill-box;transform-origin:50% 100%;animation:pose .9s var(--ease) forwards;animation-delay:var(--d, 0s)}
.pin .t{scale:.8}
.pin.cache{display:none}
@keyframes pose{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}

/* Guide « Qu’est-ce qui t’empêche de dormir? » : pastilles dans le hero, réponse juste dessous */
.probs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}
.probs button{min-height:44px;padding:0 18px;border:0;border-radius:999px;background:rgba(10,10,12,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#E5E5EA;font:inherit;font-size:15px;font-weight:500;letter-spacing:-.01em;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);transition:background-color .4s var(--ease), color .4s var(--ease), box-shadow .4s var(--ease), transform .4s var(--ease)}
.probs button:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);color:#FFF}
.probs button:active{transform:scale(.97)}
.probs button[aria-selected="true"]{background:#FFF;color:#000;box-shadow:none}
.probs button:focus-visible{outline:2px solid #FFF;outline-offset:3px}
.guide{padding:0 0 clamp(80px, 9vw, 128px)}
.rep{display:grid;grid-template-columns:minmax(0, 5fr) minmax(0, 6fr);gap:12px clamp(24px, 4vw, 56px);align-items:start;width:min(900px, 100%);margin:0 auto;padding:clamp(24px, 3vw, 36px);border-radius:var(--r-xl);background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12), inset 0 1px 0 rgba(255,255,255,.08)}
.rep > *{transition:opacity .35s var(--ease), transform .45s var(--ease)}
.rep.sort > *{opacity:0;transform:translateY(8px)}
.rep-k{font-family:var(--mono);font-size:12px;color:rgba(255,255,255,.5)}
.rep h3{margin-top:8px;font-size:clamp(1.35rem, 1.1rem + .8vw, 1.85rem);font-weight:600;letter-spacing:-.03em;line-height:1.15;color:#FFF}
.rep-x{color:#A1A1A6;line-height:1.55}
.rep-lien{display:inline-flex;align-items:center;gap:10px;margin-top:18px;color:#FFF;font-weight:550;text-decoration:none}
.rep-lien span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.12);transition:transform .45s var(--ease)}
.rep-lien svg{width:14px;height:14px;fill:none;stroke:#FFF;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rep-lien:hover span{transform:translateX(3px)}

/* N3 · Bande « fait pour les toits d’ici » */
.metier{padding:clamp(44px, 5vw, 64px) 0;background:var(--surface);border-bottom:1px solid var(--line)}
.metier-k{text-align:center;font-size:13px;font-weight:500;color:var(--muted)}
.defile{overflow:hidden;margin-top:20px;-webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent)}
.defile-in{display:flex;width:max-content;animation:defile 52s linear infinite}
.defile:hover .defile-in{animation-play-state:paused}
.defile ul{--g:clamp(28px, 3.6vw, 52px);display:flex;gap:var(--g);margin:0;padding:0 var(--g) 0 0;list-style:none}
.defile li{font-size:clamp(18px, 1.6vw, 22px);font-weight:600;letter-spacing:-.035em;color:var(--faint);white-space:nowrap}
@keyframes defile{to{transform:translateX(-50%)}}
.plats{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:8px 22px;margin-top:26px;font-size:14px;color:var(--muted);text-align:center}
.plats ul{display:contents;list-style:none}
.plats li{font-weight:600;letter-spacing:-.02em;color:var(--text)}

/* N4 · Démo : titre sur fond de nuit, toit 3D, calculateur et fiche */
.demo-sec{position:relative;isolation:isolate;overflow:hidden;padding:clamp(96px, 11vw, 152px) 0 calc(var(--overlap) + var(--rise) + clamp(64px, 7vw, 120px))}
.demo-fond{position:absolute;inset:0;z-index:-2}
.demo-fond img{width:100%;height:100%;object-fit:cover;opacity:.5;filter:grayscale(.25)}
.demo-fond::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, #000 0%, rgba(0,0,0,.62) 28%, rgba(0,0,0,.7) 60%, #000 94%)}
.demo-fond.fb{background:#000}
.demo-cta{display:flex;flex-direction:column;align-items:center;gap:14px;padding-top:clamp(44px, 5vw, 64px);text-align:center}

/* Scène : le produit sous le toit lumineux */
.stage-wrap{position:relative;z-index:2;margin-top:calc(-1 * var(--overlap));overflow-x:clip}
.stage{position:relative;width:var(--stage-w);margin-inline:auto}
.roof{position:absolute;left:50%;bottom:100%;z-index:0;width:122.04%;height:auto;transform:translate(-50%, 3.334%);overflow:visible;pointer-events:none}
.roof .gable{fill:var(--night)}
.roof .crs{stroke:rgba(255,255,255,.06);stroke-width:1}
.roof .rl{fill:none;stroke:rgb(var(--glow));stroke-width:1.6;stroke-linecap:round}
.roof .gw{fill:none;stroke:rgba(var(--glow),.75);stroke-width:4;stroke-linecap:round}
.roof .gw2{fill:none;stroke:rgba(var(--glow),.32);stroke-width:18;stroke-linecap:round}
.roof .s0{stop-color:rgba(var(--glow),.24)}
.roof .s1{stop-color:rgba(var(--glow),.06)}
.roof .s2{stop-color:rgba(var(--glow),0)}
.roof .note{font-family:var(--mono);font-size:12px;fill:rgba(255,255,255,.42)}
/* ===== B : bande d’estimations en photos ===== */
.bB{background:var(--surface);padding:clamp(56px,6vw,84px) 0;border-bottom:1px solid var(--line)}
.bB-h{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap}
.bB-h h2{font-size:clamp(1.5rem,1.1rem + 1.4vw,2.25rem);font-weight:600;letter-spacing:-.04em;line-height:1.08;color:var(--ink);max-width:24ch}
.bB-h p{font-size:14px;color:var(--muted)}
.bB-rail{overflow:hidden;margin-top:32px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.bB-in{display:flex;gap:16px;width:max-content;animation:defile 70s linear infinite}
.bB-rail:hover .bB-in{animation-play-state:paused}
.bB-c{position:relative;flex:none;width:clamp(240px,24vw,320px);aspect-ratio:4/3;border-radius:18px;overflow:hidden;background:#111}
.bB-c img{width:100%;height:100%;object-fit:cover;filter:grayscale(.55) contrast(1.05) brightness(.92)}
.bB-c::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.72))}
.bB-c .t{position:absolute;left:14px;right:14px;bottom:12px;z-index:1;color:#FFF}
.bB-c .t small{display:block;font-family:var(--mono);font-size:11px;color:rgba(255,255,255,.7)}
.bB-c .t b{display:block;margin-top:3px;font-size:17px;font-weight:600;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.bB-c .pin{position:absolute;top:12px;left:12px;z-index:1;padding:4px 10px;border-radius:999px;background:rgba(10,10,12,.66);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);color:#FFF;font-size:12px;font-weight:550}

/* Preuve : Toitures ProNano (vrai client, vraie citation publiée sur wautomatisations.com) */
.preuve-site > .in{padding:0;gap:0;overflow:hidden}
.preuve-site img{display:block;width:100%;height:auto;filter:grayscale(1)}
.preuve-faits{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;padding:0;list-style:none}
.preuve-faits li{padding:6px 11px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line, rgba(0,0,0,.12));font-size:13.5px}
.citation{margin:28px 0 0;padding:0 0 0 20px;border-left:2px solid var(--ink)}
.citation p{margin:0;font-size:clamp(1.15rem, 1rem + .5vw, 1.4rem);line-height:1.45;color:var(--ink);font-weight:450}
.citation footer{margin-top:12px;font-size:14px;color:var(--muted)}
.citation footer b{color:var(--ink);font-weight:550}
.rdv-cal{max-width:1080px;margin:clamp(32px, 4vw, 56px) auto 0}
.rdv-cal > .in{padding:0;overflow:hidden;background:#FFF}
.rdv-repli{padding:40px 24px;text-align:center;color:#6E6E73;font-size:15px}
.rdv-repli a{color:#1D1D1F;text-decoration:underline}
/* Toit 3D (roof3d.js) : remplace le SVG quand WebGL est là */
.roof3d{position:absolute;left:50%;bottom:100%;z-index:0;width:122.04%;aspect-ratio:1440/605;transform:translate(-50%, 5.546%);pointer-events:none;display:none}
.r3d-on .roof3d{display:block}
.r3d-on .roof{display:none}
.roof3d::before{content:"";position:absolute;inset:-10% 5% -8%;background:radial-gradient(50% 55% at 50% 78%, rgba(var(--glow),.16), rgba(var(--glow),0) 70%);pointer-events:none}
.roof3d canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.r3d-tag{position:absolute;left:0;top:0;font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:#fff;white-space:nowrap;padding:6px 11px;border-radius:999px;background:rgba(8,8,10,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2), 0 8px 24px rgba(0,0,0,.4);opacity:0;transition:opacity .7s var(--ease), filter .7s var(--ease);filter:blur(4px);will-change:transform}
.r3d-tag.on{opacity:1;filter:none}
.r3d-tag.big{font-family:var(--font);font-weight:600;font-size:15px;letter-spacing:-.01em;padding:8px 14px;background:#fff;color:#000;box-shadow:0 0 0 6px rgba(255,255,255,.12), 0 10px 30px rgba(0,0,0,.45)}
@media (max-width: 700px){ .r3d-tag.sm,.r3d-tag:not(.big){display:none} .r3d-tag.big{font-size:12px;padding:6px 10px} }
.cotes{position:relative;z-index:1;display:grid;grid-template-columns:5fr 7fr;margin:0 0 14px;padding:0 6px}
.cote{display:flex;align-items:center;gap:12px;padding:0 18px;color:rgba(255,255,255,.6);font-family:var(--mono);font-size:11.5px;white-space:nowrap}
.cote i{position:relative;flex:1;height:1px;background:rgba(255,255,255,.28)}
.cote i::before{content:"";position:absolute;top:-6px;width:1px;height:13px;background:rgba(255,255,255,.7);transform:rotate(45deg)}
.cote i:first-child::before{left:0}
.cote i:last-child::before{right:0}
.vue{display:none}
.shell{position:relative;z-index:1;padding:6px;border-radius:var(--r-xl);background:rgba(128,128,128,.16);box-shadow:inset 0 0 0 1px rgba(128,128,128,.24), 0 60px 120px -40px rgba(0,0,0,.45)}
.core{display:grid;grid-template-columns:5fr 7fr;overflow:hidden;border-radius:calc(var(--r-xl) - 6px);background:var(--surface);box-shadow:inset 0 1px 0 var(--hl)}
.stage .t30{--t30-fg:var(--text);--t30-bg:var(--surface);--t30-line:var(--line-2);--t30-muted:var(--muted);--t30-radius:12px;--t30-field-bg:var(--surface);--t30-font:var(--font);height:100%;border:0;border-radius:0}
.stage .t30-top{padding:16px 20px}
.stage .t30-steps{padding:10px 20px}
.stage .t30-pane{padding:22px 20px}
.stage .t30-h{font-size:22px;font-weight:600;letter-spacing:-.028em}
.stage .t30-price{font-weight:600;letter-spacing:-.035em}
.stage .t30-btn{border-radius:999px;padding-inline:24px;font-weight:600}
.stage .t30-logo{border-radius:8px;font-weight:600}
.stage .t30-brand{font-weight:600;letter-spacing:-.01em}
.stage .t30-steps li span,.stage .t30-steps li.is-current{font-weight:600}
.fiche{display:flex;flex-direction:column;min-width:0;border-left:1px solid var(--line)}
.fiche-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.fiche-title{font-size:15px;font-weight:600;letter-spacing:-.012em;color:var(--ink)}
.status{margin-left:auto;display:inline-flex;align-items:center;gap:8px;padding:4px 11px 4px 9px;border-radius:999px;background:var(--chip);color:var(--chip-text);font-size:12.5px;font-weight:500;white-space:nowrap}
.status i{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.status[data-s="live"] i{background:var(--accent);animation:pulse 1.6s var(--ease) infinite}
.status[data-s="sent"] i{background:var(--accent)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(0,0,0,.35)}100%{box-shadow:0 0 0 9px transparent}}
.fiche-draw{position:relative;padding:10px 16px 2px;background-image:linear-gradient(var(--line) 1px, transparent 1px),linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:24px 24px;background-position:-1px -1px}
.fiche-draw svg{width:100%;height:auto;max-height:290px;transition:opacity .6s var(--ease)}
.fiche-draw.ghost .plan,.fiche-draw.ghost .f-photo{opacity:.16}
.fiche-draw[data-v="photo"] #f-plan,.fiche-draw[data-v="plan"] .f-photo{display:none}
.fseg{position:absolute;right:14px;top:12px;z-index:2;display:inline-flex;padding:3px;border-radius:999px;background:var(--surface);box-shadow:0 0 0 1px var(--line-2), 0 4px 12px -6px rgba(0,0,0,.2)}
.fseg button{border:0;padding:4px 12px;border-radius:999px;background:transparent;color:var(--muted);font-size:12.5px;font-weight:500;cursor:pointer;transition:background-color .4s var(--ease), color .4s var(--ease)}
.fseg button[aria-pressed="true"]{background:var(--ink);color:#FFF}
.f-photo{position:relative;overflow:hidden;aspect-ratio:620 / 400;max-height:290px;margin:4px 0 12px;border-radius:12px;background:#2A2A2C;transition:opacity .6s var(--ease)}
.f-photo img,.f-photo svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.f-photo svg{filter:drop-shadow(0 0 4px rgba(0,0,0,.55))}
.f-photo .ol{fill:rgba(255,255,255,.16);stroke:#FFF;stroke-width:4;stroke-linejoin:round}
.f-photo .rg{fill:none;stroke:#FFF;stroke-width:3;stroke-dasharray:9 8;stroke-linecap:round}
.f-photo .lab{position:absolute;transform:translate(-50%,-50%);padding:4px 10px;border-radius:999px;background:rgba(12,12,14,.8);box-shadow:0 0 0 1px rgba(255,255,255,.25);color:#FFF;font-family:var(--mono);font-size:11px;white-space:nowrap}
.f-photo .cr{position:absolute;left:10px;bottom:8px;font-family:var(--mono);font-size:10px;color:rgba(255,255,255,.75);text-shadow:0 1px 2px rgba(0,0,0,.6)}
.win{display:flex;flex-direction:column;min-width:0}
.win #widget{flex:1}
.win-bar{display:flex;align-items:center;gap:12px;height:40px;padding:0 14px;background:#F2F2F3;border-bottom:1px solid var(--line)}
.dots{display:flex;gap:6px;flex:none}
.dots i{width:10px;height:10px;border-radius:50%;background:#D5D5D8}
.url{display:flex;align-items:center;justify-content:center;gap:6px;width:min(320px, 100%);height:26px;margin:0 auto;padding:0 12px;border-radius:7px;background:#FFF;box-shadow:inset 0 0 0 1px var(--line);font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden}
.url svg{flex:none;width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.4}
.dots + .url{transform:translateX(-24px)}
.cart{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));margin:0;border-top:1px solid var(--line-2)}
.cart div{min-width:0;padding:10px 18px 11px;border-bottom:1px solid var(--line)}
.cart div:nth-child(odd){border-right:1px solid var(--line)}
.cart dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;color:var(--muted)}
.cart dd{margin:3px 0 0;font-size:14px;font-weight:500;line-height:1.35;color:var(--ink);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.cart dd.is-empty{color:var(--faint);font-weight:400}
.cart-foot{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding:10px 18px;font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.notif{position:absolute;z-index:3;top:58px;right:-14px;display:flex;align-items:flex-start;gap:12px;width:min(330px, 80%);padding:12px 14px;border-radius:18px;background:rgba(250,250,250,.95);color:#1D1D1F;box-shadow:0 0 0 1px rgba(0,0,0,.06), 0 22px 50px -18px rgba(0,0,0,.4);font-size:13.5px;line-height:1.4;opacity:0;visibility:hidden;transform:translateY(-10px) scale(.97);transition:opacity .6s var(--ease), transform .7s var(--ease), visibility 0s .7s;pointer-events:none}
.notif.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .6s var(--ease), transform .7s var(--ease)}
.notif b{display:block;font-weight:600}
.notif .app{flex:none;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--accent);color:#FFF;font-size:12px;font-weight:600}
.notif small{display:block;color:#6E6E73;font-size:12px}

/* Plan dessiné dans la fiche */
.plan{font-family:var(--mono);overflow:visible}
.plan .plane{stroke:none}
.plan .hatch{stroke:var(--line-2);stroke-width:.8}
.plan .dot{fill:var(--line-2)}
.plan .eave{fill:none;stroke:var(--ink);stroke-width:1.6}
.plan .wall{fill:none;stroke:var(--faint);stroke-width:.9;stroke-dasharray:5 4}
.plan .ridge{stroke:var(--accent);stroke-width:2.4;stroke-linecap:round}
.plan .hip{stroke:var(--ink);stroke-width:1.1}
.plan .hip.thin{stroke-width:.8}
.plan .edge{fill:none;stroke:var(--ink);stroke-width:1.1}
.plan .terrasson{fill:var(--surface)}
.plan .slope{stroke:var(--muted);stroke-width:1}
.plan .arrowhead{fill:var(--muted)}
.plan .ext{stroke:var(--faint);stroke-width:.8}
.plan .dim{stroke:var(--muted);stroke-width:.9}
.plan .tick{stroke:var(--ink);stroke-width:1.3}
.plan .dimt{font-size:12.5px;fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:7px;stroke-linejoin:round}
.plan .lbl{font-size:11.5px;fill:var(--muted);paint-order:stroke;stroke:var(--surface);stroke-width:6px;stroke-linejoin:round}
.plan .leader{fill:none;stroke:var(--faint);stroke-width:.8}
.plan .pitch path{fill:none;stroke:var(--ink);stroke-width:1}
.plan .pitch text{font-size:11.5px;fill:var(--muted)}
.plan .drain{fill:var(--surface);stroke:var(--ink);stroke-width:1}

/* Sections */
.sec{padding:clamp(96px, 12vw, 160px) 0}
.sec-head{display:flex;flex-direction:column;align-items:flex-start;gap:18px;max-width:46rem}
.sec-head.center{align-items:center;margin-inline:auto;text-align:center}
.sec-head .lead{max-width:38rem}
.sec-head .btn{margin-top:4px}

/* Double cadre : coque + noyau */
.bz{padding:6px;border-radius:var(--r-xl);background:var(--shell);box-shadow:inset 0 0 0 1px var(--shell-ring)}
.bz > .in{position:relative;height:100%;display:flex;flex-direction:column;gap:14px;padding:clamp(22px, 2.6vw, 34px);border-radius:calc(var(--r-xl) - 6px);background:var(--surface);box-shadow:inset 0 1px 0 var(--hl), 0 1px 2px rgba(0,0,0,.04)}
.tag{align-self:flex-start;padding:3px 8px;border-radius:4px;background:var(--chip);color:var(--chip-text);font-size:12px;font-weight:500}
.in p{color:var(--muted);font-size:15.5px;line-height:1.55}
.figbz > .in{padding:0;overflow:hidden}
.figbz figure{position:relative;height:100%;overflow:hidden}
.figbz img{width:100%;height:100%;object-fit:cover}
.chip{position:absolute;left:14px;top:14px;padding:5px 11px;border-radius:999px;background:rgba(10,10,12,.66);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);color:#FFF;font-size:13px;font-weight:500}

/* N5 · L’agence 100 % toiture */
.agence-grid{display:grid;grid-template-columns:minmax(0, 7fr) minmax(0, 5fr);gap:clamp(40px, 6vw, 96px);align-items:center}
.agence-photo{aspect-ratio:4 / 4.3}
.agence-photo figure{background-image:url(/img/hero-tablette.jpg);background-position:30% 50%}
.agence-photo img{object-position:30% 50%}
.pts{display:grid;margin:30px 0 30px;padding:0;list-style:none;counter-reset:p}
.pts li{display:grid;grid-template-columns:36px minmax(0, 1fr);gap:12px;padding:18px 0;border-top:1px solid var(--line);font-size:17px;font-weight:550;letter-spacing:-.015em;line-height:1.4;color:var(--ink)}
.pts li:last-child{border-bottom:1px solid var(--line)}
.pts li::before{counter-increment:p;content:"0" counter(p);padding-top:3px;font-family:var(--mono);font-size:12px;font-weight:400;color:var(--faint)}
.pts li span{display:block;margin-top:4px;font-size:15px;font-weight:400;letter-spacing:0;color:var(--muted)}
.agence-cta{display:flex;flex-wrap:wrap;gap:12px}
.signe{display:flex;align-items:center;gap:12px;margin-top:26px;font-size:14px;line-height:1.45;color:var(--muted)}
.signe i{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ink);color:#FFF;font-family:var(--mono);font-size:13px;font-style:normal}
.signe b{color:var(--ink);font-weight:550}

/* N6 · Le soir et la fin de semaine : trois moments, puis la maison */
.photos{display:grid;grid-template-columns:repeat(12, minmax(0, 1fr));gap:14px;margin-top:clamp(48px, 6vw, 84px)}
.ph-a{grid-column:span 7;grid-row:span 2}
.ph-b,.ph-c{grid-column:span 5}
.ph > .in{padding:0;gap:0;overflow:hidden}
.ph figure{position:relative;overflow:hidden;aspect-ratio:16 / 10}
.ph-a figure{flex:1;aspect-ratio:auto;min-height:320px}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.ph:hover img{transform:scale(1.03)}
.ph time{position:absolute;left:14px;top:14px;padding:5px 11px;border-radius:999px;background:rgba(10,10,12,.66);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);color:#FFF;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}
.ph .txt{display:flex;flex-direction:column;gap:8px;padding:22px 26px 26px}
.ph-a .txt{padding:28px 32px 32px}
.ph-a .h3{font-size:clamp(1.45rem, 1.2rem + .9vw, 1.95rem);letter-spacing:-.035em}
.soir-maison{display:grid;grid-template-columns:minmax(0, 7fr) minmax(0, 5fr);gap:clamp(32px, 5vw, 80px);align-items:center;margin-top:clamp(56px, 7vw, 96px)}
.soir-maison .txt{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.soir-maison .lead{font-size:clamp(1rem, .95rem + .3vw, 1.15rem)}
.maison-bz > .in{padding:0}
.maison{position:relative;overflow:hidden;aspect-ratio:1600 / 1072;border-radius:calc(var(--r-xl) - 6px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 40px 90px -40px rgba(0,0,0,.9)}
.maison img,.maison svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.contour{fill:none;stroke:rgb(var(--glow));stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s var(--ease-io)}
.contour.trait{stroke-width:3.5}
.contour.lueur{stroke-width:14;opacity:.7;filter:url(#flou)}
.maison.on .contour{stroke-dashoffset:0}
.carte-prix{position:absolute;left:3%;top:3.5%;display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:8px 14px 9px;border-radius:18px;background:rgba(250,250,250,.95);color:#1D1D1F;box-shadow:0 0 0 1px rgba(0,0,0,.06), 0 24px 50px -18px rgba(0,0,0,.6);text-align:left;opacity:0;transform:translateY(12px);transition:opacity .7s var(--ease) 1.6s, transform .8s var(--ease) 1.6s}
.maison.on .carte-prix{opacity:1;transform:none}
.carte-prix small{font-size:12.5px;color:#6E6E73}
.carte-prix b{font-size:clamp(1rem, .85rem + .6vw, 1.3rem);font-weight:600;letter-spacing:-.035em;font-variant-numeric:tabular-nums;white-space:nowrap}
.carte-prix span{display:none}
.maison figcaption{position:absolute;left:14px;bottom:14px;padding:5px 11px;border-radius:999px;background:rgba(10,10,12,.62);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);font-family:var(--mono);font-size:11.5px;color:rgba(255,255,255,.78)}

/* N7 · Onglets « ce qu’on fait » */
.tabs{display:grid;grid-template-columns:minmax(0, 4fr) minmax(0, 8fr);gap:clamp(20px, 3vw, 44px);align-items:start;margin-top:clamp(48px, 6vw, 84px)}
.tab-list{position:sticky;top:104px;display:flex;flex-direction:column;gap:4px}
.tab-list button{display:grid;grid-template-columns:30px minmax(0, 1fr);gap:2px 8px;align-items:baseline;width:100%;padding:15px 18px;border:0;border-radius:18px;background:transparent;color:var(--muted);text-align:left;cursor:pointer;transition:background-color .4s var(--ease), color .4s var(--ease), box-shadow .4s var(--ease)}
.tab-list button:hover{color:var(--ink);background:rgba(0,0,0,.03)}
.tab-list .n{font-family:var(--mono);font-size:12px;color:var(--faint)}
.tab-list b{font-size:17px;font-weight:600;letter-spacing:-.02em;color:inherit}
.tab-list small{grid-column:2;max-height:0;overflow:hidden;font-size:14px;line-height:1.4;color:var(--muted);opacity:0;transition:max-height .5s var(--ease), opacity .4s var(--ease)}
.tab-list button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line), 0 1px 2px rgba(0,0,0,.04)}
.tab-list button[aria-selected="true"] .n{color:var(--ink)}
.tab-list button[aria-selected="true"] small{max-height:3em;opacity:1;margin-top:4px}
.tab-panel[hidden]{display:none}
.tab-panel > .in{padding:0;gap:0;overflow:hidden;animation:fade .5s var(--ease)}
.tab-media{position:relative;overflow:hidden;aspect-ratio:16 / 10;background:#111}
.tab-media > img{width:100%;height:100%;object-fit:cover}
.tab-txt{display:flex;flex-direction:column;gap:10px;padding:26px 30px 30px}
.tab-txt .h3{font-size:clamp(1.35rem, 1.15rem + .7vw, 1.75rem);letter-spacing:-.03em}
.m-grille{background-color:#EDEDEF;background-image:linear-gradient(var(--line) 1px, transparent 1px),linear-gradient(90deg, var(--line) 1px, transparent 1px);background-size:28px 28px;display:grid;place-items:center}
.m-nuit{display:grid;place-items:center;aspect-ratio:auto;min-height:440px;padding:28px 0;background:radial-gradient(closest-side, rgba(255,255,255,.12), transparent 75%) center/80% 90% no-repeat, #000}
.m-nuit .phone{zoom:.66}
/* Ordi : capture du calculateur en CSS */
.laptop{width:min(80%, 560px)}
.lap-screen{overflow:hidden;border:9px solid #1C1C1E;border-bottom-width:14px;border-radius:16px 16px 4px 4px;background:#FFF;box-shadow:0 30px 60px -30px rgba(0,0,0,.45)}
.lap-base{height:12px;margin:0 -7%;border-radius:2px 2px 12px 12px;background:linear-gradient(180deg, #D7D7DA, #A9A9AE);box-shadow:0 14px 24px -14px rgba(0,0,0,.5)}
.lap-base::before{content:"";display:block;width:18%;height:5px;margin:0 auto;border-radius:0 0 6px 6px;background:#9C9CA1}
.lap-screen .win-bar{height:26px;padding:0 10px;gap:8px}
.lap-screen .dots i{width:7px;height:7px}
.lap-screen .url{height:17px;font-size:9.5px;width:min(220px, 70%)}
.lap-app{display:grid;grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr);gap:14px;padding:14px;color:var(--text)}
.lap-photo{position:relative;overflow:hidden;aspect-ratio:4 / 3;border-radius:8px;background:#2A2A2C}
.lap-photo img,.lap-photo svg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lap-photo .ol{fill:rgba(255,255,255,.16);stroke:#FFF;stroke-width:5;stroke-linejoin:round}
.lap-photo .rg{fill:none;stroke:#FFF;stroke-width:4;stroke-dasharray:10 9}
.lap-photo .lab{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);padding:3px 8px;border-radius:999px;background:rgba(12,12,14,.8);color:#FFF;font-family:var(--mono);font-size:9px;white-space:nowrap}
.lap-res{display:flex;flex-direction:column;gap:5px;min-width:0}
.lap-res .br{font-size:10px;font-weight:600;color:var(--muted)}
.lap-res .k{font-size:11px;color:var(--muted)}
.lap-res b{font-size:clamp(15px, 1.6vw, 21px);font-weight:600;letter-spacing:-.035em;line-height:1.1;color:var(--ink)}
.lap-res .s{font-size:9.5px;line-height:1.35;color:var(--muted)}
.lap-mats{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 0;padding:0;list-style:none}
.lap-mats li{padding:3px 7px;border-radius:999px;font-size:9px;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--muted)}
.lap-mats li.on{background:var(--ink);color:#FFF;box-shadow:none}
.lap-btn{align-self:flex-start;margin-top:auto;padding:6px 11px;border-radius:999px;background:var(--ink);color:#FFF;font-size:9.5px;font-weight:600}
/* Agenda : la bulle de rendez-vous agrandie */
.agenda{display:flex;flex-direction:column;gap:12px;width:min(78%, 420px)}
.agenda .rdv{grid-template-columns:76px minmax(0, 1fr);gap:18px;padding:18px;border-radius:22px;background:#FFF;box-shadow:0 0 0 1px rgba(0,0,0,.06), 0 30px 60px -30px rgba(0,0,0,.35);font-size:15px;color:#1D1D1F}
.agenda .cal span{font-size:12px;padding:4px 0}
.agenda .cal b{font-size:30px;padding:4px 0 6px}
.agenda .rdv strong{font-size:17px;letter-spacing:-.015em;margin-bottom:2px}
.agenda .note{align-self:center;padding:5px 12px;border-radius:999px;background:rgba(0,0,0,.06);font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.keys{display:grid;margin:10px 0 0;padding:0;list-style:none}
.keys li{display:grid;grid-template-columns:30px minmax(0, 1fr);gap:12px;padding:11px 0;border-top:1px solid var(--line);font-size:15px;color:var(--muted)}
.keys b{color:var(--ink);font-weight:550}
.key{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-size:11.5px;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}
.phone{position:relative;width:min(332px, 100%);padding:9px;border-radius:54px;background:linear-gradient(155deg, #3A3A3C, #1C1C1E 42%, #2C2C2E);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14), 0 50px 100px -36px rgba(0,0,0,.95)}
.screen{position:relative;display:flex;flex-direction:column;min-height:640px;overflow:hidden;border-radius:46px;background:#FFFFFF;color:#1D1D1F}
.island{position:absolute;top:11px;left:50%;width:98px;height:28px;border-radius:20px;background:#000;transform:translateX(-50%)}
.sbar{display:flex;justify-content:space-between;padding:15px 28px 4px;font-size:13.5px;font-weight:600}
.thread{display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 0 12px;border-bottom:1px solid #ECECEE;font-size:12px;color:#6E6E73}
.av{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#FFF;font-size:15px;font-weight:600}
.msgs{display:flex;flex-direction:column;gap:10px;padding:14px 14px 18px;font-size:14px;line-height:1.38}
.ts{align-self:center;font-size:11.5px;color:#8E8E93}
.bubble{position:relative;align-self:flex-start;max-width:88%;padding:10px 13px;border-radius:18px 18px 18px 6px;background:#E9E9EB}
.bubble p{margin:0}
.bubble p:first-of-type{font-weight:600}
.call{position:relative;padding:12px 13px;border-radius:16px;background:#F5F5F7;font-size:13px;line-height:1.4}
.call-h{display:flex;align-items:center;gap:8px;font-weight:600}
.call-h i{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.call-h small{margin-left:auto;font-weight:500;color:#8E8E93;font-size:12px}
.call p{margin-top:6px}
.call b{font-weight:600}
.rdv{position:relative;display:grid;grid-template-columns:50px minmax(0, 1fr);gap:12px;align-items:center;padding:12px;border-radius:16px;box-shadow:inset 0 0 0 1px #E5E5EA;font-size:13px;line-height:1.4}
.cal{overflow:hidden;border-radius:10px;text-align:center;box-shadow:inset 0 0 0 1px #E5E5EA}
.cal span{display:block;padding:2px 0;background:var(--accent);color:#FFF;font-size:10px;font-weight:600}
.cal b{display:block;padding:2px 0 4px;font-size:20px;font-weight:600}
.rdv strong{display:block;font-weight:600}
.mk{position:absolute;top:-9px;right:-9px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#111;color:#FFF;font-family:var(--mono);font-size:11px;box-shadow:0 0 0 2px #FFF}
.js .phone .sq{opacity:0;transform:translateY(12px);transition:opacity .7s var(--ease), transform .8s var(--ease)}
.js .phone.played .sq{opacity:1;transform:none;transition-delay:var(--d, 0s)}

/* N8 · Bande de relance */
.relance{position:relative;isolation:isolate;overflow:hidden;padding:clamp(104px, 12vw, 168px) 0;text-align:center}
.relance-photo{position:absolute;inset:0;z-index:-2;background-image:url(/img/equipe.jpg)}
.relance-photo img{width:100%;height:100%;object-fit:cover}
.relance-photo{filter:grayscale(.4)}
.relance::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg, #000 0%, rgba(0,0,0,.72) 30%, rgba(0,0,0,.72) 70%, #000 100%)}
.relance .h2{max-width:none;font-size:clamp(2.2rem, 1.1rem + 3.6vw, 4.5rem)}
.relance .h2 .l{display:block}
.relance .h2 .l:nth-child(2){color:#8E8E93}
.relance .sec-head{max-width:60rem}

/* N9 · Chiffres sur photo */
.zen{position:relative;isolation:isolate;overflow:hidden;padding:clamp(200px, 24vw, 340px) 0 clamp(64px, 7vw, 100px)}
.zen-photo{position:absolute;inset:0;z-index:-3;background-image:url(/img/quartier.jpg)}
.zen-photo img{width:100%;height:100%;object-fit:cover}
.zen::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg, #000 0%, rgba(0,0,0,.4) 18%, rgba(0,0,0,.42) 46%, rgba(0,0,0,.9) 76%, #000 100%)}
.zpin{position:absolute;z-index:-1;display:flex;flex-direction:column;align-items:center;gap:8px;transform:translate(-50%, -100%)}
.zpin b{padding:6px 13px;border-radius:999px;background:rgba(10,10,12,.72);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);color:#FFF;font-size:14px;font-weight:600;letter-spacing:-.02em;white-space:nowrap;font-variant-numeric:tabular-nums}
.zpin i{width:10px;height:10px;border-radius:50%;background:#FFF;box-shadow:0 0 0 6px rgba(255,255,255,.22)}
.zen .eyebrow{margin-bottom:22px}
.chiffres-grille{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));margin:0;border-top:1px solid rgba(255,255,255,.22)}
.chiffres-grille div{display:flex;flex-direction:column;padding:26px 24px 4px 0}
.chiffres-grille div + div{padding-left:24px;border-left:1px solid rgba(255,255,255,.12)}
.chiffres-grille dt{order:2;margin-top:10px;font-size:15px;line-height:1.45;color:#A1A1A6}
.chiffres-grille dd{margin:0;font-size:clamp(2.6rem, 1.6rem + 2.6vw, 4.25rem);font-weight:600;letter-spacing:-.055em;line-height:1;color:#FFF;font-variant-numeric:tabular-nums}

/* Ce que le couvreur reçoit (#soumission) */
.sm{background:var(--surface)}
.sm-ph{position:relative;overflow:hidden;border-radius:var(--r-xl);background:#0B0F16}
.sm-ph > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:72% 30%}
.sm-ph::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.55) 38%, rgba(0,0,0,0) 70%)}
.sm-in{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:clamp(24px, 4vw, 64px);align-items:center;min-height:clamp(580px, 56vw, 780px);padding:clamp(28px, 5vw, 72px)}
.sm .eyebrow{background:rgba(255,255,255,.12);color:#E5E5EA}
.sm .h2{color:#FFF}
.sm .lead{color:rgba(255,255,255,.72)}
.sm-fiche{justify-self:end;align-self:end;width:min(100%, 340px);overflow:hidden;border-radius:20px;background:rgba(255,255,255,.96);color:#000;box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.sm-fiche-h{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600}
.sm-fiche-h span{padding:3px 10px;border-radius:999px;background:#000;color:#FFF;font-size:12px;font-weight:500}
.sm-fiche dl{margin:0;padding:4px 18px}
.sm-fiche dl div{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.sm-fiche dl div:last-child{border-bottom:0}
.sm-fiche dt{padding-top:2px;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.sm-fiche dd{margin:0;text-align:right;font-weight:550;font-variant-numeric:tabular-nums}
.sm-fiche-f{padding:12px 18px 14px;background:#F5F5F6;font-size:13px;color:var(--muted)}
.sm-fiche-f b{display:block;color:#000;font-weight:600}
.sm-sous{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:16px;margin-top:16px}
.sm-sous div{padding:20px 22px;border-radius:20px;background:var(--bg)}
.sm-sous b{display:block;font-size:17px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.sm-sous span{display:block;margin-top:6px;font-size:14.5px;line-height:1.5;color:var(--muted)}

/* N3b · Les trois douleurs (chiffres de recherche/icp/5-operations-parcours.md) */
.dl-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:14px;margin-top:clamp(48px, 6vw, 84px)}
.dl-c > .in{padding:0;gap:0;overflow:hidden}
.dl-fig{position:relative;margin:0;aspect-ratio:4 / 3;overflow:hidden;background:#111}
.dl-fig img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06) brightness(.82)}
.dl-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.15) 60%, rgba(0,0,0,0) 100%)}
.dl-num{position:absolute;left:clamp(20px, 2.4vw, 28px);right:clamp(20px, 2.4vw, 28px);bottom:clamp(16px, 2vw, 24px);z-index:1;color:#FFF}
.dl-num b{display:block;font-size:clamp(3.4rem, 2.5rem + 2.8vw, 5.2rem);font-weight:600;letter-spacing:-.05em;line-height:.9}
.dl-num span{display:block;margin-top:10px;font-family:var(--mono);font-size:12.5px;line-height:1.4;color:rgba(255,255,255,.82)}
.dl-txt{flex:1;display:flex;flex-direction:column;gap:10px;padding:clamp(22px, 2.6vw, 30px)}
.dl-txt p{font-size:15.5px;line-height:1.55;color:var(--muted)}
.dl-src{margin-top:auto;padding-top:10px;font-family:var(--mono);font-size:11.5px !important;line-height:1.45;color:var(--faint) !important}
.dl-fin{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:20px 24px;border-radius:20px;background:var(--bg)}
.dl-fin b{font-size:17px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}

/* N11 · Régions (retirée) */
.reg{background:var(--surface)}
.reg-grid{display:grid;grid-template-columns:minmax(0, 6fr) minmax(0, 5fr);gap:clamp(40px, 6vw, 96px);align-items:center}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.carte-reg{display:flex;flex-direction:column;gap:14px}
.reg-photo{overflow:hidden;aspect-ratio:16 / 11;border-radius:var(--r-xl);box-shadow:0 30px 70px -34px rgba(0,0,0,.35)}
.reg-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.regs{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:8px;margin:0;padding:0;list-style:none}
.regs li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line)}
.regs b{font-size:14.5px;font-weight:550;letter-spacing:-.015em;color:var(--ink)}
.regs span{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}
.regs span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink)}

/* N12 · Prix */
.price-grid{display:grid;grid-template-columns:minmax(0, 7fr) minmax(0, 5fr);gap:14px;margin-top:clamp(48px, 6vw, 84px)}
.p-main .in{padding:clamp(26px, 3.2vw, 44px)}
.p-big{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-top:6px}
.p-big b{font-size:clamp(3rem, 2rem + 3.2vw, 4.75rem);font-weight:600;letter-spacing:-.055em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.p-big span{font-size:16px;color:var(--muted)}
.in .p-month{font-size:17.5px;color:var(--ink)}
.incl{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:14px 30px;margin:10px 0 0;padding:24px 0 0;list-style:none;border-top:1px solid var(--line)}
.incl li{display:grid;grid-template-columns:18px minmax(0, 1fr);gap:10px;font-size:15px;line-height:1.45;color:var(--text)}
.incl svg{width:16px;height:16px;margin-top:3px;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.p-main .btn{align-self:flex-start;margin-top:10px}
.addons{display:grid;gap:14px}
.addon-h{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.addon-h b{font-size:18.5px;font-weight:600;letter-spacing:-.022em;color:var(--ink)}
.addon-h span{font-size:21px;font-weight:600;letter-spacing:-.035em;color:var(--ink);white-space:nowrap}
.founders{grid-column:1 / -1}
.bz.dark{background:rgba(128,128,128,.12);box-shadow:inset 0 0 0 1px rgba(128,128,128,.2)}
.bz.dark > .in{display:grid;grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr);gap:clamp(24px, 4vw, 56px);align-items:center;background:#000;color:var(--on-night);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.bz.dark .tag{background:rgba(255,255,255,.1);color:#C7C7CC}
.bz.dark h3{margin-top:12px;font-size:clamp(1.5rem, 1.2rem + 1vw, 2rem);font-weight:600;letter-spacing:-.035em;color:#FFF}
.bz.dark p{margin-top:10px;color:#A1A1A6}
.lots{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:10px}
.lot{display:flex;flex-direction:column;justify-content:flex-end;gap:2px;aspect-ratio:4 / 3.2;padding:12px;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(var(--glow),.4);background-image:repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 1px, transparent 1px 9px);font-family:var(--mono);font-size:11.5px;color:rgba(255,255,255,.55)}
.lot b{font-family:var(--font);font-size:15.5px;font-weight:600;color:#FFF}
.lots-note{grid-column:1 / -1;margin-top:-6px;font-size:13px;color:#8E8E93}

/* N13 · Accompagnement */
.equipe-grid{display:grid;grid-template-columns:minmax(0, 5fr) minmax(0, 7fr);gap:clamp(40px, 6vw, 96px);align-items:center}
.equipe-photo{aspect-ratio:3 / 2.2}
.equipe-photo figure{background-image:url(/img/mains.jpg)}
.equipe-photo .chip{left:auto;right:14px;top:auto;bottom:14px}

/* N14 · Questions */
.sec.sep{padding-top:0}
.sec.sep > .wrap{padding-top:clamp(84px, 10vw, 144px);border-top:1px solid var(--line)}
.faq-grid{display:grid;grid-template-columns:minmax(0, 4fr) minmax(0, 7fr);gap:clamp(36px, 6vw, 100px);align-items:start}
.faq-grid .sec-head{position:sticky;top:124px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;list-style:none;cursor:pointer;font-size:18px;font-weight:550;letter-spacing:-.022em;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.pm{position:relative;flex:none;width:32px;height:32px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-2);transition:transform .55s var(--ease), box-shadow .4s var(--ease)}
.pm::before,.pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.4px;margin:-.7px 0 0 -6px;background:var(--ink);transition:transform .55s var(--ease)}
.pm::after{transform:rotate(90deg)}
.faq details[open] .pm{transform:rotate(180deg);box-shadow:inset 0 0 0 1px var(--ink)}
.faq details[open] .pm::after{transform:rotate(0)}
.faq summary:hover .pm{box-shadow:inset 0 0 0 1px var(--ink)}
.ans{padding:0 52px 24px 0;font-size:16px;line-height:1.6;color:var(--muted)}

/* N15 · Dernier appel : la maison au crépuscule qui se fond dans le pied de page */
.final{position:relative;isolation:isolate;overflow:hidden;padding:clamp(120px, 14vw, 200px) 0 clamp(96px, 10vw, 140px)}
.final-photo{position:absolute;inset:0;z-index:-3;background-image:url(/img/toit.jpg)}
.final-photo img{width:100%;height:100%;object-fit:cover}
.final::before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(50% 32% at 50% 30%, rgba(0,0,0,.5), rgba(0,0,0,0) 80%),linear-gradient(180deg, #000 0%, rgba(0,0,0,.55) 24%, rgba(0,0,0,.55) 52%, rgba(0,0,0,.86) 80%, #000 100%)}
.final .sec-head{max-width:52rem}
.final-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}

/* Pied de page */
.foot{padding:clamp(48px, 6vw, 80px) 0 40px;font-size:14px;color:var(--night-muted)}
.foot-top{display:grid;grid-template-columns:minmax(0, 5fr) repeat(3, minmax(0, 2fr));gap:36px 32px}
.foot-slogan{margin-top:20px;font-size:clamp(1.7rem, 1.2rem + 1.5vw, 2.5rem);font-weight:600;letter-spacing:-.045em;line-height:1.05;color:#F5F5F7}
.foot-par{margin-top:12px}
.foot h3{margin-bottom:14px;font-size:12.5px;font-weight:500;color:#6E6E73}
.foot ul{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.foot a{color:#C7C7CC;text-decoration:none}
.foot a:hover{color:#FFF}
.foot a[aria-current="page"]{color:#FFF;text-decoration:underline;text-underline-offset:4px}
.foot-bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 40px;margin-top:clamp(40px, 5vw, 64px);padding-top:24px;border-top:1px solid rgba(255,255,255,.08);font-size:12.5px}
.foot-bas p{max-width:46rem}
.foot-bas nav{display:flex;flex-wrap:wrap;gap:6px 16px}

/* Mouvement */
@keyframes rise{from{opacity:0;transform:translateY(var(--y, 20px))}to{opacity:1;transform:none}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.js .ld{animation:rise 1.05s var(--ease) both;animation-delay:calc(var(--i, 0) * 90ms + 120ms)}
.js .stage-wrap > .stage{--y:56px;animation:rise 1.35s var(--ease) .5s both}
.js .roof .rl{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2s var(--ease-io) .6s forwards}
.js .roof .glowg{animation:fade 1.8s var(--ease) 1.7s both}
.js .rv{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease), transform 1.15s var(--ease);transition-delay:var(--d, 0s)}
.js .rv.in{opacity:1;transform:none}

@media (max-width:980px){
  .core{grid-template-columns:1fr}
  .fiche{border-left:0}
  .cotes{display:none}
  .vue{position:relative;z-index:1;display:flex;width:max-content;max-width:100%;margin:0 auto 14px;padding:4px;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
  .vue button{border:0;padding:8px 16px;border-radius:999px;background:transparent;color:rgba(255,255,255,.7);font:inherit;font-size:13.5px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color .4s var(--ease), color .4s var(--ease)}
  .vue button[aria-pressed="true"]{background:#FFF;color:#000}
  .core[data-v="client"] .fiche,.core[data-v="fiche"] .win{display:none}
  .notif{cursor:pointer;pointer-events:auto}
  .notif{top:-22px;right:10px}
  .sm-in{grid-template-columns:1fr;align-content:end}
  .sm-ph::before{background:linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.85) 55%)}
  .sm-fiche{justify-self:start}
  .sm-sous{grid-template-columns:1fr}
  .dl-grid{grid-template-columns:1fr}
  .dl-fig{aspect-ratio:16 / 10}
  .agence-grid,.soir-maison,.equipe-grid,.faq-grid,.price-grid,.reg-grid,.tabs{grid-template-columns:1fr}
  .agence-photo{aspect-ratio:4 / 3}
  .faq-grid .sec-head{position:static}
  .ph-a,.ph-b,.ph-c{grid-column:span 12;grid-row:auto}
  .ph-a figure{flex:none;aspect-ratio:16 / 10;min-height:0}
  .chiffres-grille{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .chiffres-grille div:nth-child(3){padding-left:0;border-left:0}
  .chiffres-grille div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12);margin-top:22px}
  .bz.dark > .in{grid-template-columns:1fr}
  .tab-list{position:static;flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:6px;padding-bottom:2px}
  .tab-list::-webkit-scrollbar{display:none}
  .tab-list button{flex:none;width:auto;grid-template-columns:auto auto;padding:10px 16px;border-radius:999px;scroll-snap-align:start;white-space:nowrap}
  .tab-list small{display:none}
  .tab-list b{font-size:15px}
  .foot-top{grid-template-columns:repeat(3, minmax(0, 1fr))}
  .foot-top > :first-child{grid-column:1 / -1}
}
@media (max-width:640px){
  body{font-size:16px}
  .hero{--ph:min(50svh, 430px);padding:calc(var(--ph) - 30px) 0 56px}
  .hero-photo,.hero-ombre,.hero-prix{height:var(--ph)}
  .hero-ombre{background:linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.1) 38%, rgba(0,0,0,.5) 74%, #000 100%)}
  .hero::before{content:"";position:absolute;inset:var(--ph) 0 0;z-index:-4;background:#000}
  .hero .h1{font-size:min(2.75rem, calc((100vw - 32px) * .118))}
  .hero-cta{align-self:stretch;flex-direction:column}
  .checks{gap:8px 18px;font-size:13.5px}
  .hero-guide{margin-top:48px}
  .probs button{font-size:14px;padding:0 14px}
  .rep{grid-template-columns:1fr}
  .incl,.cart{grid-template-columns:1fr}
  .cart div:nth-child(odd){border-right:0}
  .chiffres-grille div,.chiffres-grille div + div{padding:20px 12px 4px 0}
  .chiffres-grille div:nth-child(even){padding-left:16px}
  .ph .txt,.ph-a .txt,.tab-txt{padding:20px 22px 24px}
  .tab-media{aspect-ratio:4 / 3.3}
  .m-nuit{aspect-ratio:auto;min-height:0}
  .m-nuit .phone{zoom:.8}
  .laptop{width:90%}
  .lap-app{grid-template-columns:1fr 1fr;gap:9px;padding:9px}
  .lap-res .s,.lap-mats{display:none}
  .agenda{width:88%}
  .agenda .rdv{grid-template-columns:60px minmax(0, 1fr);gap:14px;padding:14px;font-size:13.5px}
  .agenda .cal b{font-size:24px}
  .ans{padding-right:0}
  .regs{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .notif{width:calc(100% - 20px)}
  .screen{min-height:600px}
  .roof .note{display:none}
  .carte-prix{top:3%;left:3%;padding:6px 10px 7px;border-radius:10px}
  .carte-prix b{font-size:.9rem}
  .carte-prix small,.carte-prix span{display:none}
  .zen{padding-top:220px}
  .zpin.lg{display:none}
  .final-cta{flex-direction:column;align-self:stretch}
  .relance .h2{font-size:min(2.2rem, calc((100vw - 32px) * .088))}
  .lap-photo .lab{display:none}
  .foot-top{grid-template-columns:repeat(2, minmax(0, 1fr))}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .js .rv,.js .phone .sq,.pin .t{opacity:1;transform:none}
  .js .roof .rl,.contour{stroke-dashoffset:0}
  .defile-in{animation:none;flex-wrap:wrap;width:auto;justify-content:center}
  .defile-in ul[aria-hidden]{display:none}
  .defile ul{flex-wrap:wrap;justify-content:center;padding:0;row-gap:8px}
  .bB-in{animation:none}.bB-rail{overflow-x:auto}
}

/* Partie 2 : site/gabarits/pages.css (pages secondaires et /go/) */
/* Pages secondaires de Toiture + (guides, fonctionnalités, régions…) et pages /go/.
   S'ajoute au CSS de melange.html : mêmes variables, mêmes .bz, .btn, .eyebrow, .rv. Noir et blanc seulement. */

/* Hero des pages : photo froide, fil d'Ariane, titre plus petit que l'accueil */
.phero{position:relative;isolation:isolate;overflow:hidden;padding:clamp(128px, 15vw, 176px) 0 clamp(56px, 7vw, 96px)}
.phero-photo{position:absolute;inset:0;z-index:-2}
.phero-photo img{width:100%;height:100%;object-fit:cover;filter:grayscale(.35) contrast(1.02)}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.55) 40%, rgba(0,0,0,.78) 82%, #000 100%)}
.phero-in{display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:none}
.phero-h{max-width:20ch;font-size:clamp(2.2rem, 1rem + 3.6vw, 4rem);letter-spacing:-.045em;line-height:1.02;color:#FFF}
.phero .lead{max-width:44rem;color:#C7C7CC}
.phero .hero-cta{justify-content:flex-start;margin-top:4px}
.maj{font-size:13px;color:#8E8E93}
.fil ol{display:flex;flex-wrap:wrap;gap:4px 0;margin:0;padding:0;list-style:none;font-size:13.5px;color:#A1A1A6}
.fil li + li::before{content:"/";margin:0 10px;color:#6E6E73}
.fil a{color:#D1D1D6;text-decoration:none}
.fil a:hover{color:#FFF;text-decoration:underline;text-underline-offset:3px}
.fil [aria-current]{color:#FFF}

/* Grille de lecture : article + colonne collante */
.doc{display:grid;grid-template-columns:minmax(0, 8fr) minmax(0, 4fr);gap:clamp(32px, 5vw, 72px);align-items:start;padding:clamp(56px, 7vw, 96px) 0 clamp(72px, 9vw, 120px)}
.doc.plein{grid-template-columns:minmax(0, 1fr)}
.doc-main{min-width:0;display:flex;flex-direction:column;gap:clamp(44px, 5vw, 68px)}
.doc-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:14px}
.blk{min-width:0}
.blk-head{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:24px;max-width:46rem}
.h-doc{font-size:clamp(1.6rem, 1.1rem + 1.6vw, 2.35rem);font-weight:600;letter-spacing:-.038em;line-height:1.08;color:var(--ink);text-wrap:balance;scroll-margin-top:96px}

/* Texte courant */
.prose{max-width:46rem}
.prose > * + *{margin-top:18px}
.prose .h-doc{margin-top:44px}
.prose > .h-doc:first-child,.prose .blk-head + .h-doc{margin-top:0}
.prose .h3{margin-top:30px}
.prose p,.prose li{font-size:17.5px;line-height:1.68;color:var(--text)}
.prose ul,.prose ol{margin-bottom:0;padding-left:22px}
.prose li + li{margin-top:8px}
.prose li::marker{color:var(--muted)}
.prose strong{font-weight:600;color:var(--ink)}
.prose a,.ans a,.bref a,.encart:not(.dark) a,.tbl a,.gloss a,.carte a:not(.rep-lien){color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.prose a:hover{text-decoration-thickness:2px}
.encadre{padding:18px 22px;border-left:2px solid var(--ink);background:var(--surface);border-radius:0 12px 12px 0;box-shadow:inset 0 0 0 1px var(--line)}
.prose .encadre{font-size:16.5px}

/* En bref */
.bref > .in{gap:12px}
.bref-t{font-size:clamp(1.08rem, 1rem + .3vw, 1.22rem)!important;line-height:1.55!important;color:var(--ink)!important;font-weight:450}
.bref-l{display:grid;gap:10px;margin:6px 0 0;padding:16px 0 0;list-style:none;border-top:1px solid var(--line)}
.bref-l li{display:grid;grid-template-columns:18px minmax(0, 1fr);gap:10px;font-size:15.5px;line-height:1.5;color:var(--text)}
.bref-l svg,.incl svg{width:16px;height:16px;margin-top:3px;fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* Cartes */
.cartes{display:grid;gap:14px}
.cartes.c2{grid-template-columns:repeat(2, minmax(0, 1fr))}
.cartes.c3{grid-template-columns:repeat(3, minmax(0, 1fr))}
.carte .in{gap:10px}
.carte .num{font-family:var(--mono);font-size:12px;color:var(--faint)}
.carte .rep-lien,.lien-c .rep-lien{margin-top:auto;padding-top:8px;color:var(--ink);font-size:15px}
.carte .rep-lien span,.lien-c .rep-lien span{background:var(--chip)}
.carte .rep-lien svg,.lien-c .rep-lien svg{stroke:var(--ink)}

/* Étapes */
.etapes{display:grid;gap:0;margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.etapes li{display:grid;grid-template-columns:64px minmax(0, 1fr);gap:16px;padding:24px 0;border-bottom:1px solid var(--line)}
.etape-n{font-family:var(--mono);font-size:13px;color:var(--muted);padding-top:4px}
.etapes p{margin-top:8px;color:var(--muted);font-size:16px;line-height:1.6}

/* Tableaux */
.tbl{margin-top:0}
.tbl-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl table{min-width:520px}
.tbl:not(.hl-last) td:last-child{color:var(--muted);font-weight:400}
.oui,.non{display:inline-flex;align-items:center;gap:6px}
.oui::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink)}
.non::before{content:"";width:8px;height:8px;border-radius:50%;box-shadow:inset 0 0 0 1.4px var(--faint)}
.note{margin-top:12px}

/* FAQ des pages */
.blk .faq details:first-child{border-top:1px solid var(--line)}

/* Preuve ProNano */
.preuve-g{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:clamp(24px, 4vw, 48px);align-items:center}
.preuve-g > div:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.preuve-g p{color:var(--muted)}
.doc:not(.plein) .preuve-g{grid-template-columns:1fr}

/* Chiffres */
.stats{display:grid;grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));gap:14px;margin:0}
.stats > div{padding:22px;border-radius:var(--r-lg);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.stats dd{order:-1;margin:0 0 8px;font-size:clamp(1.8rem, 1.3rem + 1.4vw, 2.5rem);font-weight:600;letter-spacing:-.045em;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.stats > div{display:flex;flex-direction:column}
.stats dt{font-size:14.5px;line-height:1.45;color:var(--muted)}

/* Encarts */
.encart > .in{gap:10px}
.encart:not(.dark) .h3{font-size:1.15rem}
.bz.dark.encart > .in{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.bz.dark.encart h3{margin-top:0}
.cta-l{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.bz.dark .btn{--b-bg:var(--accent-hi);--b-fg:var(--on-accent-hi);--b-ic:rgba(0,0,0,.08)}
.bz.dark .btn-ghost{--b-bg:rgba(255,255,255,.06);--b-fg:var(--on-night);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.bz.dark a:not(.btn){color:#FFF}

/* Figures */
.fig figcaption{padding:14px 18px;font-size:14px;color:var(--muted);background:var(--surface)}
.fig img{height:auto;aspect-ratio:16 / 9;object-fit:cover}

/* Vignette démo */
.demo-vign > .in{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:0;padding:0;overflow:hidden}
.demo-vign figure{position:relative;min-height:220px}
.demo-vign figure img{position:absolute;inset:0}
.demo-vign-t{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:12px;padding:clamp(22px, 3vw, 36px)}

/* Liens vers les pages sœurs */
.liens{display:grid;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr));gap:14px}
.lien-c{display:block;text-decoration:none;color:inherit;transition:transform .5s var(--ease)}
.lien-c:hover{transform:translateY(-3px)}
.lien-c > .in{gap:8px}
.lien-c b{font-size:17.5px;font-weight:600;letter-spacing:-.022em;line-height:1.25;color:var(--ink)}
.lien-c .small{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Glossaire */
.gloss{display:grid;gap:0;margin:0;border-top:1px solid var(--line)}
.g-it{display:grid;grid-template-columns:minmax(0, 4fr) minmax(0, 8fr);gap:8px 32px;padding:20px 0;border-bottom:1px solid var(--line);scroll-margin-top:96px}
.g-it dt{font-weight:600;letter-spacing:-.015em;color:var(--ink)}
.g-it dd{margin:0;color:var(--muted);line-height:1.6}
.g-it:target{background:var(--surface)}

/* Colonne de côté */
.toc > .in{gap:10px;padding:22px}
.toc ol{display:grid;gap:2px;margin:0;padding:0;list-style:none;counter-reset:t}
.toc li{counter-increment:t}
.toc a{display:grid;grid-template-columns:26px minmax(0, 1fr);padding:7px 0;font-size:14.5px;line-height:1.35;color:var(--muted);text-decoration:none}
.toc a::before{content:counter(t, decimal-leading-zero);font-family:var(--mono);font-size:11.5px;padding-top:2px;color:var(--faint)}
.toc a:hover,.toc a.on{color:var(--ink)}
.side-cta .side-t{margin:0!important;font-size:1.2rem;font-weight:600;letter-spacing:-.025em;line-height:1.25;color:#FFF!important}
.side-cta p{margin-top:0!important}
.side-cta .btn{margin-top:6px}
.side-lien{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;text-decoration:none}
.side-lien span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.12)}
.side-lien svg{width:12px;height:12px;fill:none;stroke:#FFF;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* Sources */
.sources{padding-top:28px;border-top:1px solid var(--line)}
.sources ol{margin:14px 0;padding-left:20px;font-size:14px;line-height:1.55;color:var(--muted)}
.sources li + li{margin-top:6px}
.sources a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}

/* Bande finale des pages */
.fin{position:relative;isolation:isolate;overflow:hidden;padding:clamp(110px, 13vw, 180px) 0 clamp(90px, 10vw, 130px)}
.fin-photo{position:absolute;inset:0;z-index:-3}
.fin-photo img{width:100%;height:100%;object-fit:cover}
.fin::before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg, #000 0%, rgba(0,0,0,.6) 26%, rgba(0,0,0,.6) 56%, rgba(0,0,0,.9) 84%, #000 100%)}
.fin .sec-head{max-width:52rem}

/* Prix et calendrier dans une page */
.blk .price-grid{margin-top:0}
.blk .rdv-cal{margin-top:0}
.blk .founders > .in{grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr)}

/* Pages /go/ : îlot avec le logo et un seul bouton */
.go-nav{justify-content:space-between;padding:0 8px 0 20px;width:min(760px, 100% - 24px)}
.go-nav .logo{pointer-events:none}
.go-nav .nav-cta{display:inline-flex;margin-left:auto}
.go-hero .hero-in{max-width:58rem;margin-inline:auto}
.go-corps{padding-top:clamp(72px, 9vw, 120px)}
.go-corps > .blk{max-width:1080px;margin-inline:auto;width:100%}
.go-corps > .blk.prose{max-width:46rem}
.go-corps{display:flex;flex-direction:column;gap:clamp(56px, 7vw, 96px)}
.go .final .rdv-cal{margin-top:clamp(32px, 4vw, 56px)}
.go-foot{padding-top:8px}
.go-foot .foot-bas{margin-top:24px}

@media (max-width:980px){
  .doc{grid-template-columns:minmax(0, 1fr)}
  .doc-side{position:static}
  .doc-side .toc{display:none}
  .cartes.c3{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .preuve-g{grid-template-columns:1fr}
  .blk .founders > .in{grid-template-columns:1fr}
}
@media (max-width:640px){
  .phero{padding-top:112px}
  .phero .hero-cta{align-self:stretch;flex-direction:column}
  .cartes.c2,.cartes.c3{grid-template-columns:1fr}
  .etapes li{grid-template-columns:40px minmax(0, 1fr);gap:10px}
  .g-it{grid-template-columns:1fr}
  .demo-vign > .in{grid-template-columns:1fr}
  .demo-vign figure{aspect-ratio:16 / 10;min-height:0}
  .prose p,.prose li{font-size:16.5px}
  .cta-l{flex-direction:column;align-self:stretch}
  .go-nav .nav-cta{padding:0 14px;font-size:14px}
  .go-nav .logo{font-size:16px}
  .lots{grid-template-columns:repeat(3, minmax(0, 1fr))}
}

/* /go/ : le nom de l'entreprise du couvreur, juste avant la démo */
.compagnie{padding:clamp(40px, 5vw, 64px) 0 0}
.compagnie-f{max-width:760px;margin-inline:auto;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.compagnie-f > .in{background:#0B0B0C;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);gap:12px}
.compagnie-f label{font-size:clamp(1.1rem, 1rem + .4vw, 1.3rem);font-weight:600;letter-spacing:-.02em;color:#FFF}
.compagnie-l{display:flex;gap:10px}
.compagnie-l input{flex:1;min-width:0;min-height:52px;padding:0 20px;border:0;border-radius:999px;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);color:#FFF;font-size:16px}
.compagnie-l input::placeholder{color:#8E8E93}
.compagnie-l input:focus{outline:none;box-shadow:inset 0 0 0 1.5px #FFF}
.compagnie-f .small{color:#8E8E93;font-size:13px}
@media (max-width:640px){.compagnie-l{flex-direction:column}.compagnie-l .btn{align-self:stretch}}
