
/* ============== TOKENS ============== */
:root{
  --abyss:#06143a;
  --deep:#0a1f4f;
  --deep-2:#0e2a66;
  --marine:#15387f;
  --marine-2:#1d4795;
  --lake:#2a5cb8;
  --azure:#5a8fd6;
  --ice:#a8c7f0;
  --paper:#f2f6ff;
  --paper-soft:#d0deef;
  --paper-dim:#94a8c8;

  --pink:#ff3d8a;
  --pink-btn:#ff3d8a;
  --pink-btn-hover:#e0276f;  /* rose de survol unique (légèrement plus profond) */
  --pink-glow:rgba(255,61,138,.55);
  --pink-soft:rgba(255,61,138,.14);
  --pink-surface:#ff3d8a;   /* rose unique au repos (= rose de marque) */

  --error:#ff6b6b;          /* messages d'erreur (AA sur fonds sombres) */

  --line:rgba(168,199,240,.12);
  --line-2:rgba(168,199,240,.22);
  --line-3:rgba(168,199,240,.4);

  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --sans:"Bricolage Grotesque",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;

  /* ============== SYSTÈME RESPONSIVE ============== */
  /* Breakpoints (référence, à utiliser dans @media) :
     Mobile  : 0    → 640px   (1 colonne, padding minimal)
     Tablet  : 641  → 1024px  (transitions, layouts 2 cols)
     Laptop  : 1025 → 1440px  (full desktop layout)
     Large   : 1441+          (largeur capée par --max-content) */

  /* Padding latéral fluide */
  --pad-x: clamp(20px, 5vw, 80px);

  /* Largeurs maximales */
  --max-content: 1440px;     /* sections normales */
  --max-text: 680px;         /* paragraphes de prose */
  --max-heading: 920px;      /* titres H1/H2 longs */
  --max: 1440px;             /* alias rétrocompat */

  /* Espacement vertical entre sections */
  --space-section: clamp(64px, 9vw, 144px);
  --space-section-sm: clamp(48px, 6vw, 96px);

  /* Hauteur éléments traversants (desktop) */
  --bleed-h: clamp(420px, 80vh, 960px);

  /* ============== ÉCHELLE TYPO ============== */
  /* RÈGLE : titres en clamp fluide (s'adaptent au viewport),
     body en fixe (lisibilité constante), mono/labels en fixe. */

  /* Mono / Labels (toujours fixes — uniformité visuelle) */
  --fs-mono-xs:   11px;     /* tags micro */
  --fs-mono-sm:   12px;     /* méta courante */
  --fs-mono-md:   13px;     /* eyebrows */

  /* Body (16px fixe = règle d'or lisibilité) */
  --fs-body-sm:   15px;     /* legals, captions */
  --fs-body-md:   17px;     /* body courant */
  --fs-body-lg:   clamp(17px, 1.25vw, 20px);   /* lead intro */
  --fs-body-xl:   clamp(18px, 1.35vw, 22px);   /* lead emphatique */

  /* Titres (clamp fluide, ratio harmonique ~1.25) */
  --fs-h6:        16px;
  --fs-h5:        18px;
  --fs-h4:        clamp(20px, 2.2vw, 28px);
  --fs-h3:        clamp(24px, 3.2vw, 40px);
  --fs-h2:        clamp(32px, 5vw, 64px);
  --fs-h1:        clamp(40px, 7vw, 96px);
  --fs-display:   clamp(48px, 9vw, 128px);   /* hero uniquement */
  --fs-page-title:clamp(38px, 6vw, 82px);    /* titre de page (mini-hero, bannières) */
  --fs-page-h2:   clamp(28px, 4vw, 52px);    /* sous-titre de section narrative */

  /* Display numérique (chiffres clés, amounts) */
  --fs-num-md:    clamp(24px, 2.8vw, 32px);
  --fs-num-lg:    clamp(28px, 3.6vw, 44px);

  /* Line-heights — 4 valeurs codifiées */
  --lh-tight:     1;        /* gros titres */
  --lh-snug:      1.15;     /* titres moyens */
  --lh-normal:    1.45;     /* corps de texte */
  --lh-relaxed:   1.6;      /* paragraphes longs */

  /* Letter-spacings — 5 valeurs codifiées */
  --tr-tight:     -.03em;   /* gros titres serrés */
  --tr-snug:      -.02em;   /* titres moyens */
  --tr-normal:    0;        /* corps */
  --tr-wide:      .1em;     /* small caps légers */
  --tr-mono:      .14em;    /* mono / eyebrows uppercase */

  /* ============== RAYONS ============== */
  --radius-xs:    6px;      /* petits éléments, tags */
  --radius-sm:    12px;     /* champs, petites cartes */
  --radius-md:    18px;     /* cartes courantes */
  --radius-lg:    24px;     /* grands blocs */
  --radius-pill:  999px;    /* boutons, pastilles */

  /* ============== TRANSITIONS ============== */
  /* 2 durées, 2 easings codifiés — à réutiliser partout */
  --dur-fast:     .2s;      /* micro-interactions (couleur, opacité) */
  --dur-base:     .3s;      /* hover standard (transform, ombre) */
  --ease-out:     cubic-bezier(.2,.7,.2,1);     /* sortie douce, défaut */
  --ease-spring:  cubic-bezier(.34,1.56,.64,1); /* léger rebond, boutons */
  /* Apparitions au scroll : smooth, amples, combinant fondu + montée douce + léger zoom */
  --dur-reveal:   .8s;      /* révélation fluide et ample */
  --ease-reveal:  cubic-bezier(.22,.61,.36,1);  /* ease-out doux, sans rebond */
  --ease-mask:    cubic-bezier(.76,0,.24,1);    /* in-out franc pour les masques */

  /* Décalage vertical au survol — 1 valeur unique pour tout le site */
  --hover-lift:   -3px;     /* boutons, petits éléments interactifs */
  --hover-lift-card: -4px;  /* cartes, vignettes (lift plus marqué) */
}

*{margin:0;padding:0;box-sizing:border-box;}
html,body{background:var(--deep);color:var(--paper);font-family:var(--sans);font-weight:400;line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11";}
html{scroll-behavior:smooth;}

/* ============================================================
   COUPURES & CÉSURES · réglage global, tous formats
   - jamais de mot coupé par un trait d'union (hyphens:none)
   - filet de sécurité pour mots/URL très longs (overflow-wrap)
   - paragraphes : text-wrap:pretty (évite les orphelines en fin de §)
   - titres : text-wrap:balance (équilibre les mots par ligne)
   ============================================================ */
html,body{hyphens:none;-webkit-hyphens:none;-moz-hyphens:none;overflow-wrap:break-word;}
p,li,dd,dt,figcaption,blockquote,.channel-desc,.teaser-text p,.mword-desc{
  text-wrap:pretty;hyphens:none;-webkit-hyphens:none;
}
h1,h2,h3,h4,h5,h6{
  text-wrap:balance;hyphens:none;-webkit-hyphens:none;
}
body{overflow-x:hidden;font-size:var(--fs-body-md);padding-bottom:56px;}

p{line-height:var(--lh-normal);}
img,video{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
::selection{background:var(--pink);color:var(--paper);}

/* Accessibilité clavier */
.skip-link{
  position:absolute;left:16px;top:-60px;z-index:200;
  background:var(--pink-btn);color:#fff;font-weight:700;
  padding:12px 20px;border-radius:var(--radius-pill);
  font-family:var(--sans);font-size:var(--fs-body-sm);
  transition:top var(--dur-base) var(--ease-out);
}
.skip-link:focus{top:16px;outline:2px solid #fff;outline-offset:2px;}
a:focus-visible,
button:focus-visible,
summary:focus-visible,
.tier:focus-visible,
.gitem:focus-visible{
  outline:2px solid var(--pink);
  outline-offset:3px;
  border-radius:var(--radius-xs);
}
.nav-cta:focus-visible,
.btn:focus-visible{
  outline:2px solid var(--paper);
  outline-offset:3px;
}

/* Modern lining numbers everywhere */
.num,.stat-v,.tier-amount,.lstat .v,.hero-meta .m b,.eyebrow,.ep-num,.ep-len{
  font-variant-numeric:lining-nums tabular-nums;
}


/* ============== TYPO ============== */
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  text-transform:uppercase;
  background:transparent;color:var(--paper);
  padding:10px 16px;border-radius:999px;
  border:1px solid rgba(255,255,255,.4);
  font-weight:500;
  width:fit-content;align-self:flex-start;
}
.eyebrow .dot{
  display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--paper);
  animation:pulse-dot-paper 2s ease-in-out infinite;flex-shrink:0;
}
@keyframes pulse-dot-paper{
  0%,100%{opacity:1;}
  50%{opacity:.4;}
}

.huge{font-family:var(--sans);font-weight:500;letter-spacing:var(--tr-tight);line-height:var(--lh-tight);}
.huge em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--ice);letter-spacing:var(--tr-snug);}

/* Fix global: l'italique de Bricolage Grotesque déborde à droite (slant).
   Padding-right généreux pour ne jamais clipper les lettres terminales. */
em{
  display:inline-block;
  padding-right:.18em;
}

/* Reveal — apparition smooth : fondu + montée douce + léger zoom, combinés */
.fade{opacity:0;transform:translateY(22px) scale(.97);transition:opacity var(--dur-reveal) var(--ease-reveal), transform var(--dur-reveal) var(--ease-reveal);}
.fade.in{opacity:1;transform:translateY(0) scale(1);}
.fade-1{transition-delay:.08s;}
.fade-2{transition-delay:.16s;}
.fade-3{transition-delay:.24s;}
.fade-4{transition-delay:.32s;}
.fade-5{transition-delay:.4s;}

/* Révélation éditoriale par masque : le contenu se découvre derrière une ligne qui se lève.
   Réservé aux grands titres de bannière, toujours visibles au chargement : on joue
   l'animation automatiquement (pas de dépendance au scroll, donc jamais de titre masqué). */
.fade-mask{
  clip-path:inset(0 0 100% 0);
  animation:title-unmask .9s .15s var(--ease-mask) forwards;
  will-change:clip-path;
}
@keyframes title-unmask{
  from{clip-path:inset(0 0 100% 0);}
  to{clip-path:inset(0 0 0 0);}
}

/* Variantes directionnelles : glissement doux + fondu + léger zoom */
.fade-left{opacity:0;transform:translateX(-22px) scale(.97);transition:opacity var(--dur-reveal) var(--ease-reveal), transform var(--dur-reveal) var(--ease-reveal);}
.fade-left.in{opacity:1;transform:translateX(0) scale(1);}
.fade-right{opacity:0;transform:translateX(22px) scale(.97);transition:opacity var(--dur-reveal) var(--ease-reveal), transform var(--dur-reveal) var(--ease-reveal);}
.fade-right.in{opacity:1;transform:translateX(0) scale(1);}
.fade-scale{opacity:0;transform:scale(.94);transition:opacity var(--dur-reveal) var(--ease-reveal), transform var(--dur-reveal) var(--ease-reveal);}
.fade-scale.in{opacity:1;transform:scale(1);}

/* Stagger : cascade fluide, même combinaison fondu + montée + zoom */
.stagger > *{opacity:0;transform:translateY(22px) scale(.97);transition:opacity var(--dur-reveal) var(--ease-reveal), transform var(--dur-reveal) var(--ease-reveal);}
.stagger.in > *{opacity:1;transform:translateY(0) scale(1);}
.stagger.in > *:nth-child(1){transition-delay:0s;}
.stagger.in > *:nth-child(2){transition-delay:.08s;}
.stagger.in > *:nth-child(3){transition-delay:.16s;}
.stagger.in > *:nth-child(4){transition-delay:.24s;}
.stagger.in > *:nth-child(5){transition-delay:.32s;}
.stagger.in > *:nth-child(6){transition-delay:.4s;}
.stagger.in > *:nth-child(7){transition-delay:.48s;}
.stagger.in > *:nth-child(8){transition-delay:.56s;}
.stagger.in > *:nth-child(9){transition-delay:.64s;}
.stagger.in > *:nth-child(10){transition-delay:.72s;}
.stagger.in > *:nth-child(11){transition-delay:.8s;}
.stagger.in > *:nth-child(12){transition-delay:.88s;}
.stagger.in > *:nth-child(13){transition-delay:.96s;}
.stagger.in > *:nth-child(14){transition-delay:1.04s;}

/* Image reveal via clip-path mask */
.img-reveal{position:relative;overflow:hidden;}
.img-reveal img{transform:scale(1.08);transition:transform 1.1s var(--ease-reveal);will-change:transform;}
.img-reveal::after{
  content:"";position:absolute;inset:0;background:var(--pink);z-index:2;
  transform-origin:left;transform:scaleX(1);
  transition:transform .9s var(--ease-mask);
}
.img-reveal.in::after{transform:scaleX(0);transform-origin:right;}
.img-reveal.in img{transform:scale(1);}

/* Zoom subtil à la révélation pour les autres images (galerie, goodies, etc.) */
.zoom-in-reveal{overflow:hidden;}
.zoom-in-reveal > img{
  transform:scale(1.05);
  transition:transform 1.1s var(--ease-reveal);
  will-change:transform;
}
.zoom-in-reveal.in > img{transform:scale(1);}

/* Respect reduced motion */
@media (prefers-reduced-motion:reduce){
  .fade, .fade-left, .fade-right, .fade-scale, .stagger > *{opacity:1 !important;transform:none !important;transition:none !important;}
  .fade-mask{clip-path:none !important;animation:none !important;}
  .img-reveal img{transform:none !important;}
  .img-reveal::after{display:none !important;}
  .final-bg video{display:none;}
  .final-bg::before{
    content:"";position:absolute;inset:0;
    background:url(assets/CG_crawl_nuit_poster.jpg) center/cover no-repeat;
  }
}

/* ============== NAV ============== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px var(--pad-x);
  padding-top:max(22px, env(safe-area-inset-top));
  padding-left:max(var(--pad-x), env(safe-area-inset-left));
  padding-right:max(var(--pad-x), env(safe-area-inset-right));
  transition:background .3s, backdrop-filter .3s, padding .3s;
}
.nav.scrolled{
  background:rgba(10,26,58,.7);-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);
  padding-top:max(14px, env(safe-area-inset-top));padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.nav-logo{
  display:flex;align-items:center;color:var(--paper);
  position:relative;height:74px;width:280px;max-width:38vw;
  transition:height .5s cubic-bezier(.4,0,.2,1);
}
.nav-logo img{
  display:block;
  position:absolute;top:0;left:0;height:100%;width:auto;
  transition:opacity .45s cubic-bezier(.4,0,.2,1), transform .55s cubic-bezier(.4,0,.2,1), height .5s cubic-bezier(.4,0,.2,1);
}
.nav-logo-full{opacity:1;transform:scale(1);}
.nav-logo-mark{opacity:0;transform:scale(.85);}
/* Au scroll: crossfade vers la version courte, mais la WIDTH du conteneur ne change pas (la nav ne bouge pas) */
.nav.scrolled .nav-logo{height:52px;}
.nav.scrolled .nav-logo-full{opacity:0;transform:scale(1.08);pointer-events:none;}
.nav.scrolled .nav-logo-mark{opacity:1;transform:scale(1);}

.nav-menu{display:flex;gap:8px;}
.nav-menu a{
  position:relative;padding:10px 16px;border-radius:999px;
  font-size:var(--fs-body-md);letter-spacing:var(--tr-snug);color:var(--paper-soft);
  transition:color .3s;
}
.nav-menu a::before{
  content:"";position:absolute;inset:0;border-radius:999px;
  background:var(--pink);transform:scale(.6);opacity:0;
  transition:transform .4s cubic-bezier(.34,1.56,.64,1), opacity .3s;
  z-index:-1;
}
.nav-menu a:hover{color:var(--paper);}
.nav-menu a:hover::before{transform:scale(1);opacity:1;}
.nav-menu a.is-current{color:var(--paper);}
.nav-menu a.is-current::before{
  transform:scale(1);opacity:1;
  background:transparent;
  border:1.5px solid var(--pink);
}
.nav-menu a.is-current:hover::before{
  background:var(--pink);
  border-color:var(--pink);
}
.nav-mobile-inner a.is-current{
  color:var(--pink);
}
.nav-mobile-inner a.is-current::after{
  content:"";display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--pink);margin-left:12px;vertical-align:middle;
}
.nav-cta{
  background:var(--pink-btn);color:var(--paper);
  border:1px solid var(--pink-btn);
  padding:12px 24px;border-radius:var(--radius-pill);
  font-family:var(--sans);font-size:var(--fs-body-md);font-weight:700;letter-spacing:0;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
  animation:nav-cta-wiggle 9s ease-in-out infinite;
  transform-origin:center;
}
.nav-cta:hover{background:var(--pink-btn-hover);border-color:var(--pink-btn-hover);transform:translateY(var(--hover-lift));animation:none;}
.nav-cta .arrow{display:inline-block;transition:transform var(--dur-base) var(--ease-out);}
.nav-cta:hover .arrow{transform:translateX(4px) rotate(-12deg);}

@keyframes nav-cta-wiggle{
  0%, 88%, 100%   {transform:rotate(0deg) scale(1);}
  89%             {transform:rotate(-3deg) scale(1.04);}
  90.5%           {transform:rotate(3deg) scale(1.04);}
  92%             {transform:rotate(-2deg) scale(1.03);}
  93.5%           {transform:rotate(2deg) scale(1.03);}
  95%             {transform:rotate(-1deg) scale(1.02);}
  96.5%           {transform:rotate(0deg) scale(1);}
}

@media (prefers-reduced-motion: reduce){
  .nav-cta{animation:none;}
}



/* Burger button */
.nav-burger{
  display:none;
  background:rgba(6,20,58,.6);border:1px solid rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  width:48px;height:48px;border-radius:50%;
  flex-direction:column;align-items:center;justify-content:center;gap:5px;
  cursor:pointer;padding:0;
  transition:border-color .3s, background .3s;
  -webkit-tap-highlight-color:transparent;
  flex-shrink:0;
  position:relative;z-index:2;
}
.nav-burger:hover{background:rgba(6,20,58,.8);border-color:var(--paper-soft);}
.nav-burger span{
  display:block;width:20px;height:2px;background:var(--paper);border-radius:2px;
  transition:transform .3s, opacity .3s;transform-origin:center;
}
.nav-burger.open{border-color:var(--pink);background:rgba(255,61,138,.15);}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-burger.open span:nth-child(2){opacity:0;}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Mobile menu drawer */
.nav-mobile{
  position:fixed;inset:0;z-index:195;
  background:rgba(6,20,58,.97);
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .35s;
  padding:max(80px, env(safe-area-inset-top)) var(--pad-x) max(40px, env(safe-area-inset-bottom));
}
.nav-mobile.open{opacity:1;pointer-events:auto;}
.nav-mobile-inner{
  display:flex;flex-direction:column;gap:8px;width:100%;max-width:420px;
  transform:translateY(20px);transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.nav-mobile.open .nav-mobile-inner{transform:translateY(0);}
.nav-mobile-inner a{
  font-family:var(--sans);font-size:var(--fs-h5);font-weight:500;letter-spacing:var(--tr-snug);
  color:var(--paper);padding:16px 0;
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
}
.nav-mobile-inner a::after{
  content:"→";opacity:.4;transition:transform .3s, opacity .3s;
}
.nav-mobile-inner a:active::after{transform:translateX(6px);opacity:1;}
.nav-mobile-inner a.nav-mobile-cta{
  margin-top:24px;background:var(--pink-btn);color:var(--paper);
  border-radius:var(--radius-pill);padding:18px 28px;
  font-size:var(--fs-body-md);justify-content:center;
  border:none;
}
.nav-mobile-cta::after{display:none;}
.nav-mobile-cta .arrow{margin-left:8px;}
.nav-mobile-inner a.nav-mobile-cta-ghost{
  background:transparent;border:1px solid var(--pink);
  color:var(--pink);margin-top:8px;
}

/* ============== HERO ============== */
.hero{
  position:relative;min-height:100vh;min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:var(--pad-x);padding-top:140px;padding-bottom:60px;
  overflow:hidden;
  z-index:2;
}

.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.hero-bg img,
.hero-bg .hero-video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  animation:ken-burns 18s ease-in-out infinite alternate;
  filter:saturate(.78) brightness(.72) hue-rotate(-8deg) contrast(1.05);
  will-change:transform;
}
@keyframes ken-burns{
  0%{transform:scale(1.04) translate(0,0);}
  100%{transform:scale(1.07) translate(-1%,-.6%);}
}
@media (prefers-reduced-motion: reduce){
  .hero-bg img, .hero-bg .hero-video{animation:none !important;}
  *, *::before, *::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 30% 40%, transparent 0%, rgba(10,26,58,.25) 50%, rgba(10,26,58,.7) 100%),
    linear-gradient(180deg, rgba(10,26,58,.4) 0%, rgba(10,26,58,.05) 30%, rgba(10,26,58,.25) 70%, var(--deep) 100%);
}

.hero-content{position:relative;z-index:2;max-width:var(--max);width:100%;margin:0 auto;}
.hero-meta{
  display:flex;justify-content:flex-start;align-items:flex-start;gap:24px;
  margin-bottom:48px;flex-wrap:wrap;
}
.hero-meta .m{font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);line-height:var(--lh-relaxed);}
.hero-meta .m b{color:var(--paper);font-weight:500;}
.hero-meta .m .pink{color:var(--pink);}
.hero-meta .arrow-mini{color:var(--pink);margin:0 6px;font-weight:500;}

.hero-title{
  font-family:var(--display);font-weight:500;
  font-size:var(--fs-display);line-height:1.04;letter-spacing:var(--tr-tight);
  margin-bottom:48px;color:var(--paper);
  font-variation-settings:"opsz" 96;
  font-kerning:normal;
  padding-bottom:.12em;
}
.hero-title .line{display:block;padding:.04em 0 .08em;}
.hero-title em{
  font-family:var(--display);font-style:italic;font-weight:300;
  color:var(--pink);letter-spacing:0;
  font-variation-settings:"opsz" 96;
}
.hero-title .km{
  color:var(--pink);font-weight:600;font-family:var(--display);font-style:normal;letter-spacing:var(--tr-tight);
  position:relative;display:inline-block;
  font-variant-numeric:lining-nums tabular-nums;
}
.hero-title .km::after{
  content:"";position:absolute;left:0;bottom:.05em;width:100%;height:.55em;
  background:var(--pink);opacity:.18;z-index:-1;
  transform:scaleX(0);transform-origin:left;
  animation:underline-grow 1.4s 1.6s cubic-bezier(.7,0,.2,1) forwards;
}
@keyframes underline-grow{to{transform:scaleX(1);}}

.hero-bottom{
  display:grid;grid-template-columns:1.2fr 1fr auto;gap:48px;align-items:end;
  padding-top:32px;border-top:1px solid var(--line-2);
  margin-bottom:40px;
}
.hero-sub{max-width:520px;font-size:var(--fs-body-xl);line-height:var(--lh-normal);color:var(--paper-soft);}
.hero-sub em{font-family:var(--sans);font-style:italic;color:var(--ice);}

/* Bandeau chiffres clés dans le hero */
.hero-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  padding:24px 32px;
  position:relative;
  background:var(--paper);
  border-radius:var(--radius-md);
  box-shadow:0 30px 80px rgba(0,0,0,.4);
  margin-top:32px;
}
.hero-stat{padding:8px 24px;border-right:1px solid rgba(6,20,58,.12);}
.hero-stat:last-child{border-right:none;}
.hero-stat:first-child{padding-left:0;}
.hero-stat:last-child{padding-right:0;}
.hs-k{font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;color:rgba(6,20,58,.5);margin-bottom:10px;}
.hs-v{
  font-family:var(--sans);font-weight:500;
  font-size:var(--fs-h3);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);
  color:var(--abyss);display:flex;align-items:baseline;gap:6px;
  font-variant-numeric:lining-nums tabular-nums;
  margin-bottom:8px;
}
.hs-u{font-family:var(--mono);font-size:.28em;color:var(--pink);font-weight:600;letter-spacing:var(--tr-wide);text-transform:uppercase;}
.hs-u-sup{font-family:var(--sans);font-size:.42em;color:var(--pink);font-weight:500;align-self:flex-start;margin-top:.25em;letter-spacing:0;}
.hs-d{font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-wide);text-transform:uppercase;color:rgba(6,20,58,.6);line-height:var(--lh-normal);}

.hero-ctas{display:flex;gap:12px;flex-wrap:wrap;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:17px 30px;border-radius:var(--radius-pill);
  font-family:var(--sans);font-size:var(--fs-body-sm);font-weight:700;letter-spacing:0;
  line-height:1;
  transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
  position:relative;overflow:hidden;cursor:pointer;
}
.btn-pink{background:var(--pink-btn);color:var(--paper);border:1px solid var(--pink-btn);}
.btn-pink:hover{background:var(--pink-btn-hover);border-color:var(--pink-btn-hover);transform:translateY(var(--hover-lift));box-shadow:0 16px 40px var(--pink-glow);}
.btn-ghost{background:transparent;border:1px solid var(--line-3);color:var(--paper);}
.btn-ghost:hover{border-color:var(--pink);background:var(--pink-soft);transform:translateY(var(--hover-lift));}
/* btn-xl conservé pour compat : même rendu que .btn désormais */
.btn-xl{padding:17px 30px;font-size:var(--fs-body-sm);letter-spacing:0;}
.btn-xl .arrow{font-size:1em;}
.btn .arrow{display:inline-block;transition:transform var(--dur-base) var(--ease-out);}
.btn:hover .arrow{transform:translateX(4px) rotate(-12deg);}

.hero-scroll{
  position:absolute;left:50%;bottom:24px;transform:translateX(-50%);
  font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  animation:fade-in 1s 2s both;
}
.hero-scroll .line{width:1px;height:40px;background:linear-gradient(to bottom, transparent, var(--pink));position:relative;overflow:hidden;}
.hero-scroll .line::after{
  content:"";position:absolute;left:0;top:-40px;width:100%;height:40px;background:var(--pink);
  animation:scroll-line 2s ease-in-out infinite;
}
@keyframes scroll-line{
  0%{top:-40px;}
  100%{top:40px;}
}
@keyframes fade-in{from{opacity:0;}to{opacity:1;}}



/* ============== SECTIONS ============== */
section{position:relative;padding:var(--space-section) var(--pad-x);z-index:2;}
.container{max-width:var(--max);margin:0 auto;}

/* ============== STATS ============== */
.stats{background:var(--deep);}
.stats-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--radius-lg);overflow:hidden;}
.stat-card{
  background:var(--deep);padding:40px 32px;
  position:relative;overflow:hidden;
  transition:background .4s;
}
.stat-card::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:var(--pink);
  transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.7,0,.2,1);
}
.stat-card.in::before{transform:scaleX(1);}
.stat-card:hover{background:var(--deep-2);}
.stat-k{font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);margin-bottom:18px;}
.stat-v{font-family:var(--sans);font-weight:500;font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);display:flex;align-items:baseline;gap:8px;}
.stat-v .u{font-family:var(--mono);font-size:.22em;color:var(--pink);font-weight:500;letter-spacing:var(--tr-wide);text-transform:uppercase;}
.stat-v .u-sup{font-family:var(--sans);font-size:.42em;color:var(--pink);font-weight:500;align-self:flex-start;margin-top:.25em;letter-spacing:0;}
.stat-d{margin-top:14px;font-size:var(--fs-body-sm);color:var(--paper-soft);}


/* ============== MANIFESTE ============== */
.manifeste{background:var(--deep);}
.manifeste-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,8vw,120px);align-items:center;}
.manifeste-grid > *{min-width:0;}
.manifeste-left{display:flex;flex-direction:column;gap:32px;}
.manifeste-left h2{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);
  overflow-wrap:break-word;hyphens:manual;text-wrap:balance;
}
.manifeste-left h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.manifeste-left h2 .pink{color:var(--pink);}
.manifeste-left p{max-width:480px;color:var(--paper-soft);font-size:var(--fs-body-md);line-height:var(--lh-relaxed);}
.manifeste-left p strong{color:var(--pink);font-weight:500;}
.manifeste-right .img-reveal{aspect-ratio:4/5;border-radius:var(--radius-sm);overflow:hidden;position:relative;}
.manifeste-right .img-reveal img{width:100%;height:100%;object-fit:cover;}
.manifeste-words{
  max-width:var(--max);margin:clamp(60px,8vw,100px) auto 0;
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
}
.mword{
  background:var(--deep);padding:28px 24px;
  display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:flex-start;
}
.mword .num{font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);color:var(--pink);font-weight:500;padding-top:4px;}
.mword-body{display:flex;flex-direction:column;gap:6px;min-width:0;}
.mword-title{font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper);font-weight:500;}
.mword-desc{font-family:var(--sans);font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--paper-soft);letter-spacing:0;text-transform:none;}
.manifeste-cta{max-width:var(--max);margin:48px auto 0;display:flex;justify-content:center;}
.manifeste-cta-inline{margin-top:32px;}



/* ============== RÈGLES DU DÉFI ============== */
.rules{background:var(--abyss);position:relative;}
.rules-head{max-width:var(--max-text);margin-bottom:64px;}
.rules-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;
  color:var(--pink);font-weight:600;margin-bottom:18px;
}
.rules-eyebrow::before{
  content:"";width:24px;height:1px;background:var(--pink);
}
.rules-head h3{
  font-family:var(--sans);font-weight:500;
  font-size:var(--fs-h3);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);
  color:var(--paper);margin-bottom:16px;
}
.rules-head h3 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.rules-head p{font-size:var(--fs-body-md);line-height:var(--lh-relaxed);color:var(--paper-soft);}

.rules-list{
  list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--radius-md);overflow:hidden;
}
.rules-list li{
  background:var(--deep);padding:28px 32px;
  display:flex;gap:20px;align-items:flex-start;
  transition:background .35s;
}
.rules-list li:hover{background:var(--deep-2);}
.rules-num{
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);color:var(--pink);font-weight:600;
  padding-top:4px;min-width:28px;
}
.rules-list li > div{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;}
.rules-list li strong{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-body-lg);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);
  color:var(--paper);
}
.rules-list li span{
  font-family:var(--sans);font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--paper-soft);
}



/* ============== ROUTE / MAP ============== */
.route{background:var(--deep-2);padding-bottom:clamp(40px,6vw,96px);}
.route-wrap{max-width:1600px;margin:0 auto;position:relative;padding:0 var(--pad-x);}
.route-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px;flex-wrap:wrap;gap:32px 64px;position:relative;z-index:1;max-width:1200px;margin-left:auto;margin-right:auto;}
.route-head-left{display:flex;flex-direction:column;gap:16px;}
.route-head h3{font-family:var(--display);font-weight:600;font-size:var(--fs-page-h2);line-height:1.06;letter-spacing:-.015em;color:var(--paper);text-wrap:balance;margin:0;}
.route-head h3 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.route-meta{display:flex;gap:40px;font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);}
.route-meta b{color:var(--paper);font-family:var(--sans);font-weight:500;display:block;margin-top:6px;font-size:var(--fs-body-sm);letter-spacing:0;text-transform:none;}
.route-svg{width:100%;height:auto;position:relative;z-index:1;display:block;max-width:1600px;margin:0 auto;overflow:visible;}

/* Mosaïque, cadrages spécifiques */

/* Journal thumbs - cadrage uniforme */
.episode img[src*="CG_traversee_crawl"]{object-position:65% center;}
.episode img[src*="CG_voilier_selfie"]{object-position:center 30%;}
.episode img[src*="CG_arete_neige"]{object-position:center 40%;}
.episode img[src*="CG_arrivee_leman"]{object-position:center 30%;}
.episode img[src*="CG_portrait_NA"]{object-position:center 40%;}

.cap{
  position:absolute;left:20px;bottom:20px;z-index:3;
  display:flex;align-items:center;gap:14px;
  font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper);
  background:rgba(10,26,58,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:10px 16px;border-radius:999px;
  border:1px solid var(--line-2);
  max-width:calc(100% - 40px);
}
.cap .cap-l{display:inline-flex;align-items:center;gap:14px;}
.cap .cap-r{font-family:var(--sans);font-style:italic;letter-spacing:0;text-transform:none;color:var(--ice);opacity:.9;padding-left:14px;border-left:1px solid var(--line-2);}
.cap .dot{width:8px;height:8px;border-radius:50%;background:var(--pink);box-shadow:0 0 10px var(--pink);animation:pulse-dot 2s ease-in-out infinite;flex-shrink:0;}

@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(.85);}}

/* ============== CHIARA ============== */
.chiara{background:var(--pink-surface);}
.chiara .container > .eyebrow{margin-bottom:48px;}
.chiara .eyebrow{background:transparent;color:var(--abyss);border:1px solid var(--abyss);}
.chiara .eyebrow .dot{background:var(--abyss);}
.chiara-hero{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,5vw,80px);align-items:start;margin-bottom:80px;}
.chiara-hero > *{min-width:0;}
.chiara-portrait{aspect-ratio:3/4;border-radius:var(--radius-lg);overflow:hidden;position:relative;}

/* Slider 3 images */
.chiara-slider{
  position:relative;width:100%;height:100%;
  border-radius:var(--radius-lg);overflow:hidden;
  background:var(--deep);
}
.chiara-slide{
  position:absolute;inset:0;
  opacity:0;visibility:hidden;
  transition:opacity 1.2s cubic-bezier(.4,0,.2,1), visibility 0s 1.2s;
}
.chiara-slide.is-active{
  opacity:1;visibility:visible;
  transition:opacity 1.2s cubic-bezier(.4,0,.2,1), visibility 0s;
}
.chiara-slide img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  animation:slide-zoom 7s ease-out forwards;
}
.chiara-slide:not(.is-active) img{animation:none;}
@keyframes slide-zoom{
  from{transform:scale(1.04);}
  to{transform:scale(1.10);}
}
.chiara-slide-cap{
  position:absolute;left:20px;bottom:60px;z-index:3;
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper);
  background:rgba(10,26,58,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  padding:8px 14px;border-radius:999px;border:1px solid var(--line-2);
  opacity:0;transform:translateY(8px);
  transition:opacity .6s .3s, transform .6s .3s;
}
.chiara-slide-cap .dot{width:8px;height:8px;border-radius:50%;background:var(--pink);box-shadow:0 0 10px var(--pink);animation:pulse-dot 2s ease-in-out infinite;flex-shrink:0;}
.chiara-slide-cap .cap-l{display:inline-flex;align-items:center;gap:14px;}
.chiara-slide-cap .cap-r{font-family:var(--sans);font-style:italic;letter-spacing:0;text-transform:none;color:var(--ice);opacity:.9;padding-left:14px;border-left:1px solid var(--line-2);}
.chiara-slide.is-active .chiara-slide-cap{opacity:1;transform:none;}

/* Dots : pastilles rondes, l'active se remplit d'un anneau de progression blanc.
   Système partagé par le slider portrait (.chiara-dot) et le slider manifeste (.ms-dot). */
.chiara-slider-dots{
  position:absolute;left:0;right:0;bottom:18px;z-index:4;
  display:flex;justify-content:center;gap:14px;
}
.chiara-dot,.ms-dot{
  position:relative;
  width:11px;height:11px;border-radius:50%;
  background:rgba(242,246,255,.3);border:0;
  cursor:pointer;padding:0;
  transition:background .35s, transform .35s;
  -webkit-tap-highlight-color:transparent;
}
.chiara-dot:hover,.ms-dot:hover{background:rgba(242,246,255,.55);transform:scale(1.15);}
/* Anneau de progression (conic) sur la pastille active */
.chiara-dot::before,.ms-dot::before{
  content:"";position:absolute;inset:-5px;border-radius:50%;
  background:conic-gradient(rgba(242,246,255,.85) var(--p,0%), transparent 0);
  opacity:0;transition:opacity .3s;
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
          mask:radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
}
.chiara-dot.is-active,.ms-dot.is-active{background:rgba(242,246,255,.85);transform:scale(1.05);width:11px;}
/* L'anneau ne tourne que sur la pastille en cours de progression */
.chiara-dot.is-progressing::before,.ms-dot.is-progressing::before{
  opacity:1;
  animation:dot-progress 5s linear forwards;
}
/* Pause du slider : on fige l'anneau au lieu de le laisser filer */
.chiara-slider.is-paused .chiara-dot.is-progressing::before,
.manifeste-slider.is-paused .ms-dot.is-progressing::before{
  animation-play-state:paused;
}
@property --p{syntax:'<percentage>';inherits:false;initial-value:0%;}
@keyframes dot-progress{
  from{--p:0%;}
  to{--p:100%;}
}
@media (prefers-reduced-motion:reduce){
  .chiara-dot.is-progressing::before,.ms-dot.is-progressing::before{animation:none;opacity:0;}
}
.chiara-dot:focus-visible,.ms-dot:focus-visible{outline:2px solid var(--paper);outline-offset:4px;}

/* Dégradé en bas pour lisibilité de la caption */
.chiara-slider::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:40%;
  background:linear-gradient(180deg, transparent, rgba(6,20,58,.6));
  pointer-events:none;z-index:1;
}
.chiara-intro h2{font-family:var(--sans);font-weight:500;font-size:var(--fs-h3);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);margin-bottom:32px;color:var(--paper);overflow-wrap:break-word;word-break:normal;hyphens:none;text-wrap:balance;}
.chiara-intro h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--deep);}
.chiara-intro p{font-size:var(--fs-body-md);line-height:var(--lh-relaxed);color:var(--deep);margin-bottom:16px;max-width:520px;}
.chiara-intro p strong{color:var(--deep);font-weight:600;}
.chiara-intro p em{color:var(--paper);font-style:italic;}
.chiara-intro .lead-p{font-size:var(--fs-body-lg);line-height:var(--lh-normal);color:var(--paper);font-family:var(--sans);font-weight:600;font-style:normal;margin-bottom:28px;max-width:560px;border-left:0;padding-left:0;}

/* Box stats : carte blanche posée sur le fond rose */
.chiara-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  margin:0 0 80px;padding:0;border-radius:var(--radius-lg);
  background:var(--paper);
  box-shadow:0 12px 40px rgba(6,20,58,.12);
  overflow:hidden;
}
.cstat{
  padding:32px 28px;
  border-right:1px solid rgba(6,20,58,.08);
  display:flex;flex-direction:column;gap:8px;
}
.cstat:last-child{border-right:0;}
.cstat-v{
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--pink);font-weight:500;
  font-variant-numeric:lining-nums tabular-nums;
}
.cstat-k{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h6);
  line-height:var(--lh-tight);letter-spacing:var(--tr-snug);color:var(--deep);
}
.cstat-sub{
  font-family:var(--sans);font-size:var(--fs-body-sm);line-height:var(--lh-normal);
  color:rgba(6,20,58,.65);
}

@media (max-width:1024px) and (min-width:641px){
  .chiara-stats{grid-template-columns:repeat(2,1fr);}
  .cstat:nth-child(2){border-right:0;}
  .cstat:nth-child(1), .cstat:nth-child(2){border-bottom:1px solid rgba(6,20,58,.08);}
}

/* Histoire en chapitres, accordéon */
.chiara-quote{
  font-family:var(--sans);font-weight:300;font-style:italic;
  font-size:var(--fs-h2);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);
  max-width:1100px;margin:128px auto 96px;padding:0 24px;
  color:var(--paper);position:relative;text-align:center;
}
.chiara-quote::before{
  content:"";display:block;
  position:absolute;top:-32px;left:50%;transform:translateX(-50%);
  width:48px;height:3px;background:var(--deep);border-radius:999px;
  pointer-events:none;
}
.chiara-quote cite{display:block;margin-top:40px;font-family:var(--mono);font-style:normal;font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--deep);}
.chiara-quote cite::before{content:"— ";color:var(--paper);}

/* Citation pleine largeur, centrée, sans filet */
.chiara-quote-feature{
  max-width:1000px;margin:72px auto;padding:0 clamp(20px,4vw,40px);
  text-align:center;
}
.chiara-quote-feature p{
  font-family:var(--sans);font-weight:500;font-style:italic;
  font-size:var(--fs-h2);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);
  color:var(--paper);margin:0;text-wrap:balance;
}
.chiara-quote-feature cite{
  display:block;margin-top:28px;
  font-family:var(--mono);font-style:normal;font-size:var(--fs-mono-sm);
  letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--abyss);
}
.chiara-quote-feature cite::before{content:"— ";color:var(--paper);}

/* ============== PARCOURS · ACCORDÉONS (bloc rose) ============== */
.chiara-story{margin:0;}
.chiara-story-head{margin-bottom:24px;}
.chiara-story-head .eyebrow{margin-bottom:22px;}
.chiara-story-h3{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h3);
  line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);
  text-wrap:balance;
}
.chiara-story-h3 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--deep);}

.accordion{
  border-top:1px solid rgba(255,255,255,.28);
}
.acc-item{border-bottom:1px solid rgba(255,255,255,.28);}
.acc-item summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:flex-start;gap:18px;
  padding:24px 8px;
  transition:background .25s;
  -webkit-tap-highlight-color:transparent;
}
.acc-item summary::-webkit-details-marker{display:none;}
/* Survol accordéon chiara : tout passe en bleu foncé (titre, sous-titre, icône +/-) */
.accordion:not(.accordion-rules) .acc-item summary:hover .acc-title,
.accordion:not(.accordion-rules) .acc-item summary:hover .acc-title em{color:var(--abyss);}
.accordion:not(.accordion-rules) .acc-item summary:hover .acc-icon::before,
.accordion:not(.accordion-rules) .acc-item summary:hover .acc-icon::after{background:var(--abyss);}
.acc-num{
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  color:var(--abyss);font-weight:500;font-variant-numeric:lining-nums tabular-nums;
  flex-shrink:0;
}
.acc-title{
  flex:1;min-width:0;
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h5);
  line-height:var(--lh-snug);letter-spacing:var(--tr-snug);color:var(--paper);
  transition:color .25s;
}
.acc-title em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--paper);opacity:.85;display:block;font-size:var(--fs-body-sm);margin-top:4px;letter-spacing:0;transition:color .25s;}
.acc-icon{
  position:relative;width:18px;height:18px;flex-shrink:0;
}
.acc-icon::before,.acc-icon::after{
  content:"";position:absolute;top:50%;left:50%;
  background:var(--abyss);border-radius:2px;
  transform:translate(-50%,-50%);
  transition:transform .3s cubic-bezier(.4,0,.2,1), opacity .3s, background .25s;
}
.acc-icon::before{width:14px;height:2px;}
.acc-icon::after{width:2px;height:14px;}
.acc-item[open] .acc-icon::after{transform:translate(-50%,-50%) scaleY(0);opacity:0;}
.acc-body{
  padding:0 8px 28px 56px;
  animation:acc-open .4s cubic-bezier(.2,.7,.2,1);
}
.acc-body p{
  font-size:var(--fs-body-md);line-height:var(--lh-relaxed);color:rgba(255,255,255,.92);
  margin-bottom:14px;
}
.acc-body p:last-child{margin-bottom:0;}
.acc-body p strong{color:var(--paper);font-weight:600;}
.acc-pull{
  font-style:italic;color:var(--paper);
  border-left:2px solid var(--abyss);padding-left:18px;margin-top:18px;
}
@keyframes acc-open{
  from{opacity:0;}
  to{opacity:1;}
}
@media (prefers-reduced-motion:reduce){
  .acc-body{animation:none;}
  .acc-icon::before,.acc-icon::after{transition:none;}
}
@media (max-width:640px){
  .acc-item summary{padding:20px 4px;gap:12px;}
  .acc-body{padding:0 4px 22px 40px;}
}
/* Variante accordéon sur fond bleu (règles du parcours) */
.accordion-rules{border-top-color:var(--line-2);margin-top:24px;}
.accordion-rules .acc-item{border-bottom-color:var(--line-2);}
.accordion-rules .acc-num{color:var(--pink);opacity:1;}
.accordion-rules .acc-title{color:var(--paper);}
.accordion-rules .acc-icon::before,.accordion-rules .acc-icon::after{background:var(--pink);}
.accordion-rules .acc-item summary:hover .acc-title{color:var(--pink);}
.accordion-rules .acc-item summary:hover .acc-icon::before,
.accordion-rules .acc-item summary:hover .acc-icon::after{background:var(--pink);}
.accordion-rules .acc-body p{color:var(--paper-soft);}
.accordion-rules .acc-body p strong{color:var(--paper);}
/* Clôture de la page Chiara : encart d'appel à soutenir */
.gallery{padding-bottom:var(--space-section-sm);}
.chiara-outro{padding-top:0;padding-bottom:var(--space-section);}
.chiara-outro-card{
  max-width:680px;margin:0 auto;text-align:center;
  position:relative;
}
.chiara-outro-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--paper);
  padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.4);
  margin-bottom:24px;position:relative;z-index:2;
}
.chiara-outro-eyebrow .dot{
  width:6px;height:6px;border-radius:50%;background:var(--pink);
  box-shadow:0 0 10px var(--pink);flex-shrink:0;
}
.chiara-outro-title{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h2);
  line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);
  margin:0 0 18px;position:relative;z-index:2;text-wrap:balance;
}
.chiara-outro-title em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.chiara-outro-lead{
  font-size:var(--fs-body-lg);line-height:var(--lh-relaxed);color:var(--paper-soft);
  max-width:520px;margin:0 auto 36px;position:relative;z-index:2;text-wrap:pretty;
}
.chiara-outro-cta{
  display:flex;flex-wrap:wrap;gap:16px;justify-content:center;
  position:relative;z-index:2;
}
@media (max-width:640px){
  .chiara-outro-cta{flex-direction:column;align-items:stretch;}
  .chiara-outro-cta .btn{width:100%;text-align:center;justify-content:center;}
}



/* ============== IMPACT ============== */
/* ============================================================
   SECTION GIVE · la cause (bandeau) + paliers de don (grille)
   ============================================================ */
.give{background:var(--deep-2);position:relative;overflow:hidden;}
.give::before{
  content:"";position:absolute;top:-20%;right:-10%;width:600px;height:600px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,61,138,.10), transparent 65%);pointer-events:none;
}
.give .container{position:relative;z-index:2;}

/* Bandeau cause, pleine largeur, 2 colonnes */
.give-cause{
  display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:center;
  padding:48px;border-radius:var(--radius-lg);
  background:var(--deep);border:1px solid var(--line-2);
  margin-bottom:80px;
}
.give-cause-text .eyebrow{margin-bottom:24px;}
.give-cause-text h2{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h3);line-height:var(--lh-snug);
  letter-spacing:var(--tr-tight);color:var(--paper);text-wrap:balance;margin-bottom:20px;
}
.give-cause-text h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.give-lead{font-size:var(--fs-body-md);line-height:var(--lh-relaxed);color:var(--paper-soft);margin-bottom:28px;}
.give-cause-text .fpem-logo-link{display:inline-block;}
.give-cause-text .fpem-logo{width:200px;}

.give-cause-facts{display:flex;flex-direction:column;gap:0;}
.give-fact{display:flex;flex-direction:column;gap:4px;padding:16px 0;border-top:1px solid var(--line-2);}
.give-fact:first-child{border-top:none;padding-top:0;}
.give-fact span{font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);}
.give-fact b{font-family:var(--sans);font-style:italic;font-weight:400;font-size:var(--fs-h6);color:var(--paper);letter-spacing:var(--tr-snug);}
.give-cause-cta{margin-top:24px;width:fit-content;}

/* Encart transparence */
.give-trust{
  display:flex;align-items:center;gap:18px;
  background:var(--pink-soft);border:1px solid rgba(255,61,138,.3);
  border-radius:var(--radius-md);padding:22px 28px;margin-bottom:72px;
}
.give-trust-icon{
  flex:none;width:40px;height:40px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--pink);color:#fff;font-size:18px;line-height:1;
}
.give-trust p{font-size:var(--fs-body-md);line-height:var(--lh-relaxed);color:var(--paper-soft);margin:0;}
.give-trust strong{color:var(--paper);font-weight:600;}
@media (max-width:620px){
  .give-trust{flex-direction:column;align-items:flex-start;gap:12px;padding:20px;}
}

/* En-tête paliers */
.give-tiers-head{margin-bottom:32px;max-width:var(--max-text);}
.give-tiers-head h3{font-family:var(--sans);font-weight:500;font-size:var(--fs-h3);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);margin-bottom:14px;text-wrap:balance;}
.give-tiers-head h3 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.give-tiers-head p{font-size:var(--fs-body-md);line-height:var(--lh-relaxed);color:var(--paper-soft);}

/* Grille de paliers */
.give-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.give-tiers .tier{border-radius:var(--radius-md);}
.give-tiers .tier-hero{grid-column:span 3;}

@media (max-width:980px){
  .give-cause{grid-template-columns:1fr;gap:40px;padding:36px;}
  .give-tiers{grid-template-columns:repeat(2,1fr);}
  .give-tiers .tier-hero{grid-column:span 2;}
}
@media (max-width:620px){
  .give-cause{padding:28px;}
  .give-tiers{grid-template-columns:1fr;}
  .give-tiers .tier-hero{grid-column:span 1;}
}

.impact{background:var(--deep-2);position:relative;overflow:hidden;}
.impact::before{
  content:"";position:absolute;top:20%;left:-10%;width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,61,138,.15), transparent 70%);filter:blur(80px);
  pointer-events:none;
}
.impact-head{margin-bottom:64px;display:flex;flex-direction:column;gap:24px;}
.impact-head h2{font-family:var(--sans);font-weight:500;font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);overflow-wrap:break-word;hyphens:manual;text-wrap:balance;}
.impact-head h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.impact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start;position:relative;z-index:2;}
.impact-text h3{font-family:var(--sans);font-weight:500;font-size:var(--fs-h3);line-height:var(--lh-snug);letter-spacing:var(--tr-tight);margin-bottom:24px;color:var(--paper);text-wrap:balance;}
.impact-text h3 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.impact-text p{font-size:var(--fs-body-md);line-height:var(--lh-relaxed);color:var(--paper-soft);margin-bottom:16px;max-width:460px;}
.impact-text .impact-lead{font-size:var(--fs-body-lg);color:var(--paper);}
.fpem-logo-link{
  display:inline-block;margin-bottom:32px;
  text-decoration:none;
  transition:transform .35s;
}
.fpem-logo-link:hover{transform:translateY(var(--hover-lift));}
.fpem-logo-link:focus-visible{outline:2px solid var(--pink);outline-offset:8px;border-radius:4px;}
.fpem-logo{
  display:block;
  width:340px;max-width:100%;
  aspect-ratio:3502.58 / 735.71;
  background:var(--paper);
  -webkit-mask:url("assets/FPEM_logo.svg") center/contain no-repeat;
  mask:url("assets/FPEM_logo.svg") center/contain no-repeat;
  transition:background .35s;
}
.fpem-logo-link:hover .fpem-logo{background:var(--pink);}

.impact-meta{margin-top:40px;}
.impact-meta-row{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:18px 0;border-top:1px solid var(--line-2);}
.impact-meta-row:last-child{border-bottom:1px solid var(--line-2);}
.impact-meta-row span{font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);}
.impact-meta-row b{font-family:var(--sans);font-style:italic;font-weight:400;font-size:var(--fs-h6);color:var(--paper);letter-spacing:var(--tr-snug);text-align:right;}

.tiers-col{display:flex;flex-direction:column;gap:24px;}
.tiers-head h4{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h4);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);color:var(--paper);margin-bottom:10px;
}
.tiers-head h4 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.tiers-head p{font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--paper-soft);}
.tiers{display:flex;flex-direction:column;gap:12px;}
.tier{
  display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;
  padding:24px 28px;background:var(--deep);border:1px solid var(--line-2);border-radius:var(--radius-md);
  cursor:pointer;transition:transform .35s cubic-bezier(.34,1.56,.64,1), border-color .35s, background .35s;
  position:relative;overflow:hidden;
  color:var(--paper);text-decoration:none;
}
.tier:hover{transform:translateY(var(--hover-lift));border-color:var(--pink);background:var(--deep-2);}
.tier-amount{font-family:var(--sans);font-weight:500;font-size:var(--fs-num-md);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);display:flex;align-items:baseline;gap:10px;min-width:140px;}
.tier-amount .chf{font-family:var(--mono);font-size:var(--fs-mono-sm);font-weight:500;color:var(--paper-dim);letter-spacing:var(--tr-wide);text-transform:uppercase;}
.tier-body{display:flex;flex-direction:column;gap:4px;min-width:0;}
.tier-role{font-family:var(--sans);font-size:var(--fs-h6);font-weight:500;letter-spacing:var(--tr-snug);color:var(--paper);line-height:var(--lh-snug);}
.tier-desc{font-family:var(--sans);font-size:var(--fs-mono-sm);color:var(--paper-soft);line-height:var(--lh-normal);letter-spacing:0;}
.tier-arrow{font-size:var(--fs-h6);color:var(--pink);transform:rotate(-30deg);transition:transform .35s;}
.tier:hover .tier-arrow{transform:rotate(0);}
.tier.featured{background:linear-gradient(135deg, rgba(255,61,138,.12), rgba(255,61,138,.02));border-color:var(--pink);}
.tier.tier-hero{
  background:var(--pink-surface);border-color:var(--pink-surface);
  box-shadow:0 12px 40px rgba(255,61,138,.35);
}
.tier.tier-hero:hover{background:var(--pink-btn-hover);border-color:var(--pink-btn-hover);transform:translateY(var(--hover-lift));box-shadow:0 18px 50px rgba(255,61,138,.45);}
.tier.tier-hero .tier-amount,
.tier.tier-hero .tier-role,
.tier.tier-hero .tier-desc{color:#fff;}
.tier.tier-hero .tier-amount .chf{color:rgba(255,255,255,.75);}
.tier.tier-hero .tier-desc{color:rgba(255,255,255,.92);}
.tier.tier-hero .tier-arrow{color:#fff;}
.tier.tier-hero::after{
  content:"exclusif";position:absolute;top:14px;right:14px;
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;color:#fff;
  padding:4px 10px;border:1px solid rgba(255,255,255,.6);border-radius:999px;
}
.impact-cta{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap;}


/* ============== NAGER AVEC CHIARA ============== */
.swim-with{
  background:var(--abyss);position:relative;overflow:hidden;
}
.swim-with::before{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:120%;height:80%;
  background:radial-gradient(ellipse at center top, rgba(255,61,138,.12), transparent 60%);
  pointer-events:none;z-index:0;
}
.swim-with .container{position:relative;z-index:1;}

.swim-head{max-width:880px;margin-bottom:64px;}
.swim-head h2{
  font-family:var(--sans);font-weight:500;
  font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);
  color:var(--paper);margin:14px 0 24px;
  overflow-wrap:break-word;hyphens:manual;text-wrap:balance;
}
.swim-head h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.swim-lead{
  font-size:var(--fs-body-xl);line-height:var(--lh-normal);color:var(--paper-soft);
}
.swim-lead strong{
  color:var(--paper);font-weight:500;display:inline-block;
  background:linear-gradient(transparent 65%, rgba(255,61,138,.4) 65%);
  padding:0 4px;
}

.swim-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:16px;
  margin-bottom:64px;
}
.swim-card{
  background:var(--deep-2);border:1px solid var(--line-2);border-radius:var(--radius-md);
  padding:32px 24px;
  transition:border-color .35s, transform .35s, background .35s;
}
.swim-card:hover{border-color:var(--pink);transform:translateY(var(--hover-lift-card));background:var(--deep);}
.swim-card-num{
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);color:var(--pink);
  font-weight:500;margin-bottom:24px;
}
.swim-card-k{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h5);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);
  color:var(--paper);margin-bottom:14px;
}
.swim-card-p{
  font-family:var(--sans);font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--paper-soft);
}

.swim-cta{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:14px;text-align:center;
}




/* ============== PARTNERS ============== */
.partners{background:var(--deep);border-top:1px solid var(--line);}
.partners-head{margin-bottom:64px;display:flex;flex-direction:column;gap:24px;}
.partners-head h2{font-family:var(--sans);font-weight:500;font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);overflow-wrap:break-word;hyphens:manual;text-wrap:balance;}
.partners-head h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.partners-current{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-2);
  border:1px solid var(--line-2);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:80px;
}
.pcell{
  background:var(--deep);padding:56px 24px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  position:relative;overflow:hidden;
  transition:background .35s;
}
.pcell::before{
  content:"";position:absolute;inset:0;background:var(--pink);
  transform:translateY(100%);transition:transform .45s cubic-bezier(.7,0,.2,1);
}
.pcell:hover{color:var(--paper);}
.pcell:hover::before{transform:translateY(0);}
.pcell > *{position:relative;z-index:1;}
.pcell-name{font-family:var(--sans);font-weight:500;font-size:var(--fs-num-lg);letter-spacing:var(--tr-snug);color:var(--paper);}
.pcell-kind{font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);margin-top:14px;transition:color .35s;}
.pcell:hover .pcell-kind{color:var(--paper);}
.pcell-story{
  font-family:var(--sans);font-style:italic;font-weight:300;
  font-size:var(--fs-body-sm);line-height:var(--lh-normal);letter-spacing:0;
  color:var(--paper);
  margin-top:14px;max-width:280px;
  transition:color .35s;
}
.pcell:hover .pcell-story{color:var(--paper);}

.partners-target h3{font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);margin-bottom:28px;display:flex;align-items:center;gap:14px;}
.partners-target h3 .dash{width:32px;height:1px;background:var(--pink);}
.target-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line-2);
  border:1px solid var(--line-2);border-radius:var(--radius-md);overflow:hidden;margin-bottom:80px;
}
.target-grid div{
  background:var(--deep);padding:28px 18px;text-align:center;
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h5);color:var(--paper-soft);letter-spacing:var(--tr-snug);
  transition:color .35s, background .35s;cursor:pointer;
}
.target-grid div:hover{color:var(--pink);background:var(--deep-2);}

.benefits-wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;padding-top:64px;border-top:1px solid var(--line-2);}
.benefits-wrap h3{font-family:var(--sans);font-weight:500;font-size:var(--fs-h3);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);margin-bottom:24px;color:var(--paper);text-wrap:balance;}
.benefits-wrap h3 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.benefits-wrap p{font-size:var(--fs-body-md);line-height:var(--lh-relaxed);color:var(--paper-soft);margin-bottom:32px;max-width:420px;}
.benefits{display:flex;flex-direction:column;gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--radius-md);overflow:hidden;}
.benefit{
  background:var(--deep);padding:20px 28px;
  display:grid;grid-template-columns:48px 1fr;gap:18px;align-items:center;
  transition:background .35s, padding-left .35s;cursor:pointer;
}
.benefit:hover{background:var(--deep-2);padding-left:36px;}
.benefit .n{font-family:var(--mono);font-size:var(--fs-mono-sm);color:var(--pink);letter-spacing:var(--tr-wide);font-weight:500;}
.benefit .t{font-family:var(--sans);font-size:var(--fs-body-md);color:var(--paper);}



/* Partners intro */
.partners-head-v2{display:block;margin-bottom:64px;}
.phead-top{display:flex;flex-direction:column;gap:24px;margin-bottom:32px;}
/* Why 4 piliers */
.why-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  margin-bottom:96px;
}
.why-card{
  padding:36px 28px;border-radius:var(--radius-md);
  background:var(--deep-2);border:1px solid var(--line-2);
  transition:border-color .35s, transform .35s, background .35s;
}
.why-card:hover{border-color:var(--pink);transform:translateY(var(--hover-lift-card));background:linear-gradient(180deg,var(--deep-2),rgba(255,61,138,.03));}
.why-num{font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);color:var(--pink);margin-bottom:32px;}
.why-k{font-family:var(--sans);font-weight:500;font-size:var(--fs-h4);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);color:var(--paper);margin-bottom:14px;}
.why-p{font-family:var(--sans);font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--paper-soft);}

/* Sponsor tiers */
.sponsor-tiers{margin-bottom:96px;}
.sponsor-tiers-head{margin-bottom:48px;max-width:780px;}
.sponsor-tiers-head h3{font-family:var(--sans);font-weight:500;font-size:var(--fs-h3);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);margin-bottom:20px;color:var(--paper);text-wrap:balance;}
.sponsor-tiers-head h3 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.sponsor-tiers-head p{font-size:var(--fs-body-md);line-height:var(--lh-relaxed);color:var(--paper-soft);}
.stier-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.stier{
  padding:28px 22px;border-radius:var(--radius-md);
  background:var(--deep-2);border:1px solid var(--line-2);
  display:flex;flex-direction:column;
  transition:border-color .35s, transform .35s;
  position:relative;
}
.stier:hover{border-color:var(--pink);transform:translateY(var(--hover-lift-card));}
.stier.featured{background:linear-gradient(135deg, rgba(255,61,138,.10), rgba(255,61,138,.02));border-color:var(--pink);}
.stier.featured::after{
  content:"recommandé";position:absolute;top:-12px;right:24px;
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper);
  padding:6px 12px;background:var(--pink-btn);border-radius:999px;
}
.stier-rank{font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);margin-bottom:8px;}
.stier-rank em{font-family:var(--mono);font-style:italic;color:var(--pink);font-weight:500;text-transform:none;letter-spacing:var(--tr-wide);}
.stier-titre{
  background:linear-gradient(160deg, rgba(255,61,138,.10), rgba(255,61,138,.02));
  border-color:var(--pink);
}
.stier-titre .stier-name{color:var(--paper);}
.stier-titre .stier-amount{color:var(--paper);}
.stier-name{font-family:var(--sans);font-weight:500;font-size:var(--fs-h6);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);color:var(--paper);margin-bottom:20px;}
.stier-cta{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;font-weight:500;
  color:var(--pink);align-self:flex-start;
  padding:14px 18px;border-radius:999px;border:1px solid var(--pink);
  background:transparent;
  transition:background .3s, color .3s, transform .3s, box-shadow .3s;
  margin-bottom:22px;
  text-decoration:none;
}
.stier-cta .arrow{display:inline-block;transition:transform .3s;}
.stier-cta:hover{background:var(--pink-btn-hover);border-color:var(--pink-btn-hover);color:var(--paper);transform:translateY(var(--hover-lift));box-shadow:0 12px 30px var(--pink-glow);}
.stier-cta:hover .arrow{transform:translateX(4px);}
.stier-titre .stier-cta{background:var(--pink);color:var(--paper);border-color:var(--pink);}
.stier-titre .stier-cta:hover{background:var(--pink-btn-hover);border-color:var(--pink-btn-hover);}
.stier-list{list-style:none;display:flex;flex-direction:column;gap:10px;flex:1;}
.stier-list li{
  font-family:var(--sans);font-size:var(--fs-mono-sm);line-height:var(--lh-normal);color:var(--paper-soft);
  padding-left:16px;position:relative;
}
.stier-list li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:1px;background:var(--pink);}

/* Partenaires déjà engagés (titre repris) */
.partners-current-wrap{margin-bottom:80px;}
.partners-current-wrap h3{font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);margin-bottom:28px;display:flex;align-items:center;gap:14px;}
.partners-current-wrap h3 .dash{width:32px;height:1px;background:var(--pink);}
.partners-current-wrap .partners-current{margin-bottom:0;}

/* Variante : bloc en tête de section, avec CTA centré */
.partners-current-top{
  margin-bottom:96px;
}
.partners-current-cta{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  margin-top:40px;gap:14px;text-align:center;
}
.partners-current-note{
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;
  color:var(--paper-dim);
}

/* Bloc QoQa : plateforme officielle de récolte de don */
.qoqa-block{
  display:block;
  padding:56px 56px 0;border-radius:var(--radius-lg);
  background:var(--pink-surface);
  border:1px solid var(--pink-surface);
  margin-bottom:64px;position:relative;overflow:hidden;
  box-shadow:0 20px 60px rgba(255,61,138,.35);
}
.qoqa-block::before{
  content:"";position:absolute;top:-30%;right:-10%;width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.18), transparent 65%);
  pointer-events:none;
}
.qoqa-left{position:relative;z-index:2;padding-bottom:56px;}
.qoqa-left .eyebrow{
  margin-bottom:24px;
  background:transparent;padding:10px 16px;border:1px solid rgba(255,255,255,.6);
  color:#fff;
}
.qoqa-left .eyebrow .dot{background:#fff;}
.qoqa-title{font-family:var(--sans);font-weight:500;font-size:var(--fs-h3);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);margin-bottom:24px;color:#fff;text-wrap:balance;}
.qoqa-title em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--abyss);}
.qoqa-wordmark{
  width:auto;height:clamp(48px,7vw,84px);margin-bottom:28px;
  filter:drop-shadow(0 6px 18px rgba(6,20,58,.25));
}
.qoqa-left p{font-size:var(--fs-body-lg);line-height:var(--lh-relaxed);color:#fff;margin-bottom:24px;max-width:560px;}
.qoqa-left strong{color:#fff;font-weight:600;}
.qoqa-trust{
  border-left:3px solid #fff;
  padding-left:18px;
  margin-top:8px;margin-bottom:32px;
  font-size:var(--fs-body-md);
}
.qoqa-trust strong{color:#fff;}
.qoqa-block .fpem-logo-link{display:inline-block;margin-bottom:28px;}
.qoqa-block .fpem-logo{width:auto;height:clamp(40px,5.5vw,64px);}
.qoqa-block .fpem-logo-link:hover .fpem-logo{background:var(--abyss);}
.qoqa-block .qoqa-cta{
  padding:24px 36px;font-size:var(--fs-body-md);
  background:#fff;color:var(--pink);border-color:#fff;
}
.qoqa-block .qoqa-cta:hover{background:rgba(255,255,255,.92);color:var(--pink);border-color:rgba(255,255,255,.92);}
.qoqa-cta .arrow{color:var(--pink);}
/* Loutre debout, façon QoQa : ancrée par le HAUT avec ~1/3 de vide au-dessus,
   hauteur = 2/3 du bloc. La tête n'est jamais coupée ; seuls les pieds peuvent déborder en bas. */
.qoqa-loutre-nage{
  position:absolute;right:24px;top:6%;bottom:auto;z-index:1;
  width:auto;height:66%;
  margin:0;
  transform-origin:top center;
  filter:drop-shadow(0 12px 26px rgba(6,20,58,.22));
  animation:qoqa-swim 5s ease-in-out infinite;
  will-change:transform;
  pointer-events:none;
}
@keyframes qoqa-swim{
  0%,100%{transform:translateY(0) rotate(-1.5deg);}
  50%{transform:translateY(-12px) rotate(1.5deg);}
}
@keyframes qoqa-swim-mb{
  0%,100%{transform:translateX(-50%) translateY(0) rotate(-1.5deg);}
  50%{transform:translateX(-50%) translateY(-8px) rotate(1.5deg);}
}
@media (prefers-reduced-motion:reduce){
  .qoqa-loutre-nage{animation:none;}
}
/* Plage intermédiaire : la colonne droite devient trop étroite. La loutre repasse dans le flux,
   sous le texte, à taille modérée. Elle n'agrandit pas le bloc artificiellement : pas de padding forcé. */
@media (max-width:1024px) and (min-width:641px){
  .qoqa-block{padding-bottom:0;}
  .qoqa-left{padding-right:0;padding-bottom:270px;}
  .qoqa-block .qoqa-cta{display:flex;width:fit-content;margin-inline:auto;}
  .qoqa-loutre-nage{
    position:absolute;left:50%;bottom:-28px;top:auto;right:auto;
    transform:translateX(-50%);transform-origin:bottom center;
    height:auto;width:auto;max-height:340px;max-width:48%;
    margin:0;
    animation-name:qoqa-swim-mb;
  }
}


/* Partenaires actuels avec logos */
.partners-current-logos .pcell{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;
  padding:48px 24px;color:var(--paper);
  text-decoration:none;
}
.partners-current-logos .pcell::before{display:none;}
.partners-current-logos .pcell:hover{background:var(--deep-2);}
.pcell-logo{
  display:flex;align-items:center;justify-content:center;
  height:90px;width:100%;max-width:280px;
  transition:transform .35s, opacity .35s;
  opacity:.85;
}
.partners-current-logos .pcell:hover .pcell-logo{opacity:1;transform:scale(1.05);}
.pcell-logo-arena{color:var(--paper);}
.pcell-logo-arena svg{width:auto;height:64px;display:block;}
.pcell-logo-pkf img,
.pcell-logo-skl img,
.pcell-logo-wip img{width:auto;height:72px;display:block;object-fit:contain;}
.pcell-logo-qoqa img{width:auto;height:52px;display:block;object-fit:contain;}
.partners-current-logos .pcell-kind{margin-top:0;}




/* ============== GOODIES ============== */
.goodies{background:var(--abyss);}
.goodies-head{max-width:760px;margin-bottom:64px;}
.goodies-head h2{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);margin:14px 0 18px;
}
.goodies-head h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.goodies-head p{font-size:var(--fs-body-lg);line-height:var(--lh-normal);color:var(--paper-soft);max-width:560px;}

/* Grille produits: 2 t-shirts côte à côte */
.shop-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:24px;
  margin-bottom:64px;
}
.shop-item{
  position:relative;border-radius:var(--radius-md);overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.01) 100%);
  border:1px solid var(--line);
  transition:border-color .4s, transform .4s cubic-bezier(.2,.7,.2,1);
  display:flex;flex-direction:column;
}
.shop-item:hover{border-color:var(--line-3);transform:translateY(var(--hover-lift-card));}
.shop-item-media{
  position:relative;aspect-ratio:1/1;overflow:hidden;
  background:radial-gradient(ellipse at center, rgba(255,61,138,.08) 0%, transparent 60%), var(--deep);
  display:flex;align-items:center;justify-content:center;
  padding:24px;
}
.shop-item-media img{
  max-width:100%;max-height:100%;width:auto;height:auto;
  object-fit:contain;display:block;
  filter:drop-shadow(0 20px 40px rgba(0,0,0,.4));
  transform:scale(.96);
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
  will-change:transform;
}
.shop-item:hover .shop-item-media img{transform:scale(1);}
.shop-item-tag{
  position:absolute;top:16px;left:16px;
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;
  color:var(--paper);background:rgba(6,20,58,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  padding:6px 12px;border-radius:999px;border:1px solid var(--line-2);
}
.shop-item-body{
  padding:24px 28px 28px;display:flex;flex-direction:column;gap:10px;flex:1;
}
.shop-item-title{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h4);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);
  color:var(--paper);
}
.shop-item-title em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.shop-item-desc{font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--paper-soft);}
.shop-item-foot{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin-top:8px;padding-top:18px;border-top:1px solid var(--line);
}
.shop-item-price{
  font-family:var(--sans);font-weight:600;font-size:var(--fs-h5);letter-spacing:var(--tr-snug);color:var(--paper);
  display:inline-flex;align-items:baseline;gap:6px;
}
.shop-item-price small{font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);font-weight:400;}
.shop-item-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--pink-btn);color:var(--paper);
  border:1px solid var(--pink-btn);
  padding:10px 18px;border-radius:var(--radius-pill);
  font-family:var(--sans);font-weight:700;font-size:var(--fs-body-sm);letter-spacing:0;line-height:1;
  transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.shop-item-cta:hover{background:var(--pink-btn-hover);border-color:var(--pink-btn-hover);transform:translateY(var(--hover-lift));box-shadow:0 16px 40px var(--pink-glow);}
.shop-item-cta .arrow{transition:transform var(--dur-base) var(--ease-out);display:inline-block;}
.shop-item-cta:hover .arrow{transform:translateX(4px) rotate(-12deg);}
.shop-item-cta:hover .arrow{transform:translateX(3px);}

/* Bandeau Playlist Spotify - intégré au site, sobre */
.playlist-strip{
  display:grid;grid-template-columns:1fr 1.4fr;gap:32px;align-items:center;
  padding:32px;
  background:linear-gradient(135deg, rgba(255,61,138,.1) 0%, rgba(10,26,58,.5) 100%);
  border:1px solid var(--line-2);
  border-radius:var(--radius-md);
}
.playlist-text{display:flex;flex-direction:column;gap:8px;}
.playlist-eyebrow{
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--pink);
}
.playlist-title{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h4);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);color:var(--paper);
}
.playlist-title em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.playlist-desc{font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--paper-soft);margin-top:4px;}
.playlist-embed{
  border-radius:var(--radius-sm);overflow:hidden;
  border:1px solid var(--line);
}
.playlist-embed iframe{display:block;width:100%;height:152px;border:0;}



/* ============== GALERIE ============== */
.gallery{background:var(--deep);}
.gallery-head{max-width:760px;margin-bottom:64px;}
.gallery-head h2{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);margin:14px 0 18px;
}
.gallery-head h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.gallery-head p{font-size:var(--fs-body-lg);line-height:var(--lh-normal);color:var(--paper-soft);max-width:560px;}

/* Carrousel horizontal moderne : scroll-snap natif + animation auto JS */
.gallery-marquee{
  position:relative;
  width:100vw;margin-left:calc(50% - 50vw);
  overflow:hidden;
  /* Masque progressif sur les côtés pour signaler le défilement */
  mask-image:linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%);
}
.gallery-track{
  display:flex;gap:14px;
  padding:0 var(--pad-x);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none;
}
.gallery-track::-webkit-scrollbar{display:none;}

.gallery-controls{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  margin-top:32px;
  max-width:var(--max);margin-left:auto;margin-right:auto;
  padding:0 var(--pad-x);
}
.gallery-hint{
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;
  color:var(--paper-dim);
  display:inline-flex;align-items:center;gap:10px;
}
.gallery-hint::before{
  content:"";width:8px;height:8px;border-radius:50%;background:var(--pink);
  animation:pulse-dot 2s ease-in-out infinite;
}
.gallery-arrows{display:flex;gap:10px;}
.gallery-arrow{
  width:48px;height:48px;border-radius:50%;
  border:1px solid var(--line-2);
  background:transparent;color:var(--paper);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:border-color .3s, background .3s, transform .3s;
}
.gallery-arrow svg{width:20px;height:20px;}
.gallery-arrow:hover{border-color:var(--pink);background:rgba(255,61,138,.08);}
.gallery-arrow:active{transform:scale(.94);}
.gallery-arrow:focus-visible{outline:2px solid var(--pink);outline-offset:2px;}

/* Lightbox plein écran */
.lightbox{
  position:fixed;inset:0;z-index:200;
  background:rgba(5,13,36,.96);
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  display:none;
  align-items:center;justify-content:center;
  padding:60px 80px;
}
.lightbox.is-open{display:flex;animation:lightbox-in .25s ease-out;}
@keyframes lightbox-in{from{opacity:0;}to{opacity:1;}}
.lightbox-figure{
  max-width:100%;max-height:100%;
  display:flex;flex-direction:column;align-items:center;gap:20px;
  margin:0;
}
.lightbox-img{
  max-width:100%;max-height:calc(100vh - 180px);
  width:auto;height:auto;
  object-fit:contain;
  border-radius:var(--radius-xs);
  box-shadow:0 24px 80px rgba(0,0,0,.5);
  animation:lightbox-zoom .35s cubic-bezier(.2,.7,.2,1);
}
@keyframes lightbox-zoom{from{transform:scale(.95);opacity:0;}to{transform:scale(1);opacity:1;}}
.lightbox-cap{
  font-family:var(--sans);font-size:var(--fs-body-md);
  color:var(--paper);text-align:center;
  max-width:var(--max-text);
}
.lightbox-counter{
  position:absolute;top:24px;left:50%;transform:translateX(-50%);
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;
  color:var(--paper-dim);
}
.lightbox-close, .lightbox-nav{
  position:absolute;z-index:2;
  width:52px;height:52px;border-radius:50%;
  background:rgba(255,255,255,.08);border:1px solid var(--line-2);
  color:var(--paper);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .25s, border-color .25s, transform .25s;
}
.lightbox-close svg, .lightbox-nav svg{width:22px;height:22px;}
.lightbox-close{top:24px;right:24px;}
.lightbox-prev{left:24px;top:50%;transform:translateY(-50%);}
.lightbox-next{right:24px;top:50%;transform:translateY(-50%);}
.lightbox-close:hover, .lightbox-nav:hover{background:rgba(255,61,138,.15);border-color:var(--pink);}
.lightbox-prev:active{transform:translateY(-50%) scale(.94);}
.lightbox-next:active{transform:translateY(-50%) scale(.94);}
.lightbox-close:focus-visible, .lightbox-nav:focus-visible{outline:2px solid var(--pink);outline-offset:2px;}

/* Indicateur "cliquez pour agrandir" sur les items de la galerie */
.gitem:not(.gitem-tv){cursor:zoom-in;}



.gitem{
  position:relative;border-radius:var(--radius-sm);overflow:hidden;
  background:var(--deep);
  width:280px;flex-shrink:0;
  aspect-ratio:4/5;
  scroll-snap-align:start;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
@media (min-width:1025px){
  .gitem{width:340px;}
}

.gitem:hover{transform:translateY(var(--hover-lift-card));}
.gitem img{
  width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.06);
  transition:transform 1.6s cubic-bezier(.2,.7,.2,1), filter .4s;
  will-change:transform;
}
.gitem.in img{transform:scale(1);}
.gitem:hover img{transform:scale(1.08);transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.gitem::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(6,20,58,.92));
  opacity:.55;transition:opacity .4s;pointer-events:none;
}
.gitem:hover::after{opacity:1;}
.gitem figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:16px;z-index:2;
  display:flex;flex-direction:column;gap:4px;
  font-family:var(--sans);color:var(--paper);
  transform:translateY(8px);opacity:0;transition:transform .4s, opacity .4s;
  pointer-events:none;
}
.gitem figcaption span:first-child{
  font-size:var(--fs-mono-sm);font-weight:500;line-height:var(--lh-snug);letter-spacing:0;
}
.gitem .gtag{
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;
  color:var(--paper-dim);
}
.gitem:hover figcaption{transform:translateY(0);opacity:1;}

/* Cartouche TV en blanc, ratio identique aux autres pour cohérence */
.gitem-tv{background:var(--paper);padding:12px;border-radius:var(--radius-sm);display:flex;flex-direction:column;position:relative;text-decoration:none;color:inherit;cursor:pointer;}
.gitem-tv .tv-thumb{position:relative;flex:1;min-height:0;border-radius:var(--radius-xs);overflow:hidden;}
.gitem-tv img{border-radius:var(--radius-xs);flex:1;min-height:0;display:block;width:100%;height:100%;object-fit:cover;}
.gitem-tv .tv-play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(6,20,58,.18);transition:background .25s ease;
}
.gitem-tv .tv-play::before{
  content:"";display:block;width:62px;height:62px;border-radius:50%;
  background:var(--pink);box-shadow:0 8px 28px var(--pink-glow);
  transition:transform .25s ease,box-shadow .25s ease;
}
.gitem-tv .tv-play::after{
  content:"";position:absolute;
  width:0;height:0;
  border-left:18px solid var(--paper);
  border-top:11px solid transparent;
  border-bottom:11px solid transparent;
  margin-left:5px;
  pointer-events:none;
}
.gitem-tv:hover .tv-play{background:rgba(6,20,58,.32);}
.gitem-tv:hover .tv-play::before{transform:scale(1.08);box-shadow:0 12px 36px var(--pink-glow);}
.gitem-tv::after{display:none;}
.gitem-tv figcaption{
  position:static;padding:10px 4px 4px;
  transform:none;opacity:1;color:var(--abyss);
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.gitem-tv figcaption span:first-child{font-weight:600;font-size:var(--fs-mono-xs);color:var(--abyss);}
.gitem-tv .gtag{color:rgba(6,20,58,.55);}
.gitem-tv .play-badge{
  display:inline-flex;align-items:center;gap:6px;
  margin-left:auto;padding:4px 10px 4px 8px;
  background:var(--pink-btn);color:var(--paper);
  border-radius:999px;font-size:var(--fs-mono-xs);font-weight:600;
  letter-spacing:var(--tr-wide);text-transform:uppercase;
  transition:transform .2s ease;
}
.gitem-tv:hover .play-badge{transform:translateX(2px);}
.gitem-tv .play-badge::before{
  content:"";display:block;width:0;height:0;
  border-left:7px solid var(--paper);
  border-top:4px solid transparent;
  border-bottom:4px solid transparent;
}

/* Légendes toujours visibles sur tactile */
@media (hover:none),(pointer:coarse){
  .gitem::after{opacity:1;}
  .gitem figcaption{transform:translateY(0);opacity:1;}
}




/* ============== JOURNAL ============== */
.journal{background:var(--deep-2);}
.journal-head{margin-bottom:64px;display:flex;flex-direction:column;gap:24px;}
.journal-head h2{font-family:var(--sans);font-weight:500;font-size:var(--fs-h2);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);color:var(--paper);overflow-wrap:break-word;hyphens:manual;text-wrap:balance;}
.journal-head h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.journal-intro{
  font-size:var(--fs-body-lg);line-height:var(--lh-normal);color:var(--paper-soft);
  max-width:var(--max-text);text-wrap:pretty;
}

/* 3 canaux du récit (sobres, sans grandes images) */
.channels{
  display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
}
.channel{
  display:flex;flex-direction:column;
  background:var(--deep);border:1px solid var(--line-2);border-radius:var(--radius-md);
  padding:32px 30px;min-height:230px;
  transition:border-color .35s, background .35s, transform .35s;
}
.channel:hover{
  border-color:var(--pink);background:var(--marine);
  transform:translateY(var(--hover-lift-card));
}
.channel-num{
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  color:var(--pink);font-weight:500;font-variant-numeric:lining-nums tabular-nums;
  margin-bottom:18px;
}
.channel-name{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h4);
  line-height:var(--lh-tight);letter-spacing:var(--tr-snug);color:var(--paper);
  margin-bottom:14px;
}
.channel-desc{
  font-size:var(--fs-body-md);line-height:var(--lh-normal);color:var(--paper-soft);
  margin-bottom:24px;text-wrap:pretty;
}
.channel-desc em{font-style:italic;color:var(--paper);}
.channel-tag{
  margin-top:auto;
  display:inline-flex;align-items:center;gap:10px;width:fit-content;
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--paper-soft);
}
.channel-tag .dot{
  width:6px;height:6px;border-radius:50%;background:var(--pink);
  box-shadow:0 0 10px var(--pink);flex-shrink:0;
}
@media (max-width:880px){
  .channels{grid-template-columns:1fr;gap:12px;}
  .channel{min-height:0;padding:26px 24px;}
}

.episodes{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.episodes-3{grid-template-columns:repeat(3,1fr);}
.episodes-3 .episode{aspect-ratio:4/5;}
.episode{
  position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:3/4;
}
.episode .img-reveal{height:100%;}
.episode img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,.7,.2,1), filter .5s;filter:grayscale(.3) brightness(.85);}
.episode:hover img{transform:scale(1.07);filter:grayscale(0) brightness(1);}
.episode::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%, rgba(5,13,36,.95) 100%);z-index:2;}
.ep-num{position:absolute;top:16px;left:16px;z-index:3;font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);color:var(--pink);background:rgba(10,26,58,.6);padding:4px 10px;border-radius:999px;}
.ep-len{position:absolute;top:16px;right:16px;z-index:3;font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);color:var(--paper);background:rgba(10,26,58,.6);padding:4px 10px;border-radius:999px;}


.formats{margin-top:80px;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:var(--radius-md);overflow:hidden;}
.fmt{background:var(--deep);padding:28px;transition:background .35s;}
.fmt:hover{background:var(--deep-2);}
.fmt .t{font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--pink);margin-bottom:12px;}
.fmt .d{font-size:var(--fs-body-sm);color:var(--paper-soft);}


/* ============== FINAL ============== */
.final{position:relative;min-height:var(--bleed-h);display:flex;align-items:center;overflow:hidden;padding:0;}
.final-bg{position:absolute;inset:0;z-index:-1;}
.final-bg img, .final-bg video{width:100%;height:100%;object-fit:cover;display:block;}
.final-bg img{animation:ken-burns 20s ease-in-out infinite alternate;}
.final-bg video{object-position:center 50%;}
.final-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center, rgba(10,26,58,.45) 0%, rgba(10,26,58,.90) 80%);}
.final-content{
  position:relative;z-index:2;
  width:100%;max-width:var(--max);margin:0 auto;
  padding:var(--pad-x);
  display:grid;grid-template-columns:1fr 0.9fr;
  gap:clamp(40px,6vw,90px);align-items:center;
}
.final-content > *{min-width:0;}
.final-left{min-width:0;}
.final-right{min-width:0;}
.final-newsletter{max-width:520px;}
.final h2{
  font-family:var(--sans);font-weight:500;
  font-size:var(--fs-h1);
  line-height:.95;letter-spacing:var(--tr-tight);
  margin:0;color:var(--paper);
  display:flex;flex-direction:column;gap:.04em;
  text-align:left;
}
.final-line{display:block;}
.final h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.final-cta{
  margin-top:48px;
  display:flex;gap:14px;flex-wrap:wrap;
}

/* ============== RÉCIT · CTA newsletter ============== */
.recit-cta{
  margin-top:80px;
  max-width:680px;margin-left:auto;margin-right:auto;
  text-align:center;
}
.recit-cta-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  text-transform:uppercase;
  background:transparent;color:var(--paper);
  padding:10px 16px;border-radius:999px;
  border:1px solid rgba(255,255,255,.4);
  font-weight:500;
  margin-bottom:24px;
}
.recit-cta-eyebrow .dot{
  display:inline-block;width:5px;height:5px;border-radius:50%;
  background:var(--paper);
  animation:pulse-dot-paper 2s ease-in-out infinite;flex-shrink:0;
}
.recit-cta-title{
  font-family:var(--sans);font-weight:500;
  font-size:var(--fs-h3);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);
  color:var(--paper);
  margin:0 0 20px;
}
.recit-cta-lead{
  font-family:var(--sans);font-size:var(--fs-body-md);line-height:var(--lh-normal);
  color:var(--paper-soft);
  margin:0 0 14px;
}
.recit-cta-lead em{
  font-family:var(--sans);font-style:italic;font-weight:400;color:var(--pink);
}
.recit-cta-note{
  font-family:var(--sans);font-size:var(--fs-body-sm);line-height:var(--lh-normal);
  color:var(--paper-dim);
  margin:0 0 28px;
}
.recit-cta-note em{font-style:italic;color:var(--paper-soft);}
.recit-cta .newsletter-form{text-align:left;}
.recit-cta .newsletter-row{
  height:64px;box-sizing:border-box;padding:6px;align-items:stretch;
}
.recit-cta .newsletter-input{height:100%;}
.recit-cta .newsletter-btn{height:100%;padding:0 24px;}

@media (max-width:880px){
  .recit-cta{
    margin-top:48px;
  }
}


/* ============== COMPTEUR DE LEVÉE (à activer le jour J) ============== */
.fundraise{
  background:linear-gradient(135deg, rgba(255,61,138,.1) 0%, rgba(10,26,58,.5) 100%);
  border:1px solid var(--line-2);
  border-radius:var(--radius-md);
  padding:36px 40px;margin-bottom:64px;
}
.fundraise-head{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  margin-bottom:24px;flex-wrap:wrap;
}
.fundraise-eyebrow{
  font-family:var(--mono);font-size:var(--fs-mono-md);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--pink);
  display:inline-flex;align-items:center;gap:10px;
}
.fundraise-eyebrow .dot{
  display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--pink);
  animation:lakeBlink 2s ease-in-out infinite;
}
.fundraise-supporters{
  font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--paper-soft);
}
.fundraise-supporters b{color:var(--paper);font-weight:500;font-family:var(--sans);font-style:normal;}
.fundraise-amounts{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:20px;}
.fundraise-raised{display:inline-flex;align-items:baseline;gap:10px;}
.fr-num{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h2);
  letter-spacing:var(--tr-tight);color:var(--paper);line-height:1;
}
.fr-unit{
  font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--paper-soft);
}
.fundraise-goal{
  font-family:var(--sans);font-size:var(--fs-body-md);color:var(--paper-soft);
}
.fundraise-goal b{color:var(--paper);font-weight:500;}
.fundraise-bar{
  position:relative;height:8px;background:var(--line-2);border-radius:999px;
  overflow:hidden;margin-bottom:24px;
}
.fundraise-bar-fill{
  position:absolute;left:0;top:0;bottom:0;
  background:var(--pink);
  border-radius:999px;width:0%;
  transition:width 2s cubic-bezier(.2,.7,.2,1);
  box-shadow:0 0 16px rgba(255,61,138,.5);
}
.fundraise-cta{text-align:center;}



/* ============== NEWSLETTER (capture email) ============== */
/* Newsletter form (intégré dans la section finale) */
.newsletter-asterisk{
  color:var(--pink);font-weight:500;
}
sup.newsletter-asterisk{
  font-size:.5em;vertical-align:super;margin-left:.05em;
  font-style:normal;font-family:var(--mono);
}
.newsletter-form{display:flex;flex-direction:column;gap:12px;}
.newsletter-row{
  display:flex;align-items:stretch;gap:0;
  background:rgba(255,255,255,.05);
  border:1px solid var(--line-2);
  border-radius:999px;
  padding:8px;
  transition:border-color .3s, background .3s;
}
.newsletter-row:focus-within{border-color:var(--pink);background:rgba(255,255,255,.07);}
.newsletter-input{
  flex:1;min-width:0;
  background:transparent;border:0;outline:0;
  padding:18px 22px;
  font-family:var(--sans);font-size:var(--fs-body-md);color:var(--paper);
  letter-spacing:0;
}
.newsletter-input::placeholder{color:var(--paper-dim);}
.newsletter-btn{
  flex-shrink:0;
  background:var(--pink-btn);color:var(--paper);
  border:1px solid var(--pink-btn);border-radius:var(--radius-pill);
  padding:18px 32px;
  font-family:var(--sans);font-weight:700;font-size:var(--fs-body-sm);letter-spacing:0;line-height:1;
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.newsletter-btn:hover{background:var(--pink-btn-hover);border-color:var(--pink-btn-hover);transform:translateY(var(--hover-lift));box-shadow:0 16px 40px var(--pink-glow);}
.newsletter-btn .arrow{transition:transform var(--dur-base) var(--ease-out);display:inline-block;}
.newsletter-btn:hover .arrow{transform:translateX(4px) rotate(-12deg);}
.newsletter-status{
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  color:var(--paper-soft);min-height:18px;
  padding-left:22px;
  transition:color .3s;
}
.newsletter-status.success{color:var(--pink);}
.newsletter-status.error{color:var(--error);}




/* ============== FRISE STICKY LÉMAN (signature visuelle) ============== */
.lake-ribbon{
  position:fixed;left:0;right:0;bottom:0;
  z-index:80;
  background:var(--pink);
  border-top:1px solid rgba(6,20,58,.2);
  transform:translateY(100%);
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
  display:flex;flex-direction:column;
  color:var(--deep);
}
.lake-ribbon.show{transform:translateY(0);}
.lake-ribbon.hide{transform:translateY(100%);}

/* Panel dépliable (tracker complet), caché par défaut */
.lake-panel{
  max-height:0;overflow:hidden;
  transition:max-height .45s cubic-bezier(.2,.7,.2,1);
  border-bottom:1px solid rgba(6,20,58,.18);
}
.lake-ribbon.expanded .lake-panel{max-height:520px;}
.lake-panel-inner{
  padding:24px 28px 28px;
  display:flex;flex-direction:column;gap:18px;
  max-width:var(--max);margin:0 auto;width:100%;
}
.lake-panel-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  flex-wrap:wrap;
}
.lake-panel-title{
  font-family:var(--mono);font-size:var(--fs-mono-md);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--deep);font-weight:500;
}
.lake-panel-sub{
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:rgba(6,20,58,.65);
  margin-top:6px;
}
.lake-panel-sub b{color:var(--deep);font-weight:600;}
.lake-panel-status{
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--deep);
  padding:6px 12px;border:1px solid rgba(6,20,58,.3);border-radius:999px;
  display:inline-flex;align-items:center;gap:8px;
  white-space:nowrap;
}
.lake-panel-status::before{
  content:"";width:6px;height:6px;border-radius:50%;background:var(--deep);
  animation:pulse-dot 2s ease-in-out infinite;
}
.lake-panel-stats{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid rgba(6,20,58,.18);
  border-bottom:1px solid rgba(6,20,58,.18);
}
.lake-panel-stats .lstat{
  padding:18px 16px;
  border-right:1px solid rgba(6,20,58,.12);
  display:flex;flex-direction:column;gap:10px;
}
.lake-panel-stats .lstat:last-child{border-right:0;}
.lake-panel-stats .k{
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:rgba(6,20,58,.65);
}
.lake-panel-stats .v{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-num-md);line-height:1;color:var(--deep);
  display:flex;align-items:baseline;gap:4px;
}
.lake-panel-stats .v small{
  font-family:var(--mono);font-size:var(--fs-mono-xs);font-weight:400;color:rgba(6,20,58,.55);
  text-transform:uppercase;letter-spacing:var(--tr-mono);
}
.lake-panel-info{
  font-family:var(--sans);font-size:var(--fs-body-sm);line-height:var(--lh-normal);
  color:rgba(6,20,58,.8);
  max-width:760px;
}


/* Bar du bas, toujours visible */
.lake-ribbon-bar{
  padding:10px 24px;
  display:flex;align-items:center;gap:20px;
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--deep);
}
.lake-ribbon-expand{
  flex-shrink:0;
  width:32px;height:32px;border-radius:50%;
  background:transparent;border:1px solid rgba(6,20,58,.35);
  color:var(--deep);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .25s, border-color .25s, transform .35s cubic-bezier(.2,.7,.2,1);
}
.lake-ribbon-expand svg{width:14px;height:14px;}
.lake-ribbon-expand:hover{background:var(--deep);color:var(--paper);border-color:var(--deep);}
.lake-ribbon.expanded .lake-ribbon-expand{transform:rotate(180deg);}
.lake-ribbon-expand:focus-visible{outline:2px solid var(--deep);outline-offset:2px;}


.lake-ribbon-start, .lake-ribbon-end{
  flex-shrink:0;display:flex;flex-direction:column;gap:2px;line-height:1.2;
}
.lake-ribbon-end{text-align:right;}
.lake-ribbon-loc{color:var(--deep);font-weight:500;}
.lake-ribbon-dist{color:rgba(6,20,58,.7);font-size:var(--fs-mono-xs);}
.lake-ribbon-track{
  flex:1;position:relative;height:24px;display:flex;align-items:center;
  min-width:0;
}
.lake-ribbon-line{
  position:absolute;left:0;right:0;top:50%;height:2px;
  background:linear-gradient(90deg, transparent 0%, rgba(6,20,58,.3) 8%, rgba(6,20,58,.3) 92%, transparent 100%);
  transform:translateY(-50%);
}
.lake-ribbon-progress{
  position:absolute;left:0;top:50%;height:2px;
  background:var(--deep);
  transform:translateY(-50%);
  width:0%;
  transition:width 1.5s cubic-bezier(.2,.7,.2,1);
}
.lake-ribbon-dot{
  position:absolute;top:50%;left:0%;
  width:10px;height:10px;border-radius:50%;
  background:var(--deep);
  transform:translate(-50%, -50%);
  box-shadow:0 0 0 4px rgba(6,20,58,.18);
  transition:left 1.5s cubic-bezier(.2,.7,.2,1);
}
.lake-ribbon-dot::after{
  content:"";position:absolute;inset:-3px;border-radius:50%;
  background:var(--deep);opacity:.4;
  animation:lakePulse 2.5s ease-in-out infinite;
}
@keyframes lakePulse{
  0%, 100%{transform:scale(1);opacity:.4;}
  50%{transform:scale(1.8);opacity:0;}
}
.lake-ribbon-status{
  flex-shrink:0;
  display:flex;align-items:center;gap:8px;
  font-size:var(--fs-mono-xs);color:var(--deep);
}
.lake-ribbon-status::before{
  content:"";display:block;width:6px;height:6px;border-radius:50%;
  background:var(--deep);animation:lakeBlink 2s ease-in-out infinite;
}
@keyframes lakeBlink{
  0%, 100%{opacity:.3;}
  50%{opacity:1;}
}
.lake-ribbon-close{
  flex-shrink:0;
  width:28px;height:28px;border-radius:50%;
  background:transparent;border:1px solid rgba(6,20,58,.4);
  color:var(--deep);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:border-color .3s, background .3s;
}
.lake-ribbon-close:hover{border-color:var(--deep);background:var(--deep);color:var(--paper);}
.lake-ribbon-close svg{width:12px;height:12px;}



/* ============== MODAL / OVERLAY (système réutilisable) ============== */
.modal-overlay{
  position:fixed;inset:0;z-index:300;
  background:rgba(6,20,58,.85);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  opacity:0;pointer-events:none;
  transition:opacity .4s cubic-bezier(.2,.7,.2,1);
  display:flex;align-items:flex-start;justify-content:center;
  overflow-y:auto;padding:max(40px, env(safe-area-inset-top)) 20px 40px;
}
.modal-overlay.open{opacity:1;pointer-events:auto;}
.modal{
  background:var(--deep);
  border:1px solid var(--line-2);
  border-radius:var(--radius-md);
  max-width:920px;width:100%;
  padding:48px clamp(28px, 5vw, 64px) 56px;
  position:relative;
  transform:translateY(20px) scale(.98);
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
  margin:auto;
}
.modal-overlay.open .modal{transform:translateY(0) scale(1);}
.modal-close{
  position:absolute;top:20px;right:20px;
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid var(--line-2);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--paper);
  transition:background .3s, border-color .3s, transform .3s;
  z-index:2;
}
.modal-close:hover{background:var(--pink-btn-hover);border-color:var(--pink-btn-hover);transform:rotate(90deg);}
.modal-close svg{width:18px;height:18px;}
.modal-eyebrow{
  font-family:var(--mono);font-size:var(--fs-mono-md);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--pink);margin-bottom:16px;
}
.modal-title{
  font-family:var(--sans);font-weight:500;
  font-size:var(--fs-h3);line-height:var(--lh-tight);letter-spacing:var(--tr-tight);
  color:var(--paper);margin-bottom:32px;
}
.modal-title em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.modal-body{color:var(--paper-soft);}
.modal-body p{font-size:var(--fs-body-md);line-height:var(--lh-relaxed);margin-bottom:18px;}
.modal-body strong{color:var(--paper);font-weight:500;}
.modal-body h3{
  font-family:var(--sans);font-weight:500;
  font-size:var(--fs-h5);letter-spacing:var(--tr-snug);
  color:var(--paper);margin:32px 0 14px;
}

body.modal-open{overflow:hidden;}

/* Bouton d'ouverture standard */
.btn-detail{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:transparent;color:var(--paper);
  padding:17px 30px;border-radius:var(--radius-pill);
  border:1px solid var(--line-3);
  font-family:var(--sans);font-weight:700;font-size:var(--fs-body-sm);line-height:1;
  cursor:pointer;
  transition:transform var(--dur-base) var(--ease-spring), box-shadow var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}
.btn-detail:hover{border-color:var(--pink);background:var(--pink-soft);transform:translateY(var(--hover-lift));}
.btn-detail .arrow{transition:transform var(--dur-base) var(--ease-out);display:inline-block;}
.btn-detail:hover .arrow{transform:translateX(4px) rotate(-12deg);}



/* Composants internes au modal */
.modal-why{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:32px;
}
.modal-why-card{
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:18px;
}
.modal-why-num{
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  color:var(--pink);margin-bottom:8px;
}
.modal-why-k{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-body-sm);line-height:var(--lh-snug);
  color:var(--paper);margin-bottom:8px;
}
.modal-why-p{
  font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--paper-soft);
}

.modal-tier{
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:32px;margin-bottom:14px;
}
.modal-tier-titre{
  border-color:var(--pink);
  background:linear-gradient(180deg, rgba(255,61,138,.08), rgba(255,255,255,.02));
}
.modal-tier-head{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;}
.modal-tier-rank{
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--paper-dim);
}
.modal-tier-rank em{font-style:italic;color:var(--pink);font-family:var(--sans);font-weight:300;text-transform:none;letter-spacing:0;}
.modal-tier-name{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h6);letter-spacing:var(--tr-snug);
  color:var(--paper);
}
.modal-tier ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px;}
.modal-tier li{
  font-size:var(--fs-body-md);line-height:var(--lh-normal);color:var(--paper-soft);
  padding-left:22px;position:relative;
}
.modal-tier li::before{
  content:"";position:absolute;left:0;top:.6em;
  width:8px;height:1.5px;background:var(--pink);
}
.modal-tier li strong{color:var(--paper);font-weight:500;}

.modal-cta{margin-top:32px;text-align:center;}



/* Modal route */
.modal-route{
  display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:32px;
}
.modal-route-item{
  background:rgba(255,255,255,.03);
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  padding:18px;
}
.modal-route-k{
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--pink);margin-bottom:8px;
}
.modal-route-v{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h4);letter-spacing:var(--tr-snug);
  color:var(--paper);margin-bottom:6px;
}
.modal-route-sub{font-size:var(--fs-body-sm);color:var(--paper-soft);}

/* Modal chapter (pour le parcours Chiara) */
.modal-chapter{margin-bottom:36px;padding-bottom:36px;border-bottom:1px solid var(--line);}
.modal-chapter:last-of-type{border-bottom:0;}
.modal-chapter-head{display:flex;align-items:baseline;gap:18px;margin-bottom:16px;}
.modal-chapter-num{
  font-family:var(--mono);font-size:var(--fs-mono-md);letter-spacing:var(--tr-mono);
  color:var(--pink);font-weight:500;flex-shrink:0;
}
.modal-chapter-title{
  font-family:var(--sans);font-weight:500;font-size:var(--fs-h5);line-height:var(--lh-snug);letter-spacing:var(--tr-snug);
  color:var(--paper);
}
.modal-chapter-title em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--ice);}

/* CTA bouton sous Chiara */
.chiara-cta-detail{
  margin:80px auto 0;text-align:center;
}
.chiara-cta-detail .btn-detail{margin:0 auto;border-color:rgba(255,255,255,.5);color:var(--paper);}
.chiara-cta-detail .btn-detail:hover{background:var(--paper);color:var(--deep);border-color:var(--paper);}




/* ============== FOOTER ============== */
footer{background:var(--abyss);padding:80px var(--pad-x) 40px;padding-bottom:max(40px, env(safe-area-inset-bottom));border-top:1px solid var(--line-2);}
.footer-grid{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;margin-bottom:64px;}
.footer-brand{font-family:var(--sans);font-weight:500;font-size:var(--fs-num-lg);letter-spacing:var(--tr-tight);line-height:var(--lh-snug);color:var(--paper);}
.footer-brand em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.footer-brand .sub{font-family:var(--sans);font-style:normal;font-weight:400;font-size:var(--fs-body-sm);line-height:var(--lh-normal);color:var(--paper-soft);margin-top:14px;display:block;letter-spacing:0;}
.footer-logo{height:74px;width:auto;display:block;margin-bottom:18px;}
.footer-col h4{font-family:var(--mono);font-size:var(--fs-body-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);margin-bottom:20px;}
.footer-col a{display:block;padding:7px 0;font-size:var(--fs-body-sm);color:var(--paper-soft);transition:color .25s, padding-left .25s;position:relative;}
.footer-col a:hover{color:var(--pink);padding-left:14px;}
.footer-col a:hover::before{content:"→";position:absolute;left:0;color:var(--pink);}
.footer-bottom{
  max-width:var(--max);margin:0 auto;padding-top:32px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);text-transform:uppercase;color:var(--paper-dim);
  flex-wrap:wrap;gap:16px;
}

/* Bascule navigation : le menu horizontal tient jusqu'à ~900px, le burger n'apparaît qu'en dessous */
@media (max-width:900px){
  .nav-menu{display:none;}
  .nav-cta{display:none;}
  .nav-burger{display:flex;}
}

/* ============== TABLET & MOBILE (≤1024px) ============== */
@media (max-width:1024px){
  .nav-logo{height:60px;width:220px;}
  .nav.scrolled .nav-logo{height:44px;}

  .hero{padding-top:100px;padding-bottom:40px;min-height:auto;}

  .hero-bottom{grid-template-columns:1fr;margin-bottom:32px;}
  .hero-meta{flex-direction:column;gap:14px;margin-bottom:32px;}
  .hero-meta .m{font-size:var(--fs-mono-xs);letter-spacing:var(--tr-wide);line-height:var(--lh-normal);}
  .hero-stats{grid-template-columns:repeat(2,1fr);gap:0;padding:18px;}
  .hero-stat{border-right:1px solid rgba(6,20,58,.12);border-bottom:1px solid rgba(6,20,58,.12);padding:16px !important;}
  .hero-stat:nth-child(2n){border-right:none;}
  .hero-stat:nth-last-child(-n+2){border-bottom:none;}
  .hero-stat:nth-child(2n+1){padding-left:0 !important;}

  .stats-grid{grid-template-columns:repeat(2,1fr);}

  .manifeste-grid{grid-template-columns:1fr;align-items:start;}
  .manifeste-words{grid-template-columns:repeat(2,1fr);}

  .rules-list{grid-template-columns:1fr;}
  .rules-list li{padding:24px;}

  .route-svg text{font-size:var(--fs-h6) !important;}
  .route-svg text[font-size="17"]{font-size:var(--fs-h4) !important;}
  .route-svg text[font-size="11"]{font-size:var(--fs-body-sm) !important;}

  .chiara-hero{grid-template-columns:1fr;}
  .chiara-stats{grid-template-columns:1fr;}
  .cstat{
    border-right:0;border-bottom:1px solid rgba(6,20,58,.08);
    display:grid;grid-template-columns:80px 1fr;gap:4px 16px;align-items:start;
    grid-template-areas:
      "year title"
      "year sub";
    padding:24px 20px;
  }
  .cstat:last-child{border-bottom:0;}
  .cstat-v{grid-area:year;padding-top:4px;}
  .cstat-k{grid-area:title;}
  .cstat-sub{grid-area:sub;}
  .chiara-quote{margin:80px auto 64px;}

  .impact-head{gap:16px;}
  .impact-grid{grid-template-columns:1fr;gap:48px;}
  .tier{grid-template-columns:auto 1fr;padding:20px;gap:18px;}
  .tier-amount{font-size:var(--fs-num-md);min-width:auto;}
  .tier-role{font-size:var(--fs-body-md);}
  .tier-arrow{grid-column:1/3;justify-self:end;}
  .tier.tier-hero{padding-top:44px;}
  .tier.tier-hero::after{top:14px;left:20px;right:auto;}

  .swim-grid{grid-template-columns:repeat(2,1fr);}

  .partners-head{gap:16px;}
  .partners-current{grid-template-columns:1fr;}
  .target-grid{grid-template-columns:repeat(3,1fr);}
  .benefits-wrap{grid-template-columns:1fr;gap:40px;}

  .partners-head{gap:16px;}

  .qoqa-block{padding:32px 28px 0;}
  .qoqa-left{padding-right:0;padding-bottom:290px;}
  .qoqa-block .qoqa-cta{display:flex;width:fit-content;margin-inline:auto;}
  .qoqa-loutre-nage{
    position:absolute;left:50%;bottom:-24px;top:auto;right:auto;
    transform:translateX(-50%);transform-origin:bottom center;
    width:auto;height:auto;max-height:300px;max-width:74%;
    margin:0;
    animation-name:qoqa-swim-mb;
  }

  .why-grid{grid-template-columns:repeat(2,1fr);}
  .stier-grid{grid-template-columns:repeat(2,1fr);}

  .shop-grid{grid-template-columns:1fr;}
  .playlist-strip{grid-template-columns:1fr;gap:20px;padding:24px;}

  .gitem figcaption{padding:12px;}
  .gitem figcaption span:first-child{font-size:var(--fs-mono-xs);}
  .gitem .gtag{font-size:var(--fs-mono-xs);}

  .episodes{grid-template-columns:repeat(2,1fr);}
  .episodes-3{grid-template-columns:1fr;}
  .episodes-3 .episode{aspect-ratio:16/10;}

  .formats{grid-template-columns:repeat(2,1fr);}

  .newsletter-grid{grid-template-columns:1fr;gap:24px;}
  .newsletter{padding:48px 0;}

  .modal{padding:32px 24px 40px;}
  .modal-close{top:14px;right:14px;width:40px;height:40px;}

  .footer-grid{grid-template-columns:1fr 1fr;}
}

/* ============== MOBILE (≤640px) ============== */
@media (max-width:640px){
  body{padding-bottom:48px;}

  .nav-logo{height:50px;width:180px;}
  .nav.scrolled .nav-logo{height:38px;}

  .manifeste-words{grid-template-columns:1fr;margin-top:40px;background:transparent;}
  .mword{padding:20px 0;grid-template-columns:32px 1fr;gap:12px;background:transparent;border-top:1px solid var(--line-2);}

  .route-meta{display:grid;grid-template-columns:1fr 1fr;gap:20px;width:100%;}
  .route-meta span{font-size:var(--fs-mono-xs);letter-spacing:var(--tr-wide);}
  .final h2{font-size:clamp(32px, 9vw, 52px);}

  .fpem-logo{width:260px;}

  .swim-grid{grid-template-columns:1fr;}

  .target-grid{grid-template-columns:repeat(2,1fr);}

  .why-grid{grid-template-columns:1fr;}
  .stier-grid{grid-template-columns:1fr;}

  .lightbox{padding:40px 16px;}
  .lightbox-close{top:12px;right:12px;width:44px;height:44px;}
  .lightbox-nav{width:44px;height:44px;}
  .lightbox-prev{left:12px;}
  .lightbox-next{right:12px;}
  .lightbox-counter{top:18px;font-size:var(--fs-mono-xs);}

  .gitem{width:240px;}

  .gitem-tv .tv-play::before{width:48px;height:48px;}
  .gitem-tv .tv-play::after{border-left-width:14px;border-top-width:9px;border-bottom-width:9px;margin-left:4px;}
  .gitem-tv .play-badge{display:none;}

  .fundraise{padding:24px;}

  .newsletter-row{flex-direction:column;border-radius:var(--radius-md);padding:8px;}
  .newsletter-input{padding:14px 18px;}
  .newsletter-btn{width:100%;justify-content:center;padding:14px 24px;}
  .newsletter-status{padding-left:18px;}

  .lake-panel-inner{padding:20px 16px 22px;gap:14px;}
  .lake-panel-stats{grid-template-columns:repeat(2,1fr);}
  .lake-panel-stats .lstat{border-bottom:1px solid rgba(6,20,58,.12);}
  .lake-panel-stats .lstat:nth-child(2){border-right:0;}
  .lake-panel-stats .lstat:nth-last-child(-n+2){border-bottom:0;}

  .lake-ribbon-bar{padding:8px 14px;gap:12px;}
  .lake-ribbon-status{display:none;}
  .lake-ribbon-start, .lake-ribbon-end{font-size:var(--fs-mono-xs);}

  .lake-ribbon{padding:8px 12px;gap:10px;}
  .lake-ribbon-start, .lake-ribbon-end{font-size:var(--fs-mono-xs);}
  .lake-ribbon-loc{font-size:var(--fs-mono-xs);}
  .lake-ribbon-dist{display:none;}
  .lake-ribbon-status{display:none;}

  .modal-why{grid-template-columns:1fr;}

  .chiara-cta-detail{margin-top:40px;}

  .modal-route{grid-template-columns:1fr;}
  .modal-chapter-head{flex-direction:column;gap:6px;}
}

/* ============================================================
   PAGES SECONDAIRES (chiara.html, parcours.html)
   ============================================================ */

/* Conteneur de prose étroit pour les pages narratives */
.container-narrow{max-width:var(--max-heading);margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x);}

/* Mini-hero de page */
.page-hero{
  padding:calc(var(--space-section-sm) + 64px) var(--pad-x) var(--space-section-sm);
  max-width:var(--max);margin:0 auto;
  border-bottom:1px solid var(--line);
}
.page-back{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:var(--fs-mono-sm);
  color:var(--paper-dim);text-decoration:none;margin-bottom:36px;
  transition:color .25s,transform .25s;
}
.page-back:hover{color:var(--pink);}
.page-back .arrow-back{display:inline-block;transition:transform .25s;}
.page-back:hover .arrow-back{transform:translateX(-3px);}
.page-title{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-page-title);line-height:1.02;
  letter-spacing:-.02em;color:var(--paper);margin:18px 0 0;
}
/* Le masque de révélation inclut un peu d'air en bas pour ne pas rogner les jambages (g, p, j) */
.page-title.fade-mask{padding-bottom:.12em;margin-bottom:-.12em;}
.page-title em,.page-h2 em{
  font-family:var(--display);font-style:italic;font-weight:300;color:var(--pink);
}
.page-sub{
  font-size:var(--fs-body-lg);color:var(--paper-soft);
  max-width:var(--max-text);margin-top:20px;line-height:var(--lh-normal);
}

/* Sections narratives (chapitres, règles) */
.page-narrative{padding:var(--space-section) var(--pad-x);max-width:var(--max);margin:0 auto;}
.container-rules{max-width:1200px;margin:0 auto;}
.container-rules .narrative-body p,
.container-rules .narrative-body h3{max-width:var(--max-text);}
.page-narrative .eyebrow{margin-bottom:24px;}
.page-h2{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-page-h2);line-height:1.06;
  letter-spacing:-.015em;color:var(--paper);margin:0 0 48px;
}
.narrative-body{color:var(--paper-soft);}
.narrative-body > .modal-chapter:first-child{margin-top:0;}
/* Respiration de la narrative : paragraphes, sous-titres, cartes */
.narrative-body > p{
  font-size:var(--fs-body-lg);line-height:var(--lh-relaxed);
  max-width:var(--max-text);margin:0 0 28px;
}
.narrative-body > h3{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-h3);line-height:1.1;letter-spacing:-.015em;
  color:var(--paper);margin:72px 0 28px;
}
.narrative-body > h3:first-child{margin-top:0;}
.narrative-body > .modal-tier{margin-bottom:20px;}
.narrative-body > .modal-tier + h3{margin-top:80px;}
.narrative-body > .modal-route,
.narrative-body > .modal-meta{margin:8px 0 24px;}

/* Boutons de fin de page */
.page-cta{
  display:flex;flex-wrap:wrap;gap:18px;align-items:center;
  margin-top:56px;padding-top:48px;border-top:1px solid var(--line);
}

/* ---- Teaser Chiara sur la home ---- */
.chiara-teaser{padding:var(--space-section) var(--pad-x);max-width:var(--max);margin:0 auto;}
.chiara-teaser-grid{
  display:grid;grid-template-columns:0.85fr 1fr;
  gap:clamp(32px,5vw,72px);align-items:center;
}
.chiara-teaser-grid > *{min-width:0;}
.chiara-teaser-media{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/5;}
.chiara-teaser-media img{width:100%;height:100%;object-fit:cover;display:block;}
.chiara-teaser-body .eyebrow{margin-bottom:22px;}
.chiara-teaser-body h2{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-h2);line-height:var(--lh-tight);
  letter-spacing:var(--tr-tight);color:var(--paper);margin:0 0 22px;
}
.chiara-teaser-body h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.chiara-teaser-body .lead-p{
  font-size:var(--fs-body-lg);color:var(--paper-soft);
  line-height:var(--lh-normal);margin-bottom:30px;max-width:var(--max-text);
}
.cphoto{margin:0;position:relative;border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:3/4;}
.cphoto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
.cphoto:hover img{transform:scale(1.04);}
.cphoto figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:14px 16px;
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:.04em;
  color:var(--paper);
  background:linear-gradient(to top,rgba(6,20,58,.85),transparent);
}

@media (max-width:880px){
  .chiara-teaser-grid{grid-template-columns:1fr;}
  .chiara-teaser-media{aspect-ratio:16/10;max-height:420px;}
  .page-cta{flex-direction:column;align-items:stretch;}
  .page-cta .btn,.page-cta .btn-detail{width:100%;text-align:center;justify-content:center;}
}

/* ============================================================
   TEASERS · cartes d'accès aux pages (home)
   ============================================================ */
.teasers{padding:var(--space-section) var(--pad-x);background:var(--deep-2);}
.teasers > .container{max-width:var(--max);margin:0 auto;}
.teasers-head{margin-bottom:clamp(40px,5vw,64px);max-width:var(--max-heading);}
.teasers-head .eyebrow{margin-bottom:22px;}
.teasers-head h2{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-h2);line-height:var(--lh-tight);
  letter-spacing:var(--tr-tight);color:var(--paper);margin:0 0 16px;
}
.teasers-head h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.teasers-intro{
  font-size:var(--fs-body-lg);color:var(--paper-soft);
  line-height:var(--lh-normal);max-width:var(--max-text);margin:0;
}
.teasers-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(18px,2.4vw,32px);
}
.teaser-card{
  display:flex;flex-direction:column;
  background:var(--deep-2);border:1px solid var(--line);
  border-radius:var(--radius-md);overflow:hidden;text-decoration:none;color:inherit;
  transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease;
}
.teaser-card:hover{
  transform:translateY(var(--hover-lift-card));border-color:var(--line-3);
  box-shadow:0 18px 50px -22px rgba(0,0,0,.6);
}
.teaser-media{aspect-ratio:16/10;overflow:hidden;}
.teaser-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
.teaser-card:hover .teaser-media img{transform:scale(1.05);}
.teaser-text{padding:clamp(22px,2.4vw,34px);display:flex;flex-direction:column;flex:1;}
.teaser-eyebrow{
  font-family:var(--mono);font-size:var(--fs-mono-md);
  text-transform:uppercase;letter-spacing:.08em;color:var(--pink);margin-bottom:14px;
}
.teaser-text h3{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-h4);line-height:1.1;
  letter-spacing:-.01em;color:var(--paper);margin:0 0 14px;
}
.teaser-text p{
  font-size:var(--fs-body-md);line-height:var(--lh-normal);
  color:var(--paper-soft);margin:0 0 22px;flex:1;
}
.teaser-link{
  font-family:var(--mono);font-size:var(--fs-mono-sm);
  text-transform:uppercase;letter-spacing:.06em;color:var(--paper);
  display:inline-flex;align-items:center;gap:8px;
}
.teaser-link .arrow{transition:transform .3s;display:inline-block;}
.teaser-card:hover .teaser-link{color:var(--pink);}
.teaser-card:hover .teaser-link .arrow{transform:translateX(4px);}

@media (max-width:1080px) and (min-width:881px){
  .teasers-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:880px){
  .teasers-grid{grid-template-columns:1fr;}
}

/* ============================================================
   BANNIÈRE DE PAGE (photo de traversée en en-tête)
   ============================================================ */
.page-banner{
  position:relative;
  height:clamp(460px, 60vh, 580px);
  display:flex;align-items:flex-end;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.page-banner-media{position:absolute;inset:0;z-index:0;overflow:hidden;}
.page-banner-media img{
  width:100%;height:100%;object-fit:cover;display:block;
  transform-origin:center;
  animation:banner-breathe 18s ease-in-out infinite;
  will-change:transform;
}
/* Respiration lente de l'image : évoque le mouvement de l'eau */
@keyframes banner-breathe{
  0%{transform:scale(1.04) translate(0,0);}
  33%{transform:scale(1.07) translate(-1%,0.6%);}
  66%{transform:scale(1.05) translate(0.8%,-0.5%);}
  100%{transform:scale(1.04) translate(0,0);}
}
/* Voile d'ondulations animées par-dessus l'eau */
.page-banner-media::after{
  content:"";position:absolute;inset:-10%;z-index:1;pointer-events:none;
  background:
    radial-gradient(60% 40% at 30% 60%, rgba(120,170,240,.10), transparent 60%),
    radial-gradient(50% 35% at 70% 40%, rgba(150,200,255,.08), transparent 60%);
  mix-blend-mode:screen;
  animation:banner-ripple 14s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
@keyframes banner-ripple{
  0%{transform:translate(0,0) scale(1);opacity:.7;}
  50%{transform:translate(2%,-1.5%) scale(1.06);opacity:1;}
  100%{transform:translate(-1.5%,1.5%) scale(1.03);opacity:.8;}
}
@media (prefers-reduced-motion: reduce){
  .page-banner-media img{animation:none;transform:scale(1.04);}
  .page-banner-media::after{animation:none;}
}
.page-banner-scrim{
  position:absolute;inset:0;z-index:2;
  background:
    linear-gradient(to top, var(--abyss) 2%, rgba(6,20,58,.55) 40%, rgba(6,20,58,.25) 70%, rgba(6,20,58,.45) 100%);
}
.page-banner-inner{
  position:relative;z-index:1;width:100%;
  padding:clamp(130px,15vh,170px) var(--pad-x) clamp(40px,6vw,80px);
}
.page-banner .page-back{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:var(--fs-mono-sm);
  color:var(--paper);opacity:.85;text-decoration:none;margin-bottom:28px;
  transition:color .25s,opacity .25s,transform .25s;
}
.page-banner .page-back:hover{color:var(--pink);opacity:1;}
.page-banner .page-back .arrow-back{display:inline-block;transition:transform .25s;}
.page-banner .page-back:hover .arrow-back{transform:translateX(-3px);}
.page-banner .eyebrow{margin-bottom:18px;}
.page-banner .page-title{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-page-title);line-height:1.02;
  letter-spacing:-.02em;color:var(--paper);margin:0;
  text-shadow:0 2px 30px rgba(6,20,58,.5);
}
.page-banner .page-sub{
  font-size:var(--fs-body-lg);color:var(--paper-soft);
  max-width:var(--max-text);margin-top:20px;line-height:var(--lh-normal);
  text-shadow:0 1px 16px rgba(6,20,58,.6);
  text-wrap:pretty;
}
/* Bannière nuit (Soutenir) : Chiara est un point lumineux central.
   On remonte le cadrage et on adoucit le voile pour qu'elle reste visible,
   le texte reposant sur une zone naturellement sombre en bas. */
.page-banner-soutenir .page-banner-media img{object-position:50% 38%;}
.page-banner-soutenir .page-banner-scrim{
  background:
    linear-gradient(to top, var(--abyss) 0%, rgba(6,20,58,.7) 22%, rgba(6,20,58,.12) 48%, rgba(6,20,58,.2) 100%);
}
@media (max-width:880px){
  .page-banner{height:clamp(480px,62vh,520px);}
  .page-banner-soutenir .page-banner-media img{object-position:50% 34%;}
}

/* Lien rose intégré dans un paragraphe (ex. "Qui est Chiara") */
.inline-link{
  color:var(--pink);text-decoration:none;font-weight:600;
  white-space:nowrap;transition:opacity .25s;
}
.inline-link:hover{opacity:.75;}
.inline-link .arrow{display:inline-block;transition:transform .25s;}
.inline-link:hover .arrow{transform:translateX(3px);}

/* ============================================================
   CARROUSEL EN FONDU (image à côté du texte T70, sur la home)
   ============================================================ */
.manifeste-slider{position:relative;width:100%;height:100%;}
.manifeste-slider .ms-slide{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;transition:opacity 1.1s ease;pointer-events:none;
}
.manifeste-slider .ms-slide img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;
}
.manifeste-slider .ms-slide.is-active{opacity:1;pointer-events:auto;}
.ms-caption{
  position:absolute;left:20px;bottom:54px;z-index:3;
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--mono);font-size:var(--fs-mono-xs);letter-spacing:var(--tr-mono);text-transform:uppercase;
  color:var(--paper);
  background:rgba(10,26,58,.7);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  padding:8px 14px;border-radius:999px;border:1px solid var(--line-2);
  max-width:calc(100% - 40px);
}
.ms-caption .dot{
  width:8px;height:8px;border-radius:50%;background:var(--pink);
  box-shadow:0 0 10px var(--pink);animation:pulse-dot 2s ease-in-out infinite;flex-shrink:0;
}
/* garantir une hauteur même si le conteneur ne la fixe pas */
.manifeste-slider::before{content:"";display:block;padding-top:128%;}
.ms-dots{
  position:absolute;left:0;right:0;bottom:18px;z-index:4;
  display:flex;justify-content:center;gap:14px;
}

/* ============================================================
   NEWSLETTER dans la section vidéo finale (home)
   ============================================================ */
.final-newsletter{max-width:520px;}
.final-newsletter .recit-cta-eyebrow{margin-bottom:16px;}
.final-news-lead{
  font-size:var(--fs-body-lg);color:var(--paper);
  line-height:var(--lh-normal);margin:0 0 22px;
}
.final-news-lead em{font-style:italic;color:var(--pink);}
.final-news-note{
  font-size:var(--fs-mono-sm);color:var(--paper-soft);
  line-height:var(--lh-normal);margin:0 0 28px;opacity:.85;
}
.final-news-note em{font-style:italic;}
@media (max-width:880px){
  .final-content{grid-template-columns:1fr;gap:40px;}
  .final-newsletter{margin-top:8px;}
}

/* Liens du bloc récit sur la page Chiara */
.recit-cta-links{
  display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:center;margin-top:26px;
}
@media (max-width:880px){
  .recit-cta-links{flex-direction:column;align-items:stretch;}
  .recit-cta-links .btn,.recit-cta-links .btn-detail{width:100%;text-align:center;justify-content:center;}
}

/* ============================================================
   BLOC FONDATION (home) — texte + photo en deux colonnes
   ============================================================ */
.impact-summary{padding:var(--space-section) var(--pad-x);max-width:var(--max);margin:0 auto;}
.impact-summary-grid{
  display:grid;grid-template-columns:1fr 0.82fr;
  gap:clamp(32px,5vw,72px);align-items:center;
}
.impact-summary-grid > *{min-width:0;}
.impact-summary-inner{
  display:flex;flex-direction:column;align-items:flex-start;text-align:left;
}
.impact-summary-inner .eyebrow{margin-bottom:22px;}
.impact-summary-inner h2{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-h2);line-height:var(--lh-tight);
  letter-spacing:var(--tr-tight);color:var(--paper);margin:0 0 24px;
}
.impact-summary-inner h2 em{font-family:var(--sans);font-style:italic;font-weight:300;color:var(--pink);}
.impact-summary-inner .impact-lead{
  font-size:var(--fs-body-md);line-height:var(--lh-normal);
  color:var(--paper-soft);max-width:none;margin:0 0 18px;
}
.impact-summary-inner .impact-lead strong{color:var(--paper);font-weight:600;}
.impact-summary-inner .fpem-logo-link{margin:14px 0 30px;}
.impact-summary-inner .fpem-logo{width:240px;}
.impact-summary-cta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;}
.impact-summary-media{position:relative;}
.impact-summary-media .img-reveal{
  border-radius:var(--radius-md);overflow:hidden;aspect-ratio:3/2;
}
.impact-summary-media img{width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width:980px){
  .impact-summary-grid{grid-template-columns:1fr;}
  .impact-summary-media .img-reveal{aspect-ratio:16/10;max-height:420px;}
}

/* ============================================================
   PAGE PARTENAIRES — fiches photo + logo + titre + texte + lien
   ============================================================ */
.partners-page{padding:var(--space-section) var(--pad-x);max-width:var(--max);margin:0 auto;}
.partner-row{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(32px,5vw,80px);align-items:center;
  padding:clamp(40px,6vw,72px) 0;
  border-bottom:1px solid var(--line);
}
.partner-row:first-child{padding-top:0;}
.partner-row-reverse .partner-media{order:2;}
.partner-row-reverse .partner-body{order:1;}
.partner-row > *{min-width:0;}
.partner-media .img-reveal{
  border-radius:var(--radius-md);overflow:hidden;aspect-ratio:4/3;
}
.partner-media img{width:100%;height:100%;object-fit:cover;display:block;}
.partner-logo{height:46px;margin-bottom:24px;display:flex;align-items:center;}
.partner-logo img{max-height:46px;max-width:200px;width:auto;object-fit:contain;}
.partner-logo-skl img{max-height:54px;}
/* Forward WIP : pas de photo, logo blanc centré sur fond bleu */
.partner-media-logo{
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg, var(--marine), var(--deep));
  border:1px solid var(--line-2);
}
.partner-media-wip{
  width:auto !important;height:auto !important;
  max-width:56% !important;max-height:42% !important;object-fit:contain !important;
}
.partner-kind{
  font-family:var(--mono);font-size:var(--fs-mono-sm);
  text-transform:uppercase;letter-spacing:.06em;color:var(--pink);margin-bottom:12px;
}
.partner-title{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-h3);line-height:1.05;
  letter-spacing:-.015em;color:var(--paper);margin:0 0 20px;
}
.partner-text{
  font-size:var(--fs-body-md);line-height:var(--lh-normal);
  color:var(--paper-soft);margin:0 0 28px;max-width:var(--max-text);
}
/* Appel à devenir partenaire */
.partner-join{
  text-align:center;padding:clamp(48px,7vw,88px) 0 0;
}
.partner-join h3{
  font-family:var(--display);font-weight:600;
  font-size:var(--fs-h3);line-height:1.08;
  letter-spacing:-.015em;color:var(--paper);margin:0 0 16px;
}
.partner-join p{
  font-size:var(--fs-body-md);color:var(--paper-soft);
  line-height:var(--lh-normal);max-width:var(--max-text);margin:0 auto 30px;
}
.partner-join-cta{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;align-items:center;}
@media (max-width:880px){
  .partner-row{grid-template-columns:1fr;gap:28px;}
  .partner-row-reverse .partner-media{order:0;}
  .partner-row-reverse .partner-body{order:0;}
  .partner-media .img-reveal{aspect-ratio:16/10;}
  .partner-join-cta{flex-direction:column;align-items:stretch;}
  .partner-join-cta .btn,.partner-join-cta .btn-detail{width:100%;text-align:center;justify-content:center;}
}

/* Bouton de contact sous la newsletter (section finale) */
.final-newsletter .eyebrow{margin-bottom:20px;}
.final-contact{
  margin-top:32px;padding-top:28px;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;
}
.final-contact-label{
  font-family:var(--mono);font-size:var(--fs-mono-sm);letter-spacing:var(--tr-mono);
  text-transform:uppercase;color:var(--paper-dim);
}
