/* ============================================================
   Nelysio — Vitrine · Direction « Studio »
   Duotone espresso / crème + accent rose poudré. Grille éditoriale suisse.
   Archivo Expanded + Newsreader italic + JetBrains Mono. Design plat
   (filets 1px, blocs de couleur, quasi zéro arrondi, aucune ombre).
   Réf. handoff design_handoff_vitrine_studio — adapté au contenu réel Nelysio
   (offres complètes, galerie photo, contenu honnête).
   ============================================================ */

:root{
  --paper:    #F3EFE6;
  --paper-2:  #EAE3D6;
  --paper-3:  #FBF9F3;
  --forest:   #2A2320;   /* bloc sombre espresso (nom hérité) */
  --forest-2: #201A17;
  --ink:      #1E1A17;
  --ink-soft: #453D36;
  --muted:    #7A716A;
  --muted-2:  #A79E95;
  --sage:     #A26B74;   /* accent rose poudré (nom hérité) */
  --sage-hi:  #C6959B;
  --line:     rgba(30,26,23,0.14);
  --line-soft:rgba(30,26,23,0.07);
  --line-cream:rgba(243,239,230,0.18);
  --exp:   'Archivo Expanded', 'Archivo', system-ui, sans-serif;
  --sans:  'Archivo', system-ui, sans-serif;
  --serif: 'Newsreader', Georgia, serif;
  --mono:  'JetBrains Mono', ui-monospace, monospace;
  --maxw: 1280px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
h1,h2,h3,h4{ margin:0; font-family:var(--exp); font-weight:600; line-height:1.0; letter-spacing:-0.02em; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 40px; }
.section{ padding:120px 0; }
.section--tight{ padding:84px 0; }
.ital{ font-family:var(--serif); font-style:italic; font-weight:500; letter-spacing:0; }
.muted{ color:var(--muted); }

/* label */
.label{ font-family:var(--mono); font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--sage); display:inline-flex; align-items:center; gap:11px; }
.label b{ color:var(--muted); font-weight:500; }
.on-dark .label{ color:var(--sage-hi); }
.on-dark .label b{ color:var(--muted-2); }

/* buttons */
.btn{ display:inline-flex; align-items:center; gap:9px; font-family:var(--sans); font-size:15px; font-weight:600; padding:13px 24px; border-radius:2px; cursor:pointer; border:1px solid transparent; transition:all .18s ease; }
.btn--solid{ background:var(--forest); color:var(--paper); }
.btn--solid:hover{ background:var(--forest-2); transform:translateY(-1px); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--ink); }
.btn--cream{ background:var(--paper); color:var(--forest); }
.btn--cream:hover{ background:#fff; transform:translateY(-1px); }
.btn--cream-ghost{ background:transparent; color:var(--paper); border-color:var(--line-cream); }
.btn--cream-ghost:hover{ border-color:var(--paper); }
.btn--sm{ padding:9px 16px; font-size:13px; }
.arrow{ transition:transform .18s; }
.btn:hover .arrow{ transform:translateX(3px); }

/* ============================================================ NAV */
.nav{ position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--paper) 84%,transparent); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid transparent; transition:border-color .3s; }
.nav.scrolled{ border-color:var(--line); }
.nav__in{ display:flex; align-items:center; justify-content:space-between; height:74px; }
.brand{ display:flex; align-items:center; gap:11px; font-family:var(--exp); font-weight:700; font-size:19px; letter-spacing:-0.01em; }
.brand__mark{ width:30px; height:30px; border-radius:3px; display:grid; place-items:center; background:var(--forest); color:var(--paper); font-family:var(--exp); font-weight:700; font-size:14px; }
.nav__links{ display:flex; align-items:center; gap:34px; }
.nav__links a{ font-size:14px; color:var(--ink-soft); transition:color .15s; }
.nav__links a:hover{ color:var(--sage); }
.nav__cta{ display:flex; align-items:center; gap:15px; }
.nav__login{ font-size:14px; color:var(--ink-soft); }
@media(max-width:940px){ .nav__links{ display:none; } }

/* ============================================================ HERO — split */
.hero{ display:grid; grid-template-columns:1.02fr 0.98fr; min-height:calc(100vh - 74px); }
.hero__left{ padding:70px 40px 70px max(40px, calc((100vw - var(--maxw))/2 + 40px)); display:flex; flex-direction:column; justify-content:center; }
.hero__left .label{ margin-bottom:30px; }
.hero h1{ font-family:var(--exp); font-weight:600; font-size:clamp(3rem,5.4vw,5.4rem); letter-spacing:-0.035em; line-height:0.94; }
.hero h1 .ital{ color:var(--sage); }
.hero__sub{ margin-top:28px; max-width:40ch; font-size:19px; color:var(--ink-soft); line-height:1.5; }
.hero__actions{ margin-top:36px; display:flex; gap:13px; flex-wrap:wrap; }
.hero__trust{ margin-top:40px; display:flex; gap:28px; flex-wrap:wrap; font-family:var(--mono); font-size:12px; color:var(--muted); }
.hero__trust span{ display:inline-flex; gap:8px; align-items:center; }
.hero__trust span::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--sage); }
.hero__right{ background:var(--forest); color:var(--paper); padding:70px max(40px, calc((100vw - var(--maxw))/2 + 40px)) 70px 56px; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
@media(max-width:940px){ .hero{ grid-template-columns:1fr; min-height:0; } .hero__left,.hero__right{ padding:64px 32px; } }

/* conceptual panel (cream on espresso) — illustration produit stylisée */
.panel{ position:relative; z-index:1; }
.panel__h{ display:flex; align-items:baseline; justify-content:space-between; padding-bottom:16px; border-bottom:1px solid var(--line-cream); margin-bottom:20px; }
.panel__h h4{ font-family:var(--exp); font-weight:500; font-size:20px; color:var(--paper); }
.panel__h span{ font-family:var(--mono); font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--sage-hi); }
.pk{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-cream); border:1px solid var(--line-cream); margin-bottom:20px; }
.pk__c{ background:var(--forest); padding:16px 14px; }
.pk__n{ font-family:var(--exp); font-weight:600; font-size:30px; letter-spacing:-0.02em; }
.pk__n em{ font-style:normal; color:var(--sage-hi); font-size:0.5em; }
.pk__l{ font-size:11px; color:var(--muted-2); margin-top:5px; letter-spacing:0.01em; }
.pr{ display:flex; align-items:center; gap:13px; padding:13px 0; border-bottom:1px solid var(--line-cream); }
.pr:last-child{ border-bottom:none; }
.pr__av{ width:32px; height:32px; border-radius:3px; flex-shrink:0; display:grid; place-items:center; font-family:var(--exp); font-weight:600; font-size:13px; color:var(--forest); }
.pr__b{ flex:1; min-width:0; }
.pr__n{ font-size:13.5px; font-weight:500; color:var(--paper); }
.pr__bar{ height:3px; background:var(--forest-2); margin-top:7px; overflow:hidden; }
.pr__bar i{ display:block; height:100%; }
.pr__cd{ font-family:var(--mono); font-size:12px; color:var(--sage-hi); flex-shrink:0; }

/* ============================================================ PROOF (réassurance honnête) */
.proof{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.proof__in{ display:grid; grid-template-columns:auto 1fr; align-items:center; gap:44px; padding:30px 0; }
.proof__lead{ font-family:var(--mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); max-width:18ch; }
.proof__row{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
.proof__item{ font-family:var(--mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); display:inline-flex; align-items:center; gap:9px; }
.proof__item::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--sage); flex-shrink:0; }
@media(max-width:820px){ .proof__in{ grid-template-columns:1fr; gap:20px; } }

/* ============================================================ STATEMENT — espresso block */
.statement{ background:var(--forest); color:var(--paper); }
.statement__grid{ display:grid; grid-template-columns:auto 1fr; gap:56px; align-items:start; }
.statement .label{ color:var(--sage-hi); }
.statement__num{ font-family:var(--exp); font-weight:600; font-size:clamp(4rem,9vw,9rem); line-height:0.8; color:var(--sage); letter-spacing:-0.04em; }
.statement h2{ font-family:var(--exp); font-weight:600; font-size:clamp(2rem,4vw,3.4rem); letter-spacing:-0.03em; line-height:1.04; max-width:22ch; }
.statement h2 .ital{ color:var(--sage-hi); }
.statement p{ margin-top:26px; max-width:56ch; font-size:19px; color:color-mix(in srgb,var(--paper) 80%,transparent); }
@media(max-width:820px){ .statement__grid{ grid-template-columns:1fr; gap:24px; } }

/* ============================================================ FEATURES — sticky aside */
.feat{ display:grid; grid-template-columns:0.82fr 1.18fr; gap:56px; align-items:start; }
.feat__aside{ position:sticky; top:100px; }
.feat__aside h2{ font-family:var(--exp); font-weight:600; font-size:clamp(2rem,3.6vw,3rem); letter-spacing:-0.03em; margin-top:18px; }
.feat__aside h2 .ital{ color:var(--sage); }
.feat__aside p{ margin-top:18px; font-size:16px; color:var(--ink-soft); max-width:32ch; }
.feat__aside .btn{ margin-top:26px; }
.feat__list{ display:flex; flex-direction:column; }
.fitem{ display:grid; grid-template-columns:auto 1fr; gap:26px; padding:34px 0; border-top:1px solid var(--line); }
.fitem:last-child{ border-bottom:1px solid var(--line); }
.fitem__n{ font-family:var(--mono); font-size:13px; color:var(--sage); padding-top:6px; }
.fitem__t{ font-family:var(--exp); font-weight:500; font-size:23px; letter-spacing:-0.01em; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.fitem__t .ital{ color:var(--sage); }
.fitem__d{ margin-top:10px; font-size:15.5px; color:var(--ink-soft); max-width:52ch; }
.fitem__tags{ margin-top:14px; display:flex; gap:8px; flex-wrap:wrap; }
.ftag{ font-family:var(--mono); font-size:10.5px; letter-spacing:0.05em; color:var(--muted); border:1px solid var(--line); padding:4px 10px; border-radius:2px; }
.ftag--new{ color:var(--paper); background:var(--sage); border-color:var(--sage); }
@media(max-width:880px){ .feat{ grid-template-columns:1fr; gap:32px; } .feat__aside{ position:static; } }

/* ============================================================ PROCESS band */
.process{ background:var(--paper-2); }
.process__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:48px; flex-wrap:wrap; }
.process__head h2{ font-family:var(--exp); font-weight:600; font-size:clamp(2rem,3.4vw,2.8rem); letter-spacing:-0.03em; margin-top:16px; }
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.step{ background:var(--paper); padding:38px 32px; }
.step__n{ font-family:var(--exp); font-weight:600; font-size:44px; color:var(--sage); letter-spacing:-0.03em; line-height:1; }
.step__t{ font-family:var(--exp); font-weight:500; font-size:20px; margin-top:18px; }
.step__d{ margin-top:12px; font-size:14.5px; color:var(--ink-soft); }
@media(max-width:820px){ .steps{ grid-template-columns:1fr; } }

/* ============================================================ COLLABORATION */
.paths__head{ text-align:center; margin-bottom:22px; }
.paths__head h2{ font-family:var(--exp); font-weight:600; font-size:clamp(2rem,3.8vw,3.2rem); letter-spacing:-0.03em; margin-top:16px; }
.paths__head h2 .ital{ color:var(--sage); }
.tabpanel{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); margin-top:40px; }
.tabpanel__copy{ padding:48px; }
.tabpanel__copy .tag{ font-family:var(--mono); font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--sage); }
.tabpanel__copy h3{ font-family:var(--exp); font-weight:600; font-size:30px; margin-top:14px; letter-spacing:-0.02em; }
.tabpanel__copy p{ margin-top:14px; font-size:16px; color:var(--ink-soft); max-width:40ch; }
.tabpanel__copy .btn{ margin-top:28px; }
.tabpanel__list{ padding:48px; background:var(--paper-3); border-left:1px solid var(--line); display:flex; flex-direction:column; }
.tabpanel__list .fl{ display:grid; grid-template-columns:auto 1fr; gap:14px; padding:16px 0; border-bottom:1px solid var(--line-soft); font-size:15px; align-items:baseline; }
.tabpanel__list .fl:last-of-type{ border-bottom:none; }
.tabpanel__list .fl b{ font-family:var(--mono); font-size:11px; color:var(--sage); font-weight:500; }
.tabpanel__note{ margin-top:16px; font-size:12.5px; color:var(--muted); font-style:italic; font-family:var(--serif); }
@media(max-width:820px){ .tabpanel{ grid-template-columns:1fr; } .tabpanel__list{ border-left:none; border-top:1px solid var(--line); } .tabpanel__copy,.tabpanel__list{ padding:32px; } }

/* ============================================================ VALUE (ex-metrics, honnête) */
.metrics-sec{ background:var(--forest); color:var(--paper); }
.metrics{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-cream); border:1px solid var(--line-cream); }
.metric{ background:var(--forest); padding:46px 36px; }
.metric__n{ font-family:var(--exp); font-weight:600; font-size:clamp(3rem,5vw,4.4rem); line-height:0.86; letter-spacing:-0.03em; }
.metric__n em{ font-style:normal; color:var(--sage-hi); font-size:0.5em; }
.metric__l{ margin-top:16px; font-size:15px; color:color-mix(in srgb,var(--paper) 78%,transparent); max-width:26ch; }
@media(max-width:820px){ .metrics{ grid-template-columns:1fr; } }

/* ============================================================ REFORM */
.reform{ display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center; }
.reform h2{ font-family:var(--exp); font-weight:600; font-size:clamp(2rem,3.6vw,3rem); letter-spacing:-0.02em; margin-top:18px; }
.reform h2 .ital{ color:var(--sage); }
.reform p{ margin-top:18px; font-size:16.5px; color:var(--ink-soft); max-width:46ch; }
.reform__card{ border:1px solid var(--line); }
.reform__li{ display:grid; grid-template-columns:auto 1fr; gap:16px; padding:22px 24px; border-bottom:1px solid var(--line); }
.reform__li:last-child{ border-bottom:none; }
.reform__li b{ font-family:var(--mono); font-size:12px; color:var(--sage); letter-spacing:0.06em; padding-top:2px; }
.reform__li span{ font-size:14.5px; color:var(--ink-soft); }
@media(max-width:820px){ .reform{ grid-template-columns:1fr; gap:28px; } }

/* ============================================================ FOUNDING (remplace le témoignage — honnête) */
.founding{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; }
.founding h2{ font-family:var(--exp); font-weight:600; font-size:clamp(2rem,3.6vw,3rem); letter-spacing:-0.03em; margin-top:16px; }
.founding h2 .ital{ color:var(--sage); }
.founding p{ margin-top:18px; font-size:16.5px; color:var(--ink-soft); max-width:46ch; }
.founding .btn{ margin-top:26px; }
.founding__list{ border-top:1px solid var(--line); }
.founding__li{ display:grid; grid-template-columns:auto 1fr; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.founding__li b{ font-family:var(--mono); font-size:12px; color:var(--sage); }
.founding__li strong{ font-family:var(--exp); font-weight:600; font-size:17px; display:block; }
.founding__li span{ font-size:14.5px; color:var(--ink-soft); display:block; margin-top:4px; }
@media(max-width:820px){ .founding{ grid-template-columns:1fr; gap:28px; } }

/* ============================================================ PRICING — comparison table */
.pricing__head{ text-align:center; margin-bottom:52px; }
.pricing__head h2{ font-family:var(--exp); font-weight:600; font-size:clamp(2.2rem,4vw,3.4rem); letter-spacing:-0.03em; margin-top:16px; }
.pricing__head h2 .ital{ color:var(--sage); }
.ptable{ width:100%; border:1px solid var(--line); border-collapse:separate; border-spacing:0; }
.ptable th, .ptable td{ text-align:left; padding:0; }
.ptable thead th{ vertical-align:bottom; padding:28px 26px 24px; border-bottom:1px solid var(--line); }
.ptable thead th:not(:first-child){ border-left:1px solid var(--line); }
.pcol--feature{ background:var(--forest); color:var(--paper); }
.pcol__flag{ font-family:var(--mono); font-size:10px; letter-spacing:0.14em; text-transform:uppercase; color:var(--sage-hi); margin-bottom:10px; display:block; }
.pcol__name{ font-family:var(--exp); font-weight:600; font-size:22px; }
.pcol__desc{ font-size:13px; color:var(--muted); margin-top:6px; max-width:26ch; }
.pcol--feature .pcol__desc{ color:color-mix(in srgb,var(--paper) 72%,transparent); }
.pcol__price{ margin-top:18px; display:flex; align-items:baseline; gap:5px; }
.pcol__price b{ font-family:var(--exp); font-weight:600; font-size:40px; letter-spacing:-0.02em; }
.pcol__price span{ font-size:13px; color:var(--muted); }
.pcol--feature .pcol__price span{ color:var(--sage-hi); }
.pcol__cta{ margin-top:18px; display:block; }
.pcol__cta .btn{ width:100%; justify-content:center; }
.ptable tbody th{ font-family:var(--sans); font-weight:500; font-size:14px; color:var(--ink-soft); padding:16px 26px; border-bottom:1px solid var(--line-soft); }
.ptable tbody td{ padding:16px 26px; border-bottom:1px solid var(--line-soft); border-left:1px solid var(--line-soft); font-size:14px; color:var(--ink-soft); }
.ptable tbody td.tcol--feature{ background:color-mix(in srgb,var(--forest) 5%,transparent); }
.ptable tbody tr:hover th, .ptable tbody tr:hover td{ background:color-mix(in srgb,var(--sage) 8%,transparent); }
.ck{ color:var(--sage); font-weight:700; }
.no{ color:var(--muted-2); }
.pgroup td, .pgroup th{ font-family:var(--mono); font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); padding-top:24px; padding-bottom:10px; border-bottom:1px solid var(--line); background:var(--paper-2); }

/* Palier Réseau & franchises (bloc espresso, sous le tableau) */
.tier-net{ margin-top:20px; background:var(--forest); color:var(--paper); display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:center; padding:40px; }
.tier-net .tag{ font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--sage-hi); }
.tier-net h3{ font-family:var(--exp); font-weight:600; font-size:clamp(1.6rem,3vw,2.2rem); letter-spacing:-0.02em; margin-top:14px; }
.tier-net > div > p{ margin-top:14px; font-size:15px; color:color-mix(in srgb,var(--paper) 78%,transparent); max-width:52ch; }
.tier-net__points{ margin-top:18px; display:grid; grid-template-columns:1fr 1fr; gap:8px 28px; }
.tier-net__points span{ font-size:13.5px; color:color-mix(in srgb,var(--paper) 84%,transparent); position:relative; padding-left:18px; }
.tier-net__points span::before{ content:'✦'; position:absolute; left:0; color:var(--sage-hi); font-size:0.85em; }
.tier-net__cta{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.tier-net__price{ font-family:var(--exp); font-weight:600; font-size:26px; }
.tier-net__cta small{ font-family:var(--mono); font-size:11px; color:var(--muted-2); letter-spacing:0.06em; }
@media(max-width:820px){ .tier-net{ grid-template-columns:1fr; gap:24px; padding:32px; } .tier-net__points{ grid-template-columns:1fr; } }

/* Options à la carte */
.addons{ margin-top:56px; }
.addons__head{ text-align:center; margin-bottom:36px; }
.addons__head h3{ font-family:var(--exp); font-weight:600; font-size:clamp(1.6rem,3vw,2.2rem); letter-spacing:-0.02em; }
.addons__head p{ margin-top:12px; font-size:15px; color:var(--muted); }
.addons__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.addon{ background:var(--paper); padding:26px 24px; display:flex; flex-direction:column; gap:6px; }
.addon strong{ font-family:var(--exp); font-weight:600; font-size:16px; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.addon span{ font-size:13.5px; color:var(--ink-soft); line-height:1.5; }
.addon em{ margin-top:auto; padding-top:8px; font-style:normal; font-family:var(--mono); font-size:12px; letter-spacing:0.04em; color:var(--sage); }
.addon__flag{ font-family:var(--mono); font-size:9.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--paper); background:var(--sage); padding:2px 8px; border-radius:2px; white-space:nowrap; }
.pricing__ent{ margin-top:20px; border:1px solid var(--line); padding:26px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.pricing__ent h4{ font-family:var(--exp); font-weight:600; font-size:20px; }
.pricing__ent p{ font-size:14px; color:var(--muted); margin-top:5px; max-width:52ch; }
.pricing__note{ margin-top:22px; text-align:center; font-size:12.5px; color:var(--muted); }
@media(max-width:900px){ .addons__grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .addons__grid{ grid-template-columns:1fr; } }
@media(max-width:820px){
  .ptable, .ptable thead, .ptable tbody, .ptable th, .ptable td, .ptable tr{ display:block; }
  .ptable thead{ display:grid; grid-template-columns:1fr 1fr 1fr; }
  .ptable tbody th{ background:var(--paper-2); margin-top:8px; }
  .ptable tbody td{ border-left:none; display:flex; justify-content:space-between; }
  .ptable tbody td::before{ content:attr(data-plan); font-family:var(--mono); font-size:11px; color:var(--muted); }
}

/* ============================================================ FAQ */
.faq{ display:grid; grid-template-columns:0.7fr 1.3fr; gap:56px; align-items:start; }
.faq__head{ position:sticky; top:100px; }
.faq__head h2{ font-family:var(--exp); font-weight:600; font-size:clamp(2rem,3.4vw,2.8rem); letter-spacing:-0.02em; margin-top:14px; }
details{ border-top:1px solid var(--line); padding:22px 4px; }
details:last-of-type{ border-bottom:1px solid var(--line); }
summary{ list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:20px; font-family:var(--exp); font-weight:500; font-size:17px; color:var(--ink); }
summary::-webkit-details-marker{ display:none; }
.faq__ic{ flex-shrink:0; width:24px; height:24px; border:1px solid var(--line); display:grid; place-items:center; transition:transform .22s, background .2s, color .2s; color:var(--sage); }
details[open] .faq__ic{ transform:rotate(45deg); background:var(--forest); color:var(--paper); border-color:var(--forest); }
details p{ margin-top:14px; color:var(--ink-soft); font-size:15px; max-width:62ch; }
@media(max-width:820px){ .faq{ grid-template-columns:1fr; gap:20px; } .faq__head{ position:static; } }

/* ============================================================ FINAL */
.final{ background:var(--forest); color:var(--paper); text-align:center; }
.final h2{ font-family:var(--exp); font-weight:600; font-size:clamp(2.6rem,5.4vw,4.8rem); letter-spacing:-0.035em; line-height:0.96; }
.final h2 .ital{ color:var(--sage-hi); }
.final p{ margin:24px auto 0; max-width:44ch; font-size:19px; color:color-mix(in srgb,var(--paper) 80%,transparent); }
.final__actions{ margin-top:36px; display:flex; gap:13px; justify-content:center; flex-wrap:wrap; }
.final small{ display:block; margin-top:20px; font-family:var(--mono); font-size:11px; letter-spacing:0.1em; color:var(--muted-2); }

/* ============================================================ FOOTER */
.foot{ border-top:1px solid var(--line); padding:64px 0 40px; }
.foot__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; }
.foot__brand p{ margin-top:16px; font-size:14px; color:var(--muted); max-width:32ch; }
.foot h5{ font-family:var(--mono); font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); margin-bottom:16px; }
.foot__grid a{ display:block; font-size:14px; color:var(--ink-soft); padding:6px 0; transition:color .15s; }
.foot__grid a:hover{ color:var(--sage); }
.foot__bar{ margin-top:52px; padding-top:24px; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-family:var(--mono); font-size:12px; color:var(--muted); flex-wrap:wrap; gap:12px; }
@media(max-width:820px){ .foot__grid{ grid-template-columns:1fr 1fr; } }

/* ============================================================ REVEAL (fail-safe : gate .js → visible sans JS) */
html.js .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1); }
html.js .reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){ html.js .reveal{ opacity:1; transform:none; transition:none; } html{ scroll-behavior:auto; } }
@media(max-width:900px){ .section{ padding:84px 0; } }

/* Scrollbar & sélection */
::selection{ background:color-mix(in srgb,var(--sage) 30%,transparent); color:var(--forest); }
