:root{--bg:#050301;--bg-2:#170c08;--gold:#f5bd2c;--gold-soft:#f0c666;--gold-light:#ffe77e;--cream:#fffdfa;--cream-2:#fff8ed;--muted:#d3b8a3;--muted-strong:#f0dac5;--stroke:rgba(255,225,180,.20);--stroke-strong:rgba(255,225,180,.36);--shadow:0 26px 86px rgba(14,6,3,.58);--radius-xl:30px;--radius-lg:22px;--shell:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px;background:var(--bg)}body{margin:0;min-width:320px;color:var(--cream-2);background:radial-gradient(circle at 12% 4%,rgba(240,198,102,.12),transparent 28rem),linear-gradient(160deg,var(--bg),#0d0704 48%,var(--bg));font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}.shell{width:min(calc(100% - 32px),var(--shell));margin-inline:auto}.skip-link{position:fixed;left:16px;top:-80px;z-index:1000;padding:10px 14px;color:#050301;background:var(--gold-light);border-radius:10px;text-decoration:none}.skip-link:focus{top:12px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.site-header{position:fixed;inset:0 0 auto;z-index:50;border-bottom:1px solid rgba(255,255,255,.04);background:linear-gradient(180deg,rgba(5,3,1,.9),rgba(5,3,1,.55),transparent);backdrop-filter:blur(10px)}.site-header__inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:baseline;gap:7px;text-decoration:none;font-weight:950;letter-spacing:-.055em;line-height:1}.brand__bercy{color:var(--cream);font-family:Impact,"Arial Narrow",Arial,sans-serif;font-size:1.4rem;letter-spacing:.035em}.brand__year{color:var(--gold);font-size:.9rem;letter-spacing:.04em}.main-nav{display:flex;align-items:center;gap:28px}.main-nav a{color:rgba(255,253,250,.78);font-size:.83rem;font-weight:750;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.nav-toggle{display:none;width:44px;height:44px;padding:10px;border:1px solid var(--stroke);border-radius:14px;background:rgba(255,255,255,.04)}.nav-toggle__line{display:block;width:100%;height:2px;margin:4px 0;background:var(--cream);border-radius:999px}
.hero{position:relative;min-height:min(940px,100svh);display:grid;align-items:center;overflow:hidden;isolation:isolate}.hero__visual{position:absolute;inset:0;z-index:-4;background:linear-gradient(90deg,rgba(5,3,1,.98) 0%,rgba(5,3,1,.90) 32%,rgba(5,3,1,.46) 70%,rgba(5,3,1,.82) 100%),url("../img/paris-accor-night.jpg") center/cover no-repeat;transform:scale(1.02)}.hero__veil{position:absolute;inset:0;z-index:-3;background:radial-gradient(circle at 76% 20%,rgba(245,189,44,.18),transparent 27rem),linear-gradient(180deg,rgba(5,3,1,.12),rgba(5,3,1,.5) 66%,var(--bg) 100%)}.hero__grid{position:absolute;inset:0;z-index:-2;opacity:.10;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 90%)}.hero__inner{min-height:inherit;padding-top:120px;padding-bottom:82px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(350px,.85fr);align-items:center;gap:clamp(34px,6vw,78px)}.hero__content{max-width:710px}.eyebrow{margin:0 0 18px;color:var(--gold-light);font-size:clamp(.72rem,1.4vw,.88rem);font-weight:850;letter-spacing:.22em;text-transform:uppercase}.eyebrow--small{margin-bottom:14px;font-size:.74rem}.hero__title{margin:0;line-height:.82;text-transform:uppercase}.hero__title-main{display:block;color:var(--cream);font-family:Impact,"Arial Narrow",Arial,sans-serif;font-size:clamp(5rem,11vw,9.3rem);letter-spacing:.015em;text-shadow:0 3px 10px rgba(0,0,0,.78)}.hero__title-year{display:block;width:max-content;margin-top:4px;color:transparent;background:linear-gradient(180deg,var(--gold-light),var(--gold) 50%,#bd7400);-webkit-background-clip:text;background-clip:text;font-family:Impact,"Arial Narrow",Arial,sans-serif;font-size:clamp(3.2rem,7.8vw,6.4rem);letter-spacing:.02em}.hero-facts{margin-top:24px;display:grid;gap:10px;max-width:680px}.hero-fact{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(255,225,180,.11);border-radius:15px;background:rgba(18,8,4,.48);backdrop-filter:blur(8px)}.hero-fact__icon{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(245,189,44,.28);border-radius:12px;background:rgba(245,189,44,.08);color:var(--gold-light)}.hero-fact__icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.hero-fact__icon--star svg{fill:currentColor;stroke:none}.hero-fact small{display:block;color:var(--gold-soft);font-size:.59rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.hero-fact strong{display:block;margin-top:3px;color:var(--cream);font-size:.88rem;line-height:1.3}.flag{font-size:1rem}.hero__actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px}
.btn{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:0 22px;border:1px solid transparent;border-radius:17px;font:inherit;font-size:.82rem;font-weight:900;letter-spacing:.055em;text-decoration:none;text-transform:uppercase;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.btn--gold{color:#1c1103;background:linear-gradient(180deg,#ffe36d,var(--gold) 48%,#dfa00f);box-shadow:0 0 0 4px rgba(245,189,44,.08),0 14px 34px rgba(239,151,0,.20),inset 0 1px 0 rgba(255,255,255,.7)}.btn--ghost{color:var(--cream);border-color:var(--stroke-strong);background:rgba(18,8,4,.62);backdrop-filter:blur(8px)}.btn:hover:not(:disabled),.btn:focus-visible:not(:disabled){transform:translateY(-2px)}.btn--disabled,.btn:disabled{cursor:not-allowed;filter:saturate(.45);opacity:.66;transform:none}.btn__arrow{font-size:1.1rem}
.hero__side{display:grid;gap:16px;align-items:start}.artist-visual{position:relative;margin:0 auto;width:min(100%,390px);border:1px solid rgba(255,225,180,.22);border-radius:30px;overflow:hidden;background:#050301;box-shadow:0 28px 80px rgba(0,0,0,.52),0 0 0 5px rgba(139,80,0,.10)}.artist-visual__glow{position:absolute;inset:-18%;z-index:0;background:radial-gradient(circle,rgba(245,189,44,.20),transparent 58%)}.artist-visual img{position:relative;z-index:1;display:block;width:100%;height:auto;object-fit:contain}.countdown-card{padding:18px 20px;border:1px solid var(--stroke);border-radius:22px;background:linear-gradient(180deg,rgba(55,31,21,.90),rgba(18,8,4,.92));box-shadow:var(--shadow);backdrop-filter:blur(14px)}.countdown-card__kicker{margin:0 0 12px;color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.countdown__unit{min-height:72px;padding:12px 4px 9px;display:grid;align-content:center;justify-items:center;border:1px solid rgba(255,225,180,.13);border-radius:13px;background:rgba(255,255,255,.035)}.countdown__unit strong{color:var(--cream);font-size:clamp(1.7rem,3.7vw,2.5rem);font-variant-numeric:tabular-nums;line-height:.9;letter-spacing:-.055em}.countdown__unit span{margin-top:7px;color:var(--gold-soft);font-size:.49rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.countdown-card__footer{margin-top:12px;display:flex;align-items:center;gap:8px;color:rgba(255,253,250,.52);font-size:.66rem}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px rgba(245,189,44,.10)}
.section{position:relative;padding:clamp(74px,10vw,130px) 0}.section-heading{max-width:720px;margin-bottom:36px}.section-heading--center{margin-inline:auto;text-align:center}.section-heading h2,.game-card h2{margin:0;color:var(--cream);font-family:Impact,"Arial Narrow",Arial,sans-serif;font-size:clamp(2.7rem,7vw,5.6rem);font-weight:900;letter-spacing:.015em;line-height:.92;text-transform:uppercase}.section-heading p:not(.eyebrow),.game-card__copy>p:not(.eyebrow){margin:20px 0 0;color:var(--muted);font-size:clamp(.98rem,2vw,1.12rem);line-height:1.75}.section--tickets{background:radial-gradient(circle at 50% 0%,rgba(245,189,44,.08),transparent 34rem),linear-gradient(180deg,var(--bg),#0b0503 60%,var(--bg))}.ticket-panel{position:relative;overflow:hidden;min-height:260px;padding:clamp(26px,5vw,48px);display:grid;grid-template-columns:1fr auto;align-items:center;gap:36px;border:1px solid var(--stroke);border-radius:var(--radius-xl);background:linear-gradient(95deg,rgba(47,23,10,.88),rgba(10,6,3,.94));box-shadow:0 24px 64px rgba(0,0,0,.30)}.ticket-panel::after{content:"BERCY";position:absolute;right:-18px;bottom:-30px;color:rgba(255,255,255,.025);font-family:Impact,"Arial Narrow",Arial,sans-serif;font-size:clamp(7rem,18vw,14rem);line-height:.8}.ticket-panel__shine{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.10),transparent);transform:translateX(-120%);animation:ticketShine 5s ease-in-out infinite}.ticket-panel__content,.ticket-panel__action{position:relative;z-index:2}.ticket-panel__label{display:inline-flex;padding:8px 11px;border:1px solid rgba(245,189,44,.28);border-radius:999px;color:var(--gold-light);background:rgba(245,189,44,.08);font-size:.7rem;font-weight:850;letter-spacing:.14em}.ticket-panel h3{margin:18px 0 0;color:var(--cream);font-size:clamp(1.8rem,4vw,3rem)}.ticket-panel p{margin:12px 0 0;color:var(--muted)}.ticket-panel__action{min-width:min(100%,300px);display:grid;gap:10px}.ticket-panel__action small{color:rgba(255,253,250,.42);font-size:.72rem;text-align:center}
.section--game{background:radial-gradient(circle at 18% 55%,rgba(240,198,102,.10),transparent 30rem)}.game-card{position:relative;overflow:hidden;min-height:470px;padding:clamp(32px,6vw,68px);display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.48fr);align-items:center;gap:50px;border:1px solid var(--stroke);border-radius:var(--radius-xl);background:radial-gradient(circle at 84% 20%,rgba(245,189,44,.16),transparent 26rem),linear-gradient(135deg,rgba(43,20,10,.92),rgba(8,4,2,.98));box-shadow:var(--shadow)}.game-card__halo{position:absolute;width:460px;height:460px;right:-210px;top:-160px;border-radius:50%;background:radial-gradient(circle,rgba(245,189,44,.19),transparent 68%)}.game-card__copy{position:relative;z-index:2;max-width:700px}.game-card__copy .btn{margin-top:28px}.game-prize{position:relative;z-index:2;min-height:310px;padding:30px 24px;display:grid;place-content:center;text-align:center;border:1px solid rgba(245,189,44,.34);border-radius:30px;background:radial-gradient(circle at 50% 28%,rgba(245,189,44,.18),rgba(10,6,3,.78) 66%);box-shadow:-25px 0 28px -20px rgba(255,184,9,.44),25px 0 28px -20px rgba(255,184,9,.44),0 0 0 5px rgba(139,80,0,.12),0 18px 44px rgba(0,0,0,.36)}.game-prize::before{content:"";position:absolute;inset:10px;border:1px solid rgba(255,231,126,.10);border-radius:23px;pointer-events:none}.game-prize__eyebrow{color:var(--gold-light);font-size:.72rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.game-prize__amount{margin-top:12px;color:transparent;background:linear-gradient(180deg,#fff1a6 0%,#f5bd2c 54%,#bd7400 100%);-webkit-background-clip:text;background-clip:text;font-family:Impact,"Arial Narrow",Arial,sans-serif;font-size:clamp(3.7rem,7vw,6.2rem);line-height:.85;letter-spacing:.01em;filter:drop-shadow(0 10px 22px rgba(245,189,44,.18))}.game-prize__currency{margin-top:8px;color:var(--cream);font-size:1.2rem;font-weight:950;letter-spacing:.16em}.game-prize__tag{margin-top:18px;color:var(--muted);font-size:.72rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.section--info{padding-top:30px;padding-bottom:clamp(80px,10vw,130px)}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.info-card{min-height:210px;padding:26px;border:1px solid rgba(255,225,180,.14);border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(255,230,173,.07),rgba(166,93,56,.05)),rgba(35,17,11,.62)}.info-card--muted{opacity:.7}.info-card__num{color:rgba(245,189,44,.42);font-family:Impact,"Arial Narrow",Arial,sans-serif;font-size:2.3rem}.info-card__label{margin:42px 0 8px;color:var(--gold-soft);font-size:.7rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}.info-card h3{margin:0;color:var(--cream);font-size:clamp(1.12rem,2.5vw,1.5rem)}.site-footer{border-top:1px solid rgba(255,255,255,.06);background:#030201}.site-footer__inner{min-height:120px;display:flex;align-items:center;justify-content:space-between;gap:22px}.site-footer p{margin:0;color:rgba(255,253,250,.42);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
@keyframes ticketShine{0%,35%{transform:translateX(-120%)}55%,100%{transform:translateX(120%)}}
@media(max-width:980px){.hero{min-height:auto}.hero__inner{min-height:auto;padding-top:118px;padding-bottom:78px;grid-template-columns:1fr;gap:42px}.hero__side{grid-template-columns:minmax(260px,.8fr) minmax(330px,1.2fr);align-items:end}.artist-visual{width:min(100%,330px)}.ticket-panel{grid-template-columns:1fr}.game-card{grid-template-columns:1fr}.game-prize{width:min(100%,430px);margin-inline:auto}.info-grid{grid-template-columns:1fr}}
@media(max-width:760px){html{scroll-padding-top:68px}.site-header__inner{min-height:68px}.nav-toggle{display:block}.main-nav{position:absolute;top:68px;left:16px;right:16px;display:none;padding:14px;flex-direction:column;align-items:stretch;gap:4px;border:1px solid var(--stroke);border-radius:18px;background:rgba(12,6,3,.96);box-shadow:0 22px 52px rgba(0,0,0,.42)}.main-nav.is-open{display:flex}.main-nav a{padding:13px 12px;border-radius:11px}.hero__inner{padding-top:102px;padding-bottom:66px}.hero__side{grid-template-columns:1fr}.artist-visual{width:min(100%,360px)}.hero__actions{display:grid;grid-template-columns:1fr}.btn{width:100%}.game-card{min-height:auto}.site-footer__inner{padding-block:30px;flex-direction:column;align-items:flex-start}}
@media(max-width:520px){.shell{width:min(calc(100% - 24px),var(--shell))}.hero__title-main{font-size:clamp(4.7rem,24vw,7.4rem)}.hero__title-year{font-size:clamp(3rem,15vw,4.9rem)}.hero-fact{grid-template-columns:38px 1fr;padding:9px 10px}.hero-fact strong{font-size:.82rem}.countdown-card{padding:15px}.countdown{gap:5px}.countdown__unit{min-height:68px;padding:11px 2px 8px}.countdown__unit strong{font-size:clamp(1.55rem,8.6vw,2.15rem)}.countdown__unit span{font-size:.45rem}.section{padding-block:66px}.ticket-panel{padding:24px 20px;border-radius:24px}.game-card{padding:30px 22px;border-radius:24px}.game-prize{min-height:270px}.game-prize__amount{font-size:clamp(3.5rem,17vw,5rem)}}@media(max-width:360px){.btn{padding-inline:14px;font-size:.74rem}.game-prize__amount{font-size:3.3rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* V4 refinements */
.brand{
  font-weight:700;
  letter-spacing:-.02em;
}
.brand__bercy{
  font-family:"Arial Narrow",Arial,Helvetica,sans-serif;
  font-weight:700;
  letter-spacing:.08em;
}
.brand__year{
  font-weight:700;
  letter-spacing:.07em;
}

/* Keep the million prize on one line at every supported viewport. */
.game-prize__amount{
  display:block;
  white-space:nowrap;
  word-break:keep-all;
  overflow-wrap:normal;
  font-size:clamp(3rem,6.1vw,5.35rem);
  letter-spacing:-.015em;
}
@media(max-width:520px){
  .game-prize{
    padding-inline:12px;
  }
  .game-prize__amount{
    font-size:clamp(2.65rem,13.7vw,4rem);
  }
}
@media(max-width:360px){
  .game-prize__amount{
    font-size:2.55rem;
  }
}


/* ============================================================
   V5 — desktop visual alignment refinements
   ============================================================ */

/* On desktop, reduce and lower the artist card enough to reveal
   more of the ACCOR ARENA background while keeping the countdown
   top aligned with the CTA row. */
@media (min-width: 981px) {
  .artist-visual {
    width: min(100%, 350px);
    margin: 42px auto 0;
  }

  .hero__side {
    gap: 16px;
  }
}

/* Prize amount: always one line, but never outside its card. */
.game-prize {
  overflow: hidden;
}

.game-prize__amount {
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
  font-size: clamp(2.85rem, 4.4vw, 4.4rem);
  line-height: .90;
  letter-spacing: -.025em;
}

@media (max-width: 760px) {
  .game-prize__amount {
    font-size: clamp(2.65rem, 12.2vw, 3.8rem);
  }
}

@media (max-width: 390px) {
  .game-prize__amount {
    font-size: 2.45rem;
    letter-spacing: -.035em;
  }
}


/* ============================================================
   V6 — spacing between BERCY and 2026
   ============================================================ */
.hero__title-year{
  margin-top:14px;
}

@media(max-width:520px){
  .hero__title-year{
    margin-top:10px;
  }
}


/* ============================================================
   V7 — rewrite 2026 rendering to eliminate visual clipping
   ============================================================ */
.hero__title-year{
  display:block;
  width:max-content;
  margin-top:14px;
  padding-top:.08em;
  padding-bottom:.06em;
  line-height:1.04;
  overflow:visible;
  font-family:Impact,"Arial Black","Arial Narrow",Arial,sans-serif;
  font-weight:900;
  letter-spacing:.01em;
  color:transparent;
  background:linear-gradient(180deg,#fff0a0 0%,#ffe36d 14%,#f5bd2c 55%,#dfa00f 82%,#bd7400 100%);
  -webkit-background-clip:text;
  background-clip:text;
  filter:drop-shadow(0 10px 22px rgba(245,189,44,.14));
}

@media(max-width:520px){
  .hero__title-year{
    margin-top:10px;
    padding-top:.09em;
    padding-bottom:.07em;
    line-height:1.05;
  }
}


/* ============================================================
   V8 — illustrated Billetterie + Grand Jeu cards
   ============================================================ */

.ticket-panel--illustrated{
  grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);
  gap:clamp(28px,5vw,70px);
  align-items:center;
  background:
    radial-gradient(circle at 16% 14%,rgba(245,189,44,.13),transparent 30rem),
    linear-gradient(105deg,rgba(49,23,9,.96),rgba(10,6,3,.98));
}

.ticket-panel--illustrated::after{
  display:none;
}

.ticket-visual{
  position:relative;
  z-index:2;
  width:min(100%,470px);
  margin-inline:auto;
}

.ticket-visual__stub{
  position:relative;
  min-height:250px;
  padding:30px 28px;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 94px;
  align-items:center;
  gap:22px;
  overflow:hidden;
  border:1px solid rgba(255,231,126,.35);
  border-radius:24px;
  background:
    radial-gradient(circle at 14% 20%,rgba(255,231,126,.13),transparent 12rem),
    linear-gradient(140deg,#2d1608 0%,#160b05 48%,#080401 100%);
  box-shadow:
    0 22px 58px rgba(0,0,0,.38),
    0 0 0 5px rgba(139,80,0,.10),
    inset 0 1px 0 rgba(255,255,255,.08);
  transform:rotate(-2deg);
}

.ticket-visual__stub::before,
.ticket-visual__stub::after{
  content:"";
  position:absolute;
  width:34px;
  height:34px;
  right:76px;
  border-radius:50%;
  background:#0b0503;
  border:1px solid rgba(255,231,126,.18);
}
.ticket-visual__stub::before{top:-18px}
.ticket-visual__stub::after{bottom:-18px}

.ticket-visual__icon{
  width:68px;
  height:68px;
  display:grid;
  place-items:center;
  border-radius:20px;
  color:#1d1102;
  background:linear-gradient(180deg,#fff09b,#f5bd2c 55%,#d99500);
  box-shadow:0 14px 30px rgba(239,151,0,.22);
}
.ticket-visual__icon svg{
  width:38px;
  height:38px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.ticket-visual__copy{
  min-width:0;
}
.ticket-visual__micro{
  display:block;
  margin-bottom:8px;
  color:var(--gold-light);
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.18em;
}
.ticket-visual__copy strong{
  display:block;
  color:var(--cream);
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:clamp(2.1rem,4vw,3.4rem);
  line-height:.92;
  letter-spacing:.02em;
}
.ticket-visual__copy > span:last-child{
  display:block;
  margin-top:10px;
  color:var(--muted);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
}

.ticket-visual__date{
  min-height:150px;
  padding-left:22px;
  display:grid;
  place-content:center;
  text-align:center;
  border-left:1px dashed rgba(255,231,126,.35);
}
.ticket-visual__date span{
  color:var(--gold-light);
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:4.3rem;
  line-height:.75;
}
.ticket-visual__date strong{
  margin-top:12px;
  color:var(--cream);
  font-size:1rem;
  letter-spacing:.16em;
}
.ticket-visual__date small{
  margin-top:5px;
  color:var(--muted);
  font-size:.66rem;
  letter-spacing:.14em;
}
.ticket-visual__caption{
  margin-top:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:rgba(255,253,250,.50);
  font-size:.72rem;
  letter-spacing:.06em;
}
.ticket-visual__dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 5px rgba(245,189,44,.10);
}

.ticket-panel--illustrated .ticket-panel__content{
  max-width:560px;
}
.ticket-panel--illustrated .ticket-panel__content h3{
  margin-top:18px;
  font-size:clamp(2rem,4vw,3.45rem);
  line-height:.98;
}
.ticket-panel--illustrated .ticket-panel__content p{
  max-width:560px;
  line-height:1.7;
}
.ticket-panel--illustrated .ticket-panel__action{
  width:min(100%,380px);
  margin-top:28px;
}

.game-card--illustrated{
  grid-template-columns:minmax(0,1fr) minmax(310px,.58fr);
  gap:clamp(34px,6vw,76px);
  background:
    radial-gradient(circle at 84% 24%,rgba(245,189,44,.18),transparent 28rem),
    radial-gradient(circle at 22% 90%,rgba(166,93,56,.14),transparent 30rem),
    linear-gradient(135deg,rgba(43,20,10,.96),rgba(8,4,2,.99));
}

.game-card__chips{
  margin-top:24px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.game-card__chips span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 11px;
  border:1px solid rgba(245,189,44,.18);
  border-radius:999px;
  color:var(--muted-strong);
  background:rgba(245,189,44,.055);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.game-card__chips i{
  color:var(--gold-light);
  font-style:normal;
}

.game-sparkles{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.game-sparkles span{
  position:absolute;
  width:10px;
  height:10px;
  background:linear-gradient(180deg,#fff2a8,#f5bd2c);
  transform:rotate(45deg);
  opacity:.66;
  box-shadow:0 0 14px rgba(245,189,44,.24);
}
.game-sparkles span:nth-child(1){top:12%;right:35%}
.game-sparkles span:nth-child(2){top:22%;right:12%;width:7px;height:7px}
.game-sparkles span:nth-child(3){bottom:20%;right:31%;width:6px;height:6px}
.game-sparkles span:nth-child(4){top:56%;right:8%;width:12px;height:12px}
.game-sparkles span:nth-child(5){bottom:12%;right:18%;width:8px;height:8px}
.game-sparkles span:nth-child(6){top:10%;right:23%;width:5px;height:5px}

.game-visual{
  position:relative;
  z-index:2;
  min-height:360px;
  padding:34px 22px 30px;
  display:grid;
  place-content:center;
  justify-items:center;
  text-align:center;
  overflow:hidden;
  border:1px solid rgba(245,189,44,.36);
  border-radius:32px;
  background:
    radial-gradient(circle at 50% 16%,rgba(255,231,126,.18),transparent 15rem),
    radial-gradient(circle at 50% 44%,rgba(245,189,44,.10),transparent 20rem),
    linear-gradient(180deg,rgba(36,18,7,.96),rgba(7,3,1,.99));
  box-shadow:
    0 24px 58px rgba(0,0,0,.42),
    0 0 0 5px rgba(139,80,0,.10),
    inset 0 1px 0 rgba(255,255,255,.06);
}
.game-visual::before{
  content:"";
  position:absolute;
  inset:11px;
  border:1px solid rgba(255,231,126,.10);
  border-radius:24px;
  pointer-events:none;
}
.game-visual__trophy{
  width:74px;
  height:74px;
  margin-bottom:18px;
  display:grid;
  place-items:center;
  border-radius:22px;
  color:#241500;
  background:linear-gradient(180deg,#fff2a0,#f5bd2c 55%,#d99500);
  box-shadow:0 14px 34px rgba(239,151,0,.25);
}
.game-visual__trophy svg{
  width:45px;
  height:45px;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.game-card--illustrated .game-prize__amount{
  font-size:clamp(2.85rem,4vw,4.15rem);
}

@media(max-width:980px){
  .ticket-panel--illustrated,
  .game-card--illustrated{
    grid-template-columns:1fr;
  }
  .ticket-panel--illustrated .ticket-panel__content{
    max-width:none;
  }
  .ticket-panel--illustrated .ticket-panel__action{
    width:min(100%,420px);
  }
  .game-visual{
    width:min(100%,430px);
    margin-inline:auto;
  }
}

@media(max-width:640px){
  .ticket-visual__stub{
    min-height:220px;
    padding:24px 20px;
    grid-template-columns:58px minmax(0,1fr) 76px;
    gap:14px;
    border-radius:21px;
  }
  .ticket-visual__icon{
    width:56px;
    height:56px;
    border-radius:17px;
  }
  .ticket-visual__icon svg{
    width:32px;
    height:32px;
  }
  .ticket-visual__copy strong{
    font-size:clamp(1.7rem,8vw,2.4rem);
  }
  .ticket-visual__date{
    min-height:132px;
    padding-left:14px;
  }
  .ticket-visual__date span{
    font-size:3.4rem;
  }
  .game-visual{
    min-height:320px;
  }
}

@media(max-width:430px){
  .ticket-visual__stub{
    grid-template-columns:1fr 70px;
    padding:22px 17px;
  }
  .ticket-visual__icon{
    position:absolute;
    top:14px;
    right:14px;
    width:42px;
    height:42px;
    border-radius:13px;
    opacity:.92;
  }
  .ticket-visual__icon svg{
    width:25px;
    height:25px;
  }
  .ticket-visual__copy{
    padding-right:8px;
  }
  .ticket-visual__copy strong{
    max-width:180px;
  }
  .ticket-visual__date{
    padding-left:10px;
  }
  .ticket-visual__date span{
    font-size:3rem;
  }
  .game-card__chips{
    gap:7px;
  }
  .game-card__chips span{
    font-size:.60rem;
  }
  .game-card--illustrated .game-prize__amount{
    font-size:2.55rem;
  }
}


/* ============================================================
   V9 — illustrated "Le rendez-vous" cards
   ============================================================ */
.info-grid--rendezvous{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.rendezvous-card{
  position:relative;
  min-height:300px;
  overflow:hidden;
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border:1px solid rgba(255,225,180,.16);
  border-radius:24px;
  background:
    radial-gradient(circle at 82% 12%,rgba(245,189,44,.10),transparent 15rem),
    linear-gradient(145deg,rgba(39,18,9,.84),rgba(11,5,3,.96));
  box-shadow:
    0 18px 46px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.035);
}

.rendezvous-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,rgba(255,255,255,.025),transparent 38%);
}

.rendezvous-card__number{
  position:relative;
  z-index:2;
  color:rgba(245,189,44,.34);
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:2.35rem;
  line-height:1;
}

.rendezvous-card__bottom{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  align-items:center;
  gap:14px;
  margin-top:110px;
}

.rendezvous-card__icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(245,189,44,.28);
  border-radius:14px;
  color:var(--gold-light);
  background:rgba(245,189,44,.075);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

.rendezvous-card__icon svg{
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.rendezvous-card__icon--star svg{
  fill:currentColor;
  stroke:none;
}

.rendezvous-card__copy{min-width:0}

.rendezvous-card__label{
  display:block;
  margin-bottom:5px;
  color:var(--gold-soft);
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.15em;
  text-transform:uppercase;
}

.rendezvous-card__copy strong{
  display:block;
  color:var(--cream);
  font-size:1.16rem;
  line-height:1.18;
}

.rendezvous-card__subline{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:5px;
  color:var(--muted);
  font-size:.80rem;
  font-weight:650;
  line-height:1.3;
}

.rendezvous-card__subline--time{
  color:var(--gold-light);
  font-size:.92rem;
  font-weight:900;
  letter-spacing:.08em;
}

.fr-flag{
  width:28px;
  height:17px;
  flex:0 0 auto;
  display:inline-grid;
  grid-template-columns:repeat(3,1fr);
  overflow:hidden;
  border-radius:3px;
  box-shadow:0 0 0 1px rgba(255,255,255,.18);
}
.fr-flag i:nth-child(1){background:#0055a4}
.fr-flag i:nth-child(2){background:#fff}
.fr-flag i:nth-child(3){background:#ef4135}

.rendezvous-card__visual--venue{
  position:absolute;
  z-index:1;
  top:18px;
  right:18px;
  width:150px;
  height:100px;
  overflow:hidden;
  border:1px solid rgba(255,225,180,.20);
  border-radius:17px;
  background:#090402;
  box-shadow:0 14px 34px rgba(0,0,0,.28);
}
.rendezvous-card__visual--venue::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 48%,rgba(5,3,1,.44));
}
.rendezvous-card__visual--venue img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center 48%;
}

.rendezvous-card__calendar{
  position:absolute;
  z-index:2;
  top:18px;
  right:18px;
  width:116px;
  min-height:112px;
  overflow:hidden;
  display:grid;
  justify-items:center;
  align-content:start;
  border:1px solid rgba(255,225,180,.20);
  border-radius:18px;
  background:linear-gradient(180deg,#211006,#0a0502);
  box-shadow:0 14px 34px rgba(0,0,0,.28);
}
.rendezvous-card__calendar-month{
  width:100%;
  padding:7px 8px;
  color:#211006;
  background:linear-gradient(180deg,#fff19a,#f5bd2c);
  font-size:.63rem;
  font-weight:950;
  letter-spacing:.16em;
  text-align:center;
}
.rendezvous-card__calendar strong{
  margin-top:9px;
  color:var(--cream);
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:3.05rem;
  line-height:.82;
}
.rendezvous-card__calendar small{
  margin-top:7px;
  color:var(--muted);
  font-size:.60rem;
  font-weight:800;
  letter-spacing:.12em;
}

.rendezvous-card__artist-photo{
  position:absolute;
  z-index:2;
  top:15px;
  right:18px;
  width:116px;
  height:116px;
  overflow:hidden;
  border:2px solid rgba(245,189,44,.52);
  border-radius:50%;
  background:#080401;
  box-shadow:
    0 14px 34px rgba(0,0,0,.32),
    0 0 0 5px rgba(245,189,44,.07);
}
.rendezvous-card__artist-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:62% 43%;
  transform:scale(2.15);
  transform-origin:62% 43%;
}

/* V9 footer */
.site-footer__inner{
  min-height:140px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:28px;
}

.footer-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:24px;
}

.footer-nav a{
  color:rgba(255,253,250,.62);
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.10em;
  text-decoration:none;
  text-transform:uppercase;
  transition:color .18s ease;
}

.footer-nav a:hover,
.footer-nav a:focus-visible{
  color:var(--gold-light);
}

.site-footer__copyright{
  margin:0;
  color:rgba(255,253,250,.38);
  font-size:.68rem;
  letter-spacing:.04em;
  text-transform:none;
  white-space:nowrap;
}

@media(max-width:980px){
  .info-grid--rendezvous{grid-template-columns:1fr}
  .rendezvous-card{min-height:245px}
  .rendezvous-card__bottom{margin-top:92px}
  .rendezvous-card__visual--venue{width:180px;height:112px}
  .rendezvous-card__artist-photo{width:126px;height:126px}

  .site-footer__inner{
    padding-block:30px;
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    gap:18px;
  }
}

@media(max-width:520px){
  .rendezvous-card{
    min-height:238px;
    padding:20px;
    border-radius:21px;
  }
  .rendezvous-card__bottom{
    grid-template-columns:42px minmax(0,1fr);
    gap:12px;
    margin-top:88px;
  }
  .rendezvous-card__icon{
    width:42px;
    height:42px;
    border-radius:13px;
  }
  .rendezvous-card__copy strong{font-size:1.02rem}
  .rendezvous-card__subline{font-size:.75rem}
  .rendezvous-card__visual--venue{
    top:15px;
    right:15px;
    width:138px;
    height:92px;
  }
  .rendezvous-card__calendar{
    top:15px;
    right:15px;
    width:104px;
    min-height:104px;
  }
  .rendezvous-card__calendar strong{font-size:2.7rem}
  .rendezvous-card__artist-photo{
    top:14px;
    right:15px;
    width:105px;
    height:105px;
  }

  .footer-nav{gap:14px 18px}
  .footer-nav a{font-size:.66rem}
  .site-footer__copyright{
    white-space:normal;
    line-height:1.5;
  }
}

@media(max-width:360px){
  .rendezvous-card__visual--venue{width:124px;height:84px}
  .rendezvous-card__artist-photo{width:96px;height:96px}
  .rendezvous-card__calendar{width:96px}
  .fr-flag{width:24px;height:15px}
}


/* ============================================================
   V10 — compact rendez-vous cards + Maps / Access modals
   ============================================================ */

.info-grid--rendezvous{
  align-items:stretch;
}

.rendezvous-card{
  min-height:258px;
  padding:22px;
}

.rendezvous-card__bottom{
  margin-top:58px;
  align-items:flex-start;
}

.rendezvous-card__visual--venue{
  width:138px;
  height:90px;
}

.rendezvous-card__calendar{
  width:106px;
  min-height:104px;
}

.rendezvous-card__artist-photo{
  width:108px;
  height:108px;
}

.rendezvous-card__note{
  margin:8px 0 0;
  max-width:245px;
  color:rgba(240,218,197,.58);
  font-size:.70rem;
  line-height:1.45;
}

.rendezvous-card__links{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.mini-link{
  min-height:30px;
  padding:5px 10px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(245,189,44,.24);
  border-radius:999px;
  color:var(--gold-light);
  background:rgba(245,189,44,.065);
  font:inherit;
  font-size:.64rem;
  font-weight:850;
  letter-spacing:.07em;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}

.mini-link:hover,
.mini-link:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(245,189,44,.46);
  background:rgba(245,189,44,.12);
}

.portal-modal[hidden]{display:none}

.portal-modal{
  position:fixed;
  inset:0;
  z-index:1000;
  display:grid;
  place-items:center;
  padding:22px;
}

.portal-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(9px);
}

.portal-modal__panel{
  position:relative;
  z-index:1;
  width:min(100%,760px);
  max-height:min(88vh,820px);
  overflow:auto;
  padding:clamp(24px,4vw,38px);
  border:1px solid rgba(255,225,180,.22);
  border-radius:26px;
  color:var(--cream);
  background:
    radial-gradient(circle at 82% 0,rgba(245,189,44,.12),transparent 22rem),
    linear-gradient(145deg,#241109,#0a0502 68%);
  box-shadow:0 30px 90px rgba(0,0,0,.58);
}

.portal-modal__panel--map{
  width:min(100%,900px);
}

.portal-modal__panel h2{
  margin:0;
  max-width:680px;
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:clamp(2.2rem,5vw,4rem);
  font-weight:900;
  line-height:.95;
  letter-spacing:.015em;
  text-transform:uppercase;
}

.portal-modal__lead{
  margin:14px 0 22px;
  color:var(--muted);
  line-height:1.55;
}

.portal-modal__close{
  position:absolute;
  top:14px;
  right:14px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,225,180,.20);
  border-radius:13px;
  color:var(--cream);
  background:rgba(255,255,255,.055);
  font-size:1.6rem;
  line-height:1;
  cursor:pointer;
}

.map-frame{
  overflow:hidden;
  width:100%;
  min-height:420px;
  border:1px solid rgba(255,225,180,.16);
  border-radius:20px;
  background:#130905;
}

.map-frame iframe{
  display:block;
  width:100%;
  height:440px;
  border:0;
}

.access-list{
  display:grid;
  gap:10px;
}

.access-item{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  align-items:start;
  gap:14px;
  padding:15px;
  border:1px solid rgba(255,225,180,.12);
  border-radius:17px;
  background:rgba(255,255,255,.035);
}

.access-item__badge{
  min-height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(245,189,44,.28);
  border-radius:13px;
  color:#1b0d04;
  background:linear-gradient(180deg,#fff09a,#f5bd2c);
  font-size:.66rem;
  font-weight:950;
}

.access-item h3{
  margin:1px 0 5px;
  color:var(--gold-light);
  font-size:.78rem;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.access-item p{
  margin:0;
  color:var(--muted-strong);
  font-size:.82rem;
  line-height:1.55;
}

.line-chip{
  min-width:22px;
  height:22px;
  padding:0 6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  color:#fff;
  font-size:.68rem;
  font-weight:950;
  vertical-align:middle;
}

.line-chip--6{background:#6f4e37}
.line-chip--14{background:#6b1f7b}
.line-chip--a{background:#d22b2b}
.line-chip--d{background:#2e8b57}

.access-note{
  margin:16px 0 0;
  color:rgba(255,253,250,.47);
  font-size:.70rem;
  line-height:1.5;
}

.modal-actions{
  margin-top:22px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.modal-actions .btn{
  min-height:46px;
  font-size:.72rem;
}

body.modal-open{
  overflow:hidden;
}

@media(max-width:980px){
  .rendezvous-card{
    min-height:230px;
  }
  .rendezvous-card__bottom{
    margin-top:52px;
  }
}

@media(max-width:520px){
  .rendezvous-card{
    min-height:232px;
  }

  .rendezvous-card__bottom{
    margin-top:54px;
  }

  .rendezvous-card__note{
    max-width:none;
    font-size:.68rem;
  }

  .portal-modal{
    padding:10px;
  }

  .portal-modal__panel{
    width:100%;
    max-height:92vh;
    padding:22px 16px 18px;
    border-radius:20px;
  }

  .portal-modal__close{
    top:10px;
    right:10px;
  }

  .map-frame{
    min-height:360px;
  }

  .map-frame iframe{
    height:380px;
  }

  .access-item{
    grid-template-columns:48px minmax(0,1fr);
    padding:13px 11px;
  }

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


/* ============================================================
   V11 — Youssou portrait crop refinement + copy updates
   ============================================================ */

/* The V10 crop was too aggressive (scale 2.15).
   V11 recenters the face and keeps the full head comfortably
   inside the circular portrait. */
.rendezvous-card__artist-photo img{
  object-fit:cover;
  object-position:68% 43%;
  transform:scale(1.52);
  transform-origin:68% 43%;
}

@media(max-width:520px){
  .rendezvous-card__artist-photo img{
    object-position:68% 43%;
    transform:scale(1.48);
    transform-origin:68% 43%;
  }
}


/* ============================================================
   V12 — Youssou bust framing + hero stage copy + game copy
   ============================================================ */

/* Show head + shoulders + upper torso clearly in the circular artist card. */
.rendezvous-card__artist-photo img{
  object-fit:cover;
  object-position:66% 52%;
  transform:scale(1.10);
  transform-origin:66% 52%;
}

.hero-fact__subline{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.72rem;
  font-style:normal;
  font-weight:650;
  line-height:1.25;
}

@media(max-width:520px){
  .rendezvous-card__artist-photo img{
    object-position:66% 52%;
    transform:scale(1.07);
    transform-origin:66% 52%;
  }

  .hero-fact__subline{
    font-size:.68rem;
  }
}


/* ============================================================
   V15 — CTA pictograms
   ============================================================ */
.btn__icon{
  width:22px;
  height:22px;
  flex:0 0 22px;
  display:inline-grid;
  place-items:center;
}

.btn__icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.btn--gold .btn__icon{
  color:#1c1103;
}

.btn--ghost .btn__icon{
  color:var(--gold-light);
}

@media(max-width:520px){
  .btn__icon{
    width:20px;
    height:20px;
    flex-basis:20px;
  }
}


/* ============================================================
   V16 — En route vers Bercy + official social hub
   ============================================================ */

@media(min-width:761px){
  .main-nav{gap:20px}
  .main-nav a{font-size:.76rem}
}

/* Journey */
.section--journey{
  overflow:hidden;
  background:
    radial-gradient(circle at 68% 18%,rgba(245,189,44,.10),transparent 28rem),
    linear-gradient(180deg,#050301,#100704 52%,#050301);
}

.journey-heading{
  max-width:820px;
}

.journey-track{
  position:relative;
  --journey-progress:0%;
}

.journey-track__line{
  position:absolute;
  left:7%;
  right:7%;
  top:168px;
  height:2px;
  z-index:0;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,225,180,.12);
}

.journey-track__line span{
  display:block;
  width:var(--journey-progress);
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#9b5c08,var(--gold),var(--gold-light));
  box-shadow:0 0 18px rgba(245,189,44,.35);
  transition:width .5s ease;
}

.journey-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}

.journey-loading,
.journey-noscript{
  grid-column:1/-1;
  margin:0;
  padding:30px;
  color:var(--muted);
  text-align:center;
  border:1px solid var(--stroke);
  border-radius:20px;
  background:rgba(255,255,255,.03);
}

.journey-card{
  position:relative;
  overflow:hidden;
  min-width:0;
  min-height:410px;
  display:flex;
  flex-direction:column;
  border:1px solid rgba(255,225,180,.14);
  border-radius:24px;
  background:
    radial-gradient(circle at 80% 0%,rgba(245,189,44,.08),transparent 12rem),
    linear-gradient(155deg,rgba(45,22,11,.88),rgba(8,4,2,.98));
  box-shadow:0 22px 58px rgba(0,0,0,.28);
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}

.journey-card::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(130deg,rgba(255,255,255,.05),transparent 24%,transparent 72%,rgba(245,189,44,.04));
}

.journey-card__visual{
  position:relative;
  height:170px;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 30%,rgba(245,189,44,.15),transparent 10rem),
    linear-gradient(145deg,#2b150a,#090402);
}

.journey-card__visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}

.journey-card__visual::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(5,3,1,.90));
}

.journey-card__date-art{
  position:relative;
  z-index:1;
  width:98px;
  min-height:112px;
  padding:13px 8px 10px;
  display:grid;
  justify-items:center;
  align-content:center;
  border:1px solid rgba(245,189,44,.30);
  border-radius:19px;
  background:linear-gradient(180deg,rgba(245,189,44,.16),rgba(9,4,2,.80));
  box-shadow:0 18px 38px rgba(0,0,0,.35);
}

.journey-card__date-art small{
  color:var(--gold-light);
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.16em;
}

.journey-card__date-art strong{
  margin:3px 0;
  color:var(--cream);
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:3.4rem;
  line-height:.9;
}

.journey-card__date-art span{
  color:var(--muted);
  font-size:.62rem;
  font-weight:800;
  letter-spacing:.1em;
}

.journey-card__node{
  position:absolute;
  top:160px;
  left:50%;
  z-index:3;
  width:18px;
  height:18px;
  border:4px solid #130906;
  border-radius:50%;
  background:#5d3c1b;
  box-shadow:0 0 0 1px rgba(245,189,44,.22);
  transform:translateX(-50%);
}

.journey-card__body{
  position:relative;
  z-index:2;
  flex:1;
  padding:24px 20px 20px;
  display:flex;
  flex-direction:column;
}

.journey-card__status{
  width:max-content;
  max-width:100%;
  margin-bottom:14px;
  padding:7px 10px;
  border:1px solid rgba(255,225,180,.12);
  border-radius:999px;
  color:rgba(255,253,250,.55);
  background:rgba(255,255,255,.03);
  font-size:.57rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.journey-card__body h3{
  margin:0;
  color:var(--cream);
  font-size:1.08rem;
  line-height:1.18;
}

.journey-card__place{
  margin:9px 0 0;
  color:var(--gold-soft);
  font-size:.82rem;
  font-weight:850;
}

.journey-card__city{
  margin:3px 0 0;
  color:var(--muted);
  font-size:.74rem;
}

.journey-card__artist{
  margin:14px 0 0;
  color:rgba(255,253,250,.62);
  font-size:.72rem;
  line-height:1.45;
}

.journey-card__actions{
  margin-top:auto;
  padding-top:18px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.journey-mini-btn{
  min-height:38px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid rgba(245,189,44,.24);
  border-radius:12px;
  color:var(--gold-light);
  background:rgba(245,189,44,.06);
  font:inherit;
  font-size:.65rem;
  font-weight:850;
  text-decoration:none;
  cursor:pointer;
}

.journey-card.is-past{
  filter:saturate(.72);
}

.journey-card.is-past .journey-card__visual{
  filter:saturate(.72) brightness(.82);
}

.journey-card.is-past .journey-card__node{
  background:#9b650d;
}

.journey-card.is-past .journey-card__status{
  color:rgba(255,253,250,.52);
}

.journey-card.is-next{
  border-color:rgba(245,189,44,.58);
  box-shadow:
    0 0 0 1px rgba(245,189,44,.08),
    0 24px 70px rgba(0,0,0,.36),
    0 0 36px rgba(245,189,44,.10);
  transform:translateY(-8px);
}

.journey-card.is-next .journey-card__status{
  color:#160d02;
  border-color:transparent;
  background:linear-gradient(180deg,var(--gold-light),var(--gold));
  box-shadow:0 0 22px rgba(245,189,44,.18);
}

.journey-card.is-next .journey-card__node{
  background:var(--gold-light);
  box-shadow:
    0 0 0 1px rgba(245,189,44,.6),
    0 0 0 7px rgba(245,189,44,.12),
    0 0 24px rgba(245,189,44,.65);
  animation:journeyPulse 1.8s ease-in-out infinite;
}

.journey-card--final{
  background:
    radial-gradient(circle at 50% 15%,rgba(245,189,44,.18),transparent 15rem),
    linear-gradient(155deg,#31190c,#080402);
}

.journey-card--final .journey-card__visual::before{
  content:"DESTINATION";
  position:absolute;
  z-index:2;
  top:14px;
  left:14px;
  padding:7px 9px;
  border:1px solid rgba(245,189,44,.35);
  border-radius:999px;
  color:var(--gold-light);
  background:rgba(5,3,1,.66);
  font-size:.54rem;
  font-weight:900;
  letter-spacing:.14em;
}

.journey-card--final .journey-card__body h3{
  color:var(--gold-light);
}

@keyframes journeyPulse{
  0%,100%{transform:translateX(-50%) scale(1)}
  50%{transform:translateX(-50%) scale(1.18)}
}

/* Social hub */
.section--social{
  padding-top:35px;
  background:radial-gradient(circle at 12% 50%,rgba(245,189,44,.07),transparent 30rem);
}

.social-panel{
  position:relative;
  overflow:hidden;
  padding:clamp(28px,5vw,52px);
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(30px,5vw,64px);
  align-items:center;
  border:1px solid var(--stroke);
  border-radius:30px;
  background:
    radial-gradient(circle at 90% 15%,rgba(245,189,44,.13),transparent 23rem),
    linear-gradient(135deg,rgba(48,23,11,.88),rgba(7,4,2,.98));
  box-shadow:var(--shadow);
}

.social-panel::after{
  content:"FOLLOW";
  position:absolute;
  right:-18px;
  bottom:-24px;
  color:rgba(255,255,255,.025);
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:clamp(7rem,15vw,12rem);
  line-height:.8;
  pointer-events:none;
}

.social-panel__copy{
  position:relative;
  z-index:2;
}

.social-panel__copy h2{
  margin:0;
  color:var(--cream);
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:clamp(2.6rem,6vw,4.7rem);
  line-height:.94;
  text-transform:uppercase;
}

.social-panel__copy p:not(.eyebrow){
  margin:18px 0 0;
  color:var(--muted);
  font-size:.98rem;
  line-height:1.7;
}

.social-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.social-card{
  min-width:0;
  min-height:104px;
  padding:16px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 24px;
  align-items:center;
  gap:13px;
  border:1px solid rgba(255,225,180,.13);
  border-radius:18px;
  color:var(--cream);
  background:rgba(255,255,255,.035);
  text-decoration:none;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}

.social-card:hover,
.social-card:focus-visible{
  transform:translateY(-3px);
  border-color:rgba(245,189,44,.40);
  background:rgba(245,189,44,.07);
}

.social-card__icon{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(245,189,44,.20);
  border-radius:15px;
  color:var(--gold-light);
  background:rgba(245,189,44,.07);
}

.social-card__icon svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.social-card__icon--facebook svg{
  fill:currentColor;
  stroke:none;
}

.social-card__body{
  min-width:0;
}

.social-card__body small{
  display:block;
  color:var(--gold-soft);
  font-size:.59rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.social-card__body strong{
  display:block;
  margin-top:5px;
  overflow:hidden;
  color:var(--cream);
  font-size:.82rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.social-card__arrow{
  color:rgba(255,253,250,.46);
  font-size:1.05rem;
}

/* Future media modal */
.portal-modal__panel--media{
  width:min(900px,calc(100% - 28px));
}

.journey-media{
  margin-top:18px;
}

.journey-media iframe{
  display:block;
  width:100%;
  aspect-ratio:16/9;
  border:0;
  border-radius:18px;
  background:#000;
}

.journey-media img{
  display:block;
  width:100%;
  max-height:72vh;
  object-fit:contain;
  border-radius:18px;
  background:#030201;
}

@media(max-width:980px){
  .journey-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .journey-track__line{display:none}
  .journey-card.is-next{transform:none}
  .social-panel{grid-template-columns:1fr}
}

@media(max-width:620px){
  .journey-grid{grid-template-columns:1fr}
  .journey-card{min-height:360px}
  .journey-card__visual{height:150px}
  .journey-card__node{top:140px}
  .social-grid{grid-template-columns:1fr}
}

@media(max-width:390px){
  .social-card{
    grid-template-columns:44px minmax(0,1fr) 20px;
    padding:14px;
  }
  .social-card__icon{width:44px;height:44px}
}


/* ============================================================
   V17 — lighter section titles + social brand colors
         + alternating arrow timeline
   ============================================================ */

/* Slightly lighter large white titles across section rubrics.
   Hero BERCY identity remains untouched. */
.section-heading h2,
.game-card h2,
.social-panel__copy h2{
  font-family:"Arial Narrow","Helvetica Neue Condensed",Arial,sans-serif;
  font-weight:800;
  letter-spacing:-.045em;
  line-height:.94;
}

/* ---------- Social hub ---------- */
.social-panel{
  grid-template-columns:minmax(270px,.68fr) minmax(0,1.32fr);
}

.social-panel__copy .eyebrow{
  margin-bottom:14px;
}

.social-panel__title{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0;
  font-size:clamp(4.2rem,8vw,7.2rem) !important;
  line-height:.72 !important;
}

.social-panel__title span{
  display:block;
}

.social-panel__title span+span{
  margin-top:.12em;
  color:var(--gold-light);
}

.social-panel__lead strong{
  color:var(--cream);
}

.social-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.social-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  border-radius:inherit;
  background:var(--social-accent,var(--gold));
  opacity:.95;
}

.social-card__icon{
  border-color:transparent;
  color:#fff;
  background:var(--social-icon-bg,rgba(245,189,44,.12));
  box-shadow:0 10px 28px var(--social-glow,rgba(245,189,44,.08));
}

.social-card__body small{
  color:var(--social-accent,var(--gold-light));
}

.social-card--tiktok{
  --social-accent:#25f4ee;
  --social-icon-bg:linear-gradient(135deg,#25f4ee 0%,#111 45%,#fe2c55 100%);
  --social-glow:rgba(37,244,238,.16);
}

.social-card--youtube{
  --social-accent:#ff0033;
  --social-icon-bg:#ff0033;
  --social-glow:rgba(255,0,51,.20);
}

.social-card--facebook{
  --social-accent:#1877f2;
  --social-icon-bg:#1877f2;
  --social-glow:rgba(24,119,242,.20);
}

.social-card--instagram{
  --social-accent:#e1306c;
  --social-icon-bg:linear-gradient(135deg,#feda75 0%,#fa7e1e 27%,#d62976 52%,#962fbf 75%,#4f5bd5 100%);
  --social-glow:rgba(214,41,118,.20);
}

/* ---------- Journey timeline wrapper ---------- */
.section--journey{
  padding-bottom:clamp(70px,8vw,110px);
}

.journey-heading{
  max-width:880px;
  margin-bottom:30px;
}

.journey-wrapper{
  position:relative;
  padding:clamp(24px,3vw,34px);
  overflow:hidden;
  border:1px solid rgba(255,225,180,.14);
  border-radius:30px;
  background:
    radial-gradient(circle at 68% 50%,rgba(245,189,44,.08),transparent 30rem),
    linear-gradient(145deg,rgba(37,17,9,.82),rgba(5,3,2,.96));
  box-shadow:0 26px 75px rgba(0,0,0,.34);
}

.journey-wrapper::before{
  content:"DAKAR  →  PARIS";
  position:absolute;
  right:25px;
  top:16px;
  color:rgba(255,255,255,.025);
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:clamp(4rem,8vw,7rem);
  letter-spacing:.03em;
  white-space:nowrap;
  pointer-events:none;
}

.journey-track{
  position:relative;
  min-height:620px;
  --journey-progress:0%;
}

.journey-axis{
  position:absolute;
  left:4%;
  right:3%;
  top:50%;
  z-index:1;
  height:34px;
  transform:translateY(-50%);
  pointer-events:none;
}

.journey-axis__base,
.journey-axis__progress{
  position:absolute;
  left:0;
  top:16px;
  height:3px;
  border-radius:999px;
}

.journey-axis__base{
  right:14px;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(255,237,205,.20) 0 10px,
      rgba(255,237,205,.04) 10px 18px
    );
}

.journey-axis__progress{
  width:var(--journey-progress);
  max-width:calc(100% - 15px);
  background:linear-gradient(90deg,#8f5808,var(--gold),var(--gold-light));
  box-shadow:0 0 18px rgba(245,189,44,.45);
  transition:width .55s ease;
}

.journey-axis__arrow{
  position:absolute;
  right:0;
  top:9px;
  width:0;
  height:0;
  border-top:8px solid transparent;
  border-bottom:8px solid transparent;
  border-left:14px solid rgba(255,226,161,.54);
  filter:drop-shadow(0 0 6px rgba(245,189,44,.15));
}

.journey-grid{
  position:relative;
  z-index:2;
  height:620px;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:22px;
}

.journey-step{
  position:relative;
  min-width:0;
  height:100%;
}

.journey-step__connector{
  position:absolute;
  left:50%;
  z-index:1;
  width:1px;
  background:linear-gradient(180deg,rgba(245,189,44,.10),rgba(245,189,44,.45));
  transform:translateX(-50%);
}

.journey-step.is-top .journey-step__connector{
  top:calc(50% - 68px);
  height:68px;
}

.journey-step.is-bottom .journey-step__connector{
  top:50%;
  height:68px;
  background:linear-gradient(180deg,rgba(245,189,44,.45),rgba(245,189,44,.10));
}

.journey-step__date{
  position:absolute;
  left:50%;
  top:50%;
  z-index:5;
  width:74px;
  height:74px;
  display:grid;
  align-content:center;
  justify-items:center;
  border:4px solid #130806;
  border-radius:50%;
  color:var(--cream);
  background:linear-gradient(160deg,#4b2a12,#110805);
  box-shadow:
    0 0 0 1px rgba(245,189,44,.28),
    0 12px 28px rgba(0,0,0,.42);
  transform:translate(-50%,-50%);
}

.journey-step__date small{
  color:var(--gold-soft);
  font-size:.52rem;
  font-weight:900;
  letter-spacing:.11em;
}

.journey-step__date strong{
  margin-top:1px;
  font-family:"Arial Narrow",Arial,sans-serif;
  font-size:1.8rem;
  font-weight:850;
  line-height:.9;
}

.journey-card{
  position:absolute;
  left:0;
  right:0;
  min-height:220px;
  overflow:hidden;
  border:1px solid rgba(255,225,180,.15);
  border-radius:22px;
  background:
    linear-gradient(110deg,rgba(7,4,2,.97),rgba(29,14,8,.90)),
    var(--journey-image,none);
  background-size:cover;
  background-position:center;
  box-shadow:0 20px 46px rgba(0,0,0,.34);
  transform:none !important;
  filter:none !important;
}

.journey-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(90deg,rgba(5,3,2,.96) 0%,rgba(5,3,2,.84) 58%,rgba(5,3,2,.50) 100%),
    linear-gradient(180deg,transparent,rgba(5,3,2,.80));
}

.journey-step.is-top .journey-card{
  bottom:calc(50% + 68px);
}

.journey-step.is-bottom .journey-card{
  top:calc(50% + 68px);
}

.journey-card__content,
.journey-card__status{
  position:relative;
  z-index:2;
}

.journey-card__status{
  display:inline-flex;
  width:auto;
  margin:18px 18px 0;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  color:rgba(255,253,250,.58);
  background:rgba(255,255,255,.04);
  font-size:.54rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.journey-card__content{
  padding:14px 18px 18px;
}

.journey-card__content h3{
  margin:0 0 15px;
  color:var(--cream);
  font-size:1rem;
  line-height:1.22;
}

.journey-meta{
  display:grid;
  gap:10px;
}

.journey-meta__row{
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  gap:9px;
  align-items:start;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.42;
}

.journey-meta__row strong{
  color:var(--gold-soft);
  font-weight:850;
}

.journey-meta__icon{
  width:19px;
  height:19px;
  fill:none;
  stroke:var(--gold);
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.journey-flag{
  margin-left:4px;
  font-size:1rem;
  vertical-align:-.05em;
}

.journey-step.is-past .journey-step__date{
  opacity:.72;
  filter:saturate(.65);
}

.journey-step.is-past .journey-card{
  opacity:.86;
}

.journey-step.is-next .journey-step__date{
  color:#1b1002;
  border-color:#2c1703;
  background:linear-gradient(180deg,#ffe676,#f5bd2c);
  box-shadow:
    0 0 0 1px rgba(245,189,44,.75),
    0 0 0 8px rgba(245,189,44,.10),
    0 0 32px rgba(245,189,44,.42);
  animation:journeyDatePulse 1.9s ease-in-out infinite;
}

.journey-step.is-next .journey-step__date small{
  color:#4c2e05;
}

.journey-step.is-next .journey-card{
  border-color:rgba(245,189,44,.58);
  box-shadow:0 22px 55px rgba(0,0,0,.38),0 0 30px rgba(245,189,44,.10);
}

.journey-step.is-next .journey-card__status{
  color:#1b1002;
  border-color:transparent;
  background:linear-gradient(180deg,#ffe77e,#f5bd2c);
}

/* Final destination: intentionally NOT gold like "Prochain rendez-vous". */
.journey-step.is-final .journey-card{
  border-color:rgba(72,123,255,.50);
  box-shadow:0 22px 55px rgba(0,0,0,.38),0 0 34px rgba(55,105,235,.11);
}

.journey-step.is-final .journey-card__status{
  color:#f7fbff;
  border-color:rgba(113,158,255,.38);
  background:linear-gradient(180deg,#315fd0,#173b91);
  box-shadow:0 0 18px rgba(49,95,208,.20);
}

.journey-step.is-final .journey-step__date{
  border-color:#0b1837;
  box-shadow:
    0 0 0 1px rgba(81,129,238,.55),
    0 0 28px rgba(42,86,190,.22);
}

/* Remove the former visual "DESTINATION" badge completely. */
.journey-card--final .journey-card__visual::before{
  content:none !important;
}

@keyframes journeyDatePulse{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  50%{transform:translate(-50%,-50%) scale(1.07)}
}

/* ---------- Mobile: same progression becomes vertical ---------- */
@media(max-width:980px){
  .social-panel{
    grid-template-columns:1fr;
  }

  .journey-wrapper{
    padding:26px 20px;
  }

  .journey-track{
    min-height:0;
  }

  .journey-axis{
    left:26px;
    right:auto;
    top:22px;
    bottom:22px;
    width:24px;
    height:auto;
    transform:none;
  }

  .journey-axis__base,
  .journey-axis__progress{
    left:11px;
    top:0;
    width:3px;
    height:auto;
  }

  .journey-axis__base{
    right:auto;
    bottom:14px;
    background:
      repeating-linear-gradient(
        180deg,
        rgba(255,237,205,.20) 0 10px,
        rgba(255,237,205,.04) 10px 18px
      );
  }

  .journey-axis__progress{
    max-width:none;
    height:var(--journey-progress);
    max-height:calc(100% - 15px);
    background:linear-gradient(180deg,#8f5808,var(--gold),var(--gold-light));
  }

  .journey-axis__arrow{
    left:4px;
    right:auto;
    top:auto;
    bottom:0;
    border-left:8px solid transparent;
    border-right:8px solid transparent;
    border-top:14px solid rgba(255,226,161,.54);
    border-bottom:0;
  }

  .journey-grid{
    height:auto;
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
    padding-left:76px;
  }

  .journey-step{
    min-height:0;
    height:auto;
  }

  .journey-step__connector{
    display:none;
  }

  .journey-step__date{
    left:-50px;
    top:50%;
    width:64px;
    height:64px;
  }

  .journey-card,
  .journey-step.is-top .journey-card,
  .journey-step.is-bottom .journey-card{
    position:relative;
    inset:auto;
    min-height:190px;
  }
}

@media(max-width:520px){
  .social-panel__title{
    font-size:clamp(3.6rem,22vw,5.2rem) !important;
  }

  .journey-grid{
    padding-left:62px;
  }

  .journey-axis{
    left:18px;
  }

  .journey-step__date{
    left:-39px;
    width:58px;
    height:58px;
  }

  .journey-step__date strong{
    font-size:1.55rem;
  }

  .journey-card__content h3{
    font-size:.92rem;
  }
}


/* ============================================================
   V18 — V16-sized media cards on alternating progression
         + CSS flags + media/poster actions + mobile rail
   ============================================================ */

.journey-track{
  min-height:900px;
}

.journey-grid{
  height:900px;
  gap:18px;
}

/* Axis line is fully masked around each date disk. */
.journey-step__date{
  z-index:8;
  isolation:isolate;
}

.journey-step__date::before{
  content:"";
  position:absolute;
  inset:-15px;
  z-index:-2;
  border-radius:50%;
  background:#130906;
  box-shadow:0 0 22px rgba(5,3,2,.85);
}

.journey-step__date::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  border-radius:50%;
  background:inherit;
}

/* Restore the taller V16 card proportions. */
.journey-card{
  min-height:356px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:24px;
  background:linear-gradient(155deg,rgba(34,16,9,.97),rgba(7,4,2,.99));
}

.journey-step.is-top .journey-card{
  bottom:calc(50% + 74px);
}

.journey-step.is-bottom .journey-card{
  top:calc(50% + 74px);
}

.journey-card::before{
  content:none;
}

.journey-card__visual{
  position:relative;
  height:154px;
  flex:0 0 154px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border-bottom:1px solid rgba(255,225,180,.09);
  background:
    radial-gradient(circle at 50% 34%,rgba(245,189,44,.16),transparent 10rem),
    linear-gradient(145deg,#2b150a,#090402);
}

.journey-card__visual.has-image{
  background:#080402;
}

.journey-card__visual img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.journey-card__visual.has-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(5,3,1,.16),rgba(5,3,1,.04)),
    linear-gradient(180deg,rgba(5,3,1,.03),rgba(5,3,1,.72));
}

.journey-card__date-art{
  position:relative;
  z-index:2;
  width:90px;
  min-height:106px;
  padding:11px 8px 9px;
  display:grid;
  justify-items:center;
  align-content:center;
  border:1px solid rgba(245,189,44,.34);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(245,189,44,.16),rgba(7,3,2,.82));
  box-shadow:0 15px 34px rgba(0,0,0,.38);
}

.journey-card__visual.has-image .journey-card__date-art{
  position:absolute;
  right:15px;
  bottom:14px;
  width:76px;
  min-height:88px;
  padding:8px 7px;
  background:rgba(6,3,2,.78);
  backdrop-filter:blur(7px);
}

.journey-card__date-art small{
  color:var(--gold-light);
  font-size:.55rem;
  font-weight:900;
  letter-spacing:.14em;
}

.journey-card__date-art strong{
  margin:2px 0;
  color:var(--cream);
  font-family:"Arial Narrow",Arial,sans-serif;
  font-size:2.8rem;
  font-weight:850;
  line-height:.88;
}

.journey-card__date-art span{
  color:var(--muted);
  font-size:.55rem;
  font-weight:850;
  letter-spacing:.08em;
}

.journey-card__body{
  flex:1;
  padding:17px 18px 18px;
  display:flex;
  flex-direction:column;
}

.journey-card__status{
  margin:0 0 12px;
}

.journey-card__body h3{
  margin:0 0 13px;
  color:var(--cream);
  font-size:.95rem;
  line-height:1.18;
}

.journey-meta{
  gap:8px;
}

.journey-meta__row{
  grid-template-columns:19px minmax(0,1fr);
  gap:8px;
  font-size:.69rem;
}

.journey-card__actions{
  margin-top:auto;
  padding-top:14px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.journey-mini-btn{
  min-height:38px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid rgba(245,189,44,.27);
  border-radius:12px;
  color:var(--gold-light);
  background:rgba(245,189,44,.065);
  font:inherit;
  font-size:.64rem;
  font-weight:850;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}

.journey-mini-btn:hover,
.journey-mini-btn:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(245,189,44,.55);
  background:rgba(245,189,44,.12);
}

.journey-mini-btn svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.journey-step.is-final .journey-card__visual{
  border-bottom-color:rgba(72,123,255,.26);
}

.journey-step.is-final .journey-card__date-art{
  border-color:rgba(104,151,255,.54);
  box-shadow:0 13px 30px rgba(0,0,0,.38),0 0 18px rgba(49,95,208,.16);
}

/* Robust CSS flags: no dependency on OS emoji-font support. */
.country-flag{
  position:relative;
  display:inline-block;
  width:25px;
  height:16px;
  margin-left:6px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.38);
  border-radius:2px;
  box-shadow:0 2px 5px rgba(0,0,0,.22);
  vertical-align:-3px;
}

.flag--fr{
  background:linear-gradient(90deg,#0055a4 0 33.333%,#fff 33.333% 66.666%,#ef4135 66.666% 100%);
}

.flag--sn{
  background:linear-gradient(90deg,#00853f 0 33.333%,#fdef42 33.333% 66.666%,#e31b23 66.666% 100%);
}

.flag--sn::after{
  content:"★";
  position:absolute;
  left:50%;
  top:50%;
  color:#00853f;
  font-size:8px;
  line-height:1;
  transform:translate(-50%,-52%);
}

/* Media modal states */
.journey-media{
  margin-top:20px;
}

.journey-media-placeholder{
  min-height:310px;
  padding:36px;
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
  border:1px dashed rgba(245,189,44,.28);
  border-radius:22px;
  background:
    radial-gradient(circle at 50% 30%,rgba(245,189,44,.12),transparent 13rem),
    rgba(255,255,255,.025);
}

.journey-media-placeholder__icon{
  width:62px;
  height:62px;
  margin-bottom:18px;
  display:grid;
  place-items:center;
  border:1px solid rgba(245,189,44,.25);
  border-radius:18px;
  color:var(--gold-light);
  background:rgba(245,189,44,.08);
}

.journey-media-placeholder__icon svg{
  width:30px;
  height:30px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
}

.journey-media-placeholder strong{
  color:var(--cream);
  font-size:1.12rem;
}

.journey-media-placeholder p{
  max-width:540px;
  margin:10px auto 0;
  color:var(--muted);
  line-height:1.6;
}

.journey-modal-actions{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.journey-poster-layout{
  display:grid;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1fr);
  gap:28px;
  align-items:center;
}

.journey-poster-frame{
  overflow:hidden;
  min-height:480px;
  display:grid;
  place-items:center;
  border:1px solid rgba(245,189,44,.22);
  border-radius:22px;
  background:#090402;
  box-shadow:0 20px 50px rgba(0,0,0,.34);
}

.journey-poster-image{
  width:100%;
  height:100%;
  max-height:70vh;
  object-fit:contain;
}

.journey-poster-placeholder{
  width:100%;
  min-height:480px;
  padding:34px 22px;
  display:grid;
  align-content:center;
  justify-items:center;
  text-align:center;
  background:
    radial-gradient(circle at 50% 32%,rgba(245,189,44,.20),transparent 13rem),
    linear-gradient(155deg,#31170b,#080402);
}

.journey-poster-placeholder span{
  color:var(--gold-light);
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.journey-poster-placeholder strong{
  margin-top:18px;
  color:var(--cream);
  font-family:"Arial Narrow",Arial,sans-serif;
  font-size:3.8rem;
  line-height:.92;
  text-transform:uppercase;
}

.journey-poster-placeholder small{
  margin-top:15px;
  color:var(--gold-soft);
  font-weight:800;
}

.journey-poster-placeholder em{
  margin-top:28px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  color:var(--muted);
  font-size:.65rem;
  font-style:normal;
}

.journey-poster-info__label{
  display:inline-flex;
  padding:7px 10px;
  border-radius:999px;
  color:#1b1002;
  background:linear-gradient(180deg,#ffe77e,#f5bd2c);
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.journey-poster-info h3{
  margin:16px 0 0;
  color:var(--cream);
  font-size:1.55rem;
}

.journey-poster-info__meta{
  margin-top:20px;
  display:grid;
  gap:13px;
}

.journey-poster-info__meta > span{
  display:flex;
  gap:9px;
  align-items:flex-start;
  color:var(--muted);
  line-height:1.45;
}

.journey-ticket-pending{
  color:var(--muted);
  font-size:.78rem;
  font-style:italic;
}

/* Mobile: vertical progression, V16-style media cards stay intact. */
@media(max-width:980px){
  .journey-track{
    min-height:0;
  }

  .journey-grid{
    height:auto;
    gap:26px;
    padding-left:80px;
  }

  .journey-step{
    height:auto;
  }

  .journey-step__date{
    left:-51px;
    top:77px;
  }

  .journey-step__date::before{
    inset:-12px;
  }

  .journey-card,
  .journey-step.is-top .journey-card,
  .journey-step.is-bottom .journey-card{
    position:relative;
    inset:auto;
    min-height:0;
  }

  .journey-card__visual{
    height:165px;
    flex-basis:165px;
  }

  .journey-axis{
    left:27px;
  }

  .journey-step__connector{
    display:none;
  }

  .journey-poster-layout{
    grid-template-columns:1fr;
  }

  .journey-poster-frame,
  .journey-poster-placeholder{
    min-height:420px;
  }
}

@media(max-width:520px){
  .journey-wrapper{
    padding:22px 14px 24px;
  }

  .journey-grid{
    padding-left:62px;
    gap:22px;
  }

  .journey-axis{
    left:17px;
  }

  .journey-step__date{
    left:-40px;
    top:69px;
    width:58px;
    height:58px;
  }

  .journey-step__date::before{
    inset:-10px;
  }

  .journey-card__visual{
    height:150px;
    flex-basis:150px;
  }

  .journey-card__body{
    padding:15px;
  }

  .journey-card__body h3{
    font-size:.9rem;
  }

  .journey-mini-btn{
    width:100%;
  }

  .journey-poster-placeholder{
    min-height:360px;
  }

  .journey-poster-placeholder strong{
    font-size:3rem;
  }
}


/* ============================================================
   V19 — stronger connectors + opaque date disks
         + blue final destination disk
   ============================================================ */

/* Stronger card -> timeline connectors */
.journey-step__connector{
  width:2px;
  opacity:1;
  background:linear-gradient(
    180deg,
    rgba(255,231,126,.24),
    rgba(245,189,44,.98)
  );
  box-shadow:
    0 0 8px rgba(245,189,44,.38),
    0 0 18px rgba(245,189,44,.20);
}

.journey-step.is-bottom .journey-step__connector{
  background:linear-gradient(
    180deg,
    rgba(245,189,44,.98),
    rgba(255,231,126,.24)
  );
}

/* Date disks fully opaque */
.journey-step__date{
  opacity:1 !important;
  filter:none !important;
  background:#1a0b05 !important;
  border-color:rgba(245,189,44,.42);
}

/* Wider opaque mask: the timeline must never be visible behind disks */
.journey-step__date::before{
  inset:-20px;
  background:#130906 !important;
  box-shadow:
    0 0 0 8px #130906,
    0 0 28px rgba(5,3,2,.98);
}

.journey-step.is-past .journey-step__date{
  background:#1a0b05 !important;
  color:var(--cream);
}

/* Next event keeps gold */
.journey-step.is-next .journey-step__date{
  background:linear-gradient(180deg,#ffe676,#f5bd2c) !important;
  color:#1b1002;
  border-color:#2c1703;
}

/* Final destination: solid blue identity */
.journey-step.is-final .journey-step__date{
  background:linear-gradient(180deg,#315fd0,#173b91) !important;
  color:#ffffff;
  border-color:#6d98ff;
  box-shadow:
    0 0 0 1px rgba(109,152,255,.72),
    0 0 0 8px rgba(49,95,208,.10),
    0 0 28px rgba(49,95,208,.38);
}

.journey-step.is-final .journey-step__date small{
  color:#dce8ff;
}

@media(max-width:980px){
  .journey-step__date::before{
    inset:-16px;
    box-shadow:
      0 0 0 6px #130906,
      0 0 24px rgba(5,3,2,.96);
  }
}

@media(max-width:520px){
  .journey-step__date::before{
    inset:-13px;
    box-shadow:
      0 0 0 5px #130906,
      0 0 20px rgba(5,3,2,.96);
  }
}


/* ============================================================
   V20 — compact date-disk mask + one-line game CTA
   ============================================================ */

/* Mask only slightly exceeds the date disk so the progression line
   stays visually continuous while never crossing the disk itself. */
.journey-step__date::before{
  inset:-7px !important;
  background:#130906 !important;
  box-shadow:
    0 0 0 2px #130906,
    0 0 14px rgba(5,3,2,.88) !important;
}

@media(max-width:980px){
  .journey-step__date::before{
    inset:-6px !important;
    box-shadow:
      0 0 0 2px #130906,
      0 0 12px rgba(5,3,2,.86) !important;
  }
}

@media(max-width:520px){
  .journey-step__date::before{
    inset:-5px !important;
    box-shadow:
      0 0 0 1px #130906,
      0 0 10px rgba(5,3,2,.84) !important;
  }
}

/* Grand Jeu CTAs stay on one line. */
a.btn[href="#grand-jeu"] > span:not(.btn__icon):not(.btn__arrow),
a.btn[href="https://jeubercy2026.com"] > span:not(.btn__icon):not(.btn__arrow){
  white-space:nowrap;
}

@media(max-width:430px){
  a.btn[href="#grand-jeu"],
  a.btn[href="https://jeubercy2026.com"]{
    gap:8px;
    padding-left:13px;
    padding-right:13px;
  }

  a.btn[href="#grand-jeu"] > span:not(.btn__icon):not(.btn__arrow),
  a.btn[href="https://jeubercy2026.com"] > span:not(.btn__icon):not(.btn__arrow){
    font-size:.82rem;
    letter-spacing:-.01em;
  }
}

@media(max-width:360px){
  a.btn[href="#grand-jeu"] > span:not(.btn__icon):not(.btn__arrow),
  a.btn[href="https://jeubercy2026.com"] > span:not(.btn__icon):not(.btn__arrow){
    font-size:.75rem;
  }
}

/* ============================================================
   LOT_BERCY_PORTAL_SEPT5_SALE_TIMELINE_HERO_TARGET_PROD_WRITE_V1
   Temporary 5 September sale + desktop vertical journey.
   ============================================================ */

[data-sept5-sale][hidden]{display:none !important}

.section--sept5-sale{
  position:relative;
  overflow:hidden;
  padding-block:clamp(58px,7vw,92px);
  background:
    radial-gradient(circle at 84% 18%,rgba(245,189,44,.15),transparent 26rem),
    radial-gradient(circle at 10% 82%,rgba(88,111,43,.16),transparent 24rem),
    linear-gradient(180deg,#080502,#160c06 52%,#090503);
}

.section--sept5-sale::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(115deg,transparent 0 46%,rgba(245,189,44,.035) 46% 47%,transparent 47%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 86px);
}

.sept5-sale{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);
  gap:clamp(30px,5vw,74px);
  align-items:center;
}

.sept5-sale__poster-wrap{
  position:relative;
  width:min(100%,470px);
  justify-self:center;
  padding:9px;
  border:1px solid rgba(245,189,44,.36);
  border-radius:28px;
  background:linear-gradient(145deg,rgba(245,189,44,.13),rgba(10,5,2,.82));
  box-shadow:0 28px 70px rgba(0,0,0,.50),0 0 42px rgba(245,189,44,.09);
}

.sept5-sale__poster{display:block;width:100%;height:auto;border-radius:20px}

.sept5-sale__badge{
  position:absolute;
  z-index:2;
  top:-14px;
  left:22px;
  padding:8px 12px;
  border:1px solid rgba(255,235,165,.45);
  border-radius:999px;
  color:#1c1002;
  background:linear-gradient(180deg,#ffe67a,#f5bd2c);
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  font-size:.62rem;
  font-weight:950;
  letter-spacing:.09em;
  text-transform:uppercase;
}

.sept5-sale__content h2{
  margin:6px 0 14px;
  color:var(--cream);
  font-family:Impact,"Arial Narrow",Arial,sans-serif;
  font-size:clamp(3rem,7vw,6.4rem);
  font-weight:900;
  line-height:.90;
  letter-spacing:.02em;
  text-transform:uppercase;
}

.sept5-sale__lead{
  max-width:650px;
  margin:0;
  color:var(--muted-strong);
  font-size:clamp(.9rem,1.2vw,1.04rem);
  line-height:1.58;
}

.sept5-sale__facts{
  margin-top:22px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.sept5-sale__facts > div,
.sept5-sale__prices > span{
  padding:13px 14px;
  border:1px solid rgba(255,225,180,.14);
  border-radius:15px;
  background:rgba(255,255,255,.035);
}

.sept5-sale__facts small,
.sept5-sale__prices small{
  display:block;
  margin-bottom:4px;
  color:var(--gold);
  font-size:.56rem;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.sept5-sale__facts strong{color:var(--cream);font-size:.86rem;line-height:1.3}

.sept5-sale__prices{
  margin-top:10px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}

.sept5-sale__prices strong{
  color:var(--gold-light);
  font-size:.9rem;
  white-space:nowrap;
}

.sept5-sale__actions{
  margin-top:20px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}

.sept5-sale__phones{display:flex;flex-wrap:wrap;gap:8px}

.sept5-sale__phones a{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  padding:0 12px;
  border:1px solid rgba(245,189,44,.25);
  border-radius:12px;
  color:var(--gold-light);
  background:rgba(245,189,44,.055);
  font-size:.72rem;
  font-weight:850;
}

.sept5-sale__note{
  margin:13px 0 0;
  color:rgba(255,253,250,.48);
  font-size:.68rem;
}

/* Desktop vertical journey: existing is-top/is-bottom become left/right. */
@media(min-width:981px){
  .section--journey .journey-wrapper{padding:38px clamp(24px,4vw,54px) 44px}
  .section--journey .journey-track{min-height:0}
  .section--journey .journey-grid{
    height:auto;
    display:grid;
    grid-template-columns:1fr;
    gap:30px;
    padding:0;
  }

  .section--journey .journey-step{
    min-height:300px;
    height:auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) 104px minmax(0,1fr);
    align-items:center;
  }

  .section--journey .journey-card,
  .section--journey .journey-step.is-top .journey-card,
  .section--journey .journey-step.is-bottom .journey-card{
    position:relative;
    inset:auto;
    width:100%;
    min-height:276px;
  }

  .section--journey .journey-step.is-top .journey-card{grid-column:1}
  .section--journey .journey-step.is-bottom .journey-card{grid-column:3}
  .section--journey .journey-step__date{left:50%;top:50%}

  .section--journey .journey-axis{
    left:50%;
    right:auto;
    top:22px;
    bottom:22px;
    width:34px;
    height:auto;
    transform:translateX(-50%);
  }

  .section--journey .journey-axis__base,
  .section--journey .journey-axis__progress{
    left:15px;
    top:0;
    width:3px;
    height:auto;
  }

  .section--journey .journey-axis__base{
    right:auto;
    bottom:14px;
    background:repeating-linear-gradient(180deg,rgba(255,237,205,.20) 0 10px,rgba(255,237,205,.04) 10px 18px);
  }

  .section--journey .journey-axis__progress{
    max-width:none;
    height:var(--journey-progress);
    max-height:calc(100% - 15px);
    background:linear-gradient(180deg,#8f5808,var(--gold),var(--gold-light));
  }

  .section--journey .journey-axis__arrow{
    left:8px;
    right:auto;
    top:auto;
    bottom:0;
    border-left:8px solid transparent;
    border-right:8px solid transparent;
    border-top:14px solid rgba(255,226,161,.54);
    border-bottom:0;
  }

  .section--journey .journey-step__connector{
    display:block;
    top:50%;
    width:52px;
    height:2px;
    transform:translateY(-50%);
    box-shadow:0 0 10px rgba(245,189,44,.32);
  }

  .section--journey .journey-step.is-top .journey-step__connector{
    left:calc(50% - 52px);
    background:linear-gradient(90deg,rgba(245,189,44,.28),rgba(245,189,44,.98));
  }

  .section--journey .journey-step.is-bottom .journey-step__connector{
    left:50%;
    background:linear-gradient(90deg,rgba(245,189,44,.98),rgba(245,189,44,.28));
  }

  .section--journey .journey-card__visual{height:128px;flex-basis:128px}
  .section--journey .journey-card__body{padding:16px 18px 18px}
}

@media(max-width:760px){
  .section--sept5-sale{padding-block:48px 54px}
  .sept5-sale{grid-template-columns:1fr;gap:28px}
  .sept5-sale__poster-wrap{width:min(100%,390px)}
  .sept5-sale__content h2{font-size:clamp(3rem,16vw,5rem)}
  .sept5-sale__facts{grid-template-columns:1fr}
  .sept5-sale__prices{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sept5-sale__prices > span{padding:10px 8px}
  .sept5-sale__prices strong{font-size:.76rem}
  .sept5-sale__actions{display:grid;grid-template-columns:1fr}
  .sept5-sale__actions .btn{width:100%}
  .sept5-sale__phones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .sept5-sale__phones a{justify-content:center}
}

/* ============================================================
   LOT_BERCY_PORTAL_SEPT5_TITLE_WEIGHT_PROD_WRITE_V1R1
   Aligne "Vacances avec YN" sur la typographie des titres du portail.
   ============================================================ */
.sept5-sale__content h2{
  font-family:"Arial Narrow","Helvetica Neue Condensed",Arial,sans-serif;
  font-weight:800;
  letter-spacing:-.045em;
  line-height:.94;
}
/* ============================================================
   LOT_BERCY_PORTAL_SEPT5_TITLE_TIMELINE_CARD_UI_PROD_WRITE_V1R2
   - "Vacances avec YN" explicitement sur 3 lignes et moins grand.
   - Cartes timeline desktop plus hautes.
   - Affiche du 5 septembre cadrée depuis le haut.
   ============================================================ */

.sept5-sale__content .sept5-sale__title{
  font-size:clamp(2.7rem,5.2vw,4.8rem);
  line-height:.86;
  letter-spacing:-.04em;
}

.sept5-sale__title span{
  display:block;
}

.sept5-sale__title span + span{
  margin-top:.03em;
}

@media(min-width:981px){
  .section--journey .journey-card,
  .section--journey .journey-step.is-top .journey-card,
  .section--journey .journey-step.is-bottom .journey-card{
    min-height:390px;
  }

  .section--journey .journey-card__visual{
    height:238px;
    flex-basis:238px;
  }

  .section--journey .journey-card__visual img[src*="soiree-speciale-vacances-yn-20260905"]{
    object-fit:cover;
    object-position:center top;
  }
}

@media(max-width:760px){
  .sept5-sale__content .sept5-sale__title{
    font-size:clamp(2.65rem,12.5vw,3.65rem);
    line-height:.88;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_TIMELINE_POSTERS_WAVE_UI_PROD_WRITE_V1R3R2
   - Timeline desktop plus haute pour afficher le visuel jusqu'à
     "Vacances avec YN" avant le crop de la zone Tickets.
   - Badge date au coin inférieur droit avec petite marge.
   - Onde lumineuse sur le rendez-vous highlighté.
   ============================================================ */

@media(min-width:981px){
  .section--journey .journey-card,
  .section--journey .journey-step.is-top .journey-card,
  .section--journey .journey-step.is-bottom .journey-card{
    min-height:540px;
  }

  .section--journey .journey-card__visual{
    height:380px;
    flex-basis:380px;
  }

  .section--journey .journey-card__visual img[src*="soiree-speciale-vacances-yn-20260725"],
  .section--journey .journey-card__visual img[src*="soiree-speciale-vacances-yn-20260815"],
  .section--journey .journey-card__visual img[src*="soiree-speciale-vacances-yn-20260905"]{
    object-fit:cover;
    object-position:center top;
  }

  .section--journey .journey-card__visual.has-image .journey-card__date-art{
    top:auto;
    right:14px;
    bottom:14px;
    left:auto;
  }
}

/* Onde lumineuse du rendez-vous actuel.
   Or pour les étapes ordinaires, bleu si Bercy devient highlighté. */
.journey-step.is-next{
  --journey-wave-rgb:245,189,44;
  --journey-wave-light-rgb:255,244,196;
}

.journey-step.is-next.is-final{
  --journey-wave-rgb:72,123,255;
  --journey-wave-light-rgb:183,210,255;
}

.journey-step.is-next .journey-card{
  animation:journeyCurrentGlowV1R3R2 2.9s ease-in-out infinite;
}

.journey-step.is-next .journey-card::after{
  z-index:1;
  background:
    linear-gradient(
      108deg,
      transparent 0%,
      transparent 36%,
      rgba(var(--journey-wave-light-rgb),.03) 42%,
      rgba(var(--journey-wave-rgb),.24) 49%,
      rgba(var(--journey-wave-light-rgb),.12) 56%,
      transparent 66%,
      transparent 100%
    );
  transform:translate3d(-125%,0,0);
  animation:journeyCurrentLightWaveV1R3R2 3.8s ease-in-out infinite;
}

@keyframes journeyCurrentLightWaveV1R3R2{
  0%,18%{
    transform:translate3d(-125%,0,0);
    opacity:0;
  }
  30%{opacity:.82}
  68%{opacity:.82}
  82%,100%{
    transform:translate3d(125%,0,0);
    opacity:0;
  }
}

@keyframes journeyCurrentGlowV1R3R2{
  0%,100%{
    box-shadow:
      0 22px 55px rgba(0,0,0,.38),
      0 0 24px rgba(var(--journey-wave-rgb),.10);
  }
  50%{
    box-shadow:
      0 22px 58px rgba(0,0,0,.40),
      0 0 44px rgba(var(--journey-wave-rgb),.22);
  }
}

@media(prefers-reduced-motion:reduce){
  .journey-step.is-next .journey-card,
  .journey-step.is-next .journey-card::after{
    animation:none !important;
  }

  .journey-step.is-next .journey-card::after{
    opacity:.10;
    transform:none;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_TIMELINE_JUL04_BADGE_CROP_PROD_WRITE_V1R3R3
   Badge date: desktop coin inférieur droit de la carte complète.
   Mobile/tablette: badge masqué, disque du rail conservé.
   Affiche 15 août: crop resserré pour supprimer "Scannez".
   ============================================================ */

.journey-card{
  position:relative;
}

.journey-card > .journey-card__date-art--card{
  display:none;
}

@media(min-width:981px){
  .journey-card > .journey-card__date-art--card{
    position:absolute;
    z-index:8;
    display:grid;
    right:14px;
    bottom:14px;
    width:76px;
    min-height:88px;
    padding:8px 7px;
    border:1px solid rgba(245,189,44,.34);
    border-radius:18px;
    background:rgba(6,3,2,.88);
    box-shadow:0 15px 34px rgba(0,0,0,.38);
    backdrop-filter:blur(7px);
  }

  .journey-step.is-final .journey-card > .journey-card__date-art--card{
    border-color:rgba(78,132,255,.64);
    background:rgba(7,17,50,.92);
    box-shadow:0 15px 34px rgba(0,0,0,.38),0 0 20px rgba(43,93,223,.18);
  }

  .journey-step.is-final .journey-card > .journey-card__date-art--card small,
  .journey-step.is-final .journey-card > .journey-card__date-art--card strong{
    color:#eef4ff;
  }

  .section--journey .journey-card__visual img[src*="soiree-speciale-vacances-yn-20260815"]{
    object-fit:cover;
    object-position:center top;
    transform:scale(1.08);
    transform-origin:center top;
  }
}

@media(max-width:980px){
  .journey-card > .journey-card__date-art--card{
    display:none !important;
  }

  .section--journey .journey-card__visual img[src*="soiree-speciale-vacances-yn-20260815"]{
    object-fit:cover;
    object-position:center top;
    transform:scale(1.055);
    transform-origin:center top;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_TIMELINE_MOBILE_CROP_BERCY_FACE_PROD_WRITE_V1R3R5

   MOBILE:
   - 25 juillet + 5 septembre: fenêtre 4:5 adaptée aux affiches portrait.
   - 15 août: crop 4:3 depuis le haut, avant la zone QR/"Scannez".
   - 4 juillet: fenêtre paysage proche du ratio de l'affiche source.

   BERCY:
   - ajout au centre du visuel de la carte finale d'un portrait circulaire
     recadré depuis l'asset du hero d'accueil.
   ============================================================ */

@media(max-width:980px){
  .section--journey .journey-card__visual:has(
    img[src*="soiree-speciale-vacances-yn-20260725"]
  ),
  .section--journey .journey-card__visual:has(
    img[src*="soiree-speciale-vacances-yn-20260905"]
  ){
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:4 / 5;
  }

  .section--journey .journey-card__visual:has(
    img[src*="soiree-speciale-vacances-yn-20260725"]
  ) img,
  .section--journey .journey-card__visual:has(
    img[src*="soiree-speciale-vacances-yn-20260905"]
  ) img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
    transform:none !important;
  }

  .section--journey .journey-card__visual:has(
    img[src*="soiree-speciale-vacances-yn-20260815"]
  ){
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:4 / 3;
  }

  .section--journey .journey-card__visual:has(
    img[src*="soiree-speciale-vacances-yn-20260815"]
  ) img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
    transform:none !important;
  }

  .section--journey .journey-card__visual:has(
    img[src*="soiree-youssou-ndour-20260704"]
  ){
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:25 / 16;
  }

  .section--journey .journey-card__visual:has(
    img[src*="soiree-youssou-ndour-20260704"]
  ) img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    transform:none !important;
  }
}

/* Portrait de Youssou centré sur le visuel de la carte Bercy.
   L'image utilisée est exactement celle du hero d'accueil. */
.journey-step.is-final .journey-card__visual{
  position:relative;
}

.journey-step.is-final .journey-card__visual::before{
  content:"";
  position:absolute;
  z-index:5;
  left:50%;
  top:50%;
  width:142px;
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:2px solid rgba(78,132,255,.86);
  background-image:url("../img/youssou-bercy-v2.png");
  background-repeat:no-repeat;
  background-size:310% auto;
  background-position:66% 49%;
  box-shadow:
    0 14px 34px rgba(0,0,0,.45),
    0 0 0 5px rgba(9,25,70,.46),
    0 0 28px rgba(64,112,238,.30);
  pointer-events:none;
}

@media(max-width:980px){
  .journey-step.is-final .journey-card__visual::before{
    width:92px;
    border-width:1.5px;
    box-shadow:
      0 10px 24px rgba(0,0,0,.44),
      0 0 0 4px rgba(9,25,70,.44),
      0 0 20px rgba(64,112,238,.28);
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_BERCY_PORTRAIT_BUST_POSITION_PROD_WRITE_V1R3R6

   Carte Bercy:
   - dézoom du portrait pour inclure la tête ET tout le buste;
   - portrait abaissé dans le visuel;
   - partie haute de l'Accor Arena laissée dégagée.
   ============================================================ */

.journey-step.is-final .journey-card__visual::before{
  top:auto;
  bottom:16px;
  left:50%;
  width:158px;
  aspect-ratio:1;
  transform:translateX(-50%);
  background-size:145% auto;
  background-position:63% 68%;
}

@media(max-width:980px){
  .journey-step.is-final .journey-card__visual::before{
    top:auto;
    bottom:6px;
    left:50%;
    width:98px;
    aspect-ratio:1;
    transform:translateX(-50%);
    background-size:145% auto;
    background-position:63% 68%;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_BERCY_PORTRAIT_CONTACT_CTAS_PROD_WRITE_V1R3R8

   Bercy:
   - suppression complète du contour bleu ajouté;
   - conservation du cercle / halo jaune présent dans le visuel du hero;
   - image dézoomée en contain pour ne couper ni la tête ni le cercle jaune;
   - portrait légèrement abaissé pour dégager ACCOR ARENA.

   Soirée du 5 septembre:
   - premier numéro = deux CTA Téléphone + WhatsApp, au format +221;
   - seconde ligne = deux autres numéros avec icône téléphone et click-to-call.
   ============================================================ */

.journey-step.is-final .journey-card__visual::before{
  top:auto;
  bottom:8px;
  left:50%;
  width:176px;
  aspect-ratio:1;
  transform:translateX(-50%);
  border:0 !important;
  border-radius:0 !important;
  background-color:transparent !important;
  background-size:contain !important;
  background-position:center center !important;
  box-shadow:none !important;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.42))
         drop-shadow(0 0 12px rgba(245,189,44,.26));
}

@media(max-width:980px){
  .journey-step.is-final .journey-card__visual::before{
    top:auto;
    bottom:2px;
    left:50%;
    width:116px;
    aspect-ratio:1;
    transform:translateX(-50%);
    border:0 !important;
    border-radius:0 !important;
    background-color:transparent !important;
    background-size:contain !important;
    background-position:center center !important;
    box-shadow:none !important;
    filter:drop-shadow(0 7px 12px rgba(0,0,0,.40))
           drop-shadow(0 0 9px rgba(245,189,44,.24));
  }
}

.sept5-sale__action-icon{
  width:17px;
  height:17px;
  flex:0 0 17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.sept5-sale__primary-contact{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  width:100%;
}

.sept5-sale__primary-contact .btn{
  min-width:0;
  min-height:54px;
  justify-content:center;
  white-space:nowrap;
}

.sept5-sale__call-primary{
  color:#1b1200;
  background:linear-gradient(180deg,#ffd75a,#f2b716);
  border:1px solid rgba(255,226,124,.62);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.35),
    0 11px 28px rgba(234,174,14,.18);
}

.sept5-sale__call-primary:hover{
  color:#140d00;
  background:linear-gradient(180deg,#ffe176,#f8c52e);
}

.sept5-sale__whatsapp{
  min-height:54px;
  color:#07160b;
  background:linear-gradient(180deg,#53e27b,#24c65a);
  border:1px solid rgba(174,255,197,.56);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.32),
    0 11px 28px rgba(24,174,74,.20);
}

.sept5-sale__whatsapp:hover{
  color:#061108;
  background:linear-gradient(180deg,#64ec8a,#2dd364);
}

.sept5-sale__phones{
  width:100%;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.sept5-sale__phones a{
  gap:7px;
  justify-content:center;
  white-space:nowrap;
}

.sept5-sale__phones .sept5-sale__action-icon{
  width:14px;
  height:14px;
  flex-basis:14px;
}

@media(max-width:760px){
  .sept5-sale__primary-contact,
  .sept5-sale__phones{
    grid-template-columns:1fr;
  }

  .sept5-sale__primary-contact .btn,
  .sept5-sale__phones a{
    width:100%;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_BERCY_PORTRAIT_ROUND_BUST_PROD_WRITE_V1R3R9

   Carte Bercy:
   - retour à un encadré ROND uniquement;
   - crop ciblé sur tête + buste;
   - aucun contour bleu artificiel;
   - halo/cercle jaune du visuel source conservé;
   - image dimensionnée pour occuper l'espace sans déborder;
   - position basse pour laisser ACCOR ARENA visible.
   ============================================================ */

.journey-step.is-final .journey-card__visual::before{
  top:auto !important;
  bottom:12px !important;
  left:50% !important;
  width:clamp(132px,34%,172px) !important;
  aspect-ratio:1 !important;
  transform:translateX(-50%) !important;

  border:0 !important;
  border-radius:50% !important;

  background-color:transparent !important;
  background-image:url("../img/youssou-bercy-v2.png") !important;
  background-repeat:no-repeat !important;

  /* Un peu moins zoomé que la première version pour garder
     le haut de la tête et davantage du halo jaune. */
  background-size:132% auto !important;
  background-position:63% 63% !important;

  box-shadow:none !important;
  filter:
    drop-shadow(0 10px 18px rgba(0,0,0,.42))
    drop-shadow(0 0 13px rgba(245,189,44,.30)) !important;
}

@media(max-width:980px){
  .journey-step.is-final .journey-card__visual::before{
    bottom:6px !important;
    width:clamp(104px,45%,124px) !important;
    background-size:132% auto !important;
    background-position:63% 63% !important;
    filter:
      drop-shadow(0 7px 12px rgba(0,0,0,.40))
      drop-shadow(0 0 10px rgba(245,189,44,.28)) !important;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_BERCY_PORTRAIT_FULL_GOLD_RING_PROD_WRITE_V1R3R10

   Carte Bercy:
   - même encadré rond tête+buste validé en R9;
   - léger dézoom supplémentaire pour faire entrer TOUT le cercle jaune;
   - recentrage horizontal du halo;
   - aucun contour bleu, aucun poster rectangulaire;
   - contacts / autres cartes inchangés.
   ============================================================ */

.journey-step.is-final .journey-card__visual::before{
  background-size:114% auto !important;
  background-position:52% 61% !important;
}

@media(max-width:980px){
  .journey-step.is-final .journey-card__visual::before{
    background-size:114% auto !important;
    background-position:52% 61% !important;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_BERCY_PORTRAIT_RING_CROP_PROD_WRITE_V1R3R11

   Carte Bercy:
   - on garde uniquement la zone ronde tête+buste;
   - le cercle jaune du visuel source est aligné sur le bord du crop;
   - aucune autre partie rectangulaire/poster ne doit apparaître;
   - portrait légèrement agrandi par rapport à R10;
   - Accor Arena reste dégagé au-dessus.
   ============================================================ */

.journey-step.is-final .journey-card__visual::before{
  bottom:10px !important;
  width:clamp(146px,37%,188px) !important;

  /* Géométrie du visuel source:
     zoom + translation pour faire coïncider le cercle jaune source
     avec le cercle du crop CSS. */
  background-size:144% auto !important;
  background-position:96% 64% !important;

  border-radius:50% !important;
  overflow:hidden !important;
  border:0 !important;
  box-shadow:none !important;
  filter:
    drop-shadow(0 10px 18px rgba(0,0,0,.42))
    drop-shadow(0 0 14px rgba(245,189,44,.32)) !important;
}

@media(max-width:980px){
  .journey-step.is-final .journey-card__visual::before{
    bottom:5px !important;
    width:clamp(116px,49%,136px) !important;
    background-size:144% auto !important;
    background-position:96% 64% !important;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_BERCY_PORTRAIT_FULL_RING_PROD_WRITE_V1R3R12

   Carte Bercy:
   - on conserve exactement le crop tête+buste validé en R11;
   - ajout d'un contour jaune complet à 360° autour du médaillon;
   - aucun contour bleu;
   - légère augmentation de taille pour mieux occuper le visuel;
   - aucun changement sur les contacts / autres cartes.
   ============================================================ */

.journey-step.is-final .journey-card__visual::before{
  width:clamp(154px,39%,198px) !important;

  /* Le cercle source reste visible, mais le bord CSS garantit
     un contour jaune continu sur 100% de la circonférence. */
  border:2.5px solid rgba(247,195,44,.98) !important;
  outline:1px solid rgba(255,231,143,.42) !important;
  outline-offset:-4px !important;

  box-shadow:
    0 0 0 1px rgba(88,54,0,.28),
    0 0 18px rgba(247,195,44,.24) !important;

  filter:
    drop-shadow(0 10px 18px rgba(0,0,0,.42))
    drop-shadow(0 0 12px rgba(245,189,44,.24)) !important;
}

@media(max-width:980px){
  .journey-step.is-final .journey-card__visual::before{
    width:clamp(122px,52%,144px) !important;
    border-width:2px !important;
    outline-offset:-3px !important;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_BERCY_PORTRAIT_CLEAN_RING_PROD_WRITE_V1R3R13

   Carte Bercy:
   - conservation du contour jaune CSS 360° validé en R12;
   - suppression du résidu du cercle jaune ORIGINAL visible à droite;
   - aucun changement de taille du médaillon;
   - tête+buste et contacts inchangés.
   ============================================================ */

.journey-step.is-final .journey-card__visual::before{
  /*
    On zoome légèrement uniquement l'image source et on la décale
    vers la droite : le vieux halo jaune du poster sort alors du
    crop rond. Le contour visible reste uniquement le cercle CSS R12.
  */
  background-size:158% auto !important;
  background-position:104% 64% !important;
}

@media(max-width:980px){
  .journey-step.is-final .journey-card__visual::before{
    background-size:158% auto !important;
    background-position:104% 64% !important;
  }
}
/* ============================================================
   LOT_BERCY_PORTAL_BERCY_PORTRAIT_RING_RECENTER_PROD_WRITE_V1R3R14

   Correction ciblée:
   - le résidu visible est le cercle jaune ORIGINAL du poster;
   - en R13 l'image source était décalée trop à gauche (104%);
   - on recentre le cercle source dans le crop et on le garde
     légèrement plus grand que le médaillon.
   Résultat attendu:
   - ancien cercle source entièrement hors du crop;
   - seul le contour jaune 360° CSS de R12 reste visible.
   ============================================================ */

.journey-step.is-final .journey-card__visual::before{
  background-size:160% auto !important;
  background-position:80% 60% !important;
}

@media(max-width:980px){
  .journey-step.is-final .journey-card__visual::before{
    background-size:160% auto !important;
    background-position:80% 60% !important;
  }
}

