/* Footgolf Parc Expériences · site 2026 (v3)
   Cinématographique : photos plein cadre, fond sombre, grande typographie
   condensée en capitales, rouge FGP en accent. */

@font-face { font-family: "Archivo"; src: url("../fonts/archivo-latin-standard-normal.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215; }
@font-face { font-family: "Archivo"; src: url("../fonts/archivo-latin-ext-standard-normal.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-display: swap; unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --bg: #0A0C0B;
  --bg-2: #111513;
  --bg-3: #191F1C;
  --green: #0B3B33;
  --stone: #E6E3DC;
  --white: #F5F3EE;
  --grey: #A9B1AD;
  --grey-2: #7D8682;
  --ink: #0A0C0B;
  --ink-soft: #4A524E;
  --red: #FF334C;
  --red-btn: #E8193A;
  --line: rgba(245, 243, 238, 0.18);
  --line-dark: rgba(10, 12, 11, 0.16);

  --font: "Archivo", "Arial Narrow", system-ui, sans-serif;
  --d-xxl: clamp(68px, 12.5vw, 230px);
  --d-xl: clamp(54px, 8.4vw, 150px);
  --d-l: clamp(42px, 5.6vw, 96px);
  --d-m: clamp(26px, 2.5vw, 42px);
  --t-lead: clamp(18px, 1.35vw, 21px);
  --t-body: 16px;
  --t-small: 13px;

  --m: clamp(18px, 3vw, 48px);
  --g: clamp(14px, 1.6vw, 24px);
  --sec: clamp(96px, 11vw, 180px);
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-io: cubic-bezier(0.65, 0, 0.35, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--white); font: 400 var(--t-body)/1.62 var(--font); font-stretch: 100%; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { margin: 0; font-weight: 400; }
p { margin: 0; text-wrap: pretty; }
button, input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--red); color: #fff; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: fixed; left: 16px; top: -80px; z-index: 300; background: var(--red-btn); color: #fff; padding: 12px 18px; }
.skip:focus { top: 16px; }

/* ---------- typographie ---------- */
.display { font-family: var(--font); font-stretch: 62%; font-weight: 850; text-transform: uppercase; line-height: 0.86; letter-spacing: -0.005em; text-wrap: balance; }
.d-xxl { font-size: var(--d-xxl); }
.d-xl { font-size: var(--d-xl); }
.d-l { font-size: var(--d-l); }
.d-m { font-size: var(--d-m); line-height: 0.95; }
.label { font-stretch: 125%; font-weight: 600; font-size: var(--t-small); text-transform: uppercase; letter-spacing: 0.08em; line-height: 1.4; }
.lead { font-size: var(--t-lead); line-height: 1.55; }
.muted { color: var(--grey); }
.light .muted, .on-stone .muted { color: var(--ink-soft); }
.red { color: var(--red); }
.outline { color: transparent; -webkit-text-stroke: 1.5px currentColor; }

/* ---------- mise en page ---------- */
.wrap { padding-inline: var(--m); }
.grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--g); }
.sec { padding-block: var(--sec); }
.sec-tight { padding-block: clamp(72px, 8vw, 120px); }
.bg-2 { background: var(--bg-2); }
.bg-3 { background: var(--bg-3); }
.bg-green { background: var(--green); }
.on-stone { background: var(--stone); color: var(--ink); }

/* trait fin avec segment rouge (repris des références) */
.rule { position: relative; height: 1px; background: var(--line); }
.rule::after { content: ""; position: absolute; left: 0; top: -1px; height: 3px; width: var(--rule, 18%); background: var(--red); transition: width .6s var(--ease); }
.on-stone .rule { background: var(--line-dark); }

/* ---------- boutons et liens ---------- */
.btn { display: inline-flex; align-items: center; gap: 14px; min-height: 54px; padding: 0 26px; border: 0; background: var(--red-btn); color: #fff; font-stretch: 125%; font-weight: 650; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; transition: background-color .25s ease, transform .25s var(--ease); }
.btn:hover { background: #C8102E; }
.btn:active { transform: scale(0.98); }
.btn svg { width: 18px; height: 18px; transition: transform .35s var(--ease); }
.btn:hover svg { transform: translateX(4px); }
.btn--white { background: var(--white); color: var(--ink); }
.btn--white:hover { background: #fff; }
.btn--ghost { background: transparent; color: inherit; box-shadow: inset 0 0 0 1px currentColor; }
.btn--ghost:hover { background: var(--white); color: var(--ink); }
.more { display: inline-flex; align-items: center; gap: 12px; font-stretch: 125%; font-weight: 650; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; }
.more svg { width: 18px; height: 18px; transition: transform .35s var(--ease); }
.more span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; text-decoration-color: transparent; transition: text-decoration-color .3s ease, text-underline-offset .3s var(--ease); }
.more:hover span { text-decoration-color: currentColor; text-underline-offset: 4px; }
.more:hover svg { transform: translateX(6px); }

/* ---------- navigation ---------- */
.nav { position: fixed; inset: 0 0 auto 0; z-index: 100; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding: 22px var(--m); transition: background-color .35s ease, padding .35s ease, transform .5s var(--ease); }
.nav.is-solid { background: rgba(10, 12, 11, 0.94); padding-block: 12px; }
.nav.is-away { transform: translateY(-105%); }
.nav__logo { width: 168px; }
.nav__links { display: flex; gap: clamp(18px, 2.2vw, 38px); list-style: none; margin: 0; padding: 0; }
.nav__links a { font-stretch: 125%; font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; padding: 8px 0; position: relative; }
.nav__links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 2px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.nav__links a:hover::after, .nav__links a[aria-current="page"]::after { transform: scaleX(1); }
.nav__right { justify-self: end; display: flex; align-items: center; gap: 18px; }
.nav__tel { font-stretch: 125%; font-weight: 600; font-size: 13px; letter-spacing: 0.06em; white-space: nowrap; }
.nav__cta { min-height: 46px; padding: 0 20px; white-space: nowrap; }
.nav__menu { display: none; min-height: 46px; padding: 0 18px; border: 0; background: var(--white); color: var(--ink); font-stretch: 125%; font-weight: 650; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; }
@media (max-width: 1100px) {
  .nav { grid-template-columns: 1fr auto; }
  .nav__links, .nav__tel, .nav__cta { display: none; }
  .nav__menu { display: inline-flex; align-items: center; }
  .nav__logo { width: 140px; }
}
.menu { position: fixed; inset: 0; z-index: 200; background: var(--bg); display: flex; flex-direction: column; padding: 22px var(--m) 28px; visibility: hidden; clip-path: inset(0 0 100% 0); transition: clip-path .6s var(--ease-io), visibility 0s .6s; }
.menu.is-open { visibility: visible; clip-path: inset(0); transition: clip-path .6s var(--ease-io); }
.menu__top { display: flex; justify-content: space-between; align-items: center; }
.menu__top img { width: 140px; }
.menu ol { list-style: none; margin: auto 0; padding: 0; counter-reset: m; }
.menu ol li { counter-increment: m; }
.menu ol a { display: flex; align-items: baseline; gap: 14px; padding: 6px 0; font-stretch: 62%; font-weight: 850; text-transform: uppercase; font-size: clamp(40px, 11vw, 72px); line-height: 1; }
.menu ol a::before { content: "0" counter(m); font-stretch: 125%; font-weight: 600; font-size: 13px; color: var(--red); letter-spacing: 0.08em; }
.menu__foot { display: grid; gap: 10px; }

/* ==========================================================================
   ACCUEIL
   ========================================================================== */
/* héros : diaporama plein cadre */
.hero { position: relative; min-height: 100svh; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; padding: 130px var(--m) 30px calc(var(--m) + 44px); }
.hero__slides { position: absolute; inset: 0; z-index: -2; }
.hero__slides img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.08); transition: opacity 1.4s ease, transform 8s linear; }
.hero__slides img.is-on { opacity: 1; transform: scale(1); }
.hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10,12,11,.78) 0%, rgba(10,12,11,.35) 48%, rgba(10,12,11,.1) 100%), linear-gradient(0deg, rgba(10,12,11,.88) 0%, rgba(10,12,11,0) 42%); } /* taste-skill-ignore : voile neutre sous le texte */
.hero__side { position: absolute; left: var(--m); top: 50%; transform: translateY(-50%) rotate(180deg); writing-mode: vertical-rl; color: var(--grey); }
.hero__body { position: relative; max-width: 1100px; margin-bottom: clamp(36px, 6svh, 72px); }
.hero__body .label { color: var(--red); margin-bottom: 22px; }
.hero h1 { font-size: clamp(58px, 8.4vw, 152px); }
.hero h1 span { display: block; white-space: nowrap; }
.hero__lede { margin-top: 28px; max-width: 40ch; color: #E3E6E4; }
.hero__actions { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 14px; }
.hero__count { position: absolute; right: var(--m); top: 50%; transform: translateY(-50%); list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; text-align: right; }
.hero__count button { background: none; border: 0; padding: 4px 0 4px 36px; cursor: pointer; display: flex; align-items: center; justify-content: flex-end; gap: 14px; color: var(--grey); font-stretch: 100%; font-weight: 500; font-size: 13px; font-variant-numeric: tabular-nums; transition: color .3s ease; }
.hero__count button::after { content: ""; width: 0; height: 1px; background: currentColor; transition: width .5s var(--ease); }
.hero__count button.is-on { color: #fff; font-stretch: 62%; font-weight: 850; font-size: 34px; line-height: 1; }
.hero__count button.is-on::after { width: 44px; }
.hero__foot { position: relative; }
.hero__foot .rule { margin-bottom: 26px; }
.hero__foot .rule::after { width: calc(var(--p, 0) * 100%); transition: none; }
.hero__doors { display: grid; grid-template-columns: repeat(3, 1fr) minmax(0, 0.9fr); gap: var(--g); }
.hero__doors a { display: grid; gap: 8px; padding-right: 20px; }
.hero__doors h2 { font-stretch: 125%; font-weight: 650; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; }
.hero__doors p { font-size: 14px; line-height: 1.5; color: var(--grey); max-width: 30ch; }
.hero__doors .more { margin-top: 4px; }
.hero__cap { align-self: end; justify-self: end; text-align: right; font-size: 13px; color: var(--grey); max-width: 24ch; }
@media (max-width: 900px) {
  .hero { padding: 120px var(--m) 28px; }
  .hero h1 span { white-space: normal; }
  .hero__side, .hero__count, .hero__cap { display: none; }
  .hero__body { margin-bottom: 40px; }
  .hero__doors { grid-template-columns: 1fr; gap: 18px; }
  .hero__doors p { display: none; }
  .hero__doors a { grid-template-columns: 1fr auto; align-items: center; padding: 0 0 16px; border-bottom: 1px solid var(--line); }
}

/* lieux : quatre grandes cartes photo */
.places__head { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); align-items: end; margin-bottom: clamp(40px, 5vw, 72px); }
.places__head h2 { grid-column: 1 / span 7; }
.places__head p { grid-column: 9 / span 4; }
.places__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--g); }
.place { position: relative; display: block; aspect-ratio: 3 / 4.2; overflow: hidden; isolation: isolate; }
.place img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s var(--ease), filter .6s ease; filter: brightness(.86); }
.place::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(10,12,11,.9) 0%, rgba(10,12,11,0) 55%); } /* taste-skill-ignore : voile sous le titre */
.place:hover img { transform: scale(1.06); filter: brightness(1); }
.place__body { position: absolute; left: 22px; right: 22px; bottom: 22px; display: grid; gap: 10px; }
.place__body .label { color: var(--red); }
.place__body h3 { font-stretch: 62%; font-weight: 850; text-transform: uppercase; font-size: clamp(30px, 2.7vw, 46px); line-height: 0.9; }
.place__body p { font-size: 14px; line-height: 1.5; color: #D9DDDB; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .6s var(--ease), opacity .4s ease; }
.place:hover .place__body p, .place:focus-visible .place__body p { max-height: 120px; opacity: 1; }
.places__foot { margin-top: 40px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.places__foot .rule { flex: 1; }
@media (max-width: 900px) {
  .places__head h2, .places__head p { grid-column: 1 / -1; }
  .places__head p { margin-top: 18px; }
  .places__list { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: none; }
  .places__list::-webkit-scrollbar { display: none; }
  .places__list li { scroll-snap-align: start; }
  .place__body p { max-height: none; opacity: 1; }
  .places__foot .rule { display: none; }
}

/* le mot géant et le joueur détouré */
.bigword { position: relative; overflow: hidden; padding: clamp(80px, 9vw, 140px) var(--m) clamp(40px, 4vw, 64px); }
.bigword__top { display: flex; justify-content: space-between; gap: 24px; align-items: start; }
.bigword__top p { max-width: 30ch; }
.bigword__stage { position: relative; margin-top: clamp(10px, 2vw, 30px); padding-top: 13vw; }
.bigword__word { position: relative; display: block; font-stretch: 62%; font-weight: 900; text-transform: uppercase; font-size: 25.4vw; line-height: 0.8; letter-spacing: -0.01em; text-align: center; margin-inline: calc(-1 * var(--m) + 4px); white-space: nowrap; will-change: transform; }
.bigword__player { position: absolute; left: 49%; bottom: -9%; width: min(30vw, 560px); pointer-events: none; z-index: 2; }
.bigword__ball { position: absolute; left: 14%; bottom: 4%; width: min(10vw, 180px); pointer-events: none; z-index: 2; }
.bigword__bottom { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); margin-top: clamp(32px, 4vw, 56px); align-items: end; }
.bigword__bottom .a { grid-column: 1 / span 4; }
.bigword__bottom .a h2 { font-stretch: 62%; font-weight: 850; font-size: var(--d-m); text-transform: uppercase; line-height: 0.95; margin-bottom: 16px; }
.bigword__facts { grid-column: 7 / span 6; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--g); list-style: none; margin: 0; padding: 0; }
.bigword__facts b { display: block; font-stretch: 62%; font-weight: 850; font-size: clamp(40px, 4.2vw, 72px); line-height: 0.9; }
.bigword__facts span { display: block; margin-top: 8px; font-size: 14px; line-height: 1.4; color: var(--ink-soft); }
@media (max-width: 900px) {
  .bigword__top { flex-direction: column; }
  .bigword__player { width: 40vw; left: 46%; }
  .bigword__ball { width: 13vw; }
  .bigword__bottom .a, .bigword__facts { grid-column: 1 / -1; }
  .bigword__facts { margin-top: 36px; }
}

/* plan de cinéma : journées VIP */
.cinema { position: relative; min-height: 100svh; display: grid; align-items: end; overflow: hidden; isolation: isolate; padding: 140px var(--m) clamp(40px, 5vw, 72px); }
.cinema > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; filter: sepia(.18) saturate(1.05) brightness(.7); }
.cinema::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(10,12,11,.92) 0%, rgba(10,12,11,.2) 60%, rgba(10,12,11,.45) 100%); } /* taste-skill-ignore : voile sous le texte */
.cinema__grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 40px; align-items: end; }
.cinema__title { grid-column: 1 / span 7; }
.cinema__title .label { color: var(--red); display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.cinema__title .label::before { content: ""; width: 64px; height: 3px; background: var(--red); border-radius: 0 2px 2px 0; } /* trait et point des références */
.cinema__text { grid-column: 9 / span 4; display: grid; gap: 22px; }
.cinema__names { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px 28px; list-style: none; margin: 0; padding: 26px 0 0; border-top: 1px solid var(--line); }
.cinema__names li { font-stretch: 62%; font-weight: 850; font-size: clamp(26px, 2.6vw, 44px); text-transform: uppercase; line-height: 1; }
.cinema__names li:nth-child(even) { color: transparent; -webkit-text-stroke: 1.2px var(--white); }
.cinema__strip { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--g); }
.cinema__strip figure { margin: 0; position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.cinema__strip img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.cinema__strip figure:hover img { transform: scale(1.05); }
.cinema__strip figcaption { position: absolute; left: 12px; bottom: 10px; font-stretch: 125%; font-weight: 600; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
@media (max-width: 900px) {
  .cinema__title, .cinema__text { grid-column: 1 / -1; }
  .cinema__strip { grid-template-columns: 1fr 1fr; }
}

/* lancement : le Var */
.launch { position: relative; overflow: hidden; isolation: isolate; padding: var(--sec) var(--m); }
.launch > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; opacity: .55; }
.launch::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, var(--bg) 0%, rgba(10,12,11,.55) 45%, var(--bg) 100%); } /* taste-skill-ignore : fondu de la photo de fond */
.launch__grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 48px; align-items: end; }
.launch__text { grid-column: 1 / span 6; }
.launch__text .label { color: var(--red); margin-bottom: 22px; }
.launch__text .lead { margin: 30px 0 34px; max-width: 42ch; }
.launch__count { display: flex; align-items: baseline; gap: 16px; margin-top: 28px; }
.launch__count b { font-stretch: 62%; font-weight: 850; font-size: clamp(80px, 9vw, 150px); line-height: 0.8; color: var(--red); }
.launch__count span { font-stretch: 125%; font-weight: 600; font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; line-height: 1.5; }
.launch__thumbs { grid-column: 8 / span 5; display: grid; grid-template-columns: 1fr 1fr; gap: var(--g); }
.launch__thumbs figure { margin: 0; }
.launch__thumbs img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.launch__thumbs figure:last-child { margin-top: 64px; }
.launch__thumbs figcaption { margin-top: 10px; font-size: 13px; color: var(--grey); }
@media (max-width: 900px) { .launch__text, .launch__thumbs { grid-column: 1 / -1; } }

/* clôture : grand appel */
.final { position: relative; min-height: 92svh; display: grid; place-items: center; text-align: center; overflow: hidden; isolation: isolate; padding: 140px var(--m) 110px; }
.final > img { position: absolute; inset: -40px; width: calc(100% + 80px); height: calc(100% + 80px); max-width: none; object-fit: cover; z-index: -2; filter: blur(18px) brightness(.55) saturate(1.2); }
.final::before { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(10,12,11,.25); }
.final h2 { max-width: 15ch; margin-inline: auto; }
.final p { margin: 28px auto 0; max-width: 46ch; }
.final__actions { margin-top: 38px; display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.final__contact { margin-top: 30px; display: flex; flex-wrap: wrap; gap: 6px 26px; justify-content: center; font-stretch: 125%; font-weight: 600; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; }
.final__contact a { border-bottom: 1px solid currentColor; padding-bottom: 2px; }

/* pied de page */
.foot { background: var(--bg-2); padding: clamp(64px, 7vw, 110px) var(--m) 28px; }
.foot__top { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 48px; }
.foot__brand { grid-column: 1 / span 4; }
.foot__brand img { width: 220px; margin-bottom: 24px; }
.foot__brand p { color: var(--grey); max-width: 34ch; font-size: 15px; }
.foot__col { grid-column: span 2; }
.foot__col:first-of-type { grid-column: 6 / span 2; }
.foot__col h2 { margin-bottom: 18px; color: var(--grey-2); }
.foot__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 15px; }
.foot__col a:hover { color: var(--red); }
.foot__col.wide { grid-column: span 3; }
.foot__bottom { margin-top: clamp(56px, 6vw, 96px); padding-top: 22px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; font-size: 13px; color: var(--grey-2); }
.foot__bottom a:hover { color: var(--white); }
@media (max-width: 900px) {
  .foot__brand, .foot__col, .foot__col:first-of-type, .foot__col.wide { grid-column: 1 / -1; }
}

/* ==========================================================================
   PAGES INTÉRIEURES
   ========================================================================== */
.phero { position: relative; height: 100svh; min-height: 640px; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; padding: 0 var(--m) clamp(28px, 4vw, 56px); }
.phero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.08); animation: settle 2.6s var(--ease) forwards; }
@keyframes settle { to { transform: scale(1); } }
.phero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(10,12,11,.9) 0%, rgba(10,12,11,.25) 55%, rgba(10,12,11,.45) 100%); } /* taste-skill-ignore : voile sous le titre */
.phero__frame { position: absolute; inset: 96px var(--m) auto; height: calc(100% - 96px - 40%); border: 1px solid rgba(245,243,238,.28); pointer-events: none; }
.phero__crumbs { position: absolute; top: 112px; left: calc(var(--m) + 20px); color: #E3E6E4; }
.phero__crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; gap: 10px; }
.phero__crumbs li + li::before { content: "/"; margin-right: 10px; color: var(--red); }
.phero__crumbs a:hover { color: var(--red); }
.phero__num { position: absolute; top: 108px; right: calc(var(--m) + 20px); text-align: right; }
.phero__num b { display: block; font-stretch: 62%; font-weight: 850; font-size: 56px; line-height: 0.85; }
.phero__row { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 24px; align-items: end; }
.phero h1 { grid-column: 1 / span 8; }
.phero__lede { grid-column: 9 / span 4; display: grid; gap: 22px; padding-bottom: 6px; }
@media (max-width: 900px) {
  .phero { height: 92svh; min-height: 560px; }
  .phero__frame, .phero__num { display: none; }
  .phero__crumbs { left: var(--m); top: 96px; }
  .phero h1, .phero__lede { grid-column: 1 / -1; }
}

/* section titrée : titre à gauche, texte à droite */
.shead { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 22px; align-items: end; margin-bottom: clamp(44px, 5vw, 80px); }
.shead > div { grid-column: 1 / span 7; }
.shead .label { color: var(--red); margin-bottom: 20px; }
.shead > p { grid-column: 9 / span 4; }
@media (max-width: 900px) { .shead > div, .shead > p { grid-column: 1 / -1; } }

/* rangées photo + texte */
.feature { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 32px; align-items: center; }
.feature + .feature { margin-top: clamp(72px, 8vw, 140px); }
.feature__img { grid-column: 1 / span 7; margin: 0; position: relative; overflow: hidden; }
.feature__img img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; transition: transform 1.4s var(--ease); }
.feature__img:hover img { transform: scale(1.04); }
.feature__img figcaption { position: absolute; left: 16px; top: 14px; }
.feature__text { grid-column: 9 / span 4; }
.feature__text .num { display: block; font-stretch: 62%; font-weight: 850; font-size: 64px; line-height: 0.8; color: transparent; -webkit-text-stroke: 1.2px var(--red); margin-bottom: 22px; }
.feature__text h3 { margin-bottom: 20px; }
.feature__text ul { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 8px; }
.feature__text li { display: flex; gap: 12px; align-items: baseline; font-size: 15px; }
.feature__text li::before { content: ""; flex: none; width: 14px; height: 2px; background: var(--red); transform: translateY(-4px); }
.feature--flip .feature__img { grid-column: 6 / span 7; order: 2; }
.feature--flip .feature__text { grid-column: 1 / span 4; order: 1; }
@media (max-width: 900px) { .feature__img, .feature__text, .feature--flip .feature__img, .feature--flip .feature__text { grid-column: 1 / -1; order: 0; } }

/* planche d'ambiance */
.mood { display: grid; grid-template-columns: 1.3fr 1fr 1fr; grid-template-rows: repeat(2, minmax(220px, 26vw)); gap: var(--g); }
.mood figure { margin: 0; position: relative; overflow: hidden; }
.mood figure:first-child { grid-row: span 2; }
.mood img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.mood figure:hover img { transform: scale(1.05); }
.mood figcaption { position: absolute; left: 14px; bottom: 12px; font-stretch: 125%; font-weight: 600; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; background: rgba(10,12,11,.72); padding: 4px 8px; }
@media (max-width: 900px) { .mood { grid-template-columns: 1fr 1fr; grid-template-rows: none; grid-auto-rows: 46vw; } .mood figure:first-child { grid-column: 1 / -1; grid-row: auto; } }

/* étapes numérotées */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--g); }
.steps li { padding-top: 26px; position: relative; }
.steps li::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line); }
.steps li::after { content: ""; position: absolute; left: 0; top: -1px; height: 3px; width: 34%; background: var(--red); }
.steps b { display: block; font-stretch: 62%; font-weight: 850; font-size: clamp(56px, 5vw, 88px); line-height: 0.8; color: transparent; -webkit-text-stroke: 1.2px var(--white); margin-bottom: 26px; }
.steps h3 { font-stretch: 62%; font-weight: 850; text-transform: uppercase; font-size: var(--d-m); line-height: 0.95; margin-bottom: 14px; }
.steps p { color: var(--grey); font-size: 15px; max-width: 32ch; }
.steps .when { display: block; margin-bottom: 10px; color: var(--red); }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr 1fr; row-gap: 44px; } }
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }

/* trois offres */
.offers { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--g); }
.offer { position: relative; overflow: hidden; isolation: isolate; min-height: 560px; padding: 30px; display: flex; flex-direction: column; justify-content: space-between; background: var(--bg-3); }
.offer > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; opacity: .35; transition: opacity .6s ease, transform 1.2s var(--ease); }
.offer::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(10,12,11,.95) 15%, rgba(10,12,11,.35) 100%); } /* taste-skill-ignore : voile sous le texte */
.offer:hover > img { opacity: .55; transform: scale(1.04); }
.offer .label { color: var(--red); }
.offer h3 { margin: 14px 0 16px; }
.offer ul { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 9px; }
.offer li { display: flex; gap: 12px; align-items: baseline; font-size: 15px; }
.offer li::before { content: ""; flex: none; width: 14px; height: 2px; background: var(--red); transform: translateY(-4px); }
@media (max-width: 1000px) { .offers { grid-template-columns: 1fr; } .offer { min-height: 0; } }

/* lieux ciblés : liste avec aperçu au survol */
.targets { list-style: none; margin: 0; padding: 0; }
.targets li a, .targets li > div { display: grid; grid-template-columns: 1.1fr 1.3fr 140px; gap: var(--g); align-items: center; padding: 26px 0; border-top: 1px solid var(--line); transition: padding-left .5s var(--ease), color .3s ease; }
.targets li:last-child a, .targets li:last-child > div { border-bottom: 1px solid var(--line); }
.targets h3 { font-stretch: 62%; font-weight: 850; text-transform: uppercase; font-size: var(--d-m); line-height: 0.95; }
.targets p { color: var(--grey); font-size: 15px; }
.targets img { width: 140px; aspect-ratio: 4 / 3; object-fit: cover; opacity: .9; transition: transform .6s var(--ease); }
.targets li:hover > div { padding-left: 14px; }
.targets li:hover img { transform: scale(1.06); }
@media (max-width: 900px) { .targets li > div { grid-template-columns: 1fr 96px; } .targets li > div p { grid-column: 1 / -1; grid-row: 2; } .targets img { width: 96px; grid-row: 1; grid-column: 2; } }

/* chiffres */
.stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--g); }
.stats li { padding-top: 22px; border-top: 1px solid var(--line); }
.stats b { display: block; font-stretch: 62%; font-weight: 850; font-size: clamp(64px, 7vw, 124px); line-height: 0.82; }
.stats span { display: block; margin-top: 14px; color: var(--grey); font-size: 15px; max-width: 24ch; }
@media (max-width: 900px) { .stats { grid-template-columns: 1fr 1fr; row-gap: 40px; } }

/* FAQ */
.faq { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 32px; }
.faq__head { grid-column: 1 / span 4; }
.faq__head .label { color: var(--red); margin-bottom: 20px; }
.faq__head p { margin-top: 22px; }
.faq__list { grid-column: 6 / span 7; }
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 24px 0; font-stretch: 100%; font-weight: 600; font-size: 18px; line-height: 1.35; transition: color .25s ease; }
.faq summary:hover { color: var(--red); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; flex: none; width: 14px; height: 14px; background: currentColor; clip-path: polygon(45% 0, 55% 0, 55% 45%, 100% 45%, 100% 55%, 55% 55%, 55% 100%, 45% 100%, 45% 55%, 0 55%, 0 45%, 45% 45%); transition: transform .35s var(--ease); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { padding: 0 0 26px; color: var(--grey); max-width: 62ch; }
@media (max-width: 900px) { .faq__head, .faq__list { grid-column: 1 / -1; } }

/* programme (vrai tableau) */
.programme { width: 100%; border-collapse: collapse; }
.programme caption { text-align: left; padding-bottom: 18px; color: var(--red); }
.programme th, .programme td { text-align: left; vertical-align: baseline; padding: 22px 0; border-top: 1px solid var(--line); }
.programme tr:last-child th, .programme tr:last-child td { border-bottom: 1px solid var(--line); }
.programme th { width: 22%; font-stretch: 62%; font-weight: 850; font-size: clamp(30px, 2.8vw, 48px); line-height: 0.9; font-variant-numeric: tabular-nums; }
.programme td h3 { font-stretch: 100%; font-weight: 650; font-size: 18px; margin-bottom: 4px; }
.programme td p { color: var(--grey); font-size: 15px; }

/* ambassadeurs : noms géants */
.legends { list-style: none; margin: 0; padding: 0; }
.legends li { display: grid; grid-template-columns: 1fr minmax(0, 0.5fr); gap: var(--g); align-items: end; padding: 18px 0; border-top: 1px solid var(--line); }
.legends li:last-child { border-bottom: 1px solid var(--line); }
.legends h3 { font-stretch: 62%; font-weight: 850; text-transform: uppercase; font-size: clamp(54px, 8vw, 140px); line-height: 0.82; transition: color .3s ease, transform .6s var(--ease); }
.legends li:hover h3 { color: var(--red); transform: translateX(14px); }
.legends p { color: var(--grey); font-size: 15px; padding-bottom: 10px; }
@media (max-width: 900px) { .legends li { grid-template-columns: 1fr; } }

/* split : photo tenue, texte qui défile */
.split { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 40px; align-items: start; }
.split__media { grid-column: 1 / span 6; position: sticky; top: 100px; margin: 0; }
.split__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.split__text { grid-column: 8 / span 5; }
@media (max-width: 900px) { .split__media, .split__text { grid-column: 1 / -1; } .split__media { position: static; } }

/* équipe */
.team { display: grid; grid-template-columns: 1fr 1fr; gap: var(--g); }
.person { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: var(--g); background: var(--bg-3); }
.person img { width: 100%; height: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.person > div { padding: 28px 24px 28px 4px; }
.person h3 { margin: 12px 0 18px; }
.person .label { color: var(--red); }
.person ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 15px; color: #D9DDDB; }
.person li { display: flex; gap: 12px; align-items: baseline; }
.person li::before { content: ""; flex: none; width: 12px; height: 2px; background: var(--red); transform: translateY(-4px); }
@media (max-width: 1000px) { .team { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .person { grid-template-columns: 1fr; } .person > div { padding: 24px; } }

/* carte du réseau */
.network { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 40px; align-items: center; }
.network__map { grid-column: 1 / span 7; }
.network__map svg { width: 100%; height: auto; }
.network__map .land { fill: rgba(245,243,238,0.05); stroke: rgba(245,243,238,0.7); stroke-width: 1.2; stroke-linejoin: round; }
.network__map .neigh { fill: none; stroke: rgba(245,243,238,0.16); stroke-width: 1; }
.pin .halo { fill: var(--red); opacity: .3; transform-box: fill-box; transform-origin: center; animation: halo 2.4s var(--ease) infinite; }
@keyframes halo { from { transform: scale(.6); opacity: .5; } to { transform: scale(2.6); opacity: 0; } }
.pin .r1 { fill: var(--bg); stroke: var(--white); stroke-width: 2.4; }
.pin .r2 { fill: none; stroke: var(--white); stroke-width: 1.2; }
.pin .dot { fill: var(--red); }
.pin text { font: 600 13px var(--font); font-stretch: 125%; letter-spacing: .08em; text-transform: uppercase; fill: var(--white); }
.network__side { grid-column: 9 / span 4; }
.venue-card { display: block; margin-top: 30px; position: relative; overflow: hidden; isolation: isolate; }
.venue-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s var(--ease); }
.venue-card:hover img { transform: scale(1.05); }
.venue-card__body { padding: 22px 0 0; display: grid; gap: 10px; }
.venue-card__body .label { color: var(--red); }
@media (max-width: 900px) { .network__map, .network__side { grid-column: 1 / -1; } }

/* informations pratiques */
.practical { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 40px; }
.practical__head { grid-column: 1 / span 4; }
.practical__head .label { color: var(--red); margin-bottom: 20px; }
.practical dl { grid-column: 6 / span 7; display: grid; grid-template-columns: 0.7fr 1.6fr; margin: 0; }
.practical dt, .practical dd { margin: 0; padding: 18px 0; border-top: 1px solid var(--line); }
.practical dt { color: var(--grey-2); }
.practical .zoom { grid-column: 1 / span 4; margin: 0; background: var(--bg-3); }
.practical .zoom svg { display: block; width: 100%; height: auto; }
.practical .zoom .land { fill: rgba(245,243,238,0.05); stroke: rgba(245,243,238,0.7); stroke-width: .5; }
.practical .zoom .neigh { fill: none; stroke: rgba(245,243,238,0.2); stroke-width: .4; }
@media (max-width: 900px) { .practical__head, .practical dl, .practical .zoom { grid-column: 1 / -1; } }

/* actualités */
.news { list-style: none; margin: 0; padding: 0; }
.news a { display: grid; grid-template-columns: 170px minmax(0,1fr) 28px; gap: var(--g); align-items: center; padding: 28px 0; border-top: 1px solid var(--line); transition: padding-left .5s var(--ease); }
.news li:last-child a { border-bottom: 1px solid var(--line); }
.news a:hover { padding-left: 16px; }
.news a:hover h3 { color: var(--red); }
.news time { color: var(--grey-2); }
.news h3 { font-stretch: 62%; font-weight: 850; text-transform: uppercase; font-size: clamp(28px, 3vw, 50px); line-height: 0.95; transition: color .3s ease; }
.news svg { width: 22px; height: 22px; }
@media (max-width: 900px) { .news a { grid-template-columns: 1fr 22px; gap: 8px 16px; } .news time { grid-column: 1 / -1; } }

/* contact */
.contact { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 48px; align-items: start; padding: 150px var(--m) var(--sec); }
.contact__intro { grid-column: 1 / span 5; }
.contact__intro .label { color: var(--red); margin-bottom: 22px; }
.contact__intro .lead { margin-top: 28px; max-width: 40ch; }
.contact__direct { margin-top: 44px; display: grid; gap: 6px; }
.contact__direct a { font-stretch: 62%; font-weight: 850; text-transform: uppercase; font-size: clamp(34px, 3.6vw, 60px); line-height: 1; transition: color .25s ease; }
.contact__direct a:hover { color: var(--red); }
.contact__media { margin-top: 44px; }
.contact__media img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.form { grid-column: 7 / span 6; background: var(--bg-2); padding: clamp(26px, 3.4vw, 52px); }
.form h2 { margin-bottom: 8px; }
.form > p { margin-bottom: 30px; color: var(--grey); font-size: 14px; }
.field { display: grid; gap: 8px; margin: 0 0 22px; border: 0; padding: 0; }
.field label, .field legend { padding: 0; color: var(--grey); }
.input { width: 100%; min-height: 54px; padding: 14px 16px; border: 0; border-bottom: 1px solid rgba(245,243,238,.3); background: var(--bg-3); color: var(--white); font-size: 16px; transition: border-color .2s ease, background-color .2s ease; }
.input:hover { background: #20272A; }
.input:focus-visible { outline: 2px solid var(--red); outline-offset: 0; }
textarea.input { min-height: 140px; resize: vertical; line-height: 1.5; }
select.input option { background: var(--bg-2); }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.choices { display: flex; flex-wrap: wrap; gap: 8px; }
.choice { position: relative; }
.choice input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.choice span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; background: var(--bg-3); font-stretch: 125%; font-weight: 600; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; transition: background-color .2s ease, color .2s ease; }
.choice:hover span { background: #262E2B; }
.choice input:checked + span { background: var(--white); color: var(--ink); }
.choice input:focus-visible + span { outline: 2px solid var(--red); outline-offset: 2px; }
.error { display: none; font-size: 13px; color: var(--red); }
.field.is-invalid .error { display: block; }
.field.is-invalid .input { border-bottom-color: var(--red); }
.form .btn { width: 100%; justify-content: center; margin-top: 8px; }
.form__done { display: none; margin-top: 16px; padding: 16px 18px; background: var(--green); font-size: 15px; }
.form__done.is-on { display: block; }
@media (max-width: 900px) { .contact { padding-top: 120px; } .contact__intro, .form { grid-column: 1 / -1; } .row2 { grid-template-columns: 1fr; } }

/* ==========================================================================
   Mouvement
   ========================================================================== */
.js [data-rise].pre { opacity: 0; transform: translateY(34px); }
.js [data-rise].pre.in { opacity: 1; transform: none; transition: opacity .9s var(--ease), transform 1.1s var(--ease); transition-delay: calc(var(--d, 0) * 90ms); }
.js [data-rise].pre.in.now { transition-duration: .6s, .7s; transition-delay: calc(var(--d, 0) * 60ms); }
.js [data-reveal].pre { clip-path: inset(18% 0 0 0); }
.js [data-reveal].pre img { transform: scale(1.14); }
.js [data-reveal].pre.in { clip-path: inset(0); transition: clip-path 1.2s var(--ease-io); }
.js [data-reveal].pre.in img { transform: none; transition: transform 1.6s var(--ease); }
.js .bigword__player.pre { opacity: 0; transform: translateY(14%); }
.js .bigword__player.pre.in { opacity: 1; transform: none; transition: opacity 1s ease, transform 1.4s var(--ease); }
.js .bigword__ball.pre { opacity: 0; transform: translate(120%, -60%) rotate(160deg); }
.js .bigword__ball.pre.in { opacity: 1; transform: none; transition: opacity .6s ease .3s, transform 1.4s var(--ease) .3s; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
  .js [data-rise].pre, .js [data-reveal].pre, .js .bigword__player.pre, .js .bigword__ball.pre { opacity: 1; transform: none; clip-path: none; }
  .hero__slides img { transform: none; }
  .phero > img { transform: none; animation: none; }
}

/* ==========================================================================
   Compléments v3 (reprise) : légendes détourées, têtes de pages, pages intérieures
   ========================================================================== */
.places { padding-bottom: clamp(56px, 6vw, 96px); }

/* journées VIP : le mot géant passe derrière les légendes détourées */
.vip { position: relative; background: var(--bg); }
.vip__stage { position: relative; height: 100svh; min-height: 620px; overflow: hidden; isolation: isolate; }
.vip__stage > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.vip__bg { z-index: 0; filter: sepia(.2) saturate(1.05) brightness(.5); }
.vip__giant { position: absolute; left: 0; right: 0; top: 29%; z-index: 1; text-align: center; font-stretch: 62%; font-weight: 900; text-transform: uppercase; font-size: 23vw; line-height: 0.8; letter-spacing: -0.01em; white-space: nowrap; color: var(--white); will-change: transform; }
.vip__cut { z-index: 2; filter: sepia(.08) saturate(1.05) brightness(1.02); }
.vip__stage::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 22%; z-index: 3; background: linear-gradient(0deg, var(--bg) 0%, rgba(10,12,11,0) 100%); } /* taste-skill-ignore : fondu vers la section */
.vip__grid { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 40px; align-items: end; padding-top: clamp(24px, 3vw, 48px); padding-bottom: var(--sec); }
.vip__title { grid-column: 1 / span 7; }
.vip__title .label { color: var(--red); display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.vip__title .label::before { content: ""; width: 64px; height: 3px; background: var(--red); }
.vip__text { grid-column: 9 / span 4; display: grid; gap: 22px; }
.vip__names { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px 28px; list-style: none; margin: 0; padding: 26px 0 0; border-top: 1px solid var(--line); }
.vip__names li { font-stretch: 62%; font-weight: 850; font-size: clamp(26px, 2.6vw, 44px); text-transform: uppercase; line-height: 1; }
.vip__names li:nth-child(even) { color: transparent; -webkit-text-stroke: 1.2px var(--white); }
.vip__strip { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--g); }
.vip__strip figure { margin: 0; position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.vip__strip img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.vip__strip figure:hover img { transform: scale(1.05); }
.vip__strip figcaption { position: absolute; left: 12px; bottom: 10px; font-stretch: 125%; font-weight: 600; font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; background: rgba(10,12,11,.72); padding: 4px 8px; }
@media (max-width: 900px) {
  .vip__stage { height: 74svh; min-height: 480px; }
  .vip__stage > img { object-position: 46% 30%; }
  .vip__giant { top: 34%; font-size: 26vw; }
  .vip__title, .vip__text { grid-column: 1 / -1; }
  .vip__strip { grid-template-columns: 1fr 1fr; }
}

/* têtes des pages intérieures */
.phero__title { grid-column: 1 / span 8; position: relative; }
.phero__title .label { margin-bottom: 20px; display: flex; align-items: center; gap: 14px; }
.phero__title .label::before { content: ""; width: 48px; height: 3px; background: var(--red); flex: none; }
.phero h1 { grid-column: auto; }
.phero__row, .phero__crumbs, .phero__num { z-index: 3; }
.phero__row { position: relative; }
.phero__lede .lead { color: #E3E6E4; }
.phero__num { display: grid; justify-items: end; gap: 8px; }
.phero__num .label { color: var(--grey); }
.phero--depth > img { object-position: 50% 30%; }
.phero__giant { position: absolute; left: 0; right: 0; top: 17%; z-index: 0; text-align: center; font-stretch: 62%; font-weight: 900; text-transform: uppercase; font-size: 40vw; line-height: 0.78; letter-spacing: -0.01em; white-space: nowrap; color: var(--white); }
.phero > img.phero__cut { z-index: 1; filter: saturate(1.05) brightness(1.02); }
.phero--depth > img:first-of-type { filter: sepia(.2) brightness(.62); }
.phero--depth::before { background: linear-gradient(0deg, rgba(10,12,11,.92) 0%, rgba(10,12,11,0) 46%); z-index: 2; } /* taste-skill-ignore : voile sous le titre */
@media (max-width: 900px) {
  .phero__title { grid-column: 1 / -1; }
  .phero__giant { top: 24%; font-size: 52vw; }
}

/* titres de section sur fond sombre : la ligne rouge des références */
.shead .label { display: flex; align-items: center; gap: 14px; }
.shead .label::before { content: ""; width: 48px; height: 3px; background: var(--red); flex: none; }
.offer h3 { line-height: 0.9; }
.offer > div p { margin-top: 12px; }
.feature__text h3.display { margin-bottom: 20px; }
.split__text .programme { margin-top: 8px; }
.venue-card h3 { margin: 4px 0; }
.team .person h3 { margin: 12px 0 18px; }
.sec .launch__grid { align-items: end; }
.news time { font-size: 13px; }
.contact__media figcaption { font-size: 13px; }
.phero h1.h1-long { font-size: clamp(48px, 6.4vw, 116px); }
.phero__title:has(.h1-long) { grid-column: 1 / span 9; }
.phero__title:has(.h1-long) + .phero__lede { grid-column: 10 / span 3; }
.offer > img { opacity: .5; }
.offer:hover > img { opacity: .7; }
@media (max-width: 900px) { .phero__title:has(.h1-long) + .phero__lede { grid-column: 1 / -1; } }
@media (max-width: 900px) {
  .hero { padding-top: 150px; }
  .bigword__stage { padding-top: 50vw; }
  .bigword__player { bottom: -6%; }
  .vip__stage > img { object-position: 44% 30%; }
  .vip__giant { top: 52%; font-size: 22vw; }
}

/* corrections après inspection */
.cinema__strip figcaption, .vip__strip figcaption, .mood figcaption { background: rgba(10,12,11,.72); padding: 4px 8px; }
.shead > p, .lead { max-width: 60ch; }
.split__text h2.display, .feature__text h2.display { font-size: clamp(38px, 4.2vw, 68px); }
.offer h3.display { font-size: clamp(36px, 3.4vw, 58px); }
.contact__intro { grid-column: 1 / span 6; padding-right: var(--g); }
.contact__intro h1 { font-size: clamp(48px, 6vw, 104px); }
.targets p, .practical dd, .practical dt, .feature__text li, .offer li, .person li { font-size: 16px; }
.news a { grid-template-columns: 200px 150px minmax(0,1fr) 28px; }
.news .thumb { width: 200px; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .8s var(--ease); }
.news a:hover .thumb { transform: scale(1.04); }
.news svg { justify-self: end; }
.ensuite-strip { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: var(--g); margin-bottom: clamp(56px, 6vw, 96px); }
.ensuite-strip figure { margin: 0; overflow: hidden; }
.ensuite-strip img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s var(--ease); }
.ensuite-strip figure:hover img { transform: scale(1.05); }
@media (max-width: 900px) {
  .hero h1 { font-size: 12vw; }
  .phero h1.h1-long { font-size: 10.6vw; }
  .places__list { grid-auto-flow: row; grid-template-columns: 1fr 1fr; grid-auto-columns: auto; overflow: visible; }
  .places__list .place { aspect-ratio: 3 / 4; }
  .place__body p { display: none; }
  .place__body { left: 14px; right: 14px; bottom: 14px; }
  .places__foot { justify-content: flex-start; }
  .news a { grid-template-columns: 96px minmax(0,1fr) 22px; }
  .news .thumb { width: 96px; grid-row: span 2; }
  .news time { grid-column: 2 / -1; }
  .ensuite-strip { grid-template-columns: 1fr 1fr; }
  .ensuite-strip figure:first-child { grid-column: 1 / -1; }
}
.final { min-height: 80svh; }
.steps p { font-size: 16px; }
.split__text p, .feature__text p, .shead p { max-width: 62ch; }
.news a { grid-template-columns: 280px 170px minmax(0,1fr) 28px; padding: 22px 0; }
.news .thumb { width: 280px; }
.news h3 { font-size: clamp(30px, 3.4vw, 56px); }
.news-top { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); column-gap: var(--g); row-gap: 28px; align-items: end; margin-bottom: clamp(56px, 6vw, 96px); }
.news-top figure { grid-column: 1 / span 7; margin: 0; overflow: hidden; }
.news-top figure img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform 1.2s var(--ease); }
.news-top a:hover img { transform: scale(1.04); }
.news-top div { grid-column: 9 / span 4; display: grid; gap: 18px; }
.news-top h2 { font-size: clamp(40px, 4.6vw, 80px); }
@media (max-width: 1100px) { .phero h1.h1-long { font-size: 8.4vw; } }
@media (max-width: 900px) {
  .phero h1 { font-size: clamp(40px, 11vw, 96px); }
  .phero h1.h1-long { font-size: 9.4vw; }
  .contact__intro h1 { font-size: 11.5vw; }
  .contact__direct a { font-size: 7vw; }
  .news a { grid-template-columns: 96px minmax(0,1fr) 22px; }
  .news .thumb { width: 96px; }
  .news h3 { font-size: 22px; }
  .news-top figure, .news-top div { grid-column: 1 / -1; }
}
/* titres sur lignes imposées : la plus longue ligne tient toujours dans sa colonne */
.lines span { display: block; white-space: nowrap; }
.phero h1.lines { font-size: min(clamp(54px, 8.4vw, 150px), calc(66vw / (var(--len) * 0.5))); }
.contact__intro h1.lines { font-size: min(clamp(48px, 6vw, 104px), calc(46vw / (var(--len) * 0.5))); }
.phero__crumbs { right: var(--m); }
.phero__crumbs ol { flex-wrap: wrap; row-gap: 4px; }
@media (max-width: 900px) {
  .phero h1.lines { font-size: calc((100vw - 2 * var(--m)) / (var(--len) * 0.54)); }
  .contact__intro h1.lines { font-size: calc((100vw - 2 * var(--m)) / (var(--len) * 0.54)); }
  .phero__crumbs li:not(:first-child):not(:last-child) { display: none; }
}
.final { min-height: 72svh; }
.final > img { filter: blur(8px) brightness(.5) saturate(1.15); }
.places__list.five { grid-template-columns: repeat(5, 1fr); }
@media (max-width: 900px) { .places__list.five { grid-template-columns: 1fr 1fr; } }

/* formulaire : champ piège invisible, mention données, message d'erreur */
.hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form { position: relative; }
.form__note { margin-top: 14px; font-size: 13px; color: var(--grey); }
.form__err { display: none; margin-top: 16px; padding: 16px 18px; border: 1px solid var(--red); font-size: 15px; }
.form__err.is-on { display: block; }
.form .btn[disabled] { opacity: .6; cursor: progress; }

/* =====================================================================
   WordPress : délais, tailles de titre et petits réglages.
   Ils remplacent les attributs style="" que la politique de sécurité interdit.
   ===================================================================== */
[data-d="1"] { --d: 1; }
[data-d="2"] { --d: 2; }
[data-d="3"] { --d: 3; }
[data-d="4"] { --d: 4; }
[data-d="5"] { --d: 5; }
[data-d="6"] { --d: 6; }
[data-d="7"] { --d: 7; }
[data-d="8"] { --d: 8; }
[data-d="9"] { --d: 9; }
.lines[data-len="1"] { --len: 1; }
.lines[data-len="2"] { --len: 2; }
.lines[data-len="3"] { --len: 3; }
.lines[data-len="4"] { --len: 4; }
.lines[data-len="5"] { --len: 5; }
.lines[data-len="6"] { --len: 6; }
.lines[data-len="7"] { --len: 7; }
.lines[data-len="8"] { --len: 8; }
.lines[data-len="9"] { --len: 9; }
.lines[data-len="10"] { --len: 10; }
.lines[data-len="11"] { --len: 11; }
.lines[data-len="12"] { --len: 12; }
.lines[data-len="13"] { --len: 13; }
.lines[data-len="14"] { --len: 14; }
.lines[data-len="15"] { --len: 15; }
.lines[data-len="16"] { --len: 16; }
.lines[data-len="17"] { --len: 17; }
.lines[data-len="18"] { --len: 18; }
.lines[data-len="19"] { --len: 19; }
.lines[data-len="20"] { --len: 20; }
.lines[data-len="21"] { --len: 21; }
.lines[data-len="22"] { --len: 22; }
.lines[data-len="23"] { --len: 23; }
.lines[data-len="24"] { --len: 24; }
.lines[data-len="25"] { --len: 25; }
.lines[data-len="26"] { --len: 26; }
.lines[data-len="27"] { --len: 27; }
.lines[data-len="28"] { --len: 28; }
.lines[data-len="29"] { --len: 29; }
.lines[data-len="30"] { --len: 30; }
.lines[data-len="31"] { --len: 31; }
.lines[data-len="32"] { --len: 32; }
.lines[data-len="33"] { --len: 33; }
.lines[data-len="34"] { --len: 34; }
.lines[data-len="35"] { --len: 35; }
.lines[data-len="36"] { --len: 36; }
.lines[data-len="37"] { --len: 37; }
.lines[data-len="38"] { --len: 38; }
.lines[data-len="39"] { --len: 39; }
.lines[data-len="40"] { --len: 40; }
.lines[data-len="41"] { --len: 41; }
.lines[data-len="42"] { --len: 42; }
.lines[data-len="43"] { --len: 43; }
.lines[data-len="44"] { --len: 44; }
.lines[data-len="45"] { --len: 45; }
.lines[data-len="46"] { --len: 46; }
.lines[data-len="47"] { --len: 47; }
.lines[data-len="48"] { --len: 48; }
.lines[data-len="49"] { --len: 49; }
.lines[data-len="50"] { --len: 50; }
.lines[data-len="51"] { --len: 51; }
.lines[data-len="52"] { --len: 52; }
.lines[data-len="53"] { --len: 53; }
.lines[data-len="54"] { --len: 54; }
.lines[data-len="55"] { --len: 55; }
.lines[data-len="56"] { --len: 56; }
.lines[data-len="57"] { --len: 57; }
.lines[data-len="58"] { --len: 58; }
.lines[data-len="59"] { --len: 59; }
.lines[data-len="60"] { --len: 60; }
.u-mt12 { margin-top: 12px !important; }
.u-mt18 { margin-top: 18px !important; }
.u-mt20 { margin-top: 20px !important; }
.u-mt22 { margin-top: 22px !important; }
.u-mt28 { margin-top: 28px !important; }
.u-mb32 { margin-bottom: 32px !important; }
.u-mb40 { margin-bottom: 40px !important; }
.u-mi0 { margin-inline: 0 !important; }
.u-grey { color: var(--grey) !important; }
.u-m16-22 { margin: 16px 0 22px !important; }
.u-m18-26 { margin: 18px 0 26px !important; }
.u-m18-28 { margin: 18px 0 28px !important; }
.u-mtsec { margin-top: clamp(72px, 8vw, 128px) !important; }
.pos-haut { object-position: 50% 30% !important; }
.pos-bas { object-position: 50% 70% !important; }
.pos-gauche { object-position: 30% 50% !important; }
.pos-droite { object-position: 70% 50% !important; }
svg .sw24 { stroke-width: 2.4 !important; }
svg .sw12 { stroke-width: 1.2 !important; }
svg .sw10 { stroke-width: 1 !important; }
svg .sw05 { stroke-width: 0.5 !important; }
svg .fs65 { font-size: 6.5px !important; }

/* En-tête sans photo (pages de texte) */
.phero--plain { height: auto; min-height: 0; padding-top: clamp(190px, 20vw, 260px); background: var(--bg-2); }
.phero--plain::before { display: none; }

/* Texte libre et articles */
.prose { max-width: 760px; font-size: var(--t-body); line-height: 1.7; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-stretch: 62%; font-weight: 850; text-transform: uppercase; font-size: var(--d-m); line-height: 0.95; margin-top: 1.8em; }
.prose h3 { font-weight: 700; font-size: 1.25em; line-height: 1.3; margin-top: 1.6em; }
.prose h4 { font-weight: 700; margin-top: 1.4em; }
.prose a { color: var(--white); text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 4px; }
.prose a:hover { color: var(--red); }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose li + li { margin-top: .4em; }
.prose li::marker { color: var(--red); }
.prose img { max-width: 100%; height: auto; display: block; }
.prose figure { margin: 2em 0; }
.prose figcaption, .prose .wp-element-caption { color: var(--grey); font-size: 14px; margin-top: 10px; }
.prose blockquote { margin: 2em 0; padding-left: 22px; border-left: 3px solid var(--red); font-size: var(--t-lead); }
.prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
.prose th, .prose td { padding: 10px 8px; text-align: left; border-bottom: 1px solid rgba(245,243,238,.16); vertical-align: top; }
.prose hr { border: 0; height: 1px; background: rgba(245,243,238,.2); margin: 2.4em 0; }
.prose iframe, .prose video { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; }
.prose .wp-block-embed__wrapper { position: relative; }
.prose strong { font-weight: 700; }
.article { padding-block: clamp(64px, 7vw, 112px); }
.article__back { margin-top: clamp(40px, 5vw, 64px); }

/* Contenu placé hors d'une section */
main#contenu > p, main#contenu > h2, main#contenu > h3, main#contenu > ul, main#contenu > ol, main#contenu > figure { padding-inline: var(--m); max-width: calc(760px + 2 * var(--m)); margin-block: 1em; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
