/**
 * EGH Core CSS v1.4.0
 * Migré depuis CSS ALL par EGH-B008-V1.
 * Le CSS Additionnel Neve reste séparé car il est strictement spécifique au thème/header.
 */
/* =======================================================
   ESCAPEGAMEHORREUR.COM
   CSS EXTENSION - DESIGN GLOBAL DU SITE
   Fond noir / pluie / cartes / boutons / tarifs / promo
   À coller uniquement dans :
   Extension CSS & JS personnalisé > CSS
======================================================= */


/* =======================================================
   VARIABLES DESIGN CENTRALISÉES
======================================================= */

:root {
  --eh-accent: #e60000;
  --eh-accent-hover: #ff1a1a;
  --eh-accent-soft: rgba(230, 0, 0, 0.10);
  --eh-accent-glow: rgba(230, 0, 0, 0.40);
  --eh-accent-glow2: rgba(230, 0, 0, 0.18);
}



/* =======================================================
   1. BASE GLOBALE DU SITE
   Objectif : fond noir et ambiance sur toutes les pages
======================================================= */

html,
body {
  min-height: 100%;
  background: #000 !important;
  color: #fff !important;
  overflow-x: hidden;
}

body {
  font-family: 'Segoe UI', sans-serif;
  margin: 0;
  padding: 0;
  position: relative;
}

/* Fond noir forcé sur toutes les structures WordPress / Neve */
#page,
.site,
.site-content,
.nv-content-wrap,
.entry-content,
main,
article,
.page,
.hentry {
  background: transparent !important;
}

/* Contenu au-dessus du fond animé */
#page,
.site,
.site-header,
.site-content,
.site-footer,
.nv-content-wrap,
.entry-content,
main {
  position: relative;
  z-index: 1;
}

/* Texte lisible sur toutes les pages */
.site-content,
.entry-content,
.nv-content-wrap {
  color: #fff !important;
}

.site-content p,
.entry-content p,
.site-content li,
.entry-content li,
.site-content span,
.entry-content span {
  color: inherit;
}

.site-content h1,
.site-content h2,
.site-content h3,
.entry-content h1,
.entry-content h2,
.entry-content h3 {
  color: var(--eh-accent) !important;
  text-align: center;
  margin: 10px 0;
}

.site-content p,
.entry-content p {
  line-height: 1.6;
}

/* Conteneurs de contenu uniquement, pas le header Neve */
.site-content .container,
.entry-content .container,
main .container {
  max-width: 960px;
  margin: auto;
  padding: 20px;
  position: relative;
  z-index: 2;
}


/* =======================================================
   2. FOND PLUIE GLOBAL
   Fonctionne même sur les pages internes.
======================================================= */

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  --c: rgba(255, 26, 26, 0.65);
  background-color: #000;
  background-image:
    radial-gradient(4px 100px at 0px 235px, var(--c), #0000),
    radial-gradient(4px 100px at 300px 235px, var(--c), #0000),
    radial-gradient(1.5px 1.5px at 150px 117.5px, var(--c) 100%, #0000 150%),
    radial-gradient(4px 100px at 0px 252px, var(--c), #0000),
    radial-gradient(4px 100px at 300px 252px, var(--c), #0000),
    radial-gradient(1.5px 1.5px at 150px 126px, var(--c) 100%, #0000 150%),
    radial-gradient(4px 100px at 0px 150px, var(--c), #0000),
    radial-gradient(4px 100px at 300px 150px, var(--c), #0000),
    radial-gradient(1.5px 1.5px at 150px 75px, var(--c) 100%, #0000 150%);
  background-size:
    300px 235px,
    300px 235px,
    300px 235px,
    300px 252px,
    300px 252px,
    300px 252px,
    300px 150px,
    300px 150px,
    300px 150px;
  animation: eh-rain 150s linear infinite;
  opacity: 0.55;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  backdrop-filter: blur(0.9em) brightness(1.15);
  background-image: radial-gradient(
    circle at 50% 50%,
    #0000 0,
    #0000 2px,
    rgba(255, 255, 255, 0.06) 2px
  );
  background-size: 8px 8px;
  opacity: 0.45;
}

/* Ancien fond .eh-bg conservé mais neutralisé pour éviter double pluie */
.eh-bg {
  display: none !important;
}

@keyframes eh-rain {
  0% {
    background-position:
      0px 220px,
      3px 220px,
      151.5px 337.5px,
      25px 24px,
      28px 24px,
      176.5px 150px,
      50px 16px,
      53px 16px,
      201.5px 91px;
  }

  100% {
    background-position:
      0px 6800px,
      3px 6800px,
      151.5px 6917.5px,
      25px 13632px,
      28px 13632px,
      176.5px 13758px,
      50px 5416px,
      53px 5416px,
      201.5px 5491px;
  }
}



/* =======================================================
   4. CARTES NÉON
======================================================= */

.eh-card {
  max-width: 800px;
  margin: 26px auto 38px auto;
  padding: 30px;
  background: rgba(0, 0, 0, 0.55);
  color: white;
  font-size: 18px;
  line-height: 1.6;
  text-align: center;
  border-radius: 18px;
}

.location,
.faq,
.eh-card {
  position: relative;
  border-radius: 18px;
  border: 2px solid rgba(230, 0, 0, 0.55);
  background: rgba(0, 0, 0, 0.42);
  backdrop-filter: blur(6px);
  box-shadow:
    0 0 0 1px rgba(255, 26, 26, 0.10),
    0 0 18px rgba(255, 26, 26, 0.12),
    inset 0 0 22px rgba(255, 26, 26, 0.06);
}

.location::before,
.faq::before,
.eh-card::before {
  content: "";
  position: absolute;
  inset: -14px;
  border-radius: inherit;
  pointer-events: none;
  background: radial-gradient(
    circle at 30% 30%,
    rgba(255, 26, 26, 0.25),
    rgba(255, 26, 26, 0.05) 45%,
    rgba(0, 0, 0, 0) 70%
  );
  filter: blur(14px);
  opacity: 0.85;
}

.location::after,
.faq::after,
.eh-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
  opacity: 0.8;
}

.location:hover,
.faq:hover,
.eh-card:hover {
  border-color: rgba(255, 26, 26, 0.85);
  box-shadow:
    0 0 0 1px rgba(255, 26, 26, 0.14),
    0 0 22px rgba(255, 26, 26, 0.18),
    inset 0 0 26px rgba(255, 26, 26, 0.10);
}

.location > *,
.faq > *,
.eh-card > * {
  position: relative;
  z-index: 1;
}

.location {
  padding: 24px 18px;
  margin: 38px 0;
  text-align: center;
  z-index: 2;
}

.faq {
  padding: 22px 18px;
  margin-top: 46px;
}

.location p,
.faq p,
.eh-card p,
.location li,
.faq li,
.eh-card li {
  color: #ffffff !important;
}


/* =======================================================
   5. BOUTONS
======================================================= */

.anchor-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin: 30px 0;
}

a.anchor-button,
a.gift-button,
a.btn,
#audio-control,
#back-to-top {
  font-size: 15px;
  padding: 0.7em 2.2em;
  letter-spacing: 0.06em;
  position: relative;
  font-family: inherit;
  border-radius: 0.6em;
  overflow: hidden;
  transition:
    transform 0.15s ease,
    box-shadow 0.3s ease,
    color 0.3s ease,
    background 0.3s ease,
    border-color 0.3s ease,
    opacity 0.3s ease;
  line-height: 1.4em;

  border: 2px solid var(--eh-accent) !important;
  background: linear-gradient(
    to right,
    var(--eh-accent-soft) 1%,
    transparent 40%,
    transparent 60%,
    var(--eh-accent-soft) 100%
  ) !important;

  color: #ffd1d1 !important;
  box-shadow:
    inset 0 0 10px var(--eh-accent-glow),
    0 0 9px 3px var(--eh-accent-glow2) !important;

  text-decoration: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  cursor: pointer;
  z-index: 3;
  -webkit-tap-highlight-color: transparent;
}

a.anchor-button:visited,
a.gift-button:visited,
a.btn:visited {
  color: #ffd1d1 !important;
}

a.anchor-button::before,
a.gift-button::before,
a.btn::before,
#audio-control::before,
#back-to-top::before {
  content: "";
  position: absolute;
  left: -4em;
  width: 4em;
  height: 100%;
  top: 0;
  transition: transform 0.4s ease-in-out;
  background: linear-gradient(
    to right,
    transparent 1%,
    rgba(255, 26, 26, 0.16) 40%,
    rgba(255, 26, 26, 0.16) 60%,
    transparent 100%
  );
}

a.anchor-button:hover,
a.gift-button:hover,
a.btn:hover,
#audio-control:hover,
#back-to-top:hover,
a.anchor-button:focus-visible,
a.gift-button:focus-visible,
a.btn:focus-visible,
#audio-control:focus-visible,
#back-to-top:focus-visible {
  color: #ffffff !important;
  border-color: var(--eh-accent-hover) !important;
  background: linear-gradient(
    to bottom,
    rgba(255, 26, 26, 0.38),
    var(--eh-accent-soft)
  ) !important;
  box-shadow:
    inset 0 0 12px rgba(255, 26, 26, 0.60),
    0 0 12px 4px rgba(255, 26, 26, 0.18) !important;
  transform: translateY(-1px);
  outline: none !important;
}

a.anchor-button:hover::before,
a.gift-button:hover::before,
a.btn:hover::before,
#audio-control:hover::before,
#back-to-top:hover::before {
  transform: translateX(16em);
}

a.gift-button {
  display: flex;
  width: 100%;
  max-width: 560px;
  margin: 0 auto 18px auto;
  padding: 0.95em 1.4em;
  font-size: 18px;
  font-weight: 800;
}

a.btn {
  margin-top: 12px;
}


/* =======================================================
   6. BOUTONS FLOTTANTS
======================================================= */

#audio-control {
  position: fixed;
  top: 12px;
  right: 12px;
  width: 52px;
  height: 52px;
  padding: 0;
  border-radius: 999px;
  z-index: 9999;
}

#back-to-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 52px;
  height: 52px;
  padding: 0;
  border-radius: 999px;
  z-index: 10000;
  opacity: 0;
  pointer-events: none;
  transform: translateY(6px);
}

#back-to-top.show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}


/* =======================================================
   7. IMAGES
======================================================= */

.location a {
  display: inline-block;
  width: 100%;
  max-width: 520px;
}

.location img {
  width: 100% !important;
  height: 320px !important;
  object-fit: cover !important;
  object-position: center !important;

  border-radius: 16px !important;
  box-shadow: 0 10px 30px rgba(255, 0, 0, 0.25) !important;
  transition: transform 0.25s ease, filter 0.25s ease !important;
  display: block !important;
}

.location img:hover {
  transform: scale(1.03);
  filter: brightness(1.05) contrast(1.1);
}


/* =======================================================
   8. MOBILE DESIGN GLOBAL
======================================================= */

@media (max-width: 768px) {
  .site-content .container,
  .entry-content .container,
  main .container {
    padding: 16px;
  }

  .container .location,
  .container .faq,
  .container .eh-card,
  .site-content .location,
  .site-content .faq,
  .site-content .eh-card {
    border: 2px solid rgba(255, 26, 26, 0.70) !important;
    background: rgba(0, 0, 0, 0.48) !important;
    box-shadow:
      0 0 0 1px rgba(255, 26, 26, 0.14),
      0 0 16px rgba(255, 26, 26, 0.16),
      inset 0 0 18px rgba(255, 26, 26, 0.08) !important;

    overflow: visible !important;
    backdrop-filter: blur(4px) !important;
    padding: 18px 14px !important;
    margin: 28px 0 !important;
  }

  .container .location::before,
  .container .faq::before,
  .container .eh-card::before,
  .site-content .location::before,
  .site-content .faq::before,
  .site-content .eh-card::before {
    inset: -12px !important;
    opacity: 0.95 !important;
    filter: blur(12px) !important;
    display: block !important;
  }

  .container .location::after,
  .container .faq::after,
  .container .eh-card::after,
  .site-content .location::after,
  .site-content .faq::after,
  .site-content .eh-card::after {
    display: block !important;
  }

  .location a {
    max-width: 380px;
  }

  .location img {
    height: 240px !important;
  }

  .anchor-buttons {
    flex-direction: column;
    align-items: center;
  }

  a.gift-button,
  a.anchor-button {
    width: 100%;
    max-width: 340px;
  }

  a.gift-button {
    font-size: 16px;
  }
}


/* =======================================================
   9. TARIFS HEYOU
======================================================= */

.eh-pricing {
  max-width: 960px;
  margin: 46px auto;
  padding: 28px;
  color: #fff;
  text-align: center;
}

.eh-pricing-kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  padding: 7px 14px;
  border: 1px solid rgba(255, 26, 26, 0.55);
  border-radius: 999px;
  color: #ffd1d1;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  background: rgba(230, 0, 0, 0.08);
  box-shadow: 0 0 16px rgba(255, 26, 26, 0.16);
}

.eh-pricing-title {
  font-size: clamp(30px, 5vw, 52px);
  line-height: 1;
  margin-bottom: 14px;
  text-shadow: 0 0 18px rgba(230, 0, 0, 0.45);
}

.eh-pricing-lead {
  max-width: 760px;
  margin: 0 auto 14px auto;
  color: rgba(255, 255, 255, 0.86);
  font-size: 17px;
}

.eh-pricing-promo {
  max-width: 760px;
  margin: 18px auto 28px auto;
  padding: 16px 18px;
  border-radius: 16px;
  border: 1px solid rgba(255, 26, 26, 0.55);
  background: linear-gradient(135deg, rgba(230, 0, 0, 0.20), rgba(0, 0, 0, 0.25));
  box-shadow:
    inset 0 0 18px rgba(255, 26, 26, 0.08),
    0 0 18px rgba(255, 26, 26, 0.13);
  color: #fff;
}

.eh-pricing-promo strong {
  color: #ffffff;
  text-shadow: 0 0 12px rgba(255, 26, 26, 0.75);
}

.eh-pricing-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
  margin-top: 24px;
}

.eh-pricing-box {
  position: relative;
  padding: 18px 14px;
  border-radius: 16px;
  border: 1px solid rgba(255, 26, 26, 0.45);
  background: rgba(0, 0, 0, 0.42);
  box-shadow:
    inset 0 0 18px rgba(255, 26, 26, 0.06),
    0 0 14px rgba(255, 26, 26, 0.10);
}

.eh-pricing-box h3 {
  margin: 0 0 14px 0;
  color: var(--eh-accent-hover);
  font-size: 18px;
  text-align: center;
}

.eh-choice {
  display: block;
  margin: 10px 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.eh-choice input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.eh-choice-ui {
  display: block;
  padding: 13px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.045);
  color: #fff;
  transition:
    transform 0.18s ease,
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    background 0.18s ease;
}

.eh-choice-ui strong {
  display: block;
  font-size: 15px;
  color: #ffffff;
}

.eh-choice-ui small {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 12px;
  line-height: 1.35;
}

.eh-choice input:checked + .eh-choice-ui {
  border-color: rgba(255, 26, 26, 0.95);
  background: linear-gradient(135deg, rgba(230, 0, 0, 0.30), rgba(0, 0, 0, 0.20));
  box-shadow:
    inset 0 0 16px rgba(255, 26, 26, 0.14),
    0 0 16px rgba(255, 26, 26, 0.20);
  transform: translateY(-1px);
}

.eh-choice input:focus-visible + .eh-choice-ui {
  outline: 2px solid rgba(255, 26, 26, 0.85);
  outline-offset: 3px;
}

.eh-choice--video.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.eh-select {
  width: 100%;
  margin: 8px 0 12px 0;
  padding: 13px 12px;
  border-radius: 14px;
  border: 1px solid rgba(255, 26, 26, 0.55);
  background: rgba(0, 0, 0, 0.72);
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  text-align: center;
  box-shadow:
    inset 0 0 12px rgba(255, 26, 26, 0.10),
    0 0 12px rgba(255, 26, 26, 0.12);
}

.eh-select option {
  background: #090909;
  color: #fff;
}

.eh-pricing-note {
  margin-top: 10px;
  padding: 11px 12px;
  border-radius: 12px;
  background: rgba(255, 26, 26, 0.10);
  border: 1px solid rgba(255, 26, 26, 0.30);
  color: #ffd1d1;
  font-size: 13px;
  line-height: 1.45;
}

.eh-pricing-result {
  margin: 28px auto 0 auto;
  max-width: 760px;
  padding: 24px 18px;
  border-radius: 18px;
  border: 2px solid rgba(255, 26, 26, 0.75);
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 26, 26, 0.20), rgba(0, 0, 0, 0.50) 60%),
    rgba(0, 0, 0, 0.58);
  box-shadow:
    0 0 0 1px rgba(255, 26, 26, 0.12),
    0 0 26px rgba(255, 26, 26, 0.20),
    inset 0 0 22px rgba(255, 26, 26, 0.08);
}

.eh-pricing-result-label {
  color: #ffd1d1;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.eh-pricing-result-price {
  font-size: clamp(24px, 4vw, 38px);
  line-height: 1.15;
  color: #fff;
}

.eh-pricing-result-price strong {
  color: #ffffff;
  text-shadow: 0 0 16px rgba(255, 26, 26, 0.85);
}

.eh-pricing-result-details {
  margin-top: 12px;
  color: rgba(255, 255, 255, 0.80);
  font-size: 15px;
  line-height: 1.55;
}

.eh-pricing-result-details small {
  color: #ffd1d1;
}

.eh-pricing-actions {
  margin-top: 24px;
}

.eh-pricing-actions .btn {
  font-weight: 900;
  text-transform: uppercase;
}


/* =======================================================
   10. TARIFS RESPONSIVE
======================================================= */

@media (max-width: 900px) {
  .eh-pricing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .eh-pricing {
    padding: 22px 14px;
  }

  .eh-pricing-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .eh-pricing-box {
    padding: 16px 12px;
  }

  .eh-pricing-lead,
  .eh-pricing-promo {
    font-size: 15px;
  }
}


/* =======================================================
   11. ENCARTE JEUDI PROMO - HOME
======================================================= */

.jeudi-promo-home {
  margin-top: 34px;
  overflow: visible !important;
}

.jeudi-promo-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 460px);
  gap: 28px;
  align-items: center;
  text-align: left;
}

.jeudi-promo-text {
  position: relative;
  z-index: 2;
}

.jeudi-promo-intro {
  font-size: 1.15rem;
  text-align: center;
}

.jeudi-promo-price {
  text-align: center;
  font-size: 1.3rem;
  margin-top: 18px;
}

.jeudi-promo-note {
  text-align: center;
  font-size: 0.95rem;
  color: #ccc;
}

.jeudi-promo-action {
  text-align: center;
  margin-top: 18px;
}

.jeudi-promo-image {
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 300px;
  border-radius: 16px;

  background-image: url("https://www.escapegamehorreur.com/wp-content/uploads/2026/04/Jeudi-Promo-Escape-gamehorreur.png");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: rgba(0, 0, 0, 0.55);

  box-shadow: 0 10px 30px rgba(255, 0, 0, 0.35);
  transition: transform 0.25s ease, filter 0.25s ease;
  position: relative;
  z-index: 2;
}

.jeudi-promo-image:hover {
  transform: scale(1.02);
  filter: brightness(1.05) contrast(1.08);
}

.jeudi-promo-home img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 16px !important;
  box-shadow: 0 10px 30px rgba(255, 0, 0, 0.35) !important;
  display: block !important;
}


/* =======================================================
   12. MOBILE JEUDI PROMO / PROMO DYNAMIQUE
   Correction : ne plus masquer le texte sur téléphone
======================================================= */

@media (max-width: 768px) {
  .jeudi-promo-home {
    margin-top: 28px !important;
    padding: 14px !important;
    overflow: visible !important;
  }

  .jeudi-promo-home h2,
  .jeudi-promo-text {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .jeudi-promo-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
    align-items: stretch !important;
    text-align: center !important;
  }

  .jeudi-promo-image {
    order: 1 !important;
    display: block !important;
    width: 100% !important;
    max-width: 420px !important;
    margin: 0 auto 8px auto !important;
    aspect-ratio: 16 / 9;
    min-height: 190px;
    background-size: contain !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
  }

  .jeudi-promo-text {
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    text-align: center !important;
    color: #ffffff !important;
    position: relative !important;
    z-index: 2 !important;
  }

  .jeudi-promo-intro,
  .jeudi-promo-price,
  .jeudi-promo-note,
  #promo-content,
  #promo-content p {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    color: #ffffff !important;
    text-align: center !important;
  }

  #promo-content p {
    font-size: 16px !important;
    line-height: 1.55 !important;
    margin-bottom: 14px !important;
  }

  .jeudi-promo-home img {
    display: block !important;
    width: 100% !important;
    max-width: 420px !important;
    height: auto !important;
    margin: 0 auto !important;
    object-fit: contain !important;
  }

  .jeudi-promo-action {
    display: block !important;
    text-align: center !important;
    margin-top: 18px !important;
  }

  .jeudi-promo-action .btn,
  #promo-button {
    display: inline-flex !important;
    width: auto !important;
    max-width: 360px !important;
    white-space: normal !important;
    text-align: center !important;
  }
}

@media (max-width: 420px) {
  .jeudi-promo-image {
    min-height: 175px;
  }
}


/* =======================================================
   13. MOBILE TITRES PRINCIPAUX
======================================================= */

@media (max-width: 768px) {
  .site-content h1,
  .entry-content h1,
  .elementor-heading-title {
    font-size: clamp(32px, 10vw, 46px) !important;
    line-height: 1.08 !important;
    text-align: center !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }
}


/* =======================================================
   14. ACCESSIBILITÉ / RÉDUCTION DES ANIMATIONS
======================================================= */

@media (prefers-reduced-motion: reduce) {
  a.anchor-button,
  a.gift-button,
  a.btn,
  #audio-control,
  #back-to-top {
    transition: none;
  }

  a.anchor-button::before,
  a.gift-button::before,
  a.btn::before,
  #audio-control::before,
  #back-to-top::before {
    display: none;
  }

  body::before {
    animation: none;
  }

  body::after {
    backdrop-filter: none;
  }
}

/* =======================================================
   15. PATCH PERFORMANCE MOBILE / SAFARI iOS
   Objectif : supprimer les repaints continus qui bloquent le scroll
======================================================= */

@media (max-width: 960px) {
  html,
  body {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    height: auto !important;
    min-height: 100% !important;
    -webkit-overflow-scrolling: touch;
  }

  /* La vraie source du lag iOS : background-position animé sur fixed */
  body::before,
  .eh-bg,
  .eh-bg::before,
  .eh-bg::after {
    animation: none !important;
    -webkit-animation: none !important;
    will-change: auto !important;
    transform: none !important;
  }

  body::before {
    opacity: 0.18 !important;
    background-attachment: scroll !important;
  }

  body::after {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background-image: none !important;
    opacity: 0.12 !important;
  }

  .location,
  .faq,
  .eh-card,
  .tariff-card,
  .info-card,
  .scenario-card,
  .booking-card,
  .eh-pricing-box,
  .eh-pricing-result,
  .eh-pricing-promo {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .location::before,
  .faq::before,
  .eh-card::before,
  .tariff-card::before,
  .info-card::before,
  .scenario-card::before,
  .booking-card::before {
    filter: none !important;
    -webkit-filter: none !important;
  }

  .location,
  .faq,
  .eh-card {
    box-shadow:
      0 0 0 1px rgba(255, 26, 26, 0.14),
      0 8px 22px rgba(0, 0, 0, 0.35),
      inset 0 0 18px rgba(255, 26, 26, 0.08) !important;
  }

  .site,
  .site-content,
  .nv-content-wrap,
  .entry-content,
  main,
  article {
    overflow: visible !important;
    height: auto !important;
    min-height: auto !important;
  }

  .cmplz-cookiebanner {
    max-height: 70vh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
}

@supports (-webkit-touch-callout: none) {
  @media (max-width: 960px) {
    body::before,
    body::after,
    .eh-bg,
    .eh-bg::before,
    .eh-bg::after {
      animation: none !important;
      -webkit-animation: none !important;
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
      filter: none !important;
      -webkit-filter: none !important;
      will-change: auto !important;
      transform: none !important;
    }

    .location,
    .faq,
    .eh-card,
    .tariff-card,
    .info-card,
    .scenario-card,
    .booking-card {
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
      transform: none !important;
      will-change: auto !important;
    }
  }
}


/* =======================================================
   16. PATCH ANCRES / HEADER STICKY
   Évite que le header cache les sections ciblées
======================================================= */

#Scenario,
#scenario,
#Tarifs,
#tarifs,
#InfosPratiques,
#infos-pratiques,
#Reservationcannet,
#Reservationheyou,
#Reservation,
#reservation {
  scroll-margin-top: 110px !important;
}

@media (max-width: 960px) {
  #Scenario,
  #scenario,
  #Tarifs,
  #tarifs,
  #InfosPratiques,
  #infos-pratiques,
  #Reservationcannet,
  #Reservationheyou,
  #Reservation,
  #reservation {
    scroll-margin-top: 24px !important;
  }
}
/* =======================================================
   17. 4ESCAPE SMART BOOKING - MULTI CALENDRIERS
   Iframe sur navigateurs compatibles
   Bouton direct sur Safari / iPhone / iPad

   Fonctionnement :
   - le HTML de chaque page indique son calendrier avec :
     data-subdomain, data-booking-url, data-city
   - le JS décide automatiquement :
     Safari / iOS = bouton direct
     autres navigateurs = iframe intégrée
======================================================= */

.egh-smart-booking {
  width: 100%;
  max-width: 100%;
  margin: 28px auto;
  position: relative;
  z-index: 2;
}

.egh-booking-loading {
  text-align: center;
  padding: 24px 16px;
  color: #ffffff;
  opacity: 0.85;
  font-size: 16px;
  line-height: 1.5;
}

/* Mode iframe intégré */
.egh-booking-iframe-mode {
  width: 100%;
  max-width: 100%;
  overflow: visible;
}

.egh-booking-iframe-mode .forescape {
  width: 100%;
  max-width: 100%;
}

/* Sécurité iframe */
.egh-booking-iframe-mode iframe {
  width: 100% !important;
  max-width: 100% !important;
  border: 0 !important;
  display: block !important;
}

/* Mode bouton Safari / iOS */
.egh-booking-button-mode {
  width: 100%;
  max-width: 100%;
}

.egh-booking-mobile-fallback {
  text-align: center;
  padding: 28px 20px;
  border-radius: 18px;
  border: 2px solid rgba(230, 0, 0, 0.65);
  background:
    radial-gradient(circle at 50% 0%, var(--eh-accent-glow2), rgba(0, 0, 0, 0.58) 60%),
    rgba(0, 0, 0, 0.62);
  box-shadow:
    0 0 0 1px rgba(255, 26, 26, 0.12),
    0 0 22px rgba(255, 26, 26, 0.16),
    inset 0 0 20px rgba(255, 26, 26, 0.08);
  color: #ffffff;
  position: relative;
  overflow: visible;
}

.egh-booking-mobile-fallback h3 {
  margin: 0 0 12px 0;
  color: var(--eh-accent) !important;
  text-align: center;
  font-size: clamp(24px, 6vw, 36px);
  line-height: 1.15;
}

.egh-booking-mobile-fallback p {
  max-width: 640px;
  margin: 0 auto 18px auto;
  color: #ffffff !important;
  line-height: 1.55;
  font-size: 16px;
}

.egh-booking-mobile-fallback .egh-booking-small-note {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.72) !important;
  margin-top: 14px;
  margin-bottom: 0;
}

.egh-booking-mobile-fallback .btn,
.egh-booking-mobile-fallback a.btn,
.egh-smart-booking-button {
  margin-top: 10px;
}

/* Le bouton direct garde le style global des boutons du site */
.egh-booking-mobile-fallback a.btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

/* Mobile */
@media (max-width: 768px) {
  .egh-smart-booking {
    margin: 22px auto;
  }

  .egh-booking-iframe-mode {
    overflow: visible;
  }

  .egh-booking-mobile-fallback {
    padding: 24px 14px;
    margin: 18px 0;
  }

  .egh-booking-mobile-fallback p {
    font-size: 15px;
  }

  .egh-booking-mobile-fallback .btn,
  .egh-booking-mobile-fallback a.btn,
  .egh-smart-booking-button {
    width: 100%;
    max-width: 360px;
    text-align: center;
    white-space: normal;
  }
}

/* Très petits écrans */
@media (max-width: 420px) {
  .egh-booking-mobile-fallback {
    padding: 22px 12px;
  }

  .egh-booking-mobile-fallback h3 {
    font-size: 24px;
  }

  .egh-booking-mobile-fallback p {
    font-size: 14px;
  }
}

/* =======================================================
   EGH-B009 — DESIGN SYSTEM UNIFIÉ
   Boutons / liens / tarificateurs / menu mobile
======================================================= */

:root {
  --egh-radius-button: 12px;
  --egh-radius-card: 16px;
  --egh-control-height: 48px;
  --egh-surface: rgba(8, 8, 8, 0.78);
  --egh-surface-strong: rgba(14, 14, 14, 0.92);
  --egh-border: rgba(230, 0, 0, 0.58);
  --egh-border-strong: rgba(255, 26, 26, 0.82);
  --egh-shadow: 0 12px 34px rgba(0, 0, 0, 0.32);
  --egh-glow: 0 0 0 1px rgba(255, 26, 26, 0.10), 0 0 22px rgba(230, 0, 0, 0.18);
}

/* Un seul aspect pour les vrais CTA du site. */
a.btn,
a.anchor-button,
a.gift-button,
a.egh-btn,
a.egh-contact__home,
button.egh-btn,
.site-content .wpforms-submit,
.entry-content .wpforms-submit {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--egh-control-height);
  padding: 11px 22px !important;
  border: 1px solid rgba(255, 50, 50, 0.78) !important;
  border-radius: var(--egh-radius-button) !important;
  background: linear-gradient(180deg, rgba(205, 14, 14, 0.98), rgba(145, 0, 0, 0.98)) !important;
  color: #fff !important;
  font: inherit;
  font-weight: 850 !important;
  line-height: 1.15;
  letter-spacing: .02em;
  text-align: center;
  text-decoration: none !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .55);
  box-shadow: 0 8px 20px rgba(0, 0, 0, .28), 0 0 16px rgba(230, 0, 0, .18) !important;
  cursor: pointer;
  transform: translateY(0);
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease, filter .16s ease;
}

a.btn:hover,
a.anchor-button:hover,
a.gift-button:hover,
a.egh-btn:hover,
a.egh-contact__home:hover,
button.egh-btn:hover,
.site-content .wpforms-submit:hover,
.entry-content .wpforms-submit:hover {
  color: #fff !important;
  transform: translateY(-1px);
  filter: brightness(1.08);
  border-color: rgba(255, 90, 90, .96) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.34), 0 0 22px rgba(230,0,0,.28) !important;
}

a.btn:focus-visible,
a.anchor-button:focus-visible,
a.gift-button:focus-visible,
a.egh-btn:focus-visible,
a.egh-contact__home:focus-visible,
button.egh-btn:focus-visible,
.site-content .wpforms-submit:focus-visible,
.entry-content .wpforms-submit:focus-visible {
  outline: 3px solid rgba(255, 255, 255, .92) !important;
  outline-offset: 3px !important;
}

/* Les liens éditoriaux restent des liens : on évite de tout transformer en bouton. */
.site-content a:not(.btn):not(.anchor-button):not(.gift-button):not(.egh-btn):not(.image-link):not([data-track="select-city"]),
.entry-content a:not(.btn):not(.anchor-button):not(.gift-button):not(.egh-btn):not(.image-link):not([data-track="select-city"]) {
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}

/* ---------- Tarificateur unique ---------- */
.egh-pricing-module {
  box-sizing: border-box;
  width: min(100%, 980px);
  margin: 34px auto 38px;
  padding: clamp(18px, 3vw, 30px);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 2px solid var(--egh-border);
  border-radius: var(--egh-radius-card);
  background:
    radial-gradient(circle at 50% -10%, rgba(230, 0, 0, .13), transparent 42%),
    var(--egh-surface);
  color: #fff;
  text-align: center;
  box-shadow: var(--egh-shadow), var(--egh-glow);
}

.egh-pricing-module::before {
  content: "";
  position: absolute;
  inset: -50px;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 0%, rgba(255, 26, 26, .16), transparent 34%),
    radial-gradient(circle at 85% 100%, rgba(255, 26, 26, .08), transparent 36%);
}

.egh-pricing-module *,
.egh-pricing-module *::before,
.egh-pricing-module *::after { box-sizing: border-box; }

.egh-pricing__kicker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  padding: 7px 13px;
  border: 1px solid rgba(255, 50, 50, .54);
  border-radius: 999px;
  background: rgba(230, 0, 0, .10);
  color: #ffd5d5 !important;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.egh-pricing__title {
  margin: 0 0 12px !important;
  color: var(--eh-accent) !important;
  font-size: clamp(28px, 5vw, 48px) !important;
  line-height: 1.06 !important;
  text-transform: uppercase;
  text-shadow: 0 0 13px rgba(230, 0, 0, .36);
}

.egh-pricing__lead {
  max-width: 760px;
  margin: 0 auto 16px !important;
  color: rgba(255,255,255,.88) !important;
  font-size: 16px;
  line-height: 1.6;
}

.egh-pricing__promo {
  max-width: 800px;
  margin: 18px auto 24px;
  padding: 14px 16px;
  border: 1px solid rgba(255, 26, 26, .50);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(190,0,0,.19), rgba(0,0,0,.25));
  color: rgba(255,255,255,.94);
  box-shadow: inset 0 0 16px rgba(255,26,26,.07);
}

.egh-pricing__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 14px;
  align-items: stretch;
}

.egh-pricing__grid--compact {
  max-width: 620px;
  margin-inline: auto;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.egh-pricing__step {
  min-width: 0;
  padding: 16px 12px;
  border: 1px solid rgba(255, 26, 26, .48);
  border-radius: 14px;
  background: var(--egh-surface-strong);
  box-shadow: inset 0 0 15px rgba(255, 26, 26, .055), 0 0 13px rgba(230, 0, 0, .08);
}

.egh-pricing__step h3 {
  margin: 0 0 11px !important;
  color: #fff !important;
  font-size: 15px !important;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .055em;
}

.egh-choice {
  display: block;
  margin: 8px 0;
  cursor: pointer;
}

.egh-choice input[type="radio"],
.egh-choice input[type="checkbox"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none;
}

.egh-choice__ui {
  display: flex;
  min-height: 60px;
  padding: 10px 11px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 11px;
  background: rgba(255,255,255,.035);
  color: #fff !important;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}

.egh-choice__ui strong { color: #fff !important; font-size: 14px; }
.egh-choice__ui small { color: rgba(255,255,255,.68) !important; line-height: 1.35; }

.egh-choice input:checked + .egh-choice__ui {
  border-color: var(--egh-border-strong);
  background: linear-gradient(180deg, rgba(180,0,0,.26), rgba(90,0,0,.17));
  box-shadow: 0 0 16px rgba(230,0,0,.18), inset 0 0 12px rgba(255,26,26,.06);
}

.egh-choice input:focus-visible + .egh-choice__ui {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.egh-choice.is-disabled,
.egh-choice--check.is-disabled {
  opacity: .48;
  cursor: not-allowed;
}

.egh-select {
  width: 100%;
  min-height: var(--egh-control-height);
  padding: 10px 38px 10px 12px;
  border: 1px solid rgba(255, 50, 50, .52);
  border-radius: 11px;
  background: #111;
  color: #fff;
  font: inherit;
  font-weight: 700;
}
.egh-select:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.egh-select option { background: #111; color: #fff; }

.egh-pricing__note {
  margin-top: 9px;
  color: #ffd1d1 !important;
  font-size: 13px;
  line-height: 1.4;
}

.egh-pricing__result {
  max-width: 790px;
  margin: 24px auto 0;
  padding: 20px 16px;
  border: 2px solid rgba(255, 26, 26, .72);
  border-radius: 15px;
  background: radial-gradient(circle at 50% 0%, rgba(230,0,0,.18), rgba(0,0,0,.54) 58%), rgba(0,0,0,.62);
  box-shadow: 0 0 20px rgba(230,0,0,.17), inset 0 0 18px rgba(255,26,26,.06);
}

.egh-pricing__result-label {
  margin-bottom: 8px;
  color: #ffd1d1 !important;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.egh-pricing__result-price {
  color: #fff !important;
  font-size: clamp(24px, 4vw, 36px);
  line-height: 1.18;
}
.egh-pricing__result-price strong { color: #fff !important; text-shadow: 0 0 14px rgba(255,26,26,.70); }
.egh-pricing__result-details { margin-top: 10px; color: rgba(255,255,255,.80) !important; font-size: 14px; line-height: 1.5; }
.egh-pricing__result-details small { color: #ffd1d1 !important; }
.egh-pricing__actions { margin-top: 22px; text-align: center; }

/* ---------- Menu mobile Neve : lien = navigation, flèche = sous-menu ---------- */
@media (max-width: 960px) {
  #header-menu-sidebar .menu-item-has-children,
  .header-menu-sidebar .menu-item-has-children { position: relative; }

  #header-menu-sidebar .menu-item-has-children > a,
  .header-menu-sidebar .menu-item-has-children > a { padding-right: 58px !important; }

  #header-menu-sidebar .egh-submenu-toggle,
  .header-menu-sidebar .egh-submenu-toggle {
    position: absolute;
    top: 5px;
    right: 7px;
    z-index: 5;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(255, 26, 26, .42);
    border-radius: 10px;
    background: rgba(120,0,0,.16);
    color: #fff;
    font-size: 23px;
    line-height: 1;
    cursor: pointer;
  }

  #header-menu-sidebar .egh-submenu-toggle span,
  .header-menu-sidebar .egh-submenu-toggle span {
    display: block;
    transform: translateY(-2px) rotate(0deg);
    transition: transform .15s ease;
  }

  #header-menu-sidebar .egh-submenu-open > .egh-submenu-toggle span,
  .header-menu-sidebar .egh-submenu-open > .egh-submenu-toggle span {
    transform: translateY(2px) rotate(180deg);
  }

  #header-menu-sidebar .egh-submenu-toggle:focus-visible,
  .header-menu-sidebar .egh-submenu-toggle:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  .anchor-buttons {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: min(100%, 380px);
    margin-inline: auto !important;
  }

  .anchor-buttons > a.anchor-button,
  .anchor-buttons > a.btn {
    width: 100%;
    margin: 0 !important;
  }

  .egh-pricing-module { padding: 20px 13px; }
  .egh-pricing__grid,
  .egh-pricing__grid--compact { grid-template-columns: 1fr; }
  .egh-pricing__step { padding: 14px 11px; }
  .egh-pricing__actions .egh-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  a.btn,
  a.anchor-button,
  a.gift-button,
  a.egh-btn,
  a.egh-contact__home,
  .egh-choice__ui,
  .egh-submenu-toggle span {
    transition: none !important;
  }
}
/* =======================================================
   EGH-B010-V1 — HARMONISATION VISUELLE GLOBALE
   Cartes / informations / mobile / footer / formulaires
======================================================= */

:root {
  --egh-bg: #050505;
  --egh-panel: rgba(8, 8, 8, .78);
  --egh-panel-soft: rgba(10, 10, 10, .62);
  --egh-panel-strong: rgba(4, 4, 4, .90);
  --egh-text: #f4f4f4;
  --egh-muted: rgba(255,255,255,.72);
  --egh-red: #e60000;
  --egh-red-bright: #ff2424;
  --egh-red-border: rgba(230,0,0,.58);
  --egh-red-glow: rgba(230,0,0,.20);
  --egh-radius: 16px;
  --egh-shadow: 0 14px 38px rgba(0,0,0,.34);
}

/* Typographie et rythme */
.site-content .entry-content,
.site-content .nv-content-wrap {
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 1.68;
}

.site-content h1,
.entry-content h1 {
  margin: 20px auto 26px !important;
  max-width: 980px;
  font-size: clamp(32px, 5vw, 56px) !important;
  line-height: 1.06 !important;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.site-content h2,
.entry-content h2 {
  margin-top: 34px !important;
  margin-bottom: 16px !important;
  font-size: clamp(25px, 3.4vw, 38px) !important;
  line-height: 1.15 !important;
  text-wrap: balance;
}

.site-content h3,
.entry-content h3 {
  margin-top: 27px !important;
  margin-bottom: 13px !important;
  font-size: clamp(20px, 2.3vw, 27px) !important;
  line-height: 1.2 !important;
}

.entry-content p,
.entry-content li {
  max-width: 78ch;
  margin-left: auto;
  margin-right: auto;
}

.entry-content p a:not(.btn):not(.anchor-button):not(.gift-button):not(.gift-shop-button):not(.egh-btn),
.entry-content li a:not(.btn):not(.anchor-button):not(.gift-button):not(.gift-shop-button):not(.egh-btn) {
  color: #ff7777 !important;
  text-decoration: underline !important;
  text-decoration-color: rgba(255,70,70,.55) !important;
  text-underline-offset: 3px;
}
.entry-content p a:hover,
.entry-content li a:hover {
  color: #fff !important;
}

/* Composants cartes */
.egh-panel,
.egh-document-panel,
.egh-contact,
.egh-info-card,
.egh-about-section {
  position: relative;
  width: min(100%, 920px);
  margin: 28px auto;
  padding: clamp(20px, 3vw, 30px);
  box-sizing: border-box;
  border: 1px solid rgba(230,0,0,.46);
  border-radius: var(--egh-radius);
  background: linear-gradient(180deg, rgba(15,15,15,.80), rgba(3,3,3,.78));
  box-shadow: var(--egh-shadow), inset 0 0 0 1px rgba(255,255,255,.025);
  color: var(--egh-text);
}

.egh-panel--primary,
.eh-card,
.location,
.faq {
  border-width: 1px !important;
  border-color: rgba(230,0,0,.52) !important;
  border-radius: var(--egh-radius) !important;
  background: linear-gradient(180deg, rgba(14,14,14,.78), rgba(3,3,3,.76)) !important;
  box-shadow:
    0 14px 38px rgba(0,0,0,.32),
    0 0 18px rgba(230,0,0,.08),
    inset 0 0 0 1px rgba(255,255,255,.025) !important;
}

/* Carte information : volontairement plus accentuée en glow rouge */
.egh-info-card {
  border: 2px solid rgba(255,30,30,.68);
  background:
    radial-gradient(circle at 50% 0%, rgba(180,0,0,.16), transparent 58%),
    rgba(5,5,5,.88);
  box-shadow:
    0 0 0 1px rgba(255,50,50,.08),
    0 0 26px rgba(230,0,0,.22),
    0 14px 38px rgba(0,0,0,.34),
    inset 0 0 22px rgba(230,0,0,.07);
  text-align: center;
}
.egh-info-card h3 {
  margin-top: 0 !important;
}
.egh-info-card p {
  margin-bottom: 0;
}

/* On réduit le halo décoratif historique : plus premium, moins chargé. */
.location::before,
.faq::before,
.eh-card::before {
  inset: -8px !important;
  filter: blur(12px) !important;
  opacity: .42 !important;
}
.location:hover,
.faq:hover,
.eh-card:hover {
  border-color: rgba(255,40,40,.74) !important;
  box-shadow:
    0 14px 38px rgba(0,0,0,.34),
    0 0 22px rgba(230,0,0,.14),
    inset 0 0 0 1px rgba(255,255,255,.035) !important;
}

/* Accueil */
.egh-home {
  width: min(100%, 1080px);
  max-width: 1080px !important;
}
.egh-home .egh-hero-title {
  max-width: 920px;
}
.egh-home .egh-hero-card {
  max-width: 900px;
  font-size: clamp(17px, 1.8vw, 20px);
}
.egh-city-picker {
  width: min(100%, 900px);
  margin-left: auto !important;
  margin-right: auto !important;
}
.egh-city-picker > a {
  min-width: 170px;
}

/* Pages locales */
.egh-local-page {
  width: min(100%, 1040px);
  margin: 0 auto;
}
.egh-local-page > h1 {
  max-width: 920px;
}
.egh-local-page .anchor-buttons {
  width: min(100%, 920px);
  margin-left: auto;
  margin-right: auto;
}
.egh-local-page .egh-info-card {
  margin-top: 30px;
  margin-bottom: 32px;
}

/* Liens / boutons : complète B009 */
a.btn,
a.anchor-button,
a.gift-button,
a.gift-shop-button,
a.egh-btn,
.egh-contact__home,
.wpforms-submit,
button.wpforms-submit {
  min-height: 48px;
  border-radius: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .035em !important;
}
a.gift-shop-button {
  width: min(100%, 560px);
  margin: 10px auto;
  padding: .9em 1.25em;
  border: 2px solid var(--eh-accent) !important;
  background: linear-gradient(180deg, rgba(170,0,0,.25), rgba(40,0,0,.18)) !important;
  color: #ffd1d1 !important;
  box-shadow: inset 0 0 10px rgba(230,0,0,.25), 0 0 14px rgba(230,0,0,.12);
  text-decoration: none !important;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gift-shop-buttons {
  display: grid;
  gap: 10px;
  justify-items: center;
}

/* Images : aucune déformation et aucun crop forcé */
.location a.image-link,
.location > a {
  width: min(100%, 720px);
  max-width: 720px;
}
.location img,
.egh-local-page img,
.egh-home img {
  max-width: 100%;
}
.location img {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center !important;
  aspect-ratio: auto !important;
}
.location img:hover {
  transform: translateY(-2px) !important;
  filter: brightness(1.035) contrast(1.025) !important;
}

/* À propos */
.egh-about {
  width: min(100%, 960px);
  margin: 0 auto;
}
.egh-about-section {
  text-align: center;
}
.egh-about-section h2 {
  margin-top: 0 !important;
}

/* Documents FAQ / conditions */
.egh-document-panel {
  width: min(100%, 900px);
}
.egh-document-panel > h1:first-child {
  margin-top: 0 !important;
}
.egh-document-panel ul {
  width: min(100%, 760px);
  margin-left: auto;
  margin-right: auto;
}

/* Contact + WPForms */
.egh-contact {
  width: min(100%, 900px);
  text-align: center;
}
.egh-contact__title {
  margin-top: 0 !important;
}
.egh-contact__form {
  margin-top: 28px;
  padding: clamp(16px, 3vw, 28px);
  border: 1px solid rgba(255,40,40,.38);
  border-radius: 14px;
  background: rgba(255,255,255,.035);
}
.egh-contact .wpforms-container {
  margin: 0 !important;
}
.egh-contact .wpforms-field-label,
.egh-contact .wpforms-field-sublabel {
  color: #fff !important;
}
.egh-contact input,
.egh-contact textarea,
.egh-contact select {
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 10px !important;
  background: #111 !important;
  color: #fff !important;
  box-shadow: none !important;
}
.egh-contact input:focus,
.egh-contact textarea:focus,
.egh-contact select:focus {
  border-color: rgba(255,40,40,.8) !important;
  box-shadow: 0 0 0 3px rgba(230,0,0,.15) !important;
}
.egh-contact .wpforms-submit,
.egh-contact button.wpforms-submit {
  padding: 0 24px !important;
  border: 2px solid var(--eh-accent) !important;
  background: linear-gradient(180deg, rgba(190,0,0,.34), rgba(80,0,0,.24)) !important;
  color: #fff !important;
}

/* Footer EGH */
footer.site-footer {
  display: none !important;
}
.egh-site-footer {
  position: relative;
  z-index: 5;
  margin-top: 64px;
  border-top: 1px solid rgba(230,0,0,.45);
  background:
    radial-gradient(circle at 50% 0%, rgba(160,0,0,.14), transparent 48%),
    rgba(3,3,3,.95);
  box-shadow: 0 -12px 34px rgba(0,0,0,.30);
}
.egh-site-footer__inner {
  width: min(100% - 32px, 1080px);
  margin: 0 auto;
  padding: 38px 0 28px;
}
.egh-site-footer__brand {
  display: grid;
  gap: 6px;
  margin-bottom: 24px;
  text-align: center;
}
.egh-site-footer__brand strong {
  color: #fff;
  font-size: 22px;
}
.egh-site-footer__brand span {
  color: var(--egh-muted);
  font-size: 14px;
}
.egh-site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px 18px;
}
.egh-site-footer__nav a {
  color: rgba(255,255,255,.82) !important;
  text-decoration: none !important;
  font-weight: 650;
  font-size: 14px;
}
.egh-site-footer__nav a:hover,
.egh-site-footer__nav a:focus-visible {
  color: #ff6868 !important;
  text-decoration: underline !important;
  text-underline-offset: 4px;
}
.egh-site-footer__legal {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.07);
  color: rgba(255,255,255,.52);
  font-size: 13px;
  text-align: center;
}

/* CTA réservation mobile fixe */
.egh-mobile-cta {
  display: none;
}
@media (max-width: 960px) {
  body.egh-has-mobile-cta {
    padding-bottom: 82px;
  }
  .egh-mobile-cta {
    position: fixed;
    z-index: 99980;
    left: max(10px, env(safe-area-inset-left));
    right: max(10px, env(safe-area-inset-right));
    bottom: max(10px, env(safe-area-inset-bottom));
    display: block;
    pointer-events: none;
  }
  .egh-mobile-cta__inner {
    width: min(100%, 520px);
    margin: 0 auto;
    padding: 7px;
    border: 1px solid rgba(255,40,40,.48);
    border-radius: 15px;
    background: rgba(4,4,4,.92);
    box-shadow: 0 8px 30px rgba(0,0,0,.48), 0 0 20px rgba(230,0,0,.13);
    backdrop-filter: blur(10px);
    pointer-events: auto;
  }
  .egh-mobile-cta .egh-btn {
    width: 100%;
    margin: 0 !important;
  }
  body.egh-has-mobile-cta #back-to-top {
    bottom: 92px !important;
  }

  /* Sur téléphone : moins de blur/halo = plus fluide */
  body::after {
    backdrop-filter: none !important;
    opacity: .20 !important;
  }
  .location,
  .faq,
  .eh-card,
  .egh-panel,
  .egh-document-panel,
  .egh-contact,
  .egh-info-card {
    backdrop-filter: none !important;
  }
  .location::before,
  .faq::before,
  .eh-card::before {
    filter: blur(8px) !important;
    opacity: .28 !important;
  }

  .egh-info-card {
    padding: 18px 14px;
    box-shadow:
      0 0 0 1px rgba(255,50,50,.08),
      0 0 18px rgba(230,0,0,.18),
      0 10px 28px rgba(0,0,0,.30) !important;
  }
}

@media (max-width: 640px) {
  .site-content h1,
  .entry-content h1 {
    font-size: clamp(30px, 9vw, 42px) !important;
  }
  .site-content h2,
  .entry-content h2 {
    font-size: clamp(24px, 7vw, 32px) !important;
  }
  .egh-panel,
  .egh-document-panel,
  .egh-contact,
  .egh-info-card,
  .egh-about-section {
    margin: 20px auto;
    padding: 18px 14px;
  }
  .egh-site-footer__inner {
    width: min(100% - 24px, 1080px);
    padding-top: 30px;
  }
  .egh-site-footer__nav {
    gap: 8px 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .location img:hover {
    transform: none !important;
  }
}

/* EGH-B010-V2 — le CTA mobile disparaît dès l'arrivée dans la zone réservation. */
.egh-mobile-cta {
  transition: opacity .18s ease, transform .18s ease, visibility .18s linear;
}
.egh-mobile-cta.is-hidden {
  opacity: 0;
  visibility: hidden;
  transform: translateY(18px);
  pointer-events: none !important;
}



/* Navigation identique sur les quatre pages locales. */
.egh-local-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.egh-local-nav .anchor-button {
  margin: 0 !important;
}
@media (max-width: 640px) {
  .egh-local-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }
  .egh-local-nav .anchor-button {
    width: 100%;
    min-width: 0;
  }
}
@media (max-width: 390px) {
  .egh-local-nav {
    grid-template-columns: 1fr;
  }
}
/* =======================================================
   EGH-B011-V1 — SEO / CONTENU / FINITIONS
======================================================= */

/* Bouton cadeau accueil : parfaitement centré sur desktop et mobile. */
.egh-home > .gift-button,
.egh-home .gift-button {
  display: flex !important;
  width: min(100%, 720px) !important;
  max-width: 720px !important;
  margin: 18px auto 24px !important;
  align-items: center;
  justify-content: center;
  text-align: center;
}

/* Avis vérifiés : aucune citation écrite en dur, accès direct aux avis Google réels. */
.egh-verified-reviews {
  width: min(100%, 860px);
  margin: 30px auto;
  padding: 22px 18px;
  border: 1px solid rgba(230,0,0,.48);
  border-radius: var(--egh-radius);
  background:
    radial-gradient(circle at 50% 0%, rgba(160,0,0,.12), transparent 58%),
    rgba(6,6,6,.80);
  box-shadow: 0 10px 30px rgba(0,0,0,.28), 0 0 18px rgba(230,0,0,.08);
  text-align: center;
}
.egh-verified-reviews h3 {
  margin-top: 0 !important;
}
.egh-verified-reviews p {
  margin-bottom: 16px;
  color: var(--egh-muted);
}

/* Maillage interne entre villes. */
.egh-related-cities {
  width: min(100%, 900px);
  margin: 34px auto;
  padding: 22px 18px;
  border-radius: var(--egh-radius);
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.025);
  text-align: center;
}
.egh-related-cities h3 {
  margin-top: 0 !important;
}
.egh-related-cities__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}
.egh-related-cities__links .egh-btn {
  margin: 0 !important;
}

/* Résultat tarifaire annoncé proprement aux lecteurs d'écran. */
.egh-pricing__result[role="status"] {
  outline: none;
}

/* Focus clavier plus visible sans changer le design. */
.egh-local-nav a:focus-visible,
.egh-related-cities a:focus-visible,
.egh-verified-reviews a:focus-visible,
.egh-pricing-module a:focus-visible {
  outline: 3px solid rgba(255,255,255,.92) !important;
  outline-offset: 3px !important;
}

@media (max-width: 640px) {
  .egh-home > .gift-button,
  .egh-home .gift-button {
    width: 100% !important;
    max-width: 100% !important;
  }

  .egh-related-cities__links {
    display: grid;
    grid-template-columns: 1fr;
  }

  .egh-related-cities__links .egh-btn,
  .egh-verified-reviews .egh-btn {
    width: 100%;
  }
}
/* =======================================================
   EGH-B011-V3 — PAGES VILLES UNIFORMISÉES
   Base réelle : B011-V1 déjà appliqué.
======================================================= */
body.page-id-342 .elementor-widget-google_maps,
body.page-id-346 .elementor-widget-google_maps {
  display: none !important;
}

.egh-section-anchor {
  position: relative;
  top: -90px;
  visibility: hidden;
  height: 0;
}

.egh-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0 20px;
  text-align: left;
}
.egh-info-item {
  min-width: 0;
  padding: 14px 15px;
  border: 1px solid rgba(255,45,45,.24);
  border-radius: 12px;
  background: rgba(255,255,255,.035);
}
.egh-info-item span {
  display: block;
  margin-bottom: 5px;
  color: #ff8a8a;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.egh-info-item strong {
  display: block;
  color: #fff;
  font-size: 15px;
  line-height: 1.45;
}
.egh-info-map {
  margin: 4px auto 0 !important;
}

.egh-scenario-image {
  width: min(100%, 720px);
  margin: 24px auto 30px;
  text-align: center;
}
.egh-scenario-image a {
  display: inline-block;
  max-width: 100%;
}
.egh-scenario-image img {
  width: min(100%, 620px) !important;
  max-width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  aspect-ratio: auto !important;
}

.egh-trustindex-reviews {
  width: min(100%, 920px);
  margin: 34px auto;
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid rgba(230,0,0,.48);
  border-radius: var(--egh-radius);
  background:
    radial-gradient(circle at 50% 0%, rgba(160,0,0,.12), transparent 58%),
    rgba(6,6,6,.80);
  box-shadow: 0 12px 34px rgba(0,0,0,.30), 0 0 20px rgba(230,0,0,.08);
  text-align: center;
}
.egh-trustindex-reviews h3 {
  margin-top: 0 !important;
}
.egh-trustindex-reviews > p {
  margin-bottom: 18px;
  color: var(--egh-muted);
}

.egh-booking-intro {
  width: min(100%, 900px);
  margin: 34px auto 20px;
  padding: 22px 18px;
  border-radius: var(--egh-radius);
  border: 1px solid rgba(230,0,0,.46);
  background: rgba(8,8,8,.70);
  text-align: center;
}
.egh-booking-intro h3 {
  margin-top: 0 !important;
}
.egh-booking-intro .egh-btn {
  margin-bottom: 0 !important;
}

@media (max-width: 680px) {
  .egh-info-grid {
    grid-template-columns: 1fr;
    gap: 9px;
  }
  .egh-info-item {
    padding: 13px 12px;
  }
  .egh-trustindex-reviews,
  .egh-booking-intro {
    padding: 18px 13px;
  }
}
/* =======================================================
   EGH-B012-V1 — IMAGES DES 4 CENTRES SUR L'ACCUEIL
   Riddle Room sert de ratio de référence.
======================================================= */

.egh-home .location > a.egh-home-image-frame {
  display: block !important;
  width: min(100%, 720px) !important;
  max-width: 720px !important;
  margin: 0 auto 18px !important;
  overflow: hidden;
  border-radius: 12px;
  background: #050505;
  aspect-ratio: var(--egh-home-location-ratio, auto);
}

.egh-home .location > a.egh-home-image-frame img.egh-home-location-image {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  object-fit: cover !important;
  transition: transform .20s ease, filter .20s ease;
}

/* Riddle Room : l'information importante est en bas. */
.egh-home #nice img.egh-home-location-image {
  object-position: 50% 100% !important;
}

/* Heyou / Aenigma / I LOCK U : l'information importante est en haut. */
.egh-home #lecannet img.egh-home-location-image,
.egh-home #toulon img.egh-home-location-image,
.egh-home #toulouse img.egh-home-location-image {
  object-position: 50% 0% !important;
}

/* Si le recadrage latéral serait trop important, le JS passe automatiquement
   l'image en "contain" : priorité au logo/texte plutôt qu'à l'uniformité forcée. */
.egh-home img.egh-home-location-image[data-egh-fit="contain"] {
  object-fit: contain !important;
}

@media (max-width: 640px) {
  .egh-home .location > a.egh-home-image-frame {
    width: 100% !important;
  }
}
/* =======================================================
   EGH-B013-V1 — IMAGES PLUS GRANDES + GALERIE UNIFORME
======================================================= */

/*
 * Accueil :
 * l'ancien affichage historique était autour de 70 %.
 * Le cadre passe réellement à 100 % de la largeur disponible,
 * ce qui représente environ 2x la surface (1 / 0,70² ≈ 2,04)
 * sans dépasser la largeur physique de l'écran.
 */
.egh-home .location > a.egh-home-image-frame {
  width: 100% !important;
  max-width: 840px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Les classes étant maintenant présentes directement dans le HTML,
   Optimole connaît la taille finale plus tôt et évite de partir d'un
   petit conteneur avant agrandissement. */
.egh-home .location > a.egh-home-image-frame img.egh-home-location-image {
  width: 100% !important;
  max-width: 100% !important;
}

/* Mobile : on utilise pratiquement toute la largeur de l'écran. */
@media (max-width: 640px) {
  .egh-home .location {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .egh-home .location > a.egh-home-image-frame {
    width: calc(100% + 2px) !important;
    max-width: none !important;
  }
}

/* =======================================================
   PHOTOS & VIDÉOS — page #512
   Même cadre, même taille, centrage systématique.
======================================================= */

body.page-id-512 .elementor-element-fa74760 {
  width: min(100%, 1040px);
  margin-left: auto;
  margin-right: auto;
}

body.page-id-512 .elementor-element-fa74760 .elementor-image-carousel-wrapper {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto;
}

body.page-id-512 .elementor-element-fa74760 .swiper-slide {
  box-sizing: border-box;
  padding: 7px;
}

body.page-id-512 .elementor-element-fa74760 .swiper-slide-inner {
  width: 100%;
  aspect-ratio: 1 / 1;
  display: flex !important;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(230,0,0,.38);
  background: #050505;
  box-shadow:
    0 12px 28px rgba(0,0,0,.28),
    0 0 16px rgba(230,0,0,.08);
}

body.page-id-512 .elementor-element-fa74760 img.swiper-slide-image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  aspect-ratio: auto !important;
}

/* La vidéo suit la même largeur visuelle que la galerie. */
body.page-id-512 .elementor-element-323bbdd {
  width: min(100%, 960px);
  margin: 30px auto 0;
}
body.page-id-512 .elementor-element-323bbdd .e-hosted-video,
body.page-id-512 .elementor-element-323bbdd video.elementor-video {
  width: 100% !important;
  max-width: 960px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border-radius: 14px;
  overflow: hidden;
}

/* Sur smartphone : une seule grande image à la fois. */
@media (max-width: 767px) {
  body.page-id-512 .elementor-element-fa74760 {
    width: 100%;
  }

  body.page-id-512 .elementor-element-fa74760 .swiper-slide {
    padding: 4px;
  }

  body.page-id-512 .elementor-element-fa74760 .swiper-slide-inner {
    width: 100%;
    max-width: calc(100vw - 28px);
    margin: 0 auto;
  }
}
/* =======================================================
   EGH-B014-V1 — CORRECTIF PROMO MOBILE
   Base réelle : B013-V1 déjà appliqué.
======================================================= */

@media (max-width: 768px) {
  #promo-dynamique-home .jeudi-promo-image,
  .jeudi-promo-home .jeudi-promo-image {
    aspect-ratio: auto !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  #promo-dynamique-home .jeudi-promo-image img,
  #promo-dynamique-home #promo-img,
  .jeudi-promo-home .jeudi-promo-image img {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 auto !important;
    object-fit: contain !important;
  }

  #promo-dynamique-home .jeudi-promo-text {
    clear: both !important;
    position: relative !important;
    z-index: 3 !important;
    margin-top: 0 !important;
  }
}

@media (max-width: 420px) {
  #promo-dynamique-home .jeudi-promo-image,
  .jeudi-promo-home .jeudi-promo-image {
    min-height: 0 !important;
  }
}


/* =======================================================
   EGH Core v1.2.0 — consolidation des anciens snippets CSS
   Les règles ci-dessous étaient déjà actives via Simple Custom CSS/JS.
   Elles sont intégrées ici pour pouvoir neutraliser ces snippets sans
   modifier le rendu avant désactivation future de l’extension.
======================================================= */

/* Ancien snippet #203 */
body {
  font-family: 'Segoe UI', sans-serif;
  margin: 0;
  padding: 0;
  background-color: #000;
  color: #fff;
}

.container {
  padding: 20px;
}

h1, h2, h3 {
  color: #e60000;
  text-align: center;
}

.button {
  display: inline-block;
  background-color: #e60000;
  color: #fff;
  padding: 10px 20px;
  text-decoration: none;
  border-radius: 5px;
}

@media (max-width: 768px) {
  .container {
    padding: 10px;
  }

  h1 {
    font-size: 24px;
  }
}


/* Ancien snippet #335 */
html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Segoe UI', sans-serif;
  margin: 0;
  padding: 0;
  background-color: #000;
  color: #fff;
  overflow-x: hidden;
}

.container {
  max-width: 960px;
  margin: auto;
  padding: 20px;
}

h1, h2, h3 {
  color: #e60000;
  text-align: center;
  margin: 10px 0;
}

p {
  line-height: 1.6;
}

#audio-control {
  position: fixed;
  top: 12px;
  right: 12px;
  background-color: rgba(230, 0, 0, 0.85);
  color: white;
  border: none;
  border-radius: 50%;
  padding: 10px;
  font-size: 1.2rem;
  z-index: 9999;
  box-shadow: 0 0 10px rgba(255, 0, 0, 0.6);
  cursor: pointer;
  transition: transform 0.2s ease;
}

#audio-control:hover {
  transform: scale(1.1);
}

.anchor-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin: 30px 0;
}

.anchor-button {
  display: inline-block;
  background-color: #e60000;
  color: #fff;
  padding: 12px 24px;
  border: none;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  box-shadow: 0 6px #a30000;
  transition: all 0.3s ease-in-out;
  cursor: pointer;
}

.anchor-button:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 10px 20px rgba(255, 0, 0, 0.6);
  background: linear-gradient(45deg, #ff1a1a, #e60000);
}

.location {
  margin: 50px 0;
  text-align: center;
}

.location img {
  max-width: 100%;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(255, 0, 0, 0.3);
  transition: transform 0.3s, filter 0.3s;
}

.location img:hover {
  transform: scale(1.05);
  filter: brightness(1.1) contrast(1.2);
}

.btn {
  display: inline-block;
  background-color: #e60000;
  color: #fff;
  padding: 12px 24px;
  margin-top: 15px;
  border: none;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  box-shadow: 0 6px #a30000;
  transition: all 0.3s ease-in-out;
  cursor: pointer;
}

.btn:hover {
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 10px 20px rgba(255, 0, 0, 0.6);
}

.faq {
  background-color: #111;
  padding: 20px;
  border-radius: 12px;
  margin-top: 40px;
}

@media (max-width: 768px) {
  .anchor-buttons {
    flex-direction: column;
    align-items: center;
  }
}


/* Ancien snippet #811 */
#back-to-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 10000;
  background-color: #e60000;
  color: white;
  padding: 12px 16px;
  border-radius: 50%;
  text-decoration: none;
  font-size: 20px;
  box-shadow: 0 0 15px rgba(255, 0, 0, 0.6);
  transition: opacity 0.3s ease, transform 0.3s ease;
  opacity: 0;
  pointer-events: none;
}
#back-to-top.show {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
}
#back-to-top:hover {
  transform: scale(1.2);
  background: linear-gradient(45deg, #ff1a1a, #e60000);
}


/* Ancien snippet #908 */
/* ============================= */ /* CONTENEUR DES BOUTONS (ACCUEIL) */ /* ============================= */ .anchor-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 30px 0; position: relative; z-index: 1; } /* ============================= */ /* BASE COMMUNE À TOUS LES BOUTONS (ACCUEIL) */ /* ============================= */ .anchor-button, .gift-button { position: relative; display: inline-block; padding: 14px 26px; color: #fff !important; text-decoration: none; font-weight: 700; letter-spacing: 0.3px; text-align: center; cursor: pointer; /* IMPORTANT : empêche les chevauchements de hitbox */ isolation: isolate; /* Effet 3D commun */ box-shadow: 0 4px 0 rgba(0,0,0,0.65), 0 10px 22px rgba(0,0,0,0.55); transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease; z-index: 2; } /* ============================= */ /* FUMÉE / HALO + PULSATION (ACCUEIL) */ /* ============================= */ .anchor-button::before, .anchor-button::after, .gift-button::before, .gift-button::after { content: ""; position: absolute; inset: -55%; border-radius: inherit; z-index: -1; filter: blur(30px); animation: pulseSmokeStrong 4s ease-in-out infinite; /* 🔥 CORRECTION HITBOX */ pointer-events: none; } /* Couche principale de fumée */ .anchor-button::before, .gift-button::before { opacity: 0.95; } /* Couche secondaire (profondeur) */ .anchor-button::after, .gift-button::after { opacity: 0.55; filter: blur(45px); animation-duration: 5.5s; } /* ============================= */ /* HOVER / ACTIVE COMMUNS (ACCUEIL) */ /* ============================= */ .anchor-button:hover, .gift-button:hover { transform: translateY(-3px); box-shadow: 0 6px 0 rgba(0,0,0,0.7), 0 14px 26px rgba(0,0,0,0.7); } .anchor-button:active, .gift-button:active { transform: translateY(3px); box-shadow: 0 2px 0 rgba(0,0,0,0.8), 0 6px 14px rgba(0,0,0,0.8); } /* ============================= */ /* BOUTONS ROUGES (VILLES) */ /* ============================= */ .anchor-button { background: linear-gradient(180deg, #ff1a1a 0%, #e60000 100%); border-radius: 50px; } /* Fumée rouge (ACCUEIL) */ .anchor-button::before, .anchor-button::after { background: radial-gradient( circle, rgba(255, 40, 40, 0.75) 0%, rgba(255, 40, 40, 0.45) 30%, rgba(255, 40, 40, 0.25) 55%, rgba(255, 40, 40, 0.0) 75% ); } /* ============================= */ /* BOUTON CADEAU NOËL (VERT – ACCUEIL) */ /* ============================= */ .gift-button { display: block; flex: 0 0 100%; max-width: 560px; margin: 0 auto 18px auto; padding: 20px 30px; font-size: 20px; font-weight: 800; background: linear-gradient(180deg, #1a6b4f 0%, #0f3d2e 100%); border-radius: 10px; } /* Fumée verte (ACCUEIL) */ .gift-button::before, .gift-button::after { background: radial-gradient( circle, rgba(40, 200, 160, 0.75) 0%, rgba(40, 200, 160, 0.45) 30%, rgba(40, 200, 160, 0.25) 55%, rgba(40, 200, 160, 0.0) 75% ); } /* ============================= */ /* ANIMATION FUMÉE / PULSATION (ACCUEIL) */ /* ============================= */ @keyframes pulseSmokeStrong { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.12); opacity: 1; } 100% { transform: scale(1); opacity: 0.6; } } /* ============================= */ /* MOBILE – BOUTONS ACCUEIL */ /* ============================= */ @media (max-width: 768px) { .anchor-buttons { flex-direction: column; align-items: center; } .gift-button, .anchor-button { display: block; width: 100%; max-width: 340px; } .gift-button { font-size: 17px; padding: 16px 22px; } .anchor-button { font-size: 15px; padding: 12px 20px; } /* Fumée plus contenue sur mobile */ .anchor-button::before, .anchor-button::after, .gift-button::before, .gift-button::after { inset: -30%; filter: blur(20px); } .anchor-button::before, .gift-button::before { opacity: 0.55; animation-duration: 6s; } .anchor-button::after, .gift-button::after { opacity: 0.3; animation-duration: 8s; filter: blur(30px); } }

/* Ancien snippet #1014 */
/* ===================================================== */
/* BOUTONS NEON (ROUGE HORREUR) - UNIQUEMENT .neon-btn     */
/* ===================================================== */

.neon-btn {
  --glow: rgba(255, 45, 45, 0.95);
  --glow-soft: rgba(255, 0, 0, 0.35);
  --bg: rgba(25, 0, 0, 0.92);

  border: 2px solid var(--glow) !important;
  background: var(--bg) !important;
  color: #fff !important;

  padding: 14px 26px !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  border-radius: 16px !important;

  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .5ch;

  cursor: pointer !important;
  position: relative !important;

  /* anti “voile rouge” / recouvrement */
  isolation: isolate !important;
  z-index: 0 !important;

  box-shadow:
    0 0 10px 2px var(--glow),
    0 0 22px 6px var(--glow-soft),
    inset 0 0 10px rgba(255,0,0,0.25) !important;

  text-shadow: 0 0 10px rgba(255,0,0,0.35) !important;
  transition: transform .18s ease, box-shadow .22s ease, background .22s ease !important;
}

/* reflet discret SOUS le bouton, derrière */
.neon-btn::after {
  content: "";
  position: absolute;
  left: 0;
  top: 115%;
  width: 100%;
  height: 70%;
  pointer-events: none;

  background: rgba(255,0,0,0.22);
  filter: blur(18px);
  opacity: 0.35;
  transform: perspective(1.2em) rotateX(35deg) scale(1, .55);
  z-index: -1;
}

.neon-btn:hover {
  transform: translateY(-2px) !important;
  background: rgba(60, 0, 0, 0.95) !important;
  box-shadow:
    0 0 12px 3px var(--glow),
    0 0 26px 10px rgba(255,0,0,0.40),
    inset 0 0 12px rgba(255,0,0,0.30) !important;
}

.neon-btn:active {
  transform: translateY(1px) !important;
}

.neon-btn:focus-visible {
  outline: 2px solid rgba(255,255,255,0.9) !important;
  outline-offset: 4px !important;
}

/* ===================================================== */
/* VARIANTES OPTIONNELLES                                 */
/* ===================================================== */

/* bouton large (cadeau) */
.neon-btn--wide {
  width: 100%;
  max-width: 560px;
  margin: 0 auto 18px auto;
  padding: 18px 28px !important;
  font-size: 18px !important;
}

/* conteneur de boutons (si tu l’utilises) */
.anchor-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin: 30px 0;
}

/* Mobile */
@media (max-width: 768px) {
  .anchor-buttons {
    flex-direction: column;
    align-items: center;
  }

  .neon-btn {
    width: 100%;
    max-width: 340px;
    padding: 13px 18px !important;
    font-size: 14px !important;
  }

  .neon-btn--wide {
    max-width: 340px;
    font-size: 16px !important;
  }
}

/* ===================================================== */
/* AUDIO + BACK TO TOP (mini, indépendants du neon)       */
/* ===================================================== */

#audio-control {
  position: fixed;
  top: 12px;
  right: 12px;
  background: rgba(230, 0, 0, 0.85);
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 10px 12px;
  font-size: 18px;
  z-index: 99999;
  cursor: pointer;
  box-shadow: 0 0 10px rgba(255,0,0,0.5);
}

#back-to-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: rgba(230, 0, 0, 0.85);
  color: #fff;
  border-radius: 999px;
  padding: 12px 14px;
  font-size: 18px;
  z-index: 99999;
  text-decoration: none;
  opacity: 0;
  pointer-events: none;
  transform: scale(0.95);
  transition: opacity .25s ease, transform .25s ease;
  box-shadow: 0 0 10px rgba(255,0,0,0.5);
}

#back-to-top.show {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
}


/* Performance mobile : la pluie reste visible mais statique, afin d'éviter
   l'animation coûteuse de background-position sur les appareils étroits. */
@media (max-width: 768px), (prefers-reduced-motion: reduce) {
  body::before {
    animation: none !important;
  }

  body::after {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}


/* B005 — Complianz : suppression de l'animation basée sur bottom,
   identifiée par Lighthouse comme animation non composée/CLS. */
#cmplz-cookiebanner-container .cmplz-cookiebanner,
.cmplz-cookiebanner {
  animation: none !important;
  -webkit-animation: none !important;
}

/* Le logo garde sa place pendant son chargement/optimisation. */
.site-logo img,
.custom-logo-link img,
img.custom-logo,
img.neve-site-logo {
  display: block;
  height: auto;
}


/* =======================================================
   B006 — Stabilité mobile, accessibilité et rendu différé
======================================================= */

/* Le bouton natif Neve fait doublon avec le contrôle EGH. */
#scroll-to-top.scroll-to-top {
  display: none !important;
}

/* Le bloc d'avis est très bas dans la page : Chrome peut différer son rendu
   sans modifier son contenu ni empêcher son chargement à l'approche. */
body.home .elementor-element-843ad1e {
  content-visibility: visible;
  contain: none;
}

/* Placeholder léger avant activation du calendrier 4escape. */
.egh-booking-deferred {
  min-height: 150px;
  display: grid;
  align-items: center;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 16px;
  background: linear-gradient(180deg,rgba(18,18,22,.72),rgba(6,6,8,.72));
}
.egh-booking-deferred .egh-booking-loading {
  margin: 0;
}

/* Complianz reste un overlay fixe : on évite les changements de géométrie
   et on limite son impact de peinture pendant son apparition. */
#cmplz-cookiebanner-container .cmplz-cookiebanner,
.cmplz-cookiebanner {
  position: fixed !important;
  contain: layout paint;
  transform: translateZ(0);
  will-change: opacity, transform;
}

/* Ratio connu du logo : réserve l'espace même avant la réponse Optimole. */
.site-header .custom-logo,
.site-header .site-logo img,
.site-header .brand img,
.custom-logo-link img,
img.custom-logo,
img.neve-site-logo {
  aspect-ratio: 200 / 227;
  object-fit: contain;
}

/* Les textes secondaires restent lisibles sur le fond noir. */
.egh-v2-section-head p,
.egh-v2-feature span,
.egh-v2-reviews-intro span,
.egh-page-hero__lede,
.egh-doc-hero p,
.egh-site-footer__brand span {
  color: #d5d5db !important;
}

@media (max-width: 768px) {
  /* Cibles tactiles >= 44 px sur les zones de navigation et consentement. */
  .header-menu-sidebar a,
  .header-menu-sidebar button,
  #cmplz-cookiebanner-container button,
  #cmplz-cookiebanner-container .cmplz-btn,
  #audio-control,
  #back-to-top {
    min-width: 44px;
    min-height: 44px;
  }

  body.home .elementor-element-843ad1e {
    content-visibility: auto;
    contain-intrinsic-size: 980px;
  }
}

/* B007 — stabilité desktop */
@media (min-width:769px){
  #cmplz-cookiebanner-container .cmplz-cookiebanner,.cmplz-cookiebanner{will-change:auto!important;}
}
footer.site-footer,.site-footer .footer--row{display:none!important;}

/* B008 — SEO/UX : fil d'Ariane et liens de conversion partagés. */
.egh-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:7px;width:min(100%,1120px);margin:4px auto 14px;padding:0 2px;color:#bcbcc3;font-size:13px;line-height:1.4}
.egh-breadcrumbs a{color:#f0f0f3!important;text-decoration:none!important;border-bottom:1px solid rgba(255,255,255,.18)}
.egh-breadcrumbs a:hover{color:#ff7777!important;border-color:#ff5555}
.egh-breadcrumbs [aria-current="page"]{color:#ff8a8a;font-weight:800}
.egh-crosslinks{margin:18px 0 0;padding:22px;border:1px solid rgba(230,0,0,.24);border-radius:18px;background:linear-gradient(180deg,rgba(26,10,11,.95),rgba(8,8,10,.97))}
.egh-crosslinks h2,.egh-crosslinks h3{margin:0 0 8px!important;color:#fff!important}
.egh-crosslinks p{margin:0 0 14px!important;color:#d4d4da!important}
.egh-quick-city-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.egh-quick-city-grid a{display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-height:64px;padding:10px 12px!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:13px!important;background:#121216!important;color:#fff!important;font-weight:900!important;text-align:center!important;text-decoration:none!important}
.egh-quick-city-grid a span{display:block;margin-top:3px;color:#ff8a8a;font-size:12px;font-weight:800}
.egh-quick-city-grid a:hover{border-color:#ee2b2b!important;background:#260b0c!important;transform:translateY(-1px)}
@media(max-width:700px){.egh-breadcrumbs{margin-top:2px;padding-inline:4px}.egh-quick-city-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.egh-quick-city-grid a{min-height:56px}}

/* ==========================================================
   B009 — finitions navigation, galerie, 404 et accessibilité
========================================================== */

/* Le footer natif est désormais coupé côté PHP ; ceci reste un filet de sécurité. */
footer.site-footer:not(.egh-site-footer),
.site-footer:not(.egh-site-footer),
.footer-bottom,
.footer--row { display:none !important; }

/* CTA cadeau dans le menu Neve. */
.site-header .egh-menu-gift > a {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:44px !important;
  padding:10px 15px !important;
  border:1px solid rgba(255,70,70,.72) !important;
  border-radius:12px !important;
  background:linear-gradient(180deg,#ed1919,#a90000) !important;
  color:#fff !important;
  font-weight:900 !important;
  box-shadow:0 9px 24px rgba(230,0,0,.22) !important;
}
.site-header .egh-menu-gift > a:hover,
.site-header .egh-menu-gift > a:focus-visible {
  transform:translateY(-1px);
  border-color:#ff7777 !important;
  background:linear-gradient(180deg,#ff2828,#c20000) !important;
}
@media(max-width:960px){
  .header-menu-sidebar .egh-menu-gift > a,
  .site-header .egh-menu-gift > a{
    width:100% !important;
    margin-top:8px !important;
  }
}

/* Focus clavier global lisible sans dénaturer la DA. */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline:3px solid #ff5a5a !important;
  outline-offset:3px !important;
}

/* Galerie harmonisée avec les autres pages EGH. */
body.page-id-512 .neve-main { padding-top:0 !important; }
.egh-gallery-intro,
.egh-404 {
  width:min(1180px,calc(100% - 32px));
  margin:28px auto 24px;
}
.egh-gallery-intro .egh-breadcrumbs {
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 12px;
  color:#aaaab2;
  font-size:14px;
}
.egh-gallery-intro .egh-breadcrumbs a { color:#f3f3f5; text-decoration:none; }
.egh-gallery-intro__panel,
.egh-404__panel {
  position:relative;
  overflow:hidden;
  padding:clamp(30px,5vw,62px);
  border:1px solid rgba(230,0,0,.30);
  border-radius:24px;
  background:radial-gradient(circle at 82% 12%,rgba(230,0,0,.22),transparent 30%),linear-gradient(135deg,#101014,#050506 72%);
  box-shadow:0 28px 70px rgba(0,0,0,.42),0 0 28px rgba(230,0,0,.06);
}
.egh-gallery-intro__panel h1,
.egh-404__panel h1 {
  max-width:900px;
  margin:0 0 14px !important;
  color:#fff !important;
  font-size:clamp(36px,5vw,64px) !important;
  line-height:1.02 !important;
  letter-spacing:-.035em !important;
  text-wrap:balance;
}
.egh-gallery-intro__panel > p:last-of-type,
.egh-404__panel > p:last-of-type {
  max-width:820px;
  margin:0 !important;
  color:#d7d7dd !important;
  font-size:clamp(17px,1.7vw,20px) !important;
  line-height:1.65 !important;
}
.egh-gallery-intro__actions,
.egh-404__actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}
.egh-gallery-intro__actions a,
.egh-404__actions a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:12px 18px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:13px;
  background:#121216;
  color:#fff !important;
  font-weight:900;
  text-decoration:none !important;
}
.egh-gallery-intro__actions a:first-child,
.egh-404__actions a:first-child {
  border-color:#ed1c24;
  background:linear-gradient(180deg,#ed1919,#a90000);
}

/* Le carrousel et la vidéo deviennent de vraies cartes de contenu. */
body.page-id-512 .elementor-widget-image-carousel,
body.page-id-512 .elementor-widget-video {
  width:min(1180px,calc(100% - 32px));
  margin:0 auto 22px !important;
  padding:clamp(14px,2vw,22px);
  border:1px solid rgba(255,255,255,.09);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(18,18,22,.98),rgba(8,8,10,.98));
  box-shadow:0 18px 44px rgba(0,0,0,.28);
}
body.page-id-512 .elementor-widget-image-carousel img { border-radius:14px; }
body.page-id-512 .elementor-widget-video .elementor-wrapper { overflow:hidden; border-radius:14px; background:#000; }

/* 404 centrée et compacte. */
.egh-404 { min-height:58vh; display:grid; align-items:center; }
.egh-404__panel { text-align:center; }
.egh-404__panel h1,
.egh-404__panel > p:last-of-type { margin-left:auto !important; margin-right:auto !important; }
.egh-404__actions { justify-content:center; }

/* Footer final : respiration et liens de conversion. */
.egh-site-footer__nav a { min-height:38px; display:inline-flex; align-items:center; }
.egh-site-footer__nav a[href*="cadeau-original"] { color:#ff8a8a !important; font-weight:900; }

@media(max-width:700px){
  .egh-gallery-intro,.egh-404{width:min(100% - 20px,1180px);margin-top:16px}
  .egh-gallery-intro__panel,.egh-404__panel{padding:30px 20px;border-radius:18px}
  .egh-gallery-intro__actions a,.egh-404__actions a{width:100%}
  body.page-id-512 .elementor-widget-image-carousel,
  body.page-id-512 .elementor-widget-video{width:min(100% - 20px,1180px);padding:10px;border-radius:16px}
}

@media(prefers-reduced-motion:reduce){
  .site-header .egh-menu-gift > a { transform:none !important; transition:none !important; }
}

