/* ════════════════════════════════════════════════════════════════════════
   VIBRASION — DESIGN SYSTEM
   Clash Display · Newsreader Italic · Instrument Sans
   Encre profonde · Crème · Cuivre brûlé
   ════════════════════════════════════════════════════════════════════════ */

/* ── FONTS ──────────────────────────────────────────────────────────── */
@font-face {
  font-family:'Clash Display';
  src:url('../../fonts/ClashDisplay-Regular.woff2') format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face {
  font-family:'Clash Display';
  src:url('../../fonts/ClashDisplay-Medium.woff2') format('woff2');
  font-weight:500;
  font-style:normal;
  font-display:swap;
}
@font-face {
  font-family:'Clash Display';
  src:url('../../fonts/ClashDisplay-Semibold.woff2') format('woff2');
  font-weight:600;
  font-style:normal;
  font-display:swap;
}
@font-face {
  font-family:'Newsreader';
  src:url('../../fonts/Newsreader-Italic.woff2') format('woff2');
  font-weight:100 900;
  font-style:italic;
  font-display:swap;
}
@font-face {
  font-family:'Instrument Sans';
  src:url('../../fonts/InstrumentSans.woff2') format('woff2');
  font-weight:400 700;
  font-style:normal;
  font-display:swap;
}

/* ── TOKENS ──────────────────────────────────────────────────────────── */
:root {
  --ink:        #05070D;
  --ink-2:      #0F1722;

  --cream:      #F5F3EF;
  --cream-2:    #EAE7E1;

  --pierre:     #8A9099;
  --pierre-2:   #4A525E;

  --brule:      #B8865B;
  --brule-deep: #8C5E3A;
  --brule-soft: #D9A878;

  --line:       rgba(245,243,239,.10);
  --line-ink:   rgba(5,7,13,.12);

  --d: 'Clash Display', 'Instrument Sans', sans-serif;    /* display               */
  --t: 'Clash Display', 'Instrument Sans', sans-serif;    /* tags · boutons        */
  --b: 'Instrument Sans', system-ui, sans-serif;          /* texte                 */
  --q: 'Newsreader', Georgia, serif;                      /* citations · accents   */

  --nav-h: 64px;
  --pad: clamp(24px,5vw,80px);
  --ease: cubic-bezier(.16,1,.3,1);
}

/* ── RESET ───────────────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:var(--b);
  font-size:16px;
  line-height:1.65;
  background:var(--ink);
  color:var(--cream);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a { color:inherit; text-decoration:none; }
ul,ol { list-style:none; }
button { cursor:pointer; border:none; background:none; font-family:inherit; }
img,video { display:block; max-width:100%; }
::selection { background:rgba(184,134,91,.35); }
:focus-visible { outline:2px solid var(--brule); outline-offset:3px; border-radius:2px; }

.skip {
  position:fixed;
  top:-100px; left:16px;
  z-index:1000;
  padding:12px 20px;
  border-radius:8px;
  background:var(--cream);
  color:var(--ink);
  font-size:13px;
  transition:top .3s;
}
.skip:focus { top:16px; }

/* grain */
body::after {
  content:'';
  position:fixed; inset:0;
  z-index:9998;
  pointer-events:none;
  opacity:.022;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px;
}

/* ── VOILE — transitions de page ────────────────────────────────────── */
.veil {
  position:fixed; inset:0;
  z-index:9999;
  background:var(--ink);
  pointer-events:none;
  opacity:0;
  transition:opacity .38s ease;
  animation:veilOut .75s ease .05s both;
}
html.leave .veil { opacity:1; }
@keyframes veilOut { from { opacity:1; } to { opacity:0; } }

/* ── REVEAL ──────────────────────────────────────────────────────────── */
.rv {
  opacity:0;
  transform:translateY(26px) scale(.985);
  transition:opacity 1.2s var(--ease), transform 1.2s var(--ease);
}
.rv.in { opacity:1; transform:none; }
.d1 { transition-delay:.1s; }
.d2 { transition-delay:.2s; }
.d3 { transition-delay:.3s; }
.d4 { transition-delay:.4s; }

/* réveil mot à mot */
[data-ws] .w {
  display:inline-block;
  overflow:hidden;
  vertical-align:bottom;
  padding-bottom:.12em;
  margin-bottom:-.12em;
}
[data-ws] .wi {
  display:inline-block;
  transform:translateY(112%);
  transition:transform 1.05s var(--ease);
  will-change:transform;
}
[data-ws].ws-in .wi { transform:none; }

.wrap {
  width:100%;
  max-width:1440px;
  margin:0 auto;
  padding:0 var(--pad);
}

/* ── BOUTONS ─────────────────────────────────────────────────────────── */
.pill {
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--t);
  font-weight:500;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:16px 32px;
  border-radius:999px;
  transition:background .45s var(--ease), color .45s var(--ease),
             border-color .45s var(--ease), transform .45s var(--ease),
             box-shadow .45s var(--ease);
}
.pill-cream { background:var(--cream); color:var(--ink); }
.pill-cream:hover { background:var(--brule-soft); transform:translateY(-2px); }
.pill-ink { background:var(--ink); color:var(--cream); }
.pill-ink:hover { background:var(--brule-deep); transform:translateY(-2px); }
/* liquid glass */
.pill-glass {
  position:relative;
  color:var(--cream);
  background:rgba(245,243,239,.10);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
  border:1px solid rgba(245,243,239,.20);
  box-shadow:
    inset  2px  2px 1px -1.5px rgba(255,255,255,.16),
    inset -2px -2px 1px -1.5px rgba(255,255,255,.10),
    inset  0 0 8px 4px rgba(255,255,255,.03),
    0 8px 28px rgba(5,7,13,.25);
}
.pill-glass:hover {
  background:var(--cream);
  color:var(--ink);
  border-color:var(--cream);
  transform:translateY(-2px);
}

/* cercle-flèche */
.circ {
  width:58px; height:58px;
  border-radius:50%;
  border:1px solid currentColor;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  flex-shrink:0;
  transition:background .45s var(--ease), color .45s var(--ease),
             border-color .45s var(--ease), transform .45s var(--ease);
}
a:hover .circ, .circ:hover {
  background:var(--brule);
  border-color:var(--brule);
  color:var(--ink);
  transform:translateX(4px);
}

/* ── NAV — barre de verre flottante ──────────────────────────────────── */
.nav {
  position:fixed;
  top:14px; left:0; right:0;
  z-index:300;
  transition:transform .55s var(--ease);
  padding:0 clamp(14px,2.5vw,32px);
  display:flex;
  justify-content:center;
}
.nav-shell {
  width:100%;
  max-width:1280px;
  height:var(--nav-h);
  display:flex;
  align-items:center;
  gap:36px;
  padding:0 10px 0 30px;
  border-radius:999px;
  background:rgba(8,11,18,.42);
  backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  border:1px solid rgba(245,243,239,.10);
  box-shadow:
    inset 1.5px 1.5px 1px -1px rgba(255,255,255,.10),
    inset -1.5px -1.5px 1px -1px rgba(255,255,255,.06),
    0 12px 40px rgba(5,7,13,.30);
  transition:background .5s var(--ease);
}
.nav.on .nav-shell { background:rgba(5,7,13,.72); }
.nav-logo {
  font-family:var(--t);
  font-weight:600;
  font-size:13px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--cream);
  flex-shrink:0;
}
.nav-logo em { font-style:normal; color:var(--brule); }
.nav-links { display:flex; align-items:center; gap:30px; margin-left:auto; }
.nav-links a {
  font-family:var(--b);
  font-size:13px;
  font-weight:500;
  color:rgba(245,243,239,.62);
  position:relative;
  transition:color .35s;
}
.nav-links a::after {
  content:'';
  position:absolute; bottom:-5px; left:0;
  width:100%; height:1px;
  background:var(--brule);
  transform:scaleX(0); transform-origin:right center;
  transition:transform .45s var(--ease);
}
.nav-links a:hover { color:var(--cream); }
.nav-links a.active { color:var(--cream); }
.nav-links a.active::after { transform:scaleX(1); }
.nav .pill { padding:12px 26px; font-size:11px; flex-shrink:0; }
.nav-burger {
  display:none;
  flex-direction:column;
  gap:5px;
  padding:8px 14px;
  margin-left:auto;
}
.nav-burger span {
  display:block;
  width:24px; height:2px;
  background:var(--cream);
  transition:all .3s;
}
.mnav {
  display:none;
  position:fixed; inset:0;
  background:rgba(5,7,13,.96);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  z-index:299;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:30px;
}
.mnav.open { display:flex; }
.mnav a {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(1.6rem,6.5vw,2.8rem);
  color:var(--cream);
  transition:color .3s;
}
.mnav a:hover { color:var(--brule-soft); }
.mnav .pill { font-size:12px; margin-top:14px; }

/* ── HERO ACCUEIL — vidéo ─────────────────────────────────────────────── */
.hero {
  position:relative;
  height:100dvh;
  min-height:640px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  background:var(--ink);
}
.hero-video {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
}
.hero-ov {
  position:absolute; inset:0;
  background:
    linear-gradient(to right, rgba(5,7,13,.72) 0%, rgba(5,7,13,.24) 42%, transparent 68%),
    radial-gradient(ellipse 65% 55% at 60% 32%, rgba(140,94,58,.09) 0%, transparent 60%),
    linear-gradient(to bottom,
      rgba(5,7,13,.42) 0%,
      rgba(5,7,13,.10) 38%,
      rgba(5,7,13,.34) 70%,
      rgba(5,7,13,.84) 100%);
  pointer-events:none;
}
.hero-inner {
  position:relative;
  z-index:2;
  padding-bottom:clamp(72px,9vh,120px);
}
.hero-eyebrow {
  display:inline-flex;
  align-items:center;
  gap:14px;
  font-family:var(--t);
  font-weight:500;
  font-size:11px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:rgba(245,243,239,.55);
  margin-bottom:clamp(24px,3vw,40px);
}
.hero-eyebrow::before {
  content:'';
  width:36px; height:1px;
  background:var(--brule);
}
.hero-h1 {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(44px,6.8vw,104px);
  line-height:1.05;
  letter-spacing:-.01em;
  color:var(--cream);
  max-width:16ch;
  margin-bottom:clamp(32px,4vw,52px);
}
.hero-h1 em {
  font-family:var(--q);
  font-style:italic;
  font-weight:400;
  font-variation-settings:"opsz" 60;
  font-size:1.06em;
  color:var(--brule-soft);
  letter-spacing:0;
}
.hero-row {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:40px;
}
.hero-ctas {
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.hero-go {
  font-family:var(--t);
  font-weight:500;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(245,243,239,.65);
  display:inline-flex;
  align-items:center;
  gap:10px;
  transition:color .4s;
}
.hero-go:hover { color:var(--cream); }
.hero-sub {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 22;
  font-size:clamp(16px,1.8vw,21px);
  line-height:1.6;
  color:rgba(245,243,239,.70);
  max-width:320px;
  text-align:right;
}
.hero-meta-row {
  position:absolute;
  bottom:clamp(20px,3vh,32px);
  left:0; right:0;
  display:flex;
  justify-content:space-between;
  padding:0 var(--pad);
  z-index:2;
  pointer-events:none;
}
.hero-meta {
  font-family:var(--b);
  font-size:11px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(245,243,239,.30);
}
@keyframes rise { from { opacity:0; transform:translateY(34px); } to { opacity:1; transform:none; } }
.hero-eyebrow  { animation:rise 1.4s var(--ease) .25s both; }
.hero-row      { animation:rise 1.4s var(--ease) .8s both; }
.hero-meta-row { animation:rise 1.4s var(--ease) 1.05s both; }

/* ── PHERO — hero des sous-pages, onde vibratoire ────────────────────── */
.phero {
  position:relative;
  min-height:82vh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  background:var(--ink);
  padding-top:calc(var(--nav-h) + 50px);
}
.phero--compact { min-height:58vh; }
.phero .wave {
  position:absolute; inset:0;
  width:100%; height:100%;
  opacity:0;
  transition:opacity 2.2s ease;
}
.phero .wave.on { opacity:1; }
.phero::before {
  content:'';
  position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 60% at 70% 20%, rgba(140,94,58,.10) 0%, transparent 60%);
  pointer-events:none;
}
.phero-inner {
  position:relative;
  z-index:2;
  padding-bottom:clamp(56px,8vh,110px);
  pointer-events:none;
}
.phero-inner a, .phero-inner button { pointer-events:auto; }
.phero .hero-eyebrow { animation:rise 1.4s var(--ease) .2s both; }
.phero-h1 {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(40px,5.8vw,92px);
  line-height:1.05;
  letter-spacing:-.012em;
  color:var(--cream);
  max-width:18ch;
  margin-bottom:clamp(24px,3vw,40px);
}
.phero-h1 em {
  font-family:var(--q);
  font-style:italic;
  font-weight:400;
  font-variation-settings:"opsz" 60;
  font-size:1.06em;
  color:var(--brule-soft);
  letter-spacing:0;
}
.phero-sub {
  font-family:var(--b);
  font-size:clamp(15px,1.6vw,17px);
  line-height:1.8;
  color:rgba(245,243,239,.62);
  max-width:520px;
  margin-bottom:clamp(28px,3.5vw,44px);
  animation:rise 1.4s var(--ease) .75s both;
}
.phero-ctas {
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  animation:rise 1.4s var(--ease) .9s both;
}
.phero .hero-meta-row { animation:rise 1.4s var(--ease) 1.1s both; }

/* ── SECTIONS GÉNÉRIQUES ─────────────────────────────────────────────── */
.sec { padding:clamp(100px,13vw,200px) 0; position:relative; overflow:hidden; }
.sec--tight { padding:clamp(70px,9vw,130px) 0; }
.sec--cream, .sec--cream2 {
  --fg:var(--ink);
  --fg-soft:rgba(5,7,13,.62);
  --fg-mute:rgba(5,7,13,.45);
  --ln:var(--line-ink);
  --acc:var(--brule-deep);
  color:var(--ink);
}
.sec--cream  { background:var(--cream); }
.sec--cream2 { background:var(--cream-2); }
.sec--ink, .sec--ink2 {
  --fg:var(--cream);
  --fg-soft:rgba(245,243,239,.66);
  --fg-mute:rgba(245,243,239,.42);
  --ln:var(--line);
  --acc:var(--brule-soft);
  color:var(--cream);
}
.sec--ink  { background:var(--ink); }
.sec--ink2 { background:var(--ink-2); }

/* typographie générique */
.t-tag {
  display:block;
  font-family:var(--t);
  font-weight:600;
  font-size:12px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--acc, var(--brule));
  margin-bottom:clamp(16px,2vw,26px);
}
.t-tag--line {
  display:inline-flex;
  align-items:center;
  gap:14px;
}
.t-tag--line::before {
  content:'';
  width:36px; height:1px;
  background:var(--brule);
}
.t-h2 {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(34px,4.8vw,80px);
  line-height:1.04;
  letter-spacing:-.015em;
  color:var(--fg, currentColor);
}
.t-h2 em, .t-h3 em {
  font-family:var(--q);
  font-style:italic;
  font-weight:400;
  font-variation-settings:"opsz" 60;
  color:var(--acc, var(--brule-soft));
  letter-spacing:0;
}
.t-h3 {
  font-family:var(--d);
  font-weight:500;
  font-size:clamp(22px,2.6vw,38px);
  line-height:1.08;
  letter-spacing:-.012em;
  color:var(--fg, currentColor);
}
.t-lead {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 24;
  font-size:clamp(17px,2vw,23px);
  line-height:1.65;
  color:var(--fg-soft, inherit);
}
.t-body {
  font-family:var(--b);
  font-size:15px;
  line-height:1.85;
  color:var(--fg-soft, inherit);
}
.t-note {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 18;
  font-size:15px;
  color:var(--fg-mute, inherit);
}
.t-quote {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 36;
  font-size:clamp(24px,3.4vw,46px);
  line-height:1.42;
  color:var(--fg, currentColor);
}
.t-quote .accent { color:var(--acc, var(--brule-soft)); }
.t-cite {
  font-family:var(--b);
  font-size:13px;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--fg-mute, var(--pierre));
  font-style:normal;
}

/* listes tirets */
.dash-list { display:flex; flex-direction:column; gap:10px; }
.dash-list li {
  position:relative;
  padding-left:30px;
  font-size:15px;
  line-height:1.7;
  color:var(--fg-soft, inherit);
}
.dash-list li::before {
  content:'';
  position:absolute;
  left:0; top:.78em;
  width:16px; height:1px;
  background:var(--brule);
}

/* grilles */
.cols {
  display:grid;
  grid-template-columns:1fr 1.45fr;
  gap:clamp(40px,6vw,110px);
  align-items:start;
}
.cols--even { grid-template-columns:1fr 1fr; }
.cols-3 {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(18px,2.4vw,32px);
}
.sticky-col { position:sticky; top:calc(var(--nav-h) + 50px); }

/* ── CARTES ──────────────────────────────────────────────────────────── */
.card {
  position:relative;
  border-radius:14px;
  padding:clamp(30px,3.6vw,52px);
  border:1px solid var(--ln, var(--line));
  display:flex;
  flex-direction:column;
  gap:clamp(16px,2vw,24px);
  transition:border-color .5s var(--ease), background .5s var(--ease),
             transform .6s var(--ease), box-shadow .6s var(--ease);
}
.card:hover { border-color:rgba(184,134,91,.45); }
.sec--ink .card:hover, .sec--ink2 .card:hover { background:rgba(15,23,34,.5); }
.sec--cream .card:hover, .sec--cream2 .card:hover { background:rgba(5,7,13,.025); }
.card--lift:hover {
  transform:translateY(-6px);
  box-shadow:0 30px 60px rgba(5,7,13,.16);
}
.card--brule {
  background:linear-gradient(135deg, rgba(184,134,91,.16), rgba(140,94,58,.06));
  border-color:rgba(184,134,91,.35);
}
.card--brule:hover { border-color:rgba(184,134,91,.6); }
.card-label {
  font-family:var(--t);
  font-weight:600;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--acc, var(--brule));
}
.card-cta {
  margin-top:auto;
  padding-top:clamp(14px,1.8vw,22px);
  display:inline-flex;
  align-items:center;
  gap:16px;
  font-family:var(--t);
  font-weight:500;
  font-size:13px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--fg, currentColor);
}
.card-cta .circ { width:48px; height:48px; font-size:16px; }

/* boîte verre — offre, notes */
.gbox {
  display:inline-flex;
  flex-direction:column;
  gap:6px;
  padding:clamp(20px,2.6vw,30px) clamp(26px,3.4vw,40px);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(184,134,91,.18), rgba(140,94,58,.07));
  border:1px solid rgba(184,134,91,.4);
}
.gbox-t {
  font-family:var(--d);
  font-weight:500;
  font-size:clamp(19px,2.2vw,26px);
  color:var(--fg, currentColor);
}
.gbox-s {
  font-family:var(--b);
  font-size:13px;
  color:var(--fg-mute, inherit);
}

/* rangées éditoriales numérotées (réutilisable) */
.erow {
  position:relative;
  display:grid;
  grid-template-columns:clamp(60px,8vw,120px) 1fr 1.3fr;
  gap:clamp(20px,3.5vw,64px);
  align-items:start;
  padding:clamp(30px,4vw,50px) 0;
  border-top:1px solid var(--ln, var(--line));
  transition:background .5s var(--ease);
}
.erow:last-of-type { border-bottom:1px solid var(--ln, var(--line)); }
.sec--cream .erow:hover, .sec--cream2 .erow:hover { background:rgba(5,7,13,.02); }
.sec--ink .erow:hover, .sec--ink2 .erow:hover { background:rgba(245,243,239,.02); }
.erow-num {
  font-family:var(--t);
  font-weight:600;
  font-size:clamp(20px,2.2vw,30px);
  color:var(--acc, var(--brule));
}
.erow-h {
  font-family:var(--d);
  font-weight:500;
  font-size:clamp(21px,2.5vw,36px);
  line-height:1.08;
  letter-spacing:-.012em;
  color:var(--fg, currentColor);
}
.erow-p {
  font-family:var(--b);
  font-size:15px;
  line-height:1.8;
  color:var(--fg-soft, inherit);
  max-width:480px;
}

/* prix */
.price {
  font-family:var(--d);
  font-weight:500;
  font-size:clamp(44px,5vw,76px);
  line-height:1;
  letter-spacing:-.015em;
  color:var(--fg, currentColor);
}
.price small {
  font-size:.45em;
  color:var(--fg-mute, inherit);
  font-weight:500;
}
.price-detail {
  font-family:var(--b);
  font-size:12px;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--fg-mute, inherit);
}

/* mots fantômes */
.ghost {
  position:absolute;
  font-family:var(--d);
  font-weight:400;
  letter-spacing:-.02em;
  color:rgba(5,7,13,.045);
  user-select:none;
  pointer-events:none;
  white-space:nowrap;
  line-height:1;
  will-change:transform;
}
.sec--ink .ghost, .sec--ink2 .ghost { color:rgba(245,243,239,.028); }

/* ════════════════════════════════════════════════════════════════════════
   ACCUEIL — sections spécifiques
   ════════════════════════════════════════════════════════════════════════ */

/* ── LE PRINCIPE — clair ─────────────────────────────────────────────── */
.principe {
  background:var(--cream);
  color:var(--ink);
  padding:clamp(110px,15vw,220px) 0;
  position:relative;
}
.sec-tag {
  display:block;
  font-family:var(--t);
  font-weight:600;
  font-size:13px;
  letter-spacing:.3em;
  text-transform:uppercase;
  text-align:center;
  color:var(--ink);
  margin-bottom:clamp(16px,2vw,24px);
}
.sec-tag-sub {
  display:block;
  text-align:center;
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 18;
  font-size:15px;
  color:rgba(5,7,13,.45);
  margin-bottom:clamp(64px,8vw,110px);
}
.constat {
  display:grid;
  grid-template-columns:1fr 1px 1fr;
  gap:clamp(28px,4vw,64px);
  max-width:980px;
  margin:0 auto clamp(90px,12vw,170px);
  align-items:center;
}
.constat-sep { background:var(--line-ink); height:100%; min-height:80px; }
.constat-col {
  font-family:var(--b);
  font-size:clamp(15px,1.6vw,18px);
  line-height:2.0;
  color:rgba(5,7,13,.72);
}
.constat-col:first-child { text-align:right; }
.principe-h2 {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(34px,5.4vw,92px);
  line-height:1.06;
  letter-spacing:-.015em;
  color:var(--ink);
  text-align:center;
  max-width:1100px;
  margin:0 auto clamp(80px,10vw,140px);
}
.principe-h2 em {
  font-family:var(--q);
  font-style:italic;
  font-weight:400;
  font-variation-settings:"opsz" 60;
  color:var(--brule-deep);
  letter-spacing:0;
}
.principe-details {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  max-width:1100px;
  margin:0 auto;
  border-top:1px solid var(--line-ink);
}
.principe-detail {
  padding:clamp(24px,3vw,38px) clamp(14px,2vw,28px) 0;
  text-align:center;
}
.principe-detail-num {
  display:block;
  font-family:var(--t);
  font-weight:600;
  font-size:13px;
  letter-spacing:.08em;
  color:var(--brule-deep);
  margin-bottom:10px;
}
.principe-detail-t {
  font-family:var(--b);
  font-size:14.5px;
  font-weight:500;
  color:rgba(5,7,13,.78);
}

/* ── INTERLUDE — photo pleine largeur ────────────────────────────────── */
.interlude {
  position:relative;
  height:clamp(420px,78vh,800px);
  overflow:hidden;
}
.interlude img {
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 40%;
}
.interlude::after {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(5,7,13,.18) 0%, transparent 30%, rgba(5,7,13,.30) 100%);
  pointer-events:none;
}
.interlude-cap {
  position:absolute;
  bottom:clamp(22px,3vw,38px);
  left:var(--pad);
  z-index:2;
  display:inline-flex;
  flex-direction:column;
  gap:6px;
  padding:clamp(16px,2vw,22px) clamp(22px,2.8vw,32px);
  border-radius:12px;
  background:rgba(8,11,18,.38);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border:1px solid rgba(245,243,239,.12);
  box-shadow:
    inset 1.5px 1.5px 1px -1px rgba(255,255,255,.10),
    inset -1.5px -1.5px 1px -1px rgba(255,255,255,.05);
}
.interlude-cap-tag {
  font-family:var(--t);
  font-weight:600;
  font-size:10px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--brule-soft);
}
.interlude-cap-t {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 22;
  font-size:clamp(16px,1.8vw,21px);
  color:var(--cream);
}

/* ── L'EXPÉRIENCE — clair ────────────────────────────────────────────── */
.etapes {
  background:var(--cream-2);
  color:var(--ink);
  padding:clamp(110px,15vw,200px) 0 0;
  position:relative;
  overflow:hidden;
}
.ghost-etapes {
  top:clamp(40px,6vw,90px);
  left:50%;
  transform:translateX(-50%);
  font-size:clamp(110px,20vw,310px);
}
.etapes-head {
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:40px;
  margin-bottom:clamp(70px,9vw,120px);
}
.etapes-h2 {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(36px,5vw,84px);
  line-height:1.0;
  letter-spacing:-.015em;
  color:var(--ink);
}
.etapes-head-note {
  font-family:var(--b);
  font-size:14.5px;
  line-height:1.75;
  color:rgba(5,7,13,.55);
  max-width:300px;
  padding-bottom:8px;
}
.etape-row {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:clamp(70px,9vw,140px) 1fr 1.2fr auto;
  gap:clamp(20px,3.5vw,64px);
  align-items:center;
  padding:clamp(34px,4.5vw,56px) 0;
  border-top:1px solid var(--line-ink);
  transition:background .5s var(--ease);
}
.etape-row:hover { background:rgba(5,7,13,.025); }
.etape-row:last-of-type { border-bottom:1px solid var(--line-ink); }
.etape-num {
  font-family:var(--t);
  font-weight:600;
  font-size:clamp(22px,2.4vw,34px);
  color:var(--brule-deep);
}
.etape-h {
  font-family:var(--d);
  font-weight:500;
  font-size:clamp(24px,3vw,46px);
  line-height:1.04;
  letter-spacing:-.012em;
  color:var(--ink);
}
.etape-p {
  font-family:var(--b);
  font-size:15px;
  line-height:1.8;
  color:rgba(5,7,13,.60);
  max-width:430px;
}
.etape-row .circ { color:var(--ink); opacity:.5; transition:opacity .4s; }
.etape-row:hover .circ { opacity:1; }

/* corps : rangées + photo détail machine */
.etapes-body {
  display:grid;
  grid-template-columns:1.55fr 1fr;
  gap:clamp(36px,5.5vw,90px);
  align-items:start;
}
.etapes-side {
  position:sticky;
  top:110px;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 40px 90px rgba(5,7,13,.22);
}
.etapes-side img {
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.etapes-side:hover img { transform:scale(1.04); }
.etapes-side-cap {
  position:absolute;
  bottom:14px; left:14px;
  font-family:var(--t);
  font-weight:600;
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(245,243,239,.85);
  padding:10px 18px;
  border-radius:999px;
  background:rgba(8,11,18,.42);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(245,243,239,.14);
}

.etapes-video {
  position:relative;
  z-index:2;
  margin-top:clamp(80px,10vw,140px);
  margin-bottom:calc(-1 * clamp(120px,16vw,240px));
}
.video-frame {
  position:relative;
  border-radius:10px;
  overflow:hidden;
  height:clamp(380px,60vh,720px);
  box-shadow:0 60px 120px rgba(5,7,13,.35);
}
.video-frame video {
  width:100%; height:100%;
  object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.video-frame:hover video { transform:scale(1.03); }
.video-frame::after {
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(5,7,13,.5) 0%, transparent 38%);
  pointer-events:none;
}
.video-cap {
  position:absolute;
  bottom:clamp(18px,2.6vw,30px);
  left:clamp(18px,2.6vw,30px);
  right:clamp(18px,2.6vw,30px);
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:clamp(16px,2vw,24px) clamp(20px,2.6vw,32px);
  border-radius:12px;
  background:rgba(8,11,18,.35);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border:1px solid rgba(245,243,239,.12);
  box-shadow:
    inset 1.5px 1.5px 1px -1px rgba(255,255,255,.10),
    inset -1.5px -1.5px 1px -1px rgba(255,255,255,.05);
}
.video-cap-t {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 24;
  font-size:clamp(16px,1.8vw,22px);
  line-height:1.45;
  color:var(--cream);
  max-width:30ch;
}
.video-cap-m {
  font-family:var(--b);
  font-size:11px;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(245,243,239,.55);
  white-space:nowrap;
}

/* ── TÉMOIGNAGES — sombre ────────────────────────────────────────────── */
.temoignages {
  background:var(--ink);
  padding:calc(clamp(120px,16vw,240px) + clamp(70px,9vw,120px)) 0 clamp(110px,14vw,190px);
  position:relative;
  overflow:hidden;
}
.ghost-temo {
  top:clamp(160px,22vw,330px);
  right:calc(-1 * clamp(20px,3vw,60px));
  font-size:clamp(95px,16vw,250px);
  color:rgba(245,243,239,.028);
}
.temo-big {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:clamp(36px,5.5vw,90px);
  align-items:center;
  margin-bottom:clamp(80px,10vw,140px);
}
.temo-big-photo {
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 40px 90px rgba(0,0,0,.4);
}
.temo-big-photo img {
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform 1.4s var(--ease);
}
.temo-big-photo:hover img { transform:scale(1.04); }
.temo-big-q {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 36;
  font-size:clamp(26px,4vw,56px);
  line-height:1.38;
  color:var(--cream);
  margin-bottom:clamp(26px,3.4vw,40px);
}
.temo-big-q .accent { color:var(--brule-soft); }
.temo-cite {
  font-family:var(--b);
  font-size:13px;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--pierre);
  font-style:normal;
}
.temo-grid {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(18px,2.4vw,32px);
}
.temo-card {
  border:1px solid var(--line);
  border-radius:10px;
  padding:clamp(32px,4vw,52px);
  display:flex;
  flex-direction:column;
  gap:clamp(20px,2.6vw,30px);
  transition:border-color .5s var(--ease), background .5s var(--ease);
}
.temo-card:hover { border-color:rgba(184,134,91,.4); background:rgba(15,23,34,.5); }
.temo-q {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 20;
  font-size:clamp(16px,1.8vw,20px);
  line-height:1.72;
  color:rgba(245,243,239,.78);
}

/* marquee */
.retours {
  position:relative;
  margin-top:clamp(80px,10vw,130px);
  padding:clamp(26px,3.2vw,38px) 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.retours-track {
  display:flex;
  gap:clamp(60px,8vw,120px);
  width:max-content;
  animation:marq 44s linear infinite;
}
.retours:hover .retours-track { animation-play-state:paused; }
.retours-item {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 24;
  font-size:clamp(17px,2vw,24px);
  color:rgba(245,243,239,.42);
  white-space:nowrap;
  display:flex;
  align-items:center;
  gap:clamp(60px,8vw,120px);
}
.retours-item::after { content:'•'; color:var(--brule); font-size:.55em; font-style:normal; }
@keyframes marq { to { transform:translateX(-50%); } }

/* ── POUR QUI — sombre ───────────────────────────────────────────────── */
.pourqui {
  background:var(--ink);
  padding-bottom:clamp(110px,14vw,190px);
}
.pourqui-h2 {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(36px,5vw,84px);
  line-height:1.0;
  letter-spacing:-.015em;
  color:var(--cream);
  margin-bottom:clamp(56px,7vw,90px);
}
.pourqui-h2 em {
  font-family:var(--q);
  font-style:italic;
  font-weight:400;
  color:var(--brule-soft);
  letter-spacing:0;
}
.pourqui-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(24px,3.5vw,52px);
  margin-bottom:clamp(56px,7vw,90px);
}
.pq-item {
  padding-top:24px;
  border-top:1px solid var(--line);
  transition:border-color .5s var(--ease);
}
.pq-item:hover { border-top-color:var(--brule); }
.pq-num {
  display:block;
  font-family:var(--t);
  font-weight:600;
  font-size:14px;
  color:var(--brule);
  margin-bottom:14px;
}
.pq-text {
  font-family:var(--b);
  font-size:15px;
  line-height:1.75;
  color:rgba(245,243,239,.78);
}
.lieux-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  padding-top:clamp(28px,3.5vw,40px);
  border-top:1px solid var(--line);
}
.lieux-body {
  font-family:var(--b);
  font-size:15px;
  color:var(--pierre);
  line-height:1.85;
  max-width:520px;
}
.lieux-body strong { color:var(--cream); font-weight:500; }
.lieux-link {
  display:inline-flex;
  align-items:center;
  gap:18px;
  font-family:var(--t);
  font-weight:500;
  font-size:13px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--cream);
}

/* ── BIFURCATION — clair ─────────────────────────────────────────────── */
.bif {
  background:var(--cream);
  color:var(--ink);
  padding:clamp(110px,14vw,190px) 0;
}
.bif-grid {
  display:grid;
  grid-template-columns:1fr 1px 1fr;
  gap:clamp(36px,5vw,80px);
  align-items:stretch;
}
.bif-sep { background:var(--line-ink); }
.bif-col {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:clamp(20px,2.6vw,30px);
}
.bif-type {
  font-family:var(--t);
  font-weight:600;
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brule-deep);
}
.bif-title {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(30px,3.8vw,58px);
  line-height:1.02;
  letter-spacing:-.015em;
  color:var(--ink);
}
.bif-desc {
  font-family:var(--b);
  font-size:15px;
  color:rgba(5,7,13,.62);
  line-height:1.85;
  max-width:440px;
}
.bif-box {
  font-family:var(--q);
  font-style:italic;
  font-variation-settings:"opsz" 16;
  font-size:15.5px;
  color:rgba(5,7,13,.66);
  line-height:1.9;
  border-left:2px solid var(--brule);
  padding-left:22px;
  max-width:440px;
}
.bif-cta {
  display:inline-flex;
  align-items:center;
  gap:18px;
  font-family:var(--t);
  font-weight:500;
  font-size:13px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--ink);
  margin-top:auto;
  padding-top:clamp(14px,1.8vw,22px);
}

/* ── CTA FINAL — vidéo pleine ────────────────────────────────────────── */
.cta-final {
  position:relative;
  padding:clamp(140px,20vw,280px) 0;
  overflow:hidden;
  background:var(--ink);
}
.cta-video {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  opacity:.5;
}
.cta-ov {
  position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 80% at 50% 50%, rgba(5,7,13,.20) 0%, rgba(5,7,13,.75) 100%);
  pointer-events:none;
}
.cta-inner {
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}
.cta-quote {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(30px,4.6vw,74px);
  line-height:1.1;
  letter-spacing:-.015em;
  color:var(--cream);
  max-width:20ch;
  margin-bottom:clamp(20px,2.6vw,32px);
}
.cta-quote em {
  font-family:var(--q);
  font-style:italic;
  font-weight:400;
  color:var(--brule-soft);
  letter-spacing:0;
}
.cta-body {
  font-family:var(--b);
  font-size:15px;
  color:rgba(245,243,239,.65);
  line-height:1.85;
  max-width:420px;
  margin-bottom:clamp(36px,4.5vw,52px);
}

/* ════════════════════════════════════════════════════════════════════════
   FAQ
   ════════════════════════════════════════════════════════════════════════ */
.somm {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:clamp(56px,7vw,90px);
}
.somm a {
  font-family:var(--t);
  font-weight:500;
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:10px 20px;
  border-radius:999px;
  border:1px solid var(--ln, var(--line-ink));
  color:var(--fg-soft, inherit);
  transition:border-color .4s var(--ease), color .4s var(--ease), background .4s var(--ease);
}
.somm a:hover {
  border-color:var(--brule);
  color:var(--fg, currentColor);
  background:rgba(184,134,91,.08);
}
.faq-list { border-bottom:1px solid var(--ln, var(--line-ink)); }
.faq-item { border-top:1px solid var(--ln, var(--line-ink)); }
.faq-item summary {
  display:grid;
  grid-template-columns:clamp(46px,6vw,90px) 1fr auto;
  gap:clamp(16px,2.6vw,40px);
  align-items:center;
  padding:clamp(26px,3.4vw,42px) 0;
  cursor:pointer;
  list-style:none;
  transition:color .4s;
}
.faq-item summary::-webkit-details-marker { display:none; }
.faq-num {
  font-family:var(--t);
  font-weight:600;
  font-size:clamp(15px,1.6vw,20px);
  color:var(--acc, var(--brule-deep));
}
.faq-q {
  font-family:var(--d);
  font-weight:500;
  font-size:clamp(19px,2.3vw,30px);
  line-height:1.2;
  letter-spacing:-.01em;
  color:var(--fg, currentColor);
}
.faq-plus {
  width:42px; height:42px;
  border-radius:50%;
  border:1px solid var(--ln, var(--line-ink));
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  font-weight:400;
  color:var(--fg-soft, inherit);
  transition:transform .55s var(--ease), background .45s var(--ease),
             color .45s var(--ease), border-color .45s var(--ease);
  flex-shrink:0;
}
.faq-item summary:hover .faq-plus {
  border-color:var(--brule);
  color:var(--fg, currentColor);
}
.faq-item[open] .faq-plus {
  transform:rotate(45deg);
  background:var(--brule);
  border-color:var(--brule);
  color:var(--ink);
}
.faq-a {
  padding:0 0 clamp(30px,4vw,52px);
  margin-left:clamp(62px,8.6vw,130px);
  max-width:680px;
}
.faq-item[open] .faq-a { animation:faqIn .7s var(--ease) both; }
@keyframes faqIn {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:none; }
}
.faq-a p {
  font-size:15px;
  line-height:1.9;
  color:var(--fg-soft, inherit);
  margin-bottom:14px;
}
.faq-a p:last-child { margin-bottom:0; }
.faq-a .dash-list { margin-bottom:16px; }
.faq-a a { color:var(--acc, var(--brule-deep)); transition:opacity .3s; }
.faq-a a:hover { opacity:.7; }
.faq-offre {
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-top:8px;
  padding:14px 22px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(184,134,91,.16), rgba(140,94,58,.06));
  border:1px solid rgba(184,134,91,.4);
  font-family:var(--b);
  font-size:13.5px;
  font-weight:500;
  color:var(--fg, currentColor);
}

/* ════════════════════════════════════════════════════════════════════════
   CONTACT
   ════════════════════════════════════════════════════════════════════════ */
.forms-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(18px,2.4vw,32px);
}
.form-card {
  border-radius:16px;
  border:1px solid var(--line-ink);
  background:rgba(5,7,13,.025);
  padding:clamp(30px,3.8vw,54px);
  transition:border-color .5s var(--ease), box-shadow .6s var(--ease);
}
.form-card:hover { border-color:rgba(140,94,58,.4); }
.form-card-label {
  display:block;
  font-family:var(--t);
  font-weight:600;
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--brule-deep);
  margin-bottom:clamp(26px,3vw,38px);
}
.form-field { margin-bottom:clamp(22px,2.6vw,30px); }
.form-label {
  display:block;
  font-family:var(--b);
  font-size:12px;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(5,7,13,.55);
  margin-bottom:8px;
}
.form-label span { color:var(--brule-deep); }
.form-input, .form-select, .form-textarea {
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid rgba(5,7,13,.25);
  border-radius:0;
  padding:10px 0 12px;
  font-family:var(--b);
  font-size:16px;
  color:var(--ink);
  transition:border-color .35s;
  appearance:none;
  -webkit-appearance:none;
}
.form-input::placeholder, .form-textarea::placeholder { color:rgba(5,7,13,.32); }
.form-input:focus, .form-select:focus, .form-textarea:focus {
  outline:none;
  border-bottom-color:var(--brule-deep);
}
.form-select {
  cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238C5E3A' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 4px center;
  padding-right:28px;
}
.form-select:invalid { color:rgba(5,7,13,.32); }
.form-textarea { min-height:96px; resize:vertical; }
.form-consent {
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:clamp(24px,3vw,34px);
  cursor:pointer;
  border-radius:8px;
}
.form-consent input {
  width:17px; height:17px;
  margin-top:3px;
  accent-color:var(--brule-deep);
  flex-shrink:0;
}
.form-consent-text {
  font-size:12.5px;
  line-height:1.7;
  color:rgba(5,7,13,.55);
}
.form-consent-text a { color:var(--brule-deep); }
.form-consent-text a:hover { opacity:.7; }
.form-note {
  font-family:var(--q);
  font-style:italic;
  font-size:13px;
  color:rgba(5,7,13,.42);
  margin-top:16px;
}

/* contact direct */
.direct-grid {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:clamp(40px,6vw,110px);
  align-items:center;
}
.direct-items {
  display:flex;
  flex-direction:column;
  gap:clamp(22px,2.8vw,32px);
}
.direct-item {
  display:flex;
  align-items:center;
  gap:20px;
}
.direct-item .circ {
  width:52px; height:52px;
  color:var(--brule-soft);
  font-size:16px;
}
.direct-item .circ svg {
  width:19px; height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.direct-label {
  font-family:var(--t);
  font-weight:600;
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--fg-mute, var(--pierre-2));
  margin-bottom:2px;
}
.direct-value {
  font-family:var(--d);
  font-weight:500;
  font-size:clamp(17px,2vw,23px);
  color:var(--fg, var(--cream));
  transition:color .3s;
}
a.direct-value:hover { color:var(--brule-soft); }

/* ════════════════════════════════════════════════════════════════════════
   PAGES LÉGALES
   ════════════════════════════════════════════════════════════════════════ */
.legal-main {
  max-width:780px;
  margin:0 auto;
  padding:0 var(--pad) clamp(80px,10vw,140px);
}
.legal-main .t-h2 { margin-bottom:24px; }
.legal-meta {
  display:block;
  font-family:var(--b);
  font-size:12px;
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(245,243,239,.35);
  padding-bottom:clamp(40px,5vw,60px);
  border-bottom:1px solid var(--line);
  margin-bottom:clamp(40px,5vw,60px);
}
.legal-main h2 {
  font-family:var(--d);
  font-weight:500;
  font-size:clamp(19px,2.2vw,26px);
  letter-spacing:-.01em;
  color:var(--cream);
  margin:clamp(40px,5vw,56px) 0 14px;
  padding-top:clamp(40px,5vw,56px);
  border-top:1px solid var(--line);
}
.legal-main h2:first-of-type { border-top:none; padding-top:0; margin-top:0; }
.legal-main p, .legal-main li {
  font-size:15px;
  color:rgba(245,243,239,.62);
  line-height:1.9;
  margin-bottom:10px;
}
.legal-main ul { padding-left:0; margin-bottom:14px; }
.legal-main ul li {
  position:relative;
  padding-left:28px;
  margin-bottom:6px;
}
.legal-main ul li::before {
  content:'';
  position:absolute;
  left:0; top:.8em;
  width:14px; height:1px;
  background:var(--brule);
}
.legal-main strong { color:var(--cream); font-weight:500; }
.legal-main a[href^="mailto"], .legal-main a[href^="tel"], .legal-main a[href^="https"] {
  color:var(--brule-soft);
  transition:opacity .25s;
}
.legal-main a[href^="mailto"]:hover, .legal-main a[href^="tel"]:hover, .legal-main a[href^="https"]:hover { opacity:.7; }

/* ════════════════════════════════════════════════════════════════════════
   FOOTER
   ════════════════════════════════════════════════════════════════════════ */
.footer {
  background:var(--ink);
  border-top:1px solid var(--line);
  padding-top:clamp(64px,8vw,100px);
  overflow:hidden;
}
.footer-top {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:clamp(40px,6vw,100px);
  padding-bottom:clamp(56px,7vw,80px);
}
.footer-brand {
  font-family:var(--t);
  font-weight:600;
  font-size:14px;
  letter-spacing:.26em;
  text-transform:uppercase;
  color:var(--cream);
}
.footer-brand em { font-style:normal; color:var(--brule); }
.footer-tagline {
  font-family:var(--q);
  font-style:italic;
  font-size:15px;
  color:var(--pierre-2);
  margin-top:12px;
}
.footer-nav-label {
  font-family:var(--t);
  font-weight:600;
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--pierre-2);
  margin-bottom:22px;
  display:block;
}
.footer-links { display:flex; flex-direction:column; gap:12px; }
.footer-link {
  font-family:var(--b);
  font-size:14px;
  color:var(--pierre);
  transition:color .3s;
}
.footer-link:hover { color:var(--cream); }
.footer-contact-val {
  font-family:var(--b);
  font-size:14px;
  color:var(--pierre);
  line-height:1.9;
}
.footer-contact-val a { transition:color .3s; }
.footer-contact-val a:hover { color:var(--cream); }
.footer-host {
  font-family:var(--b);
  font-size:12px;
  color:var(--pierre-2);
  line-height:1.8;
}
.footer-ticker {
  border-top:1px solid var(--line);
  padding:22px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
}
.ticker-text {
  font-family:var(--b);
  font-size:11px;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--pierre-2);
  display:flex;
  gap:22px;
  flex-wrap:wrap;
}
.footer-legal { display:flex; gap:26px; }
.footer-legal a {
  font-family:var(--b);
  font-size:11px;
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--pierre-2);
  transition:color .3s;
}
.footer-legal a:hover { color:var(--cream); }
.footer-mark {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(80px,16vw,280px);
  line-height:.8;
  letter-spacing:-.02em;
  color:rgba(245,243,239,.06);
  text-align:center;
  white-space:nowrap;
  transform:translateY(.16em);
  user-select:none;
  pointer-events:none;
}

/* ── RESPONSIVE ─────────────────────────────────────────────────────────── */
@media(max-width:1024px) {
  .constat { grid-template-columns:1fr; gap:20px; }
  .constat-sep { display:none; }
  .constat-col:first-child { text-align:left; }
  .principe-details { grid-template-columns:1fr 1fr; gap:0 24px; }
  .etape-row { grid-template-columns:clamp(50px,8vw,80px) 1fr; gap:14px clamp(20px,3vw,36px); align-items:start; }
  .etape-h { grid-column:2; }
  .etape-p { grid-column:2; }
  .etape-row .circ { display:none; }
  .etapes-body { grid-template-columns:1fr; }
  .etapes-side { position:relative; top:auto; max-width:440px; }
  .temo-big { grid-template-columns:1fr; gap:40px; }
  .pourqui-grid { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr 1fr; }
  .cols, .cols--even { grid-template-columns:1fr; gap:48px; }
  .sticky-col { position:relative; top:auto; }
  .cols-3 { grid-template-columns:1fr; }
  .forms-grid { grid-template-columns:1fr; }
  .direct-grid { grid-template-columns:1fr; gap:48px; }
  .erow { grid-template-columns:clamp(46px,7vw,70px) 1fr; gap:12px clamp(18px,3vw,32px); }
  .erow-p { grid-column:2; }
}
@media(max-width:768px) {
  .nav-links, .nav .pill { display:none; }
  .nav-burger { display:flex; }
  .hero-row { flex-direction:column; align-items:flex-start; gap:28px; }
  .hero-sub { text-align:left; order:-1; }
  .etapes-head { flex-direction:column; align-items:flex-start; }
  .video-cap { flex-direction:column; align-items:flex-start; gap:10px; }
  .temo-grid { grid-template-columns:1fr; }
  .bif-grid { grid-template-columns:1fr; }
  .bif-sep { display:none; }
  .pourqui-grid { grid-template-columns:1fr; }
  .lieux-row { flex-direction:column; align-items:flex-start; }
  .footer-top { grid-template-columns:1fr; }
  .footer-ticker { flex-direction:column; align-items:flex-start; }
  .ticker-text { flex-direction:column; gap:8px; }
  .phero { min-height:74vh; }
  .faq-item summary { grid-template-columns:1fr auto; }
  .faq-num { display:none; }
  .faq-a { margin-left:0; }
}
/* ════════════════════════════════════════════════════════════════════════
   ÉLÉVATION — numérotation éditoriale · panneaux · révélations · signatures
   ════════════════════════════════════════════════════════════════════════ */

/* numérotation des sections (augen-style) */
.tag-num {
  color:var(--brule);
  margin-right:13px;
  font-weight:600;
}
.h-num {
  display:block;
  font-family:var(--t);
  font-weight:600;
  font-size:12px;
  letter-spacing:.22em;
  color:var(--brule);
  margin-bottom:clamp(14px,1.8vw,22px);
}

/* panneaux superposés — chaque section glisse sur la précédente */
.principe, .etapes, .temoignages, .bif, .cta-final, .interlude, .sec, .footer {
  position:relative;
  z-index:2;
  border-radius:clamp(22px,3vw,40px) clamp(22px,3vw,40px) 0 0;
  margin-top:calc(-1 * clamp(22px,3vw,40px));
}
.pourqui { position:relative; z-index:2; }
.interlude { overflow:hidden; }

/* révélation des images — clip-path */
.crv {
  clip-path:inset(10% 7% 10% 7% round clamp(14px,2vw,24px));
  transition:clip-path 1.6s var(--ease);
}
.crv.in { clip-path:inset(0 0 0 0 round 0px); }

/* parallaxe interne des médias */
[data-prlx] img, [data-prlx] video {
  transition:none;
  will-change:transform;
}

/* liens à roulement */
.rollh .roll {
  display:inline-block;
  position:relative;
  overflow:hidden;
  vertical-align:top;
}
.roll .r1, .roll .r2 {
  display:block;
  transition:transform .55s var(--ease);
}
.roll .r2 {
  position:absolute;
  inset:0;
  transform:translateY(110%);
}
.rollh:hover .r1 { transform:translateY(-110%); }
.rollh:hover .r2 { transform:translateY(0); }

/* horloge locale — footer */
.tick-live {
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.live-dot {
  width:7px; height:7px;
  border-radius:50%;
  background:var(--brule);
  animation:pulse 2.6s ease-in-out infinite;
}
@keyframes pulse {
  0%,100% { opacity:.4; transform:scale(.8); }
  50%     { opacity:1;  transform:scale(1); }
}
[data-clock] { font-variant-numeric:tabular-nums; }

/* entrée — première visite */
.intro {
  position:fixed; inset:0;
  z-index:10000;
  background:var(--ink);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:26px;
  transition:opacity .65s ease, visibility .65s;
}
.intro.done { opacity:0; visibility:hidden; }
.intro-mark {
  font-family:var(--d);
  font-weight:400;
  font-size:clamp(34px,6vw,60px);
  letter-spacing:-.01em;
  color:var(--cream);
  overflow:hidden;
  line-height:1.15;
}
.intro-mark span { display:inline-block; animation:rise 1s var(--ease) .1s both; }
.intro-mark em { font-style:normal; color:var(--brule); }
.intro-line {
  width:min(240px,55vw);
  height:1px;
  background:rgba(245,243,239,.14);
  position:relative;
  overflow:hidden;
}
.intro-line::after {
  content:'';
  position:absolute; inset:0;
  background:var(--brule);
  transform:scaleX(0);
  transform-origin:left center;
  animation:introLoad 1.15s var(--ease) .25s forwards;
}
@keyframes introLoad { to { transform:scaleX(1); } }

/* kicker des étapes — sur-titre discret */
.etape-k {
  display:block;
  font-family:var(--b);
  font-weight:500;
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:rgba(5,7,13,.42);
  margin-bottom:10px;
}

/* mention discrète — pour qui */
.pq-mention {
  font-family:var(--b);
  font-size:13px;
  line-height:1.8;
  color:rgba(245,243,239,.38);
  max-width:420px;
  margin:calc(-1 * clamp(26px,3.5vw,50px)) 0 clamp(56px,7vw,90px);
}

/* sur-titre du CTA final */
.cta-inner .t-tag { margin-bottom:clamp(20px,2.6vw,32px); }

/* ── CRAFT — équilibre typographique natif ── */
.hero-h1, .phero-h1, .t-h2, .t-h3, .principe-h2, .etapes-h2, .pourqui-h2,
.cta-quote, .bif-title, .erow-h, .etape-h, .faq-q, .t-quote, .temo-big-q { text-wrap:balance; }
p { text-wrap:pretty; }
.price, .etape-num, .erow-num, .faq-num, .tag-num, .principe-detail-num, .pq-num { font-variant-numeric:tabular-nums; }
html { -webkit-tap-highlight-color:transparent; }
a, button { touch-action:manipulation; }

/* ancres : ne pas atterrir sous la nav flottante */
[id] { scroll-margin-top:calc(var(--nav-h) + 36px); }

/* barre de défilement discrète */
html { scrollbar-color:var(--pierre-2) var(--ink); scrollbar-width:thin; }
::-webkit-scrollbar { width:11px; }
::-webkit-scrollbar-track { background:var(--ink); }
::-webkit-scrollbar-thumb { background:var(--pierre-2); border-radius:8px; border:3px solid var(--ink); }
::-webkit-scrollbar-thumb:hover { background:var(--brule-deep); }

/* nav escamotable au défilement */
.nav.hide { transform:translateY(calc(-100% - 18px)); }

/* CTA mobile collant */
.mcta {
  position:fixed;
  left:16px; right:16px;
  bottom:max(14px, env(safe-area-inset-bottom));
  z-index:290;
  display:none;
  justify-content:center;
  transform:translateY(150%);
  transition:transform .6s var(--ease);
  pointer-events:none;
}
.mcta.on { transform:none; pointer-events:auto; }
.mcta .pill {
  width:100%;
  max-width:480px;
  min-height:52px;
  justify-content:center;
  box-shadow:0 18px 50px rgba(5,7,13,.45);
}
@media(max-width:768px) { .mcta { display:flex; } }

/* le hero attend la fin de l'entrée */
.with-intro .hero-eyebrow  { animation-delay:1.55s; }
.with-intro .hero-row      { animation-delay:2.1s; }
.with-intro .hero-meta-row { animation-delay:2.35s; }

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
  .rv { opacity:1!important; transform:none!important; }
  .hero-eyebrow, .hero-h1, .hero-row, .hero-meta-row,
  .phero-sub, .phero-ctas { animation:none; }
  .retours-track { animation:none; }
  .ghost { transform:none!important; }
  [data-ws] .wi { transform:none!important; }
  .veil { animation:none; opacity:0; }
  .crv { clip-path:none!important; }
  .intro { display:none!important; }
  .live-dot { animation:none; }
}
