/**
 * Night Square — « Liquid Glass » (matériau vitré type iOS / visionOS)
 * Couche globale : variables + surfaces ciblées (pas de `button { }` universel).
 * Chargé après style.css. Opt-in boutons : classe .lg-btn ou sélecteurs listés ci-dessous.
 */

:root {
  /* Matériau */
  --lg-blur: 48px;
  --lg-blur-sm: 24px;
  --lg-blur-xs: 16px;
  --lg-saturate: 200%;
  --lg-saturate-soft: 180%;
  /* Surfaces composants — plat #111111 (aligné --surface) */
  --lg-fill: var(--surface, #111111);
  --lg-fill-elevated: var(--surface, #111111);
  --lg-fill-deep: var(--surface, #111111);
  /* Contours « verre » */
  --lg-stroke: rgba(255, 255, 255, 0.14);
  --lg-stroke-soft: rgba(255, 255, 255, 0.09);
  --lg-specular: rgba(255, 255, 255, 0.22);
  /* Ombres portées + profondeur */
  --lg-shadow: 0 12px 48px rgba(0, 0, 0, 0.45), 0 2px 0 rgba(255, 255, 255, 0.06) inset;
  --lg-shadow-sm: 0 8px 32px rgba(0, 0, 0, 0.35), 0 1px 0 rgba(255, 255, 255, 0.05) inset;
  --lg-radius: 22px;
  --lg-radius-pill: 999px;
  --lg-radius-card: 28px;
}

@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  html {
    /* Fond profond avec halos (effet « liquide ») — couleur de base via --bg */
    background:
      radial-gradient(ellipse 100% 70% at 50% -15%, rgba(197, 165, 114, 0.16), transparent 52%),
      radial-gradient(ellipse 50% 40% at 0% 25%, rgba(197, 165, 114, 0.05), transparent 50%),
      linear-gradient(180deg, var(--bg, #070707) 0%, var(--bg, #070707) 38%, var(--bg, #070707) 100%);
    background-color: var(--bg, #070707);
  }

  /* Pages à fond plat — variable --bg (hors dashboard promoteur autonome) */
  html:has(body.home-page),
  html:has(body.profile-page),
  html:has(body.reservation-page-body),
  html:has(body.rp-page),
  html:has(body.organizers-page),
  html:has(body.city-page),
  html:has(body.club-page),
  html:has(body.event-page-body) {
    background: var(--bg, #070707);
    background-color: var(--bg, #070707);
    background-image: none;
  }

  body {
    background: transparent;
  }
}

/* Pages à fond plat — variable --bg */
html:has(body.home-page),
html:has(body.profile-page),
html:has(body.reservation-page-body),
html:has(body.rp-page),
html:has(body.organizers-page),
html:has(body.city-page),
html:has(body.event-page-body) {
  background: var(--bg, #070707) !important;
  background-color: var(--bg, #070707) !important;
  background-image: none !important;
}

@media (prefers-reduced-motion: reduce) {
  html {
    background: var(--bg, #070707);
  }

  html:has(body.home-page),
  html:has(body.profile-page),
  html:has(body.reservation-page-body),
  html:has(body.rp-page),
  html:has(body.organizers-page),
  html:has(body.city-page),
  html:has(body.club-page),
  html:has(body.event-page-body) {
    background: var(--bg, #070707) !important;
    background-color: var(--bg, #070707) !important;
    background-image: none !important;
  }
}

/* ---------- Header flottant (site public uniquement — pas .rp-dash-appbar, etc.) ---------- */
header:not(.rp-dash-appbar):not(.reserve-steps-header):not(.featured-artists-header):not(.trust-section-header):not(.final-cta-header):not(.hero-ref-header):not(.ibiza-residence-top):not(.cote-azur-header):not(.reservation-detail-ticket-head) {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius) !important;
  box-shadow: var(--lg-shadow-sm) !important;
}

header:not(.rp-dash-appbar):not(.reserve-steps-header):not(.featured-artists-header):not(.trust-section-header):not(.final-cta-header):not(.hero-ref-header):not(.ibiza-residence-top):not(.cote-azur-header):not(.reservation-detail-ticket-head).scrolled {
  background: var(--lg-fill-elevated) !important;
  border-color: var(--lg-stroke) !important;
  box-shadow: var(--lg-shadow) !important;
}

/* Réservation & événement : header site = accueil (flottant, verre, marges) */
body.reservation-page-body > header,
body.event-page-body > header {
  position: fixed !important;
  top: max(1rem, env(safe-area-inset-top, 0px)) !important;
  left: 1.5rem !important;
  right: 1.5rem !important;
  max-width: calc(100% - 3rem) !important;
  width: auto !important;
  margin: 0 auto !important;
  z-index: 20000 !important;
  padding: 0.75rem 1rem !important;
  border-radius: var(--lg-radius, 22px) !important;
  overflow: visible !important;
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  box-shadow: var(--lg-shadow-sm) !important;
}

body.reservation-page-body > header.scrolled,
body.event-page-body > header.scrolled {
  background: var(--lg-fill-elevated) !important;
  border-color: var(--lg-stroke) !important;
  box-shadow: var(--lg-shadow) !important;
  padding: 0.65rem 1rem !important;
}

header.site-header,
header.site-header.scrolled,
body.reservation-page-body > header.site-header,
body.reservation-page-body > header.site-header.scrolled,
body.event-page-body > header.site-header,
body.event-page-body > header.site-header.scrolled {
  box-shadow: none !important;
}

body.reservation-page-body > header > nav,
body.event-page-body > header > nav {
  overflow: visible !important;
  max-height: none !important;
}

@media (max-width: 768px) {
  body.reservation-page-body > header,
  body.event-page-body > header {
    top: max(0.75rem, env(safe-area-inset-top, 0px)) !important;
    left: 1rem !important;
    right: 1rem !important;
    max-width: calc(100% - 2rem) !important;
    z-index: 2147483000 !important;
  }
}

/* ---------- Menus & langue ---------- */
.lang-dropdown-toggle {
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  border-radius: 16px !important;
  box-shadow: none !important;
}

.lang-dropdown-menu {
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  border-radius: 16px !important;
  box-shadow: var(--lg-shadow-sm) !important;
}

.lang-option:hover {
  background: rgba(255, 255, 255, 0.06) !important;
}

.mobile-menu-toggle {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  box-shadow: none !important;
}

@media (max-width: 768px) {
  .nav-links {
    background: var(--lg-fill-deep) !important;
    backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
    border: 1px solid var(--lg-stroke) !important;
    box-shadow: var(--lg-shadow) !important;
  }

  .nav-links.mobile-nav-panel {
    border-radius: var(--lg-radius) !important;
  }
}

/* ---------- Cartes génériques ---------- */
.card {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius-card) !important;
  box-shadow: var(--lg-shadow-sm) !important;
}

.card:hover {
  border-color: rgba(197, 165, 114, 0.35) !important;
  box-shadow: var(--lg-shadow), 0 0 0 1px rgba(197, 165, 114, 0.12) !important;
}

/* ---------- Événements (accueil) ---------- */
.filter-button {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius-pill) !important;
  box-shadow: none !important;
}

.filter-button:hover {
  background: var(--lg-fill-elevated) !important;
  border-color: rgba(197, 165, 114, 0.35) !important;
}

.filter-button.active {
  background: linear-gradient(145deg, rgba(197, 165, 114, 0.92), rgba(197, 165, 114, 0.75)) !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
  color: #0d0d0d !important;
  box-shadow: none !important;
}

.filter-dropdown-toggle,
.style-filter-wrap .style-filter-dropdown-toggle,
.date-filter-wrap .date-filter-dropdown-toggle,
.date-filter-wrap input.current-events-filter-select,
.date-filter-wrap input.flatpickr-input {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius-pill) !important;
  box-shadow: none !important;
}

.filter-dropdown-toggle:hover,
.style-filter-wrap .style-filter-dropdown-toggle:hover,
.date-filter-wrap .date-filter-dropdown-toggle:hover,
.date-filter-wrap input.current-events-filter-select:hover,
.date-filter-wrap input.flatpickr-input:hover,
.style-filter-wrap .current-events-filter-select:hover {
  background: var(--lg-fill-elevated) !important;
  border-color: rgba(197, 165, 114, 0.35) !important;
}

.filter-dropdown-menu {
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius) !important;
  box-shadow: var(--lg-shadow) !important;
  /* Au-dessus des cartes événements (voir .current-events-filter z-index style.css) */
  z-index: 5000 !important;
  /* Même logique que style.css : largeur adaptée au contenu */
  min-width: max-content !important;
  width: max-content !important;
  max-width: min(92vw, 420px) !important;
  right: auto !important;
}

.filter-option .filter-text {
  white-space: nowrap !important;
}

.filter-option:hover {
  background: rgba(255, 255, 255, 0.06) !important;
}

.current-events-filter-select,
.date-filter-wrap .current-events-filter-select,
.style-filter-wrap .current-events-filter-select {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius-pill) !important;
  color: var(--text, #eaeaea) !important;
  box-shadow: none !important;
}

.current-events-filter-select,
.filter-dropdown-toggle,
.filter-dropdown-toggle .filter-text,
.filter-input-icon {
  font-weight: 500 !important;
}

.date-filter-wrap input.flatpickr-alt,
.date-filter-wrap input.flatpickr-input,
.date-filter-wrap input.current-events-filter-select,
.filter-dropdown-toggle,
.filter-dropdown-toggle .filter-text,
.filter-input-icon {
  color: var(--text, #eaeaea) !important;
}

.date-filter-wrap,
.style-filter-wrap {
  position: relative !important;
}

.filter-input-icon {
  opacity: 1 !important;
  z-index: 3 !important;
}

.date-filter-wrap .filter-input-icon,
.style-filter-wrap .filter-input-icon {
  color: var(--text, #eaeaea) !important;
  -webkit-text-fill-color: var(--text, #eaeaea) !important;
  text-shadow: none !important;
  line-height: 1 !important;
  font-size: 0.65rem !important;
}

@media (min-width: 769px) {
  .date-filter-wrap input.flatpickr-alt,
  .date-filter-wrap input.flatpickr-input {
    position: relative !important;
    z-index: 1 !important;
  }
}

.style-filter-wrap > #events-style-filter {
  position: absolute !important;
  z-index: 0 !important;
}

.style-filter-wrap .style-filter-dropdown-toggle {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius-pill) !important;
  color: var(--text, #eaeaea) !important;
}

.style-filter-wrap .filter-dropdown-menu {
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius) !important;
  box-shadow: var(--lg-shadow) !important;
  z-index: 5000 !important;
}

@media (min-width: 769px) {
  .date-filter-wrap input.flatpickr-alt,
  .date-filter-wrap input.flatpickr-input,
  .date-filter-wrap input.current-events-filter-select {
    -webkit-text-fill-color: var(--text, #eaeaea) !important;
    opacity: 1 !important;
    font-weight: 500 !important;
    text-shadow: none !important;
    filter: none !important;
    mix-blend-mode: normal !important;
  }
}

@media (max-width: 768px) {
  .date-filter-wrap input.date-filter-flatpickr-input,
  .date-filter-wrap input.flatpickr-input,
  .date-filter-wrap #events-date-filter {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

.date-filter-wrap input.flatpickr-alt::placeholder,
.date-filter-wrap input.flatpickr-input::placeholder,
.date-filter-wrap input.current-events-filter-select::placeholder {
  color: var(--text-muted, #b8b8b8) !important;
  -webkit-text-fill-color: var(--text-muted, #b8b8b8) !important;
  opacity: 1 !important;
  font-weight: 500 !important;
  text-shadow: none !important;
}

.filter-arrow {
  color: var(--text-muted, #b8b8b8) !important;
}

.current-event-card {
  background: transparent !important;
  background-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.current-event-card:hover {
  border: none !important;
  box-shadow: none !important;
}

/* ---------- Vitrine promoteur /rp — cartes & blocs internes ---------- */
.rp-vitrine-page .current-event-info-datetime,
.rp-vitrine-page .current-event-info-details {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
}

.rp-vitrine-page .rp-vitrine-ev-action,
.rp-vitrine-page .rp-vitrine-ev-action--past-end {
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset !important;
}

.rp-vitrine-page .rp-vitrine-event-card:hover .rp-vitrine-ev-action,
.rp-vitrine-page .rp-vitrine-event-card:hover .rp-vitrine-ev-action--past-end {
  background: var(--lg-fill-elevated) !important;
  border-color: rgba(197, 165, 114, 0.28) !important;
}

.rp-vitrine-page .rp-vitrine-city-toggle,
.rp-vitrine-page .rp-vitrine-date-toggle,
.rp-vitrine-page .rp-vitrine-city-menu {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  box-shadow: var(--lg-shadow-sm) !important;
}

.rp-vitrine-page .rp-vitrine-city-menu {
  background: var(--lg-fill-deep) !important;
}

.rp-vitrine-page .rp-vitrine-events-empty {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px dashed rgba(197, 165, 114, 0.28) !important;
}

.load-more-button {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius-pill) !important;
  box-shadow: none !important;
}

/* ---------- Footer ---------- */
/* Plus sombre que le fond page — site public uniquement */
body > footer:not(.rp-dash-footer) {
  background: var(--footer-bg, #070707) !important;
  background-color: var(--footer-bg, #070707) !important;
}

.footer-email-button {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius) !important;
  box-shadow: none !important;
}

/**
 * Boutons : pas de sélecteur universel `button { }` — il forçait le verre sur tout
 * (profil, dashboard, nav utilisateur, etc.). Opt-in explicite avec .lg-btn ou les
 * classes déjà définies dans ce fichier (.auth-submit, .filter-button, …).
 */
.lg-btn,
button.lg-btn,
input.lg-btn[type='submit'],
input.lg-btn[type='button'],
input.lg-btn[type='reset'] {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius-pill) !important;
  box-shadow: none !important;
  color: var(--text, #eaeaea) !important;
}

.lg-btn:hover,
button.lg-btn:hover,
input.lg-btn[type='submit']:hover,
input.lg-btn[type='button']:hover,
input.lg-btn[type='reset']:hover {
  background: var(--lg-fill-elevated) !important;
  border-color: rgba(197, 165, 114, 0.35) !important;
}

button:disabled,
input:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* PrimaryButton — iOS capsule dorée (remplace gradient verre / texte noir) */
:is(
  .primary-button,
  .auth-submit,
  .social-complete-submit,
  .profile-edit-submit,
  .delete-account-submit,
  .reservation-btn-submit,
  .reservation-promoter-add-btn,
  .reservation-feedback-cta,
  .event-detail-reserve-btn,
  .event-detail-btn-reserve,
  .event-detail-btn-primary,
  .hero-ref-btn-primary,
  .premium-app-button,
  .app-button.primary,
  .app-button.event-cta-primary,
  .event-cta-primary,
  a.og-cta-btn,
  a.og-final-cta-btn,
  .organizers-page .og-hero-cta-primary,
  .organizers-page .og-features-cta,
  .organizers-page .og-steps-howit-cta,
  .organizers-page .og-stats-cta,
  a.rp-hero-cta,
  .nav-links a.nav-auth-link.nav-auth-cta,
  .legal-page-admin-btn,
  .reservation-service-fee-info-modal-cta,
  .ns-stripe-deposit-modal__submit,
  .rp-waitlist button[type='submit'],
  .rp-form button[type='submit'],
  input.lg-btn[type='submit'],
  #reservation-confirm-submit,
  button.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline']),
  a.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline'])
):not(:disabled):not(.is-loading) {
  background: var(--accent, #c5a572) !important;
  background-image: none !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

:is(
  .primary-button,
  .auth-submit,
  .social-complete-submit,
  .profile-edit-submit,
  .delete-account-submit,
  .reservation-btn-submit,
  .reservation-promoter-add-btn,
  .reservation-feedback-cta,
  .event-detail-reserve-btn,
  .event-detail-btn-reserve,
  .event-detail-btn-primary,
  .hero-ref-btn-primary,
  .premium-app-button,
  .app-button.primary,
  .app-button.event-cta-primary,
  .event-cta-primary,
  a.og-cta-btn,
  a.og-final-cta-btn,
  .organizers-page .og-hero-cta-primary,
  .organizers-page .og-features-cta,
  .organizers-page .og-steps-howit-cta,
  .organizers-page .og-stats-cta,
  a.rp-hero-cta,
  .nav-links a.nav-auth-link.nav-auth-cta,
  .legal-page-admin-btn,
  .reservation-service-fee-info-modal-cta,
  .ns-stripe-deposit-modal__submit,
  .rp-waitlist button[type='submit'],
  .rp-form button[type='submit'],
  input.lg-btn[type='submit'],
  #reservation-confirm-submit,
  button.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline']),
  a.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline'])
):disabled,
:is(
  .primary-button,
  .auth-submit,
  .social-complete-submit,
  .profile-edit-submit,
  .delete-account-submit,
  .reservation-btn-submit,
  .reservation-promoter-add-btn,
  .reservation-feedback-cta,
  .event-detail-reserve-btn,
  .event-detail-btn-reserve,
  .event-detail-btn-primary,
  .hero-ref-btn-primary,
  .premium-app-button,
  .app-button.primary,
  .app-button.event-cta-primary,
  .event-cta-primary,
  a.og-cta-btn,
  a.og-final-cta-btn,
  .organizers-page .og-hero-cta-primary,
  .organizers-page .og-features-cta,
  .organizers-page .og-steps-howit-cta,
  .organizers-page .og-stats-cta,
  a.rp-hero-cta,
  .nav-links a.nav-auth-link.nav-auth-cta,
  .legal-page-admin-btn,
  .reservation-service-fee-info-modal-cta,
  .ns-stripe-deposit-modal__submit,
  .rp-waitlist button[type='submit'],
  .rp-form button[type='submit'],
  input.lg-btn[type='submit'],
  #reservation-confirm-submit,
  button.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline']),
  a.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline'])
).is-loading {
  opacity: 0.45 !important;
  color: #fff !important;
  background: var(--accent, #c5a572) !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline']):hover,
a.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline']):hover {
  background: var(--accent-hover, #d4b87a) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: none !important;
  transform: none !important;
}

/* Secondaires / contour */
.app-button.secondary,
.app-button-secondary,
.app-button[class*='outline'],
.event-detail-btn-secondary,
.hero-ref-btn-secondary,
.profile-edit-cancel,
.reservation-btn-cancel {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: 999px !important;
  color: var(--text) !important;
  box-shadow: none !important;
}

/* Social */
.auth-social-btn {
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius-pill) !important;
  box-shadow: none !important;
}

.auth-social-apple {
  background: linear-gradient(165deg, rgba(28, 28, 32, 0.88), rgba(18, 18, 22, 0.78)) !important;
  color: #fff !important;
}

.auth-social-google {
  background: var(--lg-fill) !important;
  color: var(--text) !important;
}

/* Petits contrôles */
.auth-password-toggle,
.date-filter-clear {
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}

.country-picker-trigger {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  box-shadow: none !important;
}

/* Stores & média */
.final-app-store-button,
.final-play-store-button,
.features-store-button {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

.premium-play-button {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  box-shadow: none !important;
}

/* Onglets type bouton */
.promoter-auth-tab,
.reservation-list-tab {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  border-radius: var(--lg-radius-pill) !important;
  box-shadow: none !important;
  color: var(--text) !important;
}

.promoter-auth-tab.is-active,
.reservation-list-tab.active {
  background: linear-gradient(145deg, rgba(197, 165, 114, 0.35), rgba(197, 165, 114, 0.2)) !important;
  border-color: rgba(197, 165, 114, 0.45) !important;
  color: #ffffff !important;
}

/* Mes réservations : « À venir » / « Passées » — texte blanc fixe (l’actif se lit au fond doré, pas à la couleur du texte) */
.reservation-list-tab,
.reservation-list-tab:hover,
.reservation-list-tab.active {
  color: #ffffff !important;
}

/* Panier réservation */
.reservation-recap-btn-panier {
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius-pill) !important;
  box-shadow: none !important;
}

/* Fermeture modales */
.reservation-detail-modal-close,
.reservation-confirm-modal-close,
.reservation-plan-modal-close {
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}

/* Texte « voir plus » fiche événement */
.event-detail-desc-more {
  background: var(--lg-fill) !important;
  backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  border-radius: var(--lg-radius-pill) !important;
  box-shadow: none !important;
  padding: 8px 16px !important;
  margin-top: 10px !important;
  color: var(--event-primary, #c5a572) !important;
}

/* ---------- Auth (login / inscription) ---------- */
/* Pas de cadre « verre » sur les formulaires — .auth-card / modale (style.css). */
.auth-form,
.social-complete-form {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.auth-field-wrap input,
.auth-field-wrap select,
.auth-field-phone .country-picker-trigger {
  background: rgba(0, 0, 0, 0.25) !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  border-radius: 14px !important;
}

/* ---------- Réservation & modales ---------- */
.reservation-page-wrap,
.reservation-list-wrap,
.reservation-page-form,
.reservation-detail-modal-dialog {
  border-radius: var(--lg-radius-card) !important;
}

/*
 * Modal panier — carte flottante type iOS (Liquid Glass) : 4 coins arrondis,
 * pas collée aux bords (marges sur .reservation-recap-modal), ombre tout autour.
 */
.reservation-recap-modal-sheet {
  position: relative !important;
  overflow: hidden !important;
  border-radius: var(--lg-radius-card) !important;
  background: linear-gradient(
    180deg,
    rgba(56, 56, 64, 0.55) 0%,
    rgba(32, 32, 38, 0.62) 14%,
    rgba(22, 22, 28, 0.78) 42%,
    rgba(14, 14, 18, 0.92) 100%
  ) !important;
  backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  box-shadow:
    0 20px 60px rgba(0, 0, 0, 0.5),
    0 8px 24px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    inset 0 0 0 1px rgba(197, 165, 114, 0.06) !important;
}

/* Reflet bord sup. (effet verre / specular) */
.reservation-recap-modal-sheet::before {
  content: '';
  position: absolute;
  left: 10%;
  right: 10%;
  top: 0;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.42) 50%,
    transparent 100%
  );
  pointer-events: none;
  z-index: 1;
}

.reservation-recap-modal .reservation-recap-modal-handle {
  width: 44px !important;
  height: 5px !important;
  margin: 6px auto 14px !important;
  background: rgba(255, 255, 255, 0.32) !important;
  border-radius: 100px !important;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.35) inset !important;
  position: relative;
  z-index: 2;
}

.reservation-recap-modal .reservation-recap-modal-content {
  position: relative;
  z-index: 2;
}

/* Panier modal : pas de bandeau opaque sous les actions, CTA type verre */
.reservation-recap-modal .reservation-recap-actions {
  background: transparent !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.reservation-recap-modal .reservation-recap-actions .reservation-btn-submit:not(:disabled) {
  background: var(--accent, #c5a572) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  color: #fff !important;
}

.reservation-recap-modal .reservation-recap-actions .reservation-btn-submit:not(:disabled):hover {
  background: var(--accent-hover, #d4b87a) !important;
  box-shadow: none !important;
}

.reservation-recap-modal .reservation-recap-actions .reservation-btn-submit:disabled {
  opacity: 0.45 !important;
  background: var(--accent, #c5a572) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  color: #fff !important;
}

.reservation-recap-modal-backdrop,
.reservation-detail-modal-backdrop {
  background: rgba(0, 0, 0, 0.42) !important;
  backdrop-filter: blur(20px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(150%) !important;
}

.reservation-recap-bottom-bar {
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  border-top: 1px solid var(--lg-stroke) !important;
}

/* Fiche événement (event.html) : verre sur les cartes — pas de cadre autour de .event-detail-reserve-section */
@media (min-width: 1024px) {
  .event-detail-reserve-section {
    padding: 0 20px 32px !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .event-detail-reserve-section .event-detail-reserve-card {
    background: rgba(255, 255, 255, 0.045) !important;
    background-color: rgba(255, 255, 255, 0.045) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: 16px !important;
    box-shadow: none !important;
  }

  .event-detail-reserve-section .event-detail-reserve-card:hover {
    border-color: rgba(255, 255, 255, 0.16) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    background-color: rgba(255, 255, 255, 0.06) !important;
    box-shadow: none !important;
  }

  .event-detail-reserve-section .event-detail-reserve-card-tickets {
    border-color: rgba(255, 255, 255, 0.09) !important;
  }

  .event-detail-reserve-section .event-detail-reserve-card-tickets:hover {
    border-color: rgba(255, 255, 255, 0.16) !important;
  }

  .event-detail-reserve-section .event-detail-reserve-card .event-detail-reserve-btn {
    max-width: 100% !important;
    width: 100% !important;
    flex: none !important;
  }
}

/* ---------- Page profil (liquid glass ciblé — pas via button { } global) ---------- */
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .home-page,
  .reservation-page-body {
    background: transparent !important;
    background-image: none !important;
  }

  .profile-page {
    background: var(--bg, #070707) !important;
    background-color: var(--bg, #070707) !important;
    background-image: none !important;
  }

  .profile-page .profile-wrap {
    display: flex;
    flex-direction: column;
    gap: clamp(1rem, 3vw, 1.5rem);
  }

  .profile-page .profile-hero {
    padding: clamp(0.75rem, 2vw, 1rem) 0 0;
  }

  .profile-page .profile-hero-inner,
  .profile-page .profile-card {
    background:
      linear-gradient(
        180deg,
        rgba(255, 255, 255, 0.055) 0%,
        rgba(255, 255, 255, 0.018) 16%,
        transparent 38%
      ),
      var(--surface) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: var(--lg-radius-card) !important;
    box-shadow: none !important;
  }

  @media (min-width: 900px) {
    .profile-page .profile-card {
      background: transparent !important;
      background-image: none !important;
      border: none !important;
      border-radius: 0 !important;
    }

    .profile-page .profile-menu-list > li,
    .profile-page .profile-footer {
      background:
        linear-gradient(
          180deg,
          rgba(255, 255, 255, 0.055) 0%,
          rgba(255, 255, 255, 0.018) 16%,
          transparent 38%
        ),
        var(--surface) !important;
      border: 1px solid rgba(255, 255, 255, 0.08) !important;
      border-radius: var(--lg-radius-card) !important;
    }

    .profile-page .profile-card:hover {
      background: transparent !important;
      background-image: none !important;
      border: none !important;
    }

    .profile-page .profile-menu-list > li:hover {
      border-color: rgba(197, 165, 114, 0.28) !important;
      background:
        linear-gradient(
          180deg,
          rgba(255, 255, 255, 0.07) 0%,
          rgba(255, 255, 255, 0.025) 16%,
          transparent 38%
        ),
        var(--surface) !important;
    }

    .profile-page .profile-menu-link:hover {
      background: transparent !important;
    }
  }

  @media (max-width: 899px) {
    .profile-page .profile-card:hover {
      border-color: rgba(197, 165, 114, 0.2) !important;
      background:
        linear-gradient(
          180deg,
          rgba(255, 255, 255, 0.06) 0%,
          rgba(255, 255, 255, 0.02) 16%,
          transparent 38%
        ),
        var(--surface) !important;
    }
  }

  .profile-page .profile-hero-inner {
    padding: clamp(1.25rem, 3.5vw, 1.75rem);
  }

  .profile-page .profile-back {
    padding: 0.35rem 0.75rem !important;
    margin-left: -0.35rem;
    border-radius: var(--lg-radius-pill) !important;
    background: rgba(0, 0, 0, 0.18) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  }

  .edit-profile-page .profile-back {
    width: fit-content !important;
    max-width: max-content !important;
    min-height: 36px !important;
    padding: 0.3rem 0.65rem !important;
    margin-left: 0 !important;
  }

  .profile-page .profile-back:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(197, 165, 114, 0.28) !important;
    color: var(--accent, #c5a572) !important;
  }

  .profile-page .profile-menu-item-edit {
    border-bottom-color: var(--lg-stroke-soft) !important;
  }

  .profile-page .profile-menu-link {
    border-bottom-color: var(--lg-stroke-soft) !important;
  }

  .profile-page .profile-menu-link:hover {
    background: rgba(255, 255, 255, 0.05) !important;
  }

  .profile-page .profile-menu-icon {
    background: rgba(197, 165, 114, 0.1) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  }

  .profile-page .profile-menu-link:hover .profile-menu-icon {
    background: rgba(197, 165, 114, 0.18) !important;
    border-color: rgba(197, 165, 114, 0.25) !important;
  }

  .profile-page .profile-menu-badge {
    background: rgba(0, 0, 0, 0.25) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
  }

  .profile-page .profile-edit-panel {
    background: rgba(0, 0, 0, 0.22) !important;
    border-top: 1px solid var(--lg-stroke-soft) !important;
    backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  }

  .edit-profile-page .edit-profile-card {
    background: rgba(255, 255, 255, 0.045) !important;
    background-image: none !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: var(--lg-radius-card, 28px) !important;
    padding: 1rem 1.1rem 1.15rem !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
  }

  .edit-profile-page .profile-edit-form,
  .edit-profile-page .edit-profile-form {
    padding: 0 !important;
  }

  .edit-profile-page .profile-edit-field {
    padding: 0 !important;
    background: transparent !important;
    background-image: none !important;
    border: none !important;
    border-radius: 0 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    gap: 0.4rem !important;
  }

  .edit-profile-page .profile-edit-field input {
    background: rgba(255, 255, 255, 0.04) !important;
    background-image: none !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 14px !important;
    color: #eaeaea !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    -webkit-appearance: none;
    appearance: none;
  }

  .edit-profile-page .profile-edit-field input:focus {
    border-color: rgba(197, 165, 114, 0.45) !important;
    background: rgba(255, 255, 255, 0.06) !important;
    outline: none !important;
    box-shadow: none !important;
  }

  .edit-profile-page .profile-edit-field input:-webkit-autofill,
  .edit-profile-page .profile-edit-field input:-webkit-autofill:hover,
  .edit-profile-page .profile-edit-field input:-webkit-autofill:focus {
    -webkit-text-fill-color: #eaeaea !important;
    caret-color: #eaeaea;
    box-shadow: 0 0 0 1000px #141414 inset !important;
    transition: background-color 99999s ease-in-out 0s;
  }

  .profile-page:not(.edit-profile-page) .profile-edit-form {
    gap: clamp(1.1rem, 3vw, 1.5rem) !important;
    padding: 1.1rem 1rem 1.35rem !important;
  }

  .edit-profile-page .profile-edit-form,
  .edit-profile-page .edit-profile-form {
    padding: 0 !important;
    gap: 1rem !important;
  }

  .profile-page .profile-edit-field {
    padding: clamp(0.85rem, 2.2vw, 1.05rem) !important;
    background: rgba(255, 255, 255, 0.04) !important;
    background-image: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: var(--lg-radius) !important;
    gap: 0.5rem !important;
  }

  .profile-page .profile-edit-field label {
    color: rgba(234, 234, 234, 0.88) !important;
    letter-spacing: 0.01em;
  }

  .profile-page .profile-edit-field input {
    background: rgba(0, 0, 0, 0.28) !important;
    background-image: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 14px !important;
    color: #eaeaea !important;
    box-shadow: none !important;
  }

  .profile-page .profile-edit-field input:focus {
    border-color: rgba(197, 165, 114, 0.5) !important;
    box-shadow: none !important;
    outline: none !important;
  }

  .profile-page .profile-edit-field input:-webkit-autofill,
  .profile-page .profile-edit-field input:-webkit-autofill:hover,
  .profile-page .profile-edit-field input:-webkit-autofill:focus {
    -webkit-text-fill-color: #eaeaea !important;
    caret-color: #eaeaea;
    box-shadow: 0 0 0 1000px #141414 inset !important;
    transition: background-color 99999s ease-in-out 0s;
  }

  .profile-page .profile-edit-field input::placeholder {
    color: rgba(180, 180, 180, 0.55) !important;
  }

  .profile-page .profile-edit-actions {
    margin-top: 0.35rem !important;
    padding-top: 0.65rem !important;
    border-top: 1px solid var(--lg-stroke-soft) !important;
  }

  .profile-page .profile-footer {
    border-top-color: var(--lg-stroke-soft) !important;
  }

  .profile-page .profile-logout {
    background: rgba(0, 0, 0, 0.2) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    border-radius: var(--lg-radius) !important;
    backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
  }

  .profile-page .profile-logout:hover {
    background: rgba(244, 67, 54, 0.12) !important;
    border-color: rgba(244, 67, 54, 0.35) !important;
  }

  @media (prefers-reduced-motion: reduce) {
    .profile-page .profile-hero-inner,
    .profile-page .profile-card {
      background: var(--surface, #111111) !important;
      box-shadow: none !important;
    }

    .profile-page .profile-hero-inner,
    .profile-page .profile-card,
    .profile-page .profile-edit-panel,
    .profile-page .profile-edit-field,
    .profile-page .profile-edit-field input,
    .profile-page .profile-back,
    .profile-page .profile-menu-icon,
    .profile-page .profile-logout {
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
    }
  }
}

/* Profil — aucune ombre portée */
body.profile-page,
body.profile-page * {
  box-shadow: none !important;
}

/* ---------- Page réservation événement / Mes réservations (liquid glass) ---------- */
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  .reservation-page-main {
    position: relative;
    z-index: 0;
    overflow: visible;
  }

  @media (min-width: 1024px) {
    .reservation-page-wrap,
    .reservation-page-form,
    .reservation-page-layout,
    .reservation-page-main {
      overflow: visible !important;
    }

  }

  .reservation-page-body #reservation-list-wrap > nav,
  .reservation-page-body #reservation-wrap > nav,
  .reservation-page-body #reservation-wrap .reservation-page-breadcrumb {
    padding: 0.65rem 1rem !important;
    margin-bottom: 1.75rem !important;
    width: fit-content;
    max-width: 100%;
    background: rgba(0, 0, 0, 0.22) !important;
    backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    border-radius: var(--lg-radius-pill) !important;
    box-shadow: var(--lg-shadow-sm) !important;
  }

  /* Fil d’Ariane : la pilule + fit-content cassent le rendu dès que ça wrap sur mobile */
  @media (max-width: 768px) {
    .reservation-page-body #reservation-list-wrap > nav,
    .reservation-page-body #reservation-wrap .reservation-page-breadcrumb {
      width: 100% !important;
      max-width: 100% !important;
      box-sizing: border-box !important;
      border-radius: var(--lg-radius) !important;
      padding: 0.7rem 0.85rem !important;
      margin-bottom: 1.25rem !important;
      gap: 0.35rem 0.45rem !important;
      align-items: flex-start !important;
      align-content: flex-start !important;
      line-height: 1.45 !important;
      font-size: 0.72rem !important;
    }

    .reservation-page-body #reservation-list-wrap > nav a,
    .reservation-page-body #reservation-wrap .reservation-page-breadcrumb a,
    .reservation-page-breadcrumb-current {
      line-height: 1.4 !important;
      word-break: break-word !important;
      overflow-wrap: anywhere !important;
    }

    .reservation-page-breadcrumb-sep {
      line-height: 1.4 !important;
      opacity: 0.45 !important;
    }
  }

  .reservation-page-hero {
    padding: clamp(0.85rem, 2vw, 1.15rem) !important;
    margin-bottom: clamp(1.35rem, 3vw, 2rem) !important;
    border-bottom: none !important;
    background: rgba(255, 255, 255, 0.045) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: var(--lg-radius-card, 28px) !important;
    box-shadow: none !important;
    gap: clamp(1.1rem, 2.5vw, 1.75rem) !important;
  }

  @media (max-width: 768px) {
    .reservation-page-hero {
      margin-top: 0 !important;
    }

    body.reservation-page-body > main.reservation-page-main > .reservation-page-hero-back {
      margin-top: 4.5rem !important;
    }
  }

  .reservation-hero-logo {
    background: rgba(0, 0, 0, 0.25) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .reservation-plan-salle-wrap,
  .reservation-plan-inline {
    background: rgba(0, 0, 0, 0.28) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    box-shadow: var(--lg-shadow-sm) !important;
  }

  .reservation-page-form .reservation-section {
    margin-bottom: clamp(1.35rem, 3.5vw, 2rem) !important;
    padding: clamp(1.1rem, 2.8vw, 1.4rem) !important;
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    border-radius: var(--lg-radius-card) !important;
    box-shadow: none !important;
    gap: 1.35rem !important;
  }

  .reservation-page-form .reservation-section.reservation-section-info,
  .reservation-page-form .reservation-section.reservation-section-promo,
  .reservation-page-form .reservation-section.reservation-section-tickets,
  .reservation-page-form .reservation-section.reservation-section-info *,
  .reservation-page-form .reservation-section.reservation-section-promo * {
    box-shadow: none !important;
  }

  .reservation-section-info #reservation-guests,
  .reservation-section-info #reservation-arrival,
  .reservation-section-info #reservation-promoter,
  .reservation-section-info .reservation-table-card,
  .reservation-section-info .reservation-table-card:hover,
  .reservation-section-info .reservation-table-card:has(input[type='radio']:checked),
  .reservation-section-info .reservation-field input,
  .reservation-section-info .reservation-field select,
  .reservation-section-info .reservation-plan-salle-wrap,
  .reservation-section-info .reservation-plan-inline {
    box-shadow: none !important;
  }

  .reservation-page-form .reservation-section.reservation-section-alcohols,
  .reservation-page-form .reservation-section.reservation-section-alcohols * {
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-section.reservation-section-alcohols .reservation-alcohol-group,
  .reservation-page-body .reservation-section.reservation-section-alcohols .reservation-alcohol-group:hover,
  .reservation-page-body .reservation-section.reservation-section-alcohols .reservation-alcohol-group-inner,
  .reservation-page-body .reservation-section.reservation-section-alcohols .reservation-alcohol-group:hover .reservation-alcohol-group-inner,
  .reservation-page-body .reservation-section.reservation-section-alcohols .reservation-alcohol-item,
  .reservation-page-body .reservation-section.reservation-section-alcohols .reservation-filter-btn,
  .reservation-page-body .reservation-section.reservation-section-alcohols .reservation-filter-btn.active {
    box-shadow: none !important;
  }

  /* Mobile : sections en --surface */
  @media (max-width: 768px) {
    .reservation-page-form .reservation-section.reservation-section-info,
    .reservation-page-form .reservation-section.reservation-section-promo,
    .reservation-page-form .reservation-section.reservation-section-tickets,
    .reservation-page-form .reservation-section.reservation-section-alcohols {
      background: var(--surface, #111111) !important;
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
      border: 1px solid var(--lg-stroke-soft) !important;
      border-radius: var(--lg-radius-card) !important;
      box-shadow: none !important;
    }
  }

  .reservation-page-form .reservation-section:last-of-type {
    margin-bottom: 0 !important;
  }

  .reservation-section-alcohols .reservation-filters {
    border-bottom-color: var(--lg-stroke-soft) !important;
  }

  .reservation-page-body .reservation-field input[type='number'],
  .reservation-page-body .reservation-field input[type='text'],
  .reservation-page-body .reservation-field select {
    background: var(--surface, #111111) !important;
    background-color: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-field input:hover,
  .reservation-page-body .reservation-field select:hover {
    border-color: rgba(255, 255, 255, 0.16) !important;
    background: var(--surface-variant, #1a1a1a) !important;
  }

  .reservation-page-body .reservation-field input:focus,
  .reservation-page-body .reservation-field select:focus {
    border-color: rgba(197, 165, 114, 0.55) !important;
    background: rgba(197, 165, 114, 0.08) !important;
    box-shadow: 0 0 0 2px rgba(197, 165, 114, 0.14) !important;
    transform: none !important;
  }

  /* Champs héros (personnes + créneau + promoteur) : même matériau que les cartes table */
  .reservation-page-body #reservation-guests,
  .reservation-page-body #reservation-arrival,
  .reservation-page-body .reservation-promoter-editor,
  .reservation-page-body .reservation-promoter-locked {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    border-radius: var(--lg-radius-card) !important;
    box-shadow: none !important;
  }

  .reservation-page-body #reservation-guests:hover,
  .reservation-page-body #reservation-arrival:hover,
  .reservation-page-body .reservation-promoter-editor:hover {
    border-color: rgba(255, 255, 255, 0.14) !important;
    background: var(--surface-variant, #1a1a1a) !important;
  }

  .reservation-page-body #reservation-guests:focus,
  .reservation-page-body #reservation-arrival:focus,
  .reservation-page-body .reservation-promoter-editor:focus-within {
    border-color: rgba(197, 165, 114, 0.55) !important;
    background: var(--surface-variant, #1a1a1a) !important;
    box-shadow: 0 0 0 2px rgba(197, 165, 114, 0.14) !important;
  }

  /* Section Informations — priorité sur les ombres champs personnes / créneau / promoteur */
  .reservation-page-body .reservation-section.reservation-section-info #reservation-guests,
  .reservation-page-body .reservation-section.reservation-section-info #reservation-guests:hover,
  .reservation-page-body .reservation-section.reservation-section-info #reservation-guests:focus,
  .reservation-page-body .reservation-section.reservation-section-info #reservation-arrival,
  .reservation-page-body .reservation-section.reservation-section-info #reservation-arrival:hover,
  .reservation-page-body .reservation-section.reservation-section-info #reservation-arrival:focus,
  .reservation-page-body .reservation-section.reservation-section-info .reservation-promoter-editor,
  .reservation-page-body .reservation-section.reservation-section-info .reservation-promoter-editor:hover,
  .reservation-page-body .reservation-section.reservation-section-info .reservation-promoter-editor:focus-within,
  .reservation-page-body .reservation-section.reservation-section-info .reservation-promoter-locked,
  .reservation-page-body .reservation-section.reservation-section-info #reservation-promoter,
  .reservation-page-body .reservation-section.reservation-section-info #reservation-promoter:hover,
  .reservation-page-body .reservation-section.reservation-section-info #reservation-promoter:focus,
  .reservation-page-body .reservation-section.reservation-section-info .reservation-field input[type='number'],
  .reservation-page-body .reservation-section.reservation-section-info .reservation-field input[type='number']:hover,
  .reservation-page-body .reservation-section.reservation-section-info .reservation-field input[type='number']:focus,
  .reservation-page-body .reservation-section.reservation-section-info .reservation-field select,
  .reservation-page-body .reservation-section.reservation-section-info .reservation-field select:hover,
  .reservation-page-body .reservation-section.reservation-section-info .reservation-field select:focus {
    box-shadow: none !important;
  }

  #reservation-promoter {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }

  .reservation-page-body .reservation-filter-btn {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-filter-btn.active {
    background: var(--surface-variant, #1a1a1a) !important;
    border-color: rgba(197, 165, 114, 0.45) !important;
    box-shadow: none !important;
  }

  /* Verre sur l’intérieur : la section alcools peut être « plate » sur mobile */
  .reservation-page-body .reservation-alcohol-group {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
  }

  .reservation-page-body .reservation-alcohol-group:hover {
    border-color: transparent !important;
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-alcohol-group-inner {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    border-radius: var(--lg-radius-card) !important;
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-alcohol-group:hover .reservation-alcohol-group-inner {
    border-color: rgba(197, 165, 114, 0.28) !important;
    background: var(--surface-variant, #1a1a1a) !important;
  }

  .reservation-page-body .reservation-alcohol-item {
    background: var(--surface-variant, #1a1a1a) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .reservation-page-body .reservation-recap {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid var(--lg-stroke) !important;
    border-radius: var(--lg-radius-card) !important;
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-recap,
  .reservation-page-body .reservation-recap * {
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-recap::before {
    opacity: 0.85 !important;
  }

  .reservation-page-body .reservation-recap-header {
    border-bottom-color: var(--lg-stroke-soft) !important;
  }

  .reservation-page-body .reservation-recap-badge {
    background: rgba(197, 165, 114, 0.14) !important;
    border: 1px solid rgba(197, 165, 114, 0.25) !important;
  }

  .reservation-page-body .reservation-list-title {
    margin-bottom: 1.25rem !important;
  }

  .reservation-page-body .reservation-list-card {
    text-align: left !important;
    background: rgba(255, 255, 255, 0.045) !important;
    background-color: rgba(255, 255, 255, 0.045) !important;
    background-image: none !important;
    backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    border: 1px solid rgba(255, 255, 255, 0.09) !important;
    border-radius: 16px !important;
    padding: 8px !important;
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-list-card:hover {
    background: rgba(255, 255, 255, 0.06) !important;
    background-color: rgba(255, 255, 255, 0.06) !important;
    background-image: none !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-list-ticket-sheet {
    background: transparent !important;
    background-image: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: none !important;
    box-shadow: none !important;
  }

  /*
   * Modal détail (liste → fiche / billet) : même matériau que panier + confirmation
   * — une seule coque verre sur .reservation-detail-modal-dialog, carte interne transparente.
   */
  .reservation-page-body .reservation-detail-modal {
    background: transparent !important;
  }

  .reservation-page-body .reservation-detail-modal-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
    background: rgba(0, 0, 0, 0.76) !important;
    backdrop-filter: blur(18px) saturate(125%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(125%) !important;
  }

  .reservation-page-body .reservation-detail-modal-dialog {
    position: relative !important;
    overflow: visible !important;
    background: var(--surface, #111111) !important;
    background-color: var(--surface, #111111) !important;
    background-image: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: var(--lg-radius-card) !important;
    box-shadow: 0 24px 56px rgba(0, 0, 0, 0.48) !important;
    max-width: min(100%, 26rem) !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  @media (min-width: 768px) {
    .reservation-page-body .reservation-detail-modal-dialog {
      max-width: min(92vw, 36rem) !important;
      width: min(92vw, 36rem) !important;
    }

    .reservation-page-body .reservation-detail-modal .reservation-detail-ticket-sheet {
      display: flex !important;
      flex-direction: column !important;
      max-width: 100% !important;
      width: 100% !important;
      margin-left: auto !important;
      margin-right: auto !important;
      box-sizing: border-box !important;
      padding-left: var(--ticket-pad-x, 1.1rem) !important;
      padding-right: var(--ticket-pad-x, 1.1rem) !important;
    }

    .reservation-page-body .reservation-detail-modal .reservation-detail-ticket-actions {
      display: grid !important;
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      gap: 0.55rem !important;
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
      margin: 0 !important;
    }
  }

  @media (min-width: 1100px) {
    .reservation-page-body .reservation-detail-modal-dialog {
      max-width: min(92vw, 38rem) !important;
      width: min(92vw, 38rem) !important;
    }

    .reservation-page-body .reservation-detail-modal .reservation-detail-ticket-sheet {
      max-width: 100% !important;
    }
  }

  .reservation-page-body .reservation-detail-modal-dialog::before {
    display: none !important;
  }

  .reservation-page-body #reservation-detail-modal-body {
    z-index: 2 !important;
  }

  /* La popup actuelle utilise .reservation-detail-card (et non .rd-sheet) */
  .reservation-page-body .reservation-detail-card,
  .reservation-page-body .reservation-detail-card--ticket {
    border-radius: var(--lg-radius-card) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    background: var(--surface, #111111) !important;
    background-color: var(--surface, #111111) !important;
    background-image: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-detail-modal .reservation-detail-card--ticket {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  .reservation-detail-modal .reservation-detail-card--ticket .reservation-detail-ticket-head {
  border: none !important;
}

  .reservation-page-body .reservation-detail-modal .reservation-detail-card--ticket .reservation-detail-ticket-head {
  border: none !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.reservation-page-body .reservation-detail-modal .reservation-detail-ticket-sheet {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
  }

  .reservation-page-body .reservation-detail-modal .reservation-detail-ticket-sheet::before,
  .reservation-page-body .reservation-detail-modal .reservation-detail-ticket-sheet::after {
    display: none !important;
  }

  .reservation-page-body .reservation-detail-card .reservation-detail-body,
  .reservation-page-body .reservation-detail-card--ticket .reservation-detail-body,
  .reservation-page-body .reservation-detail-body--ticket-extra {
    background: transparent !important;
  }

  .reservation-page-body .reservation-detail-modal .rd-sheet {
    background: transparent !important;
  }

  .reservation-page-body .reservation-detail-modal .rd-block {
    background: rgba(0, 0, 0, 0.16) !important;
    backdrop-filter: blur(8px) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(8px) saturate(var(--lg-saturate-soft)) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
  }

  .reservation-page-body .reservation-detail-modal .rd-qr-inner {
    box-shadow:
      0 6px 24px rgba(0, 0, 0, 0.35),
      inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
  }

  .reservation-page-loading,
  .reservation-page-error,
  .reservation-list-loading,
  .reservation-list-empty {
    padding: clamp(1.75rem, 4vw, 2.5rem) !important;
    border-radius: var(--lg-radius-card) !important;
    background: rgba(0, 0, 0, 0.28) !important;
    backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    box-shadow: var(--lg-shadow-sm) !important;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
  }

  /* Modale confirmation : même famille que le panier (carte flottante, verre) */
  .reservation-confirm-modal {
    background: transparent !important;
  }

  .reservation-confirm-modal-backdrop {
    background: rgba(0, 0, 0, 0.42) !important;
    backdrop-filter: blur(20px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(150%) !important;
  }

  .reservation-page-body .reservation-confirm-modal-dialog {
    position: relative !important;
    overflow: hidden !important;
    background: linear-gradient(
      175deg,
      rgba(48, 48, 56, 0.58) 0%,
      rgba(28, 28, 34, 0.72) 35%,
      rgba(14, 14, 18, 0.94) 100%
    ) !important;
    backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: var(--lg-radius-card) !important;
    box-shadow:
      0 24px 64px rgba(0, 0, 0, 0.55),
      0 8px 24px rgba(0, 0, 0, 0.28),
      inset 0 1px 0 rgba(255, 255, 255, 0.1),
      inset 0 0 0 1px rgba(197, 165, 114, 0.07) !important;
  }

  .reservation-page-body .reservation-confirm-modal-dialog::before {
    content: '';
    position: absolute;
    left: 8%;
    right: 8%;
    top: 0;
    height: 1px;
    background: linear-gradient(
      90deg,
      transparent 0%,
      rgba(255, 255, 255, 0.38) 50%,
      transparent 100%
    );
    pointer-events: none;
    z-index: 1;
  }

  .reservation-page-body .reservation-confirm-modal-body {
    position: relative;
    z-index: 2;
  }

  .reservation-page-body .reservation-plan-modal-content {
    background: linear-gradient(
      175deg,
      rgba(28, 28, 34, 0.94) 0%,
      rgba(12, 12, 16, 0.92) 100%
    ) !important;
    backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
    border: 1px solid var(--lg-stroke) !important;
    border-radius: var(--lg-radius-card) !important;
    box-shadow: var(--lg-shadow) !important;
  }

  @media (prefers-reduced-motion: reduce) {
    .reservation-page-hero,
    .reservation-page-form .reservation-section,
    .reservation-page-body .reservation-recap,
    .reservation-page-body .reservation-list-card,
    .reservation-page-body .reservation-alcohol-group-inner,
    .reservation-page-body .reservation-table-card,
    .reservation-page-body #reservation-guests,
    .reservation-page-body #reservation-arrival,
    .reservation-page-body .reservation-promoter-editor,
    .reservation-page-body .reservation-promoter-locked,
    .reservation-recap-modal-sheet,
    .reservation-recap-modal-backdrop,
    .reservation-confirm-modal-backdrop,
    .reservation-page-body .reservation-confirm-modal-dialog,
    .reservation-page-body .reservation-detail-modal-dialog,
    .reservation-page-body .reservation-detail-modal .rd-block,
    .reservation-page-body #reservation-list-wrap > nav,
    .reservation-page-body #reservation-wrap .reservation-page-breadcrumb,
    .reservation-page-loading,
    .reservation-page-error {
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
    }
  }
}

/* ---------- Page réservation — palette --bg / --surface (sans dégradés dorés) ---------- */
body.reservation-page-body {
  background: var(--bg, #070707) !important;
  background-color: var(--bg, #070707) !important;
}

body.reservation-page-body > footer {
  background: var(--footer-bg, #070707) !important;
  background-color: var(--footer-bg, #070707) !important;
}

body.reservation-page-body .reservation-page-hero {
  background: rgba(255, 255, 255, 0.045) !important;
  background-color: rgba(255, 255, 255, 0.045) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  border-radius: var(--lg-radius-card, 28px) !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-page-form .reservation-section,
body.reservation-page-body .reservation-alcohol-group-inner,
body.reservation-page-body .reservation-recap,
body.reservation-page-body #reservation-guests,
body.reservation-page-body #reservation-arrival,
body.reservation-page-body .reservation-promoter-editor,
body.reservation-page-body .reservation-promoter-locked,
body.reservation-page-body .reservation-detail-modal-dialog,
body.reservation-page-body .reservation-confirm-modal-dialog,
body.reservation-page-body .reservation-plan-modal-content,
body.reservation-page-body .reservation-page-loading,
body.reservation-page-body .reservation-page-error,
body.reservation-page-body .reservation-list-loading,
body.reservation-page-body .reservation-list-empty {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-list-card {
  background: rgba(255, 255, 255, 0.045) !important;
  background-color: rgba(255, 255, 255, 0.045) !important;
  background-image: none !important;
  backdrop-filter: blur(var(--lg-blur-xs, 16px)) saturate(var(--lg-saturate-soft, 180%)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-xs, 16px)) saturate(var(--lg-saturate-soft, 180%)) !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  border-radius: 16px !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-list-ticket-sheet {
  background: transparent !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
}

body.reservation-page-body #reservation-list-wrap > nav,
body.reservation-page-body #reservation-wrap > nav,
body.reservation-page-body #reservation-wrap .reservation-page-breadcrumb {
  background: var(--surface-variant) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-hero-logo,
body.reservation-page-body .reservation-plan-salle-wrap,
body.reservation-page-body .reservation-plan-inline,
body.reservation-page-body .reservation-alcohol-item,
body.reservation-page-body .reservation-filter-btn {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-filter-btn.active {
  background: var(--surface-variant, #1a1a1a) !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
}

body.reservation-page-body .reservation-recap::before {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.18), transparent) !important;
  opacity: 0.5 !important;
}

body.reservation-page-body .reservation-alcohol-group:hover .reservation-alcohol-group-inner {
  border-color: rgba(255, 255, 255, 0.12) !important;
  background: var(--surface-variant, #1a1a1a) !important;
  background-image: none !important;
}

body.reservation-page-body .reservation-list-card:hover {
  border-color: rgba(255, 255, 255, 0.14) !important;
  background: rgba(255, 255, 255, 0.06) !important;
  background-color: rgba(255, 255, 255, 0.06) !important;
  background-image: none !important;
}

body.reservation-page-body .reservation-field input:focus,
body.reservation-page-body .reservation-field select:focus,
body.reservation-page-body #reservation-guests:focus,
body.reservation-page-body #reservation-arrival:focus,
body.reservation-page-body .reservation-promoter-editor:focus-within {
  border-color: rgba(255, 255, 255, 0.22) !important;
  background: var(--surface-variant) !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-filter-btn.active {
  background: var(--surface-variant, #1a1a1a) !important;
  border-color: rgba(255, 255, 255, 0.16) !important;
}

/* Réservation — 3 blocs : Informations, Votre sélection, Alcools */
body.reservation-page-body .reservation-section.reservation-section-info,
body.reservation-page-body .reservation-section.reservation-section-promo,
body.reservation-page-body .reservation-section.reservation-section-tickets,
body.reservation-page-body .reservation-section.reservation-section-alcohols,
body.reservation-page-body .reservation-recap {
  background: #111111 !important;
  background-color: #111111 !important;
  background-image: none !important;
}

body.reservation-page-body .reservation-detail-modal .reservation-detail-ticket-sheet {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-detail-modal .reservation-detail-ticket-facts,
body.reservation-page-body .reservation-detail-modal .reservation-detail-ticket-info-card {
  background: rgba(255, 255, 255, 0.045) !important;
  background-color: rgba(255, 255, 255, 0.045) !important;
  background-image: none !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.reservation-page-body .reservation-detail-modal-close {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.reservation-page-body .reservation-detail-modal .reservation-detail-ticket-sheet::before,
body.reservation-page-body .reservation-detail-modal .reservation-detail-ticket-sheet::after {
  display: none !important;
}

body.reservation-page-body .reservation-detail-modal-dialog::before,
body.reservation-page-body .reservation-confirm-modal-dialog::before {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent) !important;
}

@media (max-width: 768px) {
  body.reservation-page-body .reservation-page-form .reservation-section.reservation-section-info,
  body.reservation-page-body .reservation-page-form .reservation-section.reservation-section-promo,
  body.reservation-page-body .reservation-page-form .reservation-section.reservation-section-tickets,
  body.reservation-page-body .reservation-page-form .reservation-section.reservation-section-alcohols {
    background: var(--surface, #111111) !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: var(--lg-radius-card, 28px) !important;
  }
}

/* Mobile — barre « Voir mon panier » + bottom sheet */
body.reservation-page-body .reservation-recap-bottom-bar {
  background: var(--footer-bg, #070707) !important;
  background-color: var(--footer-bg, #070707) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-recap-btn-panier {
  background: var(--surface-variant, #1a1a1a) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: var(--lg-radius-pill, 999px) !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, 0.55) !important;
  cursor: not-allowed !important;
}

body.reservation-page-body .reservation-recap-btn-panier.is-ready {
  background: var(--accent, #C5A572) !important;
  border-color: transparent !important;
  color: #fff !important;
  cursor: pointer !important;
}

body.reservation-page-body .reservation-recap-btn-panier.is-ready:hover {
  background: var(--accent-hover, #D4B87A) !important;
  opacity: 1 !important;
}

body.reservation-page-body .reservation-recap-btn-badge {
  background: rgba(0, 0, 0, 0.28) !important;
}

body.reservation-page-body .reservation-recap-modal-sheet {
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, 0.055) 0%,
      rgba(255, 255, 255, 0.018) 16%,
      transparent 38%
    ),
    var(--surface) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.45) !important;
}

body.reservation-page-body .reservation-recap-modal-sheet::before {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.18), transparent) !important;
  opacity: 0.5 !important;
}

body.reservation-page-body .reservation-recap-modal-backdrop {
  background: rgba(0, 0, 0, 0.55) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.reservation-page-body .reservation-recap-modal .reservation-recap {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-recap-modal .reservation-recap::before {
  display: none !important;
}

body.reservation-page-body .reservation-recap-badge {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: var(--accent, #C5A572) !important;
}

body.reservation-page-body .reservation-recap-modal .reservation-recap-actions {
  background: transparent !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
}

body.reservation-page-body .reservation-recap-modal .reservation-recap-actions .reservation-btn-submit:not(:disabled) {
  background: var(--accent, #C5A572) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-radius: var(--lg-radius-pill, 999px) !important;
  box-shadow: none !important;
  color: #fff !important;
}

body.reservation-page-body .reservation-recap-modal .reservation-recap-actions .reservation-btn-submit:not(:disabled):hover {
  background: var(--accent-hover, #D4B87A) !important;
  box-shadow: none !important;
}

body.reservation-page-body .reservation-recap-modal .reservation-recap-actions .reservation-btn-submit:disabled {
  opacity: 0.45 !important;
  background: var(--accent, #c5a572) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  color: #fff !important;
}

@media (prefers-reduced-motion: reduce) {
  body.reservation-page-body .reservation-page-hero {
    background: rgba(255, 255, 255, 0.045) !important;
    background-color: rgba(255, 255, 255, 0.045) !important;
    animation: none !important;
  }

  body.reservation-page-body .reservation-page-form .reservation-section,
  body.reservation-page-body .reservation-recap,
  body.reservation-page-body .reservation-alcohol-group-inner,
  body.reservation-page-body .reservation-recap-modal-sheet {
    background: var(--surface) !important;
  }

  body.reservation-page-body .reservation-recap-bottom-bar {
    background: var(--footer-bg, #070707) !important;
  }
}

/* ---------- Page recherche (/search) — liquid glass ---------- */
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)) {
  body.search-page .search-page-main {
    background: transparent !important;
  }

  .search-page-hero-inner .search-page-field {
    margin-top: 0 !important;
    padding: 0.65rem 0.85rem !important;
    background: rgba(0, 0, 0, 0.28) !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    border-radius: var(--lg-radius) !important;
    backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    -webkit-backdrop-filter: blur(var(--lg-blur-xs)) saturate(var(--lg-saturate-soft)) !important;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset !important;
  }

  .search-event-card {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid var(--lg-stroke-soft) !important;
    border-radius: 28px !important;
    box-shadow: var(--lg-shadow-sm) !important;
  }

  .search-event-card img,
  .search-event-card .search-event-card-image {
    border-radius: 24px !important;
  }

  .search-event-card:hover {
    border-color: rgba(197, 165, 114, 0.22) !important;
  }

  @media (prefers-reduced-motion: reduce) {
    .search-page-field,
    .search-event-card {
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
    }
  }
}

/* Organisateurs : liens CTA (.og-cta-btn) stylés dans la section « Primaires » ci-dessus. */

/* ---------- Page d'accueil — cartes événements à venir ---------- */
body.home-page .current-events-section {
  background: transparent !important;
}

body.home-page .current-event-card {
  background: transparent !important;
  background-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.home-page .current-event-card::before {
  display: none !important;
}

body.home-page .current-event-card:hover {
  border: none !important;
  box-shadow: none !important;
  transform: translateY(-2px);
}

body.home-page .current-event-image-inner {
  background: var(--surface-variant, #1a1a1a) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.home-page .current-event-info-datetime {
  background: var(--surface-variant, #1a1a1a) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.home-page .current-event-card {
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
  }

  body.home-page .current-event-card:hover {
    transform: none !important;
  }

  body.home-page .current-event-info-datetime,
  body.home-page .current-event-image-inner {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

/* ---------- Page d'accueil — Côte d'Azur & Ibiza (liquid glass --surface) ---------- */
body.home-page .cote-azur-section,
body.home-page .ibiza-residence-section {
  background: transparent !important;
}

body.home-page .cote-azur-row,
body.home-page .ibiza-residence-shell,
body.home-page .ibiza-residence-stat,
body.home-page .ibiza-spotlight-card,
body.home-page .ibiza-lineup,
body.home-page .cote-azur-empty {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid var(--lg-stroke) !important;
  box-shadow: none !important;
}

body.home-page .cote-azur-filter:not(.is-active) {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  box-shadow: none !important;
}

body.home-page .cote-azur-filter:not(.is-active):hover {
  border-color: rgba(255, 255, 255, 0.16) !important;
  background: var(--surface-variant, #1a1a1a) !important;
  background-color: var(--surface-variant, #1a1a1a) !important;
}

body.home-page .cote-azur-row::before,
body.home-page .ibiza-residence-shell::before {
  display: none !important;
}

body.home-page .cote-azur-row {
  position: relative;
}

body.home-page .ibiza-residence-shell {
  position: relative;
}

body.home-page .cote-azur-row:hover,
body.home-page .ibiza-spotlight-card:hover {
  border-color: rgba(197, 165, 114, 0.35) !important;
  box-shadow: none !important;
}

body.home-page .ibiza-spotlight-datepill {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  box-shadow: none !important;
}

body.home-page .ibiza-lineup-item + .ibiza-lineup-item {
  border-top-color: rgba(255, 255, 255, 0.08) !important;
}

body.home-page .ibiza-lineup-link:hover {
  background: rgba(255, 255, 255, 0.04) !important;
}

body.home-page .ibiza-lineup-more-btn {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid var(--lg-stroke-soft) !important;
  box-shadow: none !important;
}

body.home-page .ibiza-lineup-more-btn:hover {
  border-color: rgba(255, 255, 255, 0.16) !important;
  background: var(--surface-variant, #1a1a1a) !important;
  background-color: var(--surface-variant, #1a1a1a) !important;
}

@media (prefers-reduced-motion: reduce) {
  body.home-page .cote-azur-row,
  body.home-page .ibiza-residence-shell,
  body.home-page .ibiza-residence-stat,
  body.home-page .ibiza-spotlight-card,
  body.home-page .ibiza-lineup,
  body.home-page .cote-azur-filter:not(.is-active),
  body.home-page .ibiza-lineup-more-btn {
    background: var(--surface) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
  }
}

/* ---------- Page Organisateurs (/organizers) ---------- */
body.organizers-page {
  background: var(--bg, #070707) !important;
  background-color: var(--bg, #070707) !important;
}

body.organizers-page > footer {
  background: var(--footer-bg, #070707) !important;
  background-color: var(--footer-bg, #070707) !important;
}

body.organizers-page .og-hero-new,
body.organizers-page .og-catchphrase,
body.organizers-page .og-features-bento,
body.organizers-page .og-steps-howit,
body.organizers-page .og-stats-section,
body.organizers-page .og-features-row,
body.organizers-page .og-resources-section,
body.organizers-page .og-faq-section,
body.organizers-page .og-steps-neo,
body.organizers-page .og-bento-final,
body.organizers-page .og-cta,
body.organizers-page .og-intro,
body.organizers-page .og-tools {
  background: var(--bg, #070707) !important;
  background-color: var(--bg, #070707) !important;
  background-image: none !important;
}

body.organizers-page .og-bento-card,
body.organizers-page .og-steps-howit-visual,
body.organizers-page .og-stat-card,
body.organizers-page .og-feat-col-card,
body.organizers-page .og-faq-item,
body.organizers-page .og-steps-neo-card,
body.organizers-page .og-bento-f-card {
  background: var(--surface, #111111) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: var(--lg-radius-card) !important;
  box-shadow: none !important;
}

body.organizers-page .og-bento-mockup {
  background: var(--surface-variant) !important;
  border-color: rgba(255, 255, 255, 0.06) !important;
}

body.organizers-page .og-bento-card:hover,
body.organizers-page .og-stat-card:hover,
body.organizers-page .og-feat-col-card:hover,
body.organizers-page .og-faq-item:hover,
body.organizers-page .og-steps-neo-card:hover,
body.organizers-page .og-steps-howit-visual:hover {
  border-color: rgba(255, 255, 255, 0.12) !important;
  box-shadow: none !important;
}

body.organizers-page .og-steps-howit-visual {
  background: var(--surface, #111111) !important;
}

body.organizers-page .og-bento-card-glow .og-bento-glow-corner,
body.organizers-page .og-feat-col-card::after,
body.organizers-page .og-bento-f-card::before,
body.organizers-page .og-bento-f-glow-left,
body.organizers-page .og-stat-card::before,
body.organizers-page .og-steps-neo-visual::after {
  display: none !important;
}

body.organizers-page .og-bento-divider {
  background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.12), transparent) !important;
}

body.organizers-page .og-bento-glow-node {
  box-shadow: none !important;
}

body.organizers-page .og-hero-video-wrap {
  box-shadow: none !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
}

body.organizers-page .og-resa-ticker {
  box-shadow: none !important;
  border-color: rgba(255, 255, 255, 0.06) !important;
}

body.organizers-page .og-resa-ticker-fade-top {
  background: linear-gradient(to bottom, rgba(30, 30, 30, 0.98) 0%, transparent 100%) !important;
}

body.organizers-page .og-resa-ticker-fade-bottom {
  background: linear-gradient(to top, rgba(30, 30, 30, 0.98) 0%, transparent 100%) !important;
}

body.organizers-page .og-stat-card-1 .og-stat-value,
body.organizers-page .og-stat-card-2 .og-stat-value {
  color: #fff !important;
}

body.organizers-page .og-feat-col-icon,
body.organizers-page .og-bento-f-icon {
  background: rgba(255, 255, 255, 0.08) !important;
}

body.organizers-page .og-bento-f-coin {
  background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.06) 60%, transparent) !important;
  box-shadow: none !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}

body.organizers-page .og-bento-f-graph-svg {
  filter: none !important;
}

body.organizers-page .og-hero-cta-primary:hover,
body.organizers-page .og-features-cta:hover,
body.organizers-page .og-stats-cta:hover,
body.organizers-page .og-cta-btn:hover,
body.organizers-page .og-steps-howit-cta:hover {
  box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.organizers-page .og-bento-card,
  body.organizers-page .og-steps-howit-visual,
  body.organizers-page .og-stat-card,
  body.organizers-page .og-feat-col-card,
  body.organizers-page .og-faq-item {
    background: var(--surface) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

/* ---------- Page RP Promoteur (/rp-promoteur) — hors dashboard autonome ---------- */
body.rp-page {
  background: var(--bg, #070707) !important;
  background-color: var(--bg, #070707) !important;
}

body.rp-page > footer {
  background: var(--footer-bg, #070707) !important;
  background-color: var(--footer-bg, #070707) !important;
}

body.rp-page .rp-hero-dashboard-shot,
body.rp-page .rp-mockup-shot {
  background: var(--surface) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}

body.rp-page .rp-hero-dashboard-shot img,
body.rp-page .rp-mockup-shot img {
  filter: none !important;
}

body.rp-page .rp-dashboard-blur,
body.rp-page .rp-value-row,
body.rp-page .rp-feature-card,
body.rp-page .rp-hero-panel,
body.rp-page .rp-metric,
body.rp-page .rp-value-media {
  background: var(--surface, #111111) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: var(--lg-radius-card) !important;
  box-shadow: none !important;
}

body.rp-page .rp-feature-card:hover,
body.rp-page .rp-value-row:hover {
  border-color: rgba(255, 255, 255, 0.12) !important;
}

body.rp-page .rp-feature-visual,
body.rp-page .rp-feature-visual-card,
body.rp-page .rp-feature-visual-goals,
body.rp-page .rp-feature-visual-analytics {
  background: var(--surface-variant) !important;
  background-image: none !important;
  border-color: rgba(255, 255, 255, 0.06) !important;
}

body.rp-page .rp-mini-card {
  background: var(--surface) !important;
  background-image: none !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}

body.rp-page .rp-value-media::before {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px) 0 0 / 28px 28px,
    linear-gradient(0deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px) 0 0 / 28px 28px !important;
  opacity: 0.35;
}

body.rp-page .rp-dash-bars span,
body.rp-page .rp-analytic-chart span,
body.rp-page .rp-value-bars span {
  background: linear-gradient(180deg, rgba(245, 245, 245, 0.42), rgba(245, 245, 245, 0.1)) !important;
}

body.rp-page .rp-mini-card::before {
  background: rgba(255, 255, 255, 0.18) !important;
}

body.rp-page .rp-orbit {
  border-color: rgba(255, 255, 255, 0.14) !important;
  background: rgba(255, 255, 255, 0.06) !important;
}

body.rp-page .rp-goal-item,
body.rp-page .rp-value-screen {
  background: var(--surface-variant) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}

body.rp-page .rp-form input {
  background: rgba(0, 0, 0, 0.25) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

body.rp-page .rp-badge {
  border-color: rgba(255, 255, 255, 0.12) !important;
}

body.rp-page .rp-steps-cta,
body.rp-page .rp-hero-cta {
  box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.rp-page .rp-dashboard-blur,
  body.rp-page .rp-value-row,
  body.rp-page .rp-feature-card,
  body.rp-page .rp-hero-panel,
  body.rp-page .rp-metric,
  body.rp-page .rp-value-media {
    background: var(--surface) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

/* ---------- Barre d’onglets iOS (mobile) — alignée sur bottom-tab-nav.css ---------- */
.ns-ios-tabbar-inner {
  background: linear-gradient(
    165deg,
    rgba(30, 30, 30, 0.78) 0%,
    rgba(22, 22, 28, 0.58) 45%,
    rgba(14, 14, 18, 0.72) 100%
  ) !important;
  backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  box-shadow:
    var(--lg-shadow-sm),
    0 0 0 1px rgba(197, 165, 114, 0.06) inset !important;
}

.ns-ios-tab.is-active {
  background: linear-gradient(
    145deg,
    rgba(197, 165, 114, 0.22),
    rgba(197, 165, 114, 0.1)
  ) !important;
  border-color: rgba(197, 165, 114, 0.28) !important;
  box-shadow: none !important;
}

/* Tab bar mobile : styles unifiés dans style.css (pilule Liquid Glass type iOS 26). */

/* ---------- Flatpickr (calendrier) ---------- */
.flatpickr-calendar {
  z-index: 2147483000 !important;
  background: var(--lg-fill-deep) !important;
  backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  -webkit-backdrop-filter: blur(var(--lg-blur-sm)) saturate(var(--lg-saturate-soft)) !important;
  border: 1px solid var(--lg-stroke) !important;
  border-radius: var(--lg-radius) !important;
  box-shadow: var(--lg-shadow) !important;
}

/* Dashboard promoteur : rp-dashboard-standalone.css suffit — pas d’override ici. */

/* Aucune ombre sur les boutons (y compris :hover / :focus — surcharge style.css) */
.lg-btn,
.lg-btn:hover,
.lg-btn:focus,
button.lg-btn:hover,
button.lg-btn:focus,
input.lg-btn[type='submit'],
input.lg-btn[type='submit']:hover,
input.lg-btn[type='button'],
input.lg-btn[type='button']:hover,
input.lg-btn[type='reset'],
input.lg-btn[type='reset']:hover,
.filter-button,
.filter-button:hover,
.filter-button.active,
.load-more-button,
.load-more-button:hover,
.footer-email-button,
.footer-email-button:hover,
.lang-dropdown-toggle:hover,
.mobile-menu-toggle:hover,
.app-button,
.app-button:hover,
a.app-button,
a.app-button:hover,
button.app-button,
button.app-button:hover,
.auth-submit:hover,
.social-complete-submit:hover,
.profile-edit-submit:hover,
.profile-edit-cancel:hover,
.delete-account-submit:hover,
.event-detail-reserve-btn:hover,
.event-detail-btn-reserve:hover,
.event-detail-btn-primary:hover,
.event-detail-btn-secondary:hover,
.hero-ref-btn-primary:hover,
.hero-ref-btn-secondary:hover,
.premium-app-button:hover,
.premium-play-button:hover,
.auth-social-btn:hover,
.reservation-btn-submit:hover,
.reservation-btn-cancel:hover,
#reservation-confirm-submit:hover,
.promoter-auth-tab:hover,
.reservation-list-tab:hover,
.reservation-recap-btn-panier:hover,
.reservation-detail-modal-close:hover,
.reservation-confirm-modal-close:hover,
.reservation-plan-modal-close:hover,
.event-detail-desc-more:hover,
.country-picker-trigger:hover,
.auth-password-toggle:hover,
.date-filter-clear:hover,
.final-app-store-button:hover,
.final-play-store-button:hover,
.features-store-button:hover,
.nav-links a.nav-auth-link.nav-auth-cta:hover,
a.og-cta-btn:hover,
a.rp-hero-cta:hover,
.legal-page-admin-btn:hover,
.rp-waitlist button[type='submit']:hover,
.rp-form button[type='submit']:hover,
.ns-ios-tab:hover,
.ns-ios-tab.is-active {
  box-shadow: none !important;
}

/* Fallback sans backdrop-filter */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  header:not(.rp-dash-appbar):not(.reserve-steps-header):not(.featured-artists-header):not(.trust-section-header):not(.final-cta-header):not(.hero-ref-header):not(.ibiza-residence-top):not(.cote-azur-header):not(.reservation-detail-ticket-head),
  .card,
  .filter-button,
  .footer-email-button {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .current-event-card {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .lg-btn,
  button.lg-btn,
  input.lg-btn[type='submit'],
  input.lg-btn[type='button'],
  input.lg-btn[type='reset'] {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .auth-submit:not(:disabled),
  .app-button:not(.secondary):not([class*='outline']),
  a.app-button:not(.secondary):not([class*='outline']),
  button.app-button:not(.secondary):not([class*='outline']),
  .event-detail-reserve-btn,
  .event-detail-btn-primary {
    background: var(--accent, #c5a572) !important;
    color: #0d0d0d !important;
  }

  @media (min-width: 1024px) {
    .event-detail-reserve-section {
      background: transparent !important;
    }

    .event-detail-reserve-section .event-detail-reserve-card {
      background: var(--surface, #111111) !important;
      backdrop-filter: none !important;
      -webkit-backdrop-filter: none !important;
    }
  }

  .profile-page .profile-hero-inner,
  .profile-page .profile-card {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
  }

  .profile-page .profile-back {
    background: var(--surface-variant, #1a1a1a) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .profile-page .profile-edit-panel,
  .profile-page .profile-edit-field,
  .profile-page .profile-edit-field input,
  .profile-page .profile-menu-icon,
  .profile-page .profile-logout {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .profile-page .profile-edit-field {
    background: var(--surface, #111111) !important;
  }

  .reservation-page-form .reservation-section,
  .reservation-page-body .reservation-recap,
  .reservation-page-body .reservation-list-card,
  .reservation-page-body #reservation-list-wrap > nav,
  .reservation-page-body #reservation-wrap .reservation-page-breadcrumb,
  .reservation-hero-logo {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  @media (max-width: 768px) {
    .reservation-page-form .reservation-section.reservation-section-info,
    .reservation-page-form .reservation-section.reservation-section-promo,
    .reservation-page-form .reservation-section.reservation-section-tickets,
    .reservation-page-form .reservation-section.reservation-section-alcohols {
      background: var(--surface, #111111) !important;
      background-color: var(--surface, #111111) !important;
      background-image: none !important;
      border: 1px solid rgba(255, 255, 255, 0.08) !important;
      border-radius: var(--lg-radius-card, 28px) !important;
      box-shadow: none !important;
    }
  }

  .reservation-page-body .reservation-alcohol-group {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }

  .reservation-page-body #reservation-guests,
  .reservation-page-body #reservation-arrival,
  .reservation-page-body .reservation-promoter-editor,
  .reservation-page-body .reservation-promoter-locked {
    background: var(--surface, #111111) !important;
    background-color: var(--surface, #111111) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: var(--lg-radius) !important;
  }

  .reservation-recap-bottom-bar {
    background: var(--footer-bg, #070707) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .reservation-recap-btn-panier {
    background: var(--surface-variant, #1a1a1a) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
  }

  .reservation-recap-btn-panier.is-ready {
    background: var(--accent, #C5A572) !important;
    border-color: transparent !important;
  }

  .reservation-recap-modal-sheet {
    background: var(--surface, #111111) !important;
    border-radius: 28px !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.45) !important;
  }

  .reservation-recap-modal-sheet::before {
    display: none !important;
  }

  .reservation-recap-modal-backdrop {
    background: rgba(0, 0, 0, 0.55) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .reservation-page-body .reservation-confirm-modal-dialog {
    background: var(--surface, #111111) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.45) !important;
  }

  .reservation-page-body .reservation-confirm-modal-dialog::before {
    display: none !important;
  }

  .reservation-page-body .reservation-detail-modal-dialog {
    background: var(--surface, #111111) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 24px 56px rgba(0, 0, 0, 0.48) !important;
  }

  .reservation-page-body .reservation-detail-modal-dialog::before {
    display: none !important;
  }

  .reservation-page-body .reservation-detail-modal .rd-sheet {
    background: transparent !important;
  }

  .reservation-page-loading,
  .reservation-page-error,
  .reservation-list-loading,
  .reservation-list-empty {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .ns-ios-tabbar-inner {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .search-page-field,
  .search-event-card {
    background: var(--surface, #111111) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

/* Keep destructive action visually destructive (red), not gold CTA */
.delete-account-submit:not(:disabled) {
  background: linear-gradient(145deg, rgba(220, 53, 69, 0.96), rgba(200, 35, 51, 0.9)) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: #ffffff !important;
}

.delete-account-submit:not(:disabled):hover {
  background: linear-gradient(145deg, rgba(231, 76, 92, 0.96), rgba(220, 53, 69, 0.9)) !important;
  border-color: rgba(255, 255, 255, 0.24) !important;
}
}

/* ---------- Site public — composants #111111 plat (hors dashboard promoteur) ---------- */
body:not(.rp-dash-page) .help-topic,
body:not(.rp-dash-page) .help-faq,
body:not(.rp-dash-page) .help-contact-card,
body:not(.rp-dash-page) .help-back {
  background: rgba(255, 255, 255, 0.045) !important;
  background-color: rgba(255, 255, 255, 0.045) !important;
  box-shadow: none !important;
}

body:not(.rp-dash-page) .help-topic:hover,
body:not(.rp-dash-page) .help-back:hover {
  background: rgba(255, 255, 255, 0.07) !important;
  background-color: rgba(255, 255, 255, 0.07) !important;
}

body:not(.rp-dash-page) .trust-logo,
body:not(.rp-dash-page) .artist-item,
body:not(.rp-dash-page) .home-value-card,
body:not(.rp-dash-page) .auth-card,
body:not(.rp-dash-page) .feature-card,
body:not(.rp-dash-page) .card,
body:not(.rp-dash-page) .search-event-card,
body:not(.rp-dash-page) #search-recent > a,
body:not(.rp-dash-page) #search-recent > * > a,
body:not(.rp-dash-page) #search-results > a,
body:not(.rp-dash-page) #search-results > * > a,
body:not(.rp-dash-page) .city-events-list > .search-event-card,
body:not(.rp-dash-page) .lang-dropdown-toggle,
body:not(.rp-dash-page) .lang-dropdown-menu,
body:not(.rp-dash-page) .nav-user-menu,
body:not(.rp-dash-page) .og-steps-neo-card,
body:not(.rp-dash-page) .event-detail-lineup-photo,
body:not(.rp-dash-page) .search-page-field,
body:not(.rp-dash-page) .ns-ios-tabbar-inner,
body:not(.rp-dash-page) .rp-vitrine-event-card,
body:not(.rp-dash-page) .rp-vitrine-page .rp-vitrine-spotlight,
body:not(.rp-dash-page) .rp-vitrine-page .rp-vitrine-spotlight-content {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
}

@media (max-width: 899px) {
  body:not(.rp-dash-page) .profile-card {
    background: var(--surface, #111111) !important;
    background-color: var(--surface, #111111) !important;
  }
}

@media (min-width: 900px) {
  body:not(.rp-dash-page) .profile-card {
    background: transparent !important;
    background-color: transparent !important;
  }

  body:not(.rp-dash-page) .profile-menu-list > li,
  body:not(.rp-dash-page) .profile-footer {
    background: var(--surface, #111111) !important;
    background-color: var(--surface, #111111) !important;
  }
}

/* iOS reservationSurfaceCard() */
body:not(.rp-dash-page) .event-detail-reserve-card,
body:not(.rp-dash-page) .event-reserve-modal-cards .event-detail-reserve-card {
  background: rgba(255, 255, 255, 0.045) !important;
  background-color: rgba(255, 255, 255, 0.045) !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  border-radius: 16px !important;
  box-shadow: none !important;
}

body:not(.rp-dash-page) header:not(.rp-dash-appbar):not(.reserve-steps-header):not(.featured-artists-header):not(.trust-section-header):not(.final-cta-header):not(.hero-ref-header):not(.ibiza-residence-top):not(.cote-azur-header):not(.reservation-detail-ticket-head) {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
}

body:not(.rp-dash-page) .ibiza-residence-shell,
body:not(.rp-dash-page) .ibiza-residence-stat,
body:not(.rp-dash-page) .ibiza-spotlight-card,
body:not(.rp-dash-page) .ibiza-lineup,
body:not(.rp-dash-page) .ibiza-lineup-more-btn,
body:not(.rp-dash-page) .ibiza-spotlight-datepill,
body:not(.rp-dash-page) .cote-azur-row {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
}

body:not(.rp-dash-page) .reservation-detail-modal-dialog {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
  background-image: none !important;
}

body:not(.rp-dash-page) .reservation-detail-modal .reservation-detail-ticket-sheet {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
}

body:not(.rp-dash-page) .reservation-detail-ticket-facts,
body:not(.rp-dash-page) .reservation-detail-ticket-info-card {
  background: rgba(255, 255, 255, 0.045) !important;
  background-color: rgba(255, 255, 255, 0.045) !important;
  background-image: none !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
}

body:not(.rp-dash-page) .reservation-detail-card,
body:not(.rp-dash-page) .howit-benefit-card {
  background: var(--surface, #111111) !important;
  background-color: var(--surface, #111111) !important;
}

body:not(.rp-dash-page) .trust-logo:hover,
body:not(.rp-dash-page) .artist-item:hover {
  background: var(--surface-variant, #1a1a1a) !important;
  background-color: var(--surface-variant, #1a1a1a) !important;
}

/* iOS reservationSurfaceCard() — zones table + cartes alcool */
body.reservation-page-body .reservation-table-card,
body.reservation-page-body .reservation-section-info .reservation-table-card,
body.reservation-page-body .reservation-table-card:hover,
body.reservation-page-body .reservation-table-card:has(input[type='radio']:checked),
body.reservation-page-body .reservation-alcohol-group,
body.reservation-page-body .reservation-alcohol-group:hover {
  background: rgba(255, 255, 255, 0.045) !important;
  background-color: rgba(255, 255, 255, 0.045) !important;
  background-image: none !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  border-radius: 16px !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.reservation-page-body .reservation-table-card,
  body.reservation-page-body .reservation-table-card:hover,
  body.reservation-page-body .reservation-table-card:has(input[type='radio']:checked),
  body.reservation-page-body .reservation-alcohol-group,
  body.reservation-page-body .reservation-alcohol-group:hover {
    background: rgba(255, 255, 255, 0.045) !important;
    background-color: rgba(255, 255, 255, 0.045) !important;
  }
}
/**
 * PrimaryButton — iOS PrimaryButton.swift (global)
 * Capsule dorée, texte blanc 15px bold, trailing optionnel, loading/disabled @ 45%.
 */

@keyframes primary-button-spin {
  to { transform: rotate(360deg); }
}

/* Sélecteurs CTA primaires du site */
:is(
  .primary-button,
  .auth-submit,
  .social-complete-submit,
  .profile-edit-submit,
  .delete-account-submit,
  .reservation-btn-submit,
  .reservation-promoter-add-btn,
  .reservation-feedback-cta,
  .event-detail-reserve-btn,
  .event-detail-btn-reserve,
  .event-detail-btn-primary,
  .hero-ref-btn-primary,
  .premium-app-button,
  .app-button.primary,
  .app-button.event-cta-primary,
  .event-cta-primary,
  a.og-cta-btn,
  a.og-final-cta-btn,
  .organizers-page .og-hero-cta-primary,
  .organizers-page .og-features-cta,
  .organizers-page .og-steps-howit-cta,
  .organizers-page .og-stats-cta,
  a.rp-hero-cta,
  .nav-links a.nav-auth-link.nav-auth-cta,
  .legal-page-admin-btn,
  .reservation-service-fee-info-modal-cta,
  .ns-stripe-deposit-modal__submit,
  .rp-waitlist button[type='submit'],
  .rp-form button[type='submit'],
  input.lg-btn[type='submit'],
  button.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline']),
  a.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline'])
) {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  max-width: 100%;
  min-height: 44px;
  padding: 0 20px;
  border: none;
  border-radius: 999px;
  background: var(--accent, #c5a572);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
  text-decoration: none;
  cursor: pointer;
  box-shadow: none;
  transition: opacity 0.2s ease, background 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

:is(
  .primary-button,
  .auth-submit,
  .social-complete-submit,
  .profile-edit-submit,
  .delete-account-submit,
  .reservation-btn-submit,
  .reservation-promoter-add-btn,
  .reservation-feedback-cta,
  .event-detail-reserve-btn,
  .event-detail-btn-reserve,
  .event-detail-btn-primary,
  .hero-ref-btn-primary,
  .premium-app-button,
  .app-button.primary,
  .app-button.event-cta-primary,
  .event-cta-primary,
  a.og-cta-btn,
  a.og-final-cta-btn,
  .organizers-page .og-hero-cta-primary,
  .organizers-page .og-features-cta,
  .organizers-page .og-steps-howit-cta,
  .organizers-page .og-stats-cta,
  a.rp-hero-cta,
  .nav-links a.nav-auth-link.nav-auth-cta,
  .legal-page-admin-btn,
  .reservation-service-fee-info-modal-cta,
  .ns-stripe-deposit-modal__submit,
  .rp-waitlist button[type='submit'],
  .rp-form button[type='submit'],
  input.lg-btn[type='submit'],
  button.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline']),
  a.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline'])
):hover:not(:disabled):not(.is-loading) {
  background: var(--accent-hover, #d4b87a);
  color: #fff;
  transform: none;
  filter: none;
  box-shadow: none;
}

:is(
  .primary-button,
  .auth-submit,
  .social-complete-submit,
  .profile-edit-submit,
  .delete-account-submit,
  .reservation-btn-submit,
  .reservation-promoter-add-btn,
  .reservation-feedback-cta,
  .event-detail-reserve-btn,
  .event-detail-btn-reserve,
  .event-detail-btn-primary,
  .hero-ref-btn-primary,
  .premium-app-button,
  .app-button.primary,
  .app-button.event-cta-primary,
  .event-cta-primary,
  a.og-cta-btn,
  a.og-final-cta-btn,
  .organizers-page .og-hero-cta-primary,
  .organizers-page .og-features-cta,
  .organizers-page .og-steps-howit-cta,
  .organizers-page .og-stats-cta,
  a.rp-hero-cta,
  .nav-links a.nav-auth-link.nav-auth-cta,
  .legal-page-admin-btn,
  .reservation-service-fee-info-modal-cta,
  .ns-stripe-deposit-modal__submit,
  .rp-waitlist button[type='submit'],
  .rp-form button[type='submit'],
  input.lg-btn[type='submit'],
  button.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline']),
  a.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline'])
):disabled,
:is(
  .primary-button,
  .auth-submit,
  .social-complete-submit,
  .profile-edit-submit,
  .delete-account-submit,
  .reservation-btn-submit,
  .reservation-promoter-add-btn,
  .reservation-feedback-cta,
  .event-detail-reserve-btn,
  .event-detail-btn-reserve,
  .event-detail-btn-primary,
  .hero-ref-btn-primary,
  .premium-app-button,
  .app-button.primary,
  .app-button.event-cta-primary,
  .event-cta-primary,
  a.og-cta-btn,
  a.og-final-cta-btn,
  .organizers-page .og-hero-cta-primary,
  .organizers-page .og-features-cta,
  .organizers-page .og-steps-howit-cta,
  .organizers-page .og-stats-cta,
  a.rp-hero-cta,
  .nav-links a.nav-auth-link.nav-auth-cta,
  .legal-page-admin-btn,
  .reservation-service-fee-info-modal-cta,
  .ns-stripe-deposit-modal__submit,
  .rp-waitlist button[type='submit'],
  .rp-form button[type='submit'],
  input.lg-btn[type='submit'],
  button.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline']),
  a.app-button:not(.secondary):not(.app-button-secondary):not([class*='outline'])
).is-loading {
  opacity: 0.45;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* Pleine largeur — formulaires & barres fixes */
:is(
  .auth-submit,
  .social-complete-submit,
  .profile-edit-submit,
  .delete-account-submit,
  .reservation-recap-actions .reservation-btn-submit,
  .reservation-recap-btn-panier.primary-button,
  .primary-button--full,
  .event-detail-btn-reserve,
  .event-detail-reserve-btn
) {
  width: 100%;
}

.primary-button__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
}

.primary-button__label {
  flex: 1;
  text-align: center;
}

.primary-button__trailing {
  flex-shrink: 0;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 0.8125rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
  white-space: nowrap;
}

.primary-button__trailing[hidden] {
  display: none;
}

.primary-button.is-loading .primary-button__inner,
:is(.auth-submit, .reservation-btn-submit).is-loading .primary-button__inner {
  visibility: hidden;
}

.primary-button.is-loading::after,
:is(.auth-submit, .reservation-btn-submit).is-loading::after {
  content: '';
  position: absolute;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: primary-button-spin 0.7s linear infinite;
}

/* PrimaryButtonBottomBar */
.primary-button-bottom-bar,
.reservation-recap-bottom-bar,
.event-detail-bottom-bar {
  padding: 8px 20px calc(20px + env(safe-area-inset-bottom, 0px));
}

.primary-button-bottom-bar__inner,
.reservation-recap-bottom-bar-inner,
.event-detail-bottom-bar-inner {
  max-width: min(1400px, 100%);
  margin: 0 auto;
}

/* Promoteur — Ajouter (PrimaryButton compact dans le champ) */
body.reservation-page-body .reservation-promoter-add-btn.primary-button,
body.reservation-page-body .reservation-promoter-add-btn {
  flex-shrink: 0 !important;
  width: auto !important;
  min-height: 2.35rem !important;
  height: 2.35rem !important;
  padding: 0 1.1rem !important;
  font-size: 0.875rem !important;
  background: var(--accent, #c5a572) !important;
  background-image: none !important;
  color: #fff !important;
  border: none !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.reservation-page-body .reservation-promoter-add-btn.primary-button:not(:disabled):hover,
body.reservation-page-body .reservation-promoter-add-btn:not(:disabled):hover {
  background: var(--accent-hover, #d4b87a) !important;
  color: #fff !important;
}

body.reservation-page-body .reservation-promoter-add-btn.primary-button:disabled,
body.reservation-page-body .reservation-promoter-add-btn:disabled {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  background: var(--accent, #c5a572) !important;
  color: #fff !important;
  transform: none !important;
}

body.reservation-page-body .reservation-promoter-add-btn.is-confirmed {
  background: #4caf50 !important;
  color: #fff !important;
  opacity: 1 !important;
}

body.reservation-panier-active,
body.reservation-panier-active > main.reservation-page-main {
  background: #070707 !important;
  background-image: none !important;
}

body.reservation-panier-active .reservation-panier-accordion {
  background: rgba(255, 255, 255, 0.03) !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: var(--lg-radius-card, 28px) !important;
  box-shadow: none !important;
}

body.reservation-panier-active .reservation-panier-summary {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Secondary — capsule arrondie comme PrimaryButton */
body.reservation-page-body .reservation-btn-cancel {
  border-radius: 999px !important;
}

body.reservation-page-body .reservation-alcohol-choice-modal-actions .reservation-btn-submit,
body.reservation-page-body .reservation-alcohol-choice-modal-actions .reservation-btn-cancel {
  min-height: 44px !important;
  height: 44px !important;
  padding: 0 20px !important;
}
