/** Shopify CDN: Minification failed

Line 1490:0 Unexpected "}"

**/
/* ==========================================================================
   Rallye du Pyla — styles des sections rdp-* et ajustements d'Horizon.
   Mobile d'abord. Les couleurs d'événement passent par --evt-* (fiches événement).
   ========================================================================== */

:root {
  /* Couleurs — palette commune RDP + Chapeaux de Roues (Figma : CDR/*) */
  --rdp-vert0: #002417;
  --rdp-vert1: #034326;
  --rdp-vert2: #8fc691;
  --rdp-or: #b8985b;
  --rdp-rouge0: #210e0e;
  --rdp-rouge1: #530201;
  --rdp-rouge: #dd2e0b;
  --rdp-beige: #e7e6dc;
  --rdp-beige-fonce: #bdba9e;
  --rdp-blanc: #f4f4f0;
  --rdp-attenue: #5b7a6c;

  /* Familles */
  --rdp-titres: var(--font-heading--family);
  --rdp-texte: var(--font-body--family);
  --rdp-manuscrit: var(--font-manuscrit--family);
  --rdp-etiquettes: var(--font-etiquette--family);
  --rdp-fine: var(--font-fine--family);

  /* Échelle typographique (mobile 402 px → bureau 1440 px) */
  --rdp-t-display: clamp(34px, 4.45vw, 64px);   /* titres de section, hero */
  --rdp-t-grand: clamp(32px, 3.33vw, 48px);     /* accroches, arches, questions */
  --rdp-t-moyen: clamp(24px, 2.22vw, 32px);     /* titres de cartes */
  --rdp-t-bouton: 20px;                         /* boutons, onglets pastilles */
  --rdp-t-intertitre: 18px;                     /* listes, liens en capitales */
  --rdp-t-corps: 16px;                          /* texte courant */
  --rdp-t-petit: 14px;                          /* infos de cartes */
  --rdp-t-mini: 12px;                           /* mentions, légendes */
  --rdp-t-etiquette: clamp(10px, 0.9vw, 13px);  /* étiquettes Krona */
  --rdp-t-manuscrit: clamp(20px, 1.7vw, 24px);  /* phrases manuscrites */
  --rdp-t-hero: var(--rdp-t-display);
  --rdp-t-section: var(--rdp-t-display);

  /* Mise en page */
  --rdp-marge: clamp(16px, 4.45vw, 64px);
  --rdp-largeur-max: 1440px;
  --rdp-espace-section: clamp(64px, 8.4vw, 120px);
  --rdp-ombre: 0 2px 6px rgb(0 36 23 / 0.12), 0 12px 24px -12px rgb(0 36 23 / 0.25);
}

/* Styles de texte réutilisables */
.rdp-t-display,
.rdp-t-grand,
.rdp-t-moyen,
.rdp-t-intertitre {
  margin: 0;
  font-family: var(--rdp-titres);
  font-weight: var(--font-heading--weight, 400);
  line-height: 1.06;
  text-transform: uppercase;
  letter-spacing: 0;
  text-wrap: balance;
}
.rdp-t-display { font-size: var(--rdp-t-display); line-height: 1.05; }
.rdp-t-grand { font-size: var(--rdp-t-grand); }
.rdp-t-moyen { font-size: var(--rdp-t-moyen); }
.rdp-t-intertitre { font-size: var(--rdp-t-intertitre); }
.rdp-t-corps { font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); line-height: 1.35; }
.rdp-t-fine { font-family: var(--rdp-fine); font-size: var(--rdp-t-corps); line-height: 1.3; }
.rdp-t-petit { font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); line-height: 1.3; }
.rdp-etiquette {
  margin: 0;
  font-family: var(--rdp-etiquettes);
  font-size: var(--rdp-t-etiquette);
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.rdp-manuscrit { margin: 0; font-family: var(--rdp-manuscrit); font-size: var(--rdp-t-manuscrit); line-height: 1.35; }

.rdp-section { display: block; }

.rdp-conteneur {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--rdp-largeur-max);
  margin-inline: auto;
  padding-inline: var(--rdp-marge);
}

.rdp-titre {
  margin: 0;
  font-family: var(--rdp-titres);
  font-weight: var(--font-heading--weight, 400);
  font-size: var(--rdp-t-section);
  line-height: 1.05;
  text-transform: uppercase;
  letter-spacing: 0;
  color: inherit;
  text-wrap: balance;
}
.rdp-titre--centre { text-align: center; }
/* un titre qui porte aussi le conteneur reste centré sur un écran plus large que la page */
.rdp-titre.rdp-conteneur { margin-inline: auto; }

.rdp-texte { font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); line-height: 1.35; }
.rdp-texte > * { margin: 0; }
.rdp-texte > * + * { margin-top: 1em; }

.rdp-placeholder { width: 100%; height: 100%; background: var(--rdp-beige); fill: var(--rdp-beige-fonce); }

.rdp-vide { font-family: var(--rdp-texte); opacity: 0.7; }

/* Liens et boutons ------------------------------------------------------- */

.rdp-lien {
  font-family: var(--rdp-titres);
  font-size: var(--rdp-t-intertitre);
  text-transform: uppercase;
  color: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
}
.rdp-lien--texte {
  font-family: var(--rdp-texte);
  text-transform: none;
  font-size: var(--rdp-t-corps);
  font-weight: 500;
}
.rdp-lien:hover { text-decoration-thickness: 2px; }

.rdp-bouton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 40px;
  padding: 8px 16px;
  border: 1px solid transparent;
  font-family: var(--rdp-titres);
  font-size: var(--rdp-t-bouton);
  line-height: 1;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.rdp-bouton .rdp-icone { flex: none; }
.rdp-bouton--plein { background: var(--rdp-vert0); color: var(--rdp-blanc); }
.rdp-bouton--plein:hover { background: var(--rdp-vert1); }
.rdp-bouton--clair { background: var(--rdp-blanc); color: var(--rdp-vert0); }
.rdp-bouton--clair:hover { background: var(--rdp-beige); }
.rdp-bouton--contour { background: transparent; color: var(--rdp-blanc); border-color: var(--rdp-blanc); }
.rdp-bouton--contour:hover { background: rgb(244 244 240 / 0.12); }
.rdp-bouton--neutre { background: var(--rdp-beige); color: var(--rdp-vert0); cursor: default; }

.rdp-icone { display: inline-block; vertical-align: middle; }

/* Titre en arc ----------------------------------------------------------- */

.rdp-titre-courbe { margin: 0 auto; width: min(100%, var(--rdp-courbe-largeur)); line-height: 0; }
.rdp-titre-courbe svg { width: 100%; height: auto; overflow: visible; }
.rdp-titre-courbe text {
  fill: var(--rdp-vert0);
  font-family: var(--rdp-titres);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Pastille de date ------------------------------------------------------- */

.rdp-date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px 8px;
  background: var(--rdp-blanc);
  color: var(--rdp-vert0);
  font-family: var(--rdp-titres);
  font-size: 17px;
  line-height: 0.92;
  text-transform: uppercase;
  text-align: center;
}
.rdp-date__jour { display: flex; flex-direction: column; align-items: center; }
.rdp-date__tiret { font-size: 14px; }

/* Carrousel -------------------------------------------------------------- */

.rdp-carrousel { display: block; position: relative; }
.rdp-carrousel__piste {
  display: flex;
  gap: clamp(12px, 1.4vw, 20px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--rdp-marge);
  scrollbar-width: none;
  padding-block: 12px 24px;
  max-width: none;
  overscroll-behavior-x: contain;
}
.rdp-carrousel__piste::-webkit-scrollbar { display: none; }
.rdp-carrousel__piste:focus-visible { outline: 2px solid currentColor; outline-offset: -2px; }
.rdp-carrousel__element { flex: 0 0 min(80vw, 310px); scroll-snap-align: start; }
.rdp-carrousel__element--produit { flex-basis: min(70vw, 307px); }

.rdp-carrousel__commandes {
  display: flex;
  align-items: center;
  gap: clamp(16px, 3vw, 40px);
  margin-top: 16px;
}
.rdp-carrousel__fleche {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  cursor: pointer;
}
.rdp-carrousel__fleche:disabled { opacity: 0.3; cursor: default; }
.rdp-carrousel__progression { position: relative; flex: 1; height: 3px; overflow: hidden; }
.rdp-carrousel--piste-visible .rdp-carrousel__progression { background: var(--rdp-beige); }
.rdp-carrousel__progression > span {
  position: absolute;
  inset-block: 0;
  left: 0;
  width: 30%;
  background: var(--rdp-vert0);
  transition: transform 0.1s linear;
}
.rdp-carrousel[data-rdp-statique] .rdp-carrousel__commandes { visibility: hidden; }

/* Carte d'édition -------------------------------------------------------- */

.rdp-carte {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 7px 7px 20px;
  background: var(--rdp-blanc);
  color: var(--rdp-vert0);
  box-shadow: 0 1px 2px rgb(0 36 23 / 0.08);
  transform: rotate(var(--rdp-rotation, 0deg));
  transition: transform 0.25s;
}
.rdp-carte:hover { transform: rotate(0deg) translateY(-3px); }
.rdp-carte__visuel { position: relative; aspect-ratio: 296 / 216; margin-bottom: 18px; }
.rdp-carte__image { width: 100%; height: 100%; object-fit: cover; display: block; }
.rdp-carte__date { position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); }
.rdp-carte__corps { display: flex; flex-direction: column; flex: 1; align-items: center; text-align: center; padding-inline: 12px; }
.rdp-carte__titre { margin: 18px 0 0; font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); font-weight: 500; letter-spacing: 0.01em; text-transform: none; }
.rdp-carte__infos { margin: 26px 0 0; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); line-height: 1.3; }
.rdp-carte__infos span { display: block; }
.rdp-carte__actions { margin-top: auto; padding-top: 34px; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.rdp-carte__actions .rdp-bouton { min-width: 174px; }

/* Hero -------------------------------------------------------------------- */

/* z-index : la barre « Par ici » dépasse sous la couverture et doit passer au-dessus de la section suivante */
.rdp-hero { position: relative; isolation: isolate; z-index: 1; color: var(--rdp-blanc); background: var(--rdp-vert0); }
/* Le premier écran va jusqu'au bout de la barre « Par ici » : les 69 px qui dépassent sont retirés de la hauteur de la couverture */
.rdp-hero:has(.rdp-hero__defiler) { --rdp-hero-depasse: 69px; }
.rdp-hero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.rdp-hero__image { width: 100%; height: 100%; object-fit: cover; display: block; }
.rdp-hero__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgb(0 36 23 / 0) 30%, rgb(0 36 23 / 0.55) 70%, rgb(0 36 23 / 0.8) 100%);
}
.rdp-hero__contenu {
  display: grid;
  gap: 40px;
  min-height: clamp(520px, 43vw, 620px);
  padding-block: 120px 96px;
  align-items: end;
}
.rdp-hero__titre {
  margin: 0;
  max-width: 13.5em;
  font-family: var(--rdp-titres);
  font-size: var(--rdp-t-hero);
  font-weight: var(--font-heading--weight, 400);
  line-height: 1.2;
  text-transform: uppercase;
  text-wrap: balance;
}
.rdp-hero__defiler {
  position: absolute;
  left: 50%;
  bottom: -69px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  line-height: 1;
  transform: translateX(-50%);
  color: var(--rdp-blanc);
  font-family: var(--rdp-titres);
  font-size: var(--rdp-t-mini);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}
.rdp-hero__defiler svg { display: block; }
/* les tirets descendent en continu, comme le pointillé des pages d'événement */
.rdp-hero__defiler line { animation: rdp-tirets 1.2s linear infinite; }
@keyframes rdp-tirets { to { stroke-dashoffset: -12; } }
@media (prefers-reduced-motion: reduce) { .rdp-hero__defiler line { animation: none; } }
/* Mobile et tablette : en-tête + couverture = la hauteur visible de l'écran */
@media (max-width: 989.98px) {
  .rdp-hero__contenu { min-height: calc(100vh - var(--rdp-hero-dessus, 60px) - var(--rdp-hero-depasse, 0px)); min-height: calc(100svh - var(--rdp-hero-dessus, 60px) - var(--rdp-hero-depasse, 0px)); }
}

.rdp-rdv-carte { display: block; width: min(100%, 310px); justify-self: center; color: var(--rdp-vert0); }
.rdp-rdv-carte__entete { position: relative; display: grid; place-items: center; height: 67px; color: var(--rdp-rouge); }
.rdp-rdv-carte__forme { position: absolute; inset: 0; width: 100%; height: 100%; }
.rdp-rdv-carte__titre {
  position: relative;
  margin: 0;
  color: var(--rdp-blanc);
  font-family: var(--rdp-titres);
  font-size: var(--rdp-t-corps);
  font-weight: var(--font-heading--weight, 400);
  text-transform: uppercase;
}
.rdp-rdv-carte__corps {
  display: grid;
  grid-template-columns: 32px 1fr 32px;
  align-items: center;
  min-height: 300px;
  padding: 28px 8px 40px;
  background: var(--rdp-beige);
  border-radius: 0 0 4px 4px;
}
.rdp-rdv-carte__nav { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; background: none; color: var(--rdp-vert0); cursor: pointer; }
.rdp-rdv-carte__pile { position: relative; display: grid; justify-items: center; }
.rdp-rdv-carte__pile::before,
.rdp-rdv-carte__pile::after {
  content: '';
  position: absolute;
  width: 190px;
  height: 222px;
  top: 0;
  left: 50%;
  background: var(--rdp-blanc);
  box-shadow: var(--rdp-ombre);
  transform: translateX(-50%) rotate(-3deg);
}
.rdp-rdv-carte__pile::after { transform: translateX(-47%) rotate(2.5deg); }
.rdp-polaroid {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 190px;
  padding: 7px 7px 16px;
  background: var(--rdp-blanc);
  box-shadow: var(--rdp-ombre);
  color: var(--rdp-vert0);
  text-decoration: none;
}
.rdp-polaroid[hidden] { display: none; }
.rdp-polaroid__visuel { position: relative; display: block; width: 100%; aspect-ratio: 176 / 130; margin-bottom: 42px; }
.rdp-polaroid__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rdp-polaroid__date { position: absolute; left: 50%; bottom: -40px; transform: translateX(-50%); font-size: 15px; padding: 8px 12px 4px; }
.rdp-polaroid__nom { font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); font-weight: 500; }
.rdp-polaroid__lieu { margin-top: 12px; font-family: var(--rdp-texte); font-size: var(--rdp-t-mini); }

/* Notre organisation ------------------------------------------------------ */

.rdp-orga { background: var(--rdp-fond, var(--rdp-blanc)); color: var(--rdp-vert0); padding-block: clamp(96px, 10vw, 150px) clamp(40px, 5vw, 80px); }
.rdp-orga__grille { display: grid; gap: 40px; justify-items: center; }
.rdp-orga__texte { display: grid; gap: 28px; justify-items: center; max-width: 320px; text-align: center; }
.rdp-orga__photo { width: min(72vw, 300px); padding: 7px; background: var(--rdp-blanc); box-shadow: var(--rdp-ombre); }
.rdp-orga__photo:empty { display: none; }
.rdp-orga__photo img { display: block; width: 100%; height: auto; }
.rdp-orga__photo--gauche { transform: rotate(-4deg); }
.rdp-orga__photo--droite { width: min(50vw, 180px); transform: rotate(6deg); }

/* Bande illustrée ---------------------------------------------------------- */

.rdp-bande {
  position: relative;
  aspect-ratio: 1440 / 134;
  overflow: hidden;
  background: linear-gradient(180deg, var(--rdp-bande-haut) 0 68%, var(--rdp-bande-bas) 68% 100%);
}
.rdp-bande__paysage { position: absolute; left: -8%; top: 0; width: 118.9%; height: auto; max-width: none; }
.rdp-bande__voiture { position: absolute; left: 69.1%; top: 64%; width: 13%; height: auto; }
@media (max-width: 749.98px) {
  /* Téléphone : bande deux fois plus haute, paysage agrandi 2× autour de la dune (au centre de l'écran) */
  .rdp-bande { aspect-ratio: 1440 / 268; }
  .rdp-bande__paysage { left: -64.1%; width: 237.8%; }
  .rdp-bande__voiture { width: 26%; }
}

/* Rendez-vous à venir ------------------------------------------------------ */

.rdp-rdv { background: var(--rdp-fond, var(--rdp-beige)); color: var(--rdp-vert0); padding-block: clamp(56px, 11vw, 160px) clamp(64px, 6vw, 88px); }
.rdp-entete-section { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; margin-bottom: clamp(24px, 2.5vw, 36px); }
.rdp-rdv .rdp-carrousel__piste { padding-block: 16px 24px; }

/* Nos événements (onglets) ------------------------------------------------ */

.rdp-evts { background: var(--rdp-fond, var(--rdp-vert0)); color: var(--rdp-blanc); padding-block: var(--rdp-espace-section); }
.rdp-evts__interieur { display: block; }
.rdp-evts__titre { text-align: center; margin-bottom: clamp(32px, 3vw, 44px); }
.rdp-evts__grille { display: grid; gap: 32px; }
.rdp-evts__liste { display: grid; gap: 16px; align-content: start; }
.rdp-evts__entete-liste {
  margin: 0;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--rdp-blanc);
  color: var(--rdp-blanc);
  font-family: var(--rdp-titres);
  font-size: var(--rdp-t-intertitre);
  text-transform: uppercase;
  text-decoration: none;
  max-width: 224px;
}
.rdp-evts__liste [role='tablist'] { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.rdp-evts__onglet {
  position: relative;
  padding: 6px 0;
  border: 0;
  background: none;
  color: var(--rdp-attenue);
  font-family: var(--rdp-titres);
  font-size: var(--rdp-t-intertitre);
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
}
.rdp-evts__onglet:hover { color: var(--rdp-blanc); }
.rdp-evts__onglet[aria-selected='true'] { color: var(--rdp-blanc); padding-left: 16px; }
.rdp-evts__onglet[aria-selected='true']::before,
.rdp-evts__onglet[aria-selected='true']::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  transform: translateY(-50%);
}
.rdp-evts__onglet[aria-selected='true']::before { left: 0; background: var(--rdp-blanc); }
.rdp-evts__onglet[aria-selected='true']::after { right: -16px; background: var(--rdp-rouge); }
.rdp-evts__panneau { display: grid; gap: 32px; }
.rdp-evts__panneau[hidden] { display: none; }
.rdp-evts__visuel { aspect-ratio: 422 / 563; max-height: 70vh; background: #d9d9d9; border-radius: 4px; overflow: hidden; }
.rdp-evts__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rdp-evts__texte { display: grid; gap: 22px; align-content: start; }
.rdp-evts__nom { margin: 0; font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); font-weight: var(--font-heading--weight, 400); text-transform: uppercase; }
.rdp-evts__texte .rdp-texte { font-size: var(--rdp-t-corps); }
.rdp-evts__actions { display: grid; gap: 8px; justify-items: start; margin-top: 30px; }
.rdp-evts__actions .rdp-bouton { min-width: 174px; }

/* Billetterie -------------------------------------------------------------- */

.rdp-billets { background: var(--rdp-fond, var(--rdp-blanc)); color: var(--rdp-vert0); padding-top: var(--rdp-espace-section); }
.rdp-billets .rdp-titre { margin-bottom: clamp(32px, 2.6vw, 38px); }
.rdp-billets__panneaux { display: grid; }
.rdp-billet { position: relative; isolation: isolate; display: grid; align-items: end; min-height: clamp(420px, 45vw, 652px); overflow: hidden; color: var(--rdp-blanc); }
.rdp-billet__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.rdp-billet:hover .rdp-billet__image { transform: scale(1.03); }
.rdp-billet::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgb(0 36 23 / 0) 45%, rgb(0 36 23 / 0.75) 80%, rgb(0 36 23 / 0.95) 100%);
}
.rdp-billet__contenu { display: grid; justify-items: center; gap: 14px; padding: 24px 24px clamp(40px, 6vw, 60px); text-align: center; min-height: 170px; align-content: start; }
.rdp-billet__nom { margin: 0; font-family: var(--rdp-titres); font-size: var(--rdp-t-moyen); font-weight: var(--font-heading--weight, 400); text-transform: uppercase; }
.rdp-billet__statut { margin: 0; font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); }
.rdp-billet .rdp-bouton { margin-top: 10px; }
.rdp-billet__lien-cache { position: absolute; inset: 0; }

/* Boutique du club --------------------------------------------------------- */

.rdp-boutique { background: var(--rdp-fond, var(--rdp-blanc)); color: var(--rdp-vert0); padding-block: clamp(64px, 9vw, 130px) clamp(64px, 9vw, 130px); }
.rdp-boutique__titre { margin-bottom: clamp(32px, 4vw, 60px); }
.rdp-boutique__interieur { display: block; }
.rdp-boutique__barre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-bottom: 24px; }
.rdp-pastilles-onglets { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--rdp-marge) * -1); padding-inline: var(--rdp-marge); }
.rdp-pastilles-onglets::-webkit-scrollbar { display: none; }
.rdp-pastille-onglet {
  flex: none;
  padding: 8px 16px;
  border: 2px solid var(--rdp-beige);
  background: transparent;
  color: var(--rdp-beige-fonce);
  font-family: var(--rdp-titres);
  font-size: var(--rdp-t-bouton);
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
}
.rdp-pastille-onglet:hover { color: var(--rdp-vert0); }
.rdp-pastille-onglet[aria-selected='true'] { border-color: var(--rdp-vert0); color: var(--rdp-vert0); }
.rdp-boutique__panneau[hidden] { display: none; }

.rdp-produit { display: grid; gap: 8px; color: var(--rdp-vert0); font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); }
.rdp-produit__visuel { display: grid; place-items: center; aspect-ratio: 1; background: var(--rdp-beige); margin-bottom: 8px; overflow: hidden; }
.rdp-produit__visuel img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform 0.4s; }
.rdp-produit:hover .rdp-produit__visuel img { transform: scale(1.04); }
.rdp-produit__pastilles { display: flex; gap: 4px; margin: 0; padding: 0; list-style: none; }
.rdp-produit__pastille { width: 15px; height: 15px; border-radius: 50%; background: var(--rdp-pastille); box-shadow: inset 0 0 0 1px var(--rdp-beige-fonce); }
.rdp-produit__nom { margin: 0; font: inherit; }
.rdp-produit__nom a { color: inherit; text-decoration: none; }
.rdp-produit__nom a:hover { text-decoration: underline; text-decoration-color: currentColor; }
.rdp-produit__prix { margin: 0; }

/* Témoignages -------------------------------------------------------------- */

.rdp-temoins { background: var(--rdp-fond, var(--rdp-vert0)); color: var(--rdp-blanc); padding-block: var(--rdp-espace-section) clamp(56px, 6vw, 90px); overflow: hidden; }
.rdp-temoins__titre { max-width: 14em; margin-bottom: clamp(32px, 4vw, 56px); }
.rdp-temoins__carrousel .rdp-carrousel__piste {
  gap: clamp(24px, 4vw, 64px);
  padding-inline: calc(50% - min(42vw, 370px));
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
}
.rdp-temoin { flex: 0 0 min(84vw, 740px); margin: 0; scroll-snap-align: center; opacity: 0.55; transition: opacity 0.3s; }
.rdp-temoin.est-courant { opacity: 1; }
.rdp-temoin__scene { position: relative; display: grid; grid-template-columns: repeat(12, 1fr); align-items: center; padding-block: 24px; }
.rdp-temoin__photo { grid-column: 1 / 8; grid-row: 1; transform: rotate(-3deg); box-shadow: var(--rdp-ombre); }
.rdp-temoin__photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
/* Cadres dessinés autour d'une photo brute (maquette « Ils sont venus ») */
.rdp-temoin--cadre-vert .rdp-temoin__photo,
.rdp-temoin--cadre-rouge .rdp-temoin__photo,
.rdp-temoin--cadre-beige .rdp-temoin__photo { position: relative; border: clamp(8px, 1vw, 13px) solid var(--rdp-cadre); }
.rdp-temoin--cadre-vert .rdp-temoin__photo { --rdp-cadre: var(--rdp-vert1); }
.rdp-temoin--cadre-vert .rdp-temoin__photo img { border: 2px solid var(--rdp-blanc); }
/* tirets vert clair au milieu de la bande */
.rdp-temoin--cadre-vert .rdp-temoin__photo::before {
  content: ''; position: absolute; inset: calc(clamp(8px, 1vw, 13px) * -0.68); pointer-events: none;
  --t: repeating-linear-gradient(90deg, var(--rdp-vert2) 0 9%, transparent 9% 18%);
  --l: repeating-linear-gradient(180deg, var(--rdp-vert2) 0 13%, transparent 13% 26%);
  background: var(--t) top / 100% 4px no-repeat, var(--t) bottom / 100% 4px no-repeat, var(--l) left / 4px 100% no-repeat, var(--l) right / 4px 100% no-repeat;
}
.rdp-temoin--cadre-rouge .rdp-temoin__photo { --rdp-cadre: var(--rdp-rouge); }
.rdp-temoin--cadre-rouge .rdp-temoin__photo img { border: 4px solid var(--rdp-rouge1); }
.rdp-temoin--cadre-beige .rdp-temoin__photo { --rdp-cadre: var(--rdp-blanc); }
/* Photo déjà encadrée (aucun cadre choisi) : montrée entière, l'ombre suit ses coins arrondis ; photo en hauteur plus étroite */
.rdp-temoin--cadre-aucun .rdp-temoin__photo { box-shadow: none; filter: drop-shadow(0 12px 18px rgb(0 0 0 / 0.35)); }
.rdp-temoin--cadre-aucun .rdp-temoin__photo img { aspect-ratio: auto; object-fit: contain; }
.rdp-temoin--portrait .rdp-temoin__photo { grid-column: 2 / 6; }
/* Photo en hauteur : ses proportions d'origine (le 3:2 des cadres la coupait en haut et en bas) */
.rdp-temoin--portrait .rdp-temoin__photo img { aspect-ratio: auto; }
.rdp-temoin__carte {
  position: relative;
  grid-column: 6 / 13;
  grid-row: 1;
  margin: 18% 0 0;
  padding: 18px 20px 48px;
  min-height: 72%;
  background: #f3ede3 var(--rdp-carte-fond, url('rdp-papier-carte.jpg')) center / cover no-repeat;
  color: var(--rdp-vert0);
  box-shadow: var(--rdp-ombre);
  transform: rotate(1.5deg);
}
.rdp-temoin__edition { margin: 0 0 14px; font-family: var(--rdp-etiquettes); font-size: 8px; letter-spacing: 0.08em; text-transform: uppercase; }
.rdp-temoin__texte { margin: 0; max-width: 88%; font-family: var(--rdp-manuscrit); font-size: clamp(14px, 1.3vw, 18px); /* réduit : texte long dans une petite carte */ line-height: 1.5; transform: rotate(3deg); transform-origin: left top; }
.rdp-temoin__timbre { position: absolute; top: 18px; right: 16px; width: 44px; height: 54px; border: 1px solid var(--rdp-beige-fonce); }
.rdp-temoin__tampon { position: absolute; right: 26px; bottom: 16px; width: 56px; height: 56px; }
/* tampon de l'événement : même place et même proportion que sur le verso de la maquette (422 px de large) */
.rdp-temoin__tampon--evenement { right: 6%; bottom: 5.5%; width: calc(var(--rdp-tampon-l) / 422 * 100%); height: auto; mix-blend-mode: multiply; /* imprimé sur le papier, comme sur la maquette : le blanc disparaît */ }
.rdp-temoin__auteur { margin-top: 28px; padding-left: 12%; font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); line-height: 1.25; }
.rdp-temoins__commandes { display: flex; align-items: center; justify-content: center; gap: clamp(24px, 10vw, 150px); margin-top: 40px; color: var(--rdp-blanc); }
/* Mobile : la photo en haut, la carte et son texte en dessous */
@media (max-width: 749px) {
  .rdp-temoin__scene { grid-template-columns: minmax(0, 1fr); }
  .rdp-temoin__photo, .rdp-temoin--portrait .rdp-temoin__photo { grid-column: 1; grid-row: 1; justify-self: center; width: 88%; }
  .rdp-temoin--portrait .rdp-temoin__photo { width: 60%; }
  .rdp-temoin__carte { grid-column: 1; grid-row: 2; margin: -3% 2% 0; min-height: 0; padding-top: 22px; }
  .rdp-temoin__auteur { margin-top: 20px; padding-left: 4%; }
}
.rdp-points { display: flex; align-items: center; gap: 7px; }
.rdp-point { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: var(--rdp-attenue); cursor: pointer; }
.rdp-point[aria-current] { background: var(--rdp-blanc); }

/* Contact ------------------------------------------------------------------ */

.rdp-contact { background: var(--rdp-fond, var(--rdp-rouge)); color: var(--rdp-contact-texte, var(--rdp-blanc)); padding-block: clamp(56px, 4.7vw, 68px) clamp(120px, 12vw, 180px); }
.rdp-contact__grille { display: grid; gap: 48px; }
.rdp-contact__titre { line-height: 1.05; font-size: var(--rdp-t-display); }
.rdp-contact__mentions { margin-top: 36px; max-width: 420px; font-family: var(--rdp-texte); font-size: var(--rdp-t-mini); line-height: 1.3; }
.rdp-contact__mentions p { margin: 0 0 1em; }

.rdp-enveloppe__lettre { position: relative; padding: clamp(24px, 3.2vw, 46px) clamp(20px, 3.2vw, 46px) 110px; background: var(--rdp-blanc); color: var(--rdp-vert0); box-shadow: 0 2px 10px rgb(0 0 0 / 0.1); }
.rdp-formulaire { display: grid; gap: 24px; }
.rdp-champ { display: grid; gap: 12px; }
.rdp-champ label { font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); }
.rdp-champ input,
.rdp-champ textarea,
.rdp-champ select {
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
  padding: 11px 16px;
  border: 0;
  border-radius: 0;
  background: var(--rdp-beige);
  color: var(--rdp-vert0);
  font-family: var(--rdp-texte);
  font-size: var(--rdp-t-corps);
  appearance: none;
}
.rdp-champ textarea { min-height: 172px; resize: vertical; }
.rdp-champ ::placeholder { color: var(--rdp-beige-fonce); font-style: italic; opacity: 1; }
.rdp-champ input:focus-visible,
.rdp-champ textarea:focus-visible,
.rdp-champ select:focus-visible { outline: 2px solid var(--rdp-vert0); outline-offset: 0; }
.rdp-select { position: relative; }
.rdp-select select { padding-right: 44px; cursor: pointer; }
.rdp-select select:invalid,
.rdp-select select:has(option[value='']:checked) { color: var(--rdp-beige-fonce); font-style: italic; }
.rdp-select .rdp-icone { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.rdp-formulaire__envoyer { justify-self: center; margin-top: 6px; position: relative; z-index: 2; }
.rdp-formulaire__succes,
.rdp-formulaire__erreur { margin: 0; padding: 14px 16px; background: var(--rdp-beige); font-family: var(--rdp-texte); }
.rdp-formulaire__erreur { color: var(--rdp-rouge); }

/* Pied de page ------------------------------------------------------------- */

.rdp-pied { background: var(--rdp-vert0); color: var(--rdp-blanc); }
.rdp-pied__silhouette { background: var(--rdp-pied-haut, var(--rdp-pied-haut-defaut, var(--rdp-rouge))); line-height: 0; }
.rdp-pied__silhouette img { display: block; width: 100%; height: auto; margin-bottom: -1px; }
.rdp-pied__corps { padding-bottom: clamp(40px, 3vw, 48px); }
.rdp-pied__marque { position: relative; margin-top: clamp(-50px, -3vw, -10px); }
.rdp-pied__logo { display: block; }
.rdp-pied__logo img { display: block; width: 100%; height: auto; }
.rdp-pied__voiture { position: absolute; right: calc(var(--rdp-marge) + 2.5%); bottom: -6%; width: 13%; height: auto; }
.rdp-pied__colonnes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px 24px;
  margin-top: clamp(40px, 4vw, 56px);
  font-family: var(--rdp-texte);
  font-size: var(--rdp-t-corps);
}
.rdp-pied__titre { margin: 0 0 22px; color: var(--rdp-attenue); }
.rdp-pied__liens { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.rdp-pied__liens a { color: var(--rdp-blanc); text-decoration: none; }
.rdp-pied__liens a:hover { text-decoration: underline; }
.rdp-pied__texte { margin-top: 30px; color: var(--rdp-attenue); font-size: var(--rdp-t-corps); }
.rdp-pied__texte p { margin: 0 0 18px; }
.rdp-pied__texte a { color: inherit; text-decoration: underline; }
.rdp-pied__reseaux a { display: inline-flex; align-items: center; gap: 8px; }
.rdp-pied__langues { display: flex; gap: 16px; margin: 0; }
.rdp-pied__langue { padding: 0; border: 0; background: none; color: var(--rdp-attenue); font: inherit; cursor: pointer; }
.rdp-pied__langue[aria-current] { color: var(--rdp-blanc); text-decoration: underline; text-underline-offset: 4px; font-weight: 600; }

/* Tablette ----------------------------------------------------------------- */

@media (min-width: 750px) {
  /* maquette : le bas de la carte et la ligne de base du titre sont à 70 px du bas de la couverture */
  .rdp-hero__contenu { grid-template-columns: 1fr 310px; align-items: end; padding-block: 129px 70px; }
  .rdp-hero__titre { margin-bottom: -0.294em; }
  .rdp-rdv-carte { justify-self: end; align-self: end; }
  .rdp-billets__panneaux { grid-template-columns: repeat(var(--rdp-colonnes), minmax(0, 1fr)); }
  .rdp-contact__grille { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; }
  .rdp-pied__colonnes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Bureau -------------------------------------------------------------------- */

@media (min-width: 990px) {
  /* Ordinateur : en-tête + couverture + barre « Par ici » = la hauteur de l'écran, 750 px au minimum (--rdp-hero-dessus mesuré dans rdp.js) */
  .rdp-hero__contenu { grid-template-columns: 1fr 310px; min-height: calc(max(100vh, 750px) - var(--rdp-hero-dessus, 84px) - var(--rdp-hero-depasse, 0px)); align-items: end; }
  .rdp-hero__titre { padding-bottom: 0; max-width: 13.2em; text-wrap: wrap; }

  .rdp-orga__grille { grid-template-columns: 1fr 320px 1fr; align-items: start; gap: 60px; }
  .rdp-orga__photo--gauche { justify-self: end; margin-top: 60px; }
  .rdp-orga__photo--droite { justify-self: start; margin-top: 16px; }
  .rdp-orga__texte { grid-row: 1; grid-column: 2; }
  .rdp-orga__photo--gauche { grid-row: 1; grid-column: 1; }
  .rdp-orga__photo--droite { grid-row: 1; grid-column: 3; }

  .rdp-evts__grille { grid-template-columns: 1fr minmax(0, 422px) 1fr; column-gap: clamp(40px, 9vw, 133px); align-items: start; }
  .rdp-evts__panneau { display: contents; }
  .rdp-evts__panneau[hidden] { display: none; }
  .rdp-evts__liste { grid-column: 1; grid-row: 1; padding-top: 42px; }
  .rdp-evts__liste [role='tablist'] { display: grid; gap: 12px; justify-items: start; }
  .rdp-evts__visuel { grid-column: 2; grid-row: 1; max-height: none; }
  .rdp-evts__texte { grid-column: 3; grid-row: 1; padding-top: 42px; }

  .rdp-pied__colonnes { grid-template-columns: 199px 198px 177px 1fr 198px 200px; gap: 24px; }
  .rdp-pied__colonne--langue { grid-column: 5; }
  .rdp-pied__colonne--reseaux { grid-column: 6; }
}

/* En-tête Horizon ------------------------------------------------------------ */

#header-group .header {
  --color-background: var(--rdp-blanc);
  --color-foreground: var(--rdp-vert0);
}
#header-group .menu-list__link,
#header-group .menu-list__link-title,
#header-group .mega-menu__link--parent {
  font-family: var(--rdp-titres);
  text-transform: uppercase;
}
#header-group .menu-list__link[href*='/collections/billetterie'] .menu-list__link-title::after {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-left: 6px;
  border-radius: 50%;
  background: var(--rdp-rouge);
  vertical-align: middle;
}
.mega-menu__link-accroche {
  display: block;
  margin-top: 16px;
  font-family: var(--rdp-texte);
  font-size: var(--rdp-t-corps);
  line-height: 1.2;
  text-transform: none;
  color: var(--rdp-vert0);
}
.mega-menu__link--evenement .wrap-text {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  font-family: var(--rdp-titres);
  font-size: var(--rdp-t-bouton);
  text-transform: uppercase;
}

@media (prefers-reduced-motion: reduce) {
  .rdp-carte,
  .rdp-billet__image,
  .rdp-produit__visuel img { transition: none; }
}

/* Fiche événement / édition (provisoire) ----------------------------------- */

.rdp-fiche { --evt-fond: var(--rdp-vert0); --evt-texte: var(--rdp-blanc); }
.rdp-fiche__hero { position: relative; isolation: isolate; display: grid; align-items: end; min-height: clamp(360px, 45vw, 600px); background: var(--evt-fond); color: var(--evt-texte); }
.rdp-fiche__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.rdp-fiche__hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 35%, color-mix(in srgb, var(--evt-fond) 85%, transparent)); }
.rdp-fiche__entete { display: grid; gap: 16px; justify-items: start; padding-block: 48px; }
.rdp-fiche__accroche { margin: 0; max-width: 40em; font-family: var(--rdp-texte); font-size: var(--rdp-t-intertitre); }
.rdp-fiche__corps { display: grid; gap: 40px; padding-block: var(--rdp-espace-section); color: var(--rdp-vert0); }
.rdp-fiche__infos { display: grid; gap: 8px; align-content: start; padding: 24px; background: var(--rdp-beige); font-family: var(--rdp-texte); }
.rdp-fiche__infos p { margin: 0; }
.rdp-fiche__infos .rdp-bouton { justify-self: start; margin-top: 16px; }
.rdp-fiche__dates { font-family: var(--rdp-titres); font-size: var(--rdp-t-moyen); text-transform: uppercase; }
.rdp-fiche__galerie { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(45%, 320px), 1fr)); gap: 12px; padding-bottom: var(--rdp-espace-section); }
.rdp-fiche__galerie img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 3 / 2; }
.rdp-fiche__faq { display: grid; gap: 12px; padding-bottom: var(--rdp-espace-section); color: var(--rdp-vert0); }
.rdp-faq { border-bottom: 1px solid var(--rdp-beige-fonce); padding-block: 16px; font-family: var(--rdp-texte); }
.rdp-faq summary { cursor: pointer; font-weight: 500; font-size: var(--rdp-t-intertitre); }
.rdp-faq .rdp-texte { padding-top: 12px; }
@media (min-width: 990px) { .rdp-fiche__corps { grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); } }

/* En-tête du site : mêmes actions que l'en-tête d'un événement (globe et code de langue, sac avec pastille rouge et « Panier ») */
header-actions:has(.rdp-entete__langue, .rdp-entete__action) { display: flex; align-items: center; gap: clamp(12px, 2vw, 28px); }
/* mobile : le logo est centré, il ne reste de place que pour les icônes (libellés gardés pour les lecteurs d'écran) */
@media (max-width: 749px) {
  header-actions:has(.rdp-entete__langue, .rdp-entete__action) { gap: 6px; flex-shrink: 0; }
  header-actions > *, header-actions .rdp-entete__panier-icone { flex: 0 0 auto; }
  header-actions .rdp-icone { flex: none; width: 20px; min-width: 20px; height: 20px; }
  header-actions .rdp-entete__langue summary > span, header-actions .rdp-entete__compte > span, header-actions .rdp-panier-libelle { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
/* l'ancienne liste « Français » de Horizon fait doublon avec le globe */
header-component:has(header-actions .rdp-entete__langue) .header__column > .dropdown-localization { display: none !important; }
.header-actions__cart-icon:has(.rdp-panier-libelle) { display: inline-grid; justify-items: center; gap: 2px; padding: 8px 4px; font-family: var(--rdp-fine); font-size: var(--rdp-t-petit); line-height: 1.1; }
.rdp-panier-libelle { font: inherit; }
.header-actions__cart-icon .rdp-entete__panier-icone { display: inline-flex; }
.header-actions__cart-icon .rdp-entete__panier-icone .cart-bubble { position: absolute; top: -6px; right: -10px; width: auto; min-width: 16px; height: 16px; aspect-ratio: auto; padding: 0 4px; border-radius: 8px; background: var(--rdp-rouge); color: var(--rdp-blanc); }
.header-actions__cart-icon .rdp-entete__panier-icone .cart-bubble__background { display: none; }
/* la pastille dépasse du bouton du panier : Horizon le coupe (overflow: hidden), visible sur mobile où le bouton n'a plus de libellé */
.header-actions__action:has(.rdp-entete__panier-icone) { overflow: visible; }
.header-actions__cart-icon .rdp-entete__panier-icone .cart-bubble__text { font-family: var(--rdp-texte); font-size: 10px; line-height: 16px; color: inherit; }
@media (min-width: 990px) { .header-actions__cart-icon:has(.rdp-panier-libelle) { font-size: var(--rdp-t-corps); } }

/* Corrections après recette visuelle */
.rdp-temoins__titre { margin-inline: auto; max-width: 18em; }
.rdp-produit__nom,
.rdp-carte__titre,
.rdp-polaroid__nom { text-transform: none; letter-spacing: normal; }
.rdp-boutique__titre .rdp-titre-courbe { width: min(100%, 620px); }
.rdp-pied__marque { margin-top: 0; padding-top: clamp(8px, 1.5vw, 24px); }
.rdp-pied__corps { position: relative; margin-top: -2.1vw; background: var(--rdp-vert0); }

/* Miniature au-dessus du point actif (avis) */
.rdp-points { position: relative; }
.rdp-point { transition: transform 0.2s, background-color 0.2s; }
.rdp-point[data-rdp-distance='moyen'] { transform: scale(0.75); }
.rdp-point[data-rdp-distance='loin'] { transform: scale(0.5); }
.rdp-points__vignette {
  position: absolute;
  left: var(--rdp-vignette-x, 4px);
  bottom: calc(100% + 10px);
  width: 54px;
  height: 54px;
  transform: translateX(-50%) rotate(-4deg);
  transition: left 0.3s ease;
  pointer-events: none;
}
/* Chaque miniature garde ses proportions (une photo en hauteur n'est plus coupée), posée en bas du carré, au-dessus du point */
.rdp-points__vignette-image {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: auto;
  height: auto;
  max-width: 54px;
  max-height: 54px;
  transform: translateX(-50%);
  filter: drop-shadow(0 2px 4px rgb(0 0 0 / 0.35));
  opacity: 0;
  transition: opacity 0.25s;
}
.rdp-points__vignette-image.est-visible { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .rdp-points__vignette,
  .rdp-points__vignette-image,
  .rdp-point { transition: none; }
}

/* Petite dune beige au fond des menus déroulants (maquette « Desktop 2 ») */
@media (min-width: 750px) {
  #header-group .menu-list__submenu-inner:has(.mega-menu) {
    padding-bottom: 88px;
    background: url('rdp-dune-menu.svg') no-repeat center bottom -91px / 652px auto;
  }
}

/* Menus déroulants : titre de rubrique et voile sombre derrière (maquette « Desktop 2 ») */
.rdp-mega-titre { display: none; }
@media (min-width: 750px) {
  /* Maquette à 1440 px : 40 px sous l'en-tête, titre de 64 px (bloc de 67 px), 32 px avant les images */
  .rdp-mega-titre {
    display: block;
    margin: 0 0 clamp(20px, 2.22vw, 32px);
    padding-top: clamp(24px, 2.78vw, 40px);
    font-family: var(--rdp-titres);
    font-size: var(--rdp-t-display);
    line-height: 1.05;
    text-transform: uppercase;
  }
  .rdp-mega-titre a { color: var(--rdp-vert0); text-decoration: none; }
  body::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 17;
    background: rgb(0 0 0 / 0.5);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
  }
  body:has(#header-group .menu-list__disclosure[aria-expanded='true'])::after { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { body::after { transition: none; } }

/* Nos événements : couleurs de l'événement affiché (maquettes « Frame 27907 à 27909 ») */
.rdp-evts {
  --evt-fond: var(--rdp-fond);
  --evt-texte: var(--rdp-texte-section, var(--rdp-blanc));
  background: var(--evt-fond);
  color: var(--evt-texte);
  transition: background-color 0.4s ease, color 0.4s ease;
}
.rdp-evts__entete-liste { color: var(--evt-texte); border-bottom-color: currentColor; }
.rdp-evts__onglet { color: color-mix(in srgb, var(--evt-texte) 42%, var(--evt-fond)); transition: color 0.4s ease; }
.rdp-evts__onglet:hover,
.rdp-evts__onglet[aria-selected='true'] { color: var(--evt-texte); }
.rdp-evts__onglet[aria-selected='true']::before { background: currentColor; }
/* Le point rouge signale une billetterie ouverte, pas l'onglet actif */
.rdp-evts__onglet[aria-selected='true']::after { content: none; }
.rdp-evts__onglet[data-rdp-billetterie-ouverte]::after {
  content: '';
  position: absolute;
  top: 50%;
  right: -16px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--rdp-rouge);
  transform: translateY(-50%);
}
.rdp-evts .rdp-bouton--clair { background: var(--evt-texte); color: var(--evt-fond); transition: background-color 0.4s, color 0.4s; }
.rdp-evts .rdp-bouton--clair:hover { background: color-mix(in srgb, var(--evt-texte) 85%, var(--evt-fond)); }
.rdp-evts .rdp-bouton--contour { color: var(--evt-texte); border-color: var(--evt-texte); }
.rdp-evts .rdp-bouton--contour:hover { background: color-mix(in srgb, var(--evt-texte) 12%, transparent); }
@media (prefers-reduced-motion: reduce) { .rdp-evts, .rdp-evts__onglet { transition: none; } }

/* ==========================================================================
   Page événement (maquette mobile « Chapeaux de Roues », Figma 580:6813)
   Adaptation bureau dans les proportions de l'accueil.
   ========================================================================== */

/* Titres en arc : variante étiquette (Krona One), couleur héritée */
.rdp-titre-courbe text { fill: currentColor; }
.rdp-titre-courbe--etiquette { width: min(100%, 240px); color: var(--rdp-encre, currentColor); }
.rdp-titre-courbe--etiquette text { font-family: var(--rdp-etiquettes); letter-spacing: 0.08em; }
.rdp-orga .rdp-titre-courbe,
.rdp-boutique__titre .rdp-titre-courbe:not(.rdp-titre-courbe--etiquette) { color: var(--rdp-vert0); }

/* Liens fléchés */
.rdp-lien-fleche { display: inline-flex; align-items: center; gap: 6px; color: inherit; text-decoration: none; }
.rdp-lien-fleche:hover { text-decoration: underline; text-underline-offset: 3px; }
/* lien seul sur sa ligne dans un texte saisi en back-office : la flèche est dessinée en CSS */
.rdp-lien-fleche--auto::after { content: ''; flex: none; width: 16px; height: 16px; background: currentColor; -webkit-mask: var(--rdp-fleche) center / contain no-repeat; mask: var(--rdp-fleche) center / contain no-repeat; --rdp-fleche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill-rule='evenodd' d='M3 10a.75.75 0 0 1 .75-.75h10.638L10.23 5.29a.75.75 0 1 1 1.04-1.08l5.5 5.25a.75.75 0 0 1 0 1.08l-5.5 5.25a.75.75 0 1 1-1.04-1.08l4.158-3.96H3.75A.75.75 0 0 1 3 10Z'/%3E%3C/svg%3E"); }

/* Co-marquage de l'en-tête */
.rdp-cobrand__croix { margin-inline: 8px; font-family: var(--rdp-titres); font-size: 12px; color: var(--rdp-vert0); }
.rdp-cobrand { display: inline-flex; }
.rdp-cobrand__logo { width: 40px; height: 40px; object-fit: contain; }
@media (max-width: 749px) { .rdp-cobrand__logo { width: 34px; height: 34px; } }

/* Barre de l'événement */
.rdp-evt-entete { position: sticky; top: 0; z-index: 16; transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1); }
/* La barre colle pendant toute la page : son conteneur de section ne la retient pas */
.rdp-section--evt-hero { display: contents; }
/* Elle se cache en descendant et réapparaît dès qu'on remonte */
.rdp-evt-entete.est-cachee { transform: translateY(-100%); }
/* L'en-tête du site fait exactement pareil (classe posée par entetesAuDefilement dans rdp.js) */
.header-section:has(> #header-component[sticky]) { transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1); }
.header-section.est-cachee { transform: translateY(-100%); }
/* Page qui a l'en-tête du site ET une barre d'événement (page d'édition) : la barre colle juste sous l'en-tête et part avec lui */
body:has(.header-section > #header-component[sticky]) .rdp-evt-entete { top: calc(var(--header-height, 0px) - 1px); }
body:has(.header-section > #header-component[sticky]) .rdp-evt-entete.est-cachee { transform: translateY(calc(-100% - var(--header-height, 0px))); }
@media (prefers-reduced-motion: reduce) { .rdp-evt-entete, .header-section:has(> #header-component[sticky]) { transition: none; } }
.rdp-evt-entete:focus-within { transform: none; }
/* En-tête dédié d'un événement (Rallye du Pyla × événement) : fixe en haut de l'écran, comme l'en-tête du site,
   avec le même glissement. La barre de l'événement se cale dessous et sort de l'écran avec lui. */
#header-group:has(> .rdp-section--entete) { display: contents; }
.rdp-section--entete { position: sticky; top: 0; z-index: 30; transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rdp-section--entete.est-cachee { transform: translateY(-100%); }
.rdp-section--entete:focus-within { transform: none; }
:root { --rdp-entete-h: 64px; }
@media (min-width: 990px) { :root { --rdp-entete-h: 80px; } }
body:has(.rdp-section--entete) .rdp-evt-entete { top: calc(var(--rdp-entete-h) - 1px); }
body:has(.rdp-section--entete) .rdp-evt-entete.est-cachee { transform: translateY(calc(-100% - var(--rdp-entete-h))); }
@media (prefers-reduced-motion: reduce) { .rdp-section--entete { transition: none; } }
.rdp-sous-nav { display: flex; align-items: stretch; justify-content: space-between; min-height: 54px; background: var(--rdp-fond, var(--rdp-vert1)); color: var(--rdp-blanc); }
/* Même largeur utile que l'en-tête du site : marges de la page, et sur un très grand écran le contenu est plafonné
   à la largeur de page d'Horizon et centré (le fond, lui, va toujours d'un bord à l'autre). */
.rdp-entete__barre,
.rdp-sous-nav { --rdp-entete-bord: calc((100% - var(--page-content-width, 100%)) / 2); }
.rdp-sous-nav { padding-left: max(0px, calc(var(--rdp-entete-bord) - var(--page-margin, 0px))); padding-right: max(0px, var(--rdp-entete-bord)); }
.rdp-sous-nav__marque { display: flex; align-items: center; gap: 8px; padding: 8px var(--page-margin, var(--rdp-marge)); color: inherit; text-decoration: none; }
.rdp-sous-nav__logo { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.rdp-sous-nav__nom { max-width: 8em; font-family: var(--rdp-titres); font-size: var(--rdp-t-corps); line-height: 1.1; text-transform: uppercase; }
.rdp-sous-nav__actions { display: flex; }
.rdp-sous-nav__infos { position: relative; }
.rdp-sous-nav__infos summary,
.rdp-sous-nav__billets {
  display: flex;
  align-items: center;
  gap: 4px;
  height: 100%;
  padding: 0 16px;
  font-family: var(--rdp-fine);
  font-size: var(--rdp-t-corps);
  color: var(--rdp-vert0);
  text-decoration: none;
  cursor: pointer;
  list-style: none;
}
.rdp-sous-nav__infos summary::-webkit-details-marker { display: none; }
.rdp-sous-nav__infos summary { background: var(--rdp-vert2); }
.rdp-sous-nav__infos[open] summary .rdp-icone { transform: rotate(180deg); }
.rdp-sous-nav__billets { background: var(--rdp-blanc); }
.rdp-sous-nav__menu {
  position: absolute;
  right: 0;
  top: 100%;
  min-width: 240px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: var(--rdp-blanc);
  box-shadow: var(--rdp-ombre);
}
.rdp-sous-nav__menu:empty { display: none; }
.rdp-sous-nav__menu a { display: block; padding: 10px 20px; color: var(--rdp-vert0); font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); text-transform: uppercase; text-decoration: none; }
.rdp-sous-nav__menu a:hover { background: var(--rdp-beige); }

/* Hero */
.rdp-evt-hero { position: relative; isolation: isolate; overflow: hidden; color: var(--rdp-blanc); background: var(--rdp-vert0); }
.rdp-evt-hero__media { position: absolute; inset: 0; z-index: -1; }
.rdp-evt-hero__image { width: 100%; height: 100%; object-fit: cover; }
.rdp-evt-hero__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgb(0 36 23 / 0.92) 0%, rgb(3 67 38 / 0.55) 45%, rgb(0 36 23 / 0.35) 70%, rgb(0 36 23 / 0.7) 100%);
}
.rdp-evt-hero__contenu { display: grid; justify-items: center; text-align: center; padding-block: 35px 32px; }
.rdp-evt-hero__titre { margin: 0; }
.rdp-evt-hero__logo-titre { display: block; width: min(66vw, 264px); height: auto; }
.rdp-evt-hero__date { margin: 22px 0 0; font-family: var(--rdp-etiquettes); font-size: clamp(18px, 1.7vw, 24px); letter-spacing: 0.04em; text-transform: uppercase; }
.rdp-evt-hero__numero { margin-top: 8px; font-size: 12px; letter-spacing: 0.3em; }
.rdp-evt-hero__actions { display: grid; gap: 16px; width: min(100%, 264px); margin-top: 86px; }
.rdp-evt-hero__actions:empty { display: none; }
.rdp-evt-hero__actions .rdp-bouton { width: 100%; }

/* Vidéo en fenêtre */
.rdp-video__fenetre { width: min(92vw, 1100px); padding: 0; border: 0; background: #000; }
.rdp-video__fenetre::backdrop { background: rgb(0 0 0 / 0.8); }
.rdp-video__cadre { aspect-ratio: 16 / 9; }
.rdp-video__cadre iframe { width: 100%; height: 100%; border: 0; }
.rdp-video__fermer { position: absolute; top: 8px; right: 8px; z-index: 1; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgb(0 0 0 / 0.6); color: #fff; font-size: 24px; cursor: pointer; }

/* Bandeau défilant et damier */
/* Bandeau défilant : texte de la maquette (≈ 28 px sur 54 px de haut), défilement continu */
.rdp-bandeau { overflow: hidden; background: var(--rdp-bandeau-fond); color: var(--rdp-bandeau-texte); }
.rdp-bandeau__piste { display: flex; width: max-content; padding-block: clamp(10px, 0.9vw, 13px); animation: rdp-defile var(--rdp-duree-defile, 40s) linear infinite; will-change: transform; }
.rdp-bandeau__texte { font-family: var(--rdp-titres); font-size: clamp(20px, 1.95vw, 28px); line-height: 1.05; letter-spacing: 0.02em; text-transform: uppercase; white-space: nowrap; }
@keyframes rdp-defile { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .rdp-bandeau__piste { animation: none; } }

/* Damier : un seul composant partout (sous le bandeau, au-dessus des bandes rouges, pied de l'événement,
   cadre des questions) = filet doré, rangée foncé/clair, rangée clair/foncé. Seule l'échelle change. */
.rdp-damier {
  --d-filet: 3px; --d-rang: 6px; --d-case: 22px;
  --d-a: var(--rdp-damier-a, var(--rdp-vert1));
  --d-b: var(--rdp-damier-b, var(--rdp-beige));
  height: calc(var(--d-filet) + var(--d-rang) * 2);
  background:
    linear-gradient(var(--rdp-damier-filet, var(--rdp-or)), var(--rdp-damier-filet, var(--rdp-or))) 0 0 / 100% var(--d-filet) no-repeat,
    linear-gradient(90deg, var(--d-a) 0 50%, var(--d-b) 50% 100%) 0 var(--d-filet) / calc(var(--d-case) * 2) var(--d-rang) repeat-x,
    linear-gradient(90deg, var(--d-b) 0 50%, var(--d-a) 50% 100%) 0 calc(var(--d-filet) + var(--d-rang)) / calc(var(--d-case) * 2) var(--d-rang) repeat-x;
}
.rdp-damier--fin { --d-filet: 3px; --d-rang: 6px; --d-case: 22px; }
.rdp-damier--moyen { --d-filet: 3px; --d-rang: clamp(6px, 0.56vw, 8px); --d-case: clamp(16px, 1.47vw, 21px); }
.rdp-damier--grand { --d-filet: 5px; --d-rang: clamp(8px, 0.87vw, 12.5px); --d-case: clamp(20px, 2.08vw, 30px); }
/* Bande à grandes cases (rouge / bordeaux), deux rangées inversées */
.rdp-damier-large {
  --l-case: clamp(20px, 2.08vw, 30px); --l-rang: clamp(36px, 4.3vw, 62px);
  height: calc(var(--l-rang) * 2);
  background:
    linear-gradient(90deg, var(--rdp-damier-c, var(--rdp-rouge)) 0 50%, var(--rdp-damier-d, var(--rdp-rouge0)) 50% 100%) 0 0 / calc(var(--l-case) * 2) var(--l-rang) repeat-x,
    linear-gradient(90deg, var(--rdp-damier-d, var(--rdp-rouge0)) 0 50%, var(--rdp-damier-c, var(--rdp-rouge)) 50% 100%) 0 100% / calc(var(--l-case) * 2) var(--l-rang) repeat-x;
}

/* À propos */
.rdp-evt-apropos { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(80px, 8.4vw, 120px) clamp(96px, 8.4vw, 120px); }
.rdp-evt-apropos__interieur { display: grid; justify-items: center; gap: clamp(28px, 2.8vw, 40px); text-align: center; }
.rdp-evt-apropos__texte { max-width: 22em; }
.rdp-evt-apropos__manuscrit { transform: rotate(-3deg); }

/* Cartes photo (animations, éditions passées) */
.rdp-evt-cartes { background: var(--rdp-fond); color: var(--rdp-blanc); padding-block: 40px 32px; }
.rdp-evt-cartes__entete { margin-bottom: 24px; color: var(--rdp-encre); }
.rdp-carrousel__element--grande { flex-basis: min(86vw, 346px); }
.rdp-carte-photo { position: relative; isolation: isolate; display: grid; align-items: end; height: 100%; min-height: clamp(460px, 36vw, 521px); overflow: hidden; border-radius: 2px; color: var(--rdp-blanc); }
.rdp-carte-photo__image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.rdp-carte-photo:hover .rdp-carte-photo__image { transform: scale(1.03); }
.rdp-carte-photo::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 45%, rgb(0 36 23 / 0.85) 82%, var(--rdp-vert0) 100%); }
.rdp-carte-photo__texte { display: grid; gap: 6px; padding: 16px 16px 24px; }
.rdp-carte-photo__texte p { margin: 0; }
.rdp-carte-photo__texte .rdp-lien-fleche { margin-top: 10px; }
/* toute la carte est cliquable : la zone du lien « En savoir plus » couvre la carte */
.rdp-carte-photo .rdp-lien-fleche::before { content: ''; position: absolute; inset: 0; z-index: 1; }
.rdp-carte-photo:has(.rdp-lien-fleche) { cursor: pointer; }
.rdp-carrousel--sombre { color: var(--rdp-blanc); }
.rdp-carrousel--sombre .rdp-carrousel__progression { background: rgb(244 244 240 / 0.2); }
.rdp-carrousel--sombre .rdp-carrousel__progression > span { background: var(--rdp-blanc); }

/* Partenaire et arches */
.rdp-evt-encarts { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(64px, 6vw, 88px) 0; overflow: hidden; }
.rdp-evt-encarts__partenaire { display: grid; justify-items: center; gap: 4px; margin-bottom: 40px; }
.rdp-evt-encarts__logo { width: 135px; height: auto; }
.rdp-evt-encarts__piste { gap: clamp(24px, 3vw, 40px); padding-bottom: 8px; }
.rdp-carrousel__element--arche { flex-basis: min(53vw, 213px); }
.rdp-arche {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 213 / 332;
  padding: 26% 9% 10%;
  background: var(--rdp-arche-fond);
  color: var(--rdp-arche-texte);
  text-align: center;
  /* Forme d'arche (ogive) à l'échelle de la carte */
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 213 332' preserveAspectRatio='none'%3E%3Cpath d='M0 332V118C0 56 48 20 106.5 0 165 20 213 56 213 118v214Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 213 332' preserveAspectRatio='none'%3E%3Cpath d='M0 332V118C0 56 48 20 106.5 0 165 20 213 56 213 118v214Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.rdp-arche--photo { padding: 0; }
.rdp-arche__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rdp-arche__texte { position: relative; margin: 0; font-size: clamp(28px, 2.3vw, 34px); line-height: 1.06; }

/* Billetterie de l'événement */
.rdp-evt-billets { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(72px, 7vw, 100px) clamp(48px, 5vw, 72px); }
.rdp-evt-billets__entete { display: grid; justify-items: center; gap: 24px; margin-bottom: clamp(32px, 3vw, 48px); text-align: center; }
.rdp-evt-billets__entete .rdp-t-grand { max-width: 20em; }
.rdp-evt-billets__panneau[hidden] { display: none; }
.rdp-evt-billets .rdp-pastilles-onglets { margin-bottom: 24px; }
.rdp-pastilles-onglets--sombre .rdp-pastille-onglet { border-color: rgb(244 244 240 / 0.25); color: rgb(244 244 240 / 0.45); }
.rdp-pastilles-onglets--sombre .rdp-pastille-onglet:hover { color: var(--rdp-blanc); }
.rdp-pastilles-onglets--sombre .rdp-pastille-onglet[aria-selected='true'] { border-color: var(--rdp-blanc); color: var(--rdp-blanc); }
.rdp-evt-billets .rdp-lien-fleche { margin-top: 32px; }
.rdp-billet-carte { display: grid; gap: 4px; color: var(--rdp-blanc); }
.rdp-billet-carte__visuel { position: relative; display: block; aspect-ratio: 307 / 340; margin-bottom: 12px; overflow: hidden; background: #160909; }
.rdp-billet-carte__visuel img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s; }
/* visuel de billet : entier, centré sur fond beige */
.rdp-billet-carte__visuel.rdp-billet-carte__visuel--billet { background: var(--rdp-beige); }
.rdp-billet-carte__visuel--billet img { position: absolute; top: 11%; left: 0; height: 78%; object-fit: contain; }
.rdp-billet-carte:hover .rdp-billet-carte__visuel img { transform: scale(1.04); }
.rdp-billet-carte__badge { position: absolute; top: 12px; left: 12px; padding: 6px 10px; background: var(--rdp-rouge); font-family: var(--rdp-titres); font-size: var(--rdp-t-corps); text-transform: uppercase; }
.rdp-billet-carte--epuise .rdp-billet-carte__visuel img { opacity: 0.5; }
.rdp-billet-carte__nom,
.rdp-billet-carte__prix { margin: 0; font-weight: 400; text-transform: none; letter-spacing: normal; }
.rdp-billet-carte__nom a { color: inherit; text-decoration: none; }
.rdp-billet-carte__nom a:hover { text-decoration: underline; text-decoration-color: currentColor; }
/* Horizon fonce au survol les liens placés dans un titre ou un paragraphe (couleur du schéma, verte) : illisible sur nos fonds sombres → on garde la couleur du texte */
.rdp-section :is(h1, h2, h3, h4, h5, h6, p) > a:hover { color: inherit; }

/* Programme */
.rdp-evt-programme {
  background:
    repeating-linear-gradient(90deg, transparent 0 21px, var(--rdp-rayure) 21px 27px),
    var(--rdp-fond);
  color: var(--rdp-blanc);
  padding-block: clamp(72px, 7vw, 110px);
  overflow: hidden;
}
.rdp-evt-programme__grille { display: grid; gap: 40px; justify-items: center; }
.rdp-evt-programme__texte { display: grid; gap: 40px; justify-items: center; text-align: center; }
.rdp-evt-programme__texte .rdp-t-display { color: var(--rdp-encre); }
.rdp-evt-programme__actions { display: grid; gap: 16px; width: min(100%, 264px); }
.rdp-evt-programme__actions .rdp-bouton { width: 100%; }
.rdp-evt-programme__visuel { width: min(72vw, 330px); aspect-ratio: 288 / 408; background: var(--rdp-carte); transform: rotate(-3.5deg); box-shadow: 0 20px 40px -20px rgb(0 0 0 / 0.5); }
.rdp-evt-programme__visuel img { width: 100%; height: 100%; object-fit: cover; }
.rdp-evt-programme__texte { order: -1; }
@media (max-width: 989px) { .rdp-evt-programme__texte .rdp-evt-programme__actions { order: 3; } }

/* Questions pratiques */
.rdp-evt-questions { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(64px, 6vw, 96px); }
.rdp-evt-questions__interieur { display: grid; gap: 32px; justify-items: center; }
.rdp-accordeon { width: min(100%, 900px); }
.rdp-accordeon__item { border-bottom: 1px solid currentColor; }
.rdp-accordeon__item summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; font-size: clamp(32px, 2.8vw, 40px); cursor: pointer; list-style: none; }
.rdp-accordeon__item summary::-webkit-details-marker { display: none; }
.rdp-accordeon__item summary .rdp-icone { flex: none; transition: transform 0.25s; }
.rdp-accordeon__item[open] summary .rdp-icone { transform: rotate(180deg); }
.rdp-accordeon__contenu { padding: 0 0 20px; }

/* Partenaires */
.rdp-evt-partenaires { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(40px, 5vw, 80px) clamp(56px, 6vw, 96px); }
.rdp-evt-partenaires__interieur { display: grid; gap: clamp(48px, 6vw, 80px); justify-items: center; }
.rdp-evt-partenaires__groupe { display: grid; gap: 8px; justify-items: center; }
.rdp-evt-partenaires__logos { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 28px clamp(40px, 4.5vw, 64px); margin: 0; padding: 0; list-style: none; }
.rdp-evt-partenaires__logos img { width: auto; max-width: min(340px, 70vw); height: clamp(64px, 6.4vw, 108px); object-fit: contain; }
.rdp-evt-partenaires__organisateur img { width: clamp(190px, 19vw, 280px); height: auto; }

/* Bloc de fin */
.rdp-evt-pied { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(64px, 6vw, 96px) 0; overflow: hidden; }
/* sur toutes les pages, la bande de couleur du pied du site laisse de l'air au-dessus des collines */
.rdp-pied__silhouette { padding-top: clamp(32px, 4.4vw, 64px); }
.rdp-evt-pied__grille { position: relative; display: grid; min-height: 540px; }
.rdp-evt-pied__nom { color: var(--rdp-encre); font-size: clamp(34px, 3.33vw, 48px); }
.rdp-evt-pied__lieu { margin-top: -4px; font-size: clamp(28px, 2.5vw, 36px); }
.rdp-evt-pied__liens { display: grid; gap: 6px; margin: 28px 0 0; padding: 0; list-style: none; }
.rdp-evt-pied__liens a { color: inherit; text-decoration: none; }
.rdp-evt-pied__liens a:hover { text-decoration: underline; }
.rdp-evt-pied__embleme { position: absolute; right: -12vw; bottom: -40px; width: min(68vw, 420px); pointer-events: none; }
.rdp-evt-pied__embleme img { width: 100%; height: auto; }

/* Avis : couleur du titre réglable (rouge sur la page événement) */
.rdp-temoins__titre { color: var(--rdp-titre-couleur, var(--rdp-blanc)); }

/* Bureau ------------------------------------------------------------------- */
@media (min-width: 990px) {
  .rdp-sous-nav__nom { max-width: none; }
  .rdp-sous-nav__infos summary,
  .rdp-sous-nav__billets { padding: 0 24px; }

  .rdp-evt-hero__contenu { min-height: clamp(620px, 52vw, 760px); align-content: center; padding-block: 80px; }
  .rdp-evt-hero__logo-titre { width: clamp(360px, 30vw, 440px); }
  .rdp-evt-hero__actions { display: flex; flex-wrap: wrap; justify-content: center; width: auto; margin-top: 56px; }
  .rdp-evt-hero__actions > * { width: 264px; }
  /* deux boutons côte à côte (vidéo + billetterie) : la règle « largeur 100 % » des boutons ne doit pas l'emporter */
  .rdp-evt-hero__actions > .rdp-bouton,
  .rdp-evt-hero__actions > rdp-video { flex: 0 0 264px; width: 264px; }

  .rdp-evt-cartes { padding-block: 88px 64px; }
  .rdp-carrousel__element--grande { flex-basis: calc((min(100vw, var(--rdp-largeur-max)) - var(--rdp-marge) * 2 - 60px) / 4); }

  .rdp-evt-encarts__piste { justify-content: center; }
  .rdp-carrousel__element--arche { flex-basis: clamp(213px, 19vw, 280px); }

  .rdp-evt-programme__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; justify-items: start; }
  .rdp-evt-programme__texte { justify-items: start; text-align: left; order: 0; }
  .rdp-evt-programme__actions { display: flex; flex-wrap: wrap; width: auto; }
  .rdp-evt-programme__actions > * { width: 264px; }
  .rdp-evt-programme__visuel { justify-self: center; width: clamp(300px, 28vw, 400px); }

  .rdp-evt-pied__grille { grid-template-columns: 1fr 1fr; min-height: 420px; }
  .rdp-evt-pied__embleme { position: relative; right: auto; bottom: -48px; justify-self: end; align-self: end; width: clamp(320px, 30vw, 440px); }
}

/* ==========================================================================
   Page Chapeaux de Roues — maquettes bureau (Figma 2019:2007 « CDR-home »)
   et animations demandées en commentaires par la designer.
   ========================================================================== */

/* Barre de l'événement : liens à plat sur ordinateur */
.rdp-sous-nav__liens { display: none; }
@media (min-width: 990px) {
  .rdp-sous-nav { min-height: 64px; }
  .rdp-sous-nav__logo { width: 44px; height: 44px; }
  .rdp-sous-nav__nom { font-size: var(--rdp-t-intertitre); }
  .rdp-sous-nav[data-rdp-menu-fixe] .rdp-sous-nav__infos { display: none; }
  .rdp-sous-nav__liens { display: flex; align-items: center; gap: clamp(20px, 2.2vw, 36px); margin: 0 clamp(20px, 2.2vw, 36px) 0 0; padding: 0; list-style: none; }
  .rdp-sous-nav__liens a { position: relative; color: var(--rdp-blanc); font-family: var(--rdp-fine); font-size: var(--rdp-t-corps); text-decoration: none; }
  .rdp-sous-nav__liens a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 0.25s; }
  .rdp-sous-nav__liens a:hover::after,
  .rdp-sous-nav__liens a[aria-current]::after { transform: scaleX(1); }
  .rdp-sous-nav__billets { min-width: clamp(160px, 13vw, 190px); justify-content: center; }
}

/* Hero : vidéo de fond et invitation à défiler */
.rdp-evt-hero__video-fond { width: 100%; height: 100%; object-fit: cover; }
.rdp-evt-hero__fond { position: absolute; inset: 0; }
.rdp-evt-hero__fond--mobile { display: none; }
@media (max-width: 749px) {
  .rdp-evt-hero__fond--bureau { display: none; }
  .rdp-evt-hero__fond--mobile { display: block; }
}
.rdp-evt-hero__video-fond video,
.rdp-evt-hero__media video { width: 100%; height: 100%; object-fit: cover; }
.rdp-evt-hero__defiler { display: none; }
@media (min-width: 990px) {
  .rdp-evt-hero__actions { margin-top: 48px; }
  .rdp-evt-hero__defiler { display: grid; justify-items: center; gap: 10px; margin-top: 24px; color: var(--rdp-blanc); text-decoration: none; }
  .rdp-evt-hero__defiler .rdp-etiquette { font-size: 10px; letter-spacing: 0.2em; }
  .rdp-evt-hero__defiler::after {
    content: '';
    width: 2px;
    height: 80px;
    background: repeating-linear-gradient(180deg, currentColor 0 8px, transparent 8px 14px) 0 0 / 2px 14px;
    animation: rdp-pointilles 1.2s linear infinite;
  }
  .rdp-evt-hero__contenu { padding-bottom: 0; }

  /* Couverture plein écran : ce qui la précède (en-tête + barre de l'événement) + la couverture = 100 % de la hauteur
     de l'écran, avec 750 px au minimum. --rdp-hero-dessus est mesuré dans rdp.js (160 px par défaut).
     Le logo-titre et les marges se réduisent avec la hauteur pour que le bouton et « Par ici » restent à l'écran. */
  .rdp-evt-hero { --rdp-hero-h: calc(max(100vh, 750px) - var(--rdp-hero-dessus, 160px) - var(--rdp-hero-dessous, 0px)); --rdp-hero-trait: clamp(40px, 7vh, 80px); }
  .rdp-evt-hero__contenu { position: relative; min-height: var(--rdp-hero-h); padding-block: clamp(32px, 6vh, 80px) calc(var(--rdp-hero-trait) + 44px); }
  /* largeur du logo-titre déduite de la hauteur disponible : hauteur de la couverture moins ses marges (qui suivent la hauteur d'écran), la date et les boutons */
  .rdp-evt-hero__logo-titre { width: min(clamp(360px, 30vw, 440px), calc((var(--rdp-hero-h) - 215px - clamp(32px, 6vh, 80px) - var(--rdp-hero-trait)) * 1.234)); }
  .rdp-evt-hero__defiler { position: absolute; left: 50%; bottom: 0; margin: 0; transform: translateX(-50%); }
  .rdp-evt-hero__defiler::after { height: var(--rdp-hero-trait); }
}
/* Le bandeau défilant et le damier qui suivent la couverture font partie du premier écran :
   leur hauteur est retirée (valeur exacte posée par rdp.js, estimation ici pour éviter un saut au chargement). */
.rdp-section--evt-hero:has(+ .shopify-section > .rdp-damier-bloc) .rdp-evt-hero { --rdp-hero-dessous: calc(clamp(10px, 0.9vw, 13px) * 2 + clamp(20px, 1.95vw, 28px) * 1.05 + 3px + clamp(6px, 0.56vw, 8px) * 2); }
@media (max-width: 989.98px) {
  /* Mobile et tablette : même principe sur la hauteur réellement visible (100svh, barre du navigateur comprise),
     sans le minimum de 750 px qui dépasserait d'un téléphone. Le contenu se centre dans la hauteur gagnée. */
  .rdp-evt-hero { --rdp-hero-h: calc(100vh - var(--rdp-hero-dessus, 118px) - var(--rdp-hero-dessous, 0px)); }
  @supports (height: 100svh) { .rdp-evt-hero { --rdp-hero-h: calc(100svh - var(--rdp-hero-dessus, 118px) - var(--rdp-hero-dessous, 0px)); } }
  /* Sur un écran peu haut, l'espace au-dessus des boutons, puis le logo-titre, puis les marges se resserrent pour que tout tienne */
  .rdp-evt-hero__contenu { --rdp-hero-marge: calc((var(--rdp-hero-h) - 368px) / 2 + 18px); min-height: var(--rdp-hero-h); align-content: center; padding-block: clamp(18px, var(--rdp-hero-marge), 35px) clamp(18px, var(--rdp-hero-marge), 32px); }
  .rdp-evt-hero__actions { margin-top: clamp(28px, calc(var(--rdp-hero-h) - 450px), 86px); }
  .rdp-evt-hero__logo-titre { width: min(66vw, 264px, max(160px, calc((var(--rdp-hero-h) - 280px) * 1.313))); }
}
@keyframes rdp-pointilles { to { background-position: 0 14px; } }
@media (prefers-reduced-motion: reduce) { .rdp-evt-hero__defiler::after { animation: none; } }

/* Damier qui défile vers la droite (sous le bandeau, qui part vers la gauche) */
.rdp-damier--anime { animation: rdp-damier-droite 2.4s linear infinite; }
@keyframes rdp-damier-droite {
  from { background-position: 0 0, 0 var(--d-filet), 0 calc(var(--d-filet) + var(--d-rang)); }
  to { background-position: 0 0, calc(var(--d-case) * 2) var(--d-filet), calc(var(--d-case) * 2) calc(var(--d-filet) + var(--d-rang)); }
}
@media (prefers-reduced-motion: reduce) { .rdp-damier--anime { animation: none; } }

/* Texte révélé mot à mot */
.rdp-revele__mot { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: 0.08em; margin-bottom: -0.08em; }
.rdp-revele__mot > span { display: inline-block; transform: translateY(105%); transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rdp-revele.est-revele .rdp-revele__mot > span { transform: none; }

/* Photos qui suivent le curseur */
.rdp-trainee {
  position: absolute;
  z-index: 3;
  width: clamp(140px, 13vw, 200px);
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border: 6px solid var(--rdp-blanc);
  box-shadow: var(--rdp-ombre);
  pointer-events: none;
  transform: translate(-50%, -50%) rotate(var(--rdp-rotation, 0deg));
  animation: rdp-trainee 1.1s ease-out forwards;
}
@keyframes rdp-trainee {
  0% { opacity: 0; transform: translate(-50%, -50%) rotate(var(--rdp-rotation, 0deg)) scale(0.6); }
  15% { opacity: 1; transform: translate(-50%, -50%) rotate(var(--rdp-rotation, 0deg)) scale(1); }
  70% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -40%) rotate(var(--rdp-rotation, 0deg)) scale(0.92); }
}

/* À propos : cartes photo posées de part et d'autre */
.rdp-evt-apropos { position: relative; overflow: hidden; }
.rdp-evt-apropos__polaroid { display: none; }
@media (min-width: 990px) {
  .rdp-evt-apropos__interieur { position: relative; z-index: 1; }
  .rdp-evt-apropos .rdp-evt-apropos__texte { max-width: 15em; font-size: var(--rdp-t-display); }
  .rdp-evt-apropos__polaroid {
    display: block;
    position: absolute;
    margin: 0;
    padding: 8px 8px 10px;
    background: var(--rdp-blanc);
    box-shadow: var(--rdp-ombre);
  }
  .rdp-evt-apropos__polaroid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
  .rdp-evt-apropos__polaroid--gauche { left: -3vw; top: 42%; width: clamp(240px, 19vw, 290px); transform: rotate(-8deg); }
  .rdp-evt-apropos__polaroid--droite { right: 6vw; top: 55%; width: clamp(150px, 11vw, 170px); transform: rotate(6deg); }
}

/* Cartes photo : titre de section, survol (zoom + dégradé qui remonte) */
.rdp-evt-cartes__titre { margin: 0; font-family: var(--rdp-etiquettes); font-size: var(--rdp-t-etiquette); font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; }

.rdp-carte-photo__image { transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rdp-carte-photo:hover .rdp-carte-photo__image,
.rdp-carte-photo:focus-within .rdp-carte-photo__image { transform: scale(1.08); }
@media (min-width: 990px) {
  .rdp-evt-cartes--grand .rdp-evt-cartes__titre { font-family: var(--rdp-titres); font-size: var(--rdp-t-display); letter-spacing: 0; line-height: 1.05; }
  .rdp-evt-cartes--grand .rdp-evt-cartes__entete { margin-bottom: 40px; }
  .rdp-evt-cartes--colonne { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); padding-inline-start: var(--rdp-marge); }
  .rdp-evt-cartes--colonne .rdp-evt-cartes__entete { padding: 0; }
  .rdp-evt-cartes--colonne .rdp-evt-cartes__titre { font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); letter-spacing: 0; }
  .rdp-evt-cartes--colonne .rdp-carrousel__piste { padding-inline-start: 0; }
  .rdp-evt-cartes--colonne .rdp-carrousel__element--grande { flex-basis: calc((min(100vw, var(--rdp-largeur-max)) - var(--rdp-marge) * 2 - 220px - 60px) / 4.2); }
  .rdp-evt-cartes--colonne[data-peu] .rdp-carrousel__commandes,
  .rdp-evt-cartes--colonne .rdp-carrousel[data-rdp-statique] .rdp-carrousel__commandes { display: none; }
}

/* Arches de la maquette : ogive de 396 × 616 (tracé Figma), encoches des épaulements sur les deux côtés,
   ombre intérieure, parallaxe verticale */
.rdp-arche {
  --rdp-arche-masque: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 396.159 616' preserveAspectRatio='none'%3E%3Cpath d='M0 616 V267.09 H10.84 A11.16 11.16 0 0 0 22 255.93 V219.1 A11.16 11.16 0 0 0 10.84 207.94 H4.06 L5.849 200.869 C10.52 183.64 18.987 160.162 34.232 134.522 C57.183 95.922 95.129 53.068 157.263 19.296 C168.123 13.393 189.215 3.055 198.08 0 C198.155 .035 210.692 5.852 238.895 19.296 C301.03 53.068 338.976 95.922 361.928 134.522 C377.173 160.162 385.639 183.64 390.31 200.869 L392.1 207.94 H385.32 A11.16 11.16 0 0 0 374.16 219.1 V255.93 A11.16 11.16 0 0 0 385.32 267.09 H396.159 V616 Z'/%3E%3C/svg%3E");
  --rdp-arche-ombre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 396.159 616' preserveAspectRatio='none'%3E%3Cfilter id='o' x='0' y='0' width='396.159' height='616' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'%3E%3CfeColorMatrix in='SourceAlpha' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='a'/%3E%3CfeOffset dx='7' dy='13'/%3E%3CfeGaussianBlur stdDeviation='7'/%3E%3CfeComposite in2='a' operator='arithmetic' k2='-1' k3='1'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .25 0'/%3E%3C/filter%3E%3Cpath filter='url(%23o)' d='M0 616 V251.333 L1.871 218.299 C2.722 213.636 3.986 207.741 5.849 200.869 C10.52 183.64 18.987 160.162 34.232 134.522 C57.183 95.922 95.129 53.068 157.263 19.296 C168.123 13.393 189.215 3.055 198.08 0 C198.155 .035 210.692 5.852 238.895 19.296 C301.03 53.068 338.976 95.922 361.928 134.522 C377.173 160.162 385.639 183.64 390.31 200.869 C392.173 207.741 393.437 213.636 394.288 218.299 L396.159 251.333 V616 Z'/%3E%3C/svg%3E");
  overflow: hidden;
  -webkit-mask: var(--rdp-arche-masque) center / 100% 100% no-repeat;
  mask: var(--rdp-arche-masque) center / 100% 100% no-repeat;
  aspect-ratio: 396.159 / 616;
  padding: 44% 10% 12%;
}
.rdp-arche::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: var(--rdp-arche-ombre) center / 100% 100% no-repeat; }
.rdp-arche--photo { padding: 0; }
/* la photo dépasse en haut et en bas pour pouvoir glisser verticalement sans laisser de vide */
.rdp-arche__cadre { position: absolute; inset: -12% 0; }
.rdp-arche__cadre,
.rdp-arche__texte,
.rdp-arche__interieur { transform: translateY(var(--rdp-py, 0px)); will-change: transform; }
.rdp-arche__interieur { position: relative; display: grid; justify-items: center; gap: 8px; }
.rdp-arche__logo { width: min(80%, 190px); height: auto; }
.rdp-arche--partenaire .rdp-titre-courbe--etiquette { color: var(--rdp-blanc); width: min(100%, 200px); }
.rdp-carrousel__element--partenaire { display: none; }
/* Commandes sous les arches (maquette) : pause, précédent, barre de progression, suivant */
.rdp-evt-encarts__commandes { display: flex; align-items: center; gap: 0; margin-top: clamp(16px, 2.8vw, 40px); padding-bottom: clamp(28px, 3.5vw, 48px); }
.rdp-evt-encarts__commandes .rdp-carrousel__fleche:first-child { margin-left: -6px; }
.rdp-evt-encarts__commandes .rdp-carrousel__fleche:last-child { margin-right: -6px; }
.rdp-evt-encarts__commandes .rdp-carrousel__lecture + .rdp-carrousel__fleche { margin-left: -4px; }
.rdp-evt-encarts__commandes .rdp-carrousel__progression { height: 4px; margin-inline: clamp(12px, 1.8vw, 26px); background: var(--rdp-blanc); }
.rdp-evt-encarts__commandes .rdp-carrousel__progression > span { background: var(--rdp-vert0); }
.rdp-carrousel__lecture .rdp-icone--lecture { display: none; }
.rdp-carrousel[data-rdp-pause] .rdp-carrousel__lecture .rdp-icone--pause { display: none; }
.rdp-carrousel[data-rdp-pause] .rdp-carrousel__lecture .rdp-icone--lecture { display: block; }
@media (min-width: 990px) {
  .rdp-evt-encarts { padding-top: clamp(88px, 9vw, 130px); }
  .rdp-evt-encarts--partenaire-arche .rdp-evt-encarts__partenaire { display: none; }
  .rdp-evt-encarts--partenaire-arche .rdp-carrousel__element--partenaire { display: block; }
  /* trois arches de 396 px dans la largeur utile de 1312 px, séparées de 62 px */
  .rdp-evt-encarts__piste { --rdp-arches-ecart: clamp(32px, 4.3vw, 62px); gap: var(--rdp-arches-ecart); justify-content: flex-start; padding-bottom: 0; }
  .rdp-carrousel__element--arche { flex-basis: calc((min(100vw, var(--rdp-largeur-max)) - var(--rdp-marge) * 2 - 2 * var(--rdp-arches-ecart)) / 3); }
  .rdp-arche__texte { font-size: var(--rdp-t-moyen); line-height: 1.08; }
}
.rdp-arche__logo--blanchi { filter: brightness(0) invert(0.96); }

/* Ajout rapide au survol (billets et produits) : bouton sac + en bas à droite du visuel */
.rdp-carte-ajout__media { position: relative; }
.rdp-ajout-rapide { position: absolute; right: 12px; bottom: 12px; z-index: 2; display: grid; justify-items: end; gap: 8px; opacity: 0; transform: translateY(8px); transition: opacity 0.25s, transform 0.25s; }
.rdp-carte-ajout:hover .rdp-ajout-rapide,
.rdp-carte-ajout:focus-within .rdp-ajout-rapide { opacity: 1; transform: none; }
.rdp-ajout-rapide__icone { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: var(--rdp-vert0); color: var(--rdp-blanc); cursor: pointer; transition: background 0.2s; }
.rdp-ajout-rapide__icone:hover { background: var(--rdp-vert1); }
.rdp-ajout-rapide__choix { display: grid; gap: 6px; min-width: 160px; padding: 10px; background: var(--rdp-blanc); box-shadow: var(--rdp-ombre); }
.rdp-ajout-rapide__choix[hidden] { display: none; }
.rdp-ajout-rapide__bouton { min-height: 36px; padding: 6px 12px; border: 1px solid var(--rdp-vert0); background: transparent; color: var(--rdp-vert0); font-family: var(--rdp-fine); font-size: var(--rdp-t-petit); text-align: left; cursor: pointer; }
.rdp-ajout-rapide__bouton:hover { background: var(--rdp-vert0); color: var(--rdp-blanc); }
.rdp-ajout-rapide .est-en-cours { opacity: 0.6; cursor: progress; }
.rdp-ajout-rapide .est-ajoute { background: var(--rdp-vert2); color: var(--rdp-vert0); border-color: var(--rdp-vert2); }
.rdp-ajout-rapide .est-erreur { background: var(--rdp-rouge); color: var(--rdp-blanc); border-color: var(--rdp-rouge); }
/* Écrans tactiles : toujours visible, en plus petit */
@media (hover: none) { .rdp-ajout-rapide { opacity: 1; transform: none; right: 8px; bottom: 8px; } .rdp-ajout-rapide__icone { width: 38px; height: 38px; } }

/* Billetterie : onglets et lien « Voir tous les billets » sur une même ligne */
.rdp-evt-billets__barre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-bottom: 24px; }
.rdp-evt-billets__barre .rdp-pastilles-onglets { margin-block: 0; }
@media (min-width: 750px) { .rdp-evt-billets__barre .rdp-pastilles-onglets { margin-inline: 0; padding-inline: 0; } }
.rdp-evt-billets__tous { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.rdp-evt-billets .rdp-carrousel__progression { background: rgb(221 46 11 / 0.35); }
.rdp-evt-billets .rdp-carrousel__progression > span { background: var(--rdp-blanc); }
@media (max-width: 749px) { .rdp-evt-billets__tous { order: 2; } }
.rdp-evt-billets .rdp-billet-carte__visuel { background: var(--rdp-beige); }

/* Programme et plan (maquette bureau) */
.rdp-evt-programme--detail { position: relative; background: var(--rdp-fond); }
.rdp-evt-programme--creneaux::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 12px;
  background: linear-gradient(90deg, var(--rdp-creneaux) 0 50%, transparent 50% 100%) 0 0 / 24px 100% repeat-x;
}
.rdp-evt-programme--detail .rdp-evt-programme__grille { display: grid; gap: 48px; justify-items: stretch; }
.rdp-evt-programme__principal { display: grid; gap: 32px; min-width: 0; }
.rdp-evt-programme__titre { color: var(--rdp-encre); }
.rdp-onglets-soulignes { position: relative; display: flex; gap: 20px; border-bottom: 1px solid rgb(143 198 145 / 0.6); }
.rdp-onglet-souligne { position: relative; padding: 0 0 12px; border: 0; background: none; color: rgb(244 244 240 / 0.45); font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); text-transform: uppercase; cursor: pointer; }
.rdp-onglet-souligne[aria-selected='true'] { color: var(--rdp-blanc); }
.rdp-onglet-souligne[aria-selected='true']::after { content: ''; position: absolute; left: 50%; bottom: -4px; width: 7px; height: 7px; margin-left: -3.5px; border-radius: 50%; background: var(--rdp-blanc); }
.rdp-evt-programme__panneau[hidden] { display: none; }
.rdp-programme-jour { display: block; border-bottom: 1px solid rgb(143 198 145 / 0.6); }
.rdp-programme-jour__entete { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 20px 0; border: 0; background: none; color: inherit; text-align: left; cursor: pointer; }
.rdp-programme-jour__entete .rdp-icone { flex: none; transition: transform 0.25s; }
.rdp-programme-jour__entete[aria-expanded='true'] .rdp-icone { transform: rotate(180deg); }
.rdp-programme-jour__liste { display: grid; gap: 16px; margin: 0; padding: 0 0 28px; list-style: none; }
.rdp-programme-jour__liste[hidden] { display: none; }
.rdp-creneau { display: grid; grid-template-columns: 64px 84px minmax(0, 1fr); gap: 12px 20px; align-items: start; }
.rdp-creneau__picto { display: grid; place-items: center; width: 64px; height: 42px; background: var(--rdp-picto-fond); overflow: hidden; }
.rdp-creneau__picto img { width: 100%; height: 100%; object-fit: contain; }
.rdp-creneau__heure,
.rdp-creneau__texte { font-size: var(--rdp-t-petit); line-height: 1.3; }
.rdp-adresses { margin: 0; padding: 0; list-style: none; }
.rdp-adresse { display: grid; gap: 8px; padding: 20px 0; border-bottom: 1px solid rgb(143 198 145 / 0.6); }
.rdp-adresse__lieu { display: inline-flex; align-items: center; gap: 10px; color: inherit; font-size: var(--rdp-t-petit); text-decoration: none; }
a.rdp-adresse__lieu:hover { text-decoration: underline; text-underline-offset: 3px; }
.rdp-evt-programme__documents { display: flex; flex-wrap: wrap; justify-content: center; gap: 40px; }
.rdp-evt-programme--detail .rdp-evt-programme__grille:not(:has(.rdp-evt-programme__documents)) { grid-template-columns: minmax(0, 1fr); }
.rdp-evt-programme__document { display: grid; justify-items: center; gap: 16px; margin: 0; }
.rdp-evt-programme--detail .rdp-evt-programme__visuel { width: min(46vw, 150px); aspect-ratio: 150 / 210; transform: rotate(-4deg); }
.rdp-evt-programme--detail .rdp-evt-programme__visuel--plan { transform: rotate(3deg); }
.rdp-evt-programme__document .rdp-bouton { font-size: var(--rdp-t-corps); }
@media (min-width: 990px) {
  /* Cotes de la maquette « Programme et plan » (cadre de 1440 px) :
     titre à 90 px du haut, onglets 32 px sous le titre, filet 16 px sous les onglets,
     colonne du jour 224 px, créneaux 88 × 56 espacés de 24 px, colonne des documents 264 px à 71 px. */
  .rdp-evt-programme--detail { padding-block: clamp(64px, 6.25vw, 90px) clamp(56px, 5.55vw, 80px); }
  .rdp-evt-programme--detail .rdp-evt-programme__grille { grid-template-columns: minmax(0, 1fr) 264px; gap: clamp(40px, 4.93vw, 71px); align-items: start; }
  .rdp-evt-programme__principal { gap: 32px; }
  .rdp-evt-programme--detail .rdp-onglets-soulignes { gap: 24px; }
  .rdp-evt-programme--detail .rdp-onglet-souligne { padding-bottom: 16px; font-size: var(--rdp-t-bouton); line-height: 24px; }
  .rdp-evt-programme--detail .rdp-onglet-souligne[aria-selected='true']::after { bottom: -5px; width: 8px; height: 8px; margin-left: -4px; }
  /* Jour à gauche, créneaux à droite ; le chevron reste au bout du filet et se clique (la liste ne le recouvre pas) */
  .rdp-programme-jour { display: grid; grid-template-columns: clamp(170px, 15.5vw, 224px) minmax(0, 1fr); }
  .rdp-programme-jour__entete { grid-column: 1 / -1; grid-row: 1; align-self: start; padding: 25px 0 31px; }
  .rdp-programme-jour__entete { align-items: flex-start; }
  .rdp-programme-jour__entete .rdp-icone { width: 32px; height: 32px; margin-top: 6px; }
  .rdp-programme-jour__liste { grid-column: 2; grid-row: 1; position: relative; z-index: 1; gap: 24px; margin-right: 56px; padding: 31px 0 33px; }
  .rdp-creneau { grid-template-columns: 88px 90px minmax(200px, 307px); gap: 12px 24px; }
  .rdp-creneau__picto { width: 88px; height: 56px; }
  .rdp-creneau__heure,
  .rdp-creneau__texte { line-height: 1.22; }
  .rdp-adresse { grid-template-columns: clamp(170px, 15.5vw, 224px) minmax(0, 1fr); align-items: center; gap: 0; padding: 25px 0 31px; }
  /* Documents : visuel 155 × 220 incliné, bouton blanc de 264 × 40 dessous */
  .rdp-evt-programme__documents { flex-direction: column; align-items: stretch; gap: 34px; padding-top: 110px; }
  .rdp-evt-programme__document { gap: 8px; }
  .rdp-evt-programme--detail .rdp-evt-programme__visuel { width: 155px; aspect-ratio: 155 / 220; }
  .rdp-evt-programme__document .rdp-bouton { width: 100%; min-height: 40px; padding: 6px 5px; gap: 8px; font-size: var(--rdp-t-bouton); }
}
}

/* Questions pratiques : cadre de la maquette (ordinateur).
   De l'extérieur vers l'intérieur : filet doré, rangée beige/vert, rangée vert/beige (inversée),
   et un carré rouge à chaque coin. Le cadre est centré, le contenu aussi. */
@media (min-width: 990px) {
  .rdp-evt-questions__interieur--cadre {
    --cadre-or: 3px;
    --cadre-rang: 6px;
    --cadre-case: 22px;
    --cadre-coin: 30px;
    --cadre-decal: 8px; /* la première case après le coin rouge est beige, comme sur la maquette */
    --cadre-a: var(--rdp-beige);
    --cadre-b: var(--rdp-vert1);
    box-sizing: border-box;
    width: calc(100% - var(--rdp-marge) * 2);
    max-width: calc(var(--rdp-largeur-max) - var(--rdp-marge) * 2);
    margin-inline: auto;
    padding: 64px clamp(40px, 15vw, 226px) 72px;
    justify-items: center;
    background:
      /* coins rouges */
      linear-gradient(var(--rdp-rouge), var(--rdp-rouge)) left top / var(--cadre-coin) var(--cadre-coin) no-repeat,
      linear-gradient(var(--rdp-rouge), var(--rdp-rouge)) right top / var(--cadre-coin) var(--cadre-coin) no-repeat,
      linear-gradient(var(--rdp-rouge), var(--rdp-rouge)) left bottom / var(--cadre-coin) var(--cadre-coin) no-repeat,
      linear-gradient(var(--rdp-rouge), var(--rdp-rouge)) right bottom / var(--cadre-coin) var(--cadre-coin) no-repeat,
      /* filets dorés */
      linear-gradient(var(--rdp-or), var(--rdp-or)) left top / 100% var(--cadre-or) no-repeat,
      linear-gradient(var(--rdp-or), var(--rdp-or)) left bottom / 100% var(--cadre-or) no-repeat,
      linear-gradient(var(--rdp-or), var(--rdp-or)) left top / var(--cadre-or) 100% no-repeat,
      linear-gradient(var(--rdp-or), var(--rdp-or)) right top / var(--cadre-or) 100% no-repeat,
      /* haut : rangée extérieure puis rangée inversée */
      linear-gradient(90deg, var(--cadre-a) 0 50%, var(--cadre-b) 50% 100%) var(--cadre-decal) var(--cadre-or) / calc(var(--cadre-case) * 2) var(--cadre-rang) repeat-x,
      linear-gradient(90deg, var(--cadre-b) 0 50%, var(--cadre-a) 50% 100%) var(--cadre-decal) calc(var(--cadre-or) + var(--cadre-rang)) / calc(var(--cadre-case) * 2) var(--cadre-rang) repeat-x,
      /* bas */
      linear-gradient(90deg, var(--cadre-a) 0 50%, var(--cadre-b) 50% 100%) var(--cadre-decal) calc(100% - var(--cadre-or)) / calc(var(--cadre-case) * 2) var(--cadre-rang) repeat-x,
      linear-gradient(90deg, var(--cadre-b) 0 50%, var(--cadre-a) 50% 100%) var(--cadre-decal) calc(100% - var(--cadre-or) - var(--cadre-rang)) / calc(var(--cadre-case) * 2) var(--cadre-rang) repeat-x,
      /* gauche */
      linear-gradient(180deg, var(--cadre-a) 0 50%, var(--cadre-b) 50% 100%) var(--cadre-or) var(--cadre-decal) / var(--cadre-rang) calc(var(--cadre-case) * 2) repeat-y,
      linear-gradient(180deg, var(--cadre-b) 0 50%, var(--cadre-a) 50% 100%) calc(var(--cadre-or) + var(--cadre-rang)) var(--cadre-decal) / var(--cadre-rang) calc(var(--cadre-case) * 2) repeat-y,
      /* droite */
      linear-gradient(180deg, var(--cadre-a) 0 50%, var(--cadre-b) 50% 100%) calc(100% - var(--cadre-or)) var(--cadre-decal) / var(--cadre-rang) calc(var(--cadre-case) * 2) repeat-y,
      linear-gradient(180deg, var(--cadre-b) 0 50%, var(--cadre-a) 50% 100%) calc(100% - var(--cadre-or) - var(--cadre-rang)) var(--cadre-decal) / var(--cadre-rang) calc(var(--cadre-case) * 2) repeat-y,
      var(--rdp-fond);
  }
  .rdp-evt-questions__interieur--cadre .rdp-accordeon { width: 100%; max-width: 866px; margin-inline: auto; }
  .rdp-evt-questions__interieur--cadre .rdp-accordeon__item summary { font-size: clamp(24px, 2vw, 28px); padding-block: 10px; }
}

/* Bloc de fin de l'événement : grand nom sur toute la largeur, colonnes, emblème */
.rdp-evt-pied__titre { margin: 0 0 16px; color: rgb(231 230 220 / 0.55); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); }
.rdp-evt-pied__colonne--bureau { display: none; }
.rdp-evt-pied__mentions { margin-top: 20px; color: rgb(231 230 220 / 0.55); font-size: var(--rdp-t-petit); }
.rdp-evt-pied__mentions a { color: inherit; }
.rdp-evt-pied .rdp-pied__langue { color: rgb(231 230 220 / 0.55); }
.rdp-evt-pied .rdp-pied__langue[aria-current] { color: var(--rdp-encre); }
@media (min-width: 990px) {
  .rdp-evt-pied { padding-top: 40px; }
  .rdp-evt-pied__grille { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .rdp-evt-pied__marque { display: grid; justify-items: center; text-align: center; }
  .rdp-evt-pied__nom { font-size: clamp(64px, 8.6vw, 124px); line-height: 0.95; white-space: nowrap; }
  .rdp-evt-pied__lieu { font-size: clamp(36px, 3.4vw, 50px); margin-top: 0; }
  .rdp-evt-pied__texte { display: grid; grid-template-columns: repeat(4, minmax(0, 200px)); gap: 32px; align-items: start; padding: 48px 0 72px; max-width: 58%; }
  .rdp-evt-pied__colonne--bureau { display: block; }
  .rdp-evt-pied__liens { margin-top: 0; gap: 14px; }
  .rdp-evt-pied__embleme { position: absolute; right: 0; bottom: 0; width: clamp(320px, 26vw, 380px); }
}

/* Page Animations (maquette « CDR-animations ») */
.rdp-evt-anims { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: 24px clamp(56px, 5.5vw, 80px); }
.rdp-fil ol { display: flex; flex-wrap: wrap; gap: 8px 12px; margin: 0; padding: 0; list-style: none; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); }
.rdp-fil li + li::before { content: '•'; margin-right: 12px; }
.rdp-fil a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.rdp-evt-anims__titre { margin: 32px 0 24px; text-align: center; }
.rdp-evt-anims__tuiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.rdp-evt-anims__tuile { position: relative; display: block; aspect-ratio: 169 / 106; background: var(--rdp-tuile); transition: transform 0.25s; }
.rdp-evt-anims__tuile:hover { transform: translateY(-3px); }
.rdp-evt-anims__tuile img { position: absolute; inset: 8px 12px; width: calc(100% - 24px); height: calc(100% - 16px); object-fit: contain; }

.rdp-anim { position: relative; overflow: hidden; background: var(--rdp-anim-fond); padding-block: 0 clamp(64px, 8vw, 120px); scroll-margin-top: 140px; }
.rdp-anim__damier { height: 15px; background:
  linear-gradient(var(--rdp-or), var(--rdp-or)) 0 0 / 100% 3px no-repeat,
  linear-gradient(90deg, var(--rdp-vert1) 0 50%, var(--rdp-beige) 50% 100%) 0 3px / 44px 6px repeat-x,
  linear-gradient(90deg, var(--rdp-beige) 0 50%, var(--rdp-vert1) 50% 100%) 0 9px / 44px 6px repeat-x; }
.rdp-anim__interieur { display: grid; justify-items: center; gap: clamp(48px, 7vw, 120px); padding-top: clamp(64px, 9vw, 140px); }
.rdp-anim__logo img { display: block; width: min(80vw, 420px); height: auto; }
.rdp-anim__collage { position: relative; width: 100%; display: grid; justify-items: center; }
.rdp-anim__carte { position: relative; z-index: 2; width: min(100%, 420px); background: var(--rdp-blanc); color: var(--rdp-vert0); }
.rdp-anim__carte-photo { aspect-ratio: 290 / 262; overflow: hidden; }
.rdp-anim__carte-photo img { width: 100%; height: 100%; object-fit: cover; }
.rdp-anim__carte-texte { display: grid; gap: 24px; padding: 24px 16px 28px; }
.rdp-anim__description p { margin: 0 0 0.6em; }
.rdp-anim__carte-texte .rdp-bouton { width: 100%; justify-content: center; }
.rdp-anim__photo { display: none; margin: 0; }
@media (min-width: 750px) {
  .rdp-evt-anims__tuiles { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 990px) {
  .rdp-anim__carte { width: 290px; }
  .rdp-anim__photo { display: block; position: absolute; z-index: 1; transform: translateY(var(--rdp-flotte, 0px)); will-change: transform; }
  .rdp-anim__photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 2px; }
  .rdp-anim__photo--1 { left: calc(var(--rdp-marge) * -1); top: 4%; width: 28%; aspect-ratio: 4 / 3; }
  .rdp-anim__photo--2 { left: 5%; top: 52%; width: 15%; aspect-ratio: 3 / 4; }
  .rdp-anim__photo--3 { right: calc(var(--rdp-marge) * -1); top: 14%; width: 25%; aspect-ratio: 5 / 6; }
}

/* Souvenirs : à l'arrivée d'une carte, le verso passe derrière la photo puis vient se poser
   par-dessus ; photo et verso se décalent légèrement, en quinconce (commentaire de la designer). */
@media (min-width: 750px) {
.rdp-temoin__photo { position: relative; z-index: 2; transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rdp-temoin__carte { z-index: 1; transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.4s; }
.rdp-temoin:not(.est-courant) .rdp-temoin__carte { transform: translateX(-38%) rotate(-2deg); opacity: 0; }
.rdp-temoin.est-courant .rdp-temoin__photo { transform: translate(-2%, -3%) rotate(-3deg); }
.rdp-temoin.est-courant .rdp-temoin__carte { z-index: 3; animation: rdp-verso-arrive 0.95s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
@keyframes rdp-verso-arrive {
  0% { transform: translateX(-38%) rotate(-2deg); z-index: 1; opacity: 1; }
  52% { transform: translateX(22%) translateY(-4%) rotate(4deg); z-index: 1; }
  53% { z-index: 3; }
  100% { transform: translate(2%, 3%) rotate(1.5deg); z-index: 3; opacity: 1; }
}
}
@media (prefers-reduced-motion: reduce) {
  .rdp-temoin.est-courant .rdp-temoin__carte { animation: none; transform: rotate(1.5deg); }
  .rdp-temoin:not(.est-courant) .rdp-temoin__carte { opacity: 1; transform: rotate(1.5deg); }
}

/* En-tête dédié d'un événement (maquettes « CDR-home », « CDR-menu-top ») */
.rdp-entete { position: relative; z-index: 30; background: var(--rdp-entete-fond); color: var(--rdp-entete-texte); }
.rdp-entete__barre { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 64px; padding-inline: max(var(--page-margin, var(--rdp-marge)), var(--rdp-entete-bord)); }
.rdp-entete__action { display: inline-grid; justify-items: center; gap: 2px; padding: 8px 4px; border: 0; background: none; color: inherit; font-family: var(--rdp-fine); font-size: var(--rdp-t-petit); line-height: 1.1; text-decoration: none; cursor: pointer; list-style: none; }
.rdp-entete__action::-webkit-details-marker { display: none; }
/* Horizon colore les <summary> au survol avec la couleur du schéma (verte) : invisible sur l'en-tête vert des Chapeaux de Roues → couleur du texte, léger estompage */
.rdp-section summary:hover, .rdp-entete__action:hover { color: inherit; }
.rdp-entete__action { transition: opacity 0.2s; }
.rdp-entete__action:not(.rdp-entete__action--statique):hover { opacity: 0.75; }
.rdp-entete__action > span { display: inline-flex; align-items: center; gap: 2px; }
.rdp-entete__action--statique { cursor: default; }
.rdp-entete__barre > .rdp-entete__action { justify-self: start; }
.rdp-entete__marques { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.rdp-entete__logo { width: auto; height: 32px; }
.rdp-entete__logo-evt { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.rdp-entete__croix { font-family: var(--rdp-titres); font-size: 18px; }
.rdp-entete__nom { font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); text-transform: uppercase; }
.rdp-entete__droite { display: flex; justify-self: end; align-items: center; gap: clamp(12px, 2vw, 28px); }
.rdp-entete__langue { position: relative; }
.rdp-entete__langues { position: absolute; right: 0; top: 100%; z-index: 2; display: grid; min-width: 140px; padding: 6px 0; background: var(--rdp-blanc); box-shadow: var(--rdp-ombre); }
.rdp-entete__langues button { padding: 10px 16px; border: 0; background: none; color: var(--rdp-vert0); font-family: var(--rdp-texte); text-align: left; cursor: pointer; }
.rdp-entete__langues button[aria-current] { font-weight: 600; }
.rdp-entete__langues button:hover { background: var(--rdp-beige); }
.rdp-entete__panier-icone { position: relative; }
.rdp-entete__compteur { position: absolute; top: -6px; right: -10px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--rdp-rouge); color: var(--rdp-blanc); font-size: 10px; line-height: 16px; text-align: center; }
.rdp-entete__compteur[hidden] { display: none; }
@media (max-width: 749.98px) {
  /* Téléphone : comme l'en-tête du site, icônes seules à droite (libellés gardés pour les lecteurs d'écran) */
  .rdp-entete__droite { gap: 8px; }
  .rdp-entete__droite .rdp-entete__action { position: relative; padding-inline: 6px; }
  .rdp-entete__droite .rdp-entete__action > span:not(.rdp-entete__panier-icone) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (min-width: 990px) {
  .rdp-entete__barre { min-height: 80px; }
  .rdp-entete__logo { height: 40px; }
  .rdp-entete__logo-evt { width: 44px; height: 44px; }
  .rdp-entete__action { font-size: var(--rdp-t-corps); }
}

/* Panneau latéral du menu */
.rdp-menu-lateral { position: fixed; inset: 0 auto 0 0; width: min(100vw, 707px); max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: var(--rdp-vert0); overflow: visible; }
.rdp-menu-lateral::backdrop { background: rgb(0 20 12 / 0.7); }
.rdp-menu-lateral[open] .rdp-menu-lateral__panneau { animation: rdp-menu-entre 0.35s cubic-bezier(0.2, 0.7, 0.2, 1); }
@keyframes rdp-menu-entre { from { transform: translateX(-100%); } }
.rdp-menu-lateral__panneau {
  position: relative;
  height: 100%;
  overflow-y: auto;
  padding: 16px var(--rdp-marge) 48px;
  background: var(--rdp-blanc) url('rdp-dune-menu.svg') left -40px top 360px / 110% auto no-repeat;
}
.rdp-menu-lateral__fermer { display: inline-grid; justify-items: center; gap: 2px; padding: 8px 4px; border: 0; background: none; color: inherit; font-family: var(--rdp-fine); font-size: var(--rdp-t-corps); cursor: pointer; }
.rdp-menu-lateral__titre { margin: clamp(32px, 5vw, 56px) 0 clamp(24px, 3vw, 40px); font-family: var(--rdp-titres); font-size: clamp(52px, 6.4vw, 92px); line-height: 0.95; text-transform: uppercase; }
.rdp-menu-lateral__liste { margin: 0; padding: 0; list-style: none; }
.rdp-menu-lateral__groupe { padding-block: 14px; border-bottom: 1px solid rgb(0 36 23 / 0.45); }
.rdp-menu-lateral__groupe:last-child { border-bottom: 0; }
.rdp-menu-lateral__rubrique { margin: 6px 0 14px; font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); text-transform: uppercase; }
.rdp-menu-lateral__sous-liste { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.rdp-menu-lateral__lien { color: inherit; font-family: var(--rdp-titres); font-size: clamp(26px, 2.2vw, 32px); line-height: 1.05; text-transform: uppercase; text-decoration: none; }
.rdp-menu-lateral__lien:hover,
.rdp-menu-lateral__lien[aria-current] { color: var(--rdp-vert1); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .rdp-menu-lateral[open] .rdp-menu-lateral__panneau { animation: none; } }

/* Fiche billet (maquette « CDR - product page ») */
.rdp-fiche-produit { background: var(--rdp-fond); color: var(--rdp-encre); padding-bottom: clamp(56px, 6vw, 96px); }
.rdp-fiche-produit__fil { padding-block: 20px 24px; }
.rdp-fiche-produit__fil li[aria-current] { font-weight: 500; }
.rdp-fiche-produit__grille { display: grid; gap: 32px; }
.rdp-fiche-produit__galerie { position: relative; }
.rdp-fiche-produit__medias { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.rdp-fiche-produit__media { flex: 0 0 100%; margin: 0; scroll-snap-align: start; background: var(--rdp-beige); scroll-margin-top: calc(var(--header-height, 80px) + 16px); }
.rdp-fiche-produit__media img,
.rdp-fiche-produit__media video { display: block; width: 100%; height: auto; aspect-ratio: 708 / 820; object-fit: cover; }
.rdp-fiche-produit__vignettes { display: none; }
.rdp-fiche-produit__infos { padding-inline: var(--rdp-marge); }
.rdp-fiche-produit__collant { display: grid; gap: 20px; }
.rdp-fiche-produit__evenement { margin: 0; font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); text-transform: uppercase; }
.rdp-fiche-produit__titre { color: var(--rdp-vert0); }
.rdp-fiche-produit__prix { display: flex; align-items: baseline; gap: 12px; margin: 0; font-family: var(--rdp-titres); font-size: var(--rdp-t-moyen); }
.rdp-fiche-produit__prix s { font-size: 0.62em; opacity: 0.9; }
.rdp-fiche-produit__mention { justify-self: start; margin: -8px 0 0; padding: 8px 14px; background: var(--rdp-beige); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); }
.rdp-fiche-produit__description p { margin: 0 0 0.6em; }
.rdp-fiche-produit__option { margin: 0 0 16px; padding: 0; border: 0; }
.rdp-fiche-produit__option legend { margin-bottom: 8px; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); }
.rdp-fiche-produit__choix { display: flex; flex-wrap: wrap; gap: 8px; }
.rdp-fiche-produit__choix input { position: absolute; opacity: 0; pointer-events: none; }
.rdp-fiche-produit__choix span { display: inline-block; padding: 8px 16px; border: 1px solid rgb(0 36 23 / 0.35); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); cursor: pointer; }
.rdp-fiche-produit__choix input:checked + span { border-color: var(--rdp-vert0); background: var(--rdp-vert0); color: var(--rdp-blanc); }
.rdp-fiche-produit__choix input:focus-visible + span { outline: 2px solid var(--rdp-vert1); outline-offset: 2px; }
.rdp-fiche-produit__bouton { display: flex; align-items: center; justify-content: center; gap: 14px; width: 100%; min-height: 52px; padding: 10px 20px; border: 0; background: var(--rdp-vert0); color: var(--rdp-blanc); font-family: var(--rdp-titres); font-size: var(--rdp-t-bouton); text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background 0.2s; }
.rdp-fiche-produit__bouton:hover { background: var(--rdp-vert1); }
.rdp-fiche-produit__bouton:disabled, .rdp-fiche-produit__bouton--complet, .rdp-fiche-produit__bouton--complet:hover { background: var(--rdp-beige-fonce); cursor: not-allowed; }
.rdp-fiche-produit__bouton.est-ajoute { background: var(--rdp-vert1); }
.rdp-fiche-produit__separateur { width: 1px; height: 24px; background: currentColor; opacity: 0.6; }
/* Nombre de billets (fiche billet) et jauge « Places limitées » */
.rdp-quantite-billets { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 18px; }
/* Rallyes : véhicule demandé sur la fiche (champ produit « Demander le véhicule »), à la place du nombre de billets */
.rdp-vehicule { min-width: 0; margin: 0 0 18px; padding: 0; border: 0; }
.rdp-vehicule legend { margin-bottom: 12px; padding: 0; }
.rdp-vehicule__champs { display: grid; grid-template-columns: minmax(0, 1fr) 7.5em; gap: 12px; }
.rdp-vehicule .rdp-champ { gap: 6px; }
.rdp-vehicule .rdp-champ label { font-size: var(--rdp-t-petit); }
.rdp-vehicule input[type='number'] { -moz-appearance: textfield; }
.rdp-vehicule input::-webkit-outer-spin-button, .rdp-vehicule input::-webkit-inner-spin-button { margin: 0; -webkit-appearance: none; }
.rdp-vehicule__aide { margin: 10px 0 0; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); line-height: 1.4; opacity: 0.85; }
.rdp-quantite-billets__libelle { margin: 0; font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); text-transform: uppercase; }
.rdp-fiche-produit__jauge { display: inline-flex; align-items: center; gap: 8px; margin: 12px 0 0; padding: 6px 12px; background: var(--rdp-rouge); color: var(--rdp-blanc); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); font-weight: 600; }
.rdp-fiche-produit__alerte { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; color: var(--rdp-rouge); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); font-weight: 600; }
.rdp-fiche-produit__alerte::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.rdp-fiche-produit__points { display: grid; gap: 14px; margin: 8px 0 0; padding: 0; list-style: none; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); }
.rdp-fiche-produit__points li { display: flex; align-items: flex-start; gap: 12px; }
.rdp-fiche-produit__points .rdp-icone { flex: none; }
.rdp-fiche-produit__accordeon { width: 100%; border-top: 1px solid currentColor; }
.rdp-fiche-produit__accordeon .rdp-accordeon__item summary { font-size: clamp(24px, 2vw, 28px); padding-block: 8px; }
.rdp-fiche-produit__accordeon .rdp-accordeon__contenu { font-size: var(--rdp-t-petit); }
.rdp-fiche-produit__associes { display: grid; gap: 12px; }

/* Fiche billet, maquette du 12/10 (la section « Édition à la une » des événements garde ses propres cotes) */
.rdp-fiche-billet .rdp-fiche-produit__media img,
.rdp-fiche-billet .rdp-fiche-produit__media video { aspect-ratio: 708 / 784; }
.rdp-fiche-produit__media[hidden] { display: none; }
/* visuel de billet (image en hauteur) : montré entier, centré sur le panneau beige — billet de 616 px dans un panneau de 784 */
.rdp-fiche-produit__media--billet { position: relative; aspect-ratio: 708 / 784; }
.rdp-fiche-billet .rdp-fiche-produit__media--billet img { position: absolute; top: 10.7%; left: 0; width: 100%; height: 78.6%; aspect-ratio: auto; object-fit: contain; }
.rdp-fiche-billet .rdp-fiche-produit__collant { gap: 16px; }
.rdp-fiche-billet .rdp-fiche-produit__collant > * { margin-block: 0; }
.rdp-fiche-billet .rdp-fiche-produit__collant > .rdp-fiche-produit__mention { margin-top: -8px; padding: 8px 16px; line-height: 19px; }
.rdp-fiche-billet .rdp-fiche-produit__bouton { min-height: 56px; }
.rdp-fiche-billet .rdp-fiche-produit__collant > .rdp-fiche-produit__description { margin-top: 16px; }
.rdp-fiche-billet .rdp-fiche-produit__collant > .rdp-fiche-produit__achat,
.rdp-fiche-billet .rdp-fiche-produit__collant > .rdp-fiche-produit__accordeon { margin-top: 24px; }
.rdp-fiche-billet .rdp-fiche-produit__alerte { margin-top: 8px; }
/* Page introuvable : photo plein écran, « Sortie de route ! » et bouton au centre (polices et voile de la couverture d'accueil) */
.rdp-404 { position: relative; isolation: isolate; display: grid; min-height: max(560px, calc(100vh - var(--rdp-hero-dessus, 84px))); background: var(--rdp-vert0); color: var(--rdp-blanc); }
.rdp-404__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.rdp-404__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.rdp-404__media::after { content: ''; position: absolute; inset: 0; background: rgb(0 36 23 / var(--rdp-404-voile, 0.55)); }
.rdp-404__corps { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; padding-block: clamp(64px, 8vw, 120px); text-align: center; }
.rdp-404__corps > * { margin: 0; }
.rdp-404__titre { font-family: var(--rdp-titres); font-size: clamp(48px, 7vw, 104px); font-weight: var(--font-heading--weight, 400); line-height: 1; text-transform: uppercase; text-wrap: balance; }
.rdp-404__texte { max-width: 32em; font-family: var(--rdp-texte); font-size: clamp(16px, 1.25vw, 18px); line-height: 1.5; text-wrap: pretty; text-shadow: 0 1px 12px rgb(0 36 23 / 0.6); }
.rdp-404__titre { text-shadow: 0 2px 24px rgb(0 36 23 / 0.35); }
.rdp-404__bouton { margin-top: 8px; }

/* Une option de billet (passager, déjeuner) n'est jamais proposée seule : ni dans la recherche, ni dans les listes */
[data-rdp-masque], li:has(> [data-rdp-masque]), li:has(> * > [data-rdp-masque]) { display: none !important; }

/* ── Boutique fermée ── Réglages du thème › Rallye du Pyla › « Boutique ouverte » décochée.
   « La boutique » reste dans les menus, grisée, avec la mention « Bientôt » au-dessus ; ses sous-rubriques,
   les cartes de produits et le clic disparaissent. Les liens de billetterie ne sont pas concernés. */
.rdp-boutique-fermee a[href*='/collections/']:not([href*='/collections/billetterie']) { pointer-events: none; cursor: default; }
.rdp-boutique-fermee [data-rdp-boutique],
.rdp-boutique-fermee li:has(> [data-rdp-boutique]),
.rdp-boutique-fermee li:has(> * > [data-rdp-boutique]) { display: none !important; }
.rdp-boutique-fermee #header-group .menu-list__link[href*='/collections/']:not([href*='/collections/billetterie']) .menu-list__link-title,
.rdp-boutique-fermee .menu-drawer__menu-item[href*='/collections/']:not([href*='/collections/billetterie']) .menu-drawer__menu-item-text,
.rdp-boutique-fermee :is(.rdp-pied__liens, .rdp-sous-nav, [data-rdp-liens-ancres]) a[href*='/collections/']:not([href*='/collections/billetterie']),
.rdp-boutique-fermee .rdp-menu-lateral__lien[href*='/collections/']:not([href*='/collections/billetterie']),
.rdp-boutique-fermee .rdp-menu-lateral__groupe:has(.rdp-menu-lateral__sous-liste a[href*='/collections/']:not([href*='/collections/billetterie'])) > .rdp-menu-lateral__rubrique {
  position: relative;
  color: color-mix(in srgb, currentColor 42%, transparent);
}
.rdp-boutique-fermee #header-group .menu-list__link[href*='/collections/']:not([href*='/collections/billetterie']) .menu-list__link-title::before,
.rdp-boutique-fermee .menu-drawer__menu-item[href*='/collections/']:not([href*='/collections/billetterie']) .menu-drawer__menu-item-text::before,
.rdp-boutique-fermee :is(.rdp-pied__liens, .rdp-sous-nav, [data-rdp-liens-ancres]) a[href*='/collections/']:not([href*='/collections/billetterie'])::before,
.rdp-boutique-fermee .rdp-menu-lateral__lien[href*='/collections/']:not([href*='/collections/billetterie'])::before,
.rdp-boutique-fermee .rdp-menu-lateral__groupe:has(.rdp-menu-lateral__sous-liste a[href*='/collections/']:not([href*='/collections/billetterie'])) > .rdp-menu-lateral__rubrique::before {
  content: var(--rdp-bientot, 'Bientôt');
  position: absolute;
  left: 0;
  bottom: calc(100% - 1px);
  font-family: var(--rdp-texte);
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--rdp-rouge);
}
/* survol : sans ceci le thème « ouvre » quand même le sous-menu masqué et assombrit toute la page */
.rdp-boutique-fermee #header-group .menu-list__list-item:has(> .menu-list__trigger > .menu-list__link[href*='/collections/']:not([href*='/collections/billetterie'])) { pointer-events: none; }
/* tiroir mobile : le libellé est rogné par son conteneur, la mention passe donc dans le flux, sur sa propre ligne */
.rdp-boutique-fermee .menu-drawer__menu-item[href*='/collections/']:not([href*='/collections/billetterie']) .menu-drawer__menu-item-text::before { position: static; display: block; margin-bottom: 4px; font-size: 10px; }
/* le lien « Boutique » de la barre d'un événement mène au carrousel de produits, masqué lui aussi */
.rdp-boutique-fermee :is(.rdp-sous-nav, [data-rdp-liens-ancres]) li:has(> a[href$='#boutique']) { display: none !important; }
:is(.rdp-sous-nav, [data-rdp-liens-ancres]) li[hidden] { display: none !important; }
/* sous-rubriques de la boutique : méga-menu, tiroir mobile, panneau latéral des événements */
.rdp-boutique-fermee .menu-list__list-item:has(> .menu-list__trigger > .menu-list__link[href*='/collections/']:not([href*='/collections/billetterie'])) :is(.menu-list__submenu, .menu-list__disclosure),
.rdp-boutique-fermee li:has(> .menu-drawer__menu-item[href*='/collections/']:not([href*='/collections/billetterie'])) > .menu-drawer__menu--childlist,
.rdp-boutique-fermee .rdp-menu-lateral__groupe:has(.rdp-menu-lateral__sous-liste a[href*='/collections/']:not([href*='/collections/billetterie'])) > .rdp-menu-lateral__sous-liste { display: none !important; }

/* Page « Mes billets » : un billet et un QR code par place, à l'écran comme à l'impression */
.rdp-mes-billets { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(40px, 5vw, 72px) clamp(56px, 6vw, 96px); min-height: 60vh; }
.rdp-mes-billets__entete { display: grid; justify-items: start; gap: 12px; margin-bottom: 32px; }
.rdp-mes-billets__entete h1, .rdp-mes-billets__entete p { margin: 0; }
.rdp-mes-billets__texte { max-width: 46em; }
.rdp-mes-billets__commande { font-weight: 600; }
.rdp-mes-billets__imprimer[hidden] { display: none; }
.rdp-mes-billets__liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 300px)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.rdp-billet-qr { display: grid; justify-items: center; gap: 0; padding-bottom: 14px; background: var(--rdp-blanc); color: var(--rdp-vert0); text-align: center; border-radius: 4px; overflow: hidden; box-shadow: var(--rdp-ombre); break-inside: avoid; }
.rdp-billet-qr [hidden] { display: none; }
.rdp-billet-qr__visuel { display: block; width: 100%; height: auto; aspect-ratio: 600 / 658; object-fit: cover; object-position: top; }
.rdp-billet-qr__titre { margin: 0; padding: 20px 16px 0; font-family: var(--rdp-titres); font-size: 22px; line-height: 1.1; text-transform: uppercase; }
.rdp-billet-qr__code { display: block; width: 60%; max-width: 220px; height: auto; aspect-ratio: 1; margin: 18px 0 10px; }
.rdp-billet-qr__numero { margin: 0; padding-inline: 16px; font-family: var(--rdp-titres); font-size: 17px; text-transform: uppercase; }
.rdp-billet-qr__options { margin: 6px 0 0; padding-inline: 16px; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); }
.rdp-billet-qr__pied { margin: 8px 0 0; padding-inline: 16px; font-family: var(--rdp-texte); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rdp-attenue); }
@media (max-width: 749px) {
  .rdp-mes-billets__liste { grid-template-columns: minmax(0, 360px); justify-content: center; }
  .rdp-mes-billets__imprimer { justify-self: stretch; }
}
@media print {
  /* le thème fait défiler la page dans .page-wrapper : à l'impression tout doit se dérouler, sinon une seule page sort */
  html:has(.rdp-mes-billets), html:has(.rdp-mes-billets) body, html:has(.rdp-mes-billets) .page-wrapper, html:has(.rdp-mes-billets) main { display: block !important; overflow: visible !important; height: auto !important; min-height: 0 !important; }
  body:has(.rdp-mes-billets) > :not(.page-wrapper), body:has(.rdp-mes-billets) .page-wrapper > :not(main), .rdp-mes-billets__imprimer, .rdp-mes-billets__texte { display: none !important; }
  .rdp-mes-billets { background: none; padding: 0; min-height: 0; }
  .rdp-mes-billets__entete { margin-bottom: 8mm; }
  .rdp-mes-billets__liste { display: block; }
  .rdp-billet-qr { width: 90mm; margin: 0 auto; box-shadow: none; border: 1px solid #002417; break-after: page; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rdp-billet-qr:last-child { break-after: auto; }
}
/* Panier : la quantité d'une option se choisit sur la fiche du billet ; ici on l'affiche et on peut seulement la retirer */
.cart-items .rdp-panier-option.rdp-panier-option .quantity-selector { display: none; }
.rdp-panier-option__nombre { font-family: var(--rdp-titres); font-size: var(--rdp-t-corps); }
/* Options d'un billet (passager supplémentaire, déjeuner) : une ligne par option, avec son compteur */
.rdp-options { margin: 0 0 24px; padding: 0; border: 0; border-top: 1px solid currentColor; min-width: 0; }
.rdp-options__titre { float: left; width: 100%; padding: 16px 0 0; font-family: var(--rdp-titres); font-size: clamp(24px, 2vw, 28px); line-height: 1; text-transform: uppercase; }
.rdp-option { clear: both; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px 16px; padding-block: 16px; border-bottom: 1px solid rgb(0 36 23 / 0.2); }
.rdp-option:last-child { border-bottom-color: currentColor; }
.rdp-option__nom { margin: 0; font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); font-weight: 600; }
.rdp-option__prix { margin: 2px 0 0; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); }
.rdp-option__aide { margin-top: 8px; font-size: var(--rdp-t-petit); opacity: 0.8; }
.rdp-option__aide p { margin: 0; }
.rdp-option__quantite { display: grid; grid-template-columns: 36px 36px 36px; align-items: center; border: 1px solid var(--rdp-vert0); }
.rdp-option__quantite button { height: 36px; padding: 0; border: 0; background: none; color: inherit; font: inherit; font-size: 18px; line-height: 1; cursor: pointer; }
.rdp-option__quantite button:hover:not(:disabled) { background: var(--rdp-beige); }
.rdp-option__quantite button:disabled { opacity: 0.3; cursor: default; }
.rdp-option__quantite output { text-align: center; font-family: var(--rdp-titres); font-size: var(--rdp-t-corps); }
.rdp-option.est-choisie .rdp-option__quantite { background: var(--rdp-vert0); color: var(--rdp-blanc); }
.rdp-option.est-choisie .rdp-option__quantite button:hover:not(:disabled) { background: var(--rdp-vert1); }
.rdp-option__message { grid-column: 1 / -1; margin: 0; padding: 8px 12px; background: var(--rdp-beige); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); }
.rdp-option__message[hidden] { display: none; }
@media (min-width: 990px) {
  .rdp-fiche-billet .rdp-fiche-produit__vignettes { gap: 8px; margin: 16px 0 16px var(--rdp-marge); padding: 0; }
  .rdp-fiche-billet .rdp-fiche-produit__vignettes li[hidden] { display: none; }
  .rdp-fiche-billet .rdp-fiche-produit__vignettes a { width: 80px; height: 88px; border: 1px solid var(--rdp-vert0); background: var(--rdp-blanc); box-shadow: none; }
  .rdp-fiche-billet .rdp-fiche-produit__vignettes a.est-billet img { object-fit: contain; padding: 6px; }
  .rdp-fiche-billet .rdp-fiche-produit__infos { padding-left: clamp(48px, 9.4vw, 135px); }
  .rdp-fiche-billet .rdp-fiche-produit__collant { max-width: 422px; }
}
.rdp-carrousel__element--associe { flex-basis: 45%; }
.rdp-carrousel__element--associe .rdp-produit__nom,
.rdp-carrousel__element--associe .rdp-produit__prix { font-size: var(--rdp-t-petit); }
@media (min-width: 990px) {
  .rdp-fiche-produit__grille { grid-template-columns: minmax(0, 708fr) minmax(0, 732fr); gap: 0; align-items: start; }
  .rdp-fiche-produit__medias { display: grid; gap: 16px; overflow: visible; }
  /* vignettes posées sur les photos : même case de grille que les photos, donc elles s'arrêtent en bas de la galerie */
  .rdp-fiche-produit__galerie { display: grid; }
  .rdp-fiche-produit__galerie > * { grid-area: 1 / 1; min-width: 0; }
  .rdp-fiche-produit__vignettes { position: sticky; top: calc(var(--header-height, 80px) + 24px); z-index: 2; align-self: start; justify-self: start; display: grid; gap: 10px; max-height: calc(100vh - var(--header-height, 80px) - 48px); margin: 24px 0 24px calc(var(--rdp-marge) + 24px); padding: 4px; list-style: none; overflow-y: auto; scrollbar-width: none; }
  .rdp-fiche-produit__vignettes a { display: block; width: 66px; height: 72px; border: 2px solid var(--rdp-blanc); box-shadow: var(--rdp-ombre); opacity: 0.5; transition: opacity 0.25s; }
  .rdp-fiche-produit__vignettes a:hover,
  .rdp-fiche-produit__vignettes a:focus-visible,
  .rdp-fiche-produit__vignettes a[aria-current] { opacity: 1; }
  .rdp-fiche-produit__vignettes img { width: 100%; height: 100%; object-fit: cover; }
  /* la colonne prend toute la hauteur de la galerie, sinon le bloc collant n'a pas de place pour coller */
  .rdp-fiche-produit__infos { align-self: stretch; padding: 32px var(--rdp-marge) 0 clamp(48px, 9vw, 130px); }
  .rdp-fiche-produit__collant { position: sticky; top: var(--rdp-collant-haut, calc(var(--header-height, 80px) + 24px)); max-width: 352px; }
}

/* Variantes claires et titres à gauche (sections sous la fiche billet) */
.rdp-temoins { color: var(--rdp-temoins-texte, var(--rdp-blanc)); }
.rdp-temoins .rdp-temoins__commandes { color: inherit; }
.rdp-temoins--titre-gauche .rdp-temoins__titre { max-width: none; text-align: left; font-size: var(--rdp-t-moyen); }
.rdp-evt-billets--titre-gauche .rdp-evt-billets__entete { justify-items: start; text-align: left; margin-bottom: 24px; }
.rdp-evt-billets--titre-gauche .rdp-evt-billets__entete .rdp-titre-courbe { display: none; }
.rdp-evt-billets--titre-gauche .rdp-evt-billets__entete .rdp-t-grand { max-width: none; font-size: var(--rdp-t-moyen); }
.rdp-evt-billets .rdp-billet-carte { color: var(--rdp-encre); }
.rdp-boutique__entete-gauche { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; margin-bottom: 24px; color: var(--rdp-vert0); }
.rdp-boutique__entete-gauche h2 { margin: 0; }
.rdp-evt-billets--titre-gauche .rdp-pastilles-onglets--sombre .rdp-pastille-onglet { border-color: var(--rdp-beige-fonce); color: rgb(0 36 23 / 0.45); }
.rdp-evt-billets--titre-gauche .rdp-pastilles-onglets--sombre .rdp-pastille-onglet[aria-selected='true'] { border-color: var(--rdp-vert0); color: var(--rdp-vert0); }
.rdp-evt-billets--titre-gauche .rdp-carrousel--sombre { color: var(--rdp-vert0); }
.rdp-evt-billets--titre-gauche .rdp-carrousel__progression { background: var(--rdp-beige); }
.rdp-evt-billets--titre-gauche .rdp-carrousel__progression > span { background: var(--rdp-vert0); }

/* Page Billetterie de l'événement */
.rdp-collection-billets { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: 24px clamp(56px, 6vw, 96px); }
.rdp-collection-billets__entete { display: grid; gap: 20px; margin: 28px 0 clamp(32px, 4vw, 56px); }
.rdp-collection-billets__entete h1 { color: var(--rdp-vert0); }
.rdp-collection-billets__intro p { margin: 0 0 0.6em; }
.rdp-collection-billets .rdp-pastilles-onglets { margin-bottom: 32px; }
.rdp-collection-billets__panneau[hidden] { display: none; }
.rdp-collection-billets__grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 16px; margin: 0; padding: 0; list-style: none; }
.rdp-collection-billets .rdp-billet-carte { color: var(--rdp-encre); }
.rdp-collection-billets .rdp-billet-carte__visuel { background: var(--rdp-beige); }
@media (min-width: 990px) {
  .rdp-collection-billets__entete { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; gap: 64px; }
  .rdp-collection-billets__grille { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 48px 20px; }
}

/* Réassurance */
.rdp-reassurance { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: 40px; }
.rdp-reassurance__liste { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; margin: 0 auto; list-style: none; text-align: center; }
.rdp-reassurance__item { display: grid; justify-items: center; gap: 8px; }
.rdp-reassurance__titre { margin: 8px 0 0; font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); text-transform: uppercase; }
.rdp-reassurance__texte { margin: 0; font-size: var(--rdp-t-petit); }
@media (min-width: 990px) { .rdp-reassurance__liste { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; } }

/* À propos de l'événement (bloc) */
.rdp-evt-presentation { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(56px, 5.5vw, 80px); }
.rdp-evt-presentation__grille { display: grid; gap: 32px; }
.rdp-evt-presentation__titre p { margin: 0 0 12px; }
.rdp-evt-presentation__visuel { aspect-ratio: 352 / 422; background: #d9d9d9; overflow: hidden; }
.rdp-evt-presentation__visuel img { width: 100%; height: 100%; object-fit: cover; }
.rdp-evt-presentation__texte { display: grid; gap: 40px; align-content: center; }
.rdp-evt-presentation__texte p { margin: 0 0 1em; }
.rdp-evt-presentation__actions { display: grid; justify-items: start; gap: 12px; }
@media (min-width: 990px) {
  .rdp-evt-presentation__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 352px) minmax(0, 1fr); gap: clamp(40px, 8vw, 110px); align-items: center; }
  .rdp-evt-presentation__titre { align-self: end; padding-bottom: 20%; }
  .rdp-evt-presentation__titre .rdp-t-display { max-width: 7em; }
}

/* Page d'un événement « rallye » (maquette « Desktop - 6 », GT Tour) */
.rdp-evt-couverture { position: relative; isolation: isolate; display: grid; align-items: end; min-height: min(92vh, 760px); color: var(--rdp-blanc); background: var(--rdp-vert0); overflow: hidden; }
.rdp-evt-couverture__media { position: absolute; inset: 0; z-index: -1; }
.rdp-evt-couverture__media img,
.rdp-evt-couverture__media video { width: 100%; height: 100%; object-fit: cover; }
.rdp-evt-couverture__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(0 36 23 / 0.35) 0%, transparent 30%, rgb(0 20 12 / 0.55) 62%, rgb(0 12 8 / 0.92) 100%); }
.rdp-evt-couverture__contenu { position: relative; display: grid; gap: 20px; padding-block: 120px 24px; }
.rdp-evt-couverture__titre { margin: 0; font-family: var(--rdp-titres); font-size: clamp(64px, 9.5vw, 136px); font-weight: 400; line-height: 0.9; text-transform: uppercase; }
.rdp-evt-couverture__accroche { max-width: 36em; margin: 0; }
.rdp-evt-couverture__defiler { justify-self: center; display: grid; justify-items: center; gap: 6px; margin-top: 12px; color: var(--rdp-blanc); text-decoration: none; }
.rdp-evt-couverture__defiler .rdp-titre-courbe--etiquette { color: var(--rdp-blanc); width: 220px; }
.rdp-evt-couverture__defiler::after { content: ''; width: 2px; height: 64px; background: repeating-linear-gradient(180deg, var(--rdp-vert2) 0 6px, transparent 6px 11px) 0 0 / 2px 11px; animation: rdp-pointilles 1.2s linear infinite; }

.rdp-evt-edition { padding-top: clamp(56px, 6vw, 80px); }
.rdp-session { display: grid; gap: 12px; padding: 20px; background: var(--rdp-beige); }
.rdp-session + .rdp-session { margin-top: 0; }
.rdp-session__carte { justify-self: center; display: grid; justify-items: center; gap: 6px; width: min(100%, 156px); padding: 4px 4px 12px; background: var(--rdp-blanc); box-shadow: var(--rdp-ombre); text-align: center; }
.rdp-session__visuel { position: relative; width: 100%; aspect-ratio: 150 / 110; }
.rdp-session__visuel img { width: 100%; height: 100%; object-fit: cover; }
.rdp-session__date { position: absolute; right: 8px; bottom: -10px; display: grid; padding: 4px 6px; background: var(--rdp-blanc); font-family: var(--rdp-titres); font-size: 12px; line-height: 1.05; text-transform: uppercase; }
.rdp-session__nom { margin: 12px 0 0; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); font-weight: 400; }
.rdp-session__lieu { margin: 0; font-family: var(--rdp-texte); font-size: var(--rdp-t-mini); }
.rdp-session .rdp-fiche-produit__alerte { margin: 0; }
.rdp-evt-edition__programme { display: grid; gap: 16px; padding-bottom: 16px; }
.rdp-evt-edition__programme .rdp-onglets-soulignes { border-bottom-color: rgb(0 36 23 / 0.45); }
.rdp-evt-edition__programme .rdp-onglet-souligne { color: rgb(0 36 23 / 0.45); }
.rdp-evt-edition__programme .rdp-onglet-souligne[aria-selected='true'] { color: var(--rdp-vert0); }
.rdp-evt-edition__programme .rdp-onglet-souligne[aria-selected='true']::after { background: var(--rdp-vert0); }
.rdp-evt-edition__jour { font-size: var(--rdp-t-petit); line-height: 1.45; }
.rdp-evt-edition__jour[hidden] { display: none; }

.rdp-bande-photos { background: var(--rdp-fond); padding-block: clamp(56px, 8vw, 120px); overflow: hidden; }
.rdp-bande-photos__piste { display: flex; align-items: center; gap: 20px; width: max-content; animation: rdp-defile var(--rdp-duree, 40s) linear infinite; }
.rdp-bande-photos:hover .rdp-bande-photos__piste { animation-play-state: paused; }
.rdp-bande-photos__photo { flex: none; margin: 0; height: clamp(120px, 11vw, 160px); }
.rdp-bande-photos__photo img { width: 100%; height: 100%; object-fit: cover; }
.rdp-bande-photos__photo--large { width: clamp(200px, 19vw, 270px); }
.rdp-bande-photos__photo--moyenne { width: clamp(180px, 17vw, 245px); }
.rdp-bande-photos__photo--etroite { width: clamp(110px, 10vw, 146px); }
.rdp-bande-photos__photo--tres-etroite { width: clamp(80px, 7vw, 106px); }
@media (prefers-reduced-motion: reduce) { .rdp-bande-photos__piste { animation: none; } .rdp-bande-photos { overflow-x: auto; } }
@media (max-width: 989.98px) {
  /* Mobile et tablette : en-tête + couverture = la hauteur visible de l'écran (pas de minimum de 750 px sur un téléphone) */
  .rdp-evt-couverture:not(.rdp-partenariat__couverture) { min-height: calc(100vh - var(--rdp-hero-dessus, 60px)); min-height: calc(100svh - var(--rdp-hero-dessus, 60px)); }
}
@media (min-width: 990px) {
  /* Ordinateur : en-tête + couverture = la hauteur de l'écran, 750 px au minimum (comme la couverture des Chapeaux de Roues).
     --rdp-hero-dessus = hauteur de ce qui précède la couverture, mesurée dans rdp.js (valeur de départ : l'en-tête du site). */
  .rdp-evt-couverture { min-height: calc(max(100vh, 750px) - var(--rdp-hero-dessus, 84px)); }
  .rdp-evt-couverture__contenu { padding-bottom: 0; }
  .rdp-evt-couverture__defiler { margin-top: -8px; }
}

/* ==========================================================================
   Passe « fidélité aux maquettes » (fichier complet du 2026-10-05)
   ========================================================================== */

/* Accueil – billetterie : zoom avant et dégradé qui remonte au survol (commentaire #12) */
.rdp-billet__image { transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rdp-billet:hover .rdp-billet__image,
.rdp-billet:focus-within .rdp-billet__image { transform: scale(1.08); }

/* Accueil – la voiture de la bande illustrée glisse au défilement (#11) */
.rdp-bande__voiture { will-change: transform; }
.rdp-orga { position: relative; }

/* GT Tour – pastille de la couverture (#21 / #22) */
.rdp-evt-couverture__badge { justify-self: start; display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; background: var(--rdp-vert0); color: var(--rdp-blanc); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); text-decoration: none; border-radius: 2px; }
.rdp-evt-couverture__badge--ouvert { background: var(--rdp-blanc); color: var(--rdp-vert0); }
.rdp-evt-couverture__badge--ouvert::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--rdp-rouge); }
@media (min-width: 990px) {
  .rdp-evt-couverture__contenu { grid-template-columns: minmax(0, 1fr) auto; column-gap: 40px; }
  .rdp-evt-couverture__titre,
  .rdp-evt-couverture__accroche,
  .rdp-evt-couverture__defiler { grid-column: 1 / -1; }
  .rdp-evt-couverture__accroche { grid-column: 1; grid-row: 2; }
  .rdp-evt-couverture__badge { grid-column: 2; grid-row: 2; align-self: end; justify-self: end; }
}

/* GT Tour – sans édition à venir : rubans et carte d'inscription (#22 / #23) */
.rdp-attente { position: relative; overflow: hidden; display: grid; place-items: center; padding-block: clamp(140px, 14vw, 200px) clamp(80px, 8vw, 120px); background: var(--rdp-fond); color: var(--rdp-vert0); }
.rdp-attente__dune { position: absolute; left: 0; bottom: 0; width: min(60vw, 520px); height: auto; opacity: 0.6; pointer-events: none; }
.rdp-attente__rubans { position: absolute; inset: 0; pointer-events: none; }
.rdp-ruban { position: absolute; left: -10%; width: 120%; overflow: hidden; padding-block: 8px; font-family: var(--rdp-titres); font-size: clamp(18px, 1.8vw, 26px); letter-spacing: 0.04em; text-transform: uppercase; white-space: nowrap; }
.rdp-ruban__piste { display: flex; width: max-content; animation: rdp-defile 50s linear infinite; }
.rdp-ruban--1 { top: 22%; background: var(--rdp-rouge); color: var(--rdp-blanc); transform: rotate(9deg); }
.rdp-ruban--2 { top: 16%; background: var(--rdp-rouge1); color: var(--rdp-rouge); transform: rotate(-2.5deg); }
.rdp-ruban--2 .rdp-ruban__piste { animation-direction: reverse; }
.rdp-ruban--3 { top: 58%; background: var(--rdp-rouge); color: var(--rdp-blanc); transform: rotate(7deg); }
.rdp-ruban--3 .rdp-ruban__piste { animation-duration: 60s; }
@media (prefers-reduced-motion: reduce) { .rdp-ruban__piste { animation: none; } }
.rdp-attente__carte { position: relative; z-index: 1; width: min(100%, 340px); background: var(--rdp-blanc); box-shadow: var(--rdp-ombre); }
.rdp-attente__photo { aspect-ratio: 340 / 180; overflow: hidden; }
.rdp-attente__photo img { width: 100%; height: 100%; object-fit: cover; }
.rdp-attente__corps { display: grid; gap: 16px; padding: 24px 20px 20px; }
.rdp-attente__corps .rdp-t-grand { font-size: clamp(32px, 3vw, 44px); }
.rdp-attente__corps p { margin: 0; }
.rdp-attente__formulaire { display: grid; gap: 6px; }
.rdp-attente__formulaire input[type='email'] { width: 100%; min-height: 36px; padding: 8px 12px; border: 0; background: var(--rdp-beige); color: var(--rdp-vert0); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); }
.rdp-attente__formulaire .rdp-fiche-produit__bouton { margin-top: 6px; min-height: 36px; font-size: var(--rdp-t-corps); }
.rdp-attente__merci { margin: 0; font-family: var(--rdp-texte); font-weight: 600; }
.rdp-attente__erreur { margin: 0; color: var(--rdp-rouge); font-size: var(--rdp-t-petit); }

/* GT Tour – galerie sombre : photo active en grand, suivantes en petit */
.rdp-evt-galerie { background: var(--rdp-fond); color: var(--rdp-blanc); padding-block: clamp(56px, 6.5vw, 96px) clamp(40px, 4vw, 56px); }
.rdp-evt-galerie__piste { align-items: flex-end; gap: 20px; scroll-snap-type: x mandatory; }
.rdp-evt-galerie__photo { flex: 0 0 auto; width: clamp(80px, 10vw, 150px); height: clamp(130px, 16vw, 230px); margin: 0; overflow: hidden; scroll-snap-align: start; transition: width 0.6s cubic-bezier(0.2, 0.7, 0.2, 1), height 0.6s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rdp-evt-galerie__photo.est-courant { width: min(86vw, 787px); height: min(60vw, 460px); }
.rdp-evt-galerie__photo img { width: 100%; height: 100%; object-fit: cover; }
.rdp-evt-galerie__legende { margin-top: 12px; }
.rdp-evt-galerie__legende p { margin: 0; }
.rdp-evt-galerie .rdp-carrousel__progression { background: var(--rdp-vert1); }
.rdp-evt-galerie .rdp-carrousel__progression > span { background: var(--rdp-blanc); }

/* GT Tour – destinations des éditions passées */
.rdp-destinations { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(56px, 6vw, 88px); }
.rdp-destinations__titre { margin: 0 0 28px; font-size: var(--rdp-t-grand); }
/* liste année + lieu, sur une ligne ; au-delà de la largeur elle se fait glisser */
.rdp-destinations__liste { display: flex; gap: clamp(32px, 4vw, 64px); margin: clamp(32px, 3.5vw, 56px) 0 0; padding: 0 max(var(--rdp-marge), calc((100% - var(--rdp-largeur-max)) / 2 + var(--rdp-marge))) 8px; list-style: none; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; cursor: grab; }
.rdp-destinations__liste::-webkit-scrollbar { display: none; }
.rdp-destinations__liste.est-glisse { cursor: grabbing; user-select: none; }
.rdp-destination { flex: 0 0 auto; display: grid; justify-items: center; gap: 6px; text-align: center; color: var(--rdp-destination, #3b74b4); }
.rdp-destination__annee { font-family: var(--rdp-titres); font-size: 16px; letter-spacing: 0.04em; }
.rdp-destination__lieu { font-family: var(--rdp-titres); font-size: clamp(24px, 2.4vw, 32px); text-transform: uppercase; line-height: 1; white-space: nowrap; }

/* Barre de l'événement – menu « Infos » : liste déroulante sur ordinateur, panneau plein écran sur mobile */
.rdp-sous-nav__panneau-haut,
.rdp-sous-nav__panneau-damier,
.rdp-sous-nav__identite { display: none; }
@media (min-width: 990px) {
  .rdp-sous-nav__panneau { position: absolute; right: 0; top: 100%; }
  .rdp-sous-nav__panneau .rdp-sous-nav__menu { position: static; }
}
@media (max-width: 989px) {
  .rdp-infos-ouvert { overflow: hidden; }
  .rdp-sous-nav__infos[open] .rdp-sous-nav__panneau {
    position: fixed;
    inset: 0;
    z-index: 60;
    overflow-y: auto;
    background: var(--rdp-blanc);
    color: var(--rdp-vert0);
    animation: rdp-panneau-entre 0.3s cubic-bezier(0.2, 0.7, 0.2, 1);
  }
  @keyframes rdp-panneau-entre { from { opacity: 0; transform: translateY(-12px); } }
  .rdp-sous-nav__infos[open] .rdp-sous-nav__panneau-haut { display: flex; padding: 12px var(--rdp-marge) 10px; }
  .rdp-sous-nav__infos[open] .rdp-sous-nav__panneau-damier {
    display: block;
    height: 15px;
    background:
      linear-gradient(var(--rdp-or), var(--rdp-or)) 0 0 / 100% 3px no-repeat,
      linear-gradient(90deg, var(--rdp-vert1) 0 50%, var(--rdp-beige) 50% 100%) 0 3px / 44px 6px repeat-x,
      linear-gradient(90deg, var(--rdp-beige) 0 50%, var(--rdp-vert1) 50% 100%) 0 9px / 44px 6px repeat-x;
  }
  .rdp-sous-nav__infos[open] .rdp-sous-nav__identite { display: grid; justify-items: center; gap: 4px; padding: 20px var(--rdp-marge) 32px; text-align: center; }
  .rdp-sous-nav__embleme { width: 30px; height: auto; margin-bottom: 6px; }
  .rdp-sous-nav__panneau-nom { margin: 0; font-family: var(--rdp-titres); font-size: var(--rdp-t-moyen); line-height: 1; text-transform: uppercase; }
  .rdp-sous-nav__panneau-lieu { margin: 0; font-size: var(--rdp-t-manuscrit); }
  .rdp-sous-nav__infos[open] .rdp-sous-nav__menu { position: static; display: grid; gap: 14px; min-width: 0; padding: 0 var(--rdp-marge) 40px; background: transparent; box-shadow: none; }
  .rdp-sous-nav__infos[open] .rdp-sous-nav__menu a { padding: 0; font-size: 24px; line-height: 1.1; }
  .rdp-sous-nav__infos[open] .rdp-sous-nav__menu a:hover { background: none; text-decoration: underline; }
}

/* Utilitaires d'affichage */
@media (max-width: 989px) { .rdp-bureau { display: none !important; } }
@media (min-width: 990px) { .rdp-mobile { display: none !important; } }

/* Mobile (maquettes « iPhone 16 & 17 Pro ») */
@media (max-width: 989px) {
  /* En-tête dédié : burger seul, sans libellé */
  .rdp-entete__libelle-menu { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .rdp-entete__marques { gap: 8px; }
  .rdp-entete__logo { height: 26px; }
  .rdp-entete__logo-evt { width: 40px; height: 40px; }
  .rdp-entete__croix { font-size: 14px; }
  /* Menu latéral : petit logo au-dessus du grand titre */
  .rdp-menu-lateral__logo { display: block; margin: 20px auto 0; width: 56px; height: auto; }
  .rdp-menu-lateral__titre { margin-top: 8px; text-align: center; font-size: 44px; }
  /* Programme : titre centré, visuels et téléchargements avant les onglets */
  .rdp-evt-programme--detail .rdp-evt-programme__grille { display: flex; flex-direction: column; gap: 32px; }
  .rdp-evt-programme__principal { display: contents; }
  .rdp-evt-programme__titre { order: 1; text-align: center; color: var(--rdp-vert2); }
  .rdp-evt-programme__documents { order: 2; flex-wrap: nowrap; gap: 12px; }
  .rdp-evt-programme__onglets { order: 3; }
  .rdp-evt-programme__attente { order: 3; justify-items: center; text-align: center; margin-inline: auto; }
  .rdp-evt-programme__formulaire { justify-content: center; }
  .rdp-evt-programme__document { flex: 1 1 0; }
  .rdp-evt-programme--detail .rdp-evt-programme__visuel { width: 100%; max-width: 150px; }
  .rdp-evt-programme__document .rdp-bouton { width: 100%; padding: 8px 10px; font-size: 14px; text-align: left; }
  .rdp-onglets-soulignes { justify-content: center; }
  /* Billetterie : lien sous le carrousel */
  .rdp-evt-billets__barre .rdp-evt-billets__tous { display: none; }
  .rdp-evt-billets__tous-bas { margin-top: 12px; }
  /* Page Animations : pas de tuiles, photos en bande défilante sous la carte */
  .rdp-evt-anims__tuiles { display: none; }
  .rdp-evt-anims__titre { margin-bottom: 0; }
  .rdp-anim__interieur { gap: 48px; }
  .rdp-anim__photos-mobile { display: flex; gap: 12px; margin: 24px calc(var(--rdp-marge) * -1) 0; padding-inline: var(--rdp-marge); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .rdp-anim__photos-mobile img { flex: 0 0 72vw; height: 230px; object-fit: cover; scroll-snap-align: start; border-radius: 2px; }
  /* Page Billetterie : titre centré */
  .rdp-collection-billets__entete { text-align: center; }
  .rdp-collection-billets__intro { text-align: left; }
  /* Bloc de fin : deux colonnes (L'évènement, Infos légales), emblème dessous */
  .rdp-evt-pied__marque { display: grid; justify-items: center; text-align: center; }
  .rdp-evt-pied__texte { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding-top: 32px; }
  .rdp-evt-pied__embleme { position: relative; right: auto; bottom: 0; justify-self: center; width: min(70vw, 300px); margin-top: 32px; }
  .rdp-evt-pied__nom { font-size: 34px; white-space: nowrap; }
  /* Ajout rapide toujours visible sur tactile, en blanc */
  .rdp-ajout-rapide__icone { background: var(--rdp-blanc); color: var(--rdp-vert0); }
}
@media (hover: none) { .rdp-ajout-rapide__icone { background: var(--rdp-blanc); color: var(--rdp-vert0); } }
@media (min-width: 990px) { .rdp-menu-lateral__logo { display: none; } }

/* Mobile : créneau du programme = pictogramme | horaire au-dessus du texte ; lien de la boutique sous le carrousel */
@media (max-width: 749px) {
  .rdp-creneau { grid-template-columns: 76px minmax(0, 1fr); gap: 4px 16px; }
  .rdp-creneau__picto { grid-row: span 2; width: 76px; height: 48px; }
  .rdp-creneau__heure { text-transform: uppercase; }
  .rdp-boutique__barre .rdp-lien--texte { order: 3; }
}

/* Survol des cartes photo (billetterie de l'accueil, animations, éditions passées) :
   le dégradé reste en place et s'étend vers le haut pour assombrir davantage l'image.
   Un second dégradé, plus haut et plus dense, apparaît en fondu par-dessus le premier. */
.rdp-carte-photo::after,
.rdp-billet::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.rdp-carte-photo::after { background: linear-gradient(180deg, transparent 12%, rgb(0 36 23 / 0.55) 48%, rgb(0 36 23 / 0.92) 78%, var(--rdp-vert0) 100%); }
.rdp-billet::after { background: linear-gradient(180deg, rgb(0 36 23 / 0) 10%, rgb(0 36 23 / 0.5) 45%, rgb(0 36 23 / 0.88) 75%, rgb(0 36 23 / 0.97) 100%); }
.rdp-carte-photo:hover::after,
.rdp-carte-photo:focus-within::after,
.rdp-billet:hover::after,
.rdp-billet:focus-within::after { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .rdp-carte-photo::after, .rdp-billet::after { transition: none; } }

/* Contact : enveloppe de la maquette en deux calques, carte glissée entre les deux.
   Proportions relevées sur la maquette (enveloppe de 815 px, carte de 624 px) :
   - poche (rabat du bas) = 53,7 % de la largeur, découpée sur les diagonales et la ligne du creux
     (12,4 % sous le pli) : la carte rentre dans l'enveloppe au fond du creux ;
   - la carte descend 4 % sous cette ligne ; dessous, le corps de l'enveloppe continue.
   Unités cqw = % de la largeur de l'enveloppe. */
/* Au premier clic dans un champ, Shopify glisse dans le formulaire le bloc invisible de son anti-robot (hCaptcha).
   Dans une grille il compterait pour une ligne de plus : un intervalle s'ajoute et la carte bouge dans l'enveloppe. */
:is(.rdp-formulaire, .rdp-attente__formulaire) > :is(.h-captcha, .g-recaptcha) { position: absolute; }
.rdp-contact { padding-bottom: 0; overflow: hidden; }
.rdp-contact__intro { padding-bottom: clamp(56px, 6vw, 96px); }
.rdp-enveloppe {
  position: relative;
  isolation: isolate;
  container-type: inline-size;
  justify-self: center;
  align-self: end;
  width: min(100%, 760px);
  margin-top: 24px;
}
.rdp-enveloppe__dos,
.rdp-enveloppe__poche { position: absolute; left: 0; bottom: 0; width: 100%; height: auto; pointer-events: none; }
.rdp-enveloppe__dos { z-index: 0; filter: drop-shadow(0 10px 24px rgb(0 0 0 / 0.18)); }
.rdp-enveloppe__poche { z-index: 2; filter: drop-shadow(0 -2px 3px rgb(0 0 0 / 0.18)); }
/* La glissière va jusqu'au bas de l'enveloppe et coupe la carte : ce qui y descend disparaît dans la poche */
.rdp-enveloppe__glissiere { position: relative; z-index: 1; margin: -16px 11.7cqw 0; padding: 16px 16px 37.3cqw; overflow: hidden; }
.rdp-enveloppe .rdp-enveloppe__lettre { padding-bottom: calc(4cqw + 28px); transition: transform 1.4s cubic-bezier(0.22, 0.8, 0.22, 1); }
.rdp-enveloppe--a-sortir .rdp-enveloppe__lettre { transform: translateY(80%); }
@media (prefers-reduced-motion: reduce) { .rdp-enveloppe .rdp-enveloppe__lettre { transition: none; } }
@media (max-width: 749px) {
  .rdp-enveloppe { width: calc(100% + var(--rdp-marge) * 2); margin-inline: calc(var(--rdp-marge) * -1); }
  /* mobile : carte presque pleine largeur, quitte à dépasser un peu des bords de l'enveloppe */
  .rdp-enveloppe__glissiere { margin-inline: 2.5cqw; padding-inline: 6px; }
  .rdp-enveloppe .rdp-enveloppe__lettre { padding-inline: 16px; }
}
/* Page courte : la dernière section (contact) remplit la hauteur restante, sans bande vide avant le pied */
.content-for-layout > .shopify-section:last-child:has(> .rdp-contact) { display: flex; flex-direction: column; }
.content-for-layout > .shopify-section:last-child > .rdp-contact { flex: 1; }
/* Bureau : enveloppe à la taille de la maquette (815 px) et carte compacte (624 × 674 px) */
@media (min-width: 990px) {
  .rdp-enveloppe { width: min(815px, calc(100% + var(--rdp-marge))); justify-self: end; margin-right: calc(var(--rdp-marge) * -0.5); }
  .rdp-enveloppe .rdp-enveloppe__lettre { padding-top: 28px; padding-inline: 40px; padding-bottom: calc(4cqw + 24px); }
  .rdp-enveloppe .rdp-formulaire { gap: 14px; }
  .rdp-enveloppe .rdp-champ { gap: 6px; }
  .rdp-enveloppe .rdp-champ label { font-size: var(--rdp-t-petit); }
  .rdp-enveloppe .rdp-champ input,
  .rdp-enveloppe .rdp-champ select { min-height: 38px; padding-block: 8px; }
  .rdp-enveloppe .rdp-champ textarea { min-height: 96px; height: 96px; }
  .rdp-enveloppe .rdp-formulaire__envoyer { margin-top: 2px; }
}

/* ==========================================================================
   Page d'une édition passée (maquette « CDR-editions-passees »)
   ========================================================================== */
.rdp-edition-recap { position: relative; }
.rdp-edition-recap__fil { position: absolute; top: 20px; left: 0; right: 0; z-index: 1; color: var(--rdp-blanc); }
.rdp-edition-recap__fil .rdp-fil a { color: rgb(244 244 240 / 0.7); }
.rdp-edition-recap__titre { max-width: 9em; font-size: clamp(48px, 5.2vw, 76px); line-height: 0.98; }

.rdp-edition-affiche { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(56px, 6vw, 88px); scroll-margin-top: 100px; }
.rdp-edition-affiche__interieur { display: grid; justify-items: center; gap: 24px; }
.rdp-edition-affiche .rdp-titre-courbe--etiquette { color: var(--rdp-encre); width: 160px; }
.rdp-edition-affiche__visuel { display: grid; justify-items: center; gap: 24px; margin: 0; }
.rdp-edition-affiche__visuel img { width: min(78vw, 334px); height: auto; box-shadow: var(--rdp-ombre); }
.rdp-edition-affiche__visuel figcaption { font-size: var(--rdp-t-petit); }

.rdp-edition-film { position: relative; isolation: isolate; display: grid; align-items: end; min-height: clamp(380px, 38vw, 560px); color: var(--rdp-blanc); overflow: hidden; }
.rdp-edition-film__media { position: absolute; inset: 0; z-index: -1; }
.rdp-edition-film__media img { width: 100%; height: 100%; object-fit: cover; }
.rdp-edition-film__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgb(0 20 12 / 0.55) 70%, rgb(0 36 23 / 0.95) 100%); }
.rdp-edition-film__contenu { display: grid; justify-items: center; gap: 24px; padding-block: 120px 96px; text-align: center; }

.rdp-edition-galerie { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(64px, 7vw, 100px) clamp(48px, 5vw, 64px); overflow: hidden; }
.rdp-edition-galerie__entete { position: relative; display: grid; justify-items: center; text-align: center; margin-bottom: clamp(48px, 9vw, 130px); }
.rdp-edition-galerie__entete h2 { max-width: 20em; }
.rdp-edition-galerie__pose { display: none; position: absolute; margin: 0; padding: 4px; background: var(--rdp-blanc); box-shadow: var(--rdp-ombre); }
.rdp-edition-galerie__pose img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.rdp-edition-galerie__pose--gauche { left: var(--rdp-marge); top: 52%; width: 110px; border: 5px solid var(--rdp-vert1); transform: rotate(-2deg); }
.rdp-edition-galerie__pose--droite { right: var(--rdp-marge); top: 0; width: 100px; border: 5px solid var(--rdp-rouge); transform: rotate(3deg); }
/* Piste : la photo en cours, plus grande, est calée après un aperçu de la précédente ; les suivantes sont petites (commentaire #25) */
.rdp-edition-galerie__piste { align-items: flex-end; gap: 20px; padding-inline: calc(var(--rdp-marge) + 56px) var(--rdp-marge); scroll-padding-inline: calc(var(--rdp-marge) + 56px); }
.rdp-edition-galerie__photo { flex: 0 0 auto; width: clamp(90px, 9vw, 124px); height: clamp(140px, 13vw, 186px); padding: 0; border: 0; background: var(--rdp-beige); overflow: hidden; cursor: zoom-in; scroll-snap-align: start; transition: width 0.6s cubic-bezier(0.2, 0.7, 0.2, 1), height 0.6s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rdp-edition-galerie__photo.est-courant { width: min(80vw, 836px); height: min(48vw, 495px); }
.rdp-edition-galerie__photo img { width: 100%; height: 100%; object-fit: cover; }
.rdp-edition-galerie__legende { margin-top: 12px; padding-inline-start: calc(var(--rdp-marge) + 56px); }
.rdp-edition-galerie__legende p { margin: 0; }
.rdp-edition-galerie__commandes { display: flex; align-items: center; justify-content: space-between; margin-top: 24px; color: var(--rdp-encre); }
.rdp-edition-galerie .rdp-point { background: rgb(0 36 23 / 0.3); }
.rdp-edition-galerie .rdp-point[aria-current] { background: var(--rdp-vert0); }
@media (min-width: 990px) {
  .rdp-edition-galerie__pose { display: block; }
  .rdp-edition-galerie__piste { padding-inline-start: calc(var(--rdp-marge) * 2 + 16px); scroll-padding-inline: calc(var(--rdp-marge) * 2 + 16px); }
  .rdp-edition-galerie__legende { padding-inline-start: calc(var(--rdp-marge) * 2 + 16px); }
}

/* Visionneuse plein écran (maquette 806:6069, marge basse 32 px — commentaire #24) */
.rdp-visionneuse { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: #0b1512; color: var(--rdp-blanc); }
.rdp-visionneuse::backdrop { background: rgb(0 0 0 / 0.85); }
.rdp-visionneuse[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.rdp-visionneuse__fermer { justify-self: start; display: inline-grid; justify-items: center; gap: 2px; margin: 16px var(--rdp-marge) 8px; padding: 6px 4px; border: 0; background: none; color: inherit; font-family: var(--rdp-fine); font-size: var(--rdp-t-corps); cursor: pointer; }
.rdp-visionneuse__scene { display: grid; place-items: center; padding-inline: var(--rdp-marge); min-height: 0; }
.rdp-visionneuse__photo { margin: 0; max-width: 100%; max-height: 100%; }
.rdp-visionneuse__photo[hidden] { display: none; }
.rdp-visionneuse__photo img { display: block; max-width: min(100%, 1000px); max-height: calc(100dvh - 240px); width: auto; height: auto; object-fit: contain; }
.rdp-visionneuse__bas { display: grid; gap: 16px; padding: 16px var(--rdp-marge) 32px; }
.rdp-visionneuse__legende p { margin: 0; }
.rdp-visionneuse__commandes { display: flex; align-items: center; justify-content: space-between; }
.rdp-visionneuse .rdp-point { background: rgb(244 244 240 / 0.3); }
.rdp-visionneuse .rdp-point[aria-current] { background: var(--rdp-blanc); }
.rdp-visionneuse__vignette img { opacity: 1; }

.rdp-edition-partenaires { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(56px, 6vw, 72px); }
.rdp-edition-partenaires__entete { display: grid; justify-items: center; margin-bottom: 40px; }
.rdp-edition-partenaires .rdp-titre-courbe--etiquette { color: var(--rdp-encre); width: 260px; }
.rdp-edition-partenaires__tuile { flex: 0 0 clamp(130px, 12vw, 170px); aspect-ratio: 1; display: grid; place-items: center; padding: 20px; background: var(--rdp-blanc); list-style: none; }
.rdp-edition-partenaires__tuile img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.rdp-edition-partenaires__tuile a { display: grid; place-items: center; width: 100%; height: 100%; color: inherit; text-decoration: none; }

.rdp-edition-suite { background: var(--rdp-fond); color: var(--rdp-encre); padding-block: clamp(72px, 8vw, 110px) clamp(64px, 7vw, 96px); }
.rdp-edition-suite__interieur { display: grid; justify-items: center; gap: 36px; text-align: center; }
.rdp-edition-suite__manuscrit { color: var(--rdp-accent); transform: rotate(-3deg); }
.rdp-edition-suite__embleme { width: 70px; color: var(--rdp-accent); }
.rdp-edition-suite__embleme img { width: 100%; height: auto; }

/* ==========================================================================
   Page partenariat (maquette « RDP-CARSUP »)
   ========================================================================== */
.rdp-partenariat { background: var(--rdp-fond); color: var(--rdp-encre); }
.rdp-partenariat__couverture { min-height: min(92vh, 720px); }
.rdp-partenariat__couverture .rdp-evt-couverture__media::after { background: linear-gradient(180deg, rgb(11 21 19 / 0.25) 0%, rgb(11 21 19 / 0.15) 40%, rgb(11 21 19 / 0.7) 75%, var(--rdp-fond) 100%); }
.rdp-partenariat__marques { position: absolute; left: 50%; top: 16%; transform: translateX(-50%); display: grid; justify-items: center; gap: 12px; z-index: 1; }
.rdp-partenariat__logo-rdp { width: clamp(150px, 13.5vw, 195px); height: auto; }
.rdp-partenariat__croix { font-family: var(--rdp-titres); font-size: clamp(32px, 3vw, 44px); line-height: 1; color: var(--rdp-blanc); }
.rdp-partenariat__logo { width: clamp(64px, 5.8vw, 84px); height: auto; border-radius: 22%; }
.rdp-partenariat__titre { font-size: clamp(44px, 4.4vw, 64px); }
.rdp-partenariat__badge { display: inline-flex; align-items: center; gap: 24px; justify-self: start; padding: 10px 14px; background: var(--rdp-blanc); color: var(--rdp-vert0); font-family: var(--rdp-titres); font-size: var(--rdp-t-intertitre); line-height: 1.1; text-transform: uppercase; text-decoration: none; }
@media (min-width: 990px) {
  .rdp-partenariat__badge { grid-column: 2; grid-row: 2; align-self: end; justify-self: end; }
}
.rdp-partenariat__intro { padding-block: clamp(72px, 8vw, 110px) clamp(48px, 6vw, 80px); }
.rdp-partenariat__intro-interieur { display: grid; justify-items: center; gap: 36px; text-align: center; }
.rdp-partenariat__intro-interieur h2 { max-width: 16em; }
.rdp-partenariat__intro-interieur .rdp-t-fine { max-width: 360px; }
.rdp-partenariat__intro-interieur p { margin: 0 0 1em; }
.rdp-partenariat__blocs { display: grid; gap: clamp(56px, 7vw, 96px); padding-block: 24px clamp(64px, 7vw, 96px); max-width: 1000px; }
.rdp-partenariat__bloc { display: grid; gap: 28px; align-items: center; }
.rdp-partenariat__media img { display: block; width: 100%; height: auto; aspect-ratio: 456 / 335; object-fit: cover; }
.rdp-partenariat__bloc--lueur .rdp-partenariat__media { position: relative; display: grid; place-items: center; padding: 48px 0; }
.rdp-partenariat__bloc--lueur .rdp-partenariat__media::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at center, rgb(244 244 240 / 0.12), transparent 60%); }
.rdp-partenariat__bloc--lueur .rdp-partenariat__media img { position: relative; width: 156px; aspect-ratio: 1; border-radius: 22%; box-shadow: 0 0 60px rgb(244 244 240 / 0.12); }
.rdp-partenariat__texte { display: grid; gap: 20px; }
.rdp-partenariat__texte p { margin: 0 0 1em; color: rgb(244 244 240 / 0.8); }
.rdp-partenariat__texte .rdp-t-moyen { margin: 0; }
@media (min-width: 990px) {
  .rdp-partenariat__bloc { grid-template-columns: 456px minmax(0, 1fr); gap: 116px; }
  .rdp-partenariat__texte { max-width: 352px; align-self: start; padding-top: 32px; }
}
.rdp-partenariat__offre { position: relative; display: grid; justify-items: center; gap: 56px; padding-block: 40px clamp(80px, 9vw, 120px); }
.rdp-partenariat__offre::before { content: ''; position: absolute; left: 50%; top: 55%; width: min(90vw, 720px); height: 520px; transform: translate(-50%, -50%); background: radial-gradient(ellipse at center, rgb(244 244 240 / 0.1), transparent 65%); pointer-events: none; }
.rdp-partenariat__marques--offre { position: relative; left: auto; top: auto; transform: none; }
.rdp-partenariat__carte { position: relative; display: grid; gap: 20px; width: min(90vw, 360px); padding: 36px 20px 32px; background: #0f1a17; box-shadow: 0 0 80px rgb(244 244 240 / 0.08); }
.rdp-partenariat__carte .rdp-t-grand { margin: 0; }
.rdp-partenariat__carte p { margin: 0 0 0.8em; }
.rdp-partenariat__carte .rdp-bouton { width: 100%; justify-content: center; }

/* Pages pleine hauteur : la dernière section remplit l'espace avant le pied de page */
.content-for-layout > .shopify-section:last-child:has(> .rdp-partenariat) { display: flex; flex-direction: column; }
.content-for-layout > .shopify-section:last-child > .rdp-partenariat { flex: 1; }
.rdp-partenariat__offre { padding-bottom: clamp(56px, 6vw, 80px); }

/* Bande photo : piste déplacée par transform, photos coupées par le bord de l'écran */
.rdp-glisse { display: block; position: relative; outline: none; }
.rdp-glisse:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.rdp-glisse__fenetre { overflow: hidden; }
.rdp-glisse__piste { display: flex; align-items: flex-end; gap: 20px; width: max-content; transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); touch-action: pan-y; user-select: none; }
.rdp-glisse__element { flex: 0 0 auto; }
.rdp-glisse__piste { cursor: grab; }
.rdp-glisse__piste.est-glisse { cursor: grabbing; transition: none; }
.rdp-glisse__piste.est-glisse .rdp-glisse__element { pointer-events: none; }
.rdp-glisse__piste img { -webkit-user-drag: none; user-select: none; }
@media (prefers-reduced-motion: reduce) { .rdp-glisse__piste, .rdp-glisse__element { transition: none !important; } }

/* Galerie d'édition : petite 124 × 186, grande 836 × 495 (maquette 1440), précédente visible sur ~36 px */
.rdp-edition-galerie .rdp-glisse {
  --rdp-bande-petite: clamp(84px, 8.6vw, 124px);
  --rdp-bande-depart: calc(var(--rdp-marge) + 60px);
}
.rdp-edition-galerie__piste { padding: 0; height: min(46vw, 495px); } /* hauteur fixe : la section ne bouge pas pendant le changement de photo */
.rdp-edition-galerie__photo { width: var(--rdp-bande-petite); height: clamp(128px, 12.9vw, 186px); scroll-snap-align: none; }
.rdp-edition-galerie__photo.est-courant { width: min(78vw, 836px); height: min(46vw, 495px); cursor: zoom-in; }
.rdp-edition-galerie__photo:not(.est-courant) { cursor: pointer; }
.rdp-edition-galerie__legende { padding-inline-start: calc(var(--rdp-marge) + 60px); }
@media (min-width: 990px) {
  .rdp-edition-galerie .rdp-glisse { --rdp-bande-depart: 224px; }
  .rdp-edition-galerie__legende { padding-inline-start: 224px; }
}
@media (min-width: 1440px) {
  .rdp-edition-galerie .rdp-glisse { --rdp-bande-depart: calc((100vw - 1440px) / 2 + 224px); }
  .rdp-edition-galerie__legende { padding-inline-start: 224px; }
}

/* Galerie de l'événement (GT Tour) : même mécanique */
.rdp-evt-galerie .rdp-glisse { --rdp-bande-petite: clamp(80px, 10vw, 150px); --rdp-bande-depart: var(--rdp-marge); }
.rdp-evt-galerie__piste { padding: 0; height: min(60vw, 460px); }
.rdp-evt-galerie__photo { width: var(--rdp-bande-petite); }

/* ---------- Calendrier ---------- */
.rdp-calendrier { background: var(--rdp-fond, var(--rdp-blanc)); color: var(--rdp-encre, var(--rdp-vert0)); padding-block: clamp(48px, 7vw, 100px) clamp(72px, 9vw, 140px); }
.rdp-calendrier__titre { margin: 0 auto clamp(48px, 8vw, 116px); text-align: center; text-wrap: balance; }
.rdp-calendrier__mois { display: grid; gap: 24px; }
.rdp-calendrier__mois + .rdp-calendrier__mois { margin-top: clamp(56px, 6vw, 72px); }
.rdp-calendrier__mois-titre { margin: 0; font-family: var(--rdp-titres); font-size: clamp(24px, 2.1vw, 30px); line-height: 1.15; text-transform: uppercase; }
.rdp-calendrier__grille { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: clamp(32px, 3.6vw, 52px) clamp(24px, 3.2vw, 46px); }
.rdp-calendrier__grille > li { display: flex; justify-content: center; }
.rdp-calendrier__grille .rdp-carte { width: min(100%, 311px); }
@media (min-width: 990px) {
  .rdp-calendrier__mois { grid-template-columns: 224px 1fr; gap: 0; align-items: start; }
  .rdp-calendrier__grille { grid-template-columns: repeat(3, minmax(0, 311px)); }
  .rdp-calendrier__mois-titre { position: sticky; top: calc(var(--rdp-hauteur-entete, 80px) + 24px); padding-top: 12px; }
}

/* Événement sans billet : prochaines dates à la place des billets */
.rdp-prochaines { display: grid; gap: 16px; margin-top: 8px; }
.rdp-prochaines__titre { margin: 0; }
.rdp-prochaines__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.rdp-prochaines__date { display: flex; align-items: center; gap: 18px; padding: 12px 16px; background: var(--rdp-beige); }
.rdp-prochaines__date .rdp-date { flex: 0 0 auto; position: static; transform: none; }
.rdp-prochaines__date .rdp-t-petit span { display: block; }
.rdp-prochaines__mention { margin: 0; opacity: 0.8; }
/* Aucune date saisie : message d'attente à la place de la liste */
.rdp-prochaines__bientot { margin: 0; padding: 16px 18px; background: var(--rdp-beige); }
.rdp-prochaines__bientot a { color: inherit; text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: 3px; }

/* Programme et plan : « Programme à venir » + inscription tant que l'édition n'a ni créneau ni adresse */
.rdp-evt-programme__attente { display: grid; gap: 14px; max-width: 560px; color: var(--rdp-encre); }
.rdp-evt-programme__attente p { margin: 0; }
.rdp-evt-programme__attente-titre { font-family: var(--rdp-titres); text-transform: uppercase; }
.rdp-evt-programme__formulaire { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.rdp-evt-programme__formulaire input[type='email'] { flex: 1 1 240px; min-height: 44px; padding: 10px 14px; border: 1px solid currentColor; background: transparent; color: inherit; font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); }
.rdp-evt-programme__formulaire input[type='email']::placeholder { color: inherit; opacity: 0.6; }
.rdp-evt-programme__formulaire .rdp-bouton { flex: 0 0 auto; min-height: 44px; }
.rdp-evt-programme__merci, .rdp-evt-programme__erreur { flex-basis: 100%; margin: 0; font-family: var(--rdp-texte); }
.rdp-evt-programme__formulaire > :is(.h-captcha, .g-recaptcha) { position: absolute; }

/* ---------- Panier latéral (Horizon) aux couleurs du Rallye du Pyla ----------
   En surimpression à toutes les largeurs (voir theme-drawer.js), fond clair, titres en capitales,
   damier sous l'en-tête, photos posées comme des tirages, bouton de paiement vert. */
#cart-drawer {
  --color-background: var(--rdp-blanc);
  --color-foreground: var(--rdp-vert0);
  --color-foreground-rgb: 0 36 23;
  --backdrop-color-rgb: 0 36 23;
  --backdrop-opacity: 0.55;
  --theme-drawer-width: min(100vw, 460px);
}
#cart-drawer .theme-drawer__dialog { background: var(--rdp-blanc); color: var(--rdp-vert0); box-shadow: -24px 0 60px rgb(0 36 23 / 0.25); }
#cart-drawer .theme-drawer__dialog::backdrop { background: rgb(0 36 23 / 0.45); backdrop-filter: blur(3px); }
#cart-drawer .theme-drawer__header { position: relative; padding: 24px 24px 30px; }
#cart-drawer .theme-drawer__header::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0;
  --d-filet: 3px; --d-rang: 6px; --d-case: 16px; --d-a: var(--rdp-vert1); --d-b: var(--rdp-beige);
  height: calc(var(--d-filet) + var(--d-rang) * 2);
  background:
    linear-gradient(var(--rdp-or), var(--rdp-or)) 0 0 / 100% var(--d-filet) no-repeat,
    linear-gradient(90deg, var(--d-a) 0 50%, var(--d-b) 50% 100%) 0 var(--d-filet) / calc(var(--d-case) * 2) var(--d-rang) repeat-x,
    linear-gradient(90deg, var(--d-b) 0 50%, var(--d-a) 50% 100%) 0 calc(var(--d-filet) + var(--d-rang)) / calc(var(--d-case) * 2) var(--d-rang) repeat-x;
}
#cart-drawer .theme-drawer__title,
#cart-drawer .cart-drawer__content > .theme-drawer__title { font-family: var(--rdp-titres); font-size: var(--rdp-t-moyen); line-height: 1; text-transform: uppercase; letter-spacing: 0.01em; color: var(--rdp-vert0); }
#cart-drawer .theme-drawer__badge { background: var(--rdp-vert0); color: var(--rdp-blanc); font-size: 12px; }
#cart-drawer .theme-drawer__close-button { color: var(--rdp-vert0); }

/* lignes */
#cart-drawer .cart-items__table-row { padding-block: 18px; border-bottom: 1px solid rgb(0 36 23 / 0.12); }
#cart-drawer .cart-items__media-container { padding: 3px; background: var(--rdp-blanc); box-shadow: 0 2px 8px rgb(0 36 23 / 0.18); transform: rotate(-2deg); }
#cart-drawer .cart-items__table-row:nth-child(even) .cart-items__media-container { transform: rotate(1.5deg); }
#cart-drawer .cart-items__media-container img { border-radius: 0; }
#cart-drawer .cart-items__title { font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); font-weight: 500; line-height: 1.3; color: var(--rdp-vert0); text-decoration: none; text-transform: none; }
#cart-drawer .cart-items__title:hover { text-decoration: underline; text-underline-offset: 3px; }
#cart-drawer .cart-items__variants,
#cart-drawer .cart-items__properties { font-size: var(--rdp-t-petit); color: var(--rdp-attenue); }
#cart-drawer .cart-items__price { font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); font-weight: 500; color: var(--rdp-vert0); }
#cart-drawer .quantity-selector { border: 1px solid rgb(0 36 23 / 0.25); border-radius: 0; background: transparent; }
.rdp-panier-billet { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 3px; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); line-height: 1.35; color: var(--rdp-vert1); }
.rdp-panier-billet li { display: flex; align-items: center; gap: 6px; }
.rdp-panier-billet .rdp-icone { flex: 0 0 auto; }
.rdp-panier-billet__evt { font-family: var(--rdp-etiquettes); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; }
/* options du billet (passager, déjeuner) : listées sous le billet, leur propre ligne est masquée */
.cart-items .rdp-panier-ligne-option[hidden] { display: none !important; }
.rdp-panier-options { list-style: none; margin: 8px 0 0; padding: 8px 0 0; display: grid; gap: 4px; border-top: 1px solid rgb(0 36 23 / 0.12); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); line-height: 1.35; color: var(--rdp-vert0); }
.rdp-panier-options li { display: flex; justify-content: space-between; gap: 12px; }
.rdp-panier-options__prix { flex: 0 0 auto; color: var(--rdp-vert1); }

/* récapitulatif */
#cart-drawer .cart-drawer__summary { background: var(--rdp-beige); border-top: 0; }
#cart-drawer .cart-totals__total-label { font-family: var(--rdp-titres); font-size: var(--rdp-t-bouton); text-transform: uppercase; }
#cart-drawer .cart-totals__total-value { font-family: var(--rdp-titres); font-size: var(--rdp-t-moyen); }
#cart-drawer .cart-totals__tax-note { color: var(--rdp-attenue); }
.rdp-panier-note { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 10px 12px; background: var(--rdp-blanc); font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); line-height: 1.4; color: var(--rdp-vert0); }
.rdp-panier-note .rdp-icone { flex: 0 0 auto; margin-top: 1px; color: var(--rdp-rouge); }
/* Boutons du panier : exactement le comportement des boutons pleins du site (.rdp-bouton--plein) —
   vert foncé, flèche fixe, fondu vers le vert au survol */
#cart-drawer .cart__checkout-button,
#cart-drawer .cart-items__empty-button {
  --button-background-color: var(--rdp-vert0);
  --button-color: var(--rdp-blanc);
  --button-border-width: 0px;
  display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 54px; padding: 10px 20px;
  border: 0; border-radius: 0; background-color: var(--button-background-color); color: var(--button-color);
  font-family: var(--rdp-titres); font-size: var(--rdp-t-bouton); line-height: 1; letter-spacing: 0.01em; text-transform: uppercase;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
#cart-drawer .cart__checkout-button .rdp-icone,
#cart-drawer .cart-items__empty-button .rdp-icone { flex: none; }
#cart-drawer .cart__checkout-button:hover:not(:disabled),
#cart-drawer .cart-items__empty-button:hover { --button-background-color: var(--rdp-vert1); }
#cart-drawer .cart__checkout-button:disabled { --button-background-color: var(--rdp-beige-fonce); cursor: not-allowed; }

/* panier vide */
.rdp-panier-vide { margin: 0 0 20px; font-family: var(--rdp-texte); font-size: var(--rdp-t-corps); line-height: 1.45; color: var(--rdp-vert0); }
.rdp-panier-vide__lien { display: inline-block; margin-top: 16px; }
#cart-drawer .cart-items__wrapper--drawer-empty { padding-inline: 28px; text-align: center; }
#cart-drawer .cart-items__wrapper--drawer-empty .cart-items__empty-button { width: 100%; max-width: 320px; margin-inline: auto; }

/* ---------- Billetterie générale : un onglet par événement ---------- */
.rdp-billetterie .rdp-pastilles-onglets[hidden] { display: none; }
.rdp-billetterie__evenement { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin-bottom: clamp(28px, 3vw, 40px); padding: 16px 20px; background: var(--rdp-beige); color: var(--rdp-vert0); }
.rdp-billetterie__date { flex: none; box-shadow: var(--rdp-ombre); transform: rotate(-2deg); }
.rdp-billetterie__infos { flex: 1 1 240px; display: grid; gap: 4px; }
.rdp-billetterie__infos h2 { margin: 0; line-height: 1.05; }
.rdp-billetterie__infos p { margin: 0; }
.rdp-billetterie__lien { flex: none; }
.rdp-billetterie__bientot { display: grid; justify-items: start; gap: 12px; max-width: 560px; padding-block: 8px clamp(24px, 3vw, 40px); }
.rdp-billetterie__bientot p { margin: 0; }
.rdp-billetterie__bientot .rdp-bouton { margin-top: 8px; }

/* ---------- Entrées en scène ----------
   [data-rdp-entree] arrive en glissant (avec un léger fondu) quand il entre à l'écran : rdp.js pose .est-entre.
   On utilise translate / rotate / scale (et non transform) pour ne pas gêner la parallaxe et les survols.
   Sans JavaScript (pas de classe rdp-js) ou si l'utilisateur a réduit les animations, tout est visible d'emblée. */
@media (prefers-reduced-motion: no-preference) {
  .rdp-js [data-rdp-entree] {
    opacity: 0;
    translate: var(--rdp-entree-x, 0px) var(--rdp-entree-y, 44px);
    rotate: var(--rdp-entree-r, 0deg);
    scale: var(--rdp-entree-s, 1);
    transition: opacity 0.7s ease var(--rdp-entree-delai, 0s), translate 0.95s cubic-bezier(0.2, 0.7, 0.2, 1) var(--rdp-entree-delai, 0s), rotate 0.95s cubic-bezier(0.2, 0.7, 0.2, 1) var(--rdp-entree-delai, 0s), scale 0.95s cubic-bezier(0.2, 0.7, 0.2, 1) var(--rdp-entree-delai, 0s);
  }
  .rdp-js [data-rdp-entree].est-entre { opacity: 1; translate: 0 0; rotate: 0deg; scale: 1; }
  [data-rdp-entree='gauche'] { --rdp-entree-x: -72px; --rdp-entree-y: 16px; --rdp-entree-r: -5deg; }
  [data-rdp-entree='droite'] { --rdp-entree-x: 72px; --rdp-entree-y: 16px; --rdp-entree-r: 5deg; }
  [data-rdp-entree='zoom'] { --rdp-entree-y: 20px; --rdp-entree-s: 0.92; }
}

/* ---------- Visionneuse vidéo : même habillage que celle des photos (plein écran sombre, « Fermer », légende) ---------- */
.rdp-visionneuse--video .rdp-visionneuse__scene { cursor: zoom-out; }
.rdp-visionneuse--video[open] { grid-template-rows: auto minmax(0, 1fr); }
/* pas de texte sous la vidéo : la marge basse reprend la hauteur de la barre « Fermer » pour que la vidéo reste centrée */
.rdp-visionneuse--video .rdp-visionneuse__scene { padding-bottom: 76px; }
.rdp-visionneuse--video .rdp-video__cadre { width: min(100%, 1280px, calc((100dvh - 184px) * 16 / 9)); aspect-ratio: 16 / 9; background: #000; cursor: auto; box-shadow: 0 24px 60px rgb(0 0 0 / 0.45); }
.rdp-visionneuse--video .rdp-video__cadre iframe,
.rdp-visionneuse--video .rdp-video__cadre video { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; background: #000; }

/* Mention TVA sous le prix d'un billet (champ boutique « Mention TVA ») */
.rdp-fiche-produit__tva { margin: 4px 0 0; font-family: var(--rdp-texte); font-size: var(--rdp-t-petit); opacity: 0.75; }

/* Facture (page « facture », ouverte depuis l'e-mail ou le compte client) */
.rdp-facture { background: var(--rdp-beige); padding: clamp(24px, 4vw, 56px) 16px clamp(48px, 6vw, 96px); color: var(--rdp-vert0); font-family: var(--rdp-texte); }
.rdp-facture__barre { max-width: 820px; margin: 0 auto 16px; display: flex; justify-content: flex-end; }
.rdp-facture__feuille { max-width: 820px; margin: 0 auto; padding: clamp(24px, 5vw, 56px); background: #fff; box-shadow: 0 10px 30px rgb(0 36 23 / 0.12); font-size: 14px; line-height: 1.5; }
.rdp-facture__feuille p { margin: 0; }
.rdp-facture__entete { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 2px solid var(--rdp-vert0); }
.rdp-facture__logo { display: block; width: 140px; height: auto; margin-bottom: 12px; }
.rdp-facture__titre { text-align: right; }
.rdp-facture__titre h1 { margin: 0 0 8px; font-family: var(--rdp-titres); font-size: clamp(32px, 5vw, 44px); font-weight: 400; line-height: 1; text-transform: uppercase; }
.rdp-facture__titre span { opacity: 0.7; }
.rdp-facture__client { margin: 24px 0; }
.rdp-facture__etiquette { margin-bottom: 4px !important; font-family: var(--rdp-titres); font-size: 15px; text-transform: uppercase; }
.rdp-facture__lignes, .rdp-facture__totaux { width: 100%; border-collapse: collapse; }
.rdp-facture__lignes th { padding: 8px 6px; border-bottom: 1px solid var(--rdp-vert0); font-family: var(--rdp-titres); font-size: 14px; font-weight: 400; text-align: left; text-transform: uppercase; }
.rdp-facture__lignes td { padding: 10px 6px; border-bottom: 1px solid var(--rdp-beige); vertical-align: top; }
.rdp-facture__lignes small { opacity: 0.7; }
.rdp-facture__nombre { text-align: right !important; white-space: nowrap; }
.rdp-facture__totaux { width: auto; min-width: 280px; margin: 16px 0 0 auto; }
.rdp-facture__totaux th { padding: 4px 24px 4px 0; font-weight: 400; text-align: left; }
.rdp-facture__totaux td { padding: 4px 0; text-align: right; white-space: nowrap; }
.rdp-facture__total th, .rdp-facture__total td { padding-top: 10px; border-top: 2px solid var(--rdp-vert0); font-family: var(--rdp-titres); font-size: 18px; text-transform: uppercase; }
.rdp-facture__mention { margin-top: 12px !important; text-align: right; font-size: 13px; }
.rdp-facture__acquittee { margin-top: 4px !important; text-align: right; font-size: 13px; opacity: 0.8; }
.rdp-facture__pied { margin-top: 40px; padding-top: 16px; border-top: 1px solid var(--rdp-beige); font-size: 13px; text-align: center; }
.rdp-facture__vide { max-width: 640px; margin: 0 auto; text-align: center; }
@media (max-width: 599px) {
  .rdp-facture__titre { text-align: left; }
  .rdp-facture__lignes th:nth-child(3), .rdp-facture__lignes td:nth-child(3) { display: none; }
}
@media print {
  html:has(.rdp-facture), html:has(.rdp-facture) body, html:has(.rdp-facture) .page-wrapper, html:has(.rdp-facture) main { display: block !important; overflow: visible !important; height: auto !important; min-height: 0 !important; background: #fff !important; }
  body:has(.rdp-facture) > :not(.page-wrapper), body:has(.rdp-facture) .page-wrapper > :not(main), .rdp-facture__barre { display: none !important; }
  .rdp-facture { background: none; padding: 0; }
  .rdp-facture__feuille { max-width: none; padding: 0; box-shadow: none; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rdp-facture__lignes th:nth-child(3), .rdp-facture__lignes td:nth-child(3) { display: table-cell; }
  @page { margin: 16mm; }
}
