/* =====================================================
   V4 · École Frédéric Dardailler
   Famille A (sacré géométrique) + détails B (or, halos)
   Rayonnements 2+3 (parchemin + auréoles or + halos coins)
   ===================================================== */

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}

:root{
  --parchemin:#EDE3CF;
  --parchemin-clair:#F5EDD8;
  --encre:#1A130C;
  --brun:#3B2A1A;
  --sepia:#7A5430;
  --ocre:#B88746;
  --or:#C9A24A;
  --or-clair:#E5C97A;
  --brique:#9B3D2E;
}

body{
  font-family:'EB Garamond',Georgia,serif;
  background:var(--parchemin);
  color:var(--encre);
  -webkit-font-smoothing:antialiased;
  font-size:19px;line-height:1.75;
  background-image:repeating-linear-gradient(0deg,rgba(59,42,26,.010) 0 1px,transparent 1px 6px);
  overflow-x:hidden;
}

img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

::selection{background:var(--or-clair);color:var(--brun)}

/* glyphe ornemental ❖ */
.orn{display:inline-block;color:var(--or);font-size:.78em;opacity:.75;margin:0 .5em;vertical-align:.06em;transform:translateY(-.05em)}
.fiche--dark .orn{color:var(--or-clair)}

/* =========  LOADER  ========= */
.loader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--parchemin);background-image:repeating-linear-gradient(0deg,rgba(59,42,26,.010) 0 1px,transparent 1px 6px),radial-gradient(circle at 50% 50%,rgba(184,135,70,.18),transparent 60%);transition:opacity .8s ease,visibility .8s ease}
.loader.done{opacity:0;visibility:hidden;pointer-events:none}
.loader__halo{position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(212,164,55,.55),transparent 60%);filter:blur(28px);opacity:0;animation:loaderHalo 1.6s ease-in-out .5s forwards}
.loader__sigil{position:relative;width:240px;height:240px;color:var(--brun);filter:drop-shadow(0 0 20px rgba(201,162,74,.5))}
.loader__sigil circle{stroke-dasharray:160;stroke-dashoffset:160;animation:loaderTrace 1.1s ease-out forwards}
.loader__sigil .c-center{animation-delay:0s}
.loader__sigil .c1{animation-delay:.15s}
.loader__sigil .c2{animation-delay:.30s}
.loader__sigil .c3{animation-delay:.45s}
.loader__sigil .c4{animation-delay:.60s}
.loader__sigil .c5{animation-delay:.75s}
.loader__sigil .c6{animation-delay:.90s}
.loader__sigil .loader__ring--inner{stroke-dasharray:300;stroke-dashoffset:300;animation:loaderTrace 1.4s ease-out 1.1s forwards}
.loader__sigil .loader__ring--outer{stroke-dasharray:none;stroke-dashoffset:0;opacity:0;animation:loaderFade .8s ease-out 1.6s forwards}
@keyframes loaderTrace{to{stroke-dashoffset:0}}
@keyframes loaderFade{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes loaderHalo{0%{opacity:0;transform:scale(.7)}40%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.3)}}
@media (prefers-reduced-motion: reduce){.loader{animation:none}.loader__sigil circle{stroke-dashoffset:0;animation:none;opacity:1}.loader__halo{display:none}}

/* =========  PROGRESS BAR  ========= */
.progress{position:fixed;top:0;left:0;height:2px;width:0%;z-index:60;background:linear-gradient(90deg,var(--or-clair),var(--or),var(--brique));box-shadow:0 0 8px rgba(201,162,74,.6);transition:width .08s linear}

/* =========  HALOS DE FOND GLOBAUX  ========= */
.bg-halos{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bg-halos .corner{position:absolute;width:520px;height:520px;border-radius:50%;filter:blur(80px);opacity:.45}
.bg-halos .corner--tl{top:-220px;left:-180px;background:radial-gradient(circle,rgba(184,135,70,.45),transparent 70%)}
.bg-halos .corner--br{bottom:-220px;right:-180px;background:radial-gradient(circle,rgba(155,61,46,.28),transparent 70%)}
.bg-halos .corner--mid{top:50%;left:60%;width:380px;height:380px;background:radial-gradient(circle,rgba(212,164,55,.22),transparent 70%);transform:translateY(-50%);animation:breathe 12s ease-in-out infinite}

.bg-particles{position:fixed;inset:0;z-index:-1;pointer-events:none}
.bg-particles span{position:absolute;width:3px;height:3px;background:var(--or);border-radius:50%;box-shadow:0 0 10px rgba(201,162,74,.7);opacity:.55;animation:drift 22s linear infinite}
.bg-particles span:nth-child(1){left:8%;animation-delay:0s;animation-duration:20s}
.bg-particles span:nth-child(2){left:18%;animation-delay:4s;animation-duration:25s}
.bg-particles span:nth-child(3){left:32%;animation-delay:8s;animation-duration:18s}
.bg-particles span:nth-child(4){left:48%;animation-delay:2s;animation-duration:24s}
.bg-particles span:nth-child(5){left:62%;animation-delay:11s;animation-duration:22s}
.bg-particles span:nth-child(6){left:75%;animation-delay:6s;animation-duration:26s}
.bg-particles span:nth-child(7){left:88%;animation-delay:14s;animation-duration:20s}
.bg-particles span:nth-child(8){left:95%;animation-delay:18s;animation-duration:24s}

@keyframes drift{
  0%{transform:translateY(110vh) scale(.6);opacity:0}
  10%{opacity:.7}
  50%{opacity:1}
  90%{opacity:.7}
  100%{transform:translateY(-20vh) scale(1.1);opacity:0}
}
@keyframes breathe{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.8}50%{transform:translate(-46%,-54%) scale(1.18);opacity:1}}
@keyframes halo-pulse{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}
@keyframes rotate{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}

/* =========  RAIL VERTICAL DE SECTION (desktop)  ========= */
.rail{position:fixed;top:50%;left:24px;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:18px}
.rail__dot{position:relative;width:10px;height:10px;border-radius:50%;border:1px solid var(--brun);background:transparent;cursor:pointer;transition:.3s;display:block}
.rail__dot::after{content:attr(data-label);position:absolute;left:22px;top:50%;transform:translateY(-50%);font-family:'Cinzel',serif;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--brun);opacity:0;white-space:nowrap;transition:.3s;pointer-events:none;background:var(--parchemin);padding:4px 10px;border:1px solid rgba(59,42,26,.2)}
.rail__dot:hover::after{opacity:1}
.rail__dot.active{background:var(--or);border-color:var(--or);box-shadow:0 0 12px rgba(201,162,74,.7)}
@media (max-width:980px){.rail{display:none}}

/* =========  NAV  ========= */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 5vw;
  transition:.4s ease;
  font-family:'Cinzel',serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;
}
.nav.scrolled{background:rgba(237,227,207,.92);backdrop-filter:blur(8px);box-shadow:0 1px 0 rgba(59,42,26,.15)}
.nav__brand{display:flex;align-items:center;gap:14px;color:var(--brun)}
.nav__brand svg{width:28px;height:28px}
.nav__brand b{font-weight:600;letter-spacing:.18em}
.nav__brand span{font-family:'IM Fell English',serif;font-style:italic;font-size:13px;letter-spacing:.04em;text-transform:none;opacity:.7;color:var(--sepia)}
.nav__menu{display:flex;gap:32px;color:var(--brun)}
.nav__menu a{position:relative;transition:.3s}
.nav__menu a::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--or);transition:width .3s}
.nav__menu a:hover{color:var(--or)}
.nav__menu a:hover::after{width:100%}
.nav__cta{padding:10px 22px;border:1px solid var(--brun);color:var(--brun);transition:.3s}
.nav__cta:hover{background:var(--brun);color:var(--parchemin)}
.nav__burger{display:none;background:transparent;border:none;cursor:pointer;width:36px;height:36px;flex-direction:column;justify-content:center;gap:5px;padding:0}
.nav__burger span{display:block;width:22px;height:1.6px;background:var(--brun);transition:.3s}
@media (max-width:980px){
  .nav__menu,.nav__cta{display:none}
  .nav__burger{display:flex}
}

/* =========  MENU OVERLAY MOBILE  ========= */
.menu-overlay{position:fixed;inset:0;z-index:55;visibility:hidden;opacity:0;transition:opacity .4s ease,visibility .4s}
.menu-overlay.open{visibility:visible;opacity:1}
.menu-overlay__bg{position:absolute;inset:0;background:var(--parchemin);background-image:repeating-linear-gradient(0deg,rgba(59,42,26,.025) 0 1px,transparent 1px 4px),radial-gradient(circle at 20% 30%,rgba(184,135,70,.3),transparent 60%),radial-gradient(circle at 80% 70%,rgba(155,61,46,.18),transparent 60%)}
.menu-overlay__close{position:absolute;top:24px;right:5vw;background:transparent;border:none;font-size:32px;color:var(--brun);cursor:pointer;font-family:serif;width:48px;height:48px;z-index:5}
.menu-overlay__inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;text-align:center;z-index:2}
.menu-overlay__inner a{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:clamp(28px,7vw,42px);color:var(--brun);transition:.3s;transform:translateY(20px);opacity:0}
.menu-overlay.open .menu-overlay__inner a{transform:translateY(0);opacity:1;transition:.5s ease}
.menu-overlay.open .menu-overlay__inner a:nth-child(1){transition-delay:.05s}
.menu-overlay.open .menu-overlay__inner a:nth-child(2){transition-delay:.1s}
.menu-overlay.open .menu-overlay__inner a:nth-child(3){transition-delay:.15s}
.menu-overlay.open .menu-overlay__inner a:nth-child(4){transition-delay:.2s}
.menu-overlay.open .menu-overlay__inner a:nth-child(5){transition-delay:.25s}
.menu-overlay.open .menu-overlay__inner a:nth-child(6){transition-delay:.3s}
.menu-overlay.open .menu-overlay__inner a:nth-child(7){transition-delay:.35s}
.menu-overlay__inner a:hover{color:var(--or)}
.menu-overlay__cta{padding:16px 32px;border:1px solid var(--brun);font-family:'Cinzel',serif!important;font-style:normal!important;font-size:13px!important;letter-spacing:.3em;text-transform:uppercase;margin-top:12px}
.menu-overlay__sigil{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);width:80px;height:80px;color:var(--ocre);opacity:.4;animation:rotate-c 60s linear infinite}
@keyframes rotate-c{from{transform:translateX(-50%) rotate(0)}to{transform:translateX(-50%) rotate(360deg)}}

/* =========  TYPO RYTHMIQUE  ========= */
.t-script{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500}
.t-mono{font-family:'Cinzel',serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase}
.t-fell{font-family:'IM Fell English',serif;font-style:italic}

/* =========  ENCADRÉS GLOBAUX  ========= */
.section{position:relative;padding:120px 6vw}
.section__frame::before,.section__frame::after{content:'';position:absolute;inset:24px;border:1px solid rgba(59,42,26,.18);pointer-events:none}
.section__frame::after{inset:32px;border-color:rgba(59,42,26,.10)}
.section__tag{font-family:'Cinzel',serif;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--sepia);margin-bottom:24px}

/* =========  AURÉOLES OR  ========= */
.aureole{position:relative;display:inline-block}
.aureole::before{content:'';position:absolute;inset:-30% -10%;background:radial-gradient(ellipse at center,rgba(212,164,55,.45),transparent 65%);z-index:-1;filter:blur(22px);animation:halo-pulse 6s ease-in-out infinite}

/* =========  TRACE SVG (reveal au scroll)  ========= */
.trace path,.trace circle,.trace ellipse,.trace line,.trace polygon,.trace rect{
  stroke-dasharray:1000;stroke-dashoffset:1000;
  transition:stroke-dashoffset 1.6s ease;
}
.trace.in path,.trace.in circle,.trace.in ellipse,.trace.in line,.trace.in polygon,.trace.in rect{
  stroke-dashoffset:0;
}
.trace[fill]:not([fill="none"]),
.trace [fill]:not([fill="none"]){stroke-dasharray:none;stroke-dashoffset:0}

/* =========  HERO  ========= */
.hero{position:relative;min-height:100vh;padding:140px 6vw 120px;overflow:hidden;display:flex;align-items:center}
.hero::before,.hero::after{content:'';position:absolute;inset:24px;border:1px solid rgba(59,42,26,.35);pointer-events:none;z-index:3}
.hero::after{inset:32px;border-color:rgba(59,42,26,.18)}
.hero__bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero__orbit{position:absolute;top:50%;left:50%;width:1200px;height:1200px;border-radius:50%;border:1px solid rgba(212,164,55,.18);transform:translate(-50%,-50%);animation:rotate 90s linear infinite}
.hero__orbit::before{content:'';position:absolute;width:14px;height:14px;border-radius:50%;background:rgba(212,164,55,.55);box-shadow:0 0 20px rgba(212,164,55,.85);top:-7px;left:50%;transform:translateX(-50%)}
.hero__orbit--inner{width:760px;height:760px;border-color:rgba(212,164,55,.22);animation:rotate 60s linear infinite reverse}
.hero__orbit--inner::before{width:10px;height:10px;background:rgba(155,61,46,.55);box-shadow:0 0 14px rgba(155,61,46,.6);top:-5px}
.hero__inner{position:relative;z-index:5;display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center;width:100%;max-width:1380px;margin:0 auto}
.hero__tag{margin-bottom:32px;color:var(--sepia)}
.hero__title{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--brun);font-size:clamp(46px,8vw,108px);line-height:1;margin:0 0 28px;letter-spacing:-.01em}
.hero__lead{font-size:clamp(17px,1.5vw,21px);line-height:1.7;color:var(--brun);opacity:.85;margin:0 0 22px;max-width:560px}
.hero__sig{margin:0 0 36px;color:var(--sepia);font-size:15px}
.hero__ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:14px;padding:16px 32px;font-family:'Cinzel',serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;transition:.3s;cursor:pointer;border:none;min-height:48px}
.btn--primary{background:var(--brun);color:var(--parchemin);border:1px solid var(--brun)}
.btn--primary:hover{background:var(--or);border-color:var(--or);color:var(--encre)}
.btn--ghost{background:transparent;color:var(--brun);border:1px solid var(--brun)}
.btn--ghost:hover{background:var(--brun);color:var(--parchemin)}
.btn::after{content:'→';font-family:serif;font-size:14px;letter-spacing:0;transition:transform .3s}
.btn:hover::after{transform:translateX(4px)}
.hero__sym{position:relative;display:flex;justify-content:center;align-items:center;will-change:transform}
.hero__sym::before{content:'';position:absolute;inset:-10%;background:radial-gradient(circle,rgba(212,164,55,.32),transparent 60%);filter:blur(28px);animation:halo-pulse 7s ease-in-out infinite .5s;pointer-events:none}
.hero__sym svg{position:relative;width:min(460px,90%);height:auto;filter:drop-shadow(0 0 14px rgba(201,162,74,.5));animation:floaty 14s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media (max-width:980px){.hero__inner{grid-template-columns:1fr;gap:32px}.hero__sym{order:-1;max-width:280px;margin:0 auto}}

.hero__cue{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--sepia)}
.hero__cue::after{content:'';width:1px;height:40px;background:linear-gradient(to bottom,var(--sepia),transparent);animation:cueDrop 2.4s ease-in-out infinite}
@keyframes cueDrop{0%{opacity:0;transform:scaleY(0);transform-origin:top}50%{opacity:1;transform:scaleY(1)}100%{opacity:0;transform:scaleY(0);transform-origin:bottom}}

/* =========  MANIFESTE (sombre)  ========= */
.manifeste{position:relative;text-align:center;padding:160px 6vw 140px;background:var(--brun);color:var(--parchemin-clair);overflow:hidden}
.manifeste::before{content:'';position:absolute;inset:24px;border:1px solid rgba(229,201,122,.20);pointer-events:none;z-index:1}
.manifeste::after{content:'';position:absolute;top:-200px;left:-200px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(212,164,55,.16),transparent 70%);filter:blur(50px);pointer-events:none}
.manifeste__inner{max-width:880px;margin:0 auto;position:relative;z-index:2}
.manifeste__sri{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:1;opacity:.16;pointer-events:none}
.manifeste__sri svg{width:min(620px,95%);height:auto;color:var(--or-clair);animation:rotate-s 240s linear infinite;filter:drop-shadow(0 0 20px rgba(229,201,122,.3))}
@keyframes rotate-s{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.manifeste .t-mono{color:var(--or-clair) !important}
.manifeste h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--parchemin);font-size:clamp(30px,4.5vw,60px);line-height:1.15;margin:0 0 28px}
.manifeste h2 em{color:var(--or-clair)}
.manifeste p{font-size:clamp(18px,1.5vw,21px);line-height:1.9;color:var(--parchemin-clair);opacity:.92;margin:14px auto;max-width:760px}
.manifeste blockquote{font-family:'IM Fell English',serif;font-style:italic;font-size:clamp(19px,2vw,26px);color:var(--or-clair);margin:48px auto 0;max-width:680px;padding-top:32px;border-top:1px solid rgba(229,201,122,.25)}

/* =========  POUR QUI  ========= */
.cible{position:relative;padding:140px 6vw 120px}
.cible__head{max-width:780px;margin:0 auto 80px;text-align:center}
.cible__head .section__tag{display:block}
.cible__head h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--brun);font-size:clamp(30px,5vw,58px);line-height:1.1;margin:0}
.cible__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:40px;max-width:1080px;margin:0 auto}
@media (max-width:780px){.cible__grid{grid-template-columns:1fr;gap:24px}}
.cible__card{position:relative;padding:44px 36px;background:rgba(255,253,244,.45);border:1px solid rgba(59,42,26,.22);transition:.4s ease}
.cible__card::before{content:'';position:absolute;top:8px;left:8px;right:8px;bottom:8px;border:1px solid rgba(59,42,26,.10);pointer-events:none;transition:.4s}
.cible__card:hover{transform:translateY(-4px);box-shadow:0 24px 60px rgba(59,42,26,.15)}
.cible__card:hover::before{border-color:rgba(201,162,74,.45)}
.cible__card svg{width:54px;height:54px;color:var(--ocre);margin-bottom:20px;filter:drop-shadow(0 0 8px rgba(201,162,74,.45))}
.cible__card h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--brun);font-size:26px;margin:0 0 12px}
.cible__card p{margin:0;color:var(--brun);opacity:.9;font-size:17px;line-height:1.7}
.cible__card .num{position:absolute;top:14px;right:18px;font-family:'IM Fell English',serif;font-style:italic;font-size:13px;color:var(--sepia);letter-spacing:.18em}

/* =========  INDEX DES VOIES (éditorial pleine page · cocoa + sceau 11 rais)  ========= */
.voies{position:relative;padding:160px 6vw 140px;background:var(--brun);color:var(--parchemin-clair);overflow:hidden}
.voies::before{content:'';position:absolute;inset:24px;border:1px solid rgba(229,201,122,.22);pointer-events:none;z-index:1}
.voies::after{content:'';position:absolute;top:50%;left:62%;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(212,164,55,.20),transparent 70%);filter:blur(60px);transform:translateY(-50%);pointer-events:none}
.voies__seal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(820px,94%);height:auto;color:var(--or-clair);opacity:.18;animation:rotate-s 200s linear infinite;z-index:0;pointer-events:none;filter:drop-shadow(0 0 30px rgba(229,201,122,.4))}
.voies__head{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center;text-align:left;max-width:1180px;margin:0 auto 80px;position:relative;z-index:5}
.voies__big{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:clamp(160px,22vw,320px);line-height:.9;color:var(--or-clair);letter-spacing:-.04em;text-shadow:0 0 40px rgba(229,201,122,.5);text-align:center;font-feature-settings:'tnum' 1;font-variant-numeric:tabular-nums}
.voies__head .t-mono{color:var(--or-clair) !important;display:block;margin-bottom:14px}
.voies__head h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--parchemin);font-size:clamp(32px,4.4vw,52px);line-height:1.1;margin:0 0 14px}
.voies__head h2 em{color:var(--or-clair)}
.voies__head p{font-size:17px;line-height:1.7;color:var(--parchemin-clair);opacity:.88;margin:0;max-width:none}
@media (max-width:780px){.voies__head{grid-template-columns:1fr;gap:24px;text-align:center;margin-bottom:40px}.voies__head p{text-align:center}}
.voies__list{max-width:1080px;margin:0 auto;border-top:1px solid rgba(229,201,122,.28);padding:0;list-style:none;position:relative;z-index:5}
.voies__row{display:grid;grid-template-columns:90px 1fr 1.4fr 110px 40px;gap:24px;align-items:center;padding:28px 16px;border-bottom:1px solid rgba(229,201,122,.18);cursor:pointer;transition:.3s;color:var(--parchemin-clair);position:relative;overflow:hidden}
.voies__row:hover{background:rgba(229,201,122,.08);padding-left:24px}
.voies__row:hover .voies__no{color:var(--or-clair);text-shadow:0 0 18px rgba(229,201,122,.6)}
.voies__no{font-family:'IM Fell English',serif;font-style:italic;font-size:34px;color:var(--or);transition:.3s}
.voies__name{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:clamp(22px,2.4vw,28px);color:var(--parchemin)}
.voies__sub{font-size:15px;letter-spacing:.04em;color:rgba(245,237,216,.7)}
.voies__mode{font-family:'Cinzel',serif;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--or);text-align:right}
.voies__arrow{font-family:serif;color:rgba(245,237,216,.6);transition:.3s}
.voies__row:hover .voies__arrow{transform:translateX(6px);color:var(--or-clair)}
.voies__sigil{position:absolute;top:50%;right:64px;width:74px;height:74px;transform:translateY(-50%) translateX(40px);opacity:0;transition:.5s ease;pointer-events:none;color:var(--or-clair);filter:drop-shadow(0 0 12px rgba(229,201,122,.6))}
.voies__row:hover .voies__sigil{transform:translateY(-50%) translateX(0);opacity:.85}
.counter{display:inline-block;font-feature-settings:'tnum' 1;font-variant-numeric:tabular-nums}

@media (max-width:780px){
  .voies{padding:90px 5vw 80px}
  .voies__seal{opacity:.12;width:min(500px,100%)}
  .voies__row{grid-template-columns:42px 1fr 84px;gap:14px;padding:20px 8px}
  .voies__sub,.voies__arrow{display:none}
  .voies__no{font-size:22px}
  .voies__name{font-size:18px}
  .voies__mode{font-size:9px}
  .voies__sigil{display:none}
}

/* =========  FICHES  ========= */
.fiche{position:relative;padding:140px 6vw 120px;overflow:hidden;content-visibility:auto;contain-intrinsic-size:1px 1100px}
.fiche--alt{background:linear-gradient(180deg,rgba(122,84,48,.05),rgba(184,135,70,.08),rgba(122,84,48,.05))}
.fiche--dark{background:var(--brun);color:var(--parchemin-clair)}
.fiche--dark .t-mono,.fiche--dark .fiche__no,.fiche--dark .fiche__meta span{color:var(--or-clair)}
.fiche--dark .fiche__title{color:var(--parchemin)}
.fiche--dark .fiche__body p,.fiche--dark .fiche__list li{color:var(--parchemin-clair);opacity:.92}
.fiche--dark .fiche__sym svg{color:var(--or-clair);filter:drop-shadow(0 0 16px rgba(229,201,122,.4))}
.fiche--dark .fiche__bonus{background:rgba(229,201,122,.10);border-color:rgba(229,201,122,.3)}
.fiche__inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.fiche--reverse .fiche__inner{grid-template-areas:'sym text';grid-template-columns:.9fr 1.1fr}
.fiche--reverse .fiche__sym{grid-area:sym}.fiche--reverse .fiche__text{grid-area:text}
@media (max-width:980px){.fiche{padding:90px 6vw 80px}.fiche__inner,.fiche--reverse .fiche__inner{grid-template-columns:1fr;grid-template-areas:none;gap:36px}.fiche__sym{max-width:280px;margin:0 auto;order:-1}}
.fiche__no{font-family:'IM Fell English',serif;font-style:italic;font-size:14px;color:var(--sepia);letter-spacing:.18em;margin-bottom:18px}
.fiche__title{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--brun);font-size:clamp(28px,4.4vw,52px);line-height:1.1;margin:0 0 14px}
.fiche__sub{font-family:'Cinzel',serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--ocre);margin-bottom:28px;line-height:1.6}
.fiche__intro{font-size:19px;line-height:1.78;margin:0 0 24px}
.fiche__list{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:12px}
.fiche__list li{position:relative;padding-left:26px;line-height:1.7;font-size:17px}
.fiche__list li::before{content:'❋';position:absolute;left:0;top:0;color:var(--or);font-size:14px}
.fiche__bonus{margin:24px 0;padding:22px 26px;background:rgba(212,164,55,.10);border:1px dashed rgba(184,135,70,.5)}
.fiche__bonus .t-mono{color:var(--ocre);margin-bottom:10px;display:block}
.fiche__bonus ul{margin:0;padding:0;list-style:none}
.fiche__bonus li{padding:4px 0 4px 22px;position:relative;font-size:15px}
.fiche__bonus li::before{content:'✦';position:absolute;left:0;top:4px;color:var(--brique)}
.fiche__meta{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 32px}
.fiche__meta span{font-family:'Cinzel',serif;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--sepia);padding:6px 14px;border:1px solid rgba(59,42,26,.25)}
.fiche__sym{position:relative;display:flex;align-items:center;justify-content:center;will-change:transform}
.fiche__sym::before{content:'';position:absolute;inset:-5%;background:radial-gradient(circle,rgba(212,164,55,.28),transparent 60%);filter:blur(24px);animation:halo-pulse 8s ease-in-out infinite;pointer-events:none}
.fiche__sym svg{position:relative;width:min(420px,90%);height:auto;color:var(--brun);filter:drop-shadow(0 0 12px rgba(201,162,74,.4));animation:floaty 16s ease-in-out infinite}
.fiche__cta{display:inline-flex;align-items:center;gap:12px;padding:14px 28px;font-family:'Cinzel',serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;border:1px solid currentColor;transition:.3s;color:inherit;min-height:48px}
.fiche__cta:hover{background:var(--or);border-color:var(--or);color:var(--encre)}
.fiche--dark .fiche__cta:hover{background:var(--or-clair);border-color:var(--or-clair);color:var(--brun)}

/* =========  APPROCHE  ========= */
.approche{position:relative;padding:160px 6vw 140px;background:var(--brun);color:var(--parchemin-clair);overflow:hidden}
.approche::before{content:'';position:absolute;inset:24px;border:1px solid rgba(229,201,122,.20);pointer-events:none}
.approche::after{content:'';position:absolute;top:-200px;right:-200px;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(212,164,55,.18),transparent 70%);filter:blur(40px);pointer-events:none}
.approche__inner{max-width:1080px;margin:0 auto;position:relative;z-index:2}
.approche__head{max-width:760px;margin:0 auto 72px;text-align:center}
.approche__head .t-mono{color:var(--or-clair);display:block;margin-bottom:18px}
.approche__head h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--parchemin);font-size:clamp(30px,5vw,58px);line-height:1.1;margin:0 0 24px}
.approche__head p{font-size:18px;line-height:1.75;opacity:.9;margin:0}
.approche__pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
@media (max-width:880px){.approche__pillars{grid-template-columns:1fr;gap:20px}}
.pillar{position:relative;padding:36px 28px;border:1px solid rgba(229,201,122,.25);background:rgba(229,201,122,.04);transition:.4s}
.pillar:hover{transform:translateY(-4px);background:rgba(229,201,122,.10);border-color:rgba(229,201,122,.45)}
.pillar svg{width:48px;height:48px;color:var(--or-clair);margin-bottom:18px;filter:drop-shadow(0 0 10px rgba(229,201,122,.45))}
.pillar h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:24px;margin:0 0 10px;color:var(--parchemin)}
.pillar p{margin:0;font-size:16px;opacity:.88}

/* =========  FRÉDÉRIC  ========= */
.fred{position:relative;padding:160px 6vw 140px;overflow:hidden}
.fred__inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:80px;align-items:center}
@media (max-width:980px){.fred__inner{grid-template-columns:1fr;gap:48px}}
.fred__portrait{position:relative;display:flex;justify-content:center;align-items:center}
.fred__portrait::before{content:'';position:absolute;inset:-10%;background:radial-gradient(circle,rgba(212,164,55,.4),transparent 60%);filter:blur(36px);animation:halo-pulse 8s ease-in-out infinite}
.fred__portrait svg{position:relative;width:min(380px,90%);height:auto;filter:drop-shadow(0 0 16px rgba(201,162,74,.5));animation:floaty 18s ease-in-out infinite}
.fred__text .t-mono{color:var(--sepia);display:block;margin-bottom:18px}
.fred h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--brun);font-size:clamp(30px,5vw,56px);line-height:1.1;margin:0 0 28px}
.fred p{font-size:19px;line-height:1.85;color:var(--brun);opacity:.92;margin:14px 0}
.fred blockquote{font-family:'IM Fell English',serif;font-style:italic;font-size:22px;color:var(--sepia);margin:32px 0 0;padding-left:24px;border-left:2px solid var(--ocre)}

/* =========  FAQ  ========= */
.faq{position:relative;padding:140px 6vw 120px;background:linear-gradient(180deg,transparent,rgba(59,42,26,.04),transparent)}
.faq__head{max-width:780px;margin:0 auto 56px;text-align:center}
.faq__head h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--brun);font-size:clamp(28px,4.6vw,52px);margin:0}
.faq__list{max-width:840px;margin:0 auto}
.faq__item{border-bottom:1px solid rgba(59,42,26,.22)}
.faq__q{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;cursor:pointer;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;font-size:clamp(18px,2vw,24px);color:var(--brun);transition:.3s}
.faq__q:hover{color:var(--or)}
.faq__q::after{content:'+';font-family:serif;font-style:normal;font-size:24px;color:var(--ocre);transition:.3s}
.faq__item.open .faq__q::after{transform:rotate(45deg)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .5s ease,padding .5s ease}
.faq__item.open .faq__a{max-height:600px;padding:0 0 24px}
.faq__a p{margin:0;font-size:18px;line-height:1.8;color:var(--brun);opacity:.9}

/* =========  CONTACT  ========= */
.contact{position:relative;padding:160px 6vw 140px;background:var(--brun);color:var(--parchemin-clair);overflow:hidden}
.contact::before{content:'';position:absolute;inset:24px;border:1px solid rgba(229,201,122,.22);pointer-events:none}
.contact__bg{position:absolute;inset:0;pointer-events:none;z-index:0}
.contact__bg svg{position:absolute;top:50%;left:50%;width:780px;height:780px;transform:translate(-50%,-50%);color:var(--or);opacity:.10;animation:rotate-s 200s linear infinite}
.contact__inner{position:relative;z-index:2;max-width:880px;margin:0 auto;display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:start}
@media (max-width:880px){.contact__inner{grid-template-columns:1fr;gap:36px}}
.contact__intro .t-mono{color:var(--or-clair);display:block;margin-bottom:18px}
.contact__intro h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:500;color:var(--parchemin);font-size:clamp(28px,4.6vw,50px);line-height:1.1;margin:0 0 22px}
.contact__intro p{font-size:17px;line-height:1.75;opacity:.88;margin:12px 0}
.contact__coords{margin-top:32px;padding:0;display:grid;gap:14px;list-style:none}
.contact__coords li{display:flex;gap:14px;align-items:center;font-family:'IM Fell English',serif;font-style:italic;font-size:16px;color:var(--or-clair)}
.contact__coords li svg{width:18px;height:18px;flex-shrink:0;color:var(--or-clair);opacity:.85}
.contact__form{display:grid;gap:18px}
.contact__form label{font-family:'Cinzel',serif;font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--or-clair);margin-bottom:6px;display:block}
.contact__form input,.contact__form select,.contact__form textarea{width:100%;padding:14px 18px;background:rgba(229,201,122,.06);border:1px solid rgba(229,201,122,.3);color:var(--parchemin);font-family:'EB Garamond',serif;font-size:17px;transition:.3s;border-radius:0;min-height:48px}
.contact__form input:focus,.contact__form select:focus,.contact__form textarea:focus{outline:none;border-color:var(--or-clair);background:rgba(229,201,122,.1)}
.contact__form textarea{min-height:140px;resize:vertical}
.contact__form button{margin-top:8px;padding:18px 32px;font-family:'Cinzel',serif;font-size:11px;letter-spacing:.32em;text-transform:uppercase;background:var(--or);color:var(--encre);border:1px solid var(--or);cursor:pointer;transition:.3s;min-height:52px}
.contact__form button:hover{background:var(--or-clair);border-color:var(--or-clair)}

/* =========  STICKY CTA MOBILE  ========= */
.sticky-cta{position:fixed;bottom:18px;right:18px;z-index:45;display:none;align-items:center;gap:8px;padding:14px 22px;background:var(--brun);color:var(--parchemin);font-family:'Cinzel',serif;font-size:11px;letter-spacing:.28em;text-transform:uppercase;box-shadow:0 12px 30px rgba(59,42,26,.4);transition:.3s;opacity:0;transform:translateY(20px)}
.sticky-cta.visible{opacity:1;transform:translateY(0)}
.sticky-cta:hover{background:var(--or);color:var(--encre)}
.sticky-cta svg{width:16px;height:16px}
@media (max-width:980px){.sticky-cta{display:flex}}

/* =========  FOOTER  ========= */
.footer{padding:60px 6vw 40px;text-align:center;background:#15100B;color:var(--parchemin-clair);font-family:'IM Fell English',serif;font-style:italic}
.footer__brand{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:18px}
.footer__brand svg{width:32px;height:32px;color:var(--or-clair)}
.footer__brand span{font-family:'Cinzel',serif;font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:var(--or-clair);font-style:normal}
.footer p{margin:6px 0;opacity:.7;font-size:15px}
.footer p.fine{opacity:.4;font-size:13px;margin-top:18px}

/* =========  REVEAL  ========= */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1s ease}
.reveal.in{opacity:1;transform:none}
.reveal-d1{transition-delay:.12s}
.reveal-d2{transition-delay:.24s}
.reveal-d3{transition-delay:.36s}
.reveal-d4{transition-delay:.48s}

/* =========  FOCUS  ========= */
:focus-visible{outline:2px solid var(--or);outline-offset:3px}

/* =========  MOBILE FINE-TUNING  ========= */
@media (max-width:780px){
  body{font-size:16px}
  .section{padding:80px 5vw}
  .hero{padding:110px 5vw 80px;min-height:auto}
  .hero::before{inset:14px}
  .hero::after{inset:20px}
  .hero__cue{display:none}
  .manifeste{padding:90px 5vw 80px}
  .approche{padding:90px 5vw 80px}
  .fred{padding:90px 5vw 80px}
  .faq{padding:90px 5vw 80px}
  .contact{padding:90px 5vw 80px}
  .voies{padding:90px 5vw 80px}
  .cible{padding:80px 5vw 60px}
  .voies__head{margin-bottom:36px}
  .cible__head{margin-bottom:48px}
  .bg-particles span:nth-child(n+4){display:none}
  .hero__orbit{width:600px;height:600px}
  .hero__orbit--inner{width:400px;height:400px}
  .hero__title{font-size:clamp(40px,12vw,64px)}
  .footer{padding:48px 5vw 32px}
  .nav__brand b{font-size:11px}
  .nav__brand span{font-size:11px}
  .nav__brand svg{width:24px;height:24px}
}

/* =========  REDUCED MOTION  ========= */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition-duration:.01ms !important}
  .reveal{opacity:1;transform:none}
  .trace path,.trace circle,.trace ellipse,.trace line,.trace polygon,.trace rect{stroke-dasharray:none;stroke-dashoffset:0}
}
