/*
Theme Name: Inwall Kart
Theme URI: https://www.inwallkart.com
Author: Inwall Kart
Description: Thème bloc sur mesure pour Inwall Kart, karting indoor aux Ponts-de-Cé. Tout le contenu est composé de blocs natifs, modifiables dans l'éditeur.
Version: 1.0.5
Requires at least: 6.6
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: inwall-kart
Tags: block-theme, full-site-editing
*/

:root {
  --noir: #0A0A0C;
  --noir-2: #131318;
  --noir-3: #1D1D24;
  --jaune: #FFE000;
  --blanc: #FFFFFF;
  --gris: #A6A6B3;
  --gris-clair: #D2D2DA;
  --trait: rgba(255,255,255,.12);
  --titre: "Barlow Condensed", "Arial Narrow", sans-serif;
  --texte: "Barlow", system-ui, sans-serif;
  --largeur: 1240px;
  --biais: 14px;
  --svg-cadeau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 150' fill='none' stroke='%230A0A0C' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M14 30l8-6M140 22l10 4M146 70l8-5M8 82l9 3' stroke-width='4'/%3E%3Ccircle cx='30' cy='12' r='4' fill='%230A0A0C' stroke='none'/%3E%3Ccircle cx='128' cy='48' r='4' fill='%230A0A0C' stroke='none'/%3E%3Ccircle cx='20' cy='58' r='3' fill='%230A0A0C' stroke='none'/%3E%3Crect x='28' y='72' width='104' height='72' fill='%230A0A0C'/%3E%3Crect x='20' y='52' width='120' height='26' fill='%23FFE000'/%3E%3Cpath d='M72 52v92h16V52z' fill='%23FFE000'/%3E%3Cpath d='M80 52c-10-22-38-30-38-12 0 12 20 12 38 12zM80 52c10-22 38-30 38-12 0 12-20 12-38 12z' fill='%23FFE000'/%3E%3C/svg%3E");
  --svg-cadeau-jaune: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 150' fill='none' stroke='%23FFE000' stroke-width='5' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M14 30l8-6M140 22l10 4M146 70l8-5M8 82l9 3' stroke-width='4'/%3E%3Ccircle cx='30' cy='12' r='4' fill='%23FFE000' stroke='none'/%3E%3Ccircle cx='128' cy='48' r='4' fill='%23FFE000' stroke='none'/%3E%3Ccircle cx='20' cy='58' r='3' fill='%23FFE000' stroke='none'/%3E%3Crect x='28' y='72' width='104' height='72' fill='%23FFE000'/%3E%3Crect x='20' y='52' width='120' height='26' fill='%230A0A0C'/%3E%3Cpath d='M72 52v92h16V52z' fill='%230A0A0C'/%3E%3Cpath d='M80 52c-10-22-38-30-38-12 0 12 20 12 38 12zM80 52c10-22 38-30 38-12 0 12-20 12-38 12z' fill='%230A0A0C'/%3E%3C/svg%3E");
  --svg-podium: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 170 150' stroke-linejoin='round'%3E%3Cg fill='%23FFE000' stroke='%230A0A0C' stroke-width='3'%3E%3Cpath d='M62 6h46v24a23 23 0 0 1-46 0z'/%3E%3Cpath d='M80 53h10v10H80z'/%3E%3Cpath d='M70 63h30v8H70z'/%3E%3C/g%3E%3Cpath d='M62 12H48v8a16 16 0 0 0 16 16M108 12h14v8a16 16 0 0 1-16 16' fill='none' stroke='%23FFE000' stroke-width='5'/%3E%3Cpath d='M76 22l5 5 9-10' fill='none' stroke='%230A0A0C' stroke-width='4' stroke-linecap='round'/%3E%3Cg stroke='%230A0A0C' stroke-width='3'%3E%3Crect x='58' y='78' width='54' height='70' fill='%23FFE000'/%3E%3Crect x='6' y='100' width='52' height='48' fill='%23FFFFFF'/%3E%3Crect x='112' y='114' width='52' height='34' fill='%23FFFFFF'/%3E%3C/g%3E%3Cg font-family='Arial Narrow, Arial, sans-serif' font-style='italic' font-weight='700' text-anchor='middle' fill='%230A0A0C'%3E%3Ctext x='85' y='122' font-size='34'%3E1%3C/text%3E%3Ctext x='32' y='134' font-size='28'%3E2%3C/text%3E%3Ctext x='138' y='140' font-size='24'%3E3%3C/text%3E%3C/g%3E%3C/svg%3E");
  --fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M4 12h15M13 5l7 7-7 7'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
* { box-sizing: border-box; }
html { overflow-x: clip; scroll-padding-top: 90px; }
body {
  margin: 0; background: var(--noir); color: var(--blanc);
  font-family: var(--texte); font-size: 17px; line-height: 1.6;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; } /* height:auto : sinon l'attribut height des blocs image l'emporte sur aspect-ratio */
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 {
  margin: 0; font-family: var(--titre); font-style: italic; font-weight: 800;
  text-transform: uppercase; line-height: .92; letter-spacing: -.01em;
  hyphens: none; text-wrap: balance;
}
h1 em, h2 em, h3 em { font-style: italic; color: var(--jaune); }
p { margin: 0; }

/* Espacement automatique de Gutenberg : coupé dans theme.json (blockGap 0),
   filet de sécurité ici à spécificité nulle — jamais en .wp-block-group > *. */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image { margin: 0; }
:where(.wp-block-post-content) > * { margin-block: 0; }
.wp-site-blocks > * { margin-block: 0; }

.conteneur { width: min(var(--largeur), 100% - 40px); margin-inline: auto; }

/* ---------- Surtitres ---------- */
.surtitre {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--titre); font-weight: 700; font-style: italic;
  font-size: 18px; letter-spacing: .12em; text-transform: uppercase; color: var(--jaune);
  margin-bottom: 14px;
}
.surtitre::before { content: ""; width: 34px; height: 4px; background: var(--jaune); transform: skewX(-20deg); }

/* ---------- Boutons (classe sur le conteneur .wp-block-button) ---------- */
.wp-block-buttons.boutons { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.wp-block-buttons.boutons--centre { justify-content: center; margin-top: 44px; }
.wp-block-button[class*="b-"] .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 30px; border: 0; border-radius: 0;
  font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 20px; line-height: 1.6;
  letter-spacing: .04em; text-transform: uppercase;
  clip-path: polygon(var(--biais) 0, 100% 0, calc(100% - var(--biais)) 100%, 0 100%);
  transition: transform .2s, background .2s, color .2s;
}
.wp-block-button[class*="b-"] .wp-block-button__link:hover { transform: translateX(4px); }
.wp-block-button.b-jaune .wp-block-button__link { background: var(--jaune); color: var(--noir); }
.wp-block-button.b-jaune .wp-block-button__link:hover { background: var(--blanc); }
.wp-block-button.b-noir .wp-block-button__link { background: var(--noir); color: var(--jaune); }
.wp-block-button.b-noir .wp-block-button__link:hover { background: var(--blanc); color: var(--noir); }
.wp-block-button.b-contour .wp-block-button__link { background: transparent; color: var(--blanc); box-shadow: inset 0 0 0 2px var(--blanc); clip-path: none; }
.wp-block-button.b-contour .wp-block-button__link:hover { box-shadow: inset 0 0 0 2px var(--jaune); color: var(--jaune); transform: none; }
.wp-block-button.fleche .wp-block-button__link::after,
.wp-block-button.telecharger .wp-block-button__link::after {
  content: ""; width: 20px; height: 20px; background: currentColor;
  -webkit-mask: var(--fleche) center / contain no-repeat; mask: var(--fleche) center / contain no-repeat;
}
.wp-block-button.telecharger .wp-block-button__link::after {
  --fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='square'%3E%3Cpath d='M12 3v13M6 11l6 6 6-6M4 21h16'/%3E%3C/svg%3E");
}
/* Pilules de l'en-tête */
.wp-block-button.b-pilule-jaune .wp-block-button__link,
.wp-block-button.b-pilule-contour .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 26px;
  border-radius: 999px; white-space: nowrap; clip-path: none;
  font-family: var(--titre); font-weight: 800; font-style: italic; font-size: 18px; text-transform: uppercase;
  transition: background .2s, color .2s, box-shadow .2s;
}
.wp-block-button.b-pilule-jaune .wp-block-button__link { background: var(--jaune); color: var(--noir); }
.wp-block-button.b-pilule-jaune .wp-block-button__link:hover { background: var(--blanc); transform: none; }
.wp-block-button.b-pilule-contour .wp-block-button__link { background: transparent; box-shadow: inset 0 0 0 2px var(--blanc); color: var(--blanc); }
.wp-block-button.b-pilule-contour .wp-block-button__link:hover { box-shadow: inset 0 0 0 2px var(--jaune); color: var(--jaune); transform: none; }

/* ---------- En-tête ---------- */
.entete {
  position: fixed; inset: 0 0 auto; z-index: 60;
  background: linear-gradient(180deg, rgba(10,10,12,.85), rgba(10,10,12,0));
  transition: background .3s, box-shadow .3s;
}
.admin-bar .entete { top: 32px; }
.entete--pleine { background: #141414; box-shadow: 0 10px 30px -12px rgba(0,0,0,.7); }
.entete__rangee { display: flex; align-items: center; gap: 28px; height: 84px; }
.entete .logo { flex: none; margin: 0; }
.entete .logo img { height: 44px; width: auto; }
.entete__actions { display: flex; align-items: center; gap: 10px; flex: none; }
.entete nav.menu { margin-left: auto; }
.entete .menu .wp-block-navigation-item__content {
  font-family: var(--titre); font-weight: 700; font-style: italic; font-size: 19px;
  letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; transition: color .2s; padding: 0;
}
.entete .menu .wp-block-navigation-item__content:hover,
.entete .menu .current-menu-item > .wp-block-navigation-item__content,
.entete .menu .wp-block-navigation-item__content.actif { color: var(--jaune); }

/* Bouton d'ouverture du menu (rond, comme la maquette) */
.entete .wp-block-navigation__responsive-container-open {
  width: 48px; height: 48px; border: 2px solid var(--blanc); border-radius: 999px; color: var(--blanc);
  align-items: center; justify-content: center; padding: 0;
}
.entete .wp-block-navigation__responsive-container-open svg,
.entete .wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; }

/* Grand écran : le menu s'affiche en ligne (overlayMenu "always" gère le mobile) */
@media (min-width: 1181px) {
  .entete .wp-block-navigation__responsive-container-open { display: none !important; }
  .entete .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: block; position: static; width: auto; height: auto; padding: 0; background: transparent; z-index: auto;
  }
  .entete .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; }
  .entete .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 26px; }
  .entete .wp-block-navigation.menu { flex-wrap: nowrap; }
  .entete .menu .mobile-seul,
  .entete .menu .wp-block-navigation-item:has(> .mobile-seul),
  .entete .menu li:has(> .wp-block-social-links) { display: none !important; }
}
/* Panneau mobile ouvert (le CSS du bloc est imprimé APRÈS cette feuille : spécificité renforcée) */
.wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open {
  background-color: #141414 !important; color: var(--blanc) !important;
  padding: 24px 24px 40px; top: 0;
}
.admin-bar .wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open { top: 46px; }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-close { top: 18px; right: 20px; width: 48px; height: 48px; border: 2px solid var(--blanc); border-radius: 999px; display: grid; place-items: center; }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 70px; align-items: stretch; }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__container { width: 100%; gap: 0 !important; align-items: stretch !important; }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation-item { width: 100%; }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation-item__content {
  width: 100%; font-size: 34px !important; padding: 14px 0 !important; border-bottom: 1px solid var(--trait);
}
.wp-block-navigation.menu .is-menu-open .menu__actions { display: flex; flex-direction: column; gap: 12px; width: 100%; margin-top: 30px; }
.wp-block-navigation.menu .is-menu-open .menu__actions .wp-block-button { width: 100%; }
.wp-block-navigation.menu .is-menu-open .menu__actions .wp-block-button__link { width: 100%; min-height: 56px; font-size: 20px; }
.wp-block-navigation.menu .is-menu-open .reseaux { justify-content: center; margin-top: 18px; }
/* Ordre de la maquette : liens, puis boutons, puis réseaux */
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__container > *:has(.menu__actions), .wp-block-navigation.menu .is-menu-open .wp-block-navigation__container > .menu__actions { order: 50; }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__container > *:has(.wp-block-social-links), .wp-block-navigation.menu .is-menu-open .wp-block-navigation__container > .wp-block-social-links { order: 51; }

/* ---------- Héros de l'accueil ---------- */
.hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden; background: var(--noir); }
.hero__photo { position: absolute; inset: 0; z-index: 0; }
.hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(90deg, rgba(10,10,12,.96) 0%, rgba(10,10,12,.78) 40%, rgba(10,10,12,.1) 75%),
    linear-gradient(0deg, rgba(10,10,12,1) 0%, rgba(10,10,12,0) 40%);
}
.hero::after { /* lignes de vitesse */
  content: ""; position: absolute; z-index: 1; right: -8%; top: 0; bottom: 0; width: 46%;
  background: repeating-linear-gradient(105deg, transparent 0 42px, rgba(255,224,0,.9) 42px 50px, transparent 50px 110px);
  mask-image: linear-gradient(90deg, transparent, #000 60%);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 60%);
  opacity: .9; clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%);
}
.hero > .conteneur { position: relative; z-index: 2; padding: 160px 0 0; }
.hero__encadre {
  position: relative; max-width: 640px; margin-bottom: 56px;
  background: var(--jaune); color: var(--noir);
  padding: 44px 52px 50px;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 40px), calc(100% - 40px) 100%, 0 100%);
}
.hero__surtitre {
  margin-bottom: 18px;
  font-family: var(--titre); font-style: italic; font-weight: 800; font-size: clamp(18px, 1.7vw, 24px);
  letter-spacing: .1em; text-transform: uppercase; line-height: 1.3;
}
.hero__surtitre::before { content: ""; display: inline-block; vertical-align: middle; margin: -4px 12px 0 0; width: 40px; height: 6px; background: var(--noir); transform: skewX(-20deg); }
.hero__encadre h1 { font-size: clamp(46px, 5.4vw, 80px); margin-bottom: 20px; }
.hero__encadre h1 em { color: inherit; }
.hero__encadre p:not(.hero__surtitre) { font-size: 18px; font-weight: 500; color: #1E1E1E; max-width: 500px; margin-bottom: 30px; }
.hero__compteurs { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--trait); }
.compteur { padding: 26px 0 34px 28px; border-right: 1px solid var(--trait); }
.compteur:first-child { padding-left: 0; }
.compteur:last-child { border-right: 0; }
.compteur__chiffre { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 60px; line-height: 1; color: var(--jaune); }
.compteur__label { font-family: var(--titre); font-style: italic; font-weight: 600; font-size: 18px; text-transform: uppercase; letter-spacing: .08em; color: var(--gris); }

/* ---------- Bandeau défilant ---------- */
.defile {
  position: relative; z-index: 3; background: var(--jaune); color: var(--noir);
  transform: rotate(-2deg); margin: -22px -20px 0; padding: 16px 0; overflow: hidden;
  box-shadow: 0 20px 40px -10px rgba(0,0,0,.6);
}
.defile__piste { display: flex; width: max-content; animation: defile 28s linear infinite; }
.defile__piste p {
  display: inline-flex; align-items: center; gap: 28px; padding-right: 28px;
  font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 34px; text-transform: uppercase; white-space: nowrap;
}
.defile__piste p::after { content: ""; width: 26px; height: 26px; background: conic-gradient(var(--noir) 25%, transparent 0 50%, var(--noir) 0 75%, transparent 0) 0 0 / 13px 13px; }
@keyframes defile { to { transform: translateX(-50%); } }

/* ---------- Sections ---------- */
.section { padding: 130px 0; position: relative; }
.section--gris { background: var(--noir-2); }
.section--damier { margin-top: 16px; }
.section--damier::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; background: conic-gradient(var(--blanc) 25%, var(--noir) 0 50%, var(--blanc) 0 75%, var(--noir) 0) 0 0 / 16px 16px; }
.tete { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 60px; }
.tete h2 { font-size: clamp(52px, 7vw, 96px); }
.tete > p { max-width: 380px; color: var(--gris); }
.tete .wp-block-buttons { flex: none; }

/* ---------- Cartes de formules ---------- */
.cartes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.carte {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--noir-3); padding: 34px 28px 30px; min-height: 460px;
  display: flex; flex-direction: column;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 34px), calc(100% - 34px) 100%, 0 100%);
  transition: transform .3s;
}
.carte:hover { transform: translateY(-8px); }
.carte::after { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 5px; background: var(--jaune); transform: scaleX(0); transform-origin: left; transition: transform .35s; }
.carte:hover::after { transform: scaleX(1); }
.carte__fond { position: absolute; inset: 0; z-index: -2; }
.carte__fond img { width: 100%; height: 100%; object-fit: cover; }
.carte--photo {
  background: var(--noir); clip-path: none;
  box-shadow: inset 0 0 0 5px var(--jaune), 0 0 0 1px var(--jaune), 0 24px 60px -18px rgba(255,224,0,.45);
}
.carte--photo::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(10,10,12,.15) 0%, rgba(10,10,12,.75) 42%, rgba(10,10,12,.97) 72%);
}
.carte.carte--sobre { box-shadow: none; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 34px), calc(100% - 34px) 100%, 0 100%); }
.carte--jaune { background: var(--jaune); color: var(--noir); }
.carte__num { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 20px; color: var(--jaune); letter-spacing: .1em; }
.carte--jaune .carte__num { color: var(--noir); }
.carte h3 { font-size: 44px; margin: auto 0 14px; }
.carte > p:is(:not([class]), [class="wp-block-paragraph"]) { color: var(--gris-clair); font-size: 16px; margin-bottom: 22px; }
.carte--jaune > p:is(:not([class]), [class="wp-block-paragraph"]) { color: #2A2A2A; }
.carte__prix { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 64px; line-height: 1; margin-bottom: 4px; }
.carte__prix em { font-size: 18px; font-weight: 600; margin-left: 6px; letter-spacing: .04em; }
.carte__lien a {
  margin-top: 18px; display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 20px; text-transform: uppercase; letter-spacing: .04em;
}
.carte__lien a::after {
  content: ""; width: 20px; height: 20px; background: var(--jaune); transition: transform .2s;
  -webkit-mask: var(--fleche) center / contain no-repeat; mask: var(--fleche) center / contain no-repeat;
}
.carte--jaune .carte__lien a::after { background: var(--noir); }
.carte:hover .carte__lien a::after { transform: translateX(6px); }
/* Illustrations des cartes (décor, posé sur le titre) */
.carte--cadeau h3::before, .carte--podium h3::before {
  content: ""; display: block; height: 140px; margin: 22px auto 22px; background: center / contain no-repeat; transition: transform .35s;
}
.carte--cadeau h3::before { width: 150px; background-image: var(--svg-cadeau); }
.carte--podium h3::before { width: 170px; background-image: var(--svg-podium); filter: drop-shadow(0 10px 18px rgba(0,0,0,.6)); }
.carte:hover h3::before { transform: rotate(-4deg) scale(1.05); }

/* ---------- Bandeau réserver ---------- */
.bandeau-resa {
  margin-top: 28px; display: flex; align-items: center; justify-content: space-between; gap: 28px;
  background: var(--noir-3); border-left: 8px solid var(--jaune); padding: 30px 40px;
}
.bandeau-resa__texte { display: grid; grid-template-columns: 46px 1fr; column-gap: 22px; align-items: center; }
.bandeau-resa__texte::before { grid-row: 1 / span 2; width: 46px; height: 46px; }
.bandeau-resa__titre { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 36px; line-height: 1; text-transform: uppercase; margin-bottom: 6px; }
.bandeau-resa__texte p:not(.bandeau-resa__titre) { color: var(--gris-clair); font-size: 17px; }
.bandeau-resa .wp-block-buttons { flex: none; }

/* ---------- Piste ---------- */
.section--piste::before {
  content: "600M"; position: absolute; right: -2%; top: 40px; z-index: 0; pointer-events: none;
  font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 380px; line-height: .8;
  color: transparent; -webkit-text-stroke: 2px rgba(255,255,255,.07);
}
.piste { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.piste h2 { font-size: clamp(48px, 6vw, 84px); margin-bottom: 26px; }
.piste__intro { color: var(--gris-clair); font-size: 19px; margin-bottom: 34px; }
.liste { list-style: none; margin: 0 0 40px; padding: 0; display: grid; }
.liste li { display: flex; gap: 18px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--trait); font-size: 18px; font-weight: 600; }
.liste li::before { content: ""; flex: none; width: 22px; height: 7px; background: var(--jaune); transform: skewX(-20deg); }
.liste a { color: var(--jaune); }
.piste__visuel { position: relative; }
.piste__visuel::before { content: ""; position: absolute; inset: 28px -28px -28px 28px; background: var(--jaune); clip-path: polygon(0 0, 100% 0, 100% 100%, 8% 100%); }
.piste__visuel .photo { position: relative; }
.piste__visuel .photo img { width: 100%; aspect-ratio: 4/4.4; object-fit: cover; clip-path: polygon(0 0, 100% 0, 100% 100%, 8% 100%); }
.piste__plan { position: absolute; left: -70px; bottom: 40px; width: 220px; padding: 16px; background: var(--noir); border: 2px solid var(--jaune); transform: rotate(-4deg); }
.piste__plan p { margin-top: 8px; text-align: center; font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 18px; text-transform: uppercase; color: var(--jaune); }

/* ---------- Avantages ---------- */
.avantages { background: var(--jaune); color: var(--noir); padding: 110px 0; clip-path: polygon(0 60px, 100% 0, 100% calc(100% - 60px), 0 100%); margin: -30px 0; position: relative; z-index: 2; }
.avantages .surtitre { color: var(--noir); }
.avantages .surtitre::before { background: var(--noir); }
.avantages h2 em { color: inherit; }
.avantages__grille { display: grid; grid-template-columns: 1.1fr 1.4fr; gap: 64px; align-items: center; }
.avantages h2 { font-size: clamp(48px, 6vw, 88px); margin-bottom: 30px; }
.avantages__volant { max-width: 420px; }
.avantages__volant img { width: 100%; aspect-ratio: 4/3; object-fit: cover; clip-path: polygon(0 0, 100% 0, 100% 100%, 8% 100%); }
.avantages__volant { filter: drop-shadow(14px 14px 0 var(--noir)); }
.atouts { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 3px solid var(--noir); }
.atout { display: flex; align-items: center; gap: 18px; padding: 24px 12px 24px 0; border-bottom: 3px solid var(--noir); font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 28px; text-transform: uppercase; line-height: 1; }
.atout::before { width: 36px; height: 36px; background: var(--noir) !important; }
.atout:nth-child(odd) { border-right: 3px solid var(--noir); }
.atout:nth-child(even) { padding-left: 24px; }
.atout:last-child { grid-column: 1 / -1; border-right: 0; }

/* ---------- Actualités (boucle de requête) ---------- */
.actus { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 20px; }
.actus > li { position: relative; background: var(--noir-3); overflow: hidden; display: flex; flex-direction: column; margin: 0; }
.actu__image { margin: 0; overflow: hidden; width: 100%; }
.actu__image a { display: block; }
.actu__image img { width: 100%; aspect-ratio: 16/10; object-fit: cover; transition: transform .5s; }
.actus > li:first-child .actu__image img { aspect-ratio: 16/12; }
.actus > li:hover .actu__image img { transform: scale(1.05); }
.actu__corps { padding: 24px 26px 30px; }
.actu__corps .wp-block-post-date, .article__corps .wp-block-post-date, .article__date {
  font-family: var(--titre); font-style: italic; font-weight: 700; font-size: 17px; letter-spacing: .1em; text-transform: uppercase; color: var(--jaune);
}
.actu__corps .wp-block-post-title { font-size: 34px; margin: 10px 0 12px; }
.actus > li:first-child .wp-block-post-title { font-size: 46px; }
.actu__corps .wp-block-post-excerpt, .article__corps .wp-block-post-excerpt { color: var(--gris); font-size: 16px; margin: 0; }
.wp-block-post-excerpt__excerpt { margin: 0; }
.wp-block-post-excerpt__more-text { margin: 12px 0 0; }
.wp-block-post-excerpt__more-link { color: var(--jaune); font-family: var(--titre); font-style: italic; font-weight: 800; text-transform: uppercase; }

/* ---------- Avis ---------- */
.avis { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.wp-block-quote.avis__carte { margin: 0; background: var(--noir-3); padding: 40px 44px; border: 0; border-top: 5px solid var(--jaune); }
.wp-block-quote.avis__carte::before { content: "★★★★★"; display: block; color: var(--jaune); font-size: 28px; letter-spacing: 4px; margin-bottom: 16px; }
.wp-block-quote.avis__carte p { margin: 0 0 22px; font-size: 20px; line-height: 1.5; color: var(--blanc); }
.wp-block-quote.avis__carte cite { display: block; font-style: normal; font-size: 15px; color: var(--gris); }
.wp-block-quote.avis__carte cite strong { color: var(--blanc); }

/* ---------- Contact ---------- */
.contact { display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: start; }
.contact h2 { font-size: clamp(48px, 6vw, 84px); margin-bottom: 44px; }
.infos { display: grid; border-top: 1px solid var(--trait); }
.info { padding: 26px 0; border-bottom: 1px solid var(--trait); }
.info h3 { font-size: 18px; color: var(--jaune); letter-spacing: .1em; margin-bottom: 8px; }
.info__valeur { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 34px; line-height: 1.05; text-transform: uppercase; }
.info__rue { margin-bottom: 4px; font-size: 16px; color: var(--gris-clair); }
.info__note { margin-top: 6px; color: var(--gris); font-size: 16px; }
.info__note a { color: var(--jaune); }
.info__plan a, .pied__plan a {
  display: inline-block; margin-top: 10px; font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 18px; text-transform: uppercase; color: var(--jaune);
}
.info__plan a::after, .pied__plan a::after { content: " →"; }
.info__plan a:hover, .pied__plan a:hover { color: var(--blanc); }
.lien-faq a { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 20px; text-transform: uppercase; color: var(--jaune); }
.lien-faq a::before { content: "?"; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--jaune); color: var(--noir); font-size: 20px; }
.lien-faq a:hover { color: var(--blanc); }

/* Formulaire de contact du thème (code court [inwall_contact], sans extension) */
.formulaire { background: var(--noir-3); padding: 44px 40px 48px; border-top: 5px solid var(--jaune); }
.formulaire .formulaire__form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 18px; margin: 0; }
.formulaire .champ { grid-column: 1 / -1; display: grid; gap: 8px; }
.formulaire .champ--demi { grid-column: auto; }
.formulaire .champ label, .formulaire .champ .champ__label { font-family: var(--titre); font-style: italic; font-weight: 700; font-size: 17px; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); }
.formulaire input[type="text"], .formulaire input[type="email"], .formulaire input[type="tel"], .formulaire select, .formulaire textarea {
  display: block; width: 100%; font: inherit; font-size: 17px; line-height: 1.6; color: var(--blanc);
  background: var(--noir); border: 2px solid transparent; border-bottom-color: rgba(255,255,255,.25);
  padding: 14px 16px; min-height: 52px; border-radius: 0; outline: none; transition: border-color .2s;
}
.formulaire select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--jaune) 50%), linear-gradient(-45deg, transparent 50%, var(--jaune) 50%); background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 44px; }
.formulaire textarea { resize: vertical; min-height: 140px; }
.formulaire ::placeholder { color: #6E6E7A; }
.formulaire input:focus, .formulaire select:focus, .formulaire textarea:focus { border-color: var(--jaune); }
.formulaire .rgpd { grid-column: 1 / -1; font-size: 14px; color: var(--gris); }
.formulaire .rgpd label { display: flex; gap: 14px; align-items: flex-start; cursor: pointer; }
.formulaire .rgpd input { flex: none; width: 24px; height: 24px; margin: 0; accent-color: var(--jaune); }
.formulaire .envoyer { grid-column: 1 / -1; }
.formulaire input[type="submit"] {
  justify-self: start; border: 0; cursor: pointer; padding: 16px 30px; background: var(--jaune); color: var(--noir);
  font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 20px; letter-spacing: .04em; text-transform: uppercase;
  clip-path: polygon(var(--biais) 0, 100% 0, calc(100% - var(--biais)) 100%, 0 100%); transition: background .2s;
}
.formulaire input[type="submit"]:hover { background: var(--blanc); }
.formulaire .champ__erreur { color: var(--jaune); font-size: 14px; }
.formulaire .formulaire__retour { grid-column: 1 / -1; margin: 0; padding: 14px 18px; border: 2px solid var(--jaune); color: var(--blanc); }
.formulaire .formulaire__retour--ok { background: var(--jaune); color: var(--noir); font-weight: 600; }
/* Piège à robots : hors écran, jamais rempli par un humain. */
.formulaire .piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Pied de page ---------- */
.chronos { padding-top: 110px; }
.pied { position: relative; background: var(--noir); border-top: 1px solid var(--trait); }
.pied::before { content: ""; display: block; height: 16px; background: conic-gradient(var(--blanc) 25%, var(--noir) 0 50%, var(--blanc) 0 75%, var(--noir) 0) 0 0 / 16px 16px; }
.pied__cta { padding: 110px 0 90px; text-align: center; }
.pied__cta h2 { font-size: clamp(110px, 17vw, 260px); line-height: .85; }
.pied__cta .wp-block-buttons.boutons--centre { margin-top: 40px; }
.pied__note { margin-top: 22px; color: var(--gris); font-size: 16px; }
.pied__haut { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; padding: 60px 0; border-top: 1px solid var(--trait); }
.pied__logo { margin: 0 0 20px; }
.pied__logo img { height: 46px; width: auto; }
.pied__coordonnees p { color: var(--gris); }
.pied h4 { margin: 0 0 16px; font-size: 20px; letter-spacing: .08em; color: var(--jaune); }
.pied__liens { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; color: var(--gris-clair); }
.pied__liens a:hover { color: var(--jaune); }
.pied__bas { display: flex; justify-content: space-between; gap: 16px; padding: 22px 0 30px; border-top: 1px solid var(--trait); font-size: 14px; color: var(--gris); }

/* Réseaux sociaux (bloc natif Icônes de réseaux sociaux) */
.wp-block-social-links.reseaux { display: flex; gap: 10px; margin: 20px 0 0; padding: 0; }
.wp-block-social-links.reseaux .wp-social-link { background: none !important; color: var(--blanc) !important; border-radius: 50%; box-shadow: inset 0 0 0 2px var(--blanc); transition: background .2s, box-shadow .2s; margin: 0; }
.wp-block-social-links.reseaux .wp-social-link a { width: 44px; height: 44px; padding: 0; display: grid; place-items: center; }
.wp-block-social-links.reseaux .wp-social-link svg { width: 20px; height: 20px; }
.wp-block-social-links.reseaux .wp-social-link:hover { background: var(--jaune) !important; color: var(--noir) !important; box-shadow: none; transform: none; }

/* Barre de réservation mobile */
.wp-block-buttons.barre-mobile { display: none; }

/* Bandeau cookies (functions.php) */
.bandeau-cookies {
  position: fixed; left: 24px; bottom: 24px; z-index: 80; max-width: 460px; padding: 22px 24px;
  background: var(--noir-3); color: var(--blanc); border-top: 5px solid var(--jaune); box-shadow: 0 10px 40px rgba(0,0,0,.55);
  font-size: 15px; line-height: 1.55;
}
.bandeau-cookies[hidden] { display: none; }
.bandeau-cookies p { margin: 0 0 16px; color: var(--gris-clair); }
.bandeau-cookies strong { display: block; margin-bottom: 4px; font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 20px; letter-spacing: .04em; text-transform: uppercase; color: var(--blanc); }
.bandeau-cookies a { color: var(--jaune); text-decoration: underline; }
.bandeau-cookies__choix { display: flex; gap: 12px; }
.bandeau-cookies__bouton {
  flex: 1; cursor: pointer; padding: 12px 18px; border: 2px solid var(--jaune); background: transparent; color: var(--jaune);
  font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 18px; letter-spacing: .04em; text-transform: uppercase;
  transition: background .2s, color .2s;
}
.bandeau-cookies__bouton:hover, .bandeau-cookies__bouton:focus-visible { background: var(--jaune); color: var(--noir); }

/* ============ Pages intérieures ============ */
.entete-page {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 560px; display: flex; align-items: flex-end;
  padding: 150px 0 90px; background: var(--noir);
}
.entete-page__photo { position: absolute; inset: 0; z-index: -2; }
.entete-page__photo img { width: 100%; height: 100%; object-fit: cover; }
.entete-page::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(10,10,12,.95) 0%, rgba(10,10,12,.75) 45%, rgba(10,10,12,.25) 100%),
              linear-gradient(0deg, rgba(10,10,12,1) 0%, rgba(10,10,12,0) 45%);
}
.entete-page::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 12px; background: var(--jaune); clip-path: polygon(0 0, 38% 0, 36% 100%, 0 100%); }
.entete-page--simple { min-height: 440px; background: var(--noir-2); }
.ariane { margin-bottom: 22px; font-family: var(--titre); font-style: italic; font-weight: 700; font-size: 16px; letter-spacing: .08em; text-transform: uppercase; color: var(--jaune); }
.ariane a { color: var(--gris); }
.ariane a:hover { color: var(--jaune); }
.entete-page h1 { font-size: clamp(60px, 9vw, 140px); margin-bottom: 22px; }
.entete-page .chapeau { max-width: 620px; font-size: 20px; color: #E6E6EC; }

.grille-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.grille-2 + .grille-2 { margin-top: 120px; }
.grille-2--inverse > :first-child { order: 2; }
.bloc h2 { font-size: clamp(44px, 5.2vw, 76px); margin-bottom: 24px; }
.bloc > p:is(:not([class]), [class="wp-block-paragraph"]) { color: var(--gris-clair); font-size: 18px; margin-bottom: 18px; }
.bloc > .wp-block-list.liste { margin-top: 26px; margin-bottom: 40px; } /* WP retire la marge basse du dernier enfant : spécificité renforcée */
.wp-block-buttons.boutons--appli { margin-top: 26px; gap: 14px; }
.wp-block-button.appli-lien .wp-block-button__link { display: inline-flex; align-items: center; gap: 12px; padding: 12px 22px; border: 2px solid var(--blanc); border-radius: 999px; background: none; color: var(--blanc); font-family: var(--texte); font-size: 17px; font-weight: 600; font-style: normal; line-height: 1.6; text-transform: none; }
.wp-block-button.appli-lien .wp-block-button__link:hover { border-color: var(--jaune); color: var(--jaune); }
.photo-cadre { position: relative; }
.photo-cadre::before { content: ""; position: absolute; inset: 24px -24px -24px 24px; background: var(--jaune); clip-path: polygon(0 0, 100% 0, 100% 100%, 8% 100%); }
.photo-cadre img { position: relative; width: 100%; aspect-ratio: 4/3.2; object-fit: cover; clip-path: polygon(0 0, 100% 0, 100% 100%, 8% 100%); }
.photo-cadre--libre::before { display: none; }
.photo-cadre--libre img { clip-path: none; aspect-ratio: auto; filter: drop-shadow(0 30px 40px rgba(0,0,0,.6)); }

.fiches { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.fiches--4 { grid-template-columns: repeat(4, 1fr); }
.fiche { background: var(--noir-3); padding: 34px 30px 36px; border-top: 5px solid var(--jaune); }
.fiche::before { width: 40px; height: 40px; margin-bottom: 25px; }
.fiche h3 { font-size: 32px; margin-bottom: 10px; }
.fiche > p:is(:not([class]), [class="wp-block-paragraph"]) { color: #C9C9D2; font-size: 16px; }
.fiche__prix { margin-top: 18px; font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 48px; line-height: 1; color: var(--jaune); }
.fiche__prix em { font-size: 17px; color: var(--gris); margin-left: 6px; }
.fiche--jaune { background: var(--jaune); color: var(--noir); border-top-color: var(--noir); }
.fiche--jaune::before { background: var(--noir) !important; }
.fiche--jaune .fiche__prix { color: var(--noir); }
.fiche--jaune > p:is(:not([class]), [class="wp-block-paragraph"]), .fiche--jaune .fiche__prix em { color: #2A2A2A; }
.fiche--jaune h3 em { color: inherit; }

.tarifs-bloc + .tarifs-bloc { margin-top: 90px; }
.tarifs-bloc > h2 { font-size: clamp(44px, 5vw, 72px); margin-bottom: 8px; }
.tarifs-bloc > p:is(:not([class]), [class="wp-block-paragraph"]) { color: var(--gris); margin-bottom: 30px; }

/* Tableaux (bloc natif Tableau) — spécificité renforcée face au CSS du bloc */
.wp-block-table.tableau { margin: 0; overflow-x: visible; }
.wp-block-table.tableau table { width: 100%; border-collapse: collapse; }
.wp-block-table.tableau thead { border: 0; }
.wp-block-table.tableau th, .wp-block-table.tableau td { text-align: left; padding: 22px 18px; border: 0; border-bottom: 1px solid var(--trait); vertical-align: middle; }
.wp-block-table.tableau thead th { font-family: var(--titre); font-style: italic; font-weight: 700; font-size: 16px; letter-spacing: .1em; text-transform: uppercase; color: var(--gris); border-bottom: 2px solid var(--jaune); padding-top: 0; }
.wp-block-table.tableau td { color: #C9C9D2; font-size: 16px; }
.wp-block-table.tableau td:first-child { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 28px; text-transform: uppercase; line-height: 1.05; color: var(--blanc); }
.wp-block-table.tableau td:last-child, .wp-block-table.tableau th:last-child { text-align: right; white-space: nowrap; }
.wp-block-table.tableau td:last-child { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 40px; line-height: 1; color: var(--jaune); }
.wp-block-table.tableau thead th:last-child { font-size: 40px; line-height: 1; color: var(--jaune); font-weight: 800; letter-spacing: 0; }
.wp-block-table.tableau td:last-child em { display: block; font-size: 15px; color: var(--gris); letter-spacing: .04em; }
.wp-block-table.tableau tbody tr { transition: background .2s; }
.wp-block-table.tableau tbody tr:hover { background: var(--noir-3); }
.wp-block-table.tableau--horaires td:first-child { font-size: 24px; }
.wp-block-table.tableau--horaires td:not(:first-child) { font-family: var(--titre); font-style: italic; font-weight: 700; font-size: 22px; color: var(--blanc); white-space: nowrap; text-align: left; }
.wp-block-table.tableau.tableau--horaires thead th:last-child { text-align: left; font-size: 16px; line-height: 1.6; color: var(--gris); font-weight: 700; letter-spacing: .1em; }

.encart { display: grid; grid-template-columns: 34px 1fr; column-gap: 22px; background: var(--jaune); color: var(--noir); padding: 28px 34px; margin-top: 40px; }
.encart::before { grid-row: 1 / span 2; width: 34px; height: 34px; background: var(--noir) !important; }
.encart .encart__titre { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 26px; text-transform: uppercase; line-height: 1.1; margin-bottom: 4px; }
.encart p { font-size: 16px; }
.encart a { text-decoration: underline; font-weight: 600; }

.etapes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 60px; }
.etape { display: grid; grid-template-columns: 40px 1fr; column-gap: 18px; align-items: start; background: var(--noir-3); padding: 26px 26px 28px; }
.etape::before { grid-row: 1 / span 2; width: 40px; height: 40px; }
.etape__titre { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 26px; text-transform: uppercase; line-height: 1.05; margin-bottom: 6px; }
.etape p:not(.etape__titre) { color: #C9C9D2; font-size: 15px; line-height: 27.2px; }

/* Widgets Apex Timing ([inwall_apex]) */
.apex { background: var(--noir-2); padding: 0; border-top: 6px solid var(--jaune); }
.apex iframe { display: block; width: 100%; border: 0; min-height: 400px; }

.regles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 60px; }
.regles li { padding: 18px 0; border-bottom: 1px solid var(--trait); color: var(--gris-clair); font-size: 17px; display: flex; gap: 16px; }
.regles li::before { content: ""; flex: none; margin-top: 11px; width: 18px; height: 6px; background: var(--jaune); transform: skewX(-20deg); }

.horaires-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.horaires-grille .tarifs-bloc + .tarifs-bloc { margin-top: 0; }
.adresse-rue { font-family: var(--titre); font-style: italic; font-weight: 700; font-size: 22px; text-transform: uppercase; letter-spacing: .04em; color: var(--gris-clair); margin-bottom: 6px; }

/* Liste des actualités (page /actualites/) */
.articles { list-style: none; margin: 0; padding: 0; display: grid; gap: 20px; }
.articles > li { display: grid; grid-template-columns: 380px 1fr; background: var(--noir-3); margin: 0; }
.article__image { margin: 0; height: 100%; }
.article__image a, .article__image img { display: block; width: 100%; height: 100%; min-height: 240px; object-fit: cover; }
.article__corps { padding: 34px 40px; align-self: center; }
.article__corps .wp-block-post-title { font-size: 40px; margin: 10px 0 12px; }
.article__corps .wp-block-post-excerpt { color: #C9C9D2; }
.pagination { margin-top: 40px; gap: 16px; font-family: var(--titre); font-style: italic; font-weight: 800; text-transform: uppercase; }
.pagination .current { color: var(--jaune); }
.article-contenu__image { margin: 0 0 40px; }

.texte-legal { max-width: 820px; }
.texte-legal h2 { font-size: 40px; margin: 50px 0 14px; }
.texte-legal h2:first-child { margin-top: 0; }
.texte-legal p, .texte-legal li { color: var(--gris-clair); }
.texte-legal a { color: var(--jaune); text-decoration: underline; }
.texte-legal h2 { scroll-margin-top: 110px; padding-top: 40px; border-top: 3px solid var(--jaune); }
.texte-legal h2:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
.texte-legal h3 { font-size: 24px; margin: 34px 0 10px; color: var(--blanc); }
.texte-legal p:not(.sommaire-legal) { margin: 0 0 14px; }
.texte-legal .sommaire-legal { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 56px; }
.texte-legal .sommaire-legal a {
  display: inline-block; padding: 10px 20px; border: 2px solid var(--jaune); color: var(--jaune); text-decoration: none;
  font-family: var(--titre); font-style: italic; font-weight: 700; font-size: 18px; letter-spacing: .04em; text-transform: uppercase;
  transition: background .2s, color .2s;
}
.texte-legal .sommaire-legal a:hover { background: var(--jaune); color: var(--noir); }
.article-contenu p + p { margin-top: 1em; }

/* FAQ (bloc natif Détails) */
.faq { max-width: 920px; }
.faq__groupe + .faq__groupe { margin-top: 70px; }
.faq__groupe h2 { font-size: clamp(40px, 4.6vw, 64px); margin-bottom: 20px; }
.wp-block-details.faq__item { border-bottom: 1px solid var(--trait); }
.wp-block-details.faq__item summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px;
  padding: 22px 0; font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 26px; text-transform: uppercase; line-height: 1.1;
  transition: color .2s;
}
.wp-block-details.faq__item summary::-webkit-details-marker { display: none; }
.wp-block-details.faq__item summary::after {
  content: ""; flex: none; width: 34px; height: 34px; background:
    linear-gradient(var(--jaune), var(--jaune)) center / 16px 3px no-repeat,
    linear-gradient(var(--jaune), var(--jaune)) center / 3px 16px no-repeat;
  box-shadow: inset 0 0 0 2px var(--jaune); border-radius: 50%; transition: transform .25s;
}
.wp-block-details.faq__item[open] summary::after { transform: rotate(45deg); }
.wp-block-details.faq__item summary:hover, .wp-block-details.faq__item[open] summary { color: var(--jaune); }
.wp-block-details.faq__item p { padding: 0 60px 24px 0; color: var(--gris-clair); font-size: 17px; }
.wp-block-details.faq__item p a { color: var(--jaune); text-decoration: underline; }

/* Visuels anniversaire et tickets cadeaux (illustrations en CSS) */
.grille-2--cadeau::after { content: ""; display: block; width: min(320px, 80%); aspect-ratio: 16/15; background: var(--svg-cadeau-jaune) center / contain no-repeat; }
.anniv-visuel, .cadeau-visuel {
  position: relative; background: var(--jaune); color: var(--noir); padding: 60px 40px 50px; text-align: center;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 44px), calc(100% - 44px) 100%, 0 100%);
}
.anniv-visuel::before, .cadeau-visuel::before { content: ""; display: block; width: min(300px, 80%); aspect-ratio: 16/15; margin: 0 auto; background: var(--svg-cadeau) center / contain no-repeat; }
.anniv-visuel .anniv-visuel__prix { margin-top: 20px; font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 72px; line-height: 1; }
.anniv-visuel__unite, .cadeau-visuel__texte { font-family: var(--titre); font-style: italic; font-weight: 800; font-size: 20px; letter-spacing: .06em; text-transform: uppercase; }
.cadeau-visuel__texte { margin-top: 20px; font-size: 26px; }
.anniv-visuel .anniv-visuel__unite { line-height: 1; }

/* ============ Icônes (masques CSS, couleur = fond) ============ */
[class*="ico-"]::before { content: ""; display: block; flex: none; background: var(--jaune); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.ico-appli { --ico: 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.2' stroke-linejoin='round'%3E%3Crect x='6' y='2' width='12' height='20' rx='2'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E"); }
.ico-buffet { --ico: 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.2' stroke-linejoin='round'%3E%3Cpath d='M3 11h18M5 11a7 7 0 0 1 14 0M4 15h16l-1.5 5h-13z'/%3E%3C/svg%3E"); }
.ico-cadeau { --ico: 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.2' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='13'/%3E%3Cpath d='M3 12h18M12 8v13'/%3E%3Cpath d='M12 8c-2-4-7-4-7-1s5 1 7 1c2 0 7 2 7-1s-5-3-7 1z'/%3E%3C/svg%3E"); }
.ico-calendrier { --ico: 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.2' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M8 15l2.5 2.5L16 12'/%3E%3C/svg%3E"); }
.ico-chrono { --ico: 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.2' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='13' r='8'/%3E%3Cpath d='M12 9v4l2.5 2.5M9 2h6'/%3E%3C/svg%3E"); }
.ico-ecran { --ico: 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.2' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14'/%3E%3Cpath d='M8 21h8M12 17v4'/%3E%3C/svg%3E"); }
.ico-mail { --ico: 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.2' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E"); }
.ico-message { --ico: 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.2' stroke-linejoin='round'%3E%3Cpath d='M4 4h16v12H8l-4 4z'/%3E%3C/svg%3E"); }
.ico-paiement { --ico: 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.2' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14'/%3E%3Cpath d='M2 10h20M6 15h4'/%3E%3C/svg%3E"); }
.ico-securite { --ico: 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.2' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M8.5 12l2.5 2.5 4.5-5'/%3E%3C/svg%3E"); }
.ico-stats { --ico: 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.2' stroke-linejoin='round'%3E%3Cpath d='M3 20h18M6 16v-5M11 16V8M16 16v-7M21 16V5'/%3E%3C/svg%3E"); }
.ico-tel { --ico: 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.2' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.ico-volant { --ico: 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.2' stroke-linejoin='round'%3E%3Cpath d='M3 9c0-2 1.5-3 3-3h12c1.5 0 3 1 3 3l-1.5 8c-.3 1.5-2 2-3 1l-2.5-3h-4L7.5 18c-1 1-2.7.5-3-1z'/%3E%3Crect x='9' y='8' width='6' height='4'/%3E%3C/svg%3E"); }

/* ============ Responsive ============ */
@media (prefers-reduced-motion: reduce) { .defile__piste { animation: none; } }

@media (max-width: 1420px) {
  .entete__actions .b-pilule-contour { display: none; }
}
@media (max-width: 1180px) {
  .entete__rangee { gap: 16px; }
  .entete nav.menu { order: 3; margin-left: 0; }
  .entete__actions { margin-left: auto; }
  .cartes { grid-template-columns: repeat(2, 1fr); }
  .avantages__grille, .piste { grid-template-columns: 1fr; }
  .actus { grid-template-columns: 1fr 1fr; }
  .actus > li:first-child { grid-column: 1 / -1; }
  .pied__haut { grid-template-columns: 1fr 1fr; }
  .contact { grid-template-columns: 1fr; gap: 50px; }
  .grille-2 { grid-template-columns: 1fr; gap: 60px; }
  .grille-2--inverse > :first-child { order: 0; }
  .fiches, .fiches--4 { grid-template-columns: 1fr 1fr; }
  .etapes { grid-template-columns: 1fr; }
  .horaires-grille { grid-template-columns: 1fr; }
  .articles > li { grid-template-columns: 280px 1fr; }
}
@media (max-width: 720px) {
  body { font-size: 16px; }
  .entete__rangee { height: 72px; }
  .entete .logo img { height: 38px; }
  .wp-block-buttons.entete__actions { display: none; } /* plus spécifique que .wp-block-buttons.is-layout-flex */
  .entete nav.menu { margin-left: auto; }
  .wp-block-navigation.menu .is-menu-open .wp-block-navigation-item__content { font-size: 30px !important; }
  .hero > .conteneur { padding-top: 120px; }
  .hero::before { background: linear-gradient(0deg, rgba(10,10,12,1) 5%, rgba(10,10,12,.7) 55%, rgba(10,10,12,.35) 100%); }
  .hero::after { width: 70%; opacity: .5; }
  .hero__encadre { padding: 28px 22px 34px; margin-bottom: 36px; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%); }
  .hero__encadre h1 { font-size: 40px; }
  .hero__encadre p:not(.hero__surtitre) { font-size: 16px; }
  .hero__encadre .wp-block-button, .hero__encadre .wp-block-button__link { width: 100%; }
  .hero__surtitre { font-size: 16px; }
  .hero__surtitre::before { width: 26px; }
  .compteur { padding: 18px 0 24px 14px; }
  .compteur__chiffre { font-size: 36px; }
  .compteur__label { font-size: 13px; }
  .defile__piste p { font-size: 24px; }
  .section { padding: 90px 0; }
  .tete { flex-direction: column; align-items: flex-start; margin-bottom: 40px; }
  .cartes, .actus { grid-template-columns: 1fr; }
  .carte { min-height: 380px; }
  .bandeau-resa { flex-direction: column; align-items: stretch; padding: 26px 22px; border-left-width: 6px; }
  .bandeau-resa__titre { font-size: 28px; }
  .piste { gap: 70px; }
  .section--piste::before { font-size: 200px; }
  .piste__visuel { margin-right: 28px; }
  .piste__plan { left: auto; right: -14px; bottom: -36px; width: 140px; padding: 10px; }
  .avantages { padding: 100px 0; clip-path: polygon(0 30px, 100% 0, 100% calc(100% - 30px), 0 100%); }
  .avantages__volant { max-width: 100%; margin-bottom: 20px; }
  .atouts { grid-template-columns: 1fr; }
  .atout, .atout:nth-child(even) { padding-left: 0; border-right: 0 !important; font-size: 24px; }
  .avis { grid-template-columns: 1fr; }
  .wp-block-quote.avis__carte { padding: 30px 24px; }
  .formulaire { padding: 30px 20px 34px; }
  .formulaire .formulaire__form { grid-template-columns: 1fr; }
  .formulaire .champ--demi { grid-column: 1 / -1; }
  .formulaire input[type="submit"] { justify-self: stretch; width: 100%; }
  .info__valeur { font-size: 28px; }
  .pied__haut { grid-template-columns: 1fr; }
  .pied__bas { flex-direction: column; padding-bottom: 100px; }
  .wp-block-buttons.barre-mobile {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; margin: 0;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: var(--noir); border-top: 2px solid var(--jaune);
  }
  .barre-mobile .wp-block-button { flex: 1; }
  .bandeau-cookies { left: 12px; right: 12px; bottom: 66px; max-width: none; padding: 18px 18px; }
  .barre-mobile .wp-block-button__link { width: 100%; min-height: 54px; clip-path: polygon(10px 0, 100% 0, calc(100% - 10px) 100%, 0 100%); }
  .entete-page { min-height: 440px; padding: 120px 0 60px; }
  .entete-page::before { background: linear-gradient(0deg, rgba(10,10,12,1) 5%, rgba(10,10,12,.72) 60%, rgba(10,10,12,.45) 100%); }
  .entete-page h1 { font-size: 52px; }
  .entete-page .chapeau { font-size: 17px; }
  .grille-2 + .grille-2 { margin-top: 80px; }
  .photo-cadre:not(.photo-cadre--libre) { margin-right: 24px; }
  .fiches, .fiches--4 { grid-template-columns: 1fr; }
  .wp-block-table.tableau thead { display: none; }
  .wp-block-table.tableau table, .wp-block-table.tableau tbody, .wp-block-table.tableau tr { display: block; width: 100%; }
  .wp-block-table.tableau tr { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 18px 0; border-bottom: 1px solid var(--trait); }
  .wp-block-table.tableau td { padding: 0; border: 0; grid-column: 1; }
  .wp-block-table.tableau td:first-child { font-size: 24px; }
  .wp-block-table.tableau td:last-child { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 34px; }
  .wp-block-table.tableau--horaires thead { display: block; }
  .wp-block-table.tableau--horaires thead tr { display: grid; grid-template-columns: 1fr 1fr 1fr; padding: 0 0 10px; border-bottom: 2px solid var(--jaune); }
  .wp-block-table.tableau--horaires thead th { border: 0; padding: 0; font-size: 13px; }
  .wp-block-table.tableau--horaires tr { grid-template-columns: 1fr 1fr 1fr; align-items: center; }
  .wp-block-table.tableau--horaires td, .wp-block-table.tableau--horaires td:last-child { grid-column: auto; grid-row: auto; font-size: 18px !important; text-align: left; }
  .encart { padding: 24px 22px; }
  .regles { grid-template-columns: 1fr; }
  .wp-block-details.faq__item summary { font-size: 21px; padding: 18px 0; }
  .wp-block-details.faq__item summary::after { width: 30px; height: 30px; }
  .wp-block-details.faq__item p { padding-right: 0; font-size: 16px; }
  .articles > li { grid-template-columns: 1fr; }
  .article__image a, .article__image img { min-height: 0; aspect-ratio: 16/9; height: auto; }
  .article__corps { padding: 24px 22px 28px; }
  .article__corps .wp-block-post-title { font-size: 32px; }
}
