/* ============ MEMENTO VIV'EXPRESS — design system ============ */
:root{
  --creme:#FFFBEF;
  --creme2:#FBF3DC;
  --jaune:#F4D354;
  --orange:#F18923;
  --terra:#E2543E;
  --noir:#1F1A13;
  --gris:#6B6353;
  --encre:#463E30;
  --ligne:rgba(31,26,19,.1);
  --display:'Bricolage Grotesque',sans-serif;
  --body:'Inter',sans-serif;
  --hand:'Caveat',cursive;
}
*{margin:0;padding:0;box-sizing:border-box}
/* Pas de scroll-behavior:smooth ici — ScrollTrigger se repositionne en haut de page
   pour mesurer à chaque refresh (resize, rotation, barre d'URL mobile) puis revient :
   en douceur, il mesurait pendant le glissement et calculait toutes les positions
   comme si on était en haut, d'où les animations qui sautaient d'un coup à leur état
   final. Le site est en scroll natif de bout en bout, c'est cohérent. */
html{overflow-x:clip}
body{
  font-family:var(--body);color:var(--noir);background:var(--creme);
  overflow-x:hidden;line-height:1.6;
}
/* grain papier global */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}

.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.section{padding:110px 0}

/* ---------- typo ---------- */
.h2{font-family:var(--display);font-weight:800;font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.04;text-transform:uppercase;letter-spacing:-.01em;margin-bottom:18px}
.h3{font-family:var(--display);font-weight:800;font-size:clamp(1.6rem,3.6vw,2.4rem);line-height:1.08;text-transform:uppercase;margin-bottom:14px}
.kicker{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;color:var(--orange);margin-bottom:10px}
.lead{font-size:1.12rem;max-width:640px;color:var(--encre)}
.caveat{font-family:var(--hand);font-weight:600;font-size:1.25rem;color:var(--gris)}
.surligne{background:linear-gradient(transparent 55%,var(--jaune) 55%,var(--jaune) 92%,transparent 92%);padding:0 .1em}

/* ---------- boutons ---------- */
.btn{
  display:inline-block;font-family:var(--display);font-weight:700;text-transform:uppercase;
  letter-spacing:.03em;font-size:.95rem;padding:14px 26px;border-radius:12px;border:2px solid var(--noir);
  box-shadow:0 6px 16px rgba(31,26,19,.14);transition:transform .18s,box-shadow .18s;position:relative;white-space:nowrap;
}
.btn:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(31,26,19,.2)}
.btn:active{transform:translateY(0);box-shadow:0 3px 8px rgba(31,26,19,.15)}
.btn-orange{background:var(--orange);color:var(--noir)}
.btn-ghost{background:rgba(255,251,239,.12);color:var(--creme);border-color:var(--creme);backdrop-filter:blur(4px)}
.btn-big{font-size:1.05rem;padding:16px 32px}

/* ---------- header ---------- */
.header{
  position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;gap:26px;
  padding:14px 28px;transition:background .3s,box-shadow .3s;
}
.header.scrolled{background:rgba(255,251,239,.92);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--ligne)}
.header-brand{display:flex;align-items:center;gap:10px;margin-right:auto}
.header-mono{width:40px;height:40px;object-fit:contain}
.header-word{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1rem;line-height:1;color:var(--creme);transition:color .3s}
.header-word em{font-style:normal;color:var(--jaune);display:block;font-size:.82em}
.header.scrolled .header-word{color:var(--noir)}
.header.scrolled .header-word em{color:var(--orange)}
.header-nav{display:flex;gap:22px}
.header-nav a{font-weight:600;font-size:.92rem;color:var(--creme);transition:color .3s;position:relative}
.header.scrolled .header-nav a{color:var(--noir)}
.header-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:3px;background:var(--orange);transition:right .25s}
.header-nav a:hover::after{right:0}
.header-cta{padding:10px 18px;font-size:.85rem}
.burger{display:none;background:none;border:none;width:40px;height:34px;position:relative}
.burger span{position:absolute;left:6px;right:6px;height:3px;background:var(--creme);border-radius:2px;transition:.3s}
.header.scrolled .burger span{background:var(--noir)}
.burger span:nth-child(1){top:10px}.burger span:nth-child(2){top:20px}
.menu-mobile{position:fixed;inset:0;z-index:99;background:var(--noir);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;transform:translateY(-100%);transition:transform .45s cubic-bezier(.7,0,.3,1)}
.menu-mobile.open{transform:none}
.menu-mobile a{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.7rem;color:var(--creme)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-img{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,26,19,.55) 0%,rgba(31,26,19,.35) 40%,rgba(31,26,19,.78) 100%)}
.hero-content{position:relative;z-index:2;padding:120px 20px 90px;max-width:900px}
.hero-badge{width:132px;height:132px;margin:0 auto 18px;padding:12px;background:#fff;border-radius:50%;filter:drop-shadow(0 6px 18px rgba(0,0,0,.35));animation:badge-float 5s ease-in-out infinite}
@keyframes badge-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-10px) rotate(2deg)}}
.hero-title{font-family:var(--display);font-weight:800;text-transform:uppercase;color:var(--creme);font-size:clamp(2.3rem,7.2vw,5.4rem);line-height:.98;letter-spacing:-.015em;margin-bottom:16px}
.hero-title .line{display:block;overflow:hidden}
.hero-title .word{display:inline-block}
.js .hero-title .word{transform:translateY(110%)}
.hero-title .accent{color:var(--jaune);position:relative}
.hero-sub{font-family:var(--display);font-weight:600;font-size:clamp(1.2rem,2.6vw,1.7rem);color:var(--creme);margin-bottom:14px;letter-spacing:.01em}
.hero-sub strong{color:var(--jaune);font-weight:800}
.hero-fact{color:rgba(255,251,239,.92);font-size:clamp(1rem,2vw,1.15rem);margin-bottom:30px}
.hero-cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:36px}
.countdown{display:inline-flex;align-items:center;gap:14px;background:rgba(31,26,19,.55);border:2px solid rgba(255,251,239,.25);backdrop-filter:blur(8px);border-radius:18px;padding:14px 26px;flex-wrap:wrap;justify-content:center}
.cd-cell{display:flex;flex-direction:column;align-items:center;min-width:52px}
.cd-num{font-family:var(--display);font-weight:800;font-size:1.9rem;color:var(--creme);font-variant-numeric:tabular-nums;line-height:1}
.cd-lab{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,251,239,.65)}
.cd-sep{color:var(--jaune);font-size:1.4rem}
.cd-note{width:100%;text-align:center;font-family:var(--hand);font-size:1.1rem;color:var(--jaune)}
.hero-date{margin-top:14px;font-family:var(--display);font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,251,239,.92)}
.hero-date span{color:var(--jaune);margin:0 4px}

/* ---------- marquees ---------- */
.marquee{overflow:hidden;white-space:nowrap;position:relative}
.marquee-track{display:inline-flex;animation:marquee 26s linear infinite;will-change:transform}
.marquee-track-lent{animation-duration:55s}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.marquee-jaune{
  background:var(--jaune);border-top:2px solid var(--noir);border-bottom:2px solid var(--noir);
  padding:13px 0;transform:rotate(-1deg) scale(1.03);position:relative;z-index:5;margin-top:-28px;
  box-shadow:0 14px 34px rgba(31,26,19,.14);
}
.marquee-jaune span{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:.92rem;letter-spacing:.12em;padding-right:6px}
.marquee-jaune b{font-weight:800;color:transparent;-webkit-text-stroke:1.2px var(--noir)}
.marquee-jaune i{font-style:normal;color:var(--orange);margin:0 14px;-webkit-text-stroke:0}

/* ---------- concept ---------- */
.concept{padding-top:130px}
.triptyque{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex-wrap:wrap;margin:34px 0 50px;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:clamp(1rem,2.1vw,1.3rem)}
.triptyque i{color:var(--orange);font-style:normal;font-size:1.5em}
.triptyque span{background:var(--creme2);border:1px solid var(--ligne);border-radius:999px;padding:8px 18px}
.piliers{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-bottom:56px;align-items:start}
.pilier{
  background:#fff;border:1px solid var(--ligne);border-radius:18px;padding:14px 18px 22px;
  box-shadow:0 14px 38px rgba(31,26,19,.08);transform:rotate(var(--rot,0deg));
  transition:transform .3s ease,box-shadow .3s ease;position:relative;cursor:pointer;
}
.pilier:focus-visible,.pilier.open{transform:rotate(0) translateY(-6px);box-shadow:0 26px 54px rgba(31,26,19,.14)}
.pilier:focus-visible{outline:3px solid var(--jaune);outline-offset:3px}
.pilier-img{border-radius:12px;overflow:hidden;aspect-ratio:4/3;margin:0 -4px 16px;position:relative}
.pilier-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pilier-img .img-base{transition:opacity .5s ease,transform .6s ease}
.pilier-img .img-hover{opacity:0;transform:scale(1.07);transition:opacity .5s ease,transform .8s ease}
.pilier:focus-visible .pilier-img .img-hover,.pilier.open .pilier-img .img-hover{opacity:1;transform:scale(1)}
.pilier h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.35rem;margin-bottom:6px}
.pilier>p{font-size:.95rem;color:var(--encre)}
.pilier-plus{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s ease}
.pilier-plus p{overflow:hidden;font-size:.92rem;color:var(--gris);transition:padding-top .45s ease}
.pilier:focus-visible .pilier-plus,.pilier.open .pilier-plus{grid-template-rows:1fr}
.pilier:focus-visible .pilier-plus p,.pilier.open .pilier-plus p{padding-top:10px}
/* hover réservé aux appareils qui en ont un vrai — sur tactile, c'est le tap (.open) qui pilote */
@media (hover:hover){
  .pilier:hover{transform:rotate(0) translateY(-6px);box-shadow:0 26px 54px rgba(31,26,19,.14)}
  .pilier:hover .pilier-img .img-hover{opacity:1;transform:scale(1)}
  .pilier:hover .pilier-plus{grid-template-rows:1fr}
  .pilier:hover .pilier-plus p{padding-top:10px}
}
.asso-note{display:flex;align-items:center;gap:18px;background:var(--creme2);border:1px solid var(--ligne);border-radius:16px;padding:18px 24px;max-width:640px}
.asso-note img{width:52px;height:52px;object-fit:contain}
.asso-note p{font-size:.98rem}

/* ---------- carte : les itinéraires (import Claude Design) ---------- */
.carte-mv{
  position:relative;min-height:calc(100svh - 64px);
  padding:42px clamp(16px,4vw,54px) 56px;
  display:grid;grid-template-columns:1fr;gap:8px clamp(24px,4vw,56px);align-items:center;
  background:linear-gradient(180deg,var(--creme) 0%,var(--creme2) 14%,var(--creme2) 86%,var(--creme) 100%);
}
.carte-mv .kicker{margin-bottom:0}
@keyframes mvPulse{from{transform:scale(1);opacity:.85}to{transform:scale(3.4);opacity:0}}
@keyframes mvBob{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}

/* ---------- stats ---------- */
.stats{text-align:center;background:radial-gradient(60% 90% at 50% 35%,rgba(244,211,84,.18),transparent 72%)}
.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:26px 12px;margin-top:54px}
.stat{padding:10px 12px}
.stat-num{font-family:var(--display);font-weight:800;font-size:clamp(2.2rem,4.4vw,3.4rem);color:var(--noir);display:block;line-height:1;font-variant-numeric:tabular-nums}
.stat-num::after{content:"";display:block;width:34px;height:5px;border-radius:3px;background:var(--jaune);margin:12px auto 0}
.stat-lab{display:block;margin-top:10px;font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gris)}

/* ---------- embarquement ---------- */
.embarquement-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center}
.emb-card{background:#fff;border:1px solid var(--ligne);border-radius:20px;padding:38px;box-shadow:0 22px 48px rgba(31,26,19,.1);position:relative}
.emb-statut{display:inline-block;background:var(--jaune);border:1.5px solid var(--noir);border-radius:999px;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:.8rem;letter-spacing:.06em;padding:6px 14px;margin-bottom:18px;transform:rotate(-2deg)}
.emb-card p{color:var(--encre);margin-bottom:22px}
.emb-form{display:flex;gap:12px;flex-wrap:wrap}
.emb-form input{flex:1;min-width:220px;border:1.5px solid rgba(31,26,19,.35);border-radius:14px;padding:14px 18px;font-family:var(--body);font-size:1rem;background:var(--creme)}
.emb-form input:focus{outline:3px solid var(--jaune)}
.emb-ok{display:none;font-weight:600;color:#2E7D32;margin-top:14px}
.emb-ok.show{display:block}
.emb-rgpd{font-size:.8rem;color:var(--gris);margin-top:14px;margin-bottom:0!important}
.emb-photo{position:relative;transform:rotate(1.5deg)}
.emb-photo img{border:8px solid #fff;border-bottom-width:46px;box-shadow:0 18px 40px rgba(31,26,19,.16);border-radius:4px}
.emb-photo figcaption{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:1.35rem}

/* ---------- témoignages : pile de polaroïds, clic pour tourner ---------- */
.temoignages{position:relative}
.temo-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.temo-intro .lead{margin-bottom:34px}
.temo-nav{display:flex;align-items:center;gap:12px}
.temo-btn{
  width:48px;height:48px;border-radius:50%;border:2px solid var(--noir);background:#fff;
  font-size:1.15rem;font-weight:700;display:grid;place-items:center;line-height:1;
  transition:background .2s,transform .2s;box-shadow:0 4px 12px rgba(31,26,19,.1);
}
.temo-btn:hover{background:var(--jaune);transform:translateY(-2px)}
.temo-btn:active{transform:translateY(0)}
.temo-count{font-family:var(--display);font-weight:700;font-size:.95rem;color:var(--gris);margin-left:6px;font-variant-numeric:tabular-nums}
.temo-count b{color:var(--noir)}
.temo-side{position:relative}
.temo-deck{position:relative;height:560px;max-width:440px;margin-left:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}
.temo-card{
  position:absolute;inset:0;background:#fff;border:1px solid var(--ligne);border-radius:16px;
  padding:16px 16px 18px;box-shadow:0 18px 44px rgba(31,26,19,.13);
  display:flex;flex-direction:column;overflow:hidden;
  transform:translate(calc(var(--i)*-16px),calc(var(--i)*-12px)) rotate(calc(var(--i)*-1.8deg + 1deg));
  transition:transform .45s cubic-bezier(.3,.7,.3,1),box-shadow .3s;
  will-change:transform;
}
.temo-card.leaving{transform:translate(-72%,4%) rotate(-9deg)}
.temo-photo{border-radius:10px;overflow:hidden;margin-bottom:16px;flex:none}
.temo-photo img{width:100%;height:300px;object-fit:cover;display:block}
.temo-card blockquote{font-family:var(--display);font-weight:600;font-size:1.12rem;line-height:1.35;margin-bottom:10px}
.temo-card cite{font-style:normal;font-family:var(--hand);font-size:1.3rem;color:var(--gris);display:block;margin-top:auto}
.temo-tampon{
  position:absolute;top:26px;right:26px;background:var(--creme);border:1.5px solid var(--noir);
  border-radius:999px;font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:.72rem;letter-spacing:.05em;padding:6px 13px;transform:rotate(3deg);white-space:nowrap;
  box-shadow:0 4px 10px rgba(31,26,19,.14);
}
.temo-hint{text-align:right;margin-top:14px;max-width:440px;margin-left:auto}

/* ---------- presse ---------- */
.presse{background:linear-gradient(180deg,transparent,var(--creme2) 22%,var(--creme2) 78%,transparent);padding:80px 0}
.presse .wrap{margin-bottom:16px}
.presse-sub{color:var(--encre)}
.marquee-presse{padding:24px 0 30px}
.presse-cards{display:inline-flex;gap:20px;padding:0 10px}
.presse-card{
  display:inline-flex;flex-direction:column;gap:10px;width:340px;background:#fff;border:1px solid var(--ligne);
  border-radius:10px;padding:20px 22px;box-shadow:0 8px 22px rgba(31,26,19,.06);white-space:normal;vertical-align:top;
  transition:transform .25s,box-shadow .25s;
}
.presse-card:hover{transform:translateY(-6px);box-shadow:0 18px 34px rgba(31,26,19,.12)}
.pc-head{display:flex;align-items:center;gap:12px}
.pc-logo{
  flex:none;width:40px;height:40px;border-radius:10px;background:var(--noir);color:var(--jaune);
  display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:.74rem;letter-spacing:.02em;
}
.pc-media{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:.98rem;letter-spacing:.02em;line-height:1.2}
.presse-card q{font-size:.95rem;color:var(--encre);quotes:"« " " »"}
.pc-date{font-family:var(--hand);font-size:1.05rem;color:var(--gris)}

/* ---------- galerie : musée de la route (défilement doux + drag) ---------- */
.galerie{overflow:hidden;padding:100px 0 90px}
.gal-head{width:100%;margin-bottom:38px}
.gal-strip{
  display:flex;flex-flow:column wrap;height:540px;gap:12px;align-content:flex-start;
  overflow-x:auto;overflow-y:hidden;padding:0 6vw;cursor:grab;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
}
.gal-strip::-webkit-scrollbar{display:none}
.gal-strip.dragging{cursor:grabbing}
.g-item{flex:0 0 auto;position:relative;margin:0;border-radius:10px;overflow:hidden}
.g-full{height:100%}
.g-half{height:calc(50% - 6px)}
.w280{width:280px}.w300{width:300px}.w320{width:320px}.w340{width:340px}.w360{width:360px}
.g-item img,.g-item video{
  width:100%;height:100%;object-fit:cover;display:block;
  -webkit-user-drag:none;user-select:none;pointer-events:none;
  transition:transform .45s ease;
}
.g-item:hover img,.g-item:hover video{transform:scale(1.05)}
.g-item figcaption{
  position:absolute;bottom:10px;left:10px;background:rgba(31,26,19,.78);color:var(--creme);
  font-family:var(--hand);font-size:1.05rem;padding:3px 12px;border-radius:999px;backdrop-filter:blur(4px);
}
.gal-fin{
  background:var(--noir);color:var(--creme);border-radius:10px;
  padding:36px 30px;display:flex;flex-direction:column;gap:12px;align-items:flex-start;justify-content:center;
}
.gal-fin-num{font-family:var(--display);font-weight:800;font-size:2.2rem;color:var(--jaune);line-height:1.05}
.gal-fin-txt{font-size:1rem;color:rgba(255,251,239,.85);margin-bottom:10px}

/* ---------- dates ---------- */
.dates{background:radial-gradient(55% 80% at 50% 20%,rgba(241,137,35,.09),transparent 70%)}
.timeline{list-style:none;margin-top:70px;position:relative;padding-left:42px;--p:0}
.timeline::before{
  content:"";position:absolute;left:8px;top:6px;bottom:6px;width:3px;
  background:repeating-linear-gradient(180deg,var(--orange) 0 12px,transparent 12px 22px);
  transform:scaleY(var(--p));transform-origin:top;
}
.timeline li{position:relative;padding:0 0 60px 26px}
.timeline li:last-child{padding-bottom:10px}
.timeline li::before{
  content:"";position:absolute;left:-42px;top:4px;width:19px;height:19px;border-radius:50%;
  background:var(--jaune);border:3px solid var(--noir);box-shadow:0 0 0 3px var(--creme);
  transform:scale(0);transition:transform .5s cubic-bezier(.5,1.8,.4,1) .15s;
}
.timeline li.shown::before{transform:scale(1)}
.tl-date{font-family:var(--display);font-weight:800;text-transform:uppercase;color:var(--noir);display:block;font-size:1.25rem;margin-bottom:6px}
.tl-txt{color:var(--encre);max-width:560px;display:block}

/* ---------- partenaires ---------- */
.partn-principaux{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:48px 0 20px}
.partn-main{
  position:relative;background:#fff;border:1px solid var(--ligne);border-radius:16px;
  min-height:150px;display:grid;place-items:center;padding:34px 22px 26px;text-align:center;
  box-shadow:0 12px 32px rgba(31,26,19,.07);transition:transform .25s,box-shadow .25s;
}
.partn-main:hover{transform:translateY(-5px);box-shadow:0 22px 44px rgba(31,26,19,.12)}
.partn-tag{
  position:absolute;top:-13px;left:18px;background:var(--jaune);border:1.5px solid var(--noir);
  border-radius:999px;font-family:var(--display);font-weight:700;font-size:.68rem;text-transform:uppercase;
  letter-spacing:.07em;padding:4px 12px;
}
.partn-name{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.2rem;line-height:1.25}
.partn-mur{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:44px}
.partn{
  font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:.92rem;letter-spacing:.02em;
  border:1px solid var(--ligne);border-radius:12px;padding:14px 22px;background:#fff;
  box-shadow:0 6px 16px rgba(31,26,19,.05);transition:.25s;
}
.partn:hover{background:var(--jaune);transform:translateY(-3px)}
.partn-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:var(--creme2);border:1px solid var(--ligne);border-radius:16px;padding:26px 30px;box-shadow:0 16px 34px rgba(31,26,19,.06)}
.partn-cta p{font-family:var(--display);font-weight:700;font-size:1.15rem;max-width:460px}
.partn-cta-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.partn-mail{font-size:.9rem;color:var(--gris);text-decoration:underline;text-underline-offset:3px}
.partn-mail:hover{color:var(--noir)}

/* ---------- footer ---------- */
.footer{background:var(--noir);color:var(--creme);padding-bottom:30px}
.marquee-footer{background:var(--noir);padding:30px 0;border-bottom:1px solid rgba(255,251,239,.14)}
.marquee-footer span{
  font-family:var(--display);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.4rem,3.2vw,2.3rem);letter-spacing:.05em;color:var(--creme);padding-right:18px;
}
.marquee-footer em{
  font-style:normal;margin-left:18px;margin-right:18px;color:transparent;
  -webkit-text-stroke:1.5px rgba(244,211,84,.85);
}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-top:56px;padding-bottom:46px}
.foot-logo{width:118px;height:118px;border-radius:50%;background:var(--creme);display:grid;place-items:center;padding:10px;margin-bottom:18px}
.foot-logo img{width:100%}
.foot-brand p{font-size:.92rem;color:rgba(255,251,239,.75)}
.foot-col h4{font-family:var(--display);font-weight:800;text-transform:uppercase;color:var(--jaune);margin-bottom:14px;font-size:1rem}
.foot-col a{display:block;padding:5px 0;color:rgba(255,251,239,.8);font-size:.95rem;transition:color .2s,transform .2s}
.foot-col a:hover{color:var(--jaune);transform:translateX(4px)}
.footer-bas{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;border-top:1px solid rgba(255,251,239,.15);padding-top:24px;font-size:.85rem;color:rgba(255,251,239,.6)}
.remonter{font-family:var(--display);font-weight:700;text-transform:uppercase;color:var(--jaune)}

/* ---------- compat pages annexes (association/, editions/, partenaires/, blog/, 404) ----------
   L'accueil v2 n'utilise plus ces classes, mais les pages annexes v1 si.
   À retirer quand elles passeront au design v2 (palette crème unifiée). */
.section-dark{background:var(--noir);color:var(--creme)}
.section-dark2{background:#2A241B;color:var(--creme)}
.section-jaune{background:var(--jaune)}
.kicker-jaune{color:var(--jaune)}
.blanc{color:var(--creme)}
.jaune{color:var(--jaune)}
.souligne{box-shadow:inset 0 -0.28em 0 var(--creme)}
.btn-noir{background:var(--noir);color:var(--creme)}
.lead-dark{font-size:1.06rem;max-width:520px;color:#CFC6B2;margin-bottom:26px}
.demo-note{font-family:var(--hand);font-size:1.1rem;opacity:.55;margin-top:18px}
.demo-note-inline{font-family:var(--hand);font-size:1.05rem;opacity:.55}

/* ---------- reveals ----------
   via la propriété `translate` (et pas transform) pour ne pas écraser
   les rotations propres des cartes ; caché uniquement si JS présent (html.js) */
.js .reveal{opacity:0;translate:0 34px;transition:opacity .9s cubic-bezier(.16,1,.3,1),translate .9s cubic-bezier(.16,1,.3,1)}
.js .reveal.shown{opacity:1;translate:0 0}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .piliers{grid-template-columns:1fr 1fr}
  .stats-grid{grid-template-columns:repeat(3,1fr)}
  .embarquement-grid{grid-template-columns:1fr;gap:50px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .temo-grid{grid-template-columns:1fr;gap:44px}
  .temo-deck{margin:0 auto}
  .temo-hint{margin-right:auto;text-align:center}
}
@media (max-width:760px){
  .section{padding:80px 0}
  .header-nav,.header-cta{display:none}
  .burger{display:block}
  .piliers{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .hero-badge{width:96px;height:96px}
  .countdown{gap:10px;padding:12px 14px}
  .cd-cell{min-width:44px}
  .cd-note{font-size:1rem}
  .hero-date{font-size:.74rem;letter-spacing:.14em}
  .partn-principaux{grid-template-columns:1fr;gap:26px}
  .partn-cta{justify-content:center;text-align:center}
  .partn-cta-actions{justify-content:center}
  .temo-deck{height:520px;max-width:100%}
  .temo-photo img{height:240px}
  .temo-card{transform:translate(calc(var(--i)*-8px),calc(var(--i)*-7px)) rotate(calc(var(--i)*-1.4deg + 1deg))}
  .gal-strip{height:420px;gap:8px}
  .g-half{height:calc(50% - 4px)}
  .w280,.w300,.w320{width:230px}
  .w340,.w360{width:280px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .marquee-track{animation:none}
  .js .hero-title .word{transform:none}
  .js .reveal{opacity:1;translate:0 0}
}
