/*
Theme Name: Circuit de Caen
Theme URI: https://www.circuit-caen.fr/
Author: Circuit de Caen
Description: Thème bloc sur mesure du Circuit de Caen (Démouville). Toutes les pages sont composées de blocs natifs, modifiables dans l'éditeur.
Version: 2.5.0
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: circuit-caen
*/

/* ---------- Socle WordPress (avant les règles du site : celles-ci gagnent à spécificité égale) ---------- */
:where(figure.wp-block-image) { margin: 0; }
figure.wp-block-table td, figure.wp-block-table th { border: 0; padding: 0; }
figure.wp-block-table thead, figure.wp-block-table tfoot { border: 0; }
:where(figure.wp-block-table) { margin: 0; }
figure.wp-block-table { overflow: visible; }
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
.wp-site-blocks { padding: 0; }

/* ============ Circuit de Caen — maquette accueil ============ */
:root {
  --rouge: #BC1823;
  --rouge-fonce: #94111A;
  --bleu: #284A5E;
  --asphalte: #284A5E;
  --carbone: #1F3C4D;
  --craie: #F6F3EE;
  --blanc: #FFFFFF;
  --gris: #5E6A73;
  --vert: #1FBF5B;
  --violet: #9B4DFF;
  --display: "Archivo", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, monospace;
  --gouttiere: clamp(16px, 4vw, 64px);
  --max: 1360px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--display);
  font-stretch: 100%;
  font-size: 17px;
  line-height: 1.55;
  color: var(--asphalte);
  background: var(--craie);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
h1, h2, h3, h4 { margin: 0; hyphens: none; text-wrap: balance; }
p { margin: 0; }
sup { line-height: 0; }
figure { margin: 0; }
/* -------- Typo partagée -------- */
h2 {
  font-size: clamp(36px, 5vw, 72px);
  font-weight: 900;
  font-stretch: 125%;
  font-style: italic;
  line-height: .95;
  letter-spacing: -.02em;
  text-transform: uppercase;
}
.secteur {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--rouge);
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}
.secteur::before { content: ""; width: 28px; height: 3px; background: currentColor; }
.secteur--clair { color: #fff; }
.surtitre {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
/* -------- Boutons -------- */
.bouton, .wp-block-button.bouton > .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 26px;
  font-family: var(--display);
  font-weight: 800;
  font-stretch: 112%;
  font-style: italic;
  font-size: 15px;
  letter-spacing: .02em;
  text-transform: uppercase;
  text-decoration: none;
  border: 2px solid transparent;
  border-radius: 0;
  clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
  cursor: pointer;
  transition: background .2s, color .2s, transform .2s;
  white-space: nowrap;
}
.bouton:hover, .wp-block-button.bouton > .wp-block-button__link:hover { transform: translateX(3px); }
.bouton--rouge, .wp-block-button.bouton--rouge > .wp-block-button__link { background: var(--rouge); color: #fff; }
.bouton--rouge:hover, .wp-block-button.bouton--rouge > .wp-block-button__link:hover { background: var(--rouge-fonce); }
.bouton--blanc, .wp-block-button.bouton--blanc > .wp-block-button__link { background: #fff; color: var(--rouge); }
.bouton--sombre, .wp-block-button.bouton--sombre > .wp-block-button__link { background: var(--asphalte); color: #fff; }
.bouton--contour, .wp-block-button.bouton--contour > .wp-block-button__link { background: transparent; color: var(--asphalte); border-color: var(--asphalte); clip-path: none; }
.bouton--contour:hover, .wp-block-button.bouton--contour > .wp-block-button__link:hover { background: var(--asphalte); color: #fff; }
.lien-fleche > a {
  font-weight: 800;
  font-stretch: 112%;
  font-style: italic;
  text-transform: uppercase;
  font-size: 14px;
  letter-spacing: .03em;
  text-decoration: none;
  border-bottom: 2px solid currentColor;
  padding-bottom: 3px;
}
.lien-fleche > a::after { content: " →"; }
.lien-fleche--clair > a { color: #fff; }
/* -------- Ticker -------- */

@keyframes defile { to { transform: translateX(-50%); } }
/* -------- En-tête -------- */
.entete {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 14px var(--gouttiere);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid #E1E5E8;
}
.entete__actions { display: flex; align-items: center; gap: 18px; }
.entete .bouton, .entete .wp-block-button.bouton > .wp-block-button__link { padding: 12px 22px; font-size: 14px; }
/* -------- Hero -------- */
.hero {
  position: relative;
  background: var(--rouge);
  color: #fff;
  min-height: min(860px, calc(100vh - 110px));
  padding: clamp(56px, 8vw, 120px) var(--gouttiere) 160px;
  display: flex;
  align-items: center;
}
.hero__photo {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 58%;
  clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%);
  overflow: hidden;
}
.hero__photo img[src] { width: 100%; height: 100%; object-fit: cover; object-position: 40% 50%; }
.hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(188,24,35,.35), transparent 40%); }
.hero__texte { position: relative; z-index: 2; max-width: 820px; }
.hero__texte .surtitre { margin-bottom: 22px; opacity: .9; }
.hero__titre {
  font-size: clamp(64px, 11.2vw, 196px);
  font-weight: 900;
  font-stretch: 125%;
  font-style: italic;
  line-height: .84;
  letter-spacing: -.035em;
  text-transform: uppercase;
  margin-left: -.04em;
  text-shadow: 0 6px 40px rgba(0,0,0,.18);
}
.hero__intro { max-width: 460px; margin-top: 32px; font-size: 19px; line-height: 1.5; color: rgba(255,255,255,.92); }
.hero__ctas { display: flex; align-items: center; gap: 28px; margin-top: 36px; flex-wrap: wrap; }
/* Carte chrono */
.chrono {
  position: absolute;
  z-index: 3;
  right: calc(var(--gouttiere) + 2%);
  top: 13%;
  width: 290px;
  padding: 20px 22px;
  background: rgba(14,19,23,.88);
  backdrop-filter: blur(12px);
  color: #fff;
  font-family: var(--mono);
  border-left: 4px solid var(--rouge);
  box-shadow: 0 30px 60px rgba(0,0,0,.35);
  transform: rotate(-2deg);
}
.chrono__tete { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #A9B4BB; display: flex; align-items: center; gap: 8px; }
.chrono__live { width: 8px; height: 8px; border-radius: 50%; background: var(--vert); box-shadow: 0 0 0 0 rgba(31,191,91,.6); animation: pouls 1.6s infinite; }

@keyframes pouls { 70% { box-shadow: 0 0 0 9px rgba(31,191,91,0); } 100% { box-shadow: 0 0 0 0 rgba(31,191,91,0); } }
.chrono__temps { font-size: 56px; font-weight: 800; line-height: 1.05; margin-top: 8px; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.chrono__ecart { color: var(--vert); font-weight: 800; font-size: 15px; }
.chrono__ecart small { color: #A9B4BB; font-weight: 400; font-size: 11px; margin-left: 6px; }
.chrono__secteurs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-top: 16px; }
.chrono__secteurs div { background: rgba(255,255,255,.07); padding: 8px; }
.chrono__secteurs small { display: block; font-size: 10px; color: #A9B4BB; }
.chrono__secteurs b { font-size: 14px; }
.vert { color: var(--vert); }
.violet { color: var(--violet); }
.chrono__pied { font-size: 11px; color: #A9B4BB; margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.12); }
/* Réservation rapide */
.resa-rapide {
  position: absolute;
  z-index: 4;
  left: var(--gouttiere);
  right: var(--gouttiere);
  bottom: -64px;
  max-width: var(--max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, .8fr) auto;
  background: #fff;
  color: var(--asphalte);
  box-shadow: 0 30px 70px rgba(14,19,23,.22);
}
.resa-rapide__champ { display: flex; flex-direction: column; justify-content: center; padding: 18px 26px; border-right: 1px solid #E1E5E8; min-width: 0; }
.resa-rapide__champ small { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--gris); margin-bottom: 4px; }
.resa-rapide select, .resa-rapide input {
  font: 700 18px/1.3 var(--display);
  border: 0; padding: 0; background: transparent; color: inherit; width: 100%;
  appearance: none; -webkit-appearance: none; outline: none; cursor: pointer;
}
.resa-rapide select { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23BC1823' stroke-width='2'/%3E%3C/svg%3E") right center / 12px no-repeat; padding-right: 22px; }
.pas-a-pas { display: flex; align-items: center; gap: 14px; }
.pas-a-pas button { width: 32px; height: 32px; border: 2px solid var(--asphalte); background: none; font: 800 18px/1 var(--display); cursor: pointer; }
.pas-a-pas button:hover { background: var(--asphalte); color: #fff; }
.pas-a-pas output { font: 800 22px var(--mono); min-width: 28px; text-align: center; }
.resa-rapide__go { clip-path: none; height: 100%; padding: 0 40px; font-size: 16px; }
/* -------- Chiffres -------- */
.chiffres {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  max-width: var(--max);
  margin: 0 auto;
  padding: 140px var(--gouttiere) 72px;
}
.chiffres__item { padding: 0 20px; border-left: 2px solid var(--asphalte); }
.chiffres__item b, .chiffres__val { display: block; font: 800 clamp(40px, 4.4vw, 64px)/1 var(--mono); letter-spacing: -.05em; }
.chiffres__item b small, .chiffres__val em { font-size: .38em; letter-spacing: 0; margin-left: 4px; color: var(--rouge); }
.chiffres__item span, .chiffres__lib { display: block; margin-top: 8px; font-size: 14px; color: var(--gris); }
/* -------- En-têtes de section -------- */
.tete-section { max-width: var(--max); margin: 0 auto; padding: 0 var(--gouttiere); }
.tete-section h2 + p { max-width: 560px; margin-top: 24px; color: #46525B; }
.tete-section--clair { color: #fff; }
.tete-section--ligne { display: flex; align-items: end; justify-content: space-between; gap: 24px; }
/* -------- Formules -------- */
.formules { padding: 64px 0 120px; }
.grille-depart {
  max-width: var(--max);
  margin: 72px auto 0;
  padding: 0 var(--gouttiere);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 28px;
  align-items: end;
}
.kart { position: relative; background: #fff; box-shadow: 0 1px 0 #E1E5E8; display: flex; flex-direction: column; }
.kart__pos {
  position: absolute; z-index: 2; top: -30px; left: 20px;
  font: 900 italic 64px/1 var(--display); font-stretch: 125%;
  color: var(--asphalte);
  -webkit-text-stroke: 0;
}
.kart__pos { -webkit-text-stroke: 8px var(--craie); paint-order: stroke fill; }
.kart--p1 .kart__pos { color: var(--rouge); font-size: 84px; top: -42px; }
.kart__photo { aspect-ratio: 4 / 3; overflow: hidden; }
.kart--p1 .kart__photo { aspect-ratio: 4 / 3.6; }
.kart__photo img[src] { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.kart:hover .kart__photo img[src] { transform: scale(1.05); }
.kart__corps { padding: 26px 26px 28px; display: flex; flex-direction: column; gap: 18px; }
.kart__badge { position: absolute; top: 18px; right: 18px; background: var(--rouge); color: #fff; font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .08em; padding: 6px 10px; }
.kart h3 { font-size: 26px; font-weight: 900; font-stretch: 118%; font-style: italic; text-transform: uppercase; letter-spacing: -.01em; line-height: 1; }
.kart--p1 h3 { font-size: 32px; }
.kart__fiche { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-weight: 600; font-size: 15px; }
.kart__fiche li { white-space: nowrap; }
.kart__fiche small, .kart__fiche em { display: block; font: 600 10px var(--mono); text-transform: uppercase; letter-spacing: .08em; color: var(--gris); }
.kart__prix { display: flex; align-items: flex-start; gap: 8px; border-top: 1px solid #E1E5E8; padding-top: 16px; }
.kart__prix b, .kart__prix__val { font: 800 60px/0.9 var(--mono); letter-spacing: -.06em; }
.kart--p1 .kart__prix b, .kart--p1 .kart__prix__val { color: var(--rouge); font-size: 76px; }
.kart__prix span, .kart__prix__lib { font: 600 13px/1.3 var(--mono); color: var(--gris); padding-top: 4px; }
.kart .bouton, .kart .wp-block-button.bouton > .wp-block-button__link { align-self: flex-start; }
.kart--p1 { box-shadow: 0 40px 80px rgba(14,19,23,.16); }
/* -------- Vibreur -------- */
.vibreur {
  height: 22px;
  background: repeating-linear-gradient(120deg, var(--rouge) 0 48px, #fff 48px 96px);
}
/* -------- Challenges -------- */
.challenges {
  background: var(--asphalte);
  color: #fff;
  padding: 120px var(--gouttiere) 140px;
  display: grid;
  gap: 88px;
}
.challenges > * { width: 100%; max-width: var(--max); margin: 0 auto; }
.challenges__titre h2 { font-size: clamp(44px, 6.2vw, 100px); line-height: .9; letter-spacing: -.03em; text-wrap: wrap; }
.challenges__titre h2 span { color: var(--rouge); }
.challenges__duo { display: grid; gap: 96px; }
.defi { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; }
.defi--inverse { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
.defi__photo { aspect-ratio: 5 / 4; overflow: hidden; }
.defi__photo img[src] { width: 100%; height: 100%; object-fit: cover; }
.defi__texte { background: var(--carbone); padding: 44px 40px; margin-left: -72px; position: relative; z-index: 2; border-top: 4px solid var(--rouge); }
.defi--inverse .defi__photo { order: 2; }
.defi--inverse .defi__texte { margin-left: 0; margin-right: -72px; }
.defi h3 { font-size: 32px; font-weight: 900; font-stretch: 120%; font-style: italic; text-transform: uppercase; line-height: 1; margin-bottom: 16px; }
.defi__texte > p { color: #B8C2C8; }
.deroule { list-style: none; padding: 0; margin: 26px 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1px; background: rgba(255,255,255,.1); }
.deroule li { background: var(--carbone); padding: 12px 14px 12px 0; font-size: 14px; color: #C9D1D6; }
.deroule b, .deroule strong { display: block; font: 800 24px/1.1 var(--mono); color: #fff; }
.defi__prix { font-family: var(--mono); font-size: 14px; color: #A9B4BB; }
.defi__prix b, .defi__prix strong { color: #fff; font-size: 22px; }
/* -------- Groupe -------- */
.groupe {
  background: var(--rouge);
  color: #fff;
  padding: 120px var(--gouttiere);
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 80px;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.groupe::before {
  content: "8×30€";
  position: absolute;
  right: -2vw; bottom: -6vw;
  font: 800 22vw/1 var(--mono);
  letter-spacing: -.08em;
  color: rgba(0,0,0,.09);
  pointer-events: none;
}
.groupe .secteur { color: #fff; }
.groupe h2 em { font-style: italic; color: var(--asphalte); display: block; margin-top: 8px; }
.groupe__texte > p { margin-top: 26px; max-width: 520px; font-size: 19px; color: rgba(255,255,255,.92); }
.onglets { margin-top: 40px; max-width: 560px; }
.onglets__liste { display: flex; gap: 0; border-bottom: 2px solid rgba(255,255,255,.3); }
.onglets__btn {
  background: none; border: 0; color: rgba(255,255,255,.7);
  font: 800 italic 15px var(--display); font-stretch: 112%; text-transform: uppercase;
  padding: 14px 20px 14px 0; margin-right: 20px; cursor: pointer; position: relative;
}
.onglets__btn.est-actif { color: #fff; }
.onglets__btn.est-actif::after { content: ""; position: absolute; left: 0; right: 20px; bottom: -2px; height: 4px; background: var(--asphalte); }
.onglets__panneau { display: none; padding-top: 20px; font-size: 17px; line-height: 1.6; }
.onglets__panneau.est-actif { display: block; }
.groupe__ecran { position: relative; justify-self: center; z-index: 1; }
.telephone {
  width: 340px;
  background: var(--asphalte);
  border-radius: 44px;
  padding: 14px;
  box-shadow: 0 50px 100px rgba(0,0,0,.35);
  transform: rotate(3deg);
}
.telephone__barre { display: flex; justify-content: space-between; padding: 6px 22px 10px; color: #fff; font: 600 12px var(--mono); }
.suivi { background: #fff; color: var(--asphalte); border-radius: 32px; padding: 26px 22px 22px; }
.suivi__session { font-size: 13px; color: var(--gris); }
.suivi__session b, .suivi__session strong { color: var(--asphalte); font-size: 16px; }
.suivi__total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 18px; font-family: var(--mono); }
.suivi__total span, .suivi__total__lib { font-weight: 800; font-size: 22px; letter-spacing: -.03em; }
.suivi__total b, .suivi__total__val { font-size: 12px; color: var(--vert); }
.suivi__jauge { height: 6px; background: #E9ECEE; margin-top: 10px; }
.suivi__jauge i { display: block; height: 100%; background: var(--vert); }
.suivi__liste { list-style: none; margin: 16px 0; padding: 0; }
.suivi__liste li { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid #EEF0F2; font-weight: 700; font-size: 15px; }
.suivi__liste em { margin-left: auto; font: normal 600 11px var(--mono); text-transform: uppercase; letter-spacing: .05em; }
.avatar, .suivi__liste li strong { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font: 800 11px var(--mono); background: var(--craie); }
.suivi__liste .ok em { color: var(--vert); }
.suivi__liste .attente em { color: #E08A00; }
.suivi__liste .attente .avatar, .suivi__liste .attente strong { background: #FFF1DA; }
.suivi__liste .invite { color: var(--gris); }
.suivi__liste .invite em { color: var(--rouge); }
.suivi__liste .invite .avatar, .suivi__liste .invite strong { border: 2px dashed #C4CBD0; background: none; }
.suivi__relance { width: 100%; padding: 14px; background: var(--asphalte); color: #fff; border: 0; border-radius: 14px; font: 800 italic 14px var(--display); text-transform: uppercase; cursor: pointer; }
.groupe__bulle {
  position: absolute; left: -120px; bottom: 90px;
  background: #fff; color: var(--asphalte);
  padding: 14px 18px; font-size: 14px;
  box-shadow: 0 20px 40px rgba(0,0,0,.2);
  border-left: 4px solid var(--vert);
  transform: rotate(-3deg);
  max-width: 230px;
}
/* -------- Espace pilote -------- */
.espace {
  max-width: var(--max);
  margin: 0 auto;
  padding: 140px var(--gouttiere);
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 88px;
  align-items: center;
}
.espace h2 { font-size: clamp(34px, 4.2vw, 60px); }
.espace__texte > p:not(.secteur) { margin-top: 24px; color: #46525B; max-width: 500px; }
.coches { list-style: none; padding: 0; margin: 28px 0 36px; display: grid; gap: 12px; }
.coches li { display: flex; gap: 14px; font-weight: 600; }
.coches li::before { content: ""; flex: none; width: 20px; height: 20px; margin-top: 3px; background: var(--rouge); clip-path: polygon(14% 52%, 0 66%, 38% 100%, 100% 22%, 86% 8%, 38% 72%); }
.tableau {
  background: var(--asphalte);
  color: #fff;
  padding: 28px;
  font-family: var(--mono);
  box-shadow: 0 40px 90px rgba(14,19,23,.25);
  position: relative;
}
.tableau::after { content: ""; position: absolute; inset: 24px -24px -24px 24px; border: 2px solid var(--rouge); z-index: -1; }
.tableau__tete { font-size: 12px; color: #8E9AA2; display: flex; gap: 10px; flex-wrap: wrap; }
.tableau__tete b, .tableau__tete strong { color: #fff; }
.tableau__record { display: flex; justify-content: space-between; align-items: flex-end; margin-top: 26px; gap: 20px; }
.tableau__record small, .tableau__lib { display: block; font-size: 11px; color: #8E9AA2; text-transform: uppercase; letter-spacing: .08em; }
.tableau__record > div:first-child b, .tableau__perso .tableau__val { font-size: clamp(56px, 6vw, 88px); font-weight: 800; letter-spacing: -.05em; line-height: 1; color: var(--vert); }
.tableau__rang { text-align: right; }
.tableau__rang b, .tableau__rang .tableau__val { font-size: 40px; font-weight: 800; }
.tableau__rang span, .tableau__rang .tableau__val em { color: #8E9AA2; font-size: 14px; }
.tableau__courbe { width: 100%; height: 130px; margin: 24px 0 8px; display: block; }
.tableau__sessions, figure.tableau__sessions table { width: 100%; border-collapse: collapse; font-size: 13px; }
figure.tableau__sessions th { text-align: left; color: #8E9AA2; font-weight: 400; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
figure.tableau__sessions td { padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.07); }
figure.tableau__sessions td:nth-child(3) { font-weight: 800; }
/* -------- Pistes -------- */
.pistes { background: var(--bleu); color: #fff; padding: 120px 0; }
.pistes__liste {
  max-width: var(--max);
  margin: 64px auto 0;
  padding: 0 var(--gouttiere);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}
.piste { padding: 0 36px 0 0; margin-right: 36px; border-right: 1px solid rgba(255,255,255,.18); }
.piste:last-child { border: 0; margin: 0; }
.piste svg { width: 100%; height: auto; max-width: 280px; margin-bottom: 28px; overflow: visible; }
.piste svg path { fill: none; stroke: #fff; stroke-width: 7; stroke-linejoin: round; }
.piste svg rect { fill: var(--rouge); }
.piste h3 { font-size: 34px; font-weight: 900; font-stretch: 122%; font-style: italic; text-transform: uppercase; line-height: 1; }
.piste__data { font-family: var(--mono); font-size: 14px; color: #BFD0DA; margin: 10px 0 14px; }
.piste__data b, .piste__data strong { color: #fff; }
.piste > p:last-child { color: #D6E0E6; }
.piste--privee svg path { stroke-dasharray: 2 14; stroke-linecap: round; }
/* -------- Entreprises -------- */
.entreprises { position: relative; padding: 0 var(--gouttiere) 0 0; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); align-items: center; margin: 0 0 120px; }
.entreprises__photo { height: 760px; overflow: hidden; }
.entreprises__photo img[src] { width: 100%; height: 100%; object-fit: cover; }
.entreprises__carte { background: #fff; padding: 56px 52px; margin-left: -180px; position: relative; z-index: 2; box-shadow: 0 40px 90px rgba(14,19,23,.18); border-top: 6px solid var(--rouge); }
.entreprises__carte h2 { font-size: clamp(32px, 3.4vw, 50px); }
.entreprises__liste { list-style: none; padding: 0; margin: 32px 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 28px; }
.entreprises__liste b, .entreprises__liste strong { display: block; font-weight: 900; font-stretch: 115%; font-style: italic; text-transform: uppercase; font-size: 16px; margin-bottom: 4px; }
.entreprises__liste li { font-size: 15px; color: #46525B; border-top: 2px solid var(--asphalte); padding-top: 12px; }
.entreprises__ctas { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
/* -------- Galerie -------- */
.galerie { padding: 0 0 120px; }
.galerie__tete { gap: 16px; max-width: var(--max); margin: 0 auto 40px; padding: 0 var(--gouttiere); display: flex; justify-content: space-between; align-items: end; }
.galerie__bande { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 0.7fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: 12px; height: 440px; padding: 0 12px; }
.galerie__bande figure { overflow: hidden; }
.galerie__bande figure:nth-child(even) { margin-top: 60px; }
.galerie__bande figure:nth-child(3) { margin-bottom: 60px; }
.galerie__bande img[src] { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.galerie__bande figure:hover img[src] { transform: scale(1.06); }
/* -------- Actus -------- */
.actus { max-width: var(--max); margin: 0 auto; padding: 0 0 140px; }
.actus__liste { margin-top: 40px; padding: 0 var(--gouttiere); display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); grid-template-rows: repeat(3, auto); gap: 0 56px; }
.actu { padding: 24px 0; border-top: 2px solid var(--asphalte); }
.actu--une { grid-row: span 3; border: 0; padding: 0; }
.actu--une figure { aspect-ratio: 16 / 10; overflow: hidden; margin-bottom: 22px; }
.actu--une img[src] { width: 100%; height: 100%; object-fit: cover; }
.actu__meta { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .08em; color: var(--rouge); margin-bottom: 8px; }
.actu h3 { font-size: 21px; font-weight: 800; line-height: 1.2; }
.actu--une h3 { font-size: clamp(26px, 2.6vw, 36px); font-weight: 900; font-stretch: 110%; font-style: italic; letter-spacing: -.01em; }
/* -------- Final -------- */
.final { position: relative; background: var(--rouge); color: #fff; min-height: 520px; display: flex; align-items: center; overflow: hidden; padding: 80px var(--gouttiere); }
.final__photo { position: absolute; right: 0; top: 0; height: 100%; width: 50%; object-fit: cover; clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%); }
.final__texte { position: relative; z-index: 2; }
.final h2 { font-size: clamp(72px, 13vw, 220px); line-height: .85; letter-spacing: -.04em; }
.final p { font-family: var(--mono); font-size: 16px; margin: 22px 0 30px; }
/* -------- Pied -------- */
.pied { background: var(--asphalte); color: #C9D1D6; padding: 88px var(--gouttiere) 28px; overflow: hidden; }
.pied__haut { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); gap: 48px; max-width: var(--max); margin: 0 auto; }
.pied__marque img[src] { width: 160px; height: auto; }
.pied__marque p { margin-top: 20px; max-width: 320px; font-size: 15px; }
.pied h4, .pied .pied__titre { font: 600 12px var(--mono); font-style: normal; font-stretch: 100%; line-height: 1.4; text-transform: uppercase; letter-spacing: .1em; color: #fff; margin-bottom: 14px; }
.pied__col p { font-size: 15px; line-height: 1.8; margin-bottom: 14px; }
.pied a { text-decoration: none; }
.pied a:hover { color: #fff; }
.pied__geant {
  font: 900 italic clamp(40px, 8.4vw, 150px)/0.9 var(--display);
  font-stretch: 125%;
  text-transform: uppercase;
  letter-spacing: -.04em;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(255,255,255,.2);
  white-space: nowrap;
  margin: 72px 0 24px;
  text-align: center;
}
.pied__bas { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; max-width: var(--max); margin: 0 auto; border-top: 1px solid rgba(255,255,255,.12); padding-top: 22px; }
/* ============ Pages internes ============ */

/* -------- Navigation active + menu mobile -------- */
/* -------- Hero de page -------- */
.phero {
  position: relative;
  background: var(--rouge);
  color: #fff;
  min-height: 560px;
  padding: 88px var(--gouttiere) 96px;
  display: flex; align-items: flex-end;
  overflow: hidden;
}
.phero--sombre { background: var(--asphalte); }
.phero--compact { min-height: 440px; }
.phero--mini { min-height: 0; padding: 64px var(--gouttiere) 56px; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.phero__texte { position: relative; z-index: 2; max-width: 760px; }
.fil { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .08em; margin-bottom: 18px; opacity: .85; }
.fil a { text-decoration: none; }
.fil a:hover { text-decoration: underline; }
.phero__titre {
  font-size: clamp(56px, 9.4vw, 160px);
  font-weight: 900; font-stretch: 125%; font-style: italic;
  line-height: .86; letter-spacing: -.035em; text-transform: uppercase;
  margin-left: -.04em;
  hyphens: manual;
}
.phero--mini .phero__titre { font-size: clamp(48px, 6.4vw, 104px); }
.phero__intro { max-width: 480px; margin-top: 26px; font-size: 19px; color: rgba(255,255,255,.92); }
.phero__photo { position: absolute; top: 0; right: 0; bottom: 0; width: 50%; clip-path: polygon(24% 0, 100% 0, 100% 100%, 0 100%); }
.phero__photo img[src] { width: 100%; height: 100%; object-fit: cover; }
.phero--sombre .phero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,19,23,.5), transparent 45%); }
/* -------- Récit (Le Circuit) -------- */
.recit { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere) 40px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 88px; align-items: center; }
.recit h2 { font-size: clamp(36px, 4.4vw, 64px); }
.recit__chapeau { font-size: 22px; line-height: 1.45; font-weight: 600; margin: 28px 0 20px; }
.recit__texte > p:last-child { color: #46525B; }
.recit__visuel { position: relative; }
.recit__photo { aspect-ratio: 4 / 5; overflow: hidden; }
.recit__photo img[src] { width: 100%; height: 100%; object-fit: cover; }
.recit__label { position: absolute; left: -56px; bottom: 48px; background: var(--rouge); color: #fff; padding: 22px 26px; max-width: 260px; box-shadow: 0 30px 60px rgba(188,24,35,.35); transform: rotate(-3deg); }
.recit__label b, .recit__label__val { display: block; font: 900 italic 44px/1 var(--display); font-stretch: 125%; }
.recit__label span, .recit__label__lib { font-size: 14px; }
.chiffres--plein { padding-top: 96px; }
/* -------- Équipements -------- */
.equipements { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere); }
.equipements__liste { list-style: none; padding: 0; margin: 56px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--asphalte); }
.equipements__liste li { padding: 28px 28px 32px 0; border-bottom: 1px solid #D5DBDF; color: #46525B; }
.equipements__liste li:not(:nth-child(3n)) { border-right: 1px solid #D5DBDF; margin-right: 28px; }
.equipements__num { display: block; font: 800 14px var(--mono); color: var(--rouge); margin-bottom: 16px; }
.equipements__liste b, .equipements__liste strong { display: block; font: 900 italic 22px/1.1 var(--display); font-stretch: 118%; text-transform: uppercase; color: var(--asphalte); margin-bottom: 8px; }
/* -------- Sécurité / salle (bandes sombres photo + texte) -------- */
.securite, .salle { background: var(--asphalte); color: #fff; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; }
.securite__photo, .salle__photo { min-height: 600px; overflow: hidden; }
.securite__photo img[src], .salle__photo img[src] { width: 100%; height: 100%; object-fit: cover; }
.securite__texte, .salle__texte { padding: 96px var(--gouttiere) 96px 80px; align-self: center; }
.securite h2, .salle h2 { font-size: clamp(32px, 3.6vw, 54px); }
.coches--clair li { color: #E3E8EB; }
.securite__note { color: #A9B4BB; font-size: 15px; border-left: 3px solid var(--rouge); padding-left: 16px; }
.salle { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
.salle__photo { order: 2; }
/* -------- Profils (Activités) -------- */
.profils { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere) 64px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 64px; align-items: start; }
.profils .tete-section { padding: 0; margin: 0; }
.profils__corps { margin-top: 0; max-width: none; }
.onglets--sombre .onglets__liste { border-bottom-color: #D5DBDF; flex-wrap: wrap; }
.onglets--sombre .onglets__btn { color: var(--gris); }
.onglets--sombre .onglets__btn.est-actif { color: var(--asphalte); }
.onglets--sombre .onglets__btn.est-actif::after { background: var(--rouge); }
.profil { background: #fff; padding: 40px; margin-top: 28px; border-left: 6px solid var(--rouge); box-shadow: 0 30px 60px rgba(14,19,23,.08); }
.profil__reco { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .08em; color: var(--rouge); }
.profil h3 { font: 900 italic clamp(30px, 3vw, 44px)/1 var(--display); font-stretch: 122%; text-transform: uppercase; margin: 10px 0 16px; }
.profil p:not(.profil__reco) { color: #46525B; margin-bottom: 26px; max-width: 520px; }
/* -------- Grille d'activités -------- */
.activites { max-width: var(--max); margin: 0 auto; padding: 40px var(--gouttiere) 120px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.activite { background: #fff; display: flex; flex-direction: column; }
.activite figure { aspect-ratio: 4 / 3; overflow: hidden; }
.activite img[src] { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.activite:hover img[src] { transform: scale(1.05); }
.activite__texte { padding: 26px 26px 30px; display: flex; flex-direction: column; gap: 10px; flex: 1; align-items: flex-start; }
.activite__texte > p:not(.activite__meta) { color: #46525B; flex: 1; }
.activite__meta { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--rouge); }
.activite h3 { font: 900 italic 26px/1 var(--display); font-stretch: 118%; text-transform: uppercase; }
.activite--large { grid-column: span 2; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.activite--large figure { aspect-ratio: auto; min-height: 380px; }
.activite--large h3 { font-size: 48px; }
.activite--large .activite__texte { justify-content: flex-end; padding: 36px; }
.activite--rouge { background: var(--rouge); color: #fff; }
.activite--rouge .activite__texte { justify-content: flex-end; padding: 36px 30px; }
.activite--rouge .activite__meta { color: #fff; opacity: .8; }
.activite--rouge .activite__texte > p:not(.activite__meta) { color: rgba(255,255,255,.9); flex: 0; margin-bottom: 12px; }
.activite--rouge h3 { font-size: 40px; }
/* -------- Étapes (Karting) -------- */
.formules--page { padding-top: 120px; }
.etapes { background: var(--bleu); color: #fff; padding: 120px 0; }
.etapes__liste { list-style: none; max-width: var(--max); margin: 64px auto 0; padding: 0 var(--gouttiere); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; counter-reset: e; }
.etapes__liste li { position: relative; padding: 0 24px 0 0; color: #D6E0E6; font-size: 15px; }
.etapes__liste li::before { content: ""; position: absolute; left: 0; right: 0; top: 30px; height: 3px; background: rgba(255,255,255,.2); }
.etapes__liste li:first-child::before { background: var(--rouge); }
.etapes__liste span, .etapes__liste em { position: relative; display: inline-block; font: 800 40px/1 var(--mono); color: #fff; background: var(--bleu); padding-right: 14px; margin-bottom: 22px; }
.etapes__liste b, .etapes__liste strong { display: block; font: 900 italic 22px/1.1 var(--display); font-stretch: 118%; text-transform: uppercase; color: #fff; margin-bottom: 8px; }
/* -------- Conditions, tableaux clairs -------- */
.conditions { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere); display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 88px; }
.conditions h2 { font-size: clamp(34px, 4vw, 56px); margin-bottom: 36px; }
.conditions h3 { font: 900 italic 24px/1.1 var(--display); font-stretch: 118%; text-transform: uppercase; margin-bottom: 18px; }
.conditions__col:last-child { padding-top: 64px; }
.conditions__col:last-child p { color: #46525B; }
.conditions__note { margin-top: 20px; font-size: 15px; color: #46525B; }
.conditions p + h3 { margin-top: 32px; }
.tableau-clair, figure.tableau-clair table { width: 100%; border-collapse: collapse; font-size: 16px; }
figure.tableau-clair th { text-align: left; font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .08em; color: var(--gris); padding: 12px 16px 12px 0; border-bottom: 2px solid var(--asphalte); }
figure.tableau-clair td { padding: 16px 16px 16px 0; border-bottom: 1px solid #D5DBDF; font-weight: 600; }
figure.tableau-clair td:first-child { font: 900 italic 18px var(--display); font-stretch: 115%; text-transform: uppercase; }
.tableau-clair--large tbody th, .tableau-clair--large tbody td:first-child { text-align: left; font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--gris); border-bottom: 1px solid #D5DBDF; padding: 16px 16px 16px 0; }
.tableau-clair--large td:first-child { font: inherit; font-weight: 600; text-transform: none; }
figure.tableau-clair .prix, figure.tableau-clair em { font: 800 24px var(--mono); color: var(--rouge); }
/* -------- FAQ -------- */
.faq { max-width: var(--max); margin: 0 auto; padding: 0 var(--gouttiere) 120px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 64px; }
.faq .tete-section { padding: 0; margin: 0; }
.faq__liste { overflow-x: clip; }
.faq__liste details { border-top: 2px solid var(--asphalte); }
.faq__liste details:last-child { border-bottom: 2px solid var(--asphalte); }
.faq__liste summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; padding: 22px 0; font: 800 19px/1.3 var(--display); }
.faq__liste summary::-webkit-details-marker { display: none; }
.faq__liste summary::after { content: "+"; font: 800 24px/1 var(--mono); color: var(--rouge); transition: transform .2s; }
.faq__liste details[open] summary::after { transform: rotate(45deg); }
.faq__liste details p { padding: 0 48px 24px 0; color: #46525B; }
/* -------- Comparatif (Challenges) -------- */
.comparatif { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere); }
.comparatif__table { margin-top: 48px; overflow-x: auto; }
.comparatif thead th:not(:first-child) { font: 900 italic 20px var(--display); font-stretch: 118%; text-transform: uppercase; color: var(--asphalte); letter-spacing: 0; }
.inclus { list-style: none; padding: 0; margin: 56px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.inclus li { background: var(--asphalte); color: #C9D1D6; padding: 24px; font-size: 15px; }
.inclus b, .inclus strong { display: block; color: #fff; font: 900 italic 20px var(--display); font-stretch: 118%; text-transform: uppercase; margin-bottom: 6px; }
/* -------- Offres (Entreprises) -------- */
.offres { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere); }
.offres__liste { margin-top: 56px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.offre { background: #fff; padding: 32px 28px; display: flex; flex-direction: column; gap: 12px; border-top: 4px solid var(--asphalte); }
.offre p:not(.offre__duree):not(.offre__pour) { color: #46525B; flex: 1; }
.offre__duree { font: 800 40px/1 var(--mono); letter-spacing: -.04em; color: var(--rouge); }
.offre h3 { font: 900 italic 24px/1.05 var(--display); font-stretch: 118%; text-transform: uppercase; }
.offre__pour { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--gris); border-top: 1px solid #E1E5E8; padding-top: 14px; }
.offre--phare { background: var(--rouge); color: #fff; border-color: var(--rouge); transform: translateY(-24px); box-shadow: 0 40px 80px rgba(188,24,35,.3); }
.offre--phare .offre__duree, .offre--phare p:not(.offre__duree):not(.offre__pour), .offre--phare .offre__pour { color: #fff; }
.offre--phare .offre__pour { border-color: rgba(255,255,255,.3); }
/* -------- Formulaires -------- */
.devis { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 80px; }
.devis h2 { font-size: clamp(36px, 4.4vw, 64px); }
.devis__intro > p:not(.secteur) { margin-top: 22px; color: #46525B; }
.devis__tel { font-weight: 700; }
.devis__tel a { color: var(--rouge); font-family: var(--mono); }
.formulaire { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px 20px; align-content: start; }
.formulaire label { display: flex; flex-direction: column; gap: 6px; }
.formulaire small { font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .08em; color: var(--gris); }
.formulaire input, .formulaire select, .formulaire textarea {
  font: 500 16px/1.4 var(--display); color: var(--asphalte);
  background: #fff; border: 2px solid #D5DBDF; border-radius: 0; padding: 14px 16px;
  outline: none; transition: border-color .2s; width: 100%;
}
.formulaire input:focus, .formulaire select:focus, .formulaire textarea:focus { border-color: var(--asphalte); }
.formulaire__large { grid-column: 1 / -1; }
.formulaire .bouton, .formulaire .wp-block-button.bouton > .wp-block-button__link { justify-self: start; }
.formulaire--carte { background: #fff; padding: 44px; box-shadow: 0 40px 90px rgba(14,19,23,.12); border-top: 6px solid var(--rouge); }
.formulaire--carte h2 { grid-column: 1 / -1; font-size: clamp(32px, 3.4vw, 48px); margin-bottom: 8px; }
/* -------- Tarifs -------- */
.grille-tarifs { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere) 64px; display: grid; gap: 28px; }
.bloc-tarif { background: #fff; padding: 48px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 56px; align-items: center; }
.bloc-tarif__tete h2 { font-size: clamp(36px, 4vw, 56px); }
.bloc-tarif__tete > p:last-child { color: var(--gris); margin-top: 10px; }
.bloc-tarif--sombre { background: var(--asphalte); color: #fff; }
.bloc-tarif--sombre .bouton, .bloc-tarif--sombre .wp-block-button.bouton > .wp-block-button__link { justify-self: end; }
.ligne-prix { list-style: none; margin: 0; padding: 0; }
.ligne-prix li, .ligne-prix__ligne { display: flex; align-items: baseline; gap: 16px; padding: 18px 0; border-bottom: 1px solid #E1E5E8; }
.ligne-prix li:last-child, .ligne-prix__ligne:last-child { border-bottom: 0; }
.ligne-prix__nom b, .ligne-prix__titre { display: block; font: 900 italic 22px var(--display); font-stretch: 118%; text-transform: uppercase; }
.ligne-prix__nom small, .ligne-prix__detail { color: var(--gris); font-size: 14px; }
.ligne-prix__pointilles { flex: 1; border-bottom: 2px dotted #C4CBD0; transform: translateY(-6px); }
.ligne-prix__montant { font: 800 40px/1 var(--mono); letter-spacing: -.04em; white-space: nowrap; }
.ligne-prix__montant small, .ligne-prix__montant em { font-size: 14px; color: var(--gris); letter-spacing: 0; }
.ligne-prix--phare .ligne-prix__montant { color: var(--rouge); }
.paiement { max-width: var(--max); margin: 0 auto; padding: 0 var(--gouttiere) 120px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.paiement div { border-top: 2px solid var(--asphalte); padding-top: 20px; }
.paiement h3 { font: 900 italic 20px var(--display); font-stretch: 118%; text-transform: uppercase; margin-bottom: 8px; }
.paiement p { color: #46525B; font-size: 15px; }
/* -------- Galerie -------- */
.mur { padding: 64px 12px 120px; }
.mur__filtres { max-width: var(--max); margin: 0 auto 32px; padding: 0 calc(var(--gouttiere) - 12px); display: flex; gap: 10px; flex-wrap: wrap; }
.filtre { background: none; border: 2px solid var(--asphalte); padding: 10px 20px; font: 800 italic 14px var(--display); font-stretch: 112%; text-transform: uppercase; cursor: pointer; }
.filtre.est-actif, .filtre:hover { background: var(--asphalte); color: #fff; }
.mur__grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 280px; grid-auto-flow: dense; gap: 12px; }
.mur__item { overflow: hidden; }
.mur__item img[src] { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.mur__item:hover img[src] { transform: scale(1.05); }
.mur__item--haut { grid-row: span 2; }
.mur__item--large { grid-column: span 2; }
.mur__item.est-cache { display: none; }
/* -------- Actualités -------- */
.journal { max-width: var(--max); margin: 0 auto; padding: 88px var(--gouttiere) 120px; }
.journal__une { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; margin-bottom: 88px; }
.journal__une figure { aspect-ratio: 16 / 10; overflow: hidden; }
.journal__une img[src] { width: 100%; height: 100%; object-fit: cover; }
.journal__une-texte { background: #fff; padding: 48px; margin-left: -96px; position: relative; box-shadow: 0 40px 90px rgba(14,19,23,.14); border-top: 6px solid var(--rouge); }
.journal__une h2 { font-size: clamp(26px, 2.6vw, 38px); line-height: 1.05; text-transform: none; }
.journal__une-texte > p:not(.actu__meta) { color: #46525B; margin: 18px 0 24px; }
.journal__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 28px; }
.carte-actu figure { aspect-ratio: 4 / 3; overflow: hidden; margin-bottom: 18px; }
.carte-actu img[src] { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.carte-actu:hover img[src] { transform: scale(1.05); }
.carte-actu h3 { font-size: 21px; font-weight: 800; line-height: 1.25; }
/* -------- Contact -------- */
.contact { max-width: var(--max); margin: 0 auto; padding: 96px var(--gouttiere) 120px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 80px; align-items: start; }
.contact__tel, .contact__tel a { display: block; font: 800 clamp(40px, 5vw, 72px)/1 var(--mono); letter-spacing: -.05em; color: var(--rouge); text-decoration: none; }
.contact__mail, .contact__mail a { display: inline-block; margin-top: 14px; font-size: 22px; font-weight: 700; }
.contact__bloc { margin-top: 48px; border-top: 2px solid var(--asphalte); padding-top: 22px; }
.contact__bloc h3 { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .1em; color: var(--gris); margin-bottom: 12px; }
.contact__bloc > p:first-of-type { font: 900 italic 28px/1.15 var(--display); font-stretch: 115%; text-transform: uppercase; }
.contact__acces { color: #46525B; margin: 12px 0 22px; }
.horaires, figure.horaires table { width: 100%; border-collapse: collapse; }
figure.horaires th, figure.horaires td:first-child { text-align: left; font-weight: 600; padding: 10px 0; border-bottom: 1px solid #D5DBDF; }
figure.horaires td, figure.horaires td:last-child { text-align: right; font: 600 15px var(--mono); padding: 10px 0; border-bottom: 1px solid #D5DBDF; }
/* -------- Réservation -------- */
.progression { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; position: relative; z-index: 2; }
.progression li { display: flex; align-items: center; gap: 10px; padding: 12px 18px 12px 12px; background: rgba(255,255,255,.08); font: 700 13px var(--display); text-transform: uppercase; color: #8E9AA2; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%); }
.progression span { width: 26px; height: 26px; display: grid; place-items: center; font: 800 12px var(--mono); border: 2px solid currentColor; }
.progression .fait { color: #fff; }
.progression .fait span { background: var(--vert); border-color: var(--vert); color: var(--asphalte); }
.progression .actif { background: var(--rouge); color: #fff; }
.resa { max-width: var(--max); margin: 0 auto; padding: 72px var(--gouttiere) 120px; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: start; }
.etape { padding-bottom: 48px; margin-bottom: 48px; border-bottom: 1px solid #D5DBDF; }
.etape:last-child { border: 0; margin: 0; }
.etape__titre { font-size: clamp(26px, 2.6vw, 36px); display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.etape__titre span { font: 800 14px var(--mono); color: #fff; background: var(--asphalte); padding: 6px 8px; letter-spacing: 0; }
.choix-formule { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.carte-choix, .jour, .creneau, .carte-payeur {
  font-family: var(--display); color: var(--asphalte); background: #fff; border: 2px solid #D5DBDF;
  cursor: pointer; text-align: left; transition: border-color .15s, background .15s, color .15s;
}
.carte-choix:hover, .jour:hover:not(:disabled), .creneau:hover:not(:disabled), .carte-payeur:hover { border-color: var(--asphalte); }
.carte-choix { padding: 18px; display: flex; flex-direction: column; gap: 4px; }
.carte-choix b { font: 900 italic 18px var(--display); font-stretch: 115%; text-transform: uppercase; }
.carte-choix small { color: var(--gris); font-size: 13px; }
.carte-choix i { font: normal 800 26px var(--mono); margin-top: 10px; letter-spacing: -.03em; }
.est-choisi { border-color: var(--rouge) !important; box-shadow: inset 0 0 0 1px var(--rouge); }
.carte-choix.est-choisi { background: var(--rouge); color: #fff; }
.carte-choix.est-choisi small { color: rgba(255,255,255,.85); }
.jours { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px; }
.jour { padding: 12px 0; text-align: center; }
.jour small { display: block; font: 600 11px var(--mono); text-transform: uppercase; color: var(--gris); }
.jour b { font: 800 26px var(--mono); }
.jour.est-choisi { background: var(--asphalte); color: #fff; border-color: var(--asphalte) !important; box-shadow: none; }
.jour.est-choisi small { color: #A9B4BB; }
.jour:disabled, .creneau:disabled { opacity: .35; cursor: not-allowed; text-decoration: line-through; }
.creneaux { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.creneau { padding: 12px 14px; }
.creneau b { display: block; font: 800 20px var(--mono); }
.creneau small { font-size: 12px; color: var(--vert); font-weight: 700; }
.creneau--peu small { color: #E08A00; }
.creneau:disabled small { color: var(--gris); }
.creneau.est-choisi { background: var(--rouge); color: #fff; }
.creneau.est-choisi small { color: #fff; }
.pilotes { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }
.pilotes p { max-width: 380px; color: #46525B; font-size: 15px; }
.pas-a-pas--grand button { width: 52px; height: 52px; font-size: 26px; }
.pas-a-pas--grand output { font-size: 48px; min-width: 70px; }
.choix-payeur { display: grid; gap: 12px; }
.carte-payeur { padding: 22px 24px 22px 64px; position: relative; display: flex; flex-direction: column; gap: 4px; }
.carte-payeur::before { content: ""; position: absolute; left: 22px; top: 24px; width: 22px; height: 22px; border: 2px solid #C4CBD0; border-radius: 50%; }
.carte-payeur.est-choisi::before { border: 7px solid var(--rouge); }
.carte-payeur b { font: 900 italic 20px var(--display); font-stretch: 115%; text-transform: uppercase; }
.carte-payeur span { color: #46525B; font-size: 15px; }
.recap { position: sticky; top: 110px; background: var(--asphalte); color: #fff; padding: 32px; box-shadow: 0 40px 90px rgba(14,19,23,.25); }
.recap__tete { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .1em; color: #8E9AA2; }
.recap__formule { font: 900 italic 26px/1.1 var(--display); font-stretch: 118%; text-transform: uppercase; margin: 14px 0 6px; }
.recap__date { font: 600 15px var(--mono); color: #C9D1D6; }
.recap__lignes { margin: 24px 0; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); display: grid; gap: 10px; }
.recap__lignes div { display: flex; justify-content: space-between; font-size: 15px; }
.recap__lignes dt { color: #C9D1D6; }
.recap__lignes dd { margin: 0; font: 700 15px var(--mono); }
.recap__payer { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.recap__payer small { font-size: 14px; color: #C9D1D6; }
.recap__payer b { font: 800 44px/1 var(--mono); letter-spacing: -.04em; }
.recap__note { font-size: 13px; color: #A9B4BB; margin: 12px 0 24px; }
.recap__go { width: 100%; justify-content: center; clip-path: none; padding: 20px; }
.recap__secu { text-align: center; font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .06em; color: #8E9AA2; margin-top: 14px; }
/* -------- Compte -------- */
.compte { max-width: var(--max); margin: 0 auto; padding: 64px var(--gouttiere) 120px; display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 56px; align-items: start; }
.compte__menu { flex-direction: column; border: 0; position: sticky; top: 110px; background: #fff; padding: 12px; }
.compte__pilote { display: flex; align-items: center; gap: 14px; padding: 16px 12px 22px; border-bottom: 1px solid #E1E5E8; margin-bottom: 8px; }
.compte__pilote b { display: block; font-size: 17px; }
.compte__pilote small { color: var(--gris); font-size: 12px; }
.avatar--grand { width: 48px; height: 48px; font-size: 15px; background: var(--rouge); color: #fff; }
.compte__menu .onglets__btn { color: var(--asphalte); text-align: left; padding: 14px 12px; margin: 0; font-size: 14px; }
.compte__menu .onglets__btn::after { display: none; }
.compte__menu .onglets__btn.est-actif { background: var(--asphalte); color: #fff; }
.compte__menu .onglets__btn:last-child { margin-top: 12px; color: var(--gris); font-size: 12px; border-top: 1px dashed #D5DBDF; }
.compte__titre { font-size: clamp(34px, 3.8vw, 56px); margin-bottom: 32px; }
.compte__sous-titre { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .1em; color: var(--gris); margin: 36px 0 12px; }
.bord { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); grid-template-rows: auto auto; gap: 20px; }
.bord__prochaine { grid-row: span 2; background: var(--rouge); color: #fff; padding: 36px; position: relative; overflow: hidden; }
.bord__label { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .08em; opacity: .85; }
.bord__prochaine h3 { font: 900 italic clamp(28px, 2.8vw, 40px)/1 var(--display); font-stretch: 120%; text-transform: uppercase; margin: 16px 0 8px; max-width: 70%; }
.bord__date { font: 600 16px var(--mono); }
.bord__groupe { margin: 32px 0; max-width: 360px; }
.bord__groupe .suivi__total span, .bord__groupe .suivi__total__lib { font-size: 18px; }
.bord__groupe .suivi__total b, .bord__groupe .suivi__total__val { color: #fff; }
.bord__groupe .suivi__jauge { background: rgba(255,255,255,.25); }
.bord__groupe .suivi__jauge i { background: #fff; }
.bord__actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.bord__qr { position: absolute; top: 32px; right: 32px; width: 104px; height: 104px; color: var(--asphalte); background: #fff; padding: 10px; }
.bord__record, .bord__rang { background: #fff; padding: 28px; }
.bord__record .bord__label, .bord__rang .bord__label { color: var(--gris); opacity: 1; }
.bord__temps { display: block; font: 800 52px/1.1 var(--mono); letter-spacing: -.05em; margin: 10px 0 4px; }
.bord__record .bord__temps { color: var(--vert); }
.bord__record p.vert { font: 700 14px var(--mono); margin-bottom: 14px; }
.bord__rang p { color: var(--gris); font-size: 14px; }
.liste-resas { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.liste-resas li { background: #fff; padding: 18px 22px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 22px; }
.liste-resas li b { font-weight: 800; }
.liste-resas li small { display: block; color: var(--gris); font-size: 14px; }
.liste-resas__date { text-align: center; min-width: 52px; }
.liste-resas__date b { font: 800 30px/1 var(--mono); display: block; }
.liste-resas__date small { font: 600 11px var(--mono) !important; text-transform: uppercase; }
.liste-resas--passees li { background: transparent; border-bottom: 1px solid #D5DBDF; }
.statut { font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .06em; padding: 6px 10px; background: #E9ECEE; color: var(--gris); white-space: nowrap; }
.statut--ok { background: #DDF6E6; color: #12813C; }
.statut--attente { background: #FFF1DA; color: #A86400; }
.tableau--compte::after { display: none; }
.tableau__legende { font-size: 12px; color: #8E9AA2; margin-bottom: 8px; }
.tableau__tours td:nth-child(n+2) { font-weight: 600; }
.tableau__tours .meilleur td { background: rgba(31,191,91,.08); }
.connexion { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.connexion .formulaire--carte { grid-template-columns: minmax(0, 1fr); }
.connexion__oubli { font-size: 14px; color: var(--gris); }
.connexion__creer h3 { font: 900 italic 28px/1.1 var(--display); font-stretch: 118%; text-transform: uppercase; }
.connexion__creer > p { color: #46525B; margin-top: 12px; }
/* -------- Correctifs pages internes -------- */
.equipements .tete-section, .offres .tete-section, .comparatif .tete-section { padding: 0; }
.offre__duree { font-size: 30px; }
.activite--rouge { grid-column: 1 / -1; }
.activite--rouge .activite__texte { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px 48px; padding: 40px; }
.activite--rouge .activite__meta { grid-column: 1; grid-row: 1; }
.activite--rouge h3 { grid-column: 1; grid-row: 2; font-size: 48px; }
.activite--rouge .activite__texte > p:not(.activite__meta) { grid-column: 2; grid-row: 1 / 3; margin: 0; max-width: 460px; }
.activite--rouge .bouton, .activite--rouge .wp-block-button.bouton > .wp-block-button__link { grid-column: 3; grid-row: 1 / 3; }
.formulaire select, figure.tableau-clair select { appearance: none; -webkit-appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23BC1823' stroke-width='2'/%3E%3C/svg%3E") right 16px center / 12px no-repeat; padding-right: 40px; }
.choix-formule { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.carte-choix b { font-size: 15px; }
.recap__payer { flex-direction: column; align-items: flex-start; gap: 4px; }

@media (max-width: 860px) {.activite--rouge .activite__texte { grid-template-columns: minmax(0, 1fr); padding: 32px 22px; }
.activite--rouge .activite__meta, .activite--rouge h3, .activite--rouge .activite__texte > p:not(.activite__meta), .activite--rouge .bouton, .activite--rouge .wp-block-button.bouton > .wp-block-button__link { grid-column: 1; grid-row: auto; }
.activite--rouge h3 { font-size: 36px; }
.choix-formule { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}



@media (max-width: 860px) {.phero__titre { font-size: clamp(36px, 10.5vw, 72px); font-stretch: 112%; }
.phero--mini .phero__titre { font-size: clamp(40px, 11.5vw, 72px); }
.final h2 { font-size: clamp(44px, 12.5vw, 96px); font-stretch: 115%; }
.resa { grid-template-columns: minmax(0, 1fr); }
.choix-formule { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jours { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.jour { padding: 10px 0; }
.creneaux { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bord__prochaine { padding-top: 136px; }
.bord__prochaine h3 { margin-top: 16px; }
}
/* -------- École de pilotage -------- */
.periode { max-width: var(--max); margin: -56px auto 0; padding: 0 var(--gouttiere); position: relative; z-index: 3; }
.periode__ouvert, .periode__ferme { background: #fff; box-shadow: 0 30px 70px rgba(14,19,23,.16); border-left: 6px solid var(--vert); }
.periode__ferme { border-left-color: var(--gris); display: none; }
.periode[data-etat="ferme"] .periode__ouvert { display: none; }
.periode[data-etat="ferme"] .periode__ferme { display: block; }
.periode__statut { display: flex; align-items: center; gap: 10px; padding: 14px 32px; font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .1em; color: #12813C; border-bottom: 1px solid #E1E5E8; }
.periode__statut--ferme { color: var(--gris); }
.periode__corps { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; align-items: center; gap: 40px; padding: 28px 32px; }
.periode__ferme .periode__corps { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.periode h2 { font-size: clamp(28px, 2.8vw, 40px); }
.periode__dates { color: #46525B; margin-top: 8px; }
.periode__places p { font-size: 15px; color: #46525B; margin-bottom: 8px; }
.periode__places b, .periode__places strong { font: 800 28px var(--mono); color: var(--asphalte); }
.periode__alerte { display: flex; }
.periode__alerte input { flex: 1; min-width: 0; font: 500 16px var(--display); border: 2px solid #D5DBDF; border-right: 0; padding: 14px 16px; outline: none; }
.periode__alerte .bouton, .periode__alerte .wp-block-button.bouton > .wp-block-button__link { clip-path: none; }
.niveaux { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere); }
.niveaux .tete-section { padding: 0; }
.niveaux__liste { margin-top: 56px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; align-items: stretch; }
.niveau { background: #fff; padding: 36px 32px; display: flex; flex-direction: column; gap: 10px; border-right: 1px solid #E1E5E8; }
.niveau:last-child { border-right: 0; }
.niveau > p:not(.niveau__num):not(.niveau__age) { color: #46525B; }
.niveau__num { font: 800 64px/1 var(--mono); letter-spacing: -.05em; color: #D5DBDF; }
.niveau h3 { font: 900 italic 32px/1 var(--display); font-stretch: 122%; text-transform: uppercase; }
.niveau__age { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--rouge); }
.niveau__acquis { list-style: none; padding: 18px 0 0; margin: auto 0 0; border-top: 1px solid #E1E5E8; display: grid; gap: 6px; font-weight: 600; font-size: 15px; }
.niveau__acquis li::before { content: "→ "; color: var(--rouge); }
.niveau--milieu { background: var(--asphalte); color: #fff; transform: translateY(-28px); box-shadow: 0 40px 80px rgba(14,19,23,.25); border: 0; }
.niveau--milieu .niveau__num { color: var(--rouge); }
.niveau--milieu > p:not(.niveau__num):not(.niveau__age) { color: #C9D1D6; }
.niveau--milieu .niveau__acquis { border-color: rgba(255,255,255,.15); }
.saison { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere); display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 88px; align-items: center; }
.saison h2 { font-size: clamp(34px, 4vw, 58px); }
.saison__texte > p:not(.secteur) { color: #46525B; margin-top: 22px; max-width: 520px; }
.saison__mois { list-style: none; padding: 0; margin: 36px 0 0; display: grid; gap: 0; }
.saison__mois li { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 20px; padding: 14px 0; border-top: 1px solid #D5DBDF; color: #46525B; }
.saison__mois b, .saison__mois strong { font: 800 15px var(--mono); color: var(--asphalte); }
.saison__finale { border-top: 2px solid var(--rouge) !important; }
.saison__finale b { color: var(--rouge); }
.passeport { background: var(--rouge); color: #fff; padding: 32px; box-shadow: 0 40px 90px rgba(188,24,35,.3); transform: rotate(2deg); }
.passeport__tete { display: flex; align-items: center; gap: 16px; padding-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.25); }
.passeport__tete .avatar--grand, .passeport__avatar { background: #fff; color: var(--rouge); }
.passeport__tete small, .passeport__lib { display: block; font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .08em; opacity: .85; }
.passeport__tete b, .passeport__nom { font: 900 italic 24px var(--display); font-stretch: 115%; text-transform: uppercase; }
.passeport__liste { list-style: none; padding: 0; margin: 12px 0 0; }
.passeport__liste li { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.15); font-weight: 600; opacity: .6; }
.passeport__liste li.ok, .passeport__liste li.encours { opacity: 1; }
.passeport__liste em { font: normal 600 11px var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.passeport__liste li.ok em { background: #fff; color: var(--rouge); padding: 3px 8px; }
.passeport__liste li.encours em { border: 1px solid #fff; padding: 2px 7px; }
.passeport__chrono { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-top: 22px; background: var(--asphalte); padding: 18px 20px; }
.passeport__chrono small, .passeport__temps .passeport__lib { display: block; font: 600 11px var(--mono); text-transform: uppercase; color: #8E9AA2; }
.passeport__chrono b, .passeport__val { font: 800 40px/1 var(--mono); letter-spacing: -.04em; }
.passeport__chrono p { font: 700 13px var(--mono); }
.inscription { max-width: 960px; margin: 0 auto; padding: 120px var(--gouttiere); }
.inscription .tete-section { padding: 0; margin-bottom: 56px; }
.inscription__form .etape__titre { font-size: clamp(22px, 2.2vw, 30px); text-transform: uppercase; font-style: italic; font-weight: 900; font-stretch: 122%; }
.choix-formule--3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; margin-bottom: 14px; }
.creneaux--larges { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.creneaux--larges b { font-size: 16px; }
.case { flex-direction: row !important; align-items: flex-start; gap: 12px !important; font-size: 15px; color: #46525B; cursor: pointer; }
.case input { width: 20px !important; height: 20px; flex: none; margin-top: 2px; accent-color: var(--rouge); }
.inscription__go { margin-top: 24px; clip-path: none; padding: 20px 32px; }
.inscription__note { margin-top: 14px; font-size: 14px; color: var(--gris); }


@media (max-width: 1240px) {.saison { grid-template-columns: minmax(0, 1fr); gap: 64px; }
.niveau { padding: 28px 22px; }
.niveau h3 { font-size: 24px; }
.periode__corps { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.periode__corps > .bouton, .periode__corps > .wp-block-button.bouton > .wp-block-button__link { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 860px) {.periode { margin-top: -24px; }
.periode__corps, .periode__ferme .periode__corps { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 22px; }
.periode__statut { padding: 12px 22px; }
.niveaux, .saison, .inscription { padding: 80px var(--gouttiere); }
.niveaux__liste { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.niveau h3 { font-size: 26px; }
.niveau { border: 0; }
.niveau--milieu { transform: none; }
.saison__mois li { grid-template-columns: minmax(0, 1fr); gap: 2px; }
.passeport { transform: none; padding: 24px 20px; }
.choix-formule--3 { grid-template-columns: minmax(0, 1fr) !important; }
.creneaux--larges { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.inscription__go { width: 100%; justify-content: center; }
}
/* En-tête à 10 entrées : le logo et les actions ne rétrécissent pas, « Mon compte » passe en icône seule sous 1600 px. */
.entete__actions { flex: none; }

@media (max-width: 1600px) {}
/* -------- Ton convivial -------- */
.carte-groupe {
  position: absolute; z-index: 3;
  right: calc(var(--gouttiere) + 2%); top: 14%;
  width: 300px; padding: 22px 24px;
  background: #fff; color: var(--asphalte);
  box-shadow: 0 30px 60px rgba(0,0,0,.3);
  border-top: 5px solid var(--vert);
  transform: rotate(-2deg);
}
.carte-groupe__tete { display: flex; align-items: center; gap: 8px; font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .08em; color: var(--gris); }
.carte-groupe__titre { font: 900 italic 26px/1.05 var(--display); font-stretch: 115%; text-transform: uppercase; margin-top: 12px; }
.carte-groupe__date { font: 600 13px var(--mono); color: #46525B; margin-top: 6px; }
.carte-groupe__avatars { display: flex; margin: 18px 0 14px; }
.carte-groupe__avatars span, .carte-groupe__avatars p { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; font: 800 11px var(--mono); background: var(--craie); border: 3px solid #fff; margin-left: -8px; }
.carte-groupe__avatars span:first-child, .carte-groupe__avatars p:first-child { margin-left: 0; }
.carte-groupe__avatars span:nth-child(3n+1), .carte-groupe__avatars p:nth-child(3n+1) { background: #FBE3E4; color: var(--rouge); }
.carte-groupe__avatars span:nth-child(3n+2), .carte-groupe__avatars p:nth-child(3n+2) { background: #DDF6E6; color: #12813C; }
.carte-groupe__statut { font-weight: 700; font-size: 15px; color: #12813C; }
.lieu { max-width: var(--max); margin: 0 auto; padding: 140px var(--gouttiere); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 88px; align-items: center; }
.lieu h2 { font-size: clamp(30px, 3.2vw, 46px); }
.lieu__texte > p:not(.secteur) { color: #46525B; margin-top: 22px; font-size: 18px; }
.lieu .coches { margin: 28px 0 32px; }
.lieu__photos { position: relative; padding: 0 0 80px 0; }
.lieu__grande { aspect-ratio: 4 / 3; overflow: hidden; }
.lieu__grande img[src], .lieu__petite img[src] { width: 100%; height: 100%; object-fit: cover; }
.lieu__petite { position: absolute; width: 42%; aspect-ratio: 3 / 4; left: -56px; bottom: 0; overflow: hidden; border: 8px solid var(--craie); box-shadow: 0 30px 60px rgba(14,19,23,.18); transform: rotate(-3deg); }
.kart__pos sup { font-size: .5em; vertical-align: .9em; margin-left: 2px; }
.bord__temps--texte { font-size: 30px; letter-spacing: -.02em; }
.choix-niveau { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.choix-niveau .carte-choix i { font: normal 700 14px var(--mono); margin-top: 10px; letter-spacing: 0; }
.choix-niveau .carte-choix em { font: normal 600 12px var(--display); color: var(--vert); }
.choix-niveau .carte-choix.est-choisi em { color: #fff; }
.inscription__aide { color: #46525B; margin: -8px 0 18px; }

@media (max-width: 1240px) {.carte-groupe { top: auto; bottom: 120px; }
.lieu { grid-template-columns: minmax(0, 1fr); gap: 56px; }
.lieu__petite { left: auto; right: 16px; }
}

@media (max-width: 860px) {.carte-groupe { display: none; }
.hero__photo img[src] { object-position: 50% 30%; }
.carte-groupe__titre { font-size: 18px; }
.carte-groupe__avatars, .carte-groupe__date { display: none; }
.carte-groupe__statut { font-size: 13px; margin-top: 6px; }
.lieu { padding: 88px var(--gouttiere); }
.lieu__petite { width: 46%; right: -6px; }
.choix-niveau { grid-template-columns: minmax(0, 1fr); }
}
/* Bandeau de maquette (à retirer à la mise en ligne) */
/* Cadrage des vraies photos (éviter les plafonds) */
.recit__photo img[src], .salle__photo img[src] { object-position: 50% 78%; }


/* ============ Responsive ============ */
@media (max-width: 1420px) {
  .entete__nav { display: none; }
  .entete__burger { display: block; }
  .entete__actions { margin-left: auto; }
}

@media (max-width: 1240px) {.entete__actions { margin-left: auto; }
.chrono { top: auto; bottom: 120px; }
.resa-rapide { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.resa-rapide__champ:nth-child(2) { border-right: 0; }
.resa-rapide__champ:nth-child(-n+2) { border-bottom: 1px solid #E1E5E8; }
.resa-rapide__go { padding: 20px; justify-content: center; }
.resa-rapide { bottom: -120px; }
.chiffres { padding-top: 190px; }
.groupe { grid-template-columns: minmax(0, 1fr); }
.groupe__bulle { left: -60px; }
.espace { grid-template-columns: minmax(0, 1fr); }
.espace__ecran { order: 2; }
}


@media (max-width: 860px) {body { font-size: 16px; }
.entete { gap: 14px; padding-top: 10px; padding-bottom: 10px; }
.entete .bouton, .entete .wp-block-button.bouton > .wp-block-button__link { display: none; }
.hero { flex-direction: column; align-items: stretch; padding-top: 0; padding-bottom: 0; min-height: 0; }
.hero__photo { position: relative; width: calc(100% + 2 * var(--gouttiere)); margin: 0 calc(-1 * var(--gouttiere)); height: 300px; clip-path: polygon(0 0, 100% 0, 100% 82%, 0 100%); order: -1; }
.hero__texte { padding: 36px 0 0; }
.hero__titre { font-size: clamp(56px, 17vw, 120px); }
.hero__intro { font-size: 17px; margin-top: 22px; }
.chrono { position: absolute; top: 170px; right: 16px; bottom: auto; width: 200px; padding: 14px 16px; }
.chrono__temps { font-size: 38px; }
.chrono__secteurs, .chrono__pied { display: none; }
.resa-rapide { position: relative; left: auto; right: auto; bottom: auto; margin: 36px 0 -48px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.resa-rapide__champ { padding: 14px 16px; }
.resa-rapide__champ:first-child { grid-column: 1 / -1; border-right: 0; }
.resa-rapide__champ:nth-child(2) { border-right: 1px solid #E1E5E8; }
.resa-rapide__champ:nth-child(3) { border-right: 0; border-bottom: 1px solid #E1E5E8; }
.resa-rapide__go { grid-column: 1 / -1; }
.resa-rapide select, .resa-rapide input { font-size: 16px; }
.chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 0; padding-top: 96px; padding-bottom: 48px; }
.chiffres__item:last-child { grid-column: 1 / -1; }
.grille-depart { grid-template-columns: minmax(0, 1fr); gap: 64px; margin-top: 64px; }
.kart--p1 { order: -1; }
.formules { padding-bottom: 80px; }
.challenges { padding: 80px var(--gouttiere); gap: 48px; }
.challenges__duo { gap: 64px; }
.defi { grid-template-columns: minmax(0, 1fr); }
.defi__photo { aspect-ratio: 4 / 3; margin-right: 40px; }
.defi--inverse .defi__photo { order: 0; margin: 0 0 0 40px; }
.defi__texte, .defi--inverse .defi__texte { margin: -60px 0 0 24px; padding: 30px 24px; }
.defi--inverse .defi__texte { margin: -60px 24px 0 0; }
.groupe { padding: 80px var(--gouttiere) 100px; gap: 56px; }
.groupe__texte > p { font-size: 17px; }
.onglets__btn { font-size: 13px; padding-right: 0; margin-right: 18px; }
.telephone { width: min(320px, 100%); }
.groupe__bulle { left: -10px; bottom: -30px; }
.espace { padding: 88px var(--gouttiere); gap: 56px; }
.tableau { padding: 20px; }
.tableau::after { inset: 14px -10px -14px 14px; }
figure.tableau__sessions th:nth-child(2), figure.tableau__sessions td:nth-child(2) { display: none; }
.pistes { padding: 80px 0; }
.pistes__liste { grid-template-columns: minmax(0, 1fr); gap: 48px; }
.piste { padding: 0 0 48px; margin: 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
.piste svg { max-width: 200px; }
.entreprises { grid-template-columns: minmax(0, 1fr); padding: 0; margin-bottom: 88px; }
.entreprises__photo { height: 340px; }
.entreprises__carte { margin: -80px var(--gouttiere) 0; padding: 32px 24px; }
.entreprises__liste { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.galerie { padding-bottom: 88px; }
.galerie__bande { grid-template-columns: repeat(5, 72vw); overflow-x: auto; scroll-snap-type: x mandatory; height: 300px; padding: 0 var(--gouttiere); }
.galerie__bande figure { scroll-snap-align: start; margin: 0 !important; }
.actus__liste { grid-template-columns: minmax(0, 1fr); }
.actu--une { grid-row: auto; margin-bottom: 28px; }
.tete-section--ligne, .galerie__tete { flex-direction: column; align-items: flex-start; }
.final { min-height: 0; flex-direction: column; align-items: stretch; padding: 0 var(--gouttiere) 72px; }
.final__photo { position: relative; width: calc(100% + 2 * var(--gouttiere)); max-width: none; margin: 0 calc(-1 * var(--gouttiere)) 32px; height: 240px; clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%); }
.pied { padding-bottom: 100px; }
.pied__haut { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 36px 24px; }
.pied__marque { grid-column: 1 / -1; }
.pied__geant { font-size: 8.6vw; }
.chrono__tete { white-space: nowrap; font-size: 10px; }
}


/* ============ Responsive pages internes ============ */
@media (max-width: 1240px) {
  .profils, .faq, .devis, .contact, .conditions { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .conditions__col:last-child { padding-top: 0; }
  .offres__liste { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .offre--phare { transform: none; }
  .etapes__liste { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr); gap: 40px 0; }
  .resa { grid-template-columns: minmax(0, 1fr); }
  .recap { position: static; }
  .compte { grid-template-columns: minmax(0, 1fr); }
  .compte__menu { position: static; flex-direction: row; flex-wrap: wrap; gap: 4px; }
  .compte__pilote { width: 100%; }
  .compte__menu .onglets__btn:last-child { margin-top: 0; border-top: 0; }
}

@media (max-width: 860px) {.phero { min-height: 0; flex-direction: column; align-items: stretch; padding: 0 var(--gouttiere) 56px; }
.phero__photo { position: relative; width: calc(100% + 2 * var(--gouttiere)); margin: 0 calc(-1 * var(--gouttiere)) 32px; height: 240px; clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%); order: -1; }
.phero--mini { padding: 40px var(--gouttiere); }
.phero__intro { font-size: 17px; }
.progression { width: 100%; overflow-x: auto; }
.progression li { padding: 10px 14px 10px 10px; font-size: 11px; white-space: nowrap; }
.recit { grid-template-columns: minmax(0, 1fr); gap: 56px; padding-top: 72px; }
.recit__label { left: -8px; bottom: 24px; }
.recit__chapeau { font-size: 19px; }
.equipements { padding: 80px var(--gouttiere); }
.equipements__liste { grid-template-columns: minmax(0, 1fr); }
.equipements__liste li { margin-right: 0 !important; border-right: 0 !important; padding-right: 0; }
.securite, .salle { grid-template-columns: minmax(0, 1fr); }
.securite__photo, .salle__photo { min-height: 280px; order: 0; }
.securite__texte, .salle__texte { padding: 56px var(--gouttiere) 72px; }
.profils { padding-top: 72px; }
.profil { padding: 28px 22px; }
.activites { grid-template-columns: minmax(0, 1fr); padding-bottom: 80px; }
.activite--large { grid-column: auto; grid-template-columns: minmax(0, 1fr); }
.activite--large figure { min-height: 0; aspect-ratio: 4 / 3; }
.activite--large h3 { font-size: 36px; }
.etapes { padding: 80px 0; }
.etapes__liste { grid-template-columns: minmax(0, 1fr); gap: 28px; }
.etapes__liste li::before { display: none; }
.etapes__liste span, .etapes__liste em { margin-bottom: 8px; font-size: 30px; }
.conditions { padding: 80px var(--gouttiere); }
.tableau-clair, figure.tableau-clair table { font-size: 14px; }
figure.tableau-clair td:first-child { font-size: 15px; }
.faq { padding-bottom: 80px; }
.comparatif, .offres, .devis { padding: 80px var(--gouttiere); }
.inclus { grid-template-columns: minmax(0, 1fr); }
.offres__liste { grid-template-columns: minmax(0, 1fr); }
.formulaire { grid-template-columns: minmax(0, 1fr); }
.formulaire--carte { padding: 28px 22px; }
.grille-tarifs { padding-top: 72px; }
.bloc-tarif { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 28px 22px; }
.bloc-tarif--sombre .bouton, .bloc-tarif--sombre .wp-block-button.bouton > .wp-block-button__link { justify-self: start; }
.ligne-prix li, .ligne-prix__ligne { flex-wrap: wrap; gap: 6px 12px; }
.ligne-prix__nom { flex: 1 1 60%; }
.ligne-prix__pointilles { display: none; }
.ligne-prix__montant { font-size: 30px; }
.paiement { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-bottom: 88px; }
.mur { padding: 32px 8px 88px; }
.mur__filtres { padding: 0 8px; }
.mur__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-auto-rows: 180px; gap: 8px; }
.journal { padding-top: 56px; }
.journal__une { grid-template-columns: minmax(0, 1fr); margin-bottom: 56px; }
.journal__une-texte { margin: -48px 16px 0; padding: 28px 22px; }
.journal__grille { grid-template-columns: minmax(0, 1fr); gap: 40px; }
.contact { padding: 64px var(--gouttiere) 88px; }
.resa { padding: 48px var(--gouttiere) 88px; }
.jours { gap: 4px; }
.jour b { font-size: 18px; }
.carte-payeur { padding: 18px 18px 18px 56px; }
.carte-payeur::before { left: 18px; top: 20px; }
.compte { padding-top: 32px; }
.compte__menu .onglets__btn { padding: 10px 12px; font-size: 12px; }
.bord { grid-template-columns: minmax(0, 1fr); }
.bord__prochaine { grid-row: auto; padding: 136px 22px 28px; }
.bord__prochaine h3 { max-width: none; margin-top: 16px; }
.bord__qr { top: 22px; right: auto; left: 22px; width: 92px; height: 92px; }
.liste-resas li { grid-template-columns: auto minmax(0, 1fr); gap: 10px 16px; padding: 16px; }
.liste-resas li .statut, .liste-resas li .lien-fleche > a { grid-column: 2; justify-self: start; }
.tableau__tours th:nth-child(2), .tableau__tours td:nth-child(2) { display: table-cell; }
.tableau__tours { font-size: 12px; }
.connexion { grid-template-columns: minmax(0, 1fr); }
}
/* ============ Structure compatible blocs WordPress ============ */
/* (les anciens sélecteurs restent pour les pages de démonstration Réservation et Mon compte) */
.kart__fiche em, .chiffres__val em, .etapes__liste em, .tableau__rang .tableau__val em, figure.tableau-clair em, .ligne-prix__montant em, figure.tableau__sessions em { font-style: normal; }
figure.tableau__sessions em { color: var(--vert); font-weight: 800; }
.suivi__liste li strong { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font: 800 11px var(--mono); background: var(--craie); flex: none; }
.suivi__liste .attente strong { background: #FFF1DA; }
.suivi__liste .invite strong { border: 2px dashed #C4CBD0; background: none; }
.suivi__jauge { position: relative; }
.suivi__jauge::after { content: ""; display: block; height: 100%; width: 62.5%; background: var(--vert); }
.suivi__jauge--periode::after { width: 36.7%; }
.bord__groupe .suivi__jauge::after { background: #fff; }
.suivi__relance { text-align: center; }
.telephone__barre p { margin: 0; }
.groupe__bulle strong { font-weight: 700; }
.carte-groupe__tete::before, .periode__statut:not(.periode__statut--ferme)::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--vert); flex: none;
  box-shadow: 0 0 0 0 rgba(31,191,91,.6); animation: pouls 1.6s infinite;
}
.tableau__tete strong { color: #fff; font-weight: 400; }
.tableau__perso .tableau__val { display: block; }
.tableau__record { position: relative; margin-bottom: 162px; }
.tableau__record::after {
  content: ""; position: absolute; left: 0; right: 0; top: 100%; margin-top: 24px; height: 130px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 520 150' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' x2='0' y1='0' y2='1'%3E%3Cstop offset='0' stop-color='%23BC1823' stop-opacity='.28'/%3E%3Cstop offset='1' stop-color='%23BC1823' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0 22 L104 40 L208 58 L312 74 L416 104 L520 128 L520 150 L0 150Z' fill='url(%23g)'/%3E%3Cpolyline points='0,22 104,40 208,58 312,74 416,104 520,128' fill='none' stroke='%23BC1823' stroke-width='3' stroke-linejoin='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.tableau__sessions { margin: 8px 0 0; }
.equipements__liste { counter-reset: equipement; }
.equipements__liste li { counter-increment: equipement; }
.equipements__liste li::before { content: "0" counter(equipement); display: block; font: 800 14px var(--mono); color: var(--rouge); margin-bottom: 16px; }
.etapes__liste em { position: relative; display: inline-block; font: 800 40px/1 var(--mono); color: #fff; background: var(--bleu); padding-right: 14px; margin-bottom: 22px; }
.recit__label__val { display: block; font: 900 italic 44px/1 var(--display); font-stretch: 125%; }
.recit__label__lib { font-size: 14px; }
.passeport__avatar { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; font: 800 15px var(--mono); background: #fff; color: var(--rouge); flex: none; }
.passeport__qui .passeport__lib, .passeport__temps .passeport__lib { display: block; font: 600 11px var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.passeport__qui .passeport__lib { opacity: .85; }
.passeport__temps .passeport__lib { color: #8E9AA2; }
.passeport__nom { font: 900 italic 24px var(--display); font-stretch: 115%; text-transform: uppercase; }
.passeport__val { font: 800 40px/1 var(--mono); letter-spacing: -.04em; }
.final__photo img[src] { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Tarifs : la ligne pointillée devient un pseudo-élément placé entre le nom et le prix */
.ligne-prix__ligne { display: flex; align-items: baseline; gap: 16px; padding: 18px 0; border-bottom: 1px solid #E1E5E8; }
.ligne-prix__ligne:last-child { border-bottom: 0; }
.ligne-prix__nom { order: 0; }
.ligne-prix__ligne::after { content: ""; order: 1; flex: 1; border-bottom: 2px dotted #C4CBD0; transform: translateY(-6px); }
.ligne-prix__montant { order: 2; }
.ligne-prix__titre { display: block; font: 900 italic 22px var(--display); font-stretch: 118%; text-transform: uppercase; }
.ligne-prix__detail { color: var(--gris); font-size: 14px; }
/* Pistes : tracés dessinés en CSS (plus de SVG dans le contenu) */
.piste::before { content: ""; display: block; width: 100%; max-width: 280px; aspect-ratio: 200 / 120; margin-bottom: 28px; background: center / contain no-repeat; }
.piste--monza::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 120'%3E%3Cpath d='M20 90 L20 40 Q20 20 40 20 L120 20 Q140 20 140 40 L140 55 Q140 70 155 70 L170 70 Q185 70 185 85 L185 95 Q185 105 175 105 L35 105 Q20 105 20 90Z' fill='none' stroke='%23fff' stroke-width='7' stroke-linejoin='round'/%3E%3Crect x='60' y='99' width='4' height='12' fill='%23BC1823'/%3E%3C/svg%3E"); }
.piste--monaco::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 120'%3E%3Cpath d='M30 95 L30 60 Q30 45 45 45 L70 45 Q85 45 85 30 Q85 15 100 15 L160 15 Q175 15 175 30 L175 50 Q175 60 165 62 L120 72 Q110 75 120 82 L160 92 Q170 95 165 102 L45 105 Q30 105 30 95Z' fill='none' stroke='%23fff' stroke-width='7' stroke-linejoin='round'/%3E%3Crect x='80' y='99' width='4' height='12' fill='%23BC1823'/%3E%3C/svg%3E"); }
.piste--jaussaud::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 120'%3E%3Cpath d='M25 80 Q25 20 70 20 L150 20 Q180 20 180 50 Q180 70 160 72 L110 76 Q95 78 100 90 Q105 105 90 105 L45 105 Q25 105 25 80Z' fill='none' stroke='%23fff' stroke-width='7' stroke-linejoin='round' stroke-dasharray='2 14' stroke-linecap='round'/%3E%3Crect x='120' y='14' width='4' height='12' fill='%23BC1823'/%3E%3C/svg%3E"); }
/* Période d'inscription : l'état « fermé » se choisit par une classe sur la section */
.periode.est-ferme .periode__ouvert { display: none; }
.periode.est-ferme .periode__ferme { display: block; }

@media (max-width: 860px) {.piste::before { max-width: 200px; }
.etapes__liste em { margin-bottom: 8px; font-size: 30px; }
}
.contact__mail { display: block; }
.contact__mail a { margin-top: 0; }
.passeport__temps .passeport__lib { opacity: 1; }

@media (max-width: 860px) {.ligne-prix__ligne::after { display: none; }
}
/* Hauteurs de ligne héritées du corps de texte (équivalence avec l'ancienne structure) */
:root { --interligne: 26.35px; }

@media (max-width: 860px) {:root { --interligne: 24.8px; }
}
.recit__label__lib, .ligne-prix__detail { line-height: var(--interligne); }
.piste::before { margin-bottom: 36px; }
figure.horaires td:first-child { font: 600 1em/1.55 var(--display); text-align: left; }
/* ============ Retours du 09/10 ============ */
/* Titres de page : ils restent dans la zone de couleur, la photo est plus étroite */
.phero__photo { width: 44%; clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%); }
.phero__texte { max-width: 54%; }
.phero__titre { font-size: clamp(48px, 6.4vw, 104px); }
.phero__intro { max-width: 520px; }
.hero__photo { width: 50%; }
.hero__texte { max-width: 48%; }
.hero__titre { font-size: clamp(64px, 9vw, 150px); }
.final__photo { width: 44%; }
.final h2 { font-size: clamp(56px, 8vw, 128px); }
/* Téléphone sur une ligne */
.contact__tel a { white-space: nowrap; font-size: clamp(32px, 4.2vw, 64px); }
/* Mentions de réservation */
.recap__info { font-size: 12px; color: #C9D1D6; text-align: center; margin-top: 10px; }
.connexion__creer .case { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; color: #46525B; margin: 0 0 22px; cursor: pointer; }
.connexion__creer .case input { width: 20px; height: 20px; flex: none; margin-top: 2px; accent-color: var(--rouge); }

@media (max-width: 1240px) {.phero__texte, .hero__texte { max-width: 60%; }
}

@media (max-width: 860px) {.phero__photo, .hero__photo { width: calc(100% + 2 * var(--gouttiere)); clip-path: polygon(0 0, 100% 0, 100% 82%, 0 100%); }
.phero__photo { clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%); }
.phero__texte, .hero__texte { max-width: none; }
.phero__titre { font-size: clamp(36px, 10.5vw, 72px); }
.hero__titre { font-size: clamp(56px, 17vw, 120px); }
.final__photo { width: calc(100% + 2 * var(--gouttiere)); }
.final h2 { font-size: clamp(44px, 12.5vw, 96px); }
.contact__tel a { font-size: 9vw; }
}
.etapes__liste--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.niveaux .tete-section h2 + p { max-width: 640px; margin-top: 22px; color: #46525B; }
.niveau__num { font-size: 48px; color: var(--rouge); }
.niveau--milieu .niveau__num { color: #fff; }

@media (max-width: 1240px) {.etapes__liste--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 860px) {.etapes__liste--4 { grid-template-columns: minmax(0, 1fr); }
}
/* Tracés réels relevés sur les panneaux du circuit (Monza 800 m, Monaco 550 m, Jean-Pierre Jaussaud 1 100 m) */
.piste--monaco::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='75 48 830 727'%3E%3Cpath d='M150 100 C162 90 182 84 200 80 C218 76 238 74 260 76 C282 78 307 87 330 95 C353 103 375 117 400 124 C425 131 456 137 480 136 C504 135 522 128 545 120 C568 112 594 98 620 90 C646 82 672 76 700 72 C728 68 765 66 790 68 C815 70 835 76 850 86 C865 96 872 111 878 130 C884 149 884 172 884 200 C884 228 882 263 880 300 C878 337 875 384 870 420 C865 456 859 490 850 515 C841 540 831 556 818 572 C805 588 787 602 770 612 C753 622 732 626 715 632 C698 638 682 641 668 648 C654 655 639 663 628 675 C617 687 611 706 600 718 C589 730 578 742 560 748 C542 754 517 753 490 754 C463 755 428 756 400 755 C372 754 341 753 320 745 C299 737 283 724 272 708 C261 692 261 670 255 650 C249 630 247 610 238 590 C229 570 215 545 200 527 C185 509 163 495 148 482 C133 469 117 462 108 448 C99 434 94 417 94 400 C94 383 98 359 106 345 C114 331 128 320 145 315 C162 310 179 315 205 318 C231 321 273 328 300 335 C327 342 349 348 365 360 C381 372 386 387 395 405 C404 423 407 450 420 470 C433 490 455 514 475 527 C495 540 516 544 540 546 C564 548 595 547 620 540 C645 533 672 520 688 505 C704 490 711 471 718 450 C725 429 728 403 730 380 C732 357 733 328 730 310 C727 292 719 280 712 274 C705 268 695 271 688 276 C681 281 676 290 668 305 C660 320 651 349 640 368 C629 387 616 407 603 418 C590 429 575 433 560 432 C545 431 526 422 512 412 C498 402 490 384 478 370 C466 356 456 338 440 325 C424 312 408 302 385 292 C362 282 330 273 305 266 C280 259 256 258 235 252 C214 246 194 242 178 232 C162 222 148 205 140 190 C132 175 128 155 130 140 C132 125 138 110 150 100Z' fill='none' stroke='%23fff' stroke-width='40' stroke-linejoin='round' stroke-linecap='round'/%3E%3Crect x='463' y='108' width='14' height='56' rx='4' fill='%23BC1823'/%3E%3C/svg%3E"); }
.piste--monza::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='110 75 1120 540'%3E%3Cpath d='M330 118 C359 122 418 125 470 124 C522 123 552 115 640 110 C728 105 929 93 1000 93 C1071 93 1049 99 1065 110 C1081 121 1093 142 1098 160 C1103 178 1100 198 1095 220 C1090 242 1074 268 1065 290 C1056 312 1044 332 1042 350 C1040 368 1042 383 1050 395 C1058 407 1072 414 1090 420 C1108 426 1141 424 1160 432 C1179 440 1197 454 1205 470 C1213 486 1214 512 1210 530 C1206 548 1195 564 1180 575 C1165 586 1142 592 1120 595 C1098 598 1072 598 1050 590 C1028 582 1006 568 985 550 C964 532 942 503 925 480 C908 457 894 433 885 410 C876 387 872 361 868 340 C864 319 866 299 862 285 C858 271 853 262 845 258 C837 254 821 254 812 258 C803 262 796 271 792 285 C788 299 786 318 786 340 C786 362 790 397 792 420 C794 443 797 461 795 480 C793 499 788 521 778 535 C768 549 765 556 735 562 C705 568 652 570 600 572 C548 574 476 575 420 575 C364 575 301 576 265 572 C229 568 223 563 205 552 C187 541 169 523 158 505 C147 487 141 465 138 445 C135 425 137 402 142 385 C147 368 157 353 170 345 C183 337 201 331 220 335 C239 339 258 358 285 370 C312 382 348 400 380 410 C412 420 451 424 480 428 C509 432 535 435 555 432 C575 429 590 422 600 410 C610 398 616 378 618 360 C620 342 618 316 612 300 C606 284 596 270 585 262 C574 254 558 253 545 255 C532 257 522 264 510 272 C498 280 485 297 470 305 C455 313 443 321 420 322 C397 323 357 319 330 310 C303 301 279 282 260 270 C241 258 225 248 215 235 C205 222 200 206 198 190 C196 174 198 154 205 140 C212 126 225 115 240 108 C255 101 280 98 295 100 C310 102 301 114 330 118Z' fill='none' stroke='%23fff' stroke-width='34' stroke-linejoin='round' stroke-linecap='round'/%3E%3Crect x='805' y='72' width='14' height='56' rx='4' fill='%23BC1823'/%3E%3C/svg%3E"); aspect-ratio: 1120 / 540; }
.piste--jaussaud::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='15 85 1290 430'%3E%3Cpath d='M130 140 C150 140 202 151 230 150 C258 149 255 139 300 135 C345 131 400 130 500 128 C600 126 800 122 900 120 C1000 118 1047 117 1100 115 C1153 113 1192 106 1220 108 C1248 110 1259 118 1270 130 C1281 142 1283 160 1285 180 C1287 200 1283 225 1280 250 C1277 275 1272 307 1265 330 C1258 353 1251 374 1240 390 C1229 406 1215 417 1200 425 C1185 433 1162 435 1150 440 C1138 445 1138 448 1130 455 C1122 462 1117 474 1100 480 C1083 486 1052 490 1030 490 C1008 490 987 488 970 480 C953 472 943 458 930 440 C917 422 903 392 890 370 C877 348 865 327 850 310 C835 293 815 279 800 270 C785 261 772 256 760 255 C748 254 738 258 730 265 C722 272 717 287 715 300 C713 313 714 333 720 345 C726 357 737 365 750 370 C763 375 785 372 800 375 C815 378 830 378 840 385 C850 392 858 407 860 420 C862 433 857 453 850 465 C843 477 833 485 820 490 C807 495 790 497 770 495 C750 493 722 489 700 480 C678 471 655 457 640 440 C625 423 617 400 610 380 C603 360 603 339 600 320 C597 301 595 278 590 265 C585 252 578 248 570 245 C562 242 548 241 540 245 C532 249 523 256 520 270 C517 284 519 308 520 330 C521 352 523 380 525 400 C527 420 532 437 530 450 C528 463 520 473 510 480 C500 487 505 488 470 490 C435 492 357 490 300 490 C243 490 168 491 130 488 C92 485 86 481 70 470 C54 459 41 438 35 420 C29 402 31 376 35 360 C39 344 48 332 60 325 C72 318 90 318 110 320 C130 322 155 333 180 340 C205 347 232 354 260 360 C288 366 329 375 350 375 C371 375 377 369 385 360 C393 351 398 333 400 320 C402 307 400 291 395 280 C390 269 381 259 370 255 C359 251 343 252 330 255 C317 258 302 265 290 270 C278 275 272 282 260 285 C248 288 238 292 220 290 C202 288 168 277 150 270 C132 263 122 260 110 250 C98 240 84 222 80 210 C76 198 80 185 85 175 C90 165 102 156 110 150 C118 144 110 140 130 140Z' fill='none' stroke='%23fff' stroke-width='34' stroke-linejoin='round' stroke-linecap='round'/%3E%3Crect x='520' y='100' width='14' height='56' rx='4' fill='%23BC1823'/%3E%3C/svg%3E"); aspect-ratio: 1290 / 430; }
/* Bandeaux de titre plus compacts (retour du 09/10 : trop de rouge vide) */
.phero { min-height: clamp(340px, 34vw, 480px); align-items: center; padding: 64px var(--gouttiere) 72px; }
.phero--compact { min-height: clamp(300px, 28vw, 400px); }

@media (max-width: 860px) {.phero, .phero--compact { min-height: 0; align-items: stretch; padding: 0 var(--gouttiere) 48px; }
}
.phero__titre { font-size: clamp(44px, 5.8vw, 100px); }

@media (max-width: 1240px) {.phero__texte { max-width: 54%; }
}

@media (max-width: 860px) {.phero__texte { max-width: none; }
.phero__titre { font-size: clamp(36px, 10.5vw, 72px); }
}
.groupe h2 em { color: #fff; }
/* Tracés : même hauteur pour les trois, pour aligner les titres */
.piste::before { aspect-ratio: auto !important; width: 100%; max-width: 340px; height: 170px; background-position: left center; background-size: contain; margin-bottom: 32px; }

@media (max-width: 860px) {.piste::before { height: 130px; max-width: 280px; }
}
.activite--large h3 { font-size: clamp(30px, 2.8vw, 42px); }
.final__texte { max-width: 54%; }

@media (max-width: 860px) {.final__texte { max-width: none; }
}
.activite h3 { font-size: clamp(20px, 1.9vw, 26px); }
.activite--large h3 { font-size: clamp(26px, 2.3vw, 38px); }
.contact__insta { margin-top: 10px; font-weight: 700; }
.contact__insta a { color: var(--rouge); text-decoration: none; border-bottom: 2px solid currentColor; }
.challenges__titre h2 em { color: var(--rouge); font-style: italic; }
/* ============ Pages de texte (mentions légales, confidentialité, CGV) ============ */
.texte { max-width: 820px; margin: 0 auto; padding: 80px var(--gouttiere) 120px; font-size: 17px; line-height: 1.7; color: #3A4A55; }
.texte h2 { font-size: clamp(22px, 2.2vw, 30px); color: var(--asphalte); margin: 48px 0 14px; text-transform: none; }
.texte h2:first-of-type { margin-top: 32px; }
.texte p + p { margin-top: 12px; }
.texte a { color: var(--rouge); }
.texte strong { color: var(--asphalte); }
.texte__liste { margin: 14px 0; padding-left: 22px; display: grid; gap: 8px; }
.texte__brouillon { background: #FFF1DA; border-left: 4px solid #E08A00; padding: 14px 18px; font: 600 13px/1.5 var(--mono); color: #7A4A00; }
.phero--mini { min-height: 0; }
/* Sélecteur de langue */
.langues { display: flex; align-items: center; gap: 10px; margin: 0; font: 600 13px/1 var(--mono); letter-spacing: .06em; }
.langues strong { color: var(--rouge); font-weight: 800; }
.langues a { color: var(--gris); text-decoration: none; }
.langues a:hover { color: var(--asphalte); }

@media (max-width: 860px) {.entete__actions .langues { display: none; }
}
/* =========================================================
   Vidéo d'accueil, ouverture en direct, annonce, cartes cadeaux
   ========================================================= */

/* Vidéo d'ambiance dans le hero (l'affiche s'affiche tant qu'elle charge) */
.hero__photo video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.hero__pause { position: absolute; z-index: 2; top: 20px; right: 20px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(20,32,40,.45); color: #fff; cursor: pointer; display: grid; place-items: center; backdrop-filter: blur(4px); }
.hero__pause:hover { background: rgba(20,32,40,.7); }
.hero__pause svg { width: 14px; height: 14px; fill: currentColor; }
/* Ouvert maintenant / fermé : calculé à l'heure de Caen par app.js */
.ouverture { display: inline-flex; align-items: center; gap: 10px; font: 600 12px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.ouverture::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: currentColor; opacity: .55; }
.ouverture.est-ouvert::before { background: var(--vert); opacity: 1; box-shadow: 0 0 0 4px rgba(31,191,91,.22); animation: pouls 2.4s ease-in-out infinite; }
.ouverture.est-ferme::before { background: transparent; border: 2px solid currentColor; opacity: .8; }

@keyframes pouls { 50% { box-shadow: 0 0 0 7px rgba(31,191,91,0); } }

@media (prefers-reduced-motion: reduce) {.ouverture.est-ouvert::before { animation: none; }
}
.hero .ouverture { background: rgba(255,255,255,.15); padding: 9px 14px; border-radius: 999px; margin-bottom: 20px; }
.contact__bloc > p.ouverture { display: flex; margin: 2px 0 16px; font: 600 12px/1.3 var(--mono); font-stretch: 100%; letter-spacing: .06em; }
.pied .pied__col > p.ouverture { display: flex; margin: 14px 0; color: rgba(255,255,255,.85); font: 600 12px/1.4 var(--mono); letter-spacing: .06em; }
/* Annonce de l'équipe (fermeture exceptionnelle, météo…) : cachée tant qu'elle est vide */
.annonce { margin: 0; padding: 12px var(--gouttiere); background: var(--asphalte); color: #fff; text-align: center; font-size: 15px; font-weight: 600; }
.annonce:empty { display: none; }
.annonce.is-style-fermeture { background: var(--rouge); }
.annonce a { color: inherit; }
/* Carte cadeau (visuel) */
.carte-cadeau { position: relative; width: 100%; max-width: 440px; aspect-ratio: 1.586; border-radius: 18px; padding: 26px 28px; color: #fff; overflow: hidden; display: flex; flex-direction: column; background: radial-gradient(circle at 85% 10%, rgba(255,255,255,.14), transparent 45%), linear-gradient(135deg, var(--asphalte), var(--carbone)); box-shadow: 0 30px 60px rgba(31,60,77,.35); }
.carte-cadeau::after { content: ""; position: absolute; right: -50px; bottom: -40px; width: 230px; height: 130px; background: var(--rouge); transform: skewX(-22deg); }
.carte-cadeau > :not(.carte-cadeau__code) { position: relative; z-index: 1; }
.carte-cadeau img[src] { width: 70px; height: auto; }
.carte-cadeau__lib { margin-top: auto; font: 600 12px var(--mono); letter-spacing: .14em; text-transform: uppercase; opacity: .75; }
.carte-cadeau__formule { margin-top: 6px; font: 900 italic 30px/1 var(--display); font-stretch: 120%; text-transform: uppercase; }
.carte-cadeau__pour { margin-top: 10px; font-size: 14px; opacity: .85; }
.carte-cadeau__code { position: absolute; z-index: 1; top: 30px; right: 28px; font: 600 13px var(--mono); letter-spacing: .08em; opacity: .8; }
.carte-cadeau--penchee { transform: rotate(-5deg); }
/* Page Cartes cadeaux */
.cadeau { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere) 40px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: center; }
.cadeau__texte > * + * { margin-top: 22px; }
.cadeau__texte > .coches { margin-bottom: 0; }
.cadeau__texte > .coches + * { margin-top: 36px; }
.cadeau__texte > p:not(.secteur) { max-width: 520px; color: #46525B; font-size: 18px; }
.cadeau .carte-cadeau { justify-self: center; transform: rotate(-4deg); }
.offres__note { margin-top: 40px; text-align: center; color: #46525B; }
.choix-formule--4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.cadeau__form .choix-payeur + .formulaire { margin-top: 18px; }
/* Bandeau Cartes cadeaux de l'accueil */
.cadeau-bandeau { position: relative; max-width: var(--max); margin: 0 auto 120px; padding: 64px clamp(28px, 5vw, 80px); background: #fff; border-top: 4px solid var(--rouge); display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.cadeau-bandeau__texte > * + * { margin-top: 18px; }
.cadeau-bandeau__texte > p:not(.secteur) { max-width: 480px; color: #46525B; }
.cadeau-bandeau .carte-cadeau { justify-self: center; max-width: 380px; }


@media (max-width: 1240px) {.cadeau { grid-template-columns: minmax(0, 1fr); gap: 56px; }
.cadeau .carte-cadeau { justify-self: start; }
}

@media (max-width: 860px) {.cadeau { padding-top: 72px; }
.cadeau-bandeau { grid-template-columns: minmax(0, 1fr); margin: 0 var(--gouttiere) 88px; padding: 40px 24px; gap: 40px; }
.carte-cadeau { padding: 20px 22px; border-radius: 14px; }
.carte-cadeau img[src] { width: 54px; }
.carte-cadeau__formule { font-size: 24px; }
.carte-cadeau__code { top: 22px; right: 20px; font-size: 11px; }
.choix-formule--4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.hero__pause { top: 14px; right: 14px; }
.cadeau .carte-cadeau, .carte-cadeau--penchee { width: 94%; justify-self: center; transform: rotate(-2.5deg); }
}
/* Kart biplace sous la grille des karts */
.formules__note { max-width: var(--max); margin: 40px auto 0; padding: 0 var(--gouttiere); text-align: center; color: #46525B; }
.formules__note strong { color: var(--asphalte); }
/* École : inscription sur rendez-vous */
.rdv { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.rdv li { background: #fff; padding: 28px 24px; border-top: 4px solid var(--asphalte); color: #46525B; }
.rdv em { display: block; margin-bottom: 14px; font: normal 800 28px/1 var(--mono); letter-spacing: -.03em; color: var(--rouge); }
.rdv strong { display: block; margin-bottom: 8px; font: 900 italic 20px/1.1 var(--display); font-stretch: 118%; text-transform: uppercase; color: var(--asphalte); }
.inscription__rdv { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 32px; }

@media (max-width: 860px) {.rdv { grid-template-columns: minmax(0, 1fr); }
}
/* =========================================================
   Espace pilote : fidélité (proposition à valider avec Apex)
   ========================================================= */
.bord__fidelite { grid-column: 1 / -1; background: #fff; padding: 28px; border-left: 4px solid var(--vert); display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 40px; align-items: center; }
.bord__fidelite .bord__label { color: var(--gris); opacity: 1; }
.bord__fidelite .bord__temps { color: var(--asphalte); }
.bord__fidelite .bord__temps small { font-size: 20px; letter-spacing: 0; color: var(--gris); }
.bord__fidelite p:not(.bord__label) { margin-top: 10px; font-size: 14px; color: #46525B; }
.fidelite__jauge { height: 8px; background: #E9ECEE; border-radius: 4px; overflow: hidden; }
.fidelite__jauge i { display: block; height: 100%; background: var(--vert); }
.fidelite { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 20px; align-items: start; }
.fidelite__solde { background: var(--asphalte); color: #fff; padding: 32px; }
.fidelite__solde .bord__label { opacity: .8; }
.fidelite__points { margin: 12px 0 18px; font: 800 72px/1 var(--mono); letter-spacing: -.05em; }
.fidelite__points em { font-style: normal; font-size: 22px; letter-spacing: 0; opacity: .7; }
.fidelite__solde .fidelite__jauge { background: rgba(255,255,255,.2); }
.fidelite__suite { margin-top: 14px; font-size: 15px; }
.fidelite__regle { margin-top: 22px; font: 600 11px var(--mono); letter-spacing: .06em; text-transform: uppercase; opacity: .7; }
.recompenses { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.recompense { background: #fff; padding: 18px 22px; display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; gap: 18px; align-items: center; }
.recompense b { font: 800 20px var(--mono); letter-spacing: -.03em; color: var(--gris); white-space: nowrap; }
.recompense span { font-weight: 700; }
.recompense em { padding: 6px 10px; font: normal 600 11px var(--mono); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; background: #E9ECEE; color: var(--gris); }
.recompense.est-debloquee b { color: var(--vert); }
.recompense.est-debloquee em { background: #DDF6E6; color: #12813C; }
.bonus { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.bonus li { background: #fff; padding: 20px 22px; display: flex; gap: 18px; align-items: center; }
.bonus strong { font: 800 22px var(--mono); letter-spacing: -.03em; color: var(--vert); white-space: nowrap; }
.bonus b { font-weight: 800; }
.bonus small { display: block; font-size: 14px; color: var(--gris); }

@media (max-width: 1240px) {.fidelite { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 860px) {.bord__fidelite { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.bonus { grid-template-columns: minmax(0, 1fr); }
.fidelite__solde { padding: 26px 22px; }
.fidelite__points { font-size: 56px; }
.recompense { grid-template-columns: 80px minmax(0, 1fr); row-gap: 10px; }
.recompense b { font-size: 16px; }
.recompense em { grid-column: 2; justify-self: start; }
}
/* =========================================================
   Page 404 : « Sortie de piste »
   ========================================================= */
.introuvable { position: relative; overflow: hidden; background: var(--asphalte); color: #fff; padding: clamp(96px, 10vw, 150px) var(--gouttiere) clamp(72px, 8vw, 120px); display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 72px; align-items: end; }
.introuvable::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 28px; background: repeating-conic-gradient(#fff 0 25%, var(--carbone) 0 50%) 0 0 / 28px 28px; }
.introuvable__code { margin-bottom: 4px; font: 800 clamp(120px, 20vw, 300px)/.85 var(--mono); letter-spacing: -.06em; color: transparent; -webkit-text-stroke: 2px rgba(255,255,255,.4); }
.introuvable__titre { font: 900 italic clamp(48px, 7vw, 104px)/.9 var(--display); font-stretch: 125%; letter-spacing: -.03em; text-transform: uppercase; }
.introuvable__intro { max-width: 520px; margin-top: 24px; font-size: 19px; color: rgba(255,255,255,.88); }
.introuvable__actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 36px; }
.introuvable__liens { display: grid; gap: 10px; }
.introuvable__lib { margin-bottom: 6px; font: 600 12px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.introuvable__lien { padding: 18px 22px; background: rgba(255,255,255,.07); border-left: 4px solid var(--rouge); transition: background .2s; }
.introuvable__lien:hover { background: rgba(255,255,255,.13); }
.introuvable__lien p:first-child a { font: 900 italic 20px var(--display); font-stretch: 118%; text-transform: uppercase; color: #fff; text-decoration: none; }
.introuvable__lien p:first-child a::after { content: " →"; font-style: normal; }
.introuvable__lien p + p { margin-top: 4px; font-size: 14px; color: rgba(255,255,255,.7); }

@media (max-width: 860px) {.introuvable { grid-template-columns: minmax(0, 1fr); gap: 48px; }
}
/* Accueil : meilleur chrono du mois (à la place de l'exemple de réservation de groupe) */
.carte-chrono__piste { margin-top: 10px; font: 600 13px var(--mono); color: #46525B; }
.carte-chrono__temps { margin-top: 14px; font: 800 64px/1 var(--mono); letter-spacing: -.05em; color: var(--vert); }
.carte-chrono__pilote { margin-top: 6px; font: 900 italic 22px/1.05 var(--display); font-stretch: 115%; text-transform: uppercase; }
.carte-chrono__podium { list-style: none; margin: 18px 0 16px; padding: 0; border-top: 1px solid #E1E5E8; }
.carte-chrono__podium li { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid #E1E5E8; font-weight: 700; font-size: 15px; }
.carte-chrono__podium em { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; flex: none; font: normal 800 12px var(--mono); background: var(--craie); }
.carte-chrono__podium strong { margin-left: auto; font: 700 14px var(--mono); color: #46525B; }
.carte-chrono__defi a { font-weight: 700; font-size: 15px; color: #12813C; text-decoration: none; }
.carte-chrono__defi a::after { content: " →"; }
.carte-chrono__podium li:nth-child(1) em { background: #E6EAEE; color: #4A5560; }
.carte-chrono__podium li:nth-child(2) em { background: #F4E3D2; color: #8A5A2B; }
/* Modules Apex Timing en iframe (classements en direct) */
iframe.axiframe { display: block; width: 100%; border: 0; }
.carte-chrono iframe.axiframe { margin-top: 12px; }
.records { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere); }
.records .tete-section { padding: 0; margin-bottom: 40px; }
.records iframe.axiframe { min-height: 600px; background: #fff; }
/* Espace pilote branché sur le module Apex */
.compte__intro { margin: -16px 0 24px; max-width: 640px; color: #46525B; }
.compte__module { background: #fff; }
.compte__module iframe { display: block; width: 100%; min-height: 520px; border: 0; }
.bord__record iframe.axiframe { margin: 14px 0 12px; }
.bord__liens { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 14px; }
.compte__note { margin-top: 24px; font-size: 14px; color: var(--gris); }
.compte__note a { color: inherit; }
.compte__pilote .avatar { font-size: 22px; }
.bord__plus { margin: 26px 0 30px; max-width: 420px; }
.bord__plus li { font-size: 15px; }
.bord__plus li::before { background: #fff; }

/* plus de QR code dans la carte rouge : pas besoin de réserver sa place en haut */
@media (max-width: 1240px) { .compte .bord__prochaine { padding-top: 36px; } }

@media (max-width: 860px) {.compte .bord__prochaine { padding-top: 28px; }
}
/* =========================================================
   Benchmark : barre utilitaire, labels, bons plans, direct, FAQ, lettre d'infos
   ========================================================= */

/* Barre utilitaire (ordinateur) : ouverture en direct, téléphone, raccourcis */
.utile { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 8px var(--gouttiere); background: var(--craie); border-bottom: 1px solid #E4E0D8; font: 600 12px/1.3 var(--mono); letter-spacing: .04em; color: var(--asphalte); }
.utile .ouverture { margin: 0; }
.utile__liens { display: flex; gap: 28px; margin: 0; }
.utile__liens a { color: inherit; text-decoration: none; text-transform: uppercase; }
.utile__liens a:hover { color: var(--rouge); }
.utile__liens a:first-child { font-weight: 800; }

@media (max-width: 860px) {.utile { display: none; }
}

@media (min-width: 861px) {.hero .ouverture { display: none; }
}
/* Labels de confiance sous les chiffres clés */
.labels { max-width: var(--max); margin: 0 auto; padding: 8px var(--gouttiere) 48px; }
.labels__liste { list-style: none; margin: 0; padding: 22px 0 0; border-top: 1px solid #E1E5E8; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px 32px; }
.labels__liste li { display: flex; align-items: baseline; gap: 8px; font-size: 14px; color: var(--gris); }
.labels__liste strong { font: 900 italic 15px var(--display); font-stretch: 115%; text-transform: uppercase; color: var(--asphalte); }
/* Bons plans (cartes d'offres avec lien) */
.bons-plans { padding-top: 40px; }
.bons-plans .offre__pour a { color: inherit; text-decoration: none; }
.bons-plans .offre__pour a::after { content: " →"; }
/* Records : suivre la course en direct */
.records__direct { margin-top: 28px; text-align: center; }
/* Page FAQ : sections empilées */
.faq--page { padding-top: 96px; padding-bottom: 0; }
.faq--page:last-of-type { padding-bottom: 120px; }
/* Lettre d'infos en haut du pied de page */
.pied__lettre { max-width: var(--max); margin: 0 auto 72px; padding-bottom: 56px; border-bottom: 1px solid rgba(255,255,255,.14); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 56px; align-items: center; }
.pied__lettre-titre { font: 900 italic clamp(26px, 3vw, 40px)/1 var(--display); font-stretch: 120%; text-transform: uppercase; color: #fff; margin-bottom: 10px; }
.pied__lettre-texte p:not(.pied__lettre-titre) { font-size: 15px; }
.lettre { display: flex; gap: 0; }
.lettre input { flex: 1; min-width: 0; padding: 16px 18px; border: 0; font: inherit; font-size: 16px; color: var(--asphalte); background: #fff; }
.lettre .bouton, .lettre .wp-block-button.bouton > .wp-block-button__link { clip-path: none; white-space: nowrap; }
.pied__lettre-rgpd { grid-column: 2; font-size: 12px; color: rgba(255,255,255,.6); }
.pied__lettre-rgpd a { color: inherit; }

@media (max-width: 860px) {.pied__lettre { grid-template-columns: minmax(0, 1fr); margin-bottom: 56px; }
.pied__lettre-rgpd { grid-column: 1; }
.labels__liste { justify-content: flex-start; }
}
.labels__liste li { flex-direction: column; align-items: flex-start; gap: 2px; }
.faq--page h2 { font-size: clamp(30px, 3.2vw, 46px); }
/* ---------- Nos formules (page activités) : onglets et cartes de prix ---------- */
.catalogue { max-width: var(--max); margin: 0 auto; padding: 120px var(--gouttiere) 40px; }
.catalogue .tete-section { padding: 0; }
.catalogue__corps { max-width: none; margin-top: 40px; }
.catalogue .onglets__liste { background: var(--asphalte); border-bottom: 3px solid var(--rouge); padding: 0 12px; overflow-x: auto; scrollbar-width: none; }
.catalogue .onglets__btn { color: rgba(255,255,255,.6); padding: 18px 16px; margin: 0; white-space: nowrap; flex-shrink: 0; }
.catalogue .onglets__btn:hover { color: #fff; }
.catalogue .onglets__btn.est-actif { color: #fff; }
.catalogue .onglets__btn.est-actif::after { left: 16px; right: 16px; bottom: -3px; background: var(--rouge); }
.catalogue .onglets__panneau { padding-top: 32px; }
.catalogue__intro { color: #46525B; max-width: 720px; margin-bottom: 28px; }
.catalogue__cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
.formule-carte { background: #fff; border: 1px solid #E1E5E8; border-top: 4px solid var(--asphalte); padding: 24px 22px 22px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; transition: transform .2s, border-color .2s; }
.formule-carte:hover { transform: translateY(-3px); border-color: var(--asphalte); }
.formule-carte__haut { font: 600 12px var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--rouge); }
.formule-carte h3 { font: 900 italic 24px/1.05 var(--display); font-stretch: 118%; text-transform: uppercase; }
.formule-carte__desc { color: #46525B; font-size: 15px; line-height: 1.5; flex: 1; }
.formule-carte__prix { font: 800 40px/1 var(--mono); letter-spacing: -.04em; margin-top: 8px; white-space: nowrap; }
.formule-carte__prix em { font-family: var(--display); font-size: 13px; font-weight: 500; font-style: normal; letter-spacing: 0; color: var(--gris); }
.formule-carte__condition { font-size: 13px; font-weight: 600; background: var(--craie); padding: 4px 10px; border-radius: 100px; }
.formule-carte .bouton, .formule-carte .wp-block-button.bouton > .wp-block-button__link { margin-top: 12px; }
.formule-carte--rouge { background: var(--rouge); border-color: var(--rouge); color: #fff; }
.formule-carte--rouge:hover { border-color: var(--rouge); }
.formule-carte--rouge .formule-carte__haut { color: #fff; opacity: .85; }
.formule-carte--rouge .formule-carte__desc { color: rgba(255,255,255,.9); }
.formule-carte--rouge .formule-carte__prix em { color: rgba(255,255,255,.8); }
.formule-carte--rouge .formule-carte__condition { background: rgba(0,0,0,.18); }
.catalogue__infos { list-style: none; margin: 28px 0 0; padding: 22px 24px; background: #fff; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px 28px; font-size: 14px; color: #46525B; }
.catalogue__infos li { padding-left: 18px; position: relative; }
.catalogue__infos li::before { content: ""; position: absolute; left: 0; top: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--rouge); }
.catalogue__infos strong { display: block; color: var(--asphalte); }

@media (max-width: 860px) {.catalogue { padding-top: 72px; }
.catalogue .onglets__liste { margin: 0 calc(var(--gouttiere) * -1); padding: 0 var(--gouttiere); }
.catalogue .onglets__btn { padding: 16px 12px; font-size: 13px; }
.formule-carte__prix { font-size: 34px; }
}
.formule-carte__prix small { font-size: 14px; letter-spacing: 0; font-weight: 600; margin-right: 2px; }
/* Contrastes (accessibilité, audit du 15/10/2026) */
.challenges__titre h2 em { color: #FF7A82; }
.onglets__btn { color: rgba(255,255,255,.88); }
.suivi__total b, .suivi__total__val, .suivi__liste .ok em { color: #0E7A37; }
.bord__groupe .suivi__total b, .bord__groupe .suivi__total__val { color: #fff; }
.suivi__liste .attente em { color: #A35C00; }
.tableau__tete, figure.tableau__sessions th { color: #B9C4CB; }
figure.tableau__sessions em { color: #5FE38F; }



/* =========================================================
   ADAPTATIONS WORDPRESS
   Le CSS d'un bloc est imprimé APRÈS cette feuille : toute surcharge d'un
   style de bloc doit être plus spécifique, pas seulement plus tardive.
   ========================================================= */

/* ---------- Boutons : la classe est sur le conteneur core/button ---------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.wp-block-button.bouton, .wp-block-button.bouton:hover {
  display: inline-flex; padding: 0; margin: 0; background: none; border: 0; clip-path: none; transform: none;
}
.wp-block-button.bouton > .wp-block-button__link { display: inline-flex; align-items: center; gap: 10px; border-radius: 0; text-decoration: none; word-break: normal; }
.kart .wp-block-buttons, .formulaire .wp-block-buttons { align-self: flex-start; }
.final__texte .wp-block-buttons, .entreprises__ctas .wp-block-buttons, .hero__ctas .wp-block-buttons { flex: none; }

/* ---------- Liens fléchés : paragraphe porteur de la classe ---------- */
p.lien-fleche { margin: 0; }
.lien-fleche > a { display: inline-block; color: inherit; }

/* ---------- En-tête : logo, navigation core, compte ---------- */
.entete .wp-block-site-logo { flex: none; line-height: 0; }
.entete .wp-block-site-logo img { width: auto; height: 72px; }
.wp-block-navigation.entete__nav {
  margin: 0 auto; font: 700 13px/1 var(--display); font-stretch: 105%; text-transform: uppercase; letter-spacing: .02em;
}
.wp-block-navigation.entete__nav .wp-block-navigation__container { gap: 18px; white-space: nowrap; flex-wrap: nowrap; }
/* le menu garde sa largeur (comme sur la maquette) : sinon « Contact » passe à la ligne entre 1421 et 1480 px */
.wp-block-navigation.entete__nav, .wp-block-navigation.entete__nav .wp-block-navigation__responsive-container, .wp-block-navigation.entete__nav .wp-block-navigation__responsive-close, .wp-block-navigation.entete__nav .wp-block-navigation__responsive-dialog, .wp-block-navigation.entete__nav .wp-block-navigation__responsive-container-content { flex-shrink: 0; }
.wp-block-navigation.entete__nav .wp-block-navigation-item__content { position: relative; padding: 6px 0; text-decoration: none; color: var(--asphalte); }
.wp-block-navigation.entete__nav .wp-block-navigation-item__content::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 2px; background: var(--rouge); transition: right .25s;
}
.wp-block-navigation.entete__nav .wp-block-navigation-item__content:hover::after,
.wp-block-navigation.entete__nav .current-menu-item > .wp-block-navigation-item__content::after { right: 0; }
.wp-block-navigation.entete__nav .current-menu-item > .wp-block-navigation-item__content { color: var(--rouge); }
.wp-block-navigation.entete__nav .wp-block-navigation__responsive-container-open { color: var(--asphalte); padding: 8px; }
.wp-block-navigation.entete__nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; fill: currentColor; }

/* Menu « toujours en burger » : sur grand écran, on affiche les liens en ligne */
@media (min-width: 1421px) {
  .wp-block-navigation.entete__nav .wp-block-navigation__responsive-container-open { display: none; }
  .wp-block-navigation.entete__nav .wp-block-navigation__responsive-container.hidden-by-default:not(.is-menu-open) {
    display: block; position: relative; inset: auto; width: auto; z-index: auto; background-color: inherit; padding: 0;
  }
  .wp-block-navigation.entete__nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; }
  .wp-block-navigation.entete__nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content { display: flex; }
}
@media (max-width: 1420px) {
  .wp-block-navigation.entete__nav { margin: 0 0 0 auto; order: 3; }
  .entete__actions { margin-left: 0; }
}

/* Panneau du menu ouvert : fond bleu, grands liens (le CSS du bloc pose le blanc après cette feuille) */
.wp-block-navigation.entete__nav .wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--asphalte) !important; color: #fff !important; padding: 110px var(--gouttiere) 40px;
}
.wp-block-navigation.entete__nav .is-menu-open { --navigation-layout-justification-setting: flex-start; --navigation-layout-justify: flex-start; --navigation-layout-align: flex-start; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__responsive-container-close { color: #fff; top: 28px; right: var(--gouttiere); }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 34px; height: 34px; fill: currentColor; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__container { gap: 4px; align-items: flex-start; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item__content {
  font: 900 italic clamp(28px, 7vw, 44px)/1.1 var(--display); font-stretch: 120%; text-transform: uppercase; color: #fff; padding: 2px 0;
}
.wp-block-navigation.entete__nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: var(--rouge); }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item__content::after { display: none; }

/* Lien « Mon compte » : icône dessinée en CSS, libellé visible sur les très grands écrans */
.entete__compte { margin: 0; }
.entete__compte a { display: flex; align-items: center; gap: 8px; font: 700 0px/1 var(--display); color: var(--asphalte); text-decoration: none; }
.entete__compte a::before {
  content: ""; width: 22px; height: 22px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (min-width: 1601px) { .entete__compte a { font-size: 14px; } }
.entete .wp-block-button.bouton > .wp-block-button__link { padding: 12px 22px; font-size: 14px; }
@media (max-width: 860px) {
  .entete .wp-block-site-logo img { height: 52px; }
  .entete__actions .wp-block-buttons { display: none; }
}
.admin-bar .entete { top: 32px; }
@media (max-width: 782px) { .admin-bar .entete { top: 46px; } }

/* ---------- Pied de page ---------- */
.pied__logo img[src] { width: 160px; height: auto; }
.pied p { margin: 0; }
.pied__col p + p { margin-top: 14px; }

/* Barre « Réserver » mobile : conteneur core/buttons */
.wp-block-buttons.barre-mobile { display: none; }
@media (max-width: 860px) {
  .wp-block-buttons.barre-mobile {
    display: flex; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 60;
    transform: translateY(140%); transition: transform .3s;
  }
  .wp-block-buttons.barre-mobile.est-visible { transform: none; }
  .wp-block-buttons.barre-mobile .wp-block-button { flex: 1; }
  .wp-block-buttons.barre-mobile .wp-block-button__link {
    display: flex; justify-content: center; gap: 10px; width: 100%; padding: 17px; border-radius: 0;
    background: var(--rouge); color: #fff; text-decoration: none;
    font: 800 italic 16px var(--display); font-stretch: 112%; text-transform: uppercase;
    box-shadow: 0 14px 30px rgba(188,24,35,.4);
  }
  .wp-block-buttons.barre-mobile .wp-block-button__link::after { content: "→"; }
}

/* ---------- Actualités : requêtes d'articles ---------- */
.wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.wp-block-post-featured-image { margin: 0; }
.wp-block-post-featured-image a { display: block; height: 100%; }
.wp-block-post-title a { color: inherit; text-decoration: none; }
.wp-block-post-title a:hover { color: var(--rouge); }
.actu__meta time { font: inherit; }
/* accueil : l'article à la une à gauche, les trois suivants à droite */
.actus__liste { grid-template-rows: auto; align-items: start; }
.actus__une .actu--une { padding: 0; border: 0; }
.actus__suite .wp-block-post-template { display: grid; }
.actus__suite .actu { padding: 24px 0; border-top: 2px solid var(--asphalte); }
.actu--une .actu--une__image { aspect-ratio: 16 / 10; overflow: hidden; margin-bottom: 22px; }
.actu--une .actu--une__image img[src] { width: 100%; height: 100%; object-fit: cover; }
.actu--une .wp-block-post-title { font-size: clamp(26px, 2.6vw, 36px); font-weight: 900; font-stretch: 110%; font-style: italic; letter-spacing: -.01em; line-height: 1.2; }
/* page Actualités : la requête porte la classe de la maquette, la grille passe à la liste d'articles */
.wp-block-query.journal__grille { display: block; }
.journal__grille .wp-block-post-template { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 28px; }
.journal__une-requete .journal__une__image img[src], .carte-actu .carte-actu__image img[src] { width: 100%; height: 100%; object-fit: cover; }
.journal__une-requete .wp-block-post-title { font-size: clamp(26px, 2.6vw, 38px); line-height: 1.05; text-transform: none; }
.journal__une-texte .wp-block-post-excerpt__excerpt { color: #46525B; margin: 18px 0 24px; }
.wp-block-post-excerpt__more-text { margin: 0; }
.wp-block-post-excerpt__more-link {
  font-weight: 800; font-stretch: 112%; font-style: italic; text-transform: uppercase; font-size: 14px; letter-spacing: .03em;
  text-decoration: none; border-bottom: 2px solid currentColor; padding-bottom: 3px; color: inherit;
}
.wp-block-post-excerpt__more-link::after { content: " →"; }
/* catégorie · date */
.actu__meta { display: flex; flex-wrap: wrap; }
.actu__meta a { color: inherit; text-decoration: none; }
@media (max-width: 860px) {
  .journal__grille .wp-block-post-template { grid-template-columns: minmax(0, 1fr); gap: 40px; }
}

/* ---------- Articles ---------- */
.article__date { font: 600 14px var(--mono); text-transform: uppercase; letter-spacing: .08em; margin-top: 22px; }
.phero__titre--article { font-size: clamp(36px, 4.4vw, 72px); text-transform: none; }
.article__corps { max-width: 760px; margin: 0 auto; padding: 88px var(--gouttiere) 40px; font-size: 18px; line-height: 1.7; }
.article__corps > * + * { margin-top: 1.1em; }
.article__corps h2 { font-size: clamp(26px, 3vw, 38px); margin-top: 1.6em; }
.article__retour { max-width: 760px; margin: 0 auto; padding: 0 var(--gouttiere) 120px; }
.phero .wp-block-post-featured-image { position: absolute; top: 0; right: 0; bottom: 0; width: 44%; clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%); }
.phero .wp-block-post-featured-image img[src] { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1240px) { .phero .wp-block-post-featured-image { width: 38%; } .phero__titre--article { font-size: clamp(34px, 3.8vw, 52px); } }
/* téléphone : la photo de l'article passe au-dessus du titre, comme les autres bandeaux */
@media (max-width: 860px) {
  .phero .wp-block-post-featured-image { position: relative; inset: auto; order: -1; width: calc(100% + 2 * var(--gouttiere)); height: 240px; margin: 0 calc(-1 * var(--gouttiere)) 28px; clip-path: polygon(0 0, 100% 0, 100% 80%, 0 100%); }
  .phero__titre--article { font-size: clamp(30px, 8.6vw, 46px); line-height: 1.05; }
  .article__date { margin-top: 16px; }
}

/* ---------- Modules Apex Timing ---------- */
.apex-module { max-width: var(--max); margin: 0 auto; padding: 72px var(--gouttiere) 120px; }
.apex-module__cadre { width: 100%; min-height: 900px; border: 0; background: #fff; }
.apex-module--attente { text-align: center; }
.apex-module--attente .apex-module__titre { font: 900 italic clamp(28px, 3vw, 44px)/1.1 var(--display); font-stretch: 120%; text-transform: uppercase; margin-bottom: 18px; }
.apex-module--attente p:last-child { max-width: 560px; margin: 0 auto; color: #46525B; }

/* ---------- Contact Form 7 : mêmes champs que la maquette ---------- */
.wpcf7 .formulaire { margin: 0; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7 .formulaire label { display: flex; flex-direction: column; gap: 6px; }
.wpcf7-not-valid-tip { color: var(--rouge); font-size: 13px; margin-top: 4px; }
.wpcf7 form .wpcf7-response-output { margin: 18px 0 0; padding: 14px 18px; border: 2px solid var(--asphalte); font-size: 15px; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--vert); }
.wpcf7-spinner { display: none; }

/* ---------- Galerie, onglets : les classes d'état sont posées par app.js ---------- */
.onglets__btn, .filtre { user-select: none; }

/* liens fléchés : le lien se comporte comme dans la maquette, sans étirer son paragraphe */
p.lien-fleche { display: flex; }
.activite__texte > p.lien-fleche, .profil > p.lien-fleche { flex: none; }

/* accueil : les trois actualités se partagent la hauteur de l'article à la une, comme dans la maquette */
.actus__liste { align-items: stretch; }
.actus__suite, .actus__suite .wp-block-post-template { height: 100%; }
.actus__suite .wp-block-post-template { grid-template-rows: repeat(3, minmax(0, 1fr)); }
@media (max-width: 860px) { .actus__suite, .actus__suite .wp-block-post-template { height: auto; } .actus__suite .wp-block-post-template { grid-template-rows: none; } }
/* carte rouge des activités : le conteneur de boutons prend la place du bouton dans la grille */
.activite--rouge .wp-block-buttons { grid-column: 3; grid-row: 1 / 3; }
@media (max-width: 860px) { .activite--rouge .wp-block-buttons { grid-column: 1; grid-row: auto; } }

/* Sélecteur de langue dans le pied de page (fond bleu) */
.pied__bas .langues a { color: rgba(255,255,255,.7); }
.pied__bas .langues a:hover { color: #fff; }
.pied__bas .langues strong { color: #fff; }
@media (max-width: 700px) { .pied__bas { flex-direction: column; gap: 10px; } }

/* École : boutons de prise de rendez-vous */
.wp-block-buttons.inscription__rdv { gap: 16px; }

/* CF7 : la zone de texte ne doit pas reposer sur la ligne de base (9 px de vide dessous) */
.wpcf7-form-control-wrap > textarea, .wpcf7-form-control-wrap > select { display: block; }

/* Modules Apex en iframe */
.apex-module iframe { display: block; width: 100%; border: 0; min-height: 420px; }
.apex-module--integre { max-width: none; margin: 0; padding: 0; }
.apex-module--mini-classement iframe { min-height: 0; }

/* Menu mobile : le flou de l’en-tête enfermait le menu plein écran dans la hauteur de l’en-tête */
.entete:has(.wp-block-navigation__responsive-container.is-menu-open) { -webkit-backdrop-filter: none; backdrop-filter: none; }
/* la croix se place par rapport au panneau entier (pas au dialogue décalé), et le contenu n'ajoute pas sa propre marge */
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__responsive-close,
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__responsive-dialog { position: static; }
.wp-block-navigation.entete__nav .wp-block-navigation__responsive-container.is-menu-open { padding-top: 96px; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; }
/* la liste porte aussi la classe entete__nav (centrée sur ordinateur) : pas de marge automatique dans le menu ouvert */
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__container { margin: 0; }

/* Barre utilitaire : paragraphes sans marge */
.utile > p { margin: 0; }

/* Menu mobile : raccourcis (réserver, compte, cartes cadeaux, langue) visibles seulement menu ouvert */
.wp-block-navigation.entete__nav .nav-mobile { display: none; }
.wp-block-navigation.entete__nav .is-menu-open .nav-mobile { display: flex; }
.wp-block-navigation.entete__nav .is-menu-open .nav-mobile .wp-block-navigation-item__content { font-size: 16px; font-stretch: 105%; color: rgba(255,255,255,.75); }
.wp-block-navigation.entete__nav .is-menu-open .nav-mobile:first-of-type,
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) + .nav-mobile { margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.2); }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) + .nav-mobile .wp-block-navigation-item__content { color: #fff; }

/* Lettre d'infos (Contact Form 7) */
.pied__lettre .wpcf7 form .lettre { display: flex; }
.pied__lettre .lettre .wpcf7-form-control-wrap { flex: 1; min-width: 0; }
.pied__lettre .lettre input[type=email] { width: 100%; height: 100%; padding: 16px 18px; border: 0; font: inherit; font-size: 16px; color: var(--asphalte); background: #fff; }
.pied__lettre .lettre .wpcf7-submit { clip-path: none; white-space: nowrap; border: 0; cursor: pointer; }
.pied__lettre .wpcf7-spinner { display: none; }
.pied__lettre .wpcf7 form .wpcf7-response-output { margin: 12px 0 0; padding: 8px 12px; color: #fff; font-size: 14px; }
.pied__lettre .lettre .wpcf7-submit { background: var(--rouge); color: #fff; padding: 0 26px; font: 800 italic 15px/1 var(--display); font-stretch: 115%; text-transform: uppercase; letter-spacing: .02em; }
.pied__lettre .lettre .wpcf7-submit:hover { background: var(--rouge-fonce); }
.pied__lettre .lettre .wpcf7-submit { width: auto; flex: none; }

/* ---------- Menu téléphone, version 2 (retour d'Hugo du 14/10 : « assez moche ») ----------
   rubriques numérotées sur des lignes fines, « Réserver » en bouton rouge, raccourcis en pastilles */
.wp-block-navigation.entete__nav .wp-block-navigation__responsive-container.is-menu-open { padding: 84px var(--gouttiere) 36px; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__responsive-container-content::before {
  content: "Menu"; position: absolute; top: 38px; left: var(--gouttiere);
  font: 600 12px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.55);
}
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__responsive-container-close { top: 26px; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation__container {
  display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 0 8px !important; width: 100%; counter-reset: nav;
}
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) {
  flex: 0 0 100%; border-bottom: 1px solid rgba(255,255,255,.12); counter-increment: nav;
  animation: menu-entree .35s both;
}
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile):first-child { border-top: 1px solid rgba(255,255,255,.12); }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) > .wp-block-navigation-item__content {
  display: flex; align-items: center; gap: 16px; width: 100%; padding: 14px 0;
  font: 900 italic 22px/1.1 var(--display); font-stretch: 116%; letter-spacing: .01em;
}
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) > .wp-block-navigation-item__content::before {
  content: counter(nav, decimal-leading-zero); flex: none; width: 22px;
  font: 600 11px/1 var(--mono); font-style: normal; letter-spacing: .04em; color: rgba(255,255,255,.45);
}
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) > .wp-block-navigation-item__content::after {
  content: "→"; display: block !important; position: static; margin-left: auto; height: auto; background: none;
  font: 400 18px/1 var(--mono); font-style: normal; color: rgba(255,255,255,.35); transition: transform .2s, color .2s;
}
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) > .wp-block-navigation-item__content:hover::after { transform: translateX(4px); color: #fff; }
.wp-block-navigation.entete__nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content::before,
.wp-block-navigation.entete__nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content::after { color: var(--rouge); }
.wp-block-navigation.entete__nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content { color: #fff; }
.wp-block-navigation.entete__nav .is-menu-open .current-menu-item { box-shadow: inset 4px 0 0 var(--rouge); padding-left: 14px; }

/* raccourcis : le premier (Réserver) en bouton rouge pleine largeur, les autres en pastilles */
.wp-block-navigation.entete__nav .is-menu-open .nav-mobile,
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) + .nav-mobile { margin: 10px 0 0; padding: 0; border: 0; }
.wp-block-navigation.entete__nav .is-menu-open .nav-mobile .wp-block-navigation-item__content {
  font: 700 13px/1 var(--display); font-style: normal; font-stretch: 105%; text-transform: uppercase; letter-spacing: .03em;
  color: #fff; border: 1px solid rgba(255,255,255,.3); border-radius: 100px; padding: 10px 14px;
}
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) + .nav-mobile { flex: 0 0 100%; margin: 28px 0 6px; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:not(.nav-mobile) + .nav-mobile .wp-block-navigation-item__content {
  display: flex; justify-content: center; width: 100%; padding: 18px 20px; border: 0; border-radius: 0;
  background: var(--rouge); font: 900 italic 17px/1 var(--display); font-stretch: 116%;
  clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%);
}
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: 50ms; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: 75ms; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: 100ms; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: 125ms; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:nth-child(6) { animation-delay: 150ms; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:nth-child(7) { animation-delay: 175ms; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:nth-child(8) { animation-delay: 200ms; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:nth-child(9) { animation-delay: 225ms; }
.wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item:nth-child(10) { animation-delay: 250ms; }
@keyframes menu-entree { from { opacity: 0; transform: translateX(-12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .wp-block-navigation.entete__nav .is-menu-open .wp-block-navigation-item { animation: none; } }

/* Alerte inscriptions école (Contact Form 7) : le champ e-mail est dans un conteneur, le bouton ne doit pas rétrécir */
.periode__alerte .wpcf7-form-control-wrap { flex: 1; min-width: 0; display: block; }
.periode__alerte .wpcf7-form-control-wrap input { width: 100%; height: 100%; }
.periode__alerte .wpcf7-submit, .periode__alerte .bouton { flex: none; white-space: nowrap; }
.periode__alerte .wpcf7-spinner { display: none; }
.periode .wpcf7-response-output { margin: 10px 0 0; font-size: 14px; }
.periode .wpcf7-not-valid-tip { position: absolute; font-size: 13px; }
.periode__alerte .wpcf7-submit { font: 900 italic 15px/1 var(--display); font-stretch: 112%; text-transform: uppercase; padding: 0 22px; border: 0; cursor: pointer; }
@media (max-width: 600px) {
  .periode__alerte { flex-direction: column; gap: 10px; }
  .periode__alerte input { border-right: 2px solid #D5DBDF; }
  .periode__alerte .wpcf7-submit { padding: 16px 22px; width: 100%; }
}

/* Réservation rapide en mode « demande par e-mail » (tant qu'Apex n'est pas actif) */
.resa-rapide__note { grid-column: 1 / -1; margin: 0; padding: 10px 26px; border-top: 1px solid #E1E5E8; font-size: 13px; line-height: 1.45; color: var(--gris); background: #fff; }
.resa-rapide__note a { color: var(--asphalte); font-weight: 700; }
.resa-rapide input[type="date"] { min-height: 1.3em; }
.resa-rapide input[type="date"]::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .6; }
