/* ============================================================================
   AssurClair v2 — Design System
   Editorial · Cinématique · GSAP + Lenis
   ============================================================================ */

/* ----------------------------- Tokens ----------------------------- */
:root{
  --ink:        #070d1b;   /* fond sombre principal */
  --ink-2:      #0c1730;
  --ink-3:      #12203f;
  --paper:      #f4f0e8;   /* fond clair crème */
  --paper-2:    #ece7db;
  --white:      #ffffff;
  --gold:       #e8b84b;
  --gold-2:     #f4d488;
  --blue:       #2f6bff;
  --blue-deep:  #1a4fd6;
  --green:      #17c98a;
  --red:        #ff5a5f;
  --tx-dark:    #0a1220;
  --tx-mut:     #5b6577;
  --tx-light:   rgba(244,240,232,.92);
  --tx-light-m: rgba(244,240,232,.55);
  --line-d:     rgba(10,18,32,.12);
  --line-l:     rgba(244,240,232,.14);
  --r-sm: 12px; --r-md: 20px; --r-lg: 28px; --r-xl: 40px;
  --ease-out: cubic-bezier(.22,1,.36,1);
  --ease-exp: cubic-bezier(.87,0,.13,1);
  --nav-h: 84px;
  --pad: clamp(20px, 4.5vw, 72px);
}

/* ----------------------------- Reset ----------------------------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:initial; }
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto!important; }
.lenis.lenis-stopped{ overflow:hidden; }
body{
  font-family:'Inter', system-ui, -apple-system, sans-serif;
  background:var(--paper); color:var(--tx-dark);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden; line-height:1.6; font-size:16px;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
button{ font:inherit; border:0; background:none; cursor:pointer; }
input,select,textarea{ font:inherit; }
::selection{ background:var(--gold); color:var(--ink); }

/* ----------------------------- Typo ----------------------------- */
.f-serif{ font-family:'Instrument Serif', Georgia, serif; font-weight:400; }
.f-grot { font-family:'Space Grotesk', Inter, sans-serif; }
.it{ font-style:italic; }

h1,h2,h3,h4{ font-family:'Space Grotesk', Inter, sans-serif; font-weight:600; line-height:1.04; letter-spacing:-.03em; }
.d1{ font-size:clamp(44px, 8.2vw, 118px); }
.d2{ font-size:clamp(34px, 5.4vw, 76px);  }
.d3{ font-size:clamp(26px, 3.4vw, 46px);  }
.d4{ font-size:clamp(19px, 2vw, 26px); }
h1 em, h2 em, h3 em, .em-serif{
  font-family:'Instrument Serif', Georgia, serif;
  font-style:italic; font-weight:400; letter-spacing:-.01em;
}
.lead{ font-size:clamp(16px,1.5vw,20px); line-height:1.65; color:var(--tx-mut); max-width:56ch; }
.dark .lead{ color:var(--tx-light-m); }

/* Étiquette de section */
.tag{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Space Grotesk'; font-size:12px; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--tx-mut);
}
.tag::before{ content:''; width:34px; height:1px; background:var(--gold); flex:none; }
.dark .tag{ color:var(--tx-light-m); }
.tag.center{ justify-content:center; }
.tag.center::after{ content:''; width:34px; height:1px; background:var(--gold); flex:none; }

/* ----------------------------- Layout ----------------------------- */
.wrap{ width:100%; max-width:1440px; margin:0 auto; padding-inline:var(--pad); }
section{ position:relative; }
.sec{ padding-block:clamp(80px, 10vw, 160px); }
.sec-head{ display:flex; flex-direction:column; gap:22px; margin-bottom:clamp(40px,5vw,80px); }
.sec-head.split{ flex-direction:row; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; }
.dark{ background:var(--ink); color:var(--tx-light); }
.dark-2{ background:var(--ink-2); color:var(--tx-light); }

/* Coins arrondis “feuille” entre sections */
.sheet-top{ border-radius: var(--r-xl) var(--r-xl) 0 0; margin-top: calc(-1 * var(--r-xl)); }
.sheet-btm{ border-radius: 0 0 var(--r-xl) var(--r-xl); }

/* Grain global */
.grain{
  pointer-events:none; position:fixed; inset:-50%; z-index:2000; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  animation:grain 8s steps(10) infinite;
}
@keyframes grain{
  0%,100%{ transform:translate(0,0) } 10%{ transform:translate(-5%,-8%) }
  30%{ transform:translate(3%,-12%) } 50%{ transform:translate(-8%,4%) }
  70%{ transform:translate(6%,8%) } 90%{ transform:translate(-3%,6%) }
}

/* ----------------------------- Curseur ----------------------------- */
.cursor-dot{
  position:fixed; top:0; left:0; z-index:3000; pointer-events:none;
  width:10px; height:10px; border-radius:50%; background:var(--gold);
  transform:translate(-50%,-50%); mix-blend-mode:difference;
}
.cursor-ring{
  position:fixed; top:0; left:0; z-index:3000; pointer-events:none;
  width:38px; height:38px; border-radius:50%;
  border:1.5px solid rgba(232,184,75,.7);
  transform:translate(-50%,-50%);
  transition:width .3s var(--ease-out), height .3s var(--ease-out), opacity .3s;
}
.cursor-ring.is-hover{ width:64px; height:64px; opacity:.45; }
@media (hover:none){ .cursor-dot,.cursor-ring{ display:none } }

/* ----------------------------- Préloader ----------------------------- */
.preloader{
  position:fixed; inset:0; z-index:5000; background:var(--ink);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:26px;
}
.preloader .pl-logo{ font-family:'Space Grotesk'; font-weight:700; font-size:clamp(30px,4vw,44px); color:var(--paper); letter-spacing:-.02em; overflow:hidden; }
.preloader .pl-logo em{ font-family:'Instrument Serif'; font-style:italic; font-weight:400; color:var(--gold); }
.preloader .pl-bar{ width:min(320px,60vw); height:2px; background:rgba(244,240,232,.12); overflow:hidden; border-radius:2px; }
.preloader .pl-fill{ height:100%; width:0%; background:var(--gold); }
.preloader .pl-count{ font-family:'Space Grotesk'; font-size:13px; letter-spacing:.3em; color:var(--tx-light-m); }

/* Rideau de transition de page */
.page-veil{
  position:fixed; inset:0; z-index:4500; background:var(--ink);
  transform:scaleY(0); transform-origin:top; pointer-events:none;
}

/* ----------------------------- Nav ----------------------------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--nav-h);
  display:flex; align-items:center;
  transition:transform .5s var(--ease-out), background .35s, box-shadow .35s;
}
.nav.is-scrolled{ background:rgba(7,13,27,.82); backdrop-filter:blur(18px); box-shadow:0 1px 0 rgba(244,240,232,.08); }
.nav.is-hidden{ transform:translateY(-100%); }
.nav-inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; }
.nav-logo{ font-family:'Space Grotesk'; font-weight:700; font-size:24px; color:var(--paper); letter-spacing:-.02em; display:flex; align-items:center; gap:10px; }
.nav-logo em{ font-family:'Instrument Serif'; font-style:italic; font-weight:400; color:var(--gold); }
.nav-logo .lg-mark{ width:34px; height:34px; border-radius:10px; background:linear-gradient(135deg,var(--gold),#c99a2e); display:grid; place-items:center; color:var(--ink); font-size:15px; font-weight:800; }
.nav-links{ display:flex; align-items:center; gap:6px; }
.nav-links > li{ position:relative; }
.nav-link{
  display:flex; align-items:center; gap:7px; padding:10px 15px; border-radius:100px;
  font-size:14.5px; font-weight:500; color:rgba(244,240,232,.78);
  transition:color .25s, background .25s;
}
.nav-link:hover, .nav-link.is-active{ color:var(--paper); background:rgba(244,240,232,.08); }
.nav-link .chev{ font-size:9px; opacity:.6; transition:transform .3s; }
.nav-links li:hover .chev{ transform:rotate(180deg); }

/* Dropdown */
.nav-drop{
  position:absolute; top:calc(100% + 14px); left:50%; transform:translate(-50%, 12px);
  min-width:560px; background:var(--paper); color:var(--tx-dark);
  border-radius:var(--r-md); padding:14px; box-shadow:0 30px 80px rgba(4,8,18,.45);
  display:grid; grid-template-columns:1fr 1fr; gap:4px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .3s var(--ease-out), transform .3s var(--ease-out), visibility .3s;
}
.nav-drop.small{ min-width:300px; grid-template-columns:1fr; }
.nav-links li:hover .nav-drop{ opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
.nav-drop a{
  display:flex; align-items:flex-start; gap:12px; padding:12px 14px; border-radius:14px;
  transition:background .2s;
}
.nav-drop a:hover{ background:var(--paper-2); }
.nav-drop .ic{ font-size:19px; line-height:1.3; flex:none; }
.nav-drop b{ display:block; font-size:14px; font-weight:600; letter-spacing:-.01em; }
.nav-drop span{ display:block; font-size:12.5px; color:var(--tx-mut); line-height:1.45; margin-top:2px; }

.nav-cta{ display:flex; align-items:center; gap:10px; }

/* Burger */
.burger{ display:none; width:46px; height:46px; border-radius:50%; background:rgba(244,240,232,.1); position:relative; z-index:1102; }
.burger span{ position:absolute; left:13px; right:13px; height:2px; background:var(--paper); border-radius:2px; transition:.35s var(--ease-out); }
.burger span:nth-child(1){ top:18px; } .burger span:nth-child(2){ top:26px; }
.burger.is-open span:nth-child(1){ top:22px; transform:rotate(45deg); }
.burger.is-open span:nth-child(2){ top:22px; transform:rotate(-45deg); }

/* Menu mobile plein écran */
.m-menu{
  position:fixed; inset:0; z-index:1100; background:var(--ink);
  padding:calc(var(--nav-h) + 20px) var(--pad) 40px;
  display:flex; flex-direction:column; overflow-y:auto;
  clip-path:circle(0% at calc(100% - 60px) 42px);
  transition:clip-path .7s var(--ease-exp);
  visibility:hidden;
}
.m-menu.is-open{ clip-path:circle(150% at calc(100% - 60px) 42px); visibility:visible; }
.m-menu .mm-group{ border-bottom:1px solid var(--line-l); padding:18px 0; }
.m-menu .mm-label{ font-size:11px; letter-spacing:.25em; text-transform:uppercase; color:var(--tx-light-m); margin-bottom:12px; font-weight:600; }
.m-menu a.mm-big{ display:block; font-family:'Space Grotesk'; font-size:clamp(26px,7vw,40px); font-weight:600; color:var(--paper); padding:7px 0; letter-spacing:-.02em; }
.m-menu a.mm-big em{ font-family:'Instrument Serif'; font-style:italic; font-weight:400; color:var(--gold); }
.m-menu a.mm-sub{ display:block; padding:7px 0; color:rgba(244,240,232,.72); font-size:16px; }
.m-menu .mm-ctas{ display:flex; flex-direction:column; gap:12px; margin-top:26px; }

/* ----------------------------- Boutons ----------------------------- */
.btn{
  white-space:nowrap;
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:17px 30px; border-radius:100px; font-weight:600; font-size:15.5px;
  font-family:'Space Grotesk'; letter-spacing:.01em; overflow:hidden;
  transition:transform .35s var(--ease-out), box-shadow .35s, background .3s, color .3s;
  will-change:transform;
}
.btn .btn-fill{
  position:absolute; inset:0; border-radius:inherit; z-index:0;
  transform:scaleY(0); transform-origin:bottom;
  transition:transform .45s var(--ease-exp);
}
.btn > *:not(.btn-fill){ position:relative; z-index:1; }
.btn:hover .btn-fill{ transform:scaleY(1); }
.btn:active{ transform:scale(.97); }
.btn-gold{ background:var(--gold); color:var(--ink); box-shadow:0 10px 30px -8px rgba(232,184,75,.5); }
.btn-gold .btn-fill{ background:var(--paper); }
.btn-gold:hover{ box-shadow:0 16px 44px -10px rgba(232,184,75,.65); }
.btn-ink{ background:var(--ink); color:var(--paper); }
.btn-ink .btn-fill{ background:var(--blue); }
.btn-ghost-l{ background:transparent; color:var(--paper); border:1.5px solid rgba(244,240,232,.28); }
.btn-ghost-l .btn-fill{ background:rgba(244,240,232,.1); }
.btn-ghost-d{ background:transparent; color:var(--ink); border:1.5px solid rgba(10,18,32,.22); }
.btn-ghost-d .btn-fill{ background:rgba(10,18,32,.06); }
.btn-sm{ padding:12px 22px; font-size:14px; }
.btn-xl{ padding:21px 40px; font-size:17px; }
.btn .ic{ font-size:1.05em; }
.btn-call small{ display:block; font-size:10.5px; font-weight:500; letter-spacing:.14em; opacity:.65; text-transform:uppercase; line-height:1; margin-bottom:3px; }
.btn-call .num{ line-height:1.05; }

/* Lien flèche */
.arrow-link{
  display:inline-flex; align-items:center; gap:9px; font-weight:600; font-size:15px;
  font-family:'Space Grotesk'; color:inherit;
}
.arrow-link .ar{ transition:transform .3s var(--ease-out); }
.arrow-link:hover .ar{ transform:translateX(6px); }

/* ----------------------------- Hero ----------------------------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  background:var(--ink); color:var(--tx-light); overflow:hidden;
  padding-top:var(--nav-h);
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(7,13,27,.62) 0%, rgba(7,13,27,.28) 45%, rgba(7,13,27,.94) 100%);
}
.hero-bg img{ width:100%; height:115%; object-fit:cover; will-change:transform; }
.hero-inner{ position:relative; z-index:2; width:100%; padding-bottom:clamp(44px,6vh,84px); }
.hero-kicker{ display:flex; align-items:center; gap:12px; margin-bottom:26px; font-family:'Space Grotesk'; font-size:13px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); }
.hero-kicker::before{ content:''; width:46px; height:1px; background:var(--gold); }
.hero h1{ color:var(--paper); max-width:14ch; }
.hero h1 .line{ display:block; overflow:hidden; padding-bottom:.16em; margin-bottom:-.16em; }
.hero h1 .line > span{ display:inline-block; will-change:transform; }
.hero .hero-sub{ margin-top:28px; max-width:52ch; font-size:clamp(16px,1.4vw,19px); color:var(--tx-light-m); line-height:1.7; }
.hero-ctas{ display:flex; align-items:center; gap:14px; margin-top:38px; flex-wrap:wrap; }
.hero-proof{ display:flex; gap:26px; flex-wrap:wrap; margin-top:38px; }
.hero-proof .hp{ display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--tx-light-m); }
.hero-proof .hp b{ color:var(--gold); font-weight:600; }
.hero-scroll{
  position:absolute; right:var(--pad); bottom:40px; z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-size:10.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--tx-light-m);
  writing-mode:vertical-rl;
}
.hero-scroll .sc-line{ width:1px; height:56px; background:rgba(244,240,232,.25); overflow:hidden; position:relative; }
.hero-scroll .sc-line::after{ content:''; position:absolute; top:-50%; left:0; width:100%; height:50%; background:var(--gold); animation:scline 1.8s var(--ease-exp) infinite; }
@keyframes scline{ 0%{ top:-50% } 100%{ top:110% } }

/* Hero split (landing) */
.hero.hero-land{ align-items:center; }
.hero-land .hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,4vw,70px); align-items:center; padding-block:clamp(30px,5vh,60px); }
.hero-land .hero-form-slot{ position:relative; z-index:2; }
@media (max-width:1060px){ .hero-land .hero-grid{ grid-template-columns:1fr; } }

/* Badge flottant sur héros */
.float-card{
  position:absolute; z-index:3; background:rgba(244,240,232,.1); backdrop-filter:blur(14px);
  border:1px solid rgba(244,240,232,.16); border-radius:18px; padding:14px 18px;
  display:flex; align-items:center; gap:12px; color:var(--paper); font-size:13.5px;
}
.float-card .fc-ic{ width:38px; height:38px; border-radius:12px; background:var(--gold); color:var(--ink); display:grid; place-items:center; font-size:17px; flex:none; }
.float-card b{ display:block; font-family:'Space Grotesk'; font-size:15px; }

/* ----------------------------- Marquee ----------------------------- */
.marquee{ overflow:hidden; padding-block:26px; border-block:1px solid var(--line-l); position:relative; }
.marquee.on-light{ border-color:var(--line-d); }
.marquee-track{ display:flex; gap:0; width:max-content; will-change:transform; }
.marquee-item{
  display:flex; align-items:center; gap:14px; padding-inline:34px; white-space:nowrap;
  font-family:'Space Grotesk'; font-weight:600; font-size:clamp(16px,1.6vw,21px);
  color:var(--tx-light-m); flex:none;
}
.marquee.on-light .marquee-item{ color:var(--tx-mut); }
.marquee-item .dot{ width:7px; height:7px; border-radius:50%; background:var(--gold); flex:none; }

/* Marquee géant décoratif */
.giant-marquee{ overflow:hidden; pointer-events:none; user-select:none; }
.giant-marquee .gm-track{ display:flex; width:max-content; will-change:transform; }
.giant-marquee span{
  font-family:'Space Grotesk'; font-weight:700; letter-spacing:-.04em;
  font-size:clamp(90px,16vw,240px); line-height:1; padding-inline:30px; white-space:nowrap;
  color:transparent; -webkit-text-stroke:1.5px rgba(244,240,232,.14);
}
.giant-marquee.on-light span{ -webkit-text-stroke:1.5px rgba(10,18,32,.12); }
.giant-marquee em{ font-family:'Instrument Serif'; font-style:italic; font-weight:400; }

/* ----------------------------- Stats ----------------------------- */
.stats-band{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-l); border-block:1px solid var(--line-l); }
.stats-band.on-light{ background:var(--line-d); border-color:var(--line-d); }
.stat{ background:var(--ink); padding:clamp(30px,3.5vw,54px) clamp(20px,2.5vw,40px); }
.stats-band.on-light .stat{ background:var(--paper); }
.stat .st-num{
  font-family:'Space Grotesk'; font-weight:700; font-size:clamp(38px,4.6vw,68px);
  letter-spacing:-.04em; line-height:1; color:var(--paper); display:flex; align-items:baseline; gap:2px;
}
.stats-band.on-light .stat .st-num{ color:var(--ink); }
.stat .st-num .suffix{ color:var(--gold); font-size:.62em; }
.stat .st-lab{ margin-top:12px; font-size:13.5px; color:var(--tx-light-m); letter-spacing:.02em; }
.stats-band.on-light .st-lab{ color:var(--tx-mut); }
@media (max-width:860px){ .stats-band{ grid-template-columns:repeat(2,1fr); } }

/* ----------------------------- Cartes profils (grille) ----------------------------- */
.grid-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:1060px){ .grid-cards{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .grid-cards{ grid-template-columns:1fr;} }
.p-card{
  position:relative; border-radius:var(--r-md); overflow:hidden; background:var(--white);
  border:1px solid var(--line-d); padding:30px 28px; min-height:250px;
  display:flex; flex-direction:column; gap:14px;
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out), border-color .4s;
  will-change:transform;
}
.p-card:hover{ transform:translateY(-8px); box-shadow:0 30px 60px -22px rgba(10,18,32,.25); border-color:transparent; }
.p-card .pc-ic{
  width:52px; height:52px; border-radius:16px; display:grid; place-items:center; font-size:23px;
  background:var(--paper-2); transition:background .4s, transform .5s var(--ease-out);
}
.p-card:hover .pc-ic{ background:var(--gold); transform:rotate(-8deg) scale(1.06); }
.p-card h3{ font-size:20px; letter-spacing:-.02em; }
.p-card p{ font-size:14.5px; color:var(--tx-mut); line-height:1.6; flex:1; }
.p-card .arrow-link{ font-size:14px; }
.p-card .pc-tag{
  position:absolute; top:22px; right:22px; font-size:10.5px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; padding:5px 11px; border-radius:100px; background:var(--paper-2); color:var(--tx-mut);
}
.p-card.is-hot .pc-tag{ background:rgba(232,184,75,.18); color:#9a7415; }

/* Cartes sombres image (hub) */
.i-card{
  position:relative; border-radius:var(--r-md); overflow:hidden; min-height:420px;
  display:flex; align-items:flex-end; color:var(--paper); isolation:isolate;
}
.i-card img{ position:absolute; inset:0; width:100%; height:112%; object-fit:cover; z-index:-2; will-change:transform; }
.i-card::after{ content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(7,13,27,.05) 30%, rgba(7,13,27,.88) 100%); transition:background .4s; }
.i-card .ic-body{ padding:28px; width:100%; }
.i-card h3{ font-size:clamp(20px,1.8vw,26px); color:var(--paper); }
.i-card p{ font-size:14px; color:var(--tx-light-m); margin-top:8px; max-height:0; opacity:0; overflow:hidden; transition:max-height .5s var(--ease-out), opacity .5s, margin .4s; }
.i-card:hover p{ max-height:120px; opacity:1; margin-bottom:10px; }
.i-card .ic-top{ position:absolute; top:22px; left:22px; display:flex; gap:8px; }

/* ----------------------------- Sticky stack (cartes empilées) ----------------------------- */
.stack-wrap{ position:relative; }
.stack-card{
  position:sticky; top:calc(var(--nav-h) + 20px);
  border-radius:var(--r-lg); overflow:hidden; margin-bottom:26px;
  background:var(--ink-2); color:var(--tx-light);
  display:grid; grid-template-columns:1.05fr .95fr; min-height:min(72vh,620px);
  box-shadow:0 -20px 60px rgba(4,8,18,.35);
  will-change:transform;
}
.stack-card .sk-body{ padding:clamp(30px,4vw,64px); display:flex; flex-direction:column; justify-content:center; gap:18px; }
.stack-card .sk-num{ font-family:'Instrument Serif'; font-style:italic; font-size:clamp(40px,4vw,64px); color:var(--gold); line-height:1; }
.stack-card h3{ font-size:clamp(24px,2.6vw,40px); color:var(--paper); letter-spacing:-.025em; }
.stack-card p{ color:var(--tx-light-m); font-size:15.5px; line-height:1.7; max-width:48ch; }
.stack-card .sk-points{ display:flex; flex-direction:column; gap:10px; margin-top:6px; }
.stack-card .sk-points li{ display:flex; gap:10px; font-size:14.5px; color:var(--tx-light); }
.stack-card .sk-points li::before{ content:'✓'; color:var(--green); font-weight:700; }
.stack-card .sk-media{ position:relative; overflow:hidden; min-height:280px; }
.stack-card .sk-media img{ position:absolute; inset:0; width:100%; height:112%; object-fit:cover; will-change:transform; }
.stack-card:nth-child(2){ background:var(--ink-3); }
.stack-card:nth-child(3){ background:#182a52; }
.stack-card:nth-child(4){ background:#0d3b34; }
@media (max-width:900px){ .stack-card{ grid-template-columns:1fr; } .stack-card .sk-media{ order:-1; min-height:220px; } }

/* ----------------------------- Steps horizontaux (pin) ----------------------------- */
.hsteps{ overflow:hidden; }
.hsteps-pin{ display:flex; align-items:center; height:100vh; }
.hsteps-track{ display:flex; gap:clamp(20px,2.5vw,40px); padding-inline:var(--pad); will-change:transform; }
.hstep{
  flex:none; width:min(520px, 82vw); background:rgba(244,240,232,.05);
  border:1px solid var(--line-l); border-radius:var(--r-lg); padding:clamp(30px,3vw,50px);
  display:flex; flex-direction:column; gap:18px; min-height:380px; justify-content:flex-end;
  position:relative; overflow:hidden;
}
.hstep .hs-num{
  font-family:'Space Grotesk'; font-weight:700; font-size:clamp(80px,9vw,140px); line-height:.9;
  position:absolute; top:18px; right:26px;
  color:transparent; -webkit-text-stroke:1.5px rgba(232,184,75,.4);
}
.hstep h3{ font-size:clamp(22px,2.2vw,32px); color:var(--paper); }
.hstep p{ color:var(--tx-light-m); font-size:15.5px; line-height:1.7; }
.hstep .hs-badge{ align-self:flex-start; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); border:1px solid rgba(232,184,75,.35); padding:6px 13px; border-radius:100px; }

/* Fallback vertical pour mobile */
@media (max-width:820px){
  .hsteps-pin{ height:auto; display:block; padding-block:20px; }
  .hsteps-track{ flex-direction:column; transform:none!important; }
  .hstep{ width:100%; min-height:0; padding-top:70px; }
}

/* ----------------------------- Bande image parallax ----------------------------- */
.img-band{ position:relative; height:clamp(340px,55vh,560px); overflow:hidden; border-radius:var(--r-lg); }
.img-band img{ width:100%; height:130%; object-fit:cover; will-change:transform; }
.img-band .ib-overlay{
  position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,13,27,.1),rgba(7,13,27,.65));
  display:flex; align-items:flex-end; padding:clamp(24px,3.5vw,50px); color:var(--paper);
}
.img-band .ib-quote{ font-family:'Instrument Serif'; font-style:italic; font-size:clamp(22px,3vw,40px); line-height:1.25; max-width:24ch; }

/* Reveal clip d'images */
.clip-reveal{ clip-path:inset(12% 8% 12% 8% round var(--r-lg)); will-change:clip-path; }

/* ----------------------------- Avantages liste éditoriale ----------------------------- */
.edit-rows{ border-top:1px solid var(--line-d); }
.dark .edit-rows{ border-color:var(--line-l); }
.edit-row{
  display:grid; grid-template-columns:80px 1.1fr 1.6fr auto; gap:clamp(16px,3vw,50px);
  align-items:center; padding:clamp(24px,3vw,42px) 0; border-bottom:1px solid var(--line-d);
  transition:padding-left .4s var(--ease-out);
}
.dark .edit-row{ border-color:var(--line-l); }
.edit-row:hover{ padding-left:14px; }
.edit-row .er-num{ font-family:'Instrument Serif'; font-style:italic; font-size:clamp(22px,2vw,30px); color:var(--gold); }
.edit-row h3{ font-size:clamp(20px,2.2vw,30px); letter-spacing:-.02em; }
.edit-row p{ color:var(--tx-mut); font-size:15px; line-height:1.65; max-width:52ch; }
.dark .edit-row p{ color:var(--tx-light-m); }
.edit-row .er-ic{ width:56px; height:56px; border-radius:50%; border:1px solid var(--line-d); display:grid; place-items:center; font-size:22px; transition:background .35s, transform .5s var(--ease-out); }
.dark .edit-row .er-ic{ border-color:var(--line-l); }
.edit-row:hover .er-ic{ background:var(--gold); transform:rotate(-10deg); border-color:transparent; }
@media (max-width:760px){ .edit-row{ grid-template-columns:1fr; gap:10px; } .edit-row .er-ic{ display:none; } }

/* ----------------------------- Comparaison ----------------------------- */
.vs-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
@media (max-width:860px){ .vs-grid{ grid-template-columns:1fr; } }
.vs-col{ border-radius:var(--r-lg); padding:clamp(28px,3.5vw,52px); }
.vs-col.bad{ background:var(--paper-2); border:1px solid var(--line-d); }
.vs-col.good{ background:var(--ink); color:var(--tx-light); position:relative; overflow:hidden; }
.vs-col.good::before{ content:''; position:absolute; top:-80px; right:-80px; width:240px; height:240px; border-radius:50%; background:radial-gradient(circle, rgba(232,184,75,.25), transparent 70%); }
.vs-col h3{ font-size:clamp(20px,2vw,28px); margin-bottom:22px; }
.vs-col.good h3{ color:var(--paper); }
.vs-col li{ display:flex; gap:12px; padding:11px 0; font-size:15px; line-height:1.55; }
.vs-col.bad li{ color:var(--tx-mut); }
.vs-col.bad li::before{ content:'✕'; color:var(--red); font-weight:700; flex:none; }
.vs-col.good li{ color:var(--tx-light); }
.vs-col.good li::before{ content:'✓'; color:var(--green); font-weight:700; flex:none; }

/* ----------------------------- Témoignages ----------------------------- */
.tst-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:1000px){ .tst-row{ grid-template-columns:1fr; } }
.tst{
  background:var(--white); border:1px solid var(--line-d); border-radius:var(--r-md);
  padding:30px; display:flex; flex-direction:column; gap:18px;
  transition:transform .5s var(--ease-out), box-shadow .5s;
}
.dark .tst{ background:rgba(244,240,232,.05); border-color:var(--line-l); }
.tst:hover{ transform:translateY(-6px); box-shadow:0 26px 50px -20px rgba(10,18,32,.22); }
.tst .tst-stars{ color:var(--gold); letter-spacing:3px; font-size:15px; }
.tst p{ font-size:15.5px; line-height:1.7; color:var(--tx-dark); flex:1; }
.dark .tst p{ color:var(--tx-light); }
.tst .tst-who{ display:flex; align-items:center; gap:13px; }
.tst .tst-av{
  width:46px; height:46px; border-radius:50%; flex:none;
  display:grid; place-items:center; font-family:'Space Grotesk'; font-weight:700; color:var(--ink);
  background:linear-gradient(135deg,var(--gold),var(--gold-2));
}
.tst b{ display:block; font-size:14.5px; }
.tst small{ color:var(--tx-mut); font-size:12.5px; }
.dark .tst small{ color:var(--tx-light-m); }
.tst .tst-save{ font-size:12px; font-weight:700; color:var(--green); background:rgba(23,201,138,.1); align-self:flex-start; padding:5px 12px; border-radius:100px; }

/* ----------------------------- FAQ ----------------------------- */
.faq{ max-width:860px; margin-inline:auto; }
.faq-item{ border-bottom:1px solid var(--line-d); }
.dark .faq-item{ border-color:var(--line-l); }
.faq-q{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px;
  text-align:left; padding:26px 4px; font-family:'Space Grotesk'; font-weight:600;
  font-size:clamp(16px,1.6vw,20px); color:inherit; letter-spacing:-.01em;
}
.faq-q .fq-ic{
  width:34px; height:34px; flex:none; border-radius:50%; border:1px solid var(--line-d);
  display:grid; place-items:center; font-size:16px; transition:transform .45s var(--ease-out), background .3s, color .3s;
}
.dark .faq-q .fq-ic{ border-color:var(--line-l); }
.faq-item.is-open .fq-ic{ transform:rotate(45deg); background:var(--gold); color:var(--ink); border-color:transparent; }
.faq-a{ overflow:hidden; height:0; }
.faq-a-in{ padding:0 4px 26px; color:var(--tx-mut); font-size:15.5px; line-height:1.75; max-width:64ch; }
.dark .faq-a-in{ color:var(--tx-light-m); }

/* ----------------------------- Formulaire multi-étapes ----------------------------- */
.form-shell{
  background:var(--white); color:var(--tx-dark); border-radius:var(--r-lg);
  box-shadow:0 40px 90px -30px rgba(4,8,18,.5);
  overflow:hidden; max-width:560px; width:100%;
  position:relative;
}
.form-shell.on-page{ margin-inline:auto; }
.fs-head{ padding:26px 30px 0; }
.fs-head .fs-typo{
  display:inline-flex; align-items:center; gap:8px; font-size:11px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:#9a7415;
  background:rgba(232,184,75,.16); padding:6px 13px; border-radius:100px; margin-bottom:14px;
}
.fs-head h3{ font-size:clamp(20px,2vw,26px); letter-spacing:-.02em; }
.fs-head .fs-sub{ font-size:13px; color:var(--tx-mut); margin-top:6px; }
.fs-progress{ display:flex; align-items:center; gap:8px; padding:20px 30px 4px; }
.fs-progress .fp-seg{ height:4px; flex:1; border-radius:4px; background:var(--paper-2); overflow:hidden; position:relative; }
.fs-progress .fp-seg i{ position:absolute; inset:0; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease-exp); }
.fs-progress .fp-seg.is-done i{ transform:scaleX(1); }
.fs-progress .fp-count{ font-family:'Space Grotesk'; font-size:12px; font-weight:600; color:var(--tx-mut); flex:none; }
.fs-steps{ position:relative; overflow:hidden; }
.fs-step{ padding:24px 30px 30px; display:none; }
.fs-step.is-active{ display:block; }
.fs-step .fs-q{ font-family:'Space Grotesk'; font-weight:600; font-size:17px; margin-bottom:16px; letter-spacing:-.01em; }
.fs-grid{ display:grid; gap:12px; }
.fs-grid.c2{ grid-template-columns:1fr 1fr; }
@media (max-width:460px){ .fs-grid.c2{ grid-template-columns:1fr; } }

.field{ position:relative; }
.field input, .field select, .field textarea{
  width:100%; padding:16px 16px 15px; border-radius:14px; border:1.5px solid var(--line-d);
  background:var(--paper); font-size:15px; color:var(--tx-dark); outline:none;
  transition:border-color .25s, box-shadow .25s, background .25s;
  appearance:none; -webkit-appearance:none;
}
.field textarea{ min-height:104px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{
  border-color:var(--gold); background:var(--white); box-shadow:0 0 0 4px rgba(232,184,75,.16);
}
.field label{ display:block; font-size:12.5px; font-weight:600; color:var(--tx-mut); margin-bottom:7px; letter-spacing:.02em; }
.field .f-err{ display:none; font-size:12px; color:var(--red); margin-top:6px; font-weight:500; }
.pill-field .f-err{ display:none; font-size:12px; color:var(--red); font-weight:500; }
.pill-field.has-err .f-err{ display:block; }
.field.has-err input, .field.has-err select{ border-color:var(--red); }
.field.has-err .f-err{ display:block; }
.field select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235b6577' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; }

/* Choix “pills” */
.pills{ display:grid; gap:10px; }
.pills.c2{ grid-template-columns:1fr 1fr; }
.pills.c3{ grid-template-columns:repeat(3,1fr); }
.pills.c4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:460px){ .pills.c3,.pills.c4{ grid-template-columns:1fr 1fr; } }
.pill{ position:relative; }
.pill input{ position:absolute; opacity:0; inset:0; cursor:pointer; }
.pill .pl{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; text-align:center;
  padding:15px 10px; border-radius:14px; border:1.5px solid var(--line-d); background:var(--paper);
  font-size:13.5px; font-weight:600; cursor:pointer; min-height:58px;
  transition:border-color .25s, background .25s, transform .2s, box-shadow .25s; line-height:1.3;
}
.pill .pl .pl-ic{ font-size:19px; }
.pill .pl small{ font-weight:500; font-size:11.5px; color:var(--tx-mut); }
.pill input:checked + .pl{
  border-color:var(--ink); background:var(--ink); color:var(--paper); box-shadow:0 10px 24px -10px rgba(10,18,32,.5);
}
.pill input:checked + .pl small{ color:rgba(244,240,232,.6); }
.pill input:focus-visible + .pl{ box-shadow:0 0 0 4px rgba(232,184,75,.3); }
.pill:active .pl{ transform:scale(.97); }

.fs-nav{ display:flex; gap:10px; margin-top:20px; }
.fs-back{
  flex:none; width:54px; height:54px; border-radius:100px; border:1.5px solid var(--line-d);
  display:grid; place-items:center; font-size:17px; color:var(--tx-mut);
  transition:background .25s, color .25s;
}
.fs-back:hover{ background:var(--paper-2); color:var(--tx-dark); }
.fs-next{ flex:1; }
.fs-trust{ display:flex; justify-content:center; gap:16px; margin-top:16px; font-size:11.5px; color:var(--tx-mut); flex-wrap:wrap; }
.fs-trust span{ display:flex; align-items:center; gap:5px; }
.fs-trust .ok{ color:var(--green); font-weight:700; }
.fs-legal{ font-size:11.5px; color:var(--tx-mut); line-height:1.55; margin-top:14px; }
.fs-legal a{ text-decoration:underline; }

/* Succès */
.fs-success{ display:none; padding:50px 34px; text-align:center; }
.fs-success.is-active{ display:block; }
.fs-success .ok-ring{
  width:84px; height:84px; margin:0 auto 22px; border-radius:50%;
  background:rgba(23,201,138,.12); display:grid; place-items:center;
}
.fs-success .ok-ring svg{ width:42px; height:42px; }
.fs-success .ok-ring path{ stroke:var(--green); stroke-width:3; fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:60; stroke-dashoffset:60; }
.fs-success.is-active .ok-ring path{ animation:okdraw .8s var(--ease-exp) .2s forwards; }
@keyframes okdraw{ to{ stroke-dashoffset:0 } }
.fs-success h4{ font-size:22px; margin-bottom:10px; }
.fs-success p{ color:var(--tx-mut); font-size:14.5px; line-height:1.65; max-width:38ch; margin-inline:auto; }
.fs-success .btn{ margin-top:22px; }

/* Erreur globale */
.fs-error{ display:none; margin-top:14px; background:rgba(255,90,95,.09); color:#c03a3f; border:1px solid rgba(255,90,95,.25); border-radius:12px; padding:12px 16px; font-size:13.5px; font-weight:500; }
.fs-error.is-visible{ display:block; }

/* Loading submit */
.btn.is-loading{ pointer-events:none; opacity:.75; }
.btn .spin{ width:17px; height:17px; border:2.5px solid rgba(0,0,0,.25); border-top-color:currentColor; border-radius:50%; display:none; animation:spin .7s linear infinite; }
.btn.is-loading .spin{ display:inline-block; }
.btn.is-loading .btn-txt-hide{ display:none; }
@keyframes spin{ to{ transform:rotate(360deg) } }

/* ----------------------------- CTA final ----------------------------- */
.cta-final{ position:relative; overflow:hidden; }
.cta-final .cf-in{
  position:relative; z-index:2; text-align:center; display:flex; flex-direction:column;
  align-items:center; gap:26px; padding-block:clamp(90px,12vw,170px);
}
.cta-final h2{ color:var(--paper); max-width:20ch; }
.cta-final .cf-bg{ position:absolute; inset:0; z-index:0; }
.cta-final .cf-bg img{ width:100%; height:120%; object-fit:cover; opacity:.25; will-change:transform; }
.cta-final .cf-bg::after{ content:''; position:absolute; inset:0; background:radial-gradient(ellipse at center, rgba(7,13,27,.25), var(--ink) 78%); }
.cta-final .cf-ctas{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center; }
.cta-final .cf-badges{ display:flex; gap:20px; flex-wrap:wrap; justify-content:center; font-size:13px; color:var(--tx-light-m); }
.cta-final .cf-badges span{ display:flex; align-items:center; gap:6px; }

/* ----------------------------- Footer ----------------------------- */
.footer{ background:var(--ink); color:var(--tx-light); position:relative; overflow:hidden; }
.footer .ft-top{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:clamp(30px,4vw,60px);
  padding-block:clamp(60px,7vw,100px) clamp(40px,5vw,70px);
}
@media (max-width:960px){ .footer .ft-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer .ft-top{ grid-template-columns:1fr; } }
.footer .ft-brand p{ color:var(--tx-light-m); font-size:14.5px; line-height:1.7; margin-top:16px; max-width:34ch; }
.footer .ft-badges{ display:flex; gap:8px; flex-wrap:wrap; margin-top:20px; }
.footer .ft-badges span{ font-size:11.5px; border:1px solid var(--line-l); border-radius:100px; padding:6px 12px; color:var(--tx-light-m); }
.footer h5{ font-family:'Space Grotesk'; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; font-weight:600; }
.footer .ft-col a{ display:block; padding:6px 0; color:var(--tx-light-m); font-size:14.5px; transition:color .25s, padding-left .3s; }
.footer .ft-col a:hover{ color:var(--paper); padding-left:6px; }
.footer .ft-btm{
  border-top:1px solid var(--line-l); padding-block:26px;
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  font-size:13px; color:var(--tx-light-m);
}
.footer .ft-btm a{ color:var(--tx-light-m); } .footer .ft-btm a:hover{ color:var(--paper); }
.footer .ft-giant{
  font-family:'Space Grotesk'; font-weight:700; letter-spacing:-.05em; line-height:.85;
  font-size:clamp(80px,15.5vw,230px); text-align:center; user-select:none;
  color:transparent; -webkit-text-stroke:1.5px rgba(244,240,232,.1);
  padding-top:20px; margin-bottom:-.12em; white-space:nowrap;
}
.footer .ft-giant em{ font-family:'Instrument Serif'; font-style:italic; font-weight:400; -webkit-text-stroke:0; color:rgba(232,184,75,.2); }

/* ----------------------------- Breadcrumb ----------------------------- */
.crumb{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--tx-light-m); margin-bottom:22px; flex-wrap:wrap; }
.crumb a:hover{ color:var(--paper); }
.crumb .sep{ opacity:.4; }

/* ----------------------------- Sticky CTA mobile ----------------------------- */
.sticky-cta{
  position:fixed; bottom:0; left:0; right:0; z-index:900;
  display:none; gap:10px; padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(7,13,27,.9); backdrop-filter:blur(16px);
  transform:translateY(110%); transition:transform .45s var(--ease-out);
}
.sticky-cta.is-visible{ transform:translateY(0); }
.sticky-cta .btn{ flex:1; padding:14px 10px; font-size:14px; }
@media (max-width:820px){ .sticky-cta{ display:flex; } }

/* ----------------------------- Anim helpers ----------------------------- */
[data-reveal]{ opacity:0; }
.no-js [data-reveal], .reduced [data-reveal]{ opacity:1!important; transform:none!important; }
.split-lines .sl-line{ display:block; overflow:hidden; padding-bottom:.16em; margin-bottom:-.16em; }
.split-lines .sl-inner{ display:block; will-change:transform; }

/* ----------------------------- Pages légales ----------------------------- */
.legal-body{ max-width:800px; margin-inline:auto; }
.legal-body h2{ font-size:clamp(20px,2.4vw,30px); margin:44px 0 14px; }
.legal-body h3{ font-size:18px; margin:28px 0 10px; }
.legal-body p, .legal-body li{ color:var(--tx-mut); font-size:15.5px; line-height:1.8; margin-bottom:12px; }
.legal-body ul{ list-style:disc; padding-left:22px; }
.legal-body strong{ color:var(--tx-dark); }
.legal-box{ background:var(--white); border:1px solid var(--line-d); border-radius:var(--r-md); padding:26px 30px; margin:20px 0; }

/* ----------------------------- Contact ----------------------------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(30px,4vw,70px); align-items:start; }
@media (max-width:980px){ .contact-grid{ grid-template-columns:1fr; } }
.c-info-card{
  border:1px solid var(--line-l); border-radius:var(--r-md); padding:24px 26px;
  display:flex; gap:16px; align-items:flex-start; margin-bottom:14px;
  background:rgba(244,240,232,.04); transition:background .3s, transform .4s var(--ease-out);
}
.c-info-card:hover{ background:rgba(244,240,232,.08); transform:translateX(6px); }
.c-info-card .ci-ic{ width:46px; height:46px; border-radius:14px; background:var(--gold); color:var(--ink); display:grid; place-items:center; font-size:20px; flex:none; }
.c-info-card b{ display:block; font-family:'Space Grotesk'; font-size:16px; color:var(--paper); }
.c-info-card p, .c-info-card a.val{ color:var(--tx-light-m); font-size:14px; margin-top:4px; display:block; }
.c-info-card a.val:hover{ color:var(--gold); }

/* ----------------------------- Divers ----------------------------- */
.pill-note{ display:inline-flex; align-items:center; gap:8px; background:rgba(23,201,138,.1); color:var(--green); font-size:12.5px; font-weight:600; padding:7px 14px; border-radius:100px; }
.pulse-dot{ width:8px; height:8px; border-radius:50%; background:var(--green); position:relative; }
.pulse-dot::after{ content:''; position:absolute; inset:-4px; border-radius:50%; border:1.5px solid var(--green); animation:pulse 1.8s ease-out infinite; }
@keyframes pulse{ 0%{ transform:scale(.6); opacity:1 } 100%{ transform:scale(1.5); opacity:0 } }

.num-ex{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:760px){ .num-ex{ grid-template-columns:1fr; } }
.ex-card{ background:var(--white); border:1px solid var(--line-d); border-radius:var(--r-md); padding:24px; }
.ex-card .ex-who{ font-weight:600; font-size:14.5px; margin-bottom:12px; }
.ex-card .ex-rows{ font-size:13.5px; color:var(--tx-mut); display:flex; flex-direction:column; gap:6px; }
.ex-card .ex-save{ margin-top:14px; font-family:'Space Grotesk'; font-weight:700; font-size:22px; color:var(--green); }

@media (max-width:1150px){
  .nav-links{ display:none; }
  .burger{ display:block; }
  .nav-cta .btn-call-top{ display:none; }
}
@media (max-width:640px){
  :root{ --nav-h:72px; }
  .nav-cta .btn{ padding:11px 18px; font-size:13.5px; }
  .hero-scroll{ display:none; }
}

.no-js .btn .btn-fill{ display:none; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation-duration:.001s!important; transition-duration:.15s!important; }
  .grain{ display:none; }
}

/* ----------------------------- Tabs devis (accueil) ----------------------------- */
.devis-tabs{ display:flex; gap:8px; background:rgba(244,240,232,.08); border:1px solid var(--line-l); border-radius:100px; padding:6px; width:max-content; margin:0 auto 30px; }
.devis-tab{
  padding:12px 26px; border-radius:100px; font-family:'Space Grotesk'; font-weight:600; font-size:15px;
  color:var(--tx-light-m); transition:background .3s, color .3s;
}
.devis-tab.is-active{ background:var(--gold); color:var(--ink); }
.devis-panels{ position:relative; display:grid; place-items:center; }
.devis-panel{ display:none; width:100%; max-width:560px; }
.devis-panel.is-active{ display:block; }
