:root{
  --sawi-noir:#0E0E12;
  --sawi-blanc:#FFFAFA;
  --sawi-jaune-100:#FFFDF4;
}
body{background:var(--sawi-noir);color:var(--sawi-blanc)}
.container{max-width:var(--conteneur);margin:0 auto;padding:0 var(--space-4)}
.section{padding:var(--space-10) var(--marge-page)}
.section--white{background:var(--sawi-blanc);color:var(--sawi-noir)}
@media (max-width:767px){
  .section{padding:var(--space-8) var(--space-4)}
}
.t-body,.t-lead,.t-body-s{line-height:1.4}
.t-h1,.t-display{letter-spacing:-0.02em}
.skip-link{position:absolute;top:0;left:0;background:var(--sawi-jaune);color:var(--sawi-noir);padding:12px 20px;z-index:100;transform:translateY(-100%);transition:transform var(--duree-micro) var(--ease-std)}
.skip-link:focus{transform:translateY(0)}

/* ============ Révélations texte (hero + crédibilité) ============ */
@keyframes text-reveal-in{from{opacity:0;filter:blur(10px);transform:translateY(24px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}
.intro-in{
  animation-name:text-reveal-in;
  animation-duration:.7s;
  animation-timing-function:cubic-bezier(.16,1,.3,1);
  animation-fill-mode:both;
}
.intro-in--2{animation-delay:.1s}
.intro-in--3{animation-delay:.25s}
.intro-in--4{animation-delay:.4s}
.intro-in--6{animation-delay:.7s}
.intro-in--7{animation-delay:.85s}
.hero__subhead .word{
  display:inline-block;
  animation-name:text-reveal-in;
  animation-duration:.8s;
  animation-timing-function:cubic-bezier(.16,1,.3,1);
  animation-fill-mode:both;
  animation-delay:calc(.55s + var(--i, 0) * 0.045s);
}
.scroll-fade-group{
  animation-name:text-reveal-in;
  animation-duration:.6s;
  animation-timing-function:cubic-bezier(.16,1,.3,1);
  animation-fill-mode:both;
  animation-timeline:view();
  animation-range:exit;
  animation-direction:reverse;
}
.reveal-text{
  animation-name:text-reveal-in;
  animation-duration:.7s;
  animation-timing-function:cubic-bezier(.16,1,.3,1);
  animation-fill-mode:both;
  animation-timeline:view();
  animation-range:cover 0% cover 30%;
}
.word--reveal{
  display:inline-block;
  animation-name:text-reveal-in;
  animation-duration:.7s;
  animation-timing-function:cubic-bezier(.16,1,.3,1);
  animation-fill-mode:both;
  animation-timeline:view();
  animation-range:cover 0% cover 45%;
  animation-delay:calc(var(--i, 0) * 0.06s);
}
.reveal-text--offset{animation-range:cover 10% cover 40%}

/* ============ Hero ============ */
.hero{padding-top:var(--space-7);padding-bottom:var(--space-8)}
.hero__grid{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-4);max-width:840px}
.hero__logo{height:40px;width:auto;margin-bottom:var(--space-6)}
.hero__subhead{color:var(--gris-400);max-width:60ch}
.hero__badges{color:var(--gris-400);margin-top:var(--space-2)}
.hero__ctas{display:flex;gap:var(--space-4);margin-top:var(--space-6);flex-wrap:wrap;justify-content:center}
.hero__grid .sawi-btn--principal:hover{background:var(--sawi-blanc);color:var(--sawi-noir)}
.hero__note{margin-top:var(--space-3);color:var(--gris-400)}

/* ============ Teaser vidéo ============ */
.teaser-section{text-align:center;padding-top:var(--space-8);padding-bottom:var(--space-8)}
.teaser__heading{margin:var(--space-3) auto 0;max-width:60ch;font-size:2.2rem}
.teaser{position:relative;aspect-ratio:16/9;max-width:50%;overflow:hidden;margin:var(--space-7) auto 0;background:var(--sawi-noir)}
.teaser__video{position:absolute;inset:0;width:100%;height:100%;display:block;border:0}
@media (max-width:767px){
  .teaser{max-width:100%}
}

/* ============ Panneau de crédibilité (citation) ============ */
.credibility{padding-top:var(--space-8);padding-bottom:var(--space-8)}
.credibility__panel{background:var(--sawi-jaune);color:var(--sawi-noir);max-width:820px;margin:0 auto;padding:var(--space-8) var(--space-7);text-align:center}
.credibility__label{font-size:1.125rem}
.credibility__quote{margin:var(--space-6) auto 0;padding:0;max-width:60ch;font-size:1.25rem}

/* ============ Grilles à révélation différée (info / programme) ============ */
.reveal-grid{position:relative;text-align:center}
.reveal-grid__title{margin:0 auto;max-width:60ch}
.reveal-grid__intro{margin:var(--space-3) auto 0;max-width:60ch;color:var(--gris-600)}
.section:not(.section--white) .reveal-grid__intro{color:var(--gris-400)}
.reveal-grid__grid{
  margin-top:var(--space-8);
  max-width:960px;
  margin-left:auto;margin-right:auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-7) var(--space-8);
}
.reveal-grid__grid--facts{grid-template-columns:repeat(3,1fr)}
.reveal-grid__item{text-align:center}
.reveal-grid__num{display:block;color:var(--sawi-jaune);margin-bottom:var(--space-3)}
.section--white .reveal-grid__num{color:var(--sawi-noir)}
.reveal-grid__item h3{margin-bottom:var(--space-3)}
.reveal-grid__item p{color:var(--gris-400);max-width:38ch;margin:0 auto}
.section--white .reveal-grid__item p{color:var(--gris-600)}
.reveal-grid__note{margin:var(--space-7) auto 0;max-width:65ch;color:var(--gris-400)}
.section--white .reveal-grid__note{color:var(--gris-600)}
@media (max-width:767px){
  .reveal-grid__grid{grid-template-columns:1fr;gap:var(--space-6)}
}
.stagger-reveal .reveal-stagger{opacity:0;transform:translateY(16px)}
.stagger-reveal.is-revealed .reveal-stagger{
  animation:stagger-reveal-in .6s cubic-bezier(.16,1,.3,1) both;
  animation-delay:calc(var(--i,0) * 0.12s);
}
@keyframes stagger-reveal-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){
  .stagger-reveal .reveal-stagger{opacity:1;transform:none;animation:none}
}

/* ============ Tarif et annulation ============ */
.annulation{margin-top:var(--space-7);max-width:640px;margin-left:auto;margin-right:auto}
.tarif-section{text-align:center}
.tarif-section .t-lead{margin:var(--space-4) auto 0;max-width:65ch}
.tarif-section__note{margin-top:var(--space-5);color:var(--gris-600)}

/* ============ Essentiel / chiffres ============ */
.essentiel__tagline{margin:var(--space-4) auto 0;max-width:60ch;text-align:center;color:var(--gris-400)}
.sawi-chiffres.essentiel__stats{justify-content:center;margin:var(--space-8) auto 0;max-width:760px;background:none;padding:0;text-align:center}
.essentiel__stats .sawi-chiffre{align-items:center}
.essentiel__stats .sawi-chiffre__valeur{color:var(--sawi-jaune)}
.essentiel-section{text-align:center}
.essentiel-section .t-h1{margin:0 auto;max-width:50ch}

/* ============ FAQ ============ */
.faq-section{text-align:center}
.faq-section .t-overline{color:var(--sawi-noir)}
.faq-list{margin:var(--space-8) auto 0;max-width:760px;text-align:left;border-top:1px solid var(--gris-200)}
.faq-item{border-bottom:1px solid var(--gris-200)}
.faq-item__question{
  display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);
  width:100%;padding:var(--space-5) 0;
  font:600 1.125rem/1.3 var(--font);color:var(--sawi-noir);
  cursor:pointer;list-style:none;
}
.faq-item__question::-webkit-details-marker{display:none}
.faq-item__icon{flex:none;position:relative;width:16px;height:16px}
.faq-item__icon::before,.faq-item__icon::after{content:"";position:absolute;background:var(--sawi-noir);top:50%;left:50%;transform:translate(-50%,-50%)}
.faq-item__icon::before{width:16px;height:2px}
.faq-item__icon::after{width:2px;height:16px;transition:transform var(--duree-micro) var(--ease-std)}
.faq-item[open] .faq-item__icon::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}
.faq-item__answer{display:none;color:var(--gris-600);max-width:65ch;padding:0 0 var(--space-5)}
.faq-item[open] .faq-item__answer{display:block}

/* ============ CTA final ============ */
.cta-final{text-align:center}
.cta-final__heading{margin:0 auto;max-width:32ch}
.cta-final__ctas{display:flex;gap:var(--space-4);flex-wrap:wrap;justify-content:center;margin:var(--space-6) auto 0}

/* ============ Inscription (embed Infomaniak eTickets) ============ */
.inscription-section{text-align:center}
.inscription-section .t-lead{margin:var(--space-4) auto 0;max-width:60ch}
.inscription__wrap{margin:var(--space-7) auto 0;max-width:640px;text-align:left}

/* ============ Pied de page ============ */
.sawi-pied .sawi-pied__titre{color:var(--sawi-blanc)}
.sawi-pied__colonnes{justify-content:center;text-align:center;column-gap:var(--space-8)}
.sawi-pied__mentions{justify-content:center;text-align:center}
.sawi-pied__centres{display:contents}
@media (max-width:767px){
  .sawi-pied__centres{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);width:100%}
  .sawi-pied__centres .sawi-pied__bloc{gap:2px}
}

/* ============ Retour en haut ============ */
.back-to-top{
  position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:900;
  width:48px;height:48px;
  background:var(--sawi-jaune);color:var(--sawi-noir);
  border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity var(--duree-micro) var(--ease-std),transform var(--duree-micro) var(--ease-std),visibility 0s linear var(--duree-micro);
}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);transition:opacity var(--duree-micro) var(--ease-std),transform var(--duree-micro) var(--ease-std)}
.back-to-top:hover{background:var(--sawi-blanc)}
@media (max-width:767px){
  .back-to-top{right:var(--space-4);bottom:var(--space-4)}
}
