:root {
  --bg: #000000;
  --bg2: #151515;
  --card: rgba(255,255,255,0.95);
  --text: rgba(255,255,255,0.92);
  --text-card: rgba(0, 0, 0, 0.98);
  --muted: rgba(255,255,255,0.70);
  --line: rgba(0, 0, 0, 0.98);
  --accent: #6ea8fe;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--text);
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
  font-family: system-ui, Arial, sans-serif;
  line-height: 1.4;
}

a { color: inherit; text-decoration: none; }

.container {
  width: min(1120px, calc(100% - 48px));
  margin: 0 auto;
}

.nav {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid var(--line);
}

.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 0;
  gap: 16px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  letter-spacing: 0.2px;
}

.brand__mark {
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: invert(1);
}

.brand__name { font-size: 14px; }

.nav__links {
  display: none;
  gap: 18px;
  color: var(--muted);
  font-size: 14px;
}

.nav__links a:hover { color: var(--text); }

.nav__cta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: nowrap;
}

.language-flags {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  margin-right: 8px !important;
  flex-shrink: 0 !important;
}

.flag-button {
  width: 18px !important;
  height: 12px !important;

  min-width: 18px !important;
  max-width: 18px !important;
  min-height: 12px !important;
  max-height: 12px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 !important;
  margin: 0 !important;

  border: none !important;
  background: transparent !important;
  box-shadow: none !important;

  border-radius: 2px !important;
  overflow: hidden !important;

  flex: 0 0 18px !important;
  line-height: 0 !important;
}

.flag-button img {
  width: 22px !important;
  height: 16px !important;

  display: block !important;
  object-fit: cover !important;
  border-radius: 1px !important;
}

.flag-button:hover {
  transform: translateY(-1px);
  filter: brightness(1.08);
}

/* Mobile */
@media (max-width: 768px) {
  .flag-button {
    width: 16px !important;
    height: 10px !important;

    min-width: 16px !important;
    max-width: 16px !important;
    min-height: 10px !important;
    max-height: 10px !important;

    flex: 0 0 16px !important;
  }

  .flag-button img {
    width: 16px !important;
    height: 10px !important;

    min-width: 16px !important;
    max-width: 16px !important;
    min-height: 10px !important;
    max-height: 10px !important;
  }
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  border: 1px solid var(--line);
}

.btn--primary {
  background: linear-gradient(180deg, rgba(110,168,254,0.92), rgba(110,168,254,0.78));
  border-color: rgba(110,168,254,0.35);
  color: #06101f;
}

.btn--ghost {
  background: rgba(255,255,255,0.04);
  color: var(--text);
}

.hero {
  padding: 64px 0 24px;
}

.hero__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: center;
}

.eyebrow {
  color: var(--muted);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.hero h1 {
  font-size: clamp(28px, 4vw, 46px);
  line-height: 1.08;
  margin: 0 0 14px;
}

.lead {
  color: var(--muted);
  font-size: 16px;
  margin: 0 0 18px;
  max-width: 56ch;
}

.hero__actions { display: flex; gap: 12px; flex-wrap: wrap; }
.hero__fineprint { color: rgba(255,255,255,0.55); font-size: 13px; margin-top: 14px; }

.hero__panel .panel {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,0.04);
  overflow: hidden;
}

.panel__header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}

.dot { width: 8px; height: 8px; border-radius: 99px; background: rgba(255,255,255,0.25); }
.panel__title { margin-left: 8px; font-size: 13px; color: var(--muted); }

.panel__body { padding: 12px; display: grid; gap: 10px; }
.panel__row { display: grid; grid-template-columns: 90px 1fr; gap: 12px; align-items: baseline; }
.panel__row .k { color: rgba(255,255,255,0.55); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; }
.panel__row .v { color: var(--text); font-size: 13px; }

.strip {
  padding: 18px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,0.02);
}

.strip__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  color: var(--muted);
  font-size: 13px;
}

.strip__item { padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; }

.section { padding: 54px 0; }
.section--alt { background: rgba(22, 22, 22, 1); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }

.section__header h2 { margin: 6px 0 10px; font-size: 28px; }
.section__header p { margin: 0; color: var(--muted); max-width: 70ch; }

.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 18px;
}

.grid--3 { grid-template-columns: 1fr; }

.card {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--card);
  padding: 18px;
}

.card h3 { margin: 0 0 8px; font-size: 16px; }
.card p { margin: 0; color: var(--muted); font-size: 14px; }

.split {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-items: start;
}

.checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.checks li {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,1.0);
}

.cta { margin-top: 26px; }
.cta__box {
  border: 1px solid rgba(110,168,254,0.28);
  background: linear-gradient(180deg, rgba(216, 216, 216, 0.8), rgba(25, 25, 25, 0.8));
  border-radius: 18px;
  padding: 20px;
  display: grid;
  gap: 14px;
}

.cta__actions { display: flex; gap: 12px; flex-wrap: wrap; }

.footer {
  border-top: 1px solid var(--line);
  padding: 28px 0;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.9);
}

.footer__inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: start;
}

.footer__logo {
  height: 22px;
  width: auto;
  filter: invert(1);
  opacity: 0.92;
}

.footer__note { margin: 10px 0 0; max-width: 70ch; font-size: 13px; }
.footer__links { display: flex; gap: 14px; flex-wrap: wrap; }
.footer__links a:hover { color: #000; }
/* ================================
   Footer Meta (Bottom Center)
   ================================ */

.footer__meta {
  margin-top: 24px;
  padding-top: 16px;

  text-align: center;
  font-size: 13px;
  color: var(--muted);
}


.footer__col { display: flex; flex-direction: column; gap: 10px; }
.footer__title { font-size: 14px; font-weight: 700; color: var(--text); letter-spacing: 0.2px; }
.footer__links--stack { flex-direction: column; gap: 10px; align-items: flex-start; }
.footer__contact { display: grid; gap: 8px; font-size: 13px; color: var(--muted); }
.footer__contact .k { display: inline-block; min-width: 110px; color: var(--text); opacity: 0.9; font-weight: 600; }


a.url_text_footer_base {
  color: #000;
  text-decoration: none;
  position: relative;
}

/* underline */
a.url_text_footer_base::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 1px;
  background-color: #000;
  transition: width 0.25s ease;
}

/* hover + keyboard focus */
a.url_text_footer_base:hover::after,
a.url_text_footer_base:focus-visible::after {
  width: 100%;
}



@media (min-width: 860px) {
  .nav__links { display: flex; }
  .hero__inner { grid-template-columns: 1.1fr 0.9fr; }
  .strip__inner { grid-template-columns: repeat(5, 1fr); }
  .grid { grid-template-columns: repeat(2, 1fr); }
  .grid--3 { grid-template-columns: repeat(3, 1fr); }
  .split { grid-template-columns: 1.2fr 0.8fr; }
  .footer__inner { grid-template-columns: 1.4fr 0.8fr 0.8fr; }
}

/* ================================
   Panel Grid (Vertical Layout)
   ================================ */

.panel-grid {
  display: grid;
  grid-template-rows: auto 1fr;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--card);
  overflow: hidden;
}

/* ================================
   Panel Logo (Brand-Safe)
   ================================ */

.panel-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
  border-bottom: 1px solid var(--line);
}

.panel-logo-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 28px;
}

/* White circular badge */
.panel-logo__badge {
  width: 216px;
  height: 216px;
  border-radius: 50%;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow:
    0 14px 36px rgba(0,0,0,0.35),
    inset 0 0 0 2px rgba(0,0,0,0.06);
}

/* Logo itself (NO filters) */
.panel-logo__badge img {
  width: 130px;
  height: auto;
  opacity: 1;
}

/* Panel content (reuse existing panel styles) */
.panel-grid .panel {
  border: none;
  border-radius: 0;
  background: transparent;
}

/* ================================
   Brand Logo Size Control
   ================================ */

/* Slightly tighter header */
.panel-grid .panel__header {
  background: rgba(255,255,255,0.03);
}

/* Improve row spacing */
.panel-grid .panel__row {
  grid-template-columns: 110px 1fr;
}

/* Subtle premium hover */
.panel-grid:hover {
  box-shadow: 0 18px 40px rgba(0,0,0,0.35);
  transition: box-shadow 0.25s ease;
}

/* ================================
   Reusable Button (Anchor + Button)
   ================================ */

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 10px 14px;
  border-radius: 10px;

  background: #000;
  color: #fff;

  border: 1px solid #000;

  font-size: 14px;
  font-weight: 600;
  line-height: 1;

  text-decoration: none; /* IMPORTANT */
  cursor: pointer;

  transition:
    background 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.1s ease;
}

/* Hover */
.button:hover {
  background: #111;
  color: #fff;
  box-shadow: 0 6px 16px rgba(0,0,0,0.35);
}

/* Active */
.button:active {
  transform: translateY(1px);
}

/* Remove visited link color */
.button:visited {
  color: #fff;
}

/* Focus (keyboard accessibility) */
.button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.35);
}

/* ================================
   Section spacing helpers
   ================================ */

.section__intro {
  margin-bottom: 28px; /* separates text from card */
}

.section__spacer {
  height: 24px; /* visual breathing room */
}

/* Optional: increase card separation in sections */
.section .card {
  margin-top: 12px;
}

/* ================================
   Light text override (black text)
   ================================ */

.text-black,
.text-black h1,
.text-black h2,
.text-black h3,
.text-black h4,
.text-black p,
.text-black span,
.text-black label {
  color: #000 !important;
}

/* =========================================================
   LANGUAGE BUTTON 
   ========================================================= */

.language-switcher {
    display: flex;
    gap: 10px;
    align-items: center;
}

.lang-btn {
    padding: 6px 12px;
    border-radius: 6px;
    background: #f2f2f2;
    color: #333;
    text-decoration: none;
    font-size: 14px;
}

.lang-btn:hover {
    background: #ddd;
}


/* =========================================================
   RAV3 DARK PURPLE THEME OVERRIDES
   Keep this block at the END of landing.css
   ========================================================= */

:root {
  --bg: #050308;
  --bg2: #0a0610;
  --surface-top: rgba(14, 9, 22, 0.96);
  --surface-footer: #0b0712;
  --surface-section: #0e0a15;
  --surface-card: #14101d;
  --surface-card-hover: #1a1325;

  --card: var(--surface-card);
  --text: #ffffff;
  --text-card: #ffffff;
  --muted: rgba(255, 255, 255, 0.68);
  --line: rgba(184, 108, 255, 0.18);

  --accent: #a855f7;
  --accent-light: #c084fc;
  --accent-strong: #7c3aed;
  --accent-glow: rgba(168, 85, 247, 0.30);
}

/* Main page background */
html {
  background: var(--bg);
}

body {
  color: var(--text);
  background:
    radial-gradient(circle at 80% 0%, rgba(124, 58, 237, 0.14), transparent 34rem),
    radial-gradient(circle at 10% 40%, rgba(168, 85, 247, 0.08), transparent 28rem),
    linear-gradient(180deg, var(--bg) 0%, var(--bg2) 100%);
}

/* White default text */
body,
p,
span,
label,
li {
  color: var(--text);
}

/* Purple titles */
h1,
h2,
h3,
h4,
h5,
h6,
.section__header h2,
.hero h1,
.footer__title {
  color: var(--accent-light);
}

/* Muted descriptive text */
.lead,
.eyebrow,
.hero__fineprint,
.section__header p,
.panel__title,
.panel__row .k,
.footer__note,
.footer__contact,
.footer__meta {
  color: var(--muted);
}

/* Header/top navigation: nearly black but visually separated */
.nav {
  background: var(--surface-top);
  border-bottom: 1px solid rgba(192, 132, 252, 0.22);
  box-shadow:
    0 10px 34px rgba(0, 0, 0, 0.46),
    0 0 28px rgba(124, 58, 237, 0.05);
  backdrop-filter: blur(16px);
}

/* Logo area */
.brand,
.brand__name {
  color: var(--text);
}

.brand--small img {
  filter: none;
}

/* Navigation buttons */
.button,
.btn--primary {
  color: #ffffff;
  border-color: rgba(192, 132, 252, 0.46);
  background: linear-gradient(135deg, var(--accent), var(--accent-strong));
  box-shadow: 0 8px 24px rgba(124, 58, 237, 0.24);
}

.button:hover,
.btn--primary:hover {
  color: #ffffff;
  border-color: rgba(216, 180, 254, 0.65);
  background: linear-gradient(135deg, #b264ff, #8b46ef);
  box-shadow: 0 10px 30px rgba(168, 85, 247, 0.34);
  transform: translateY(-1px);
}

.button:visited {
  color: #ffffff;
}

.button:focus-visible,
.btn:focus-visible,
.flag-button:focus-visible {
  outline: 2px solid var(--accent-light);
  outline-offset: 3px;
}

/* Cards and panels */
.card,
.panel-grid,
.hero__panel .panel,
.strip__item,
.checks li,
.cta__box {
  color: var(--text);
  border-color: var(--line);
  background: var(--surface-card);
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.30);
}

.card:hover,
.strip__item:hover,
.checks li:hover {
  background: var(--surface-card-hover);
  border-color: rgba(192, 132, 252, 0.34);
}

.card h3,
.card p,
.checks li,
.panel__row .v {
  color: var(--text);
}

.panel__header,
.panel-grid .panel__header {
  border-bottom-color: var(--line);
  background: rgba(192, 132, 252, 0.045);
}

/* Section separation */
.strip {
  border-top-color: var(--line);
  border-bottom-color: var(--line);
  background: #0b0811;
}

.section--alt {
  border-top-color: var(--line);
  border-bottom-color: var(--line);
  background: var(--surface-section);
}

.cta__box {
  border-color: rgba(192, 132, 252, 0.28);
  background:
    radial-gradient(circle at 85% 20%, rgba(168, 85, 247, 0.16), transparent 18rem),
    linear-gradient(145deg, #15101f, #0d0914);
}

/* Footer: dark, but slightly different from page and header */
.footer {
  color: var(--muted);
  border-top: 1px solid rgba(192, 132, 252, 0.24);
  background:
    linear-gradient(180deg, #0d0914 0%, var(--surface-footer) 100%);
  box-shadow: 0 -18px 50px rgba(0, 0, 0, 0.30);
}

.footer__title,
.footer__contact .k {
  color: var(--accent-light);
}

.footer__contact span,
.footer__meta {
  color: var(--muted);
}

.footer__meta {
  border-top: 1px solid rgba(192, 132, 252, 0.12);
}

/* Footer links */
a.url_text_footer_base,
.footer__links a {
  color: rgba(255, 255, 255, 0.82);
}

a.url_text_footer_base::after {
  background-color: var(--accent-light);
}

a.url_text_footer_base:hover,
a.url_text_footer_base:focus-visible,
.footer__links a:hover {
  color: var(--accent-light);
}

/* Your base.html currently uses text-black.
   This override keeps those elements readable on the dark footer. */
.text-black,
.text-black h1,
.text-black h2,
.text-black h3,
.text-black h4,
.text-black p,
.text-black span,
.text-black label,
.text-black a {
  color: var(--text) !important;
}

.text-black.footer__title,
.footer__title.text-black {
  color: var(--accent-light) !important;
}

/* Footer logo badge */
.panel-logo__badge {
  background:
    radial-gradient(circle, #171020 0%, #0d0913 72%);
  border: 1px solid rgba(192, 132, 252, 0.28);
  box-shadow:
    0 16px 38px rgba(0, 0, 0, 0.42),
    0 0 34px rgba(124, 58, 237, 0.12),
    inset 0 0 0 1px rgba(255, 255, 255, 0.025);
}

/* Language controls */
.lang-btn {
  color: #ffffff;
  border: 1px solid var(--line);
  background: #15101d;
}

.lang-btn:hover {
  color: #ffffff;
  border-color: rgba(192, 132, 252, 0.38);
  background: #21172f;
}

.flag-button {
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

.flag-button:hover {
  box-shadow: 0 0 12px rgba(168, 85, 247, 0.30) !important;
}

/* Better selection color */
::selection {
  color: #ffffff;
  background: rgba(168, 85, 247, 0.68);
}

/* =========================================================
   RAV3 EVENT TIMETABLE
   ========================================================= */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.event-city-picker select{min-width:170px;padding:10px 34px 10px 12px;border:1px solid rgba(192,132,252,.28);border-radius:10px;background:#120c1b;color:#fff;font-weight:700;cursor:pointer}
.button--ghost{background:#15101d;border-color:rgba(255,255,255,.14)}
.events-page{min-height:0;flex: 1 0 auto;background:#050308;color:#fff}.events-hero{padding:62px 0 36px;border-bottom:1px solid rgba(192,132,252,.14);background:radial-gradient(circle at 85% 20%,rgba(132,45,244,.25),transparent 28rem),#09050f}.events-hero__inner{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.events-hero h1{margin:0;color:#c084fc;font-size:clamp(42px,6vw,76px);line-height:.95}.events-hero p{max-width:620px;color:rgba(255,255,255,.68)}.hero-pulse{display:flex;align-items:end;gap:7px;height:70px}.hero-pulse span{width:7px;border-radius:6px;background:linear-gradient(#c084fc,#7c3aed);animation:pulsebars 1.1s infinite alternate}.hero-pulse span:nth-child(1){height:25%}.hero-pulse span:nth-child(2){height:80%;animation-delay:.2s}.hero-pulse span:nth-child(3){height:45%;animation-delay:.4s}.hero-pulse span:nth-child(4){height:100%;animation-delay:.1s}@keyframes pulsebars{to{height:28%}}
.timetable-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:28px;align-items:start;padding-top:36px;padding-bottom:70px}.timetable{display:grid;gap:20px}.event-day{overflow:hidden;border:1px solid rgba(192,132,252,.16);border-radius:20px;background:#0e0915;box-shadow:0 18px 50px rgba(0,0,0,.28)}.event-day__header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid rgba(192,132,252,.12);background:linear-gradient(90deg,rgba(124,58,237,.16),transparent)}.event-day__header h2{margin:0;color:#d8b4fe;text-transform:capitalize}.event-day__header span{color:rgba(255,255,255,.55);font-size:13px}.event-day__rows{display:grid}.event-row{display:grid;grid-template-columns:70px minmax(0,1fr) auto 24px;gap:16px;align-items:center;width:100%;padding:18px 20px;border:0;border-bottom:1px solid rgba(255,255,255,.07);background:transparent;color:#fff;text-align:left;cursor:pointer;transition:.18s}.event-row:last-child{border-bottom:0}.event-row:hover,.event-row.is-active{background:linear-gradient(90deg,rgba(168,85,247,.17),transparent)}.event-row.is-active{box-shadow:inset 3px 0 #c084fc}.event-row__time{color:#c084fc;font-weight:800}.event-row__main{display:grid;gap:5px;min-width:0}.event-row__main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-row__main small{color:rgba(255,255,255,.58)}.event-row__price{font-size:13px;font-weight:700}.event-row__arrow{color:#c084fc;font-size:20px}.event-preview{position:sticky;top:105px;overflow:hidden;border:1px solid rgba(192,132,252,.18);border-radius:22px;background:#100a18;box-shadow:0 26px 70px rgba(0,0,0,.38)}.event-preview__flyer{aspect-ratio:4/5;background:radial-gradient(circle,rgba(124,58,237,.35),transparent 60%),#09050f}.event-preview__flyer img{width:100%;height:100%;object-fit:cover}.event-preview__fallback{display:grid;width:100%;height:100%;place-items:center;color:#fff;font-size:70px;font-weight:900;text-shadow:0 0 30px #8b5cf6}.event-preview__content{padding:24px}.event-preview__date{margin:0 0 8px;color:#c084fc;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.08em}.event-preview h2{margin:0 0 18px;color:#fff;font-size:32px}.event-preview__place{padding:14px;border:1px solid rgba(255,255,255,.09);border-radius:13px;background:rgba(255,255,255,.025)}.event-preview__place span{display:block;color:rgba(255,255,255,.5);font-size:11px;text-transform:uppercase}.event-preview__content>p:not(.event-preview__date){color:rgba(255,255,255,.7);line-height:1.65}.event-preview__promoters{font-size:13px}.event-preview__availability{display:flex;justify-content:space-between;align-items:center;margin:18px 0}.event-preview__availability span{color:#c084fc;font-size:22px;font-weight:900}.event-preview__availability small{color:rgba(255,255,255,.58)}.event-buy{width:100%}.events-empty{padding:70px 30px;text-align:center;border:1px solid rgba(192,132,252,.14);border-radius:22px;background:#0d0913}.events-empty img{width:100px}.footer-brand img{width:110px;max-height:90px}.checkout-page,.success-page,.ticket-page{padding-top:45px;padding-bottom:70px}.back-link{display:inline-block;margin-bottom:24px;color:#c084fc}.checkout-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px}.checkout-event,.checkout-card,.success-card,.digital-ticket{border:1px solid rgba(192,132,252,.18);border-radius:22px;background:#0f0a17;box-shadow:0 24px 70px rgba(0,0,0,.35)}.checkout-event{display:grid;grid-template-columns:minmax(260px,.8fr) 1fr;overflow:hidden}.checkout-event>div:last-child{padding:28px}.checkout-flyer{min-height:500px;background:#09050f}.checkout-flyer img{width:100%;height:100%;object-fit:cover}.checkout-flyer span{display:grid;height:100%;place-items:center;font-size:68px;font-weight:900;color:#c084fc}.checkout-card{padding:28px}.checkout-card h2{color:#c084fc}.checkout-card label{display:grid;gap:8px;margin:18px 0 8px;color:rgba(255,255,255,.72);font-size:13px;font-weight:700}.checkout-card input{width:100%;padding:13px;border:1px solid rgba(192,132,252,.2);border-radius:10px;background:#08050d;color:#fff}.checkout-total{display:flex;justify-content:space-between;margin:24px 0;font-size:18px}.checkout-total strong{color:#c084fc}.checkout-button{border:0}.demo-warning{color:#fbbf24!important;font-size:12px}.success-card{max-width:650px;margin:auto;padding:50px;text-align:center}.success-check{display:grid;width:70px;height:70px;margin:0 auto 20px;place-items:center;border-radius:50%;background:#22c55e;color:#06140b;font-size:36px;font-weight:900}.ticket-link-list{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:28px 0}.digital-ticket{max-width:520px;margin:auto;padding:34px;text-align:center}.digital-ticket__brand img{width:180px}.ticket-qr{width:min(320px,100%);margin:20px auto;background:#fff;padding:14px;border-radius:14px}.digital-ticket code{display:block;color:rgba(255,255,255,.58);word-break:break-all}.ticket-status{color:#c084fc}.event-preview__empty{padding:70px 30px;text-align:center;color:rgba(255,255,255,.6)}
@media(max-width:900px){.timetable-layout,.checkout-grid{grid-template-columns:1fr}.event-preview{position:static}.checkout-event{grid-template-columns:1fr}.checkout-flyer{min-height:420px}}@media(max-width:720px){.nav__inner{align-items:flex-start}.nav__cta{flex-wrap:wrap;justify-content:flex-end}.event-city-picker{order:3;width:100%}.event-city-picker select{width:100%}.events-hero__inner{align-items:flex-start;flex-direction:column}.hero-pulse{display:none}.event-row{grid-template-columns:55px minmax(0,1fr) 20px}.event-row__price{display:none}.timetable-layout{padding-top:20px}.checkout-event>div:last-child{padding:20px}}

/* =========================================================
   RAV3 AUTHENTICATED HEADER + EVENT SUBMISSION + STRIPE
   ========================================================= */
.nav__brand-group{
  display:flex;
  align-items:center;
  gap:18px;
  min-width:0;
}
.nav-add-event{
  gap:7px;
  white-space:nowrap;
}
.nav-add-event span{
  color:#fff;
  font-size:17px;
  line-height:1;
}
.nav-logout-form{
  display:inline-flex;
  margin:0;
}
.nav-logout-form .button{
  width:auto;
  margin:0;
}

.create-event-page{
  min-height:70vh;
  color:#fff;
  background:#050308;
}
.create-event-hero{
  padding:56px 0 34px;
  border-bottom:1px solid rgba(192,132,252,.14);
  background:
    radial-gradient(circle at 78% 10%,rgba(132,45,244,.22),transparent 28rem),
    #09050f;
}
.create-event-hero h1{
  margin:0;
  color:#c084fc;
  font-size:clamp(42px,6vw,70px);
  line-height:1;
}
.create-event-hero p:last-child{
  max-width:690px;
  color:rgba(255,255,255,.68);
}
.create-event-shell{
  padding-top:36px;
  padding-bottom:72px;
}
.create-event-form{
  width:min(820px,100%);
  margin:0 auto;
  padding:30px;
  border:1px solid rgba(192,132,252,.18);
  border-radius:22px;
  background:#100a18;
  box-shadow:0 24px 70px rgba(0,0,0,.34);
}
.create-event-form label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:18px 0 8px;
  color:rgba(255,255,255,.78);
  font-size:13px;
  font-weight:700;
}
.create-event-form input,
.create-event-form select,
.create-event-form textarea{
  width:100%;
  margin:0;
  padding:13px 14px;
  color:#fff;
  border:1px solid rgba(192,132,252,.22);
  border-radius:11px;
  outline:none;
  background:#08050d;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.create-event-form input:focus,
.create-event-form select:focus,
.create-event-form textarea:focus{
  border-color:#a855f7;
  box-shadow:0 0 0 3px rgba(168,85,247,.14);
}
.create-event-form textarea{
  resize:vertical;
}
.form-section-heading{
  display:flex;
  align-items:center;
  gap:14px;
  padding-bottom:15px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.form-section-heading--spaced{
  margin-top:32px;
}
.form-section-heading>span{
  display:grid;
  width:42px;
  height:42px;
  flex:0 0 42px;
  place-items:center;
  border:1px solid rgba(192,132,252,.34);
  border-radius:50%;
  color:#c084fc;
  background:rgba(124,58,237,.13);
  font-weight:800;
}
.form-section-heading h2{
  margin:0;
  color:#c084fc;
  font-size:20px;
}
.form-section-heading p{
  margin:3px 0 0;
  color:rgba(255,255,255,.54);
  font-size:12px;
}
.field-help,
.field-note{
  color:rgba(255,255,255,.48)!important;
  font-size:12px!important;
  font-weight:500!important;
}
.create-event-submit{
  width:100%;
  margin-top:28px;
  padding:15px 18px;
  border:0;
}

.checkout-event__content{
  padding:28px;
}
.checkout-event__price{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:24px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.08);
}
.checkout-event__price span{
  color:rgba(255,255,255,.62);
}
.checkout-event__price strong{
  color:#c084fc;
  font-size:20px;
}
.checkout-stock{
  color:rgba(255,255,255,.62)!important;
}
.checkout-card form{
  display:block;
}
.checkout-card label{
  display:block;
  margin:18px 0 8px;
  color:rgba(255,255,255,.72);
  font-size:13px;
  font-weight:700;
}
.checkout-card input{
  width:100%;
  margin:0;
  padding:13px 14px;
  color:#fff;
  border:1px solid rgba(192,132,252,.22);
  border-radius:10px;
  outline:none;
  background:#08050d;
}
.checkout-card input:focus{
  border-color:#a855f7;
  box-shadow:0 0 0 3px rgba(168,85,247,.13);
}
.stripe-card-element{
  min-height:49px;
  padding:14px;
  border:1px solid rgba(192,132,252,.22);
  border-radius:10px;
  background:#08050d;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.stripe-card-element.StripeElement--focus{
  border-color:#a855f7;
  box-shadow:0 0 0 3px rgba(168,85,247,.13);
}
.stripe-card-element.StripeElement--invalid{
  border-color:#f43f5e;
}
.payment-error{
  min-height:20px;
  margin-top:8px;
  color:#fda4af;
  font-size:13px;
  line-height:1.45;
}
.checkout-button{
  width:100%;
  min-height:50px;
  gap:10px;
}
.checkout-button:disabled{
  opacity:.62;
  cursor:wait;
  transform:none;
}
.pay-spinner{
  width:17px;
  height:17px;
  border:2px solid rgba(255,255,255,.34);
  border-top-color:#fff;
  border-radius:50%;
  animation:rav3spin .75s linear infinite;
}
@keyframes rav3spin{to{transform:rotate(360deg)}}
.stripe-note{
  margin:14px 0 0;
  color:rgba(255,255,255,.46)!important;
  font-size:11px;
  line-height:1.5;
  text-align:center;
}
.checkout-unavailable{
  margin-top:24px;
  padding:20px;
  border:1px solid rgba(192,132,252,.16);
  border-radius:14px;
  background:#0b0711;
}
.checkout-unavailable h3{
  margin:0 0 7px;
  color:#c084fc;
}
.checkout-unavailable p{
  margin:0;
  color:rgba(255,255,255,.62);
}
.payment-status-card{
  margin-top:70px;
  margin-bottom:70px;
}
.payment-status-icon{
  display:grid;
  width:72px;
  height:72px;
  margin:0 auto 20px;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:#7c3aed;
  font-size:35px;
  font-weight:900;
}
.payment-status-icon--refund{
  color:#2b1900;
  background:#fbbf24;
}

@media(max-width:860px){
  .nav__inner{
    align-items:flex-start;
  }
  .nav__brand-group{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .nav-add-event{
    padding:8px 11px;
    font-size:12px;
  }
}
@media(max-width:650px){
  .create-event-form{
    padding:20px 16px;
  }
  .nav__brand-group{
    width:110px;
  }
  .nav-add-event{
    white-space:normal;
  }
}

/* =========================================
   BANNER LISTA DE EVENTOS — 1/3 MÁS PEQUEÑO
   ========================================= */

.events-hero {
  padding: 16px 0 11px !important;
}

.events-hero__inner {
  align-items: center;
}

.events-hero .eyebrow {
  margin-bottom: 3px;
  font-size: 8px;
  line-height: 1.1;
}

.events-hero h1 {
  margin: 0 0 5px;
  font-size: clamp(20px, 2.7vw, 32px);
  line-height: 1;
}

.events-hero p {
  margin: 0;
  max-width: 620px;
  font-size: 12spx;
  line-height: 1.25;
}

.events-hero .hero-pulse {
  height: 25px;
}

@media (max-width: 720px) {
  .events-hero {
    padding: 12px 0 9px !important;
  }

  .events-hero h1 {
    font-size: 21px;
  }

  .events-hero p {
    font-size: 12px;
    line-height: 1.2;
  }

  .events-hero .eyebrow {
    font-size: 7px;
  }

  .events-hero .hero-pulse {
    height: 20px;
  }
}



/* =========================================
   ENCABEZADO PRINCIPAL 50% MÁS PEQUEÑO
   ========================================= */

.nav {
  min-height: 0 !important;
}

.nav__inner {
  min-height: 0 !important;
  padding: 6px 0 !important;
  gap: 8px !important;
}

/* Logo RAV3 */
.brand--small img {
  width: 110px !important;
  height: auto !important;
  max-width: 110px !important;
  object-fit: contain !important;
}

.brand {
  gap: 5px !important;
}

.brand__name {
  font-size: 11px !important;
}

/* Contenedor derecho */
.nav__cta {
  gap: 6px !important;
}

/* Botones Login, Register, Logout, etc. */
.nav .button,
.nav .btn {
  min-height: 0 !important;
  padding: 6px 9px !important;
  border-radius: 7px !important;
  font-size: 11px !important;
  line-height: 1 !important;
}

/* Botón Agregar evento */
.nav-add-event {
  padding: 6px 9px !important;
  gap: 4px !important;
  font-size: 11px !important;
}

.nav-add-event span {
  font-size: 12px !important;
}

/* Banderas de idiomas */
.language-flags {
  gap: 3px !important;
  margin-right: 4px !important;
}

.flag-button {
  width: 14px !important;
  height: 9px !important;

  min-width: 14px !important;
  max-width: 14px !important;
  min-height: 9px !important;
  max-height: 9px !important;

  flex: 0 0 14px !important;
}

.flag-button img {
  width: 14px !important;
  height: 9px !important;

  min-width: 14px !important;
  max-width: 14px !important;
  min-height: 9px !important;
  max-height: 9px !important;
}

/* Selector de ciudad */
.event-city-picker select {
  min-width: 130px !important;
  padding: 6px 25px 6px 8px !important;
  border-radius: 7px !important;
  font-size: 11px !important;
}


/* =========================================
   ENCABEZADO PRINCIPAL 50% MÁS PEQUEÑO CELULAR
   ========================================= */


@media (max-width: 720px) {
  .nav__inner {
    padding: 5px 0 !important;
  }

  .brand--small img {
    width: 85px !important;
    max-width: 85px !important;
  }

  .nav .button,
  .nav .btn,
  .nav-add-event {
    padding: 5px 7px !important;
    font-size: 10px !important;
  }

  .event-city-picker select {
    padding: 5px 22px 5px 7px !important;
    font-size: 10px !important;
  }
}

/* =========================================
   DYNAMICALLY EXPAND WEBSITE
   ========================================= */

/* Make every page fill the full browser height */
html,
body {
  min-height: 100%;
}

body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Main page content expands to occupy unused space */
main,
.events-page,
.create-event-page,
.checkout-page,
.success-page,
.ticket-page {
  flex: 1 0 auto;
}

/* Keep footer at the bottom */
.footer {
  margin-top: auto;
  flex-shrink: 0;
}

/* =========================================================
   FOOTER 30% MÁS COMPACTO — TEXTO DE 12PX
   ========================================================= */

.footer {
  padding: 10px 0 !important;
}

.footer__inner {
  gap: 6px !important;
  align-items: center !important;
}

.panel-logo-footer {
  padding: 7px !important;
}

.panel-logo__badge {
  width: 76px !important;
  height: 76px !important;
}

.panel-logo__badge img {
  width: 46px !important;
  height: auto !important;
}

.footer__col {
  gap: 3px !important;
}

.footer__links,
.footer__links--stack {
  gap: 3px !important;
}

.footer__contact {
  gap: 2px !important;
}

.footer__contact .k {
  min-width: 72px !important;
}

.footer__note {
  margin: 3px 0 0 !important;
}

.footer__meta {
  margin-top: 8px !important;
  padding-top: 5px !important;
}

/* Toda la letra del footer */
.footer__title,
.footer__links a,
.footer__contact,
.footer__contact .k,
.footer__contact span,
.footer__note,
.footer__meta {
  font-size: 12px !important;
  line-height: 1.25 !important;
}

@media (min-width: 860px) {
  .footer__inner {
    grid-template-columns: 0.8fr 0.7fr 1fr !important;
    align-items: start !important;
  }
}

@media (max-width: 859px) {
  .footer {
    padding: 7px 0 !important;
  }

  .footer__inner {
    gap: 7px !important;
  }

  .panel-logo-footer {
    justify-content: flex-start !important;
    padding: 2px 0 !important;
  }

  .panel-logo__badge {
    width: 56px !important;
    height: 56px !important;
  }

  .panel-logo__badge img {
    width: 34px !important;
  }

  .footer__meta {
    margin-top: 5px !important;
    padding-top: 4px !important;
  }
}

/* =========================================================
   COLLAPSIBLE EVENT DETAILS
   ========================================================= */

.timetable-layout {
  grid-template-columns: minmax(0, 1fr) !important;
}

.timetable-layout.has-preview {
  grid-template-columns:
    minmax(0, 1.35fr)
    minmax(340px, 0.65fr) !important;
}

.event-preview[hidden] {
  display: none !important;
}

.event-preview {
  position: sticky;
  top: 72px;
}

.event-preview.is-opening {
  animation: event-preview-open 0.24s ease-out both;
}

@keyframes event-preview-open {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.event-preview__close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 5;
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.20);
  border-radius: 50%;
  background: rgba(5, 3, 8, 0.78);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.32);
  font: inherit;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(8px);
}

.event-preview__close:hover,
.event-preview__close:focus-visible {
  color: #ffffff;
  border-color: rgba(192, 132, 252, 0.72);
  background: rgba(124, 58, 237, 0.88);
  outline: none;
}

.event-row__arrow {
  transition: transform 0.18s ease, color 0.18s ease;
}

.event-row.is-active .event-row__arrow {
  color: #ffffff;
  transform: scale(1.14);
}

@media (max-width: 900px) {
  .timetable-layout.has-preview {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .event-preview {
    position: static;
    scroll-margin-top: 72px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .event-preview.is-opening {
    animation: none;
  }

  .event-row__arrow {
    transition: none;
  }
}


/* =========================================================
   RICH EVENT LIST ROWS
   Order: date, time, flyer, title, description, tickets, price
   ========================================================= */

.event-day__rows {
  display: grid;
}

.event-row {
  grid-template-columns:
    minmax(126px, 0.9fr)
    minmax(64px, 0.45fr)
    1cm
    minmax(145px, 1.15fr)
    minmax(220px, 2fr)
    minmax(105px, 0.72fr)
    minmax(118px, 0.8fr)
    24px !important;
  grid-template-areas:
    "date time flyer title description tickets price arrow";
  gap: 14px !important;
  align-items: center !important;
  min-height: 72px;
  padding: 14px 18px !important;
}

.event-row__cell {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.event-row__label {
  color: rgba(255, 255, 255, 0.43) !important;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.event-row__date {
  grid-area: date;
}

.event-row__date strong {
  color: rgba(255, 255, 255, 0.88);
  font-size: 12px;
  line-height: 1.25;
}

.event-row__time {
  grid-area: time;
}

.event-row__time strong {
  color: #c084fc;
  font-size: 14px;
  font-weight: 900;
}

.event-row__flyer {
  grid-area: flyer;
  display: grid;
  width: 1cm;
  height: 1cm;
  place-items: center;
  overflow: hidden;
  flex: 0 0 1cm;
  border: 1px solid rgba(192, 132, 252, 0.30);
  border-radius: 8px;
  background:
    radial-gradient(circle, rgba(124, 58, 237, 0.30), transparent 68%),
    #09050f;
  box-shadow: 0 7px 18px rgba(0, 0, 0, 0.28);
}

.event-row__flyer img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.18s ease, filter 0.18s ease;
}

.event-row:hover .event-row__flyer img,
.event-row.is-active .event-row__flyer img {
  transform: scale(1.08);
  filter: brightness(1.10);
}

.event-row__flyer-fallback {
  color: #c084fc;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: -0.04em;
}

.event-row__title {
  grid-area: title;
}

.event-row__title strong {
  overflow: hidden;
  color: #ffffff;
  font-size: 14px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-row__venue {
  overflow: hidden;
  color: rgba(255, 255, 255, 0.52) !important;
  font-size: 10px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event-row__description {
  grid-area: description;
}

.event-row__description > span {
  display: -webkit-box;
  overflow: hidden;
  color: rgba(255, 255, 255, 0.70);
  font-size: 11px;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.event-row__tickets {
  grid-area: tickets;
  text-align: center;
}

.event-row__tickets strong {
  color: #d8b4fe;
  font-size: 16px;
  font-weight: 900;
}

.event-row__price {
  grid-area: price;
  text-align: right;
}

.event-row__price strong {
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.event-row__arrow {
  grid-area: arrow;
}

/* When the detail card is open, keep every event readable in two lines. */
.timetable-layout.has-preview .event-row {
  grid-template-columns:
    minmax(100px, 0.9fr)
    58px
    1cm
    minmax(130px, 1fr)
    minmax(88px, 0.65fr)
    22px !important;
  grid-template-areas:
    "date time flyer title tickets arrow"
    "date time flyer description price arrow";
  row-gap: 5px !important;
}

.timetable-layout.has-preview .event-row__description > span {
  -webkit-line-clamp: 1;
}

.timetable-layout.has-preview .event-row__price {
  text-align: left;
}

/* Tablet: use two lines even before the detail card opens. */
@media (max-width: 1180px) {
  .event-row {
    grid-template-columns:
      minmax(110px, 0.9fr)
      60px
      1cm
      minmax(145px, 1.2fr)
      minmax(94px, 0.7fr)
      22px !important;
    grid-template-areas:
      "date time flyer title tickets arrow"
      "date time flyer description price arrow";
    row-gap: 5px !important;
  }

  .event-row__price {
    text-align: left;
  }
}

/* Phone: each event remains a separate expandable row in the date list. */
@media (max-width: 720px) {
  .event-day__header {
    padding: 13px 14px;
  }

  .event-row,
  .timetable-layout.has-preview .event-row {
    grid-template-columns: 1cm minmax(0, 1fr) auto 20px !important;
    grid-template-areas:
      "flyer date time arrow"
      "flyer title title arrow"
      "flyer description description arrow"
      "tickets tickets price price";
    gap: 7px 10px !important;
    min-height: 0;
    padding: 13px 14px !important;
  }

  .event-row__date strong {
    font-size: 11px;
  }

  .event-row__time {
    text-align: right;
  }

  .event-row__title strong {
    white-space: normal;
  }

  .event-row__venue {
    white-space: normal;
  }

  .event-row__description > span,
  .timetable-layout.has-preview .event-row__description > span {
    -webkit-line-clamp: 2;
  }

  .event-row__tickets {
    text-align: left;
  }

  .event-row__tickets,
  .event-row__price {
    padding-top: 4px;
    border-top: 1px solid rgba(255, 255, 255, 0.065);
  }

  .event-row__price {
    text-align: right;
  }
}

@media (prefers-reduced-motion: reduce) {
  .event-row__flyer img {
    transition: none;
  }
}


/* =========================================================
   EVENT ROWS WITHOUT DUPLICATED DATE
   The date remains only in the event-day header.
   ========================================================= */

.event-row {
  grid-template-columns:
    minmax(68px, 0.48fr)
    1cm
    minmax(150px, 1.15fr)
    minmax(220px, 2fr)
    minmax(108px, 0.72fr)
    minmax(120px, 0.82fr)
    24px !important;
  grid-template-areas:
    "time flyer title description tickets price arrow" !important;
}

.event-row__date {
  display: none !important;
}

.timetable-layout.has-preview .event-row {
  grid-template-columns:
    58px
    1cm
    minmax(135px, 1fr)
    minmax(92px, 0.68fr)
    22px !important;
  grid-template-areas:
    "time flyer title tickets arrow"
    "time flyer description price arrow" !important;
}

@media (max-width: 1180px) {
  .event-row {
    grid-template-columns:
      60px
      1cm
      minmax(150px, 1.2fr)
      minmax(98px, 0.72fr)
      22px !important;
    grid-template-areas:
      "time flyer title tickets arrow"
      "time flyer description price arrow" !important;
  }
}

@media (max-width: 720px) {
  .event-row,
  .timetable-layout.has-preview .event-row {
    grid-template-columns: 1cm minmax(0, 1fr) auto 20px !important;
    grid-template-areas:
      "flyer time time arrow"
      "flyer title title arrow"
      "flyer description description arrow"
      "tickets tickets price price" !important;
  }

  .event-row__time {
    text-align: left;
  }
}


/* =========================================================
   EXPANDED EVENT CARD WITHOUT RAV3 PLACEHOLDER
   ========================================================= */

.event-preview__flyer[hidden] {
  display: none !important;
}


/* =========================================================
   STRIPE PAYMENT-ONLY PAGE
   ========================================================= */

.payment-page {
  width: min(1080px, calc(100% - 32px));
  padding-top: 34px;
  padding-bottom: 80px;
}

.payment-page__back {
  margin-bottom: 18px;
}

.payment-shell {
  overflow: hidden;
  border: 1px solid rgba(192, 132, 252, 0.20);
  border-radius: 24px;
  background:
    radial-gradient(circle at top right, rgba(124, 58, 237, 0.13), transparent 34%),
    #0e0915;
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.42);
}

.payment-shell__header {
  display: flex;
  justify-content: space-between;
  gap: 28px;
  align-items: center;
  padding: 30px 34px 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.payment-shell__header h1 {
  margin: 4px 0 7px;
  color: #ffffff;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.05;
}

.payment-shell__header > div:first-child > p:last-child {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
}

.payment-security {
  display: grid;
  grid-template-columns: auto 1fr;
  min-width: 180px;
  gap: 2px 9px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid rgba(192, 132, 252, 0.16);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
}

.payment-security > span {
  grid-row: 1 / 3;
  font-size: 22px;
}

.payment-security strong {
  color: #ffffff;
  font-size: 12px;
}

.payment-security small {
  color: rgba(255, 255, 255, 0.48);
  font-size: 10px;
}

.payment-order-summary {
  display: grid;
  grid-template-columns: minmax(0, 2.4fr) minmax(100px, 0.65fr) minmax(100px, 0.65fr) minmax(145px, 0.8fr);
  gap: 14px;
  align-items: center;
  padding: 18px 34px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(0, 0, 0, 0.18);
}

.payment-order-summary small {
  display: block;
  margin-bottom: 4px;
  color: rgba(255, 255, 255, 0.42);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.payment-order-summary strong {
  color: #ffffff;
}

.payment-order-summary__event {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.payment-order-summary__event strong {
  overflow: hidden;
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.payment-order-summary__event span {
  color: rgba(255, 255, 255, 0.58);
  font-size: 11px;
}

.payment-order-summary__item {
  text-align: center;
}

.payment-order-summary__item strong {
  color: #d8b4fe;
  font-size: 15px;
}

.payment-order-summary__total {
  text-align: right;
}

.payment-order-summary__total strong {
  color: #c084fc;
  font-size: 19px;
}

.payment-form {
  display: grid;
  gap: 0;
}

.payment-form__section {
  padding: 30px 34px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.payment-form__heading {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 22px;
}

.payment-form__heading > span {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  place-items: center;
  border: 1px solid rgba(192, 132, 252, 0.45);
  border-radius: 50%;
  background: rgba(124, 58, 237, 0.15);
  color: #d8b4fe;
  font-size: 12px;
  font-weight: 900;
}

.payment-form__heading h2 {
  margin: 0 0 4px;
  color: #ffffff;
  font-size: 19px;
}

.payment-form__heading p {
  margin: 0;
  color: rgba(255, 255, 255, 0.52);
  font-size: 12px;
  line-height: 1.45;
}

.payment-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  padding-left: 44px;
}

.payment-field {
  display: grid;
  gap: 7px;
}

.payment-field--full {
  grid-column: 1 / -1;
}

.payment-field > span {
  color: rgba(255, 255, 255, 0.74);
  font-size: 12px;
  font-weight: 700;
}

.payment-field input {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid rgba(192, 132, 252, 0.22);
  border-radius: 12px;
  outline: none;
  background: #09050f;
  color: #ffffff;
  font: inherit;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.payment-field input::placeholder {
  color: rgba(255, 255, 255, 0.30);
}

.payment-field input:focus {
  border-color: rgba(192, 132, 252, 0.80);
  box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.16);
}

.stripe-payment-box {
  position: relative;
  min-height: 125px;
  margin-left: 44px;
  padding: 18px;
  border: 1px solid rgba(192, 132, 252, 0.14);
  border-radius: 16px;
  background: rgba(3, 2, 6, 0.42);
}

.payment-element-loading {
  display: flex;
  min-height: 86px;
  gap: 10px;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, 0.58);
  font-size: 12px;
}

.payment-element-loading[hidden] {
  display: none !important;
}

.payment-error {
  min-height: 22px;
  margin: 12px 0 0 44px;
  color: #fda4af;
  font-size: 12px;
  line-height: 1.45;
}

.payment-submit {
  padding: 26px 34px 30px 78px;
}

.payment-submit__total {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  margin-bottom: 16px;
  color: rgba(255, 255, 255, 0.72);
}

.payment-submit__total strong {
  color: #c084fc;
  font-size: 24px;
}

.payment-submit__button {
  display: flex;
  width: 100%;
  min-height: 54px;
  justify-content: center;
  align-items: center;
  gap: 11px;
  border: 0;
  font-size: 15px;
  font-weight: 900;
}

.payment-submit__button:disabled {
  cursor: wait;
  opacity: 0.68;
}

.payment-privacy {
  display: flex;
  gap: 7px;
  align-items: flex-start;
  justify-content: center;
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.44);
  font-size: 10px;
  line-height: 1.45;
  text-align: center;
}

.payment-unavailable {
  padding: 60px 34px;
  text-align: center;
}

.payment-unavailable h2 {
  color: #c084fc;
}

.payment-unavailable p {
  color: rgba(255, 255, 255, 0.62);
}

@media (max-width: 800px) {
  .payment-shell__header {
    align-items: flex-start;
    flex-direction: column;
  }

  .payment-security {
    width: 100%;
  }

  .payment-order-summary {
    grid-template-columns: 1fr 1fr;
  }

  .payment-order-summary__event {
    grid-column: 1 / -1;
  }

  .payment-order-summary__item {
    text-align: left;
  }

  .payment-order-summary__total {
    text-align: right;
  }
}

@media (max-width: 620px) {
  .payment-page {
    width: min(100% - 18px, 1080px);
    padding-top: 20px;
  }

  .payment-shell {
    border-radius: 18px;
  }

  .payment-shell__header,
  .payment-order-summary,
  .payment-form__section {
    padding-left: 18px;
    padding-right: 18px;
  }

  .payment-shell__header h1 {
    font-size: 30px;
  }

  .payment-order-summary {
    grid-template-columns: 1fr 1fr;
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .payment-order-summary__event strong {
    white-space: normal;
  }

  .payment-fields {
    grid-template-columns: 1fr;
    padding-left: 0;
  }

  .payment-field--full {
    grid-column: auto;
  }

  .stripe-payment-box {
    margin-left: 0;
    padding: 14px;
  }

  .payment-error {
    margin-left: 0;
  }

  .payment-submit {
    padding: 22px 18px 26px;
  }

  .payment-submit__total strong {
    font-size: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .payment-field input {
    transition: none;
  }
}


/* =========================================================
   RAV3 TICKET CHECKOUT — STRIPE SPLIT CARD ELEMENTS
   ========================================================= */

.ticket-checkout-page {
  width: min(1040px, calc(100% - 32px));
  padding-top: 32px;
  padding-bottom: 80px;
}

.ticket-checkout-page__back {
  display: inline-flex;
  margin-bottom: 18px;
}

.ticket-checkout-shell {
  overflow: hidden;
  border: 1px solid rgba(192, 132, 252, 0.20);
  border-radius: 24px;
  background:
    radial-gradient(circle at top right, rgba(124, 58, 237, 0.14), transparent 35%),
    #0d0813;
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.42);
}

.ticket-checkout-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 30px 34px 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.ticket-checkout-header h1 {
  margin: 4px 0 7px;
  color: #ffffff;
  font-size: clamp(30px, 4.5vw, 48px);
  line-height: 1;
}

.ticket-checkout-header > div:first-child > p:last-child {
  margin: 0;
  color: rgba(255, 255, 255, 0.60);
}

.ticket-checkout-lock {
  display: grid;
  grid-template-columns: auto 1fr;
  min-width: 220px;
  gap: 2px 10px;
  align-items: center;
  padding: 13px 15px;
  border: 1px solid rgba(192, 132, 252, 0.18);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
}

.ticket-checkout-lock > span {
  grid-row: 1 / 3;
  font-size: 23px;
}

.ticket-checkout-lock strong {
  color: #ffffff;
  font-size: 12px;
}

.ticket-checkout-lock small {
  color: rgba(255, 255, 255, 0.46);
  font-size: 10px;
}

.ticket-order-strip {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(130px, 0.7fr) minmax(90px, 0.45fr);
  gap: 20px;
  align-items: center;
  padding: 18px 34px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
  background: rgba(0, 0, 0, 0.18);
}

.ticket-order-strip small {
  display: block;
  margin-bottom: 4px;
  color: rgba(255, 255, 255, 0.42);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ticket-order-strip strong {
  color: #ffffff;
}

.ticket-order-strip__event {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.ticket-order-strip__event > strong {
  overflow: hidden;
  font-size: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ticket-order-strip__event span {
  color: rgba(255, 255, 255, 0.56);
  font-size: 11px;
}

.ticket-checkout-form {
  display: grid;
}

.ticket-checkout-section {
  padding: 30px 34px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.ticket-checkout-section__title {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 22px;
}

.ticket-checkout-section__title > span {
  display: grid;
  width: 31px;
  height: 31px;
  flex: 0 0 31px;
  place-items: center;
  border: 1px solid rgba(192, 132, 252, 0.45);
  border-radius: 50%;
  background: rgba(124, 58, 237, 0.15);
  color: #d8b4fe;
  font-size: 12px;
  font-weight: 900;
}

.ticket-checkout-section__title h2 {
  margin: 0 0 4px;
  color: #ffffff;
  font-size: 19px;
}

.ticket-checkout-section__title p {
  margin: 0;
  color: rgba(255, 255, 255, 0.52);
  font-size: 12px;
  line-height: 1.45;
}

.ticket-quantity-row {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr);
  gap: 24px;
  align-items: center;
  padding-left: 45px;
}

.ticket-quantity-control {
  display: grid;
  grid-template-columns: 46px 76px 46px;
  overflow: hidden;
  border: 1px solid rgba(192, 132, 252, 0.24);
  border-radius: 13px;
  background: #09050f;
}

.ticket-quantity-control button,
.ticket-quantity-control input {
  min-height: 48px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #ffffff;
  font: inherit;
  text-align: center;
}

.ticket-quantity-control button {
  color: #d8b4fe;
  font-size: 21px;
  cursor: pointer;
}

.ticket-quantity-control button:hover:not(:disabled) {
  background: rgba(168, 85, 247, 0.14);
}

.ticket-quantity-control button:disabled {
  cursor: not-allowed;
  opacity: 0.34;
}

.ticket-quantity-control input {
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 17px;
  font-weight: 900;
  appearance: textfield;
}

.ticket-quantity-control input::-webkit-inner-spin-button,
.ticket-quantity-control input::-webkit-outer-spin-button {
  margin: 0;
  appearance: none;
}

.ticket-live-total {
  display: grid;
  justify-items: end;
  gap: 4px;
}

.ticket-live-total span {
  color: rgba(255, 255, 255, 0.52);
  font-size: 11px;
}

.ticket-live-total strong {
  color: #c084fc;
  font-size: 25px;
}

.ticket-live-total small {
  color: #fbbf24;
  font-size: 10px;
  text-align: right;
}

.ticket-live-total small[hidden] {
  display: none !important;
}

.ticket-buyer-fields,
.ticket-card-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  padding-left: 45px;
}

.ticket-field,
.ticket-stripe-field {
  display: grid;
  min-width: 0;
  gap: 7px;
}

.ticket-field--full,
.ticket-stripe-field--full {
  grid-column: 1 / -1;
}

.ticket-field > span,
.ticket-stripe-field > span {
  color: rgba(255, 255, 255, 0.74);
  font-size: 12px;
  font-weight: 700;
}

.ticket-field input,
.ticket-stripe-element {
  width: 100%;
  min-height: 49px;
  padding: 14px;
  border: 1px solid rgba(192, 132, 252, 0.22);
  border-radius: 12px;
  outline: none;
  background: #09050f;
  color: #ffffff;
  font: inherit;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease;
}

.ticket-field input::placeholder {
  color: rgba(255, 255, 255, 0.30);
}

.ticket-field input:focus,
.ticket-stripe-element.StripeElement--focus {
  border-color: rgba(192, 132, 252, 0.82);
  box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.16);
}

.ticket-stripe-element.StripeElement--invalid {
  border-color: rgba(253, 164, 175, 0.85);
}

.ticket-payment-error {
  min-height: 22px;
  margin: 13px 0 0 45px;
  color: #fda4af;
  font-size: 12px;
  line-height: 1.45;
}

.ticket-checkout-submit {
  padding: 26px 34px 30px 79px;
}

.ticket-checkout-submit__summary {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  margin-bottom: 16px;
  color: rgba(255, 255, 255, 0.66);
}

.ticket-checkout-submit__summary strong {
  color: #c084fc;
  font-size: 23px;
}

.ticket-pay-button {
  display: flex;
  width: 100%;
  min-height: 55px;
  justify-content: center;
  align-items: center;
  gap: 11px;
  border: 0;
  font-size: 15px;
  font-weight: 900;
}

.ticket-pay-button:disabled {
  cursor: wait;
  opacity: 0.68;
}

.ticket-stripe-note {
  display: flex;
  gap: 7px;
  align-items: flex-start;
  justify-content: center;
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.44);
  font-size: 10px;
  line-height: 1.45;
  text-align: center;
}

.ticket-checkout-unavailable {
  padding: 58px 34px;
  text-align: center;
}

.ticket-checkout-unavailable h2 {
  color: #c084fc;
}

.ticket-checkout-unavailable p {
  color: rgba(255, 255, 255, 0.62);
}

.ticket-purchase-result {
  max-width: 720px;
}

.ticket-purchase-result__summary {
  display: grid;
  gap: 5px;
  margin: 20px 0;
  padding: 16px;
  border: 1px solid rgba(192, 132, 252, 0.18);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
}

.ticket-purchase-result__summary span {
  color: rgba(255, 255, 255, 0.62);
}

.ticket-purchase-result__summary strong {
  margin-top: 6px;
  color: #c084fc;
  font-size: 20px;
}

@media (max-width: 760px) {
  .ticket-checkout-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .ticket-checkout-lock {
    width: 100%;
  }

  .ticket-order-strip {
    grid-template-columns: 1fr 1fr;
  }

  .ticket-order-strip__event {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  .ticket-checkout-page {
    width: min(100% - 18px, 1040px);
    padding-top: 20px;
  }

  .ticket-checkout-shell {
    border-radius: 18px;
  }

  .ticket-checkout-header,
  .ticket-order-strip,
  .ticket-checkout-section {
    padding-right: 18px;
    padding-left: 18px;
  }

  .ticket-checkout-header h1 {
    font-size: 31px;
  }

  .ticket-order-strip {
    gap: 14px;
  }

  .ticket-order-strip__event > strong {
    white-space: normal;
  }

  .ticket-quantity-row {
    grid-template-columns: 1fr;
    padding-left: 0;
  }

  .ticket-quantity-control {
    width: 168px;
  }

  .ticket-live-total {
    justify-items: start;
  }

  .ticket-live-total small {
    text-align: left;
  }

  .ticket-buyer-fields,
  .ticket-card-fields {
    grid-template-columns: 1fr;
    padding-left: 0;
  }

  .ticket-field--full,
  .ticket-stripe-field--full {
    grid-column: auto;
  }

  .ticket-payment-error {
    margin-left: 0;
  }

  .ticket-checkout-submit {
    padding: 22px 18px 26px;
  }

  .ticket-checkout-submit__summary strong {
    font-size: 19px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ticket-field input,
  .ticket-stripe-element {
    transition: none;
  }
}


/* =========================================================
   FREE EVENT PUBLICATION NOTICE
   ========================================================= */

.field-note--free-event {
  padding: 12px 14px;
  border: 1px solid rgba(192, 132, 252, 0.26);
  border-radius: 10px;
  background: rgba(124, 58, 237, 0.10);
  color: rgba(255, 255, 255, 0.76);
}

.field-note--free-event strong {
  color: #ffffff;
}


/* =========================================================
   EVENT SUBMIT RESPONSIBILITY DECLARATION
   ========================================================= */

.event-submit-declaration {
  margin: 12px 0 0;
  padding: 0 4px;
  color: rgba(255, 255, 255, 0.56);
  font-size: 11px;
  font-style: italic;
  line-height: 1.55;
  text-align: left;
}


/* =========================================================
   EVENT SUBMIT ELECTRONIC ACCEPTANCE CHECKBOX
   ========================================================= */

.event-submit-signature {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: flex-start;
  margin: 12px 0 0;
  padding: 13px 14px;
  border: 1px solid rgba(192, 132, 252, 0.22);
  border-radius: 10px;
  background: rgba(124, 58, 237, 0.08);
  color: rgba(255, 255, 255, 0.64);
  cursor: pointer;
}

.event-submit-signature input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  accent-color: #a855f7;
}

.event-submit-signature strong {
  display: block;
  margin-bottom: 4px;
  color: #ffffff;
  font-size: 12px;
  font-style: normal;
}

.event-submit-signature em {
  display: block;
  color: rgba(255, 255, 255, 0.58);
  font-size: 11px;
  font-style: italic;
  line-height: 1.55;
}




/* =========================================================
   LISTING-ONLY EVENTS: NO TICKETS / NO BUY BUTTON
   ========================================================= */

.event-row--listing-only .event-row__tickets {
  display: none !important;
}

.event-buy[hidden],
.event-buy.is-hidden,
#preview-available-wrap[hidden] {
  display: none !important;
}

.event-row--listing-only .event-row__price strong {
  color: var(--accent-light);
  white-space: normal;
  max-width: 180px;
  display: inline-block;
  line-height: 1.2;
}

.event-row--listing-only {
  grid-template-columns: 70px minmax(0, 1fr) auto 24px;
}

@media (max-width: 760px) {
  .event-row--listing-only .event-row__price strong {
    max-width: none;
  }
}


/* =========================================================
   EVENT CONTRACT MODAL
   ========================================================= */

.event-contract-read-button {
  width: auto !important;
  min-width: 220px;
  height: 38px !important;
  margin: -2px 0 18px 0 !important;
  padding: 0 14px !important;
  border: 1px solid rgba(192, 132, 252, 0.35) !important;
  background: rgba(124, 58, 237, 0.13) !important;
  color: #ffffff !important;
  font-size: 12px !important;
}

.event-contract-modal[hidden] {
  display: none;
}

.event-contract-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.event-contract-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.78);
  backdrop-filter: blur(6px);
}

.event-contract-modal__dialog {
  position: relative;
  width: min(1040px, calc(100vw - 28px));
  max-height: calc(100vh - 34px);
  margin: 17px auto;
  display: grid;
  grid-template-rows: auto 1fr auto;
  border: 1px solid rgba(192, 132, 252, 0.32);
  border-radius: 16px;
  background: #0b0712;
  color: #ffffff;
  box-shadow: 0 25px 80px rgba(0, 0, 0, 0.7);
  overflow: hidden;
}

.event-contract-modal__header,
.event-contract-modal__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 18px;
  background: rgba(255, 255, 255, 0.04);
}

.event-contract-modal__header h3,
.event-contract-modal__header p {
  margin: 0;
}

.event-contract-modal__close {
  width: 36px !important;
  height: 36px !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #ffffff !important;
  font-size: 26px !important;
  line-height: 1 !important;
}

.event-contract-modal__body {
  min-height: 0;
  padding: 20px;
  overflow: auto;
}

.event-contract-modal__body pre {
  white-space: pre-wrap;
  word-wrap: break-word;
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-family: "Inter", "Segoe UI", sans-serif;
  font-size: 12px;
  line-height: 1.55;
}

.event-contract-modal__actions {
  justify-content: flex-end;
}

.event-contract-modal__secondary,
.event-contract-modal__primary {
  width: auto !important;
  min-width: 150px;
  margin: 0 !important;
  padding: 0 16px !important;
}

.event-contract-modal__secondary {
  background: transparent !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.22) !important;
}

.event-contract-modal__primary {
  background: #ffffff !important;
  color: #000000 !important;
}

.event-contract-modal-open {
  overflow: hidden;
}

.my-event-card {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
}

.my-event-card__actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.dashboard-link--contract {
  padding: 8px 11px;
  font-size: 12px;
}

@media (max-width: 720px) {
  .event-contract-modal__dialog {
    width: calc(100vw - 14px);
    max-height: calc(100vh - 14px);
    margin: 7px auto;
  }

  .event-contract-modal__actions,
  .my-event-card {
    display: grid;
    grid-template-columns: 1fr;
  }

  .event-contract-modal__secondary,
  .event-contract-modal__primary,
  .event-contract-read-button {
    width: 100% !important;
  }

  .my-event-card__actions {
    justify-content: flex-start;
  }
}


/* =========================================================
   TICKET PDF DOWNLOAD FLOW
   ========================================================= */

.ticket-pdf-download-list {
  display: grid;
  gap: 10px;
  margin: 20px 0 12px;
}

.ticket-download-note {
  color: rgba(255,255,255,.62);
  font-size: 13px;
}

.ticket-purchase-result__summary code,
.digital-ticket code,
.sold-tickets-table code {
  white-space: normal;
  word-break: break-all;
}


/* =========================================================
   PRIVATE TICKET DOWNLOAD WARNING
   ========================================================= */

.ticket-one-time-warning {
  display: grid;
  gap: 9px;
  margin: 20px 0;
  padding: 20px 18px;
  border: 2px solid rgba(248, 113, 113, 0.82);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(127, 29, 29, 0.34), rgba(69, 10, 10, 0.24)),
    rgba(10, 6, 16, 0.62);
  color: #fecaca;
  text-align: center;
  text-transform: uppercase;
  box-shadow:
    0 0 0 1px rgba(239, 68, 68, 0.18),
    0 18px 46px rgba(0, 0, 0, 0.42),
    inset 0 0 28px rgba(239, 68, 68, 0.10);
  backdrop-filter: blur(4px);
}

.ticket-one-time-warning strong {
  color: #ffffff;
  text-shadow: 0 0 18px rgba(248, 113, 113, 0.28);
  font-size: clamp(22px, 4.7vw, 38px);
  line-height: 1.05;
  letter-spacing: 0.7px;
}

.ticket-one-time-warning span {
  color: #fecaca;
  font-size: clamp(14px, 2.8vw, 22px);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: 0.35px;
}

.ticket-one-time-warning::before {
  content: "⚠";
  display: grid;
  width: 44px;
  height: 44px;
  margin: 0 auto 2px;
  place-items: center;
  border: 1px solid rgba(248, 113, 113, 0.78);
  border-radius: 999px;
  background: rgba(127, 29, 29, 0.48);
  color: #fecaca;
  font-size: 24px;
  font-weight: 900;
  line-height: 1;
}


/* =========================================================
   EVENT SALES CLOSED AFTER START TIME
   ========================================================= */

.event-row--sales-closed {
  opacity: 0.72;
}

.event-row--sales-closed .event-row__price strong,
.event-row--sales-closed .event-row__tickets strong {
  color: #fca5a5 !important;
}

.event-buy--closed,
.event-buy--closed:hover,
.event-buy--closed:focus {
  pointer-events: none;
  cursor: not-allowed;
  background: rgba(127, 29, 29, 0.36) !important;
  border-color: rgba(248, 113, 113, 0.62) !important;
  color: #fecaca !important;
  box-shadow: none !important;
  opacity: 0.92;
}


/* =========================================================
   CREATE EVENT TIERED TICKETS
   ========================================================= */

.ticket-tier-grid {
  display: grid;
  gap: 14px;
  margin: 12px 0 16px;
}

.ticket-tier-card {
  border: 1px solid rgba(192, 132, 252, 0.22);
  border-radius: 16px;
  padding: 16px;
  background: rgba(14, 9, 22, 0.78);
}

.ticket-tier-card h3 {
  margin: 0 0 4px;
  color: #d8b4fe;
}

.ticket-tier-card p {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.62);
  font-size: 12px;
}

@media (min-width: 920px) {
  .ticket-tier-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ticket-tier-card .form-two {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   RAV3PASS PNG LOGOS
   ========================================================= */

.brand--small img {
  width: 138px;
  max-height: 42px;
  object-fit: contain;
}

.footer-brand img {
  width: 150px;
  max-height: 130px;
  object-fit: contain;
}

.events-empty img {
  width: 130px;
  object-fit: contain;
}

.digital-ticket__brand img {
  width: 260px;
  max-width: 100%;
  object-fit: contain;
}


/* =========================================================
   CLOUDFLARE TURNSTILE
   ========================================================= */

.turnstile-wrapper {
  display: flex;
  justify-content: center;
  margin: 18px 0 20px;
  min-height: 65px;
}

.turnstile-wrapper--event {
  justify-content: flex-start;
}

.turnstile-wrapper .cf-turnstile {
  display: inline-block;
}

.turnstile-wrapper--checkout {
  width: 100%;
  justify-content: center;
  margin: 8px 0 16px;
}


