/* Aenigma Safe Site Core 1.15.0
   Optimisations sans changement de palette ni de charte graphique. */

.ssu-hero-media {
  overflow: hidden;
}

.ssu-hero-media__img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Lecteur YouTube léger : même ratio, aucun JS YouTube avant le clic. */
.ssu-youtube-lite {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: inherit;
  background: #030810;
  contain: layout paint;
}

.ssu-youtube-lite__button {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: #030810;
  cursor: pointer;
  overflow: hidden;
  color: inherit;
}

.ssu-youtube-lite__button img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: .82;
  transition: opacity .2s ease, transform .2s ease;
}

.ssu-youtube-lite__button:hover img,
.ssu-youtube-lite__button:focus-visible img {
  opacity: .95;
  transform: scale(1.015);
}

.ssu-youtube-lite__play {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 68px;
  height: 48px;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(120,220,255,.58);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(8,18,28,.94), rgba(3,8,16,.98));
  box-shadow: 0 0 24px rgba(120,220,255,.18), 0 10px 24px rgba(0,0,0,.35);
}

.ssu-youtube-lite__play::after {
  content: "";
  position: absolute;
  left: 28px;
  top: 14px;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 16px solid #b8eeff;
}

.ssu-youtube-lite__button:focus-visible {
  outline: 2px solid #b8eeff;
  outline-offset: -3px;
}

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

/* Le calculateur garde exactement le même rendu sans listener resize JS. */
@media (max-width: 1100px) {
  .rr-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 768px) {
  .rr-pricing-grid { grid-template-columns: 1fr !important; }
}

/* Réserve l'espace des iframes de carte pendant leur chargement différé. */
iframe[data-ssu-map-src] {
  min-height: 260px;
  background: linear-gradient(180deg, rgba(8,18,28,.92), rgba(3,8,16,.96));
}

@media (prefers-reduced-motion: reduce) {
  .ssu-youtube-lite__button img { transition: none; }
}

/* ============================================================
   HEADER + FOOTER AENIGMA
   Copie exacte des règles visuelles auparavant injectées inline.
   Aucune couleur, police, rayon ou effet n'est redessiné en B002.
============================================================ */

header.wp-block-template-part,
footer.wp-block-template-part,
.wp-block-site-title,
.wp-block-site-tagline,
#header,
#footer,
.site-info {
  display: none !important;
}

body {
  padding-top: 92px !important;
}

/* =========================
   HEADER
========================= */
#aenigma-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  z-index: 9999999 !important;

  background:
    linear-gradient(180deg, rgba(5, 11, 20, 0.96), rgba(4, 9, 16, 0.92)) !important;

  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;

  border-bottom: 1px solid rgba(120, 220, 255, 0.16) !important;

  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.28) !important,
    inset 0 -1px 0 rgba(255,255,255,0.03) !important;
}

#aenigma-header::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(120, 220, 255, 0.08), transparent 35%) !important;
  opacity: 1 !important;
}

#aenigma-header,
#aenigma-header * {
  box-sizing: border-box !important;
}

#aenigma-header .inner {
  position: relative !important;
  z-index: 1 !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 14px 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px !important;
}

/* =========================
   LOGO
========================= */
#aenigma-header .logo {
  display: inline-flex !important;
  align-items: center !important;
  text-decoration: none !important;
  line-height: 1 !important;
  flex: 0 0 auto !important;
}

#aenigma-header .logo img {
  height: 48px !important;
  width: auto !important;
  display: block !important;
  filter: brightness(0) invert(1) drop-shadow(0 0 6px rgba(120, 220, 255, 0.42)) !important;
  transition:
    filter 0.25s ease,
    transform 0.25s ease,
    opacity 0.25s ease !important;
  opacity: 0.97 !important;
}

#aenigma-header .logo:hover img {
  filter: brightness(0) invert(1) drop-shadow(0 0 10px rgba(120, 220, 255, 0.72)) !important;
  transform: translateY(-1px) !important;
  opacity: 1 !important;
}

/* =========================
   NAVIGATION
========================= */
#aenigma-header .main-nav {
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  margin-left: auto !important;
}

#aenigma-header .main-nav > a,
#aenigma-header .submenu-toggle {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-height: 40px !important;
  padding: 8px 2px !important;

  color: rgba(255,255,255,0.92) !important;
  text-decoration: none !important;
  font-size: 0.98rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;

  background: transparent !important;
  border: 0 !important;
  cursor: pointer !important;
  font-family: inherit !important;

  transition:
    color 0.22s ease,
    opacity 0.22s ease !important;
}

#aenigma-header .main-nav > a::after,
#aenigma-header .submenu-toggle::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -2px !important;
  height: 2px !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, rgba(120,220,255,0), rgba(120,220,255,0.95), rgba(120,220,255,0)) !important;
  box-shadow: 0 0 10px rgba(120,220,255,0.18) !important;
  transform: scaleX(0) !important;
  transform-origin: center !important;
  transition: transform 0.22s ease !important;
}

#aenigma-header .main-nav > a:hover,
#aenigma-header .submenu-toggle:hover {
  color: #b8eeff !important;
}

#aenigma-header .main-nav > a:hover::after,
#aenigma-header .submenu-toggle:hover::before,
#aenigma-header .has-submenu.open .submenu-toggle::before {
  transform: scaleX(1) !important;
}

/* =========================
   CTA
========================= */
#aenigma-header .main-nav a.cta,
#aenigma-header .main-nav a.gift {
  min-height: 46px !important;
  padding: 12px 18px !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  line-height: 1 !important;
  font-weight: 500 !important;
  letter-spacing: 0.05em !important;
  text-transform: uppercase !important;
  transition:
    transform 0.2s ease,
    border-color 0.24s ease,
    box-shadow 0.24s ease,
    color 0.24s ease,
    background 0.24s ease !important;
}

#aenigma-header .main-nav a.cta::after,
#aenigma-header .main-nav a.gift::after {
  display: none !important;
}

#aenigma-header .main-nav a.cta {
  border: 1px solid rgba(120,220,255,0.70) !important;
  color: #78dcff !important;
  background: linear-gradient(180deg, rgba(8,18,28,0.92), rgba(3,8,16,0.96)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.03) !important,
    0 0 0 1px rgba(120,220,255,0.05) !important,
    0 8px 22px rgba(0,0,0,0.24) !important;
}

#aenigma-header .main-nav a.cta:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(184,238,255,0.96) !important;
  color: #b8eeff !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.05) !important,
    0 0 14px rgba(120,220,255,0.14) !important,
    0 12px 26px rgba(0,0,0,0.28) !important;
}

#aenigma-header .main-nav a.gift {
  border: 1px solid rgba(255,255,255,0.14) !important;
  color: #ffffff !important;
  background: rgba(255,255,255,0.03) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.02) !important,
    0 8px 18px rgba(0,0,0,0.18) !important;
}

#aenigma-header .main-nav a.gift:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(255,255,255,0.28) !important;
  color: #ffffff !important;
  background: rgba(255,255,255,0.05) !important;
  box-shadow:
    0 10px 22px rgba(0,0,0,0.24) !important;
}

/* =========================
   SUBMENU
========================= */
#aenigma-header .has-submenu {
  position: relative !important;
}

#aenigma-header .submenu-toggle::after {
  content: "▾" !important;
  font-size: 0.78em !important;
  margin-left: 8px !important;
  opacity: 0.82 !important;
  transform: translateY(1px) !important;
  transition: transform 0.22s ease, opacity 0.22s ease !important;
}

#aenigma-header .has-submenu.open .submenu-toggle::after,
#aenigma-header .has-submenu:hover .submenu-toggle::after {
  transform: translateY(1px) rotate(180deg) !important;
  opacity: 1 !important;
}

#aenigma-header .submenu {
  display: none !important;
  position: absolute !important;
  top: calc(100% + 14px) !important;
  left: 0 !important;
  min-width: 290px !important;

  background:
    linear-gradient(180deg, rgba(6, 12, 20, 0.98), rgba(4, 9, 16, 0.98)) !important;

  border: 1px solid rgba(120, 220, 255, 0.14) !important;
  border-radius: 16px !important;
  padding: 10px !important;

  box-shadow:
    0 18px 36px rgba(0, 0, 0, 0.34) !important,
    inset 0 0 0 1px rgba(255,255,255,0.02) !important;
}

#aenigma-header .has-submenu:hover .submenu,
#aenigma-header .has-submenu.open .submenu {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

#aenigma-header .submenu a {
  color: rgba(255,255,255,0.92) !important;
  text-decoration: none !important;
  padding: 11px 12px !important;
  border-radius: 12px !important;
  line-height: 1.35 !important;
  font-size: 0.95rem !important;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease !important;
}

#aenigma-header .submenu a:hover {
  background: rgba(120,220,255,0.08) !important;
  color: #b8eeff !important;
  transform: translateX(2px) !important;
}

/* =========================
   BURGER
========================= */
#aenigma-header .burger {
  display: none !important;
  background: linear-gradient(180deg, rgba(8,18,28,0.9), rgba(3,8,16,0.96)) !important;
  border: 1px solid rgba(120,220,255,0.22) !important;
  color: #ffffff !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 14px !important;
  font-size: 1.5rem !important;
  line-height: 1 !important;
  cursor: pointer !important;
  padding: 0 !important;

  box-shadow:
    inset 0 0 12px rgba(120,220,255,0.04) !important,
    0 8px 18px rgba(0,0,0,0.22) !important;

  transition:
    transform 0.2s ease,
    border-color 0.22s ease,
    box-shadow 0.22s ease !important;
}

#aenigma-header .burger:hover {
  transform: translateY(-1px) !important;
  border-color: rgba(184,238,255,0.42) !important;
  box-shadow:
    0 0 14px rgba(120,220,255,0.12) !important,
    0 10px 22px rgba(0,0,0,0.24) !important;
}

/* =========================
   FOOTER
========================= */
#aenigma-footer {
  position: relative !important;
  z-index: 20 !important;
  margin-top: 56px !important;

  background:
    radial-gradient(circle at 20% 0%, rgba(120, 220, 255, 0.06), transparent 34%) !important,
    linear-gradient(180deg, rgba(5, 11, 20, 0.96), rgba(4, 9, 16, 0.99)) !important;

  border-top: 1px solid rgba(120, 220, 255, 0.14) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.02) !important;
}

#aenigma-footer::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: min(1120px, calc(100% - 40px)) !important;
  height: 1px !important;
  background: linear-gradient(
    90deg,
    rgba(120,220,255,0),
    rgba(120,220,255,0.42),
    rgba(120,220,255,0)
  ) !important;
  box-shadow: 0 0 12px rgba(120,220,255,0.10) !important;
  pointer-events: none !important;
}

#aenigma-footer,
#aenigma-footer * {
  box-sizing: border-box !important;
}

#aenigma-footer .inner {
  max-width: 1400px !important;
  margin: 0 auto !important;
  padding: 34px 24px 28px !important;
  display: grid !important;
  grid-template-columns: minmax(280px, 1.2fr) minmax(220px, .9fr) minmax(220px, .9fr) !important;
  gap: 34px !important;
  align-items: start !important;
}

#aenigma-footer .brand,
#aenigma-footer .col-title {
  color: #8fdcff !important;
}

#aenigma-footer .brand {
  font-size: 1.7rem !important;
  font-weight: 600 !important;
  margin-bottom: 14px !important;
  line-height: 1.1 !important;
  text-shadow: 0 0 10px rgba(120,220,255,0.14) !important;
}

#aenigma-footer .col-title {
  font-weight: 600 !important;
  margin-bottom: 14px !important;
  font-size: 1.08rem !important;
  letter-spacing: 0.01em !important;
}

#aenigma-footer p,
#aenigma-footer a {
  color: rgba(255,255,255,0.90) !important;
  text-decoration: none !important;
  line-height: 1.8 !important;
  font-size: 0.98rem !important;
}

#aenigma-footer p {
  max-width: 34ch !important;
  margin: 0 !important;
}

#aenigma-footer .links {
  display: flex !important;
  flex-direction: column !important;
  gap: 9px !important;
}

#aenigma-footer .links a {
  position: relative !important;
  display: inline-block !important;
  width: fit-content !important;
  transition:
    color 0.22s ease,
    transform 0.22s ease,
    opacity 0.22s ease !important;
}

#aenigma-footer .links a:hover {
  color: #b8eeff !important;
  transform: translateX(2px) !important;
}

#aenigma-footer .links a::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -2px !important;
  height: 1px !important;
  background: linear-gradient(
    90deg,
    rgba(120,220,255,0),
    rgba(120,220,255,0.72),
    rgba(120,220,255,0)
  ) !important;
  transform: scaleX(0) !important;
  transform-origin: left center !important;
  transition: transform 0.22s ease !important;
  opacity: 0.9 !important;
}

#aenigma-footer .links a:hover::after {
  transform: scaleX(1) !important;
}

#aenigma-footer .bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding: 16px 24px 20px !important;
  max-width: 1400px !important;
  margin: 0 auto !important;
  color: rgba(255, 255, 255, 0.66) !important;
  font-size: 0.92rem !important;
  line-height: 1.5 !important;
}

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 1100px) {
  body {
    padding-top: 82px !important;
  }

  #aenigma-header .inner {
    padding: 12px 16px !important;
    gap: 16px !important;
  }

  #aenigma-header .logo img {
    height: 40px !important;
  }

  #aenigma-header .burger {
    display: inline-grid !important;
    place-items: center !important;
    margin-left: auto !important;
  }

  #aenigma-header .main-nav {
    display: none !important;
    position: absolute !important;
    top: calc(100% + 8px) !important;
    right: 12px !important;
    left: 12px !important;

    background:
      linear-gradient(180deg, rgba(6, 12, 20, 0.98), rgba(4, 9, 16, 0.98)) !important;

    border: 1px solid rgba(120, 220, 255, 0.14) !important;
    border-radius: 18px !important;
    padding: 16px !important;

    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
    margin-left: 0 !important;

    box-shadow:
      0 18px 34px rgba(0, 0, 0, 0.34) !important,
      inset 0 0 0 1px rgba(255,255,255,0.02) !important;
  }

  #aenigma-header .main-nav.open {
    display: flex !important;
  }

  #aenigma-header .main-nav > a,
  #aenigma-header .submenu-toggle {
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 46px !important;
    padding: 12px 10px !important;
    border-radius: 12px !important;
  }

  #aenigma-header .main-nav > a::after,
  #aenigma-header .submenu-toggle::before {
    display: none !important;
  }

  #aenigma-header .main-nav > a:hover,
  #aenigma-header .submenu-toggle:hover {
    background: rgba(120,220,255,0.06) !important;
  }

  #aenigma-header .has-submenu {
    width: 100% !important;
  }

  #aenigma-header .submenu-toggle {
    text-align: left !important;
  }

  #aenigma-header .submenu {
    position: static !important;
    min-width: 100% !important;
    width: 100% !important;
    margin-top: 8px !important;
    box-shadow: none !important;
    border-radius: 14px !important;
    padding: 8px !important;
  }

  #aenigma-header .submenu a {
    padding: 10px 12px !important;
  }

  #aenigma-header .main-nav a.cta,
  #aenigma-header .main-nav a.gift {
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    padding: 13px 16px !important;
  }

  #aenigma-footer .inner {
    grid-template-columns: 1fr 1fr !important;
    padding: 28px 16px 24px !important;
    gap: 24px !important;
  }

  #aenigma-footer .inner > :first-child {
    grid-column: 1 / -1 !important;
  }

  #aenigma-footer .bottom {
    padding: 14px 16px 18px !important;
  }
}

@media (max-width: 700px) {
  #aenigma-footer .inner {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  #aenigma-footer .inner > :first-child {
    grid-column: auto !important;
  }

  #aenigma-footer .brand {
    font-size: 1.55rem !important;
  }

  #aenigma-footer p {
    max-width: none !important;
  }
}

@media (max-width: 480px) {
  body {
    padding-top: 78px !important;
  }

  #aenigma-header .logo img {
    height: 36px !important;
  }

  #aenigma-header .burger {
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
  }

  #aenigma-header .main-nav {
    right: 10px !important;
    left: 10px !important;
    padding: 14px !important;
    border-radius: 16px !important;
  }
}

/* Corrige le grand espace sous le header sur les pages internes */
body:not(.home):not(.front-page) #content,
body:not(.home):not(.front-page) .site-content,
body:not(.home):not(.front-page) main,
body:not(.home):not(.front-page) .entry-content,
body:not(.home):not(.front-page) .page-content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Supprime les espacements parasites du premier bloc */
body:not(.home):not(.front-page) main > *:first-child,
body:not(.home):not(.front-page) #content > *:first-child,
body:not(.home):not(.front-page) .site-content > *:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Si le thème ajoute un titre/hero invisible avec de la hauteur */
body:not(.home):not(.front-page) .page-header,
body:not(.home):not(.front-page) .entry-header,
body:not(.home):not(.front-page) .archive-header {
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

/* ============================================================
   B003 — LCP + JEUDI PROMO
   Le rendu est inchangé : on évite seulement l'ancien background-image
   derrière le <img> LCP et on déplace le CSS inline de la bannière dans
   le fichier commun mis en cache.
============================================================ */
body .rrx-hero-bg.ssu-hero-media {
  background-image: none !important;
}

.rrx-thursday-banner{
  max-width:920px;
  margin:0 auto 30px;
  padding:24px 24px 22px;
  border-radius:22px;
  border:1px solid rgba(168,227,239,.44);
  background:
    radial-gradient(circle at 50% 0%, rgba(111,198,216,.20), transparent 58%),
    radial-gradient(circle at 15% 20%, rgba(168,227,239,.10), transparent 38%),
    linear-gradient(180deg, rgba(8,18,28,.92), rgba(3,8,16,.97));
  box-shadow:
    inset 0 0 24px rgba(111,198,216,.11),
    0 0 22px rgba(111,198,216,.11),
    0 18px 38px rgba(0,0,0,.42);
  text-align:center;
  position:relative;
  overflow:hidden;
  isolation:isolate;
}

.rrx-thursday-banner::before{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(
      120deg,
      transparent 0%,
      transparent 35%,
      rgba(168,227,239,.08) 44%,
      rgba(168,227,239,.34) 50%,
      rgba(168,227,239,.08) 56%,
      transparent 65%,
      transparent 100%
    );
  transform:translateX(-130%);
  animation:rrxThursdaySweep 4.8s ease-in-out infinite;
  will-change:transform, opacity;
}

.rrx-thursday-banner::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:inherit;
  background:
    radial-gradient(circle at 50% 50%, rgba(111,198,216,.10), transparent 62%);
  opacity:.75;
  animation:rrxThursdayHalo 3.2s ease-in-out infinite;
  will-change:transform, opacity;
}

.rrx-thursday-banner strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 14px;
  padding:11px 26px;
  border-radius:999px;
  border:1px solid rgba(168,227,239,.50);
  background:
    radial-gradient(circle at 50% 0%, rgba(168,227,239,.24), transparent 68%),
    linear-gradient(180deg, rgba(111,198,216,.14), rgba(111,198,216,.06));
  color:var(--rr-accent-light);
  text-transform:uppercase;
  letter-spacing:.15em;
  font-size:clamp(1.45rem, 3.4vw, 2.15rem);
  font-weight:900;
  line-height:1.05;
  text-shadow:
    0 0 8px rgba(168,227,239,.85),
    0 0 20px rgba(111,198,216,.48),
    0 0 42px rgba(111,198,216,.20);
  box-shadow:
    inset 0 0 18px rgba(111,198,216,.12),
    0 0 18px rgba(111,198,216,.20),
    0 0 42px rgba(111,198,216,.08);
  position:relative;
  z-index:1;
  animation:rrxThursdayPulse 2.7s ease-in-out infinite;
  will-change:transform, opacity;
}

.rrx-thursday-banner span{
  display:block;
  max-width:780px;
  margin:0 auto;
  color:rgba(243,243,243,.94);
  line-height:1.72;
  font-size:1.04rem;
  position:relative;
  z-index:1;
}

@keyframes rrxThursdayPulse{
  0%, 100%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(1.035); opacity:.96; }
}

@keyframes rrxThursdaySweep{
  0%{ transform:translateX(-130%); opacity:0; }
  18%{ opacity:1; }
  42%{ transform:translateX(130%); opacity:0; }
  100%{ transform:translateX(130%); opacity:0; }
}

@keyframes rrxThursdayHalo{
  0%, 100%{ opacity:.55; transform:scale(1); }
  50%{ opacity:.95; transform:scale(1.04); }
}

@media (max-width:768px){
  .rrx-thursday-banner{
    margin-bottom:24px;
    padding:20px 14px 18px;
    border-radius:18px;
  }
  .rrx-thursday-banner strong{
    padding:10px 18px;
    letter-spacing:.10em;
    font-size:clamp(1.35rem, 7vw, 1.75rem);
  }
  .rrx-thursday-banner span{
    font-size:.97rem;
    line-height:1.62;
  }
}

@media (prefers-reduced-motion: reduce){
  .rrx-thursday-banner::before,
  .rrx-thursday-banner::after,
  .rrx-thursday-banner strong{
    animation:none !important;
    will-change:auto;
  }
}

/* ===== B004 — accessibilité sans modification de la charte Aenigma ===== */
#aenigma-header a:focus-visible,
#aenigma-header button:focus-visible,
#aenigma-footer a:focus-visible,
.rrx-btn:focus-visible,
.rrx-acc-btn:focus-visible {
  outline: 2px solid rgba(168,227,239,.95) !important;
  outline-offset: 3px !important;
}

/* CookieYes : contraste WCAG du bouton d’acceptation, hors charte principale. */
#wt-cli-accept-all-btn {
  background-color: #3b6f1f !important;
  color: #fff !important;
}

@media (prefers-reduced-motion: reduce) {
  .rrx-home *,
  .rrx-section *,
  .rr-section *,
  #aenigma-header *,
  #aenigma-footer * {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* B005 - rendu progressif des sections hors écran. Aucun style visuel n'est modifié. */
@supports (content-visibility: auto) {
  .elementor-widget-html .rrx-section:not(.rrx-hero),
  .elementor-widget-html .rr-section:not(.rr-hero-qcm) {
    content-visibility: auto;
    contain-intrinsic-size: auto 680px;
  }
  #aenigma-footer {
    content-visibility: auto;
    contain-intrinsic-size: auto 420px;
  }
}



/* B006 - le pixel local évite toute requête YouTube tant que la miniature est hors écran. */
.ssu-youtube-lite__button img[data-ssu-thumb-src] {
  background: #030810;
}

/* ============================================================
   B007 — CSS page-spécifique déplacé hors des widgets Elementor
   Valeurs strictement identiques : aucune modification visuelle.
============================================================ */
/* Satellite Oreeka — classes oe-* exclusives à cette page. */
.rrx-oreeka{--oe-neon:rgba(111,198,216,.85);--oe-neon2:rgba(168,227,239,.65);--oe-red:rgba(255,60,120,.28);}.rrx-oreeka::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.06),transparent 40%),radial-gradient(circle at 70% 20%,rgba(255,255,255,.05),transparent 42%),radial-gradient(circle at 40% 80%,rgba(255,255,255,.04),transparent 46%),radial-gradient(circle at 85% 70%,rgba(255,255,255,.03),transparent 48%);opacity:.9;filter:blur(.2px);}.rrx-oreeka::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient( to bottom,rgba(255,255,255,.03),rgba(255,255,255,.03) 1px,rgba(0,0,0,0) 6px,rgba(0,0,0,0) 10px );opacity:.08;mix-blend-mode:overlay;}.oe-glitch{position:relative;display:inline-block;text-shadow:0 0 18px rgba(111,198,216,.25);}.oe-glitch::before,.oe-glitch::after{content:attr(data-text);position:absolute;left:0;top:0;width:100%;overflow:hidden;opacity:.22;pointer-events:none;}.oe-glitch::before{transform:translate(1px,0);filter:blur(.3px);clip-path:inset(0 0 55% 0);}.oe-glitch::after{transform:translate(-1px,0);filter:blur(.2px);clip-path:inset(55% 0 0 0);}.oe-grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;padding:18px;align-items:stretch;}@media (max-width:980px){.oe-grid-2{grid-template-columns:1fr;}}.oe-img{border-radius:16px;overflow:hidden;border:1px solid rgba(111,198,216,.35);background:#000;box-shadow:0 10px 30px rgba(111,198,216,.14);min-height:220px;}.oe-img > div{width:100%;height:100%;min-height:220px;background-size:cover;background-position:center;filter:saturate(1.05) contrast(1.1) brightness(.75);}.oe-list{margin:10px 0 0;padding-left:18px;line-height:1.7;color:rgba(243,243,243,.92);}.oe-bullets{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px;}.oe-bullets li{padding:10px 12px;border-radius:12px;border:1px solid rgba(111,198,216,.18);background:rgba(0,0,0,.28);box-shadow:inset 0 0 18px rgba(111,198,216,.06);}.oe-cta{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:22px 18px;}.oe-rocket{width:44px;height:44px;filter:drop-shadow(0 0 12px rgba(111,198,216,.35));opacity:.95;}.oe-alert{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,60,120,.35);background:linear-gradient(180deg,rgba(255,60,120,.08),rgba(0,0,0,.22));color:rgba(255,255,255,.92);box-shadow:inset 0 0 18px rgba(255,60,120,.10);}

/* Tarifs — styles promo scellés à la page #986 pour conserver son rendu
   sans interférer avec la bannière Jeudi Promo de l'accueil. */
body.page-id-986 .rrx-thursday-banner{margin-top:18px;padding:16px 18px;border-radius:16px;border:1px solid rgba(111,198,216,.30);background:radial-gradient(circle at 50% 0%,rgba(111,198,216,.12),transparent 55%),linear-gradient(180deg,rgba(8,18,28,.80),rgba(3,8,16,.92));text-align:center;box-shadow:inset 0 0 16px rgba(111,198,216,.06),0 10px 24px rgba(0,0,0,.24);}body.page-id-986 .rrx-thursday-banner strong{display:block;margin-bottom:6px;color:var(--rr-accent-light);text-transform:uppercase;letter-spacing:.08em;}body.page-id-986 .rrx-thursday-banner span{display:block;color:rgba(243,243,243,.90);line-height:1.65;}body.page-id-986 .rrx-priceList--promo li span:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}body.page-id-986 .rrx-promo-note{display:inline-block;padding:5px 10px;border-radius:999px;background:rgba(111,198,216,.10);border:1px solid rgba(111,198,216,.22);color:var(--rr-accent-light) !important;font-size:.82rem;line-height:1.35;white-space:normal;text-align:right;}body.page-id-986 .rrx-mini-badge{display:inline-flex;align-items:center;justify-content:center;margin:0 0 14px 0;padding:8px 12px;border-radius:999px;border:1px solid rgba(111,198,216,.22);background:rgba(111,198,216,.08);color:var(--rr-accent-light);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700;}@media (max-width:768px){body.page-id-986 .rrx-thursday-banner{padding:14px 14px;border-radius:14px;}body.page-id-986 .rrx-priceList--promo li span:last-child{align-items:flex-start;text-align:left;}body.page-id-986 .rrx-promo-note{text-align:left;font-size:.8rem;}}@media (max-width:420px){body.page-id-986 .rrx-priceList--promo li span:last-child{width:100%;}body.page-id-986 .rrx-promo-note{margin-top:2px;}}

/* ============================================================
   B008 — derniers styles inline centralisés dans le CSS commun
   Les valeurs bureau sont identiques aux anciens attributs style.
============================================================ */
/* Calculateur partagé Accueil / Tarifs */
.ssu-b008-calc-center{text-align:center}
.ssu-b008-calc-intro{text-align:center;margin-top:6px}
.ssu-b008-calc-promo{max-width:980px;margin:18px auto 0;padding:16px 18px;border-radius:16px;border:1px solid rgba(111,198,216,.35);background:radial-gradient(circle at 50% 0%,rgba(111,198,216,.12),transparent 55%),linear-gradient(180deg,rgba(8,18,28,.82),rgba(3,8,16,.92));box-shadow:inset 0 0 18px rgba(111,198,216,.07),0 12px 28px rgba(0,0,0,.32);text-align:center}
.ssu-b008-calc-promo-title{display:block;color:var(--rr-accent-light);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.ssu-b008-calc-promo-copy{color:rgba(243,243,243,.90);line-height:1.6}
.ssu-b008-calc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;max-width:980px;margin:18px auto 0}
.ssu-b008-calc-panel{padding:14px;border-radius:14px;border:1px solid rgba(0,0,0,.20);background:rgba(255,255,255,.18)}
.ssu-b008-calc-panel-title{margin:0 0 10px}
.ssu-b008-calc-option{display:flex;gap:10px;align-items:center;margin:8px 0}
.ssu-b008-calc-select{width:100%;height:52px;padding:0 14px;border-radius:12px;border:1px solid rgba(0,0,0,.22);background:#fff;color:#111;font-size:16px;-webkit-appearance:none;appearance:none;box-sizing:border-box}
.ssu-b008-calc-note{margin-top:10px;font-size:.92rem;opacity:.88}
.ssu-b008-calc-video-row{display:flex;gap:10px;align-items:flex-start;margin:12px 0 0}
.ssu-b008-calc-video-checkbox{margin-top:4px}
.ssu-b008-calc-video-note{margin-top:10px;font-size:.92rem;opacity:.88;display:none}
.ssu-b008-calc-result{max-width:980px;margin:16px auto 0;padding:14px;border-radius:14px;border:2px solid rgba(20,20,24,.45);background:rgba(255,255,255,.20);display:none}
.ssu-b008-calc-result-title{font-size:1.05rem;margin-bottom:8px}
.ssu-b008-calc-price{font-size:1.25rem}
.ssu-b008-calc-details{margin-top:8px;font-size:.98rem;opacity:.92}
.ssu-b008-calc-cta{text-align:center;margin-top:16px}

/* QCM : desktop identique, puis grille réellement responsive sur mobile. */
.ssu-b008-qcm-hero{max-width:1100px;margin:0 auto;padding:60px 24px 30px}
.ssu-b008-qcm-hero-card{background:var(--rr-bg-card);border:1px solid var(--rr-border);border-radius:var(--rr-radius);padding:32px;box-shadow:var(--rr-shadow);backdrop-filter:blur(6px)}
.ssu-b008-qcm-kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.85rem;color:var(--rr-accent-light);margin-bottom:14px}
.ssu-b008-qcm-lead{font-size:1.08rem;max-width:850px}
.ssu-b008-qcm-copy{max-width:850px}
.ssu-b008-qcm-wrap-a{max-width:1100px;margin:0 auto;padding:10px 24px 20px}
.ssu-b008-qcm-wrap-b{max-width:1100px;margin:0 auto;padding:20px 24px 30px}
.ssu-b008-qcm-wrap-c{max-width:1100px;margin:0 auto;padding:0 24px 30px}
.ssu-b008-qcm-wrap-d{max-width:1100px;margin:0 auto;padding:10px 24px 40px}
.ssu-b008-qcm-wrap-e{max-width:1100px;margin:0 auto;padding:0 24px 60px}
.ssu-b008-qcm-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ssu-b008-qcm-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}
.ssu-b008-qcm-dark-card{background:rgba(0,0,0,.45);border:1px solid var(--rr-border-soft);border-radius:var(--rr-radius-sm);padding:24px}
.ssu-b008-qcm-main-card{background:var(--rr-bg-card);border:1px solid var(--rr-border);border-radius:var(--rr-radius);padding:28px}
.ssu-b008-qcm-benefit{padding:18px;border:1px solid var(--rr-border-soft);border-radius:14px;background:rgba(255,255,255,.02)}
.ssu-b008-qcm-soft-card{background:var(--rr-bg-card);border:1px solid var(--rr-border-soft);border-radius:var(--rr-radius-sm);padding:24px}
.ssu-b008-qcm-faq-card{background:rgba(0,0,0,.5);border:1px solid var(--rr-border);border-radius:var(--rr-radius);padding:30px}
.ssu-b008-qcm-faq-grid{display:grid;gap:16px;margin-top:22px}
.ssu-b008-qcm-faq-item{padding:18px;border:1px solid var(--rr-border-soft);border-radius:14px}
.ssu-b008-qcm-cta{text-align:center;background:linear-gradient(180deg,rgba(111,198,216,.12),rgba(0,0,0,.5));border:1px solid var(--rr-border);border-radius:var(--rr-radius);padding:34px 24px;box-shadow:var(--rr-shadow)}
.ssu-b008-qcm-cta-copy{max-width:760px;margin:0 auto 22px}
.ssu-b008-qcm-cta-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.ssu-b008-qcm-cta-link{display:inline-block;padding:14px 22px;border-radius:999px;background:var(--rr-accent);color:#03131A;text-decoration:none;font-weight:800}
@media(max-width:800px){.ssu-b008-qcm-grid-2,.ssu-b008-qcm-grid-3{grid-template-columns:1fr}.ssu-b008-qcm-hero{padding-top:36px}.ssu-b008-qcm-hero-card{padding:24px}.ssu-b008-qcm-main-card,.ssu-b008-qcm-faq-card{padding:22px}}

/* Contact */
.ssu-b008-contact-hero{padding:32px 24px}
.ssu-b008-contact-kicker{text-transform:uppercase;letter-spacing:.18em;margin-bottom:10px}
.ssu-b008-contact-mb18{margin-bottom:18px}
.ssu-b008-contact-copy{max-width:780px;margin:0 auto}
.ssu-b008-contact-pad24{padding:24px}
.ssu-b008-contact-left{text-align:left}
.ssu-b008-contact-list{margin:0;padding-left:18px;line-height:1.9;color:rgba(243,243,243,.92)}
.ssu-b008-contact-pad30{padding:30px 24px}
.ssu-b008-contact-map-wrap{padding:0;margin-top:18px}
.ssu-b008-contact-pad0{padding:0}
.ssu-b008-contact-copy-mb{max-width:760px;margin:0 auto 18px}
.ssu-b008-contact-copy-wide{max-width:760px;margin:0 auto}

/* Pages scénario / À savoir / mentions */
.ssu-b008-story-pad18{padding:18px}
.ssu-b008-story-copy{line-height:1.7}
.ssu-b008-story-center-copy{text-align:center;line-height:1.7}
.ssu-b008-story-wide-copy{max-width:760px;line-height:1.7;margin:0}
.ssu-b008-mt14{margin-top:14px}
.ssu-b008-mt18{margin-top:18px}
.ssu-b008-oreeka-bg{background-image:url('https://aenigma-live-escape-game.com/wp-content/uploads/2026/03/Station-spatiale-oreeka.png')}
.ssu-b008-maya-bg{background-image:url('https://aenigma-live-escape-game.com/wp-content/uploads/2026/03/Temple-maya.png')}
.ssu-b008-legal-auto{min-height:auto}
.ssu-b008-legal-full{max-width:100%}

/* ============================================================
   B009 — gabarit uniforme des grandes boxes Aenigma
   Référence : largeur visuelle de la page d'accueil sur bureau.
   Aucun changement de couleur, halo, bordure, rayon ou typographie.
============================================================ */
:root{
  --ssu-aenigma-box-max:1400px;
  --ssu-aenigma-box-gutter-desktop:24px;
  --ssu-aenigma-box-gutter-mobile:12px;
}

/* Les wrappers historiques (FAQ, Tarifs, Contact, scénarios...) ne doivent
   plus rester bloqués sur un gabarit plus étroit que l'accueil. */
body .rrx-wrap,
body .ssu-box-model{
  box-sizing:border-box !important;
  width:min(var(--ssu-aenigma-box-max), calc(100% - (var(--ssu-aenigma-box-gutter-desktop) * 2))) !important;
  max-width:var(--ssu-aenigma-box-max) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* Certaines pages sont composées de plusieurs widgets HTML indépendants et
   n'ont pas de rrx-wrap commun : on leur applique le même gabarit. */
body:is(.page-id-1442,.page-id-1628,.page-id-2493,.page-id-3047) .elementor-widget-html > .elementor-widget-container > .rrx-section,
body:is(.page-id-1442,.page-id-1628,.page-id-2493,.page-id-3047) .elementor-widget-html > .elementor-widget-container > .rrx-hero{
  box-sizing:border-box !important;
  width:min(var(--ssu-aenigma-box-max), calc(100% - (var(--ssu-aenigma-box-gutter-desktop) * 2))) !important;
  max-width:var(--ssu-aenigma-box-max) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* QCM : ses wrappers B008 étaient encore volontairement limités à 1100 px. */
body.page-id-2636 :is(
  .ssu-b008-qcm-hero,
  .ssu-b008-qcm-wrap-a,
  .ssu-b008-qcm-wrap-b,
  .ssu-b008-qcm-wrap-c,
  .ssu-b008-qcm-wrap-d,
  .ssu-b008-qcm-wrap-e
){
  width:min(var(--ssu-aenigma-box-max), calc(100% - (var(--ssu-aenigma-box-gutter-desktop) * 2))) !important;
  max-width:var(--ssu-aenigma-box-max) !important;
  box-sizing:border-box !important;
}

/* Les contenus textuels gardent leur largeur de lecture actuelle : seule la
   grande box extérieure est harmonisée. */
body .rrx-hero-content,
body .rrx-panel-inner,
body .rrx-center > p,
body .ssu-b008-contact-copy,
body .ssu-b008-contact-copy-mb,
body .ssu-b008-contact-copy-wide{
  min-width:0;
}

@media (max-width:768px){
  body .rrx-wrap,
  body .ssu-box-model,
  body:is(.page-id-1442,.page-id-1628,.page-id-2493,.page-id-3047) .elementor-widget-html > .elementor-widget-container > .rrx-section,
  body:is(.page-id-1442,.page-id-1628,.page-id-2493,.page-id-3047) .elementor-widget-html > .elementor-widget-container > .rrx-hero,
  body.page-id-2636 :is(
    .ssu-b008-qcm-hero,
    .ssu-b008-qcm-wrap-a,
    .ssu-b008-qcm-wrap-b,
    .ssu-b008-qcm-wrap-c,
    .ssu-b008-qcm-wrap-d,
    .ssu-b008-qcm-wrap-e
  ){
    width:calc(100% - (var(--ssu-aenigma-box-gutter-mobile) * 2)) !important;
    max-width:none !important;
  }
}



/* ============================================================
   B010 — finitions accessibilité / cohérence responsive
   Aucun changement de palette ou de charte.
============================================================ */

/* Lien d’évitement visible uniquement au clavier. */
.ssu-skip-link{
  position:fixed;
  top:8px;
  left:8px;
  z-index:100000;
  transform:translateY(-180%);
  padding:10px 14px;
  border-radius:10px;
  border:1px solid rgba(111,198,216,.55);
  background:#07111b;
  color:#eafaff;
  text-decoration:none;
  box-shadow:0 8px 24px rgba(0,0,0,.45);
}
.ssu-skip-link:focus{transform:translateY(0)}

/* Tableau récapitulatif : le visuel redevient utilisable au clavier. */
.rrx-clickable-img{cursor:zoom-in}
.rrx-clickable-img:focus-visible{
  outline:2px solid rgba(168,227,239,.95);
  outline-offset:4px;
}
.rrx-lightbox{
  position:fixed;
  inset:0;
  z-index:99990;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.88);
  backdrop-filter:blur(5px);
}
.rrx-lightbox.is-open{display:flex}
.rrx-lightbox-stage{
  max-width:min(1200px,96vw);
  max-height:92vh;
  overflow:auto;
  border-radius:16px;
  border:1px solid rgba(111,198,216,.35);
  box-shadow:0 18px 60px rgba(0,0,0,.58),0 0 30px rgba(111,198,216,.12);
  background:#050a10;
}
.rrx-lightbox-stage img{display:block;max-width:100%;height:auto;margin:auto}
body.ssu-lightbox-open{overflow:hidden}

/* Deux anciennes pages Elementor standard ne possèdent pas de rrx-wrap.
   Elles rejoignent malgré tout le gabarit B009 sur bureau et mobile. */
body:is(.page-id-2693,.page-id-3047) .elementor[data-elementor-type="wp-page"] > .elementor-element,
body:is(.page-id-2693,.page-id-3047) .elementor[data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-section{
  box-sizing:border-box;
  width:min(var(--ssu-aenigma-box-max),calc(100% - (var(--ssu-aenigma-box-gutter-desktop) * 2)));
  max-width:var(--ssu-aenigma-box-max);
  margin-left:auto;
  margin-right:auto;
}
@media(max-width:768px){
  body:is(.page-id-2693,.page-id-3047) .elementor[data-elementor-type="wp-page"] > .elementor-element,
  body:is(.page-id-2693,.page-id-3047) .elementor[data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-section{
    width:calc(100% - (var(--ssu-aenigma-box-gutter-mobile) * 2));
    max-width:none;
  }
  .rrx-lightbox{padding:12px}
}


/* ============================================================
   B011 — finition des anciennes pages éditoriales
   Espacement uniquement : aucune couleur ni charte modifiée.
============================================================ */
body.page-id-3047 .elementor-widget-text-editor p{
  margin-top:0 !important;
  margin-bottom:.85rem !important;
  line-height:1.65;
}
body.page-id-3047 .elementor-widget-text-editor p:last-child{margin-bottom:0 !important}
body.page-id-3047 .elementor-widget-text-editor a{overflow-wrap:anywhere}


/* ============================================================
   B012 — finitions accessibilité (aucun changement de charte)
============================================================ */
.ssu-b008-calc-select:focus-visible,
.ssu-b008-calc-video-checkbox:focus-visible,
.ssu-b008-calc-option input:focus-visible + span,
.rrx-lightbox-close:focus-visible{
  outline:2px solid rgba(168,227,239,.95) !important;
  outline-offset:3px !important;
}

.rrx-lightbox-close{
  position:absolute;
  top:18px;
  right:18px;
  z-index:2;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(111,198,216,.45);
  border-radius:999px;
  background:rgba(5,10,16,.92);
  color:#fff;
  font:700 1.5rem/1 system-ui,sans-serif;
  cursor:pointer;
  box-shadow:0 8px 28px rgba(0,0,0,.4);
}
@media(max-width:768px){
  .rrx-lightbox-close{top:10px;right:10px}
}

/* ============================================================
   B026 — largeur mobile des grandes boxes Aenigma
   Objectif : supprimer le cumul des gutters du thème + rrx-home +
   ssu-box-model qui comprimait le contenu sur certaines pages.
   Desktop inchangé. Charte, couleurs et typographie inchangées.
============================================================ */
@media (max-width:768px){
  /* Les pages utilisant le shell rrx-home sortent du padding latéral
     global de Twenty Twenty-Five pour retrouver une vraie largeur mobile. */
  body .rrx-home{
    box-sizing:border-box !important;
    position:relative !important;
    left:50% !important;
    width:100vw !important;
    max-width:100vw !important;
    margin-left:-50vw !important;
    margin-right:0 !important;
    padding:12px !important;
  }

  /* Le wrapper interne ne doit pas ajouter un deuxième gutter horizontal. */
  body .rrx-home > .rrx-wrap.ssu-box-model{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  /* Pages composées d'un widget HTML principal sans rrx-home :
     Bambell, Entreprises, Bons cadeaux, QCM, etc. */
  body .elementor-widget-html > .elementor-widget-container > .ssu-box-model:not(.rrx-wrap):not(.rrx-home){
    box-sizing:border-box !important;
    position:relative !important;
    left:50% !important;
    width:calc(100vw - 24px) !important;
    max-width:none !important;
    margin-left:calc(-50vw + 12px) !important;
    margin-right:0 !important;
  }
}

/* ============================================================
   B028 — largeur desktop ciblée : Tarifs + FAQ
   Cause : .rrx-section historique reste limité à 1100px alors que
   le wrapper B009 utilise le gabarit large. Entreprises est déjà
   couverte par B009. Mobile B026 inchangé.
============================================================ */
@media (min-width:769px){
  body.page-id-986 .rrx-home > .rrx-wrap.ssu-box-model > .rrx-section,
  body.page-id-73 .rrx-home > .rrx-wrap.ssu-box-model > .rrx-section{
    width:100% !important;
    max-width:none !important;
  }
}


/* ============================================================
   B030 — largeur desktop harmonisée (gabarit large B009)
   Choix du propriétaire (23/09) : toutes les pages au gabarit large
   comme Tarifs et FAQ (B028), l'accueil garde sa largeur actuelle.
   1. Pages à panneau .rrx-home (Oreeka, Maya, Scénarios, Contact…) :
      les cartes intérieures prennent toute la largeur du wrapper,
      comme B028 le fait déjà sur Tarifs et FAQ.
   2. Bambell et « À savoir avant de réserver » : les cartes placées
      directement dans le widget HTML rejoignent la largeur de leur
      bandeau (même règle que B009 pour Entreprises / Bons cadeaux).
   3. Temple Maya : sa section Elementor est en largeur « boîte »
      (1140 px) au lieu de pleine largeur ; son panneau reprend la
      largeur des autres pages scénario.
   Mobile (B026) inchangé. Couleurs, bordures, typographie inchangées.
============================================================ */
@media (min-width:769px){
  body:not(.home) .rrx-home > .rrx-wrap.ssu-box-model > .rrx-section{
    width:100% !important;
    max-width:none !important;
  }

  body:is(.page-id-1172,.page-id-3223) .elementor-widget-html > .elementor-widget-container > .rrx-section{
    box-sizing:border-box !important;
    width:min(var(--ssu-aenigma-box-max), calc(100% - (var(--ssu-aenigma-box-gutter-desktop) * 2))) !important;
    max-width:var(--ssu-aenigma-box-max) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  /* « À savoir avant de réserver » : carte imbriquée dans la grande carte. */
  body.page-id-3223 .rrx-section > .rrx-section{
    width:100% !important;
    max-width:none !important;
  }

  body.page-id-1234 .rrx-home.rrx-maya{
    position:relative !important;
    left:50% !important;
    width:calc(100vw - 20px) !important;
    max-width:none !important;
    margin-left:calc(-50vw + 10px) !important;
    margin-right:0 !important;
  }
}


/* ============================================================
   B032 — même largeur de boxes sur toutes les pages (ordinateur)
   Cause : les pages au modèle par défaut de Twenty Twenty-Five
   placent le contenu Elementor dans la colonne de lecture du thème
   (« contentSize », 645 px par défaut) avec ses marges globales,
   alors que l'accueil (modèle Elementor pleine largeur) n'y est pas.
   Les sections « étirées » d'Elementor ne peuvent pas compenser :
   leur script est volontairement retiré sur ces pages (B005).
   Résultat : accueil ≈ 1100 px, Temple Maya ≈ 1420 px, autres pages
   plus étroites. Les règles B009/B028/B030 s'appliquaient bien, mais
   à l'intérieur de cette colonne.
   Correctif : sur ordinateur (≥ 769 px) et pour les pages Elementor,
   le contenu sort de la colonne du thème, chaque section de premier
   niveau prend un gabarit unique (--ssu-aenigma-page-w, 1400 px max
   avec 32 px de marge de chaque côté) et les grandes boxes le
   remplissent. Accueil compris.
   Mobile (B026) inchangé. Couleurs, bordures, typographie inchangées.
============================================================ */
:root{
  --ssu-aenigma-page-w:min(var(--ssu-aenigma-box-max,1400px), calc(100vw - 64px));
}

@media (min-width:769px){
  /* 1) Twenty Twenty-Five : plus de colonne de 645 px ni de marge globale
        autour du contenu Elementor. */
  /* Colonne du thème autour du contenu Elementor (dans <main> seulement :
     en-tête et pied de page ne sont pas touchés). */
  body.elementor-page main:is(.is-layout-constrained,.has-global-padding):has(.elementor),
  body.elementor-page main :is(.is-layout-constrained,.has-global-padding):has(.elementor){
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  body.elementor-page .wp-block-post-content > .elementor{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  /* 2) Sections Elementor de premier niveau : un seul gabarit, centré. */
  body.elementor-page .elementor > .elementor-section > .elementor-container,
  body.elementor-page .elementor > .elementor-section-wrap > .elementor-section > .elementor-container{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:var(--ssu-aenigma-page-w) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  body:is(.page-id-2693,.page-id-3047) .elementor[data-elementor-type="wp-page"] > .elementor-element,
  body:is(.page-id-2693,.page-id-3047) .elementor[data-elementor-type="wp-page"] > .elementor-section-wrap > .elementor-section{
    width:100% !important;
    max-width:none !important;
  }

  /* 3) Colonnes pleine largeur : pas de retrait latéral supplémentaire. */
  body.elementor-page .elementor > .elementor-section > .elementor-container > .elementor-col-100 > .elementor-widget-wrap,
  body.elementor-page .elementor > .elementor-section-wrap > .elementor-section > .elementor-container > .elementor-col-100 > .elementor-widget-wrap{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  /* 4) Grandes boxes (panneaux, cartes, bandeaux) : elles remplissent le
        gabarit, sans décalage ni plafond historique (1100 px, B009, B030). */
  body.elementor-page .elementor-col-100 .elementor-widget-html > .elementor-widget-container > :is(.rrx-home,.rrx-wrap,.rrx-section,.rrx-hero,.ssu-box-model,.rr-section){
    box-sizing:border-box !important;
    position:relative !important;
    left:auto !important;
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  /* À l'intérieur d'un panneau .rrx-home : pas de deuxième retrait. */
  body.elementor-page .rrx-home > .rrx-wrap.ssu-box-model{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
  body.elementor-page .rrx-home > .rrx-wrap.ssu-box-model > .rrx-section{
    width:100% !important;
    max-width:none !important;
  }
}
