/* ============================================================
   GPFT v2 — « Coupures » · billet de banque moderne
   Palette : vert billet / ivoire / encre / hologramme
   Fonts   : Gloock (titres) · Familjen Grotesk (texte) · Red Hat Mono (chiffres)
   ============================================================ */

:root{
  --vert:#0E3A2C; --vert-2:#082418; --vert-3:#1B5A45; --vert-4:#2F7A5F;
  --ivoire:#F3EEE1; --papier:#E9E2D0; --papier-2:#DED5BE;
  --encre:#101512; --encre-2:#2A2F2B; --gris:#6B6F66; --ligne:rgba(16,21,18,.14);
  --azur:#2F7CF6;
  --holo:linear-gradient(115deg,#6BB1FF 0%,#C9A7FF 35%,#9BF0D2 65%,#FFD9A8 100%);
  --f-disp:'Gloock',Georgia,serif;
  --f-body:'Familjen Grotesk',system-ui,sans-serif;
  --f-mono:'Red Hat Mono',ui-monospace,monospace;
  --r:6px; --r-lg:14px;
  --shadow:0 1px 0 rgba(16,21,18,.06),0 14px 40px -20px rgba(8,36,24,.45);
  --wrap:1200px;
  --t:.45s cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivoire);color:var(--encre);font:400 17px/1.6 var(--f-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;font-family:var(--f-disp);font-weight:400;line-height:1.05;letter-spacing:-.01em}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
.mono{font-family:var(--f-mono);font-size:.82em;letter-spacing:.02em}
.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--encre);color:var(--ivoire);padding:8px 14px;z-index:100}
.skip:focus{left:8px}
::selection{background:var(--vert);color:var(--ivoire)}

/* ---------- Ticker ---------- */
.ticker{background:var(--vert-2);color:var(--papier);font-family:var(--f-mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;overflow:hidden;height:30px;display:flex;align-items:center}
.ticker__track{display:flex;gap:26px;white-space:nowrap;animation:tick 42s linear infinite;padding-left:26px}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- Header ---------- */
.top{position:sticky;top:0;z-index:50;background:rgba(243,238,225,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--ligne);transition:box-shadow .3s}
.top.is-scrolled{box-shadow:0 10px 30px -22px rgba(8,36,24,.5)}
.top__in{display:flex;align-items:center;justify-content:space-between;height:74px;gap:24px}
.brand{display:flex;align-items:center;gap:12px;color:var(--vert)}
.brand .mark{--logo-ink:var(--ivoire)}
.brand__t{font-family:var(--f-disp);font-size:26px;letter-spacing:.06em;color:var(--encre)}
.brand__s{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);border-left:1px solid var(--ligne);padding-left:12px}
.nav{display:flex;gap:6px}
.nav__a{padding:9px 14px;border-radius:999px;font-weight:500;font-size:15.5px;position:relative;transition:background .25s,color .25s}
.nav__a:hover{background:rgba(14,58,44,.08)}
.nav__a.is-here{background:var(--vert);color:var(--ivoire)}
.nav__a--mobile{display:none}
.top__right{display:flex;align-items:center;gap:10px}
.cart{display:inline-flex;align-items:center;gap:8px;padding:9px 14px 9px 12px;border:1.5px solid var(--encre);border-radius:999px;font-weight:600;font-size:14.5px;background:var(--ivoire);transition:transform .25s,background .25s,color .25s}
.cart:hover,.cart.is-here{background:var(--encre);color:var(--ivoire)}
.cart__n{font-family:var(--f-mono);font-size:12px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--holo);color:var(--encre);display:inline-grid;place-items:center;font-weight:600}
.cart__n[hidden]{display:none}
.cart.is-bump{animation:bump .5s}
@keyframes bump{30%{transform:scale(1.12)}}
.burger{display:none;width:44px;height:44px;border:1.5px solid var(--encre);border-radius:999px;background:transparent;cursor:pointer;place-items:center}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;border:1.5px solid var(--vert);background:var(--vert);color:var(--ivoire);font-weight:600;font-size:15.5px;cursor:pointer;transition:transform .25s var(--t),background .25s,box-shadow .25s;white-space:nowrap}
.btn:hover{transform:translateY(-2px);background:var(--vert-3);box-shadow:0 12px 26px -14px rgba(8,36,24,.7)}
.btn:active{transform:translateY(0)}
.btn--ink{background:var(--encre);border-color:var(--encre)}
.btn--ink:hover{background:var(--encre-2)}
.btn--ghost{background:transparent;color:var(--encre);border-color:var(--encre)}
.btn--ghost:hover{background:var(--encre);color:var(--ivoire)}
.btn--light{background:var(--ivoire);color:var(--vert);border-color:var(--ivoire)}
.btn--light:hover{background:#fff}
.btn--holo{background:var(--holo);color:var(--encre);border-color:transparent;background-size:200% 200%;animation:holo 6s ease infinite}
.btn--sm{padding:10px 16px;font-size:14px}
.btn[disabled]{opacity:.5;pointer-events:none}
@keyframes holo{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
.link{font-weight:600;border-bottom:1.5px solid var(--azur);padding-bottom:1px;transition:color .2s}
.link:hover{color:var(--azur)}

/* ---------- Sections / typographie ---------- */
.sec{padding:96px 0}
.sec--tight{padding:64px 0}
.sec--vert{background:var(--vert);color:var(--ivoire)}
.sec--papier{background:var(--papier)}
.sec--encre{background:var(--encre);color:var(--ivoire)}
.kicker{font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--vert-4);display:flex;align-items:center;gap:12px;margin-bottom:18px}
.kicker::before{content:"";width:28px;height:1px;background:currentColor}
.sec--vert .kicker,.sec--encre .kicker{color:#9BF0D2}
.h1{font-size:clamp(42px,6.2vw,84px)}
.h2{font-size:clamp(34px,4.4vw,58px)}
.h3{font-size:clamp(24px,2.4vw,32px)}
.lead{font-size:clamp(18px,1.6vw,21px);line-height:1.55;color:var(--encre-2);max-width:62ch}
.sec--vert .lead,.sec--encre .lead{color:rgba(243,238,225,.8)}
.head{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:end;margin-bottom:56px}
.head .lead{justify-self:end}
em.ac{font-style:italic;color:var(--vert-4)}
.sec--vert em.ac,.sec--encre em.ac{color:#9BF0D2}

/* ---------- Héros ---------- */
.hero{position:relative;background:var(--vert);color:var(--ivoire);overflow:hidden;padding:80px 0 96px;isolation:isolate}
.hero__bg{position:absolute;inset:-20% -10% auto auto;width:min(980px,110vw);color:rgba(243,238,225,.13);z-index:-1;pointer-events:none;animation:spin 140s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.hero__in{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero__title{font-size:clamp(46px,6.8vw,96px);line-height:.98;margin:18px 0 26px}
.hero__title span{display:block}
.hero__title em{font-style:italic;color:#9BF0D2}
.hero__lead{font-size:clamp(18px,1.5vw,21px);color:rgba(243,238,225,.82);max-width:52ch;margin-bottom:34px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero__note{font-family:var(--f-mono);font-size:12.5px;color:rgba(243,238,225,.6);margin-top:24px;letter-spacing:.04em}

/* Billet héros (vidéo) */
.note{position:relative;aspect-ratio:1.85/1;border-radius:var(--r-lg);overflow:hidden;background:var(--papier);color:var(--encre);box-shadow:0 40px 80px -30px rgba(0,0,0,.6),0 0 0 1px rgba(243,238,225,.25);transform:rotate(-2.5deg);transition:transform .8s var(--t)}
.note:hover{transform:rotate(-1deg) translateY(-4px)}
.note video,.note img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.75) contrast(1.05)}
.note::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,58,44,.05),rgba(14,58,44,.55) 100%);mix-blend-mode:multiply}
.note__guil{position:absolute;right:-18%;top:-35%;width:70%;color:rgba(243,238,225,.55);mix-blend-mode:overlay;z-index:2}
.note__ser{position:absolute;left:18px;top:14px;z-index:3;font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;color:var(--ivoire);text-transform:uppercase}
.note__val{position:absolute;right:20px;top:12px;z-index:3;font-family:var(--f-disp);font-size:clamp(34px,4vw,54px);color:var(--ivoire);line-height:1}
.note__val small{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;display:block;text-align:right;margin-top:2px;opacity:.85}
.note__cap{position:absolute;left:18px;bottom:16px;right:110px;z-index:3;color:var(--ivoire)}
.note__cap b{display:block;font-family:var(--f-disp);font-size:clamp(20px,2vw,28px);font-weight:400;letter-spacing:.01em}
.note__cap span{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.8}
.holo{position:absolute;right:20px;bottom:18px;width:64px;height:44px;border-radius:8px;background:var(--holo);background-size:300% 300%;animation:holo 5s ease infinite;z-index:3;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}
.holo::after{content:"";position:absolute;inset:6px;border-radius:4px;border:1px dashed rgba(16,21,18,.45)}

/* ---------- Bande chiffres ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1.5px solid var(--encre);border-radius:var(--r-lg);overflow:hidden;background:var(--ivoire)}
.stat{padding:28px 28px;border-right:1.5px solid var(--encre)}
.stat:last-child{border-right:0}
.stat > b{display:block;font-family:var(--f-disp);font-size:clamp(40px,4.5vw,64px);font-weight:400;line-height:1;color:var(--vert)}
.stat > span{font-size:14.5px;color:var(--gris);display:block;margin-top:8px}

/* ---------- Billets (cartes produit) ---------- */
.grille{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.billet{--tint:#1F5C46;--paper:#DDE9DF;position:relative;min-height:250px;border-radius:var(--r-lg);background:var(--paper);color:var(--encre);overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(16,21,18,.12);transition:transform .5s var(--t),box-shadow .5s var(--t);display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;column-gap:16px;padding:18px 22px 44px;isolation:isolate;transform-style:preserve-3d}
.billet:hover{box-shadow:0 30px 60px -28px rgba(8,36,24,.55)}
.billet--vert{--tint:#1F5C46;--paper:#DCE8DE}
.billet--bleu{--tint:#2A4E8A;--paper:#D8E1F0}
.billet--ocre{--tint:#B0701A;--paper:#F0E2C3}
.billet--rouge{--tint:#B23A2E;--paper:#F1D6CE}
.billet--violet{--tint:#5B3A86;--paper:#E2D7EE}
.billet--brun{--tint:#6B4A2B;--paper:#E7DACC}
.billet__guil{position:absolute;left:-28%;top:-20%;width:85%;color:var(--tint);opacity:.28;z-index:-1;transition:transform 1.2s var(--t)}
.billet:hover .billet__guil{transform:rotate(25deg) scale(1.08)}
.billet::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 100% 0%,var(--tint) 0%,transparent 55%);opacity:.22;z-index:-1}
.billet__serie{grid-column:1;grid-row:1;padding-top:6px;font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;color:var(--tint);text-transform:uppercase}
.billet__val{grid-column:2;grid-row:1;text-align:right;color:var(--tint);font-family:var(--f-disp);font-size:clamp(34px,3.4vw,46px);line-height:1;white-space:nowrap}
.billet__val small{display:block;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;margin-top:3px}
.billet__body{grid-column:1/-1;grid-row:2;align-self:end;margin-top:22px}
.billet__form{grid-column:1/-1;grid-row:3}
.billet__nom{font-size:clamp(22px,2.2vw,28px);color:var(--encre);margin-bottom:8px}
.billet__nom a::after{content:"";position:absolute;inset:0}
.billet__phrase{font-size:14.5px;line-height:1.5;color:var(--encre-2);max-width:40ch}
.billet__meta{display:flex;gap:16px;margin-top:12px;font-family:var(--f-mono);font-size:11.5px;letter-spacing:.06em;color:var(--tint);text-transform:uppercase}
.billet__strip{position:absolute;left:0;right:0;bottom:0;height:26px;white-space:nowrap;background:var(--tint);color:var(--paper);display:flex;justify-content:space-between;align-items:center;padding:0 22px;font-family:var(--f-mono);font-size:10px;letter-spacing:.22em}
.billet__holo{position:absolute;right:22px;bottom:40px;width:46px;height:30px;border-radius:6px;background:var(--holo);background-size:300% 300%;animation:holo 6s ease infinite;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}
.billet__form{position:relative;z-index:2;margin-top:16px}
.billet--compact{min-height:150px;padding:12px 16px 32px;box-shadow:none}
.billet--compact .billet__body{margin-top:10px}
.billet--compact .billet__nom{font-size:18px;margin-bottom:0}
.billet--compact .billet__val{font-size:26px}
.billet--compact .billet__serie{font-size:10px;padding-top:4px}
.billet--compact .billet__meta{display:none}
.billet--compact .billet__holo{display:none}
.billet--compact .billet__strip{height:18px;font-size:8px;padding:0 14px;white-space:nowrap}
.billet--compact .billet__strip span:nth-child(2){display:none}
.billet--xl{min-height:340px;padding:28px 32px 56px}
.billet--xl .billet__nom{font-size:clamp(30px,3.2vw,44px)}
.billet--xl .billet__val{font-size:clamp(48px,5vw,72px)}
.billet--xl .billet__serie{padding-top:10px}
.billet--xl .billet__strip{height:32px;padding:0 32px;font-size:11px}
.billet--xl .billet__holo{width:70px;height:46px;bottom:50px;right:32px}
.billet--xl .billet__phrase{font-size:17px;max-width:46ch}

/* ---------- Principes ---------- */
.princ{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(243,238,225,.2)}
.princ__it{padding:36px 28px 36px 0;border-right:1px solid rgba(243,238,225,.2);margin-right:28px}
.princ__it:last-child{border-right:0;margin-right:0}
.princ__ico{width:46px;height:46px;border-radius:50%;background:rgba(243,238,225,.1);display:grid;place-items:center;margin-bottom:22px;color:#9BF0D2}
.princ__it h3{font-size:22px;margin-bottom:10px}
.princ__it p{color:rgba(243,238,225,.75);font-size:15px;line-height:1.55}

/* ---------- Étapes ---------- */
.etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:et}
.etape{position:relative;background:var(--ivoire);border:1px solid var(--ligne);border-radius:var(--r-lg);padding:32px 26px 28px;counter-increment:et;transition:transform .4s var(--t),box-shadow .4s}
.etape:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.etape::before{content:counter(et,decimal-leading-zero);font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;color:var(--vert-4);display:block;margin-bottom:26px}
.etape::after{content:"";position:absolute;right:-13px;top:50%;width:26px;height:1px;background:var(--ligne)}
.etape:last-child::after{display:none}
.etape h3{font-size:24px;margin-bottom:12px}
.etape p{font-size:15px;color:var(--encre-2);line-height:1.55}

/* ---------- Image + texte ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.duo__img{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow)}
.duo__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.7) sepia(.15) contrast(1.05)}
.duo__img::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,58,44,.45),transparent 60%);mix-blend-mode:multiply}
.duo__tag{position:absolute;left:18px;bottom:18px;background:var(--ivoire);color:var(--vert);font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;padding:8px 12px;border-radius:999px;z-index:2}
.duo__img--wide{aspect-ratio:16/10}
.checks{display:grid;gap:14px;margin-top:28px}
.checks li{display:flex;gap:14px;align-items:flex-start;font-size:16.5px}
.checks .ico{flex:none;margin-top:4px;color:var(--vert-4);background:rgba(47,122,95,.12);border-radius:50%;padding:3px;width:24px;height:24px}

/* ---------- FAQ ---------- */
.faq{max-width:820px;margin-inline:auto;border-top:1.5px solid var(--encre)}
.faq details{border-bottom:1px solid var(--ligne)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-family:var(--f-disp);font-size:clamp(19px,1.8vw,24px)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-mono);font-size:22px;color:var(--vert-4);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 24px;color:var(--encre-2);max-width:66ch;line-height:1.6}

/* ---------- CTA ---------- */
.cta{border-radius:var(--r-lg);background:var(--encre);color:var(--ivoire);padding:64px;display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:center;position:relative;overflow:hidden}
.cta .guil{position:absolute;right:-10%;top:-40%;width:55%;color:rgba(243,238,225,.12)}
.cta h2{font-size:clamp(32px,4vw,52px);margin-bottom:14px}
.cta p{color:rgba(243,238,225,.75);max-width:52ch}
.cta__btns{display:flex;flex-direction:column;gap:12px;align-items:flex-end}

/* ---------- Bandeau de page ---------- */
.ban{background:var(--vert);color:var(--ivoire);padding:64px 0 56px;position:relative;overflow:hidden;isolation:isolate}
.ban .guil{position:absolute;right:-8%;top:-60%;width:46%;color:rgba(243,238,225,.12);z-index:-1}
.crumb{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(243,238,225,.6);margin-bottom:22px;display:flex;gap:10px}
.crumb a:hover{color:var(--ivoire)}
.ban .h1{margin-bottom:16px}
.ban .lead{color:rgba(243,238,225,.8)}

/* ---------- Fiche coupure ---------- */
.fiche{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.fiche__sticky{position:sticky;top:100px}
.fiche__img{margin-top:22px;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/10;position:relative}
.fiche__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.7) sepia(.15)}
.fiche h2{font-size:26px;margin:36px 0 14px}
.fiche h2:first-of-type{margin-top:0}
.fiche__pour{border-left:3px solid var(--vert-4);padding:6px 0 6px 18px;font-style:italic;color:var(--encre-2);font-size:17px}
.achat{margin-top:36px;padding:28px;border:1.5px solid var(--encre);border-radius:var(--r-lg);background:var(--ivoire);display:grid;gap:18px}
.achat__prix{display:flex;justify-content:space-between;align-items:baseline;gap:20px}
.achat__prix b{font-family:var(--f-disp);font-size:44px;font-weight:400;color:var(--vert)}
.achat__prix span{font-family:var(--f-mono);font-size:12.5px;color:var(--gris);text-align:right;line-height:1.5}
.achat__row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.achat__row .btn{flex:1}
.achat__info{display:grid;gap:8px;font-size:14px;color:var(--gris)}
.achat__info li{display:flex;gap:10px;align-items:center}
.achat__info .ico{color:var(--vert-4)}

/* Stepper quantité */
.qty{display:inline-flex;align-items:center;border:1.5px solid var(--encre);border-radius:999px;overflow:hidden;height:50px}
.qty button{width:44px;height:100%;border:0;background:transparent;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.qty button:hover{background:rgba(16,21,18,.07)}
.qty input{width:48px;text-align:center;border:0;background:transparent;font-family:var(--f-mono);font-weight:600;font-size:16px;-moz-appearance:textfield}
.qty input::-webkit-inner-spin-button,.qty input::-webkit-outer-spin-button{-webkit-appearance:none}
.qty--sm{height:40px}.qty--sm button{width:36px}.qty--sm input{width:40px;font-size:14px}

/* ---------- Panier ---------- */
.panier{display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:start}
.lignes{display:grid;gap:18px}
.ligne{display:grid;grid-template-columns:220px 1fr auto;gap:22px;align-items:center;padding:18px;border:1px solid var(--ligne);border-radius:var(--r-lg);background:#fff;transition:opacity .3s}
.ligne.is-out{opacity:.35;pointer-events:none}
.ligne__nom{font-family:var(--f-disp);font-size:22px;margin-bottom:4px}
.ligne__nom a:hover{color:var(--vert-4)}
.ligne__meta{font-family:var(--f-mono);font-size:12px;color:var(--gris);letter-spacing:.04em}
.ligne__ctrl{display:flex;align-items:center;gap:16px;margin-top:14px;flex-wrap:wrap}
.ligne__tot{text-align:right}
.ligne__tot b{display:block;font-family:var(--f-disp);font-size:26px;font-weight:400;white-space:nowrap}
.ligne__tot small{font-family:var(--f-mono);font-size:11.5px;color:var(--gris)}
.rm{background:none;border:0;cursor:pointer;color:var(--gris);display:inline-flex;align-items:center;gap:6px;font-size:13.5px;padding:6px 0;transition:color .2s}
.rm:hover{color:#B23A2E}
.recap{position:sticky;top:100px;border:1.5px solid var(--encre);border-radius:var(--r-lg);background:var(--ivoire);overflow:hidden}
.recap__h{padding:18px 26px;background:var(--encre);color:var(--ivoire);font-family:var(--f-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;display:flex;justify-content:space-between}
.recap__b{padding:22px 26px}
.recap__row{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px dashed var(--ligne);font-size:15.5px}
.recap__row span:last-child{font-family:var(--f-mono);font-weight:500}
.recap__row--tot{border-bottom:0;padding-top:16px;font-family:var(--f-disp);font-size:24px}
.recap__row--tot span:last-child{font-family:var(--f-disp);font-size:28px;color:var(--vert)}
.recap .btn{width:100%;justify-content:center;margin-top:18px}
.recap__note{font-size:13px;color:var(--gris);margin-top:14px;line-height:1.5}
.vide{text-align:center;padding:80px 20px;border:1.5px dashed var(--ligne);border-radius:var(--r-lg)}
.vide .ico{margin:0 auto 18px;color:var(--vert-4);width:44px;height:44px}
.vide h2{font-size:32px;margin-bottom:10px}
.vide p{color:var(--gris);margin-bottom:26px}

/* ---------- Formulaires ---------- */
.form{display:grid;gap:22px}
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form__grid .f--full{grid-column:1/-1}
.f{display:grid;gap:7px}
.f label{font-size:13.5px;font-weight:600;letter-spacing:.02em}
.f label small{font-weight:400;color:var(--gris)}
.f input,.f select,.f textarea{width:100%;padding:13px 15px;border:1.5px solid var(--ligne);border-radius:var(--r);background:#fff;transition:border-color .2s,box-shadow .2s}
.f input:focus,.f select:focus,.f textarea:focus{outline:0;border-color:var(--azur);box-shadow:0 0 0 4px rgba(47,124,246,.15)}
.f textarea{min-height:130px;resize:vertical}
.f.is-err input,.f.is-err select{border-color:#B23A2E}
.f__err{font-size:13px;color:#B23A2E}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.alert{padding:16px 20px;border-radius:var(--r);font-size:15px;margin-bottom:24px;border:1.5px solid}
.alert--err{background:#F9E4E0;border-color:#B23A2E;color:#7A2418}
.alert--ok{background:#DCEFE5;border-color:var(--vert-4);color:var(--vert-2)}
.bloc{border:1px solid var(--ligne);border-radius:var(--r-lg);padding:30px;background:#fff;margin-bottom:22px}
.bloc h2{font-size:24px;display:flex;align-items:center;gap:14px;margin-bottom:22px}
.bloc h2 .num{font-family:var(--f-mono);font-size:12px;letter-spacing:.16em;width:36px;height:36px;border-radius:50%;background:var(--vert);color:var(--ivoire);display:grid;place-items:center}
.pay{display:grid;gap:12px}
.pay label{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border:1.5px solid var(--ligne);border-radius:var(--r);cursor:pointer;transition:border-color .2s,background .2s}
.pay label:has(input:checked){border-color:var(--vert);background:rgba(14,58,44,.05)}
.pay input{margin-top:4px;accent-color:var(--vert)}
.pay b{display:block;font-weight:600}
.pay span{font-size:14px;color:var(--gris)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--encre-2)}
.consent input{margin-top:4px;accent-color:var(--vert)}

/* ---------- Reçu ---------- */
.recu{max-width:640px;margin-inline:auto;background:#fff;position:relative;padding:48px 44px;border-radius:4px;box-shadow:var(--shadow)}
.recu::before,.recu::after{content:"";position:absolute;left:0;right:0;height:14px;background:radial-gradient(circle,transparent 7px,#fff 7.5px) 0 0/28px 14px}
.recu::before{top:-13px;transform:rotate(180deg)}
.recu::after{bottom:-13px}
.recu__ok{width:64px;height:64px;border-radius:50%;background:var(--vert);color:var(--ivoire);display:grid;place-items:center;margin:0 auto 22px}
.recu h1{text-align:center;font-size:38px;margin-bottom:8px}
.recu__ref{text-align:center;font-family:var(--f-mono);font-size:13px;letter-spacing:.2em;color:var(--vert-4);margin-bottom:28px}
.recu__rows{border-top:1.5px dashed var(--ligne);border-bottom:1.5px dashed var(--ligne);padding:16px 0;margin:22px 0}
.recu__row{display:flex;justify-content:space-between;padding:7px 0;font-size:15px}
.recu__row span:last-child{font-family:var(--f-mono)}
.recu__next{display:grid;gap:12px;margin-top:26px}
.recu__next li{display:flex;gap:12px;font-size:15px;color:var(--encre-2)}
.recu__next .ico{flex:none;color:var(--vert-4);margin-top:3px}

/* ---------- Contact ---------- */
.contact{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.coord{display:grid;gap:22px}
.coord__it{display:flex;gap:16px;align-items:flex-start}
.coord__it .ico{flex:none;width:42px;height:42px;padding:10px;border-radius:50%;background:rgba(47,122,95,.12);color:var(--vert)}
.coord__it b{display:block;font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);margin-bottom:4px}
.coord__it a:hover{color:var(--vert-4)}
.map{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--ligne);margin-top:8px;filter:grayscale(1) contrast(1.05) sepia(.2)}
.map iframe{display:block;width:100%;height:280px;border:0}

/* ---------- Signature ---------- */
.sig{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center}
.sig__q{font-family:var(--f-disp);font-size:clamp(24px,2.6vw,34px);line-height:1.25;margin:26px 0}
.sig__name{display:flex;align-items:center;gap:16px;margin-top:26px}
.sig__name svg{color:var(--vert-4)}
.sig__name b{display:block;font-weight:600}
.sig__name span{font-size:14px;color:var(--gris)}
.ligne-vie{display:grid;gap:0;border-left:1.5px solid var(--encre);margin-top:40px}
.ligne-vie li{position:relative;padding:0 0 26px 30px}
.ligne-vie li::before{content:"";position:absolute;left:-6px;top:8px;width:10px;height:10px;border-radius:50%;background:var(--vert-4)}
.ligne-vie b{font-family:var(--f-mono);font-size:12px;letter-spacing:.14em;color:var(--vert-4);display:block;margin-bottom:4px}
.secteurs{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.secteurs li{padding:9px 16px;border:1.5px solid var(--encre);border-radius:999px;font-size:14px;font-weight:500}

/* ---------- Prose légale ---------- */
.prose{max-width:780px}
.prose h2{font-size:26px;margin:44px 0 14px}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:var(--encre-2);line-height:1.65}
.prose p+p{margin-top:12px}
.prose ul{padding-left:20px;list-style:disc;margin-top:10px;display:grid;gap:6px}
.prose a{border-bottom:1px solid var(--azur)}
.prose .tbl{display:grid;border:1px solid var(--ligne);border-radius:var(--r);overflow:hidden;margin-top:14px}
.prose .tbl div{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:10px 16px;border-bottom:1px solid var(--ligne);font-size:15px}
.prose .tbl div:last-child{border-bottom:0}
.prose .tbl div b{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
.prose .maj{font-family:var(--f-mono);font-size:12.5px;color:var(--gris);letter-spacing:.06em;margin-bottom:26px}

/* ---------- Footer ---------- */
.foot{background:var(--vert-2);color:var(--papier);padding:72px 0 28px;margin-top:0}
.foot__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
.foot__brand .mark{--logo-ink:var(--vert-2);color:var(--papier)}
.foot__claim{font-family:var(--f-disp);font-size:26px;margin:20px 0 14px;line-height:1.15}
.foot__addr{font-size:14.5px;color:rgba(233,226,208,.7)}
.foot__col{display:grid;gap:10px;align-content:start}
.foot__col h4{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#9BF0D2;margin-bottom:6px}
.foot__col a{font-size:15px;color:rgba(233,226,208,.8);transition:color .2s}
.foot__col a:hover{color:#fff}
.foot__strip{display:flex;gap:6px;margin:48px 0 20px;overflow:hidden}
.foot__strip i{flex:1;height:6px;background:rgba(233,226,208,.25);border-radius:2px}
.foot__strip i:nth-child(4n){background:#9BF0D2}
.foot__strip i:nth-child(7n){background:#C9A7FF}
.foot__bot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:rgba(233,226,208,.6)}

/* ---------- Toast ---------- */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;background:var(--encre);color:var(--ivoire);padding:14px 22px;border-radius:999px;font-size:15px;display:flex;align-items:center;gap:12px;z-index:90;pointer-events:none;transition:opacity .35s,transform .35s var(--t);max-width:calc(100vw - 32px);box-shadow:0 20px 40px -20px rgba(0,0,0,.6)}
.toast.is-on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.toast a{color:#9BF0D2;font-weight:600;white-space:nowrap}

/* ---------- Reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s var(--t),transform .8s var(--t)}
[data-reveal].is-in{opacity:1;transform:none}
[data-stagger]>*{opacity:0;transform:translateY(18px);transition:opacity .7s var(--t),transform .7s var(--t)}
[data-stagger].is-in>*{opacity:1;transform:none}
[data-stagger].is-in>*:nth-child(2){transition-delay:.08s}
[data-stagger].is-in>*:nth-child(3){transition-delay:.16s}
[data-stagger].is-in>*:nth-child(4){transition-delay:.24s}
[data-stagger].is-in>*:nth-child(5){transition-delay:.32s}
[data-stagger].is-in>*:nth-child(6){transition-delay:.4s}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  [data-reveal],[data-stagger]>*{opacity:1;transform:none}
}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .grille{grid-template-columns:repeat(2,1fr)}
  .princ,.etapes{grid-template-columns:repeat(2,1fr)}
  .princ__it:nth-child(2){border-right:0}
  .princ__it:nth-child(-n+2){border-bottom:1px solid rgba(243,238,225,.2)}
  .etape::after{display:none}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1.5px solid var(--encre)}
  .foot__top{grid-template-columns:1fr 1fr}
  .brand__s{display:none}
}
@media (max-width:900px){
  .hero__in,.duo,.fiche,.panier,.contact,.sig,.cta,.head{grid-template-columns:1fr}
  .head .lead{justify-self:start}
  .hero{padding:56px 0 72px}
  .note{transform:none}
  .fiche__sticky,.recap{position:static}
  .cta{padding:40px 28px}
  .cta__btns{align-items:flex-start}
  .ligne{grid-template-columns:1fr;gap:14px}
  .ligne__tot{text-align:left}
  .burger{display:grid}
  .nav{position:fixed;inset:104px 0 auto 0;background:var(--ivoire);flex-direction:column;padding:16px 20px 24px;border-bottom:1.5px solid var(--encre);transform:translateY(-12px);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s var(--t);z-index:40}
  .nav.is-open{opacity:1;transform:none;pointer-events:auto}
  .nav__a{font-size:19px;padding:12px 14px}
  .nav__a--mobile{display:block}
  .cart__lbl{display:none}
}
@media (max-width:640px){
  .wrap{width:min(var(--wrap),100% - 32px)}
  .sec{padding:64px 0}
  .grille,.princ,.etapes,.stats,.form__grid,.foot__top{grid-template-columns:1fr}
  .princ__it{border-right:0;margin-right:0;border-bottom:1px solid rgba(243,238,225,.2);padding-right:0}
  .stat{border-right:0;border-bottom:1.5px solid var(--encre)}
  .stat:last-child{border-bottom:0}
  .billet--xl{padding:22px 22px 52px;min-height:280px}
  .billet--xl .billet__val{font-size:44px}
  .ticker{font-size:10px}
  .top__in{height:68px}
  .nav{inset:98px 0 auto 0}
  .brand__t{font-size:22px}
  .recu{padding:36px 22px}
  .achat__row .btn{flex:1 1 100%}
  .bloc{padding:22px}
}
