/* ===== Nav ===== */
html[data-theme="dark"] {
  color-scheme: dark;
  --a-bg: #080609;
  --a-bg-2: #120c11;
  --a-ink: #f7ece5;
  --a-ink-soft: rgba(247,236,229,0.76);
  --a-red: #EE1717;
  --a-gold: #f4b86a;
  --a-highlight: #EE1717;
  --a-rule: rgba(255,236,224,0.18);
}

/* Italic restored intentionally: the brand uses Playfair Display italic
   for editorial display type and em/pull-quotes. See docs/UX-AUDIT.md. */

/* Headings default to the editorial serif; body/UI stays sans. Pages keep
   sans on small label-style headings via their own more-specific rules. */
h1, h2, h3 { font-family: var(--serif); }

/* Press acclaim bar (injected above the closing CTA) */
.press-bar { background: var(--a-bg-2, #f7f4f0); text-align: center; padding: clamp(48px, 7vw, 84px) 24px; border-top: 1px solid var(--a-rule, rgba(20,20,20,.1)); }
.press-bar .wrap { max-width: 760px; margin: 0 auto; }
.press-bar-quote { font-family: var(--serif); font-style: italic; font-size: clamp(22px, 3.2vw, 34px); line-height: 1.25; letter-spacing: -.01em; color: var(--a-ink, #141414); margin: 0; }
.press-bar-quote::before { content: "\201C"; }
.press-bar-quote::after { content: "\201D"; }
.press-bar-cite { font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--a-red); margin: 14px 0 0; }
.press-bar-outlets { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; margin: 30px 0 0; padding: 0; }
.press-bar-outlets li { font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--a-ink-soft, #8a8a8a); }

/* Site-wide closing call-to-action band (injected above the footer) */
.site-cta { background: var(--a-ink, #141414); color: #fff; text-align: center; padding: clamp(56px, 8vw, 104px) 24px; }
.site-cta .wrap { max-width: 720px; margin: 0 auto; }
.site-cta-eyebrow { font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--a-red); margin: 0 0 14px; }
.site-cta-title { font-family: var(--serif); font-size: clamp(30px, 5vw, 52px); line-height: 1.04; letter-spacing: -.02em; margin: 0 0 30px; color: #fff; }
.site-cta-note { font-family: var(--sans); font-size: 12px; letter-spacing: .03em; color: rgba(255,255,255,.55); margin: 20px 0 0; }
.btn-primary { display: inline-flex; align-items: center; gap: 10px; background: var(--a-red); color: #fff; font-family: var(--sans); font-weight: 800; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; padding: 16px 32px; border-radius: 9999px; text-decoration: none; transition: transform .15s ease, filter .15s ease; }
.btn-primary:hover { filter: brightness(1.08); transform: translateY(-1px); }

html[data-theme="dark"] body {
  background:
    radial-gradient(900px 520px at 50% -12%, rgba(238,23,23, .20), transparent 68%),
    radial-gradient(620px 460px at 8% 8%, rgba(135, 48, 255, .13), transparent 72%),
    linear-gradient(180deg, #0b070a 0%, #070506 56%, #0d080b 100%);
  color: var(--a-ink);
}

html[data-theme="dark"] body::before {
  background:
    radial-gradient(70% 60% at 50% -10%, rgba(238,23,23,0.30), rgba(238,23,23,0.12) 42%, transparent 72%),
    radial-gradient(34% 38% at 12% 0%, rgba(156,74,255,0.16), transparent 68%),
    radial-gradient(38% 38% at 88% 0%, rgba(255,184,106,0.11), transparent 65%);
  mix-blend-mode: screen;
  opacity: .78;
}

.nav {
  position: sticky; top: 0; z-index: 50;
  background: #fff;
  backdrop-filter: blur(12px) saturate(1.1);
  -webkit-backdrop-filter: blur(12px) saturate(1.1);
  border-bottom: 1px solid rgba(0,0,0,0.08);
  transition: background .3s ease, border-color .3s ease, color .3s ease;
}
html[data-theme="dark"] .nav {
  background: rgba(8, 6, 9, .84);
  color: var(--a-ink);
  border-bottom-color: var(--a-rule);
  box-shadow: 0 18px 60px rgba(0,0,0,.26);
}
.nav.nav--scrolled {
  background: #EE1717;
  color: #fff;
  border-bottom-color: transparent;
}
.nav.nav--scrolled .nav-left a,
.nav.nav--scrolled .nav-right a,
.nav.nav--scrolled .nav-logo { color: #fff; }
.nav.nav--scrolled .nav-logo .kermess-mark { color: #fff; }
.nav.nav--scrolled .btn-ghost { color: #fff; border-color: rgba(255,255,255,0.5); }
.nav.nav--scrolled .btn-ghost:hover { background: #fff; color: #EE1717; border-color: #fff; }
html[data-theme="dark"] .nav.nav--scrolled {
  background: rgba(238,23,23, .92);
  color: #fff;
}
.nav-inner {
  max-width: none; margin: 0 auto;
  display: grid; grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 18px 48px;
  gap: 32px;
}
.nav-left, .nav-right {
  display: flex; gap: 28px; align-items: center;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
}
.nav-right { justify-content: flex-end; }
.nav-left a, .nav-right a {
  display: inline-flex; align-items: center; line-height: 1;
  opacity: 0.75; transition: opacity .2s, color .2s, background .2s, box-shadow .2s;
}
.nav-left a:hover, .nav-right a:hover { opacity: 1; }
.nav-logo {
  font-family: var(--sans);
  font-size: 22px;
  font-style: italic;
  letter-spacing: 0.01em;
  line-height: 1;
  text-align: center;
}
.nav-logo span { display: block; font-size: 9px; font-family: var(--sans); font-style: normal; letter-spacing: 0.05em; margin-top: 4px; opacity: 0.6; }
.nav-logo-text { display: block; overflow: hidden; max-height: 3em; opacity: 1; transition: max-height .35s ease, opacity .25s ease; }
.nav--scrolled .nav-logo-text { max-height: 0; opacity: 0; }
.nav-logo .kermess-mark { display: block; width: 32px; height: 32px; margin: 0 auto; color: var(--a-red); animation: kermess-spin 28s linear infinite; transform-origin: 50% 50%; transition: color .4s ease; }
.nav-logo:hover .kermess-mark { animation-duration: 4s; color: var(--a-ink); }
.footer-brand .kermess-mark { display: block; width: 44px; height: 44px; margin-bottom: 16px; color: var(--a-red); animation: kermess-spin 40s linear infinite; transform-origin: 50% 50%; }
@keyframes kermess-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Swift page transitions */
.km-page-transition {
  position: fixed;
  inset: 0;
  z-index: 9998;
  pointer-events: none;
  opacity: 0;
  background: var(--a-red);
  transition: opacity .18s cubic-bezier(.22, 1, .36, 1);
}
.km-page-transition.is-active {
  opacity: .14;
}
html.km-page-enter body > *:not(.km-page-transition):not(.km-intro) {
  animation: kmPageEnter .28s cubic-bezier(.22, 1, .36, 1) both;
}
html.km-page-leaving body > *:not(.km-page-transition):not(.km-intro) {
  transition: opacity .16s cubic-bezier(.22, 1, .36, 1);
  opacity: 0;
}
@keyframes kmPageEnter {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .km-page-transition,
  html.km-page-enter body > *:not(.km-page-transition):not(.km-intro),
  html.km-page-leaving body > *:not(.km-page-transition):not(.km-intro) {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* Opening logo bloom */
.km-intro-lock,
.km-intro-lock body {
  overflow: hidden;
}

.km-intro {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  background: #fff;
  color: #EE1717;
  pointer-events: none;
  animation: kmIntroOverlay 2.95s cubic-bezier(.76, 0, .24, 1) forwards;
}
html[data-theme="dark"] .km-intro {
  background: #080609;
  color: var(--a-red);
}

.km-intro::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,0) 0 34%, rgba(255,255,255,.7) 58%, #fff 76%);
  opacity: 0;
  animation: kmIntroWash 2.95s cubic-bezier(.76, 0, .24, 1) forwards;
}
html[data-theme="dark"] .km-intro::after {
  background:
    radial-gradient(circle at 50% 50%, rgba(8,6,9,0) 0 34%, rgba(8,6,9,.72) 58%, #080609 76%);
}

.km-intro-stage {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100svh;
  display: grid;
  place-items: center;
  transform-origin: 50% 50%;
  animation: kmIntroRush 2.65s cubic-bezier(.74, 0, .18, 1) forwards;
}

.km-intro-mark {
  width: clamp(180px, 34vmin, 390px);
  height: auto;
  display: block;
  overflow: visible;
  filter: none;
}

.km-intro-piece {
  transform-box: fill-box;
  transform-origin: center;
  opacity: 0;
  animation: kmIntroPiece 2.65s cubic-bezier(.74, 0, .18, 1) forwards;
}

.km-intro-piece-1 { --km-x: -18vw; --km-y: 32vh; --km-r: -18deg; }
.km-intro-piece-2 { --km-x: 20vw; --km-y: 30vh; --km-r: 17deg; }
.km-intro-piece-3 { --km-x: 34vw; --km-y: 2vh; --km-r: 24deg; }
.km-intro-piece-4 { --km-x: -34vw; --km-y: 2vh; --km-r: -24deg; }
.km-intro-piece-5 { --km-x: 30vw; --km-y: -24vh; --km-r: -16deg; }
.km-intro-piece-6 { --km-x: -30vw; --km-y: -24vh; --km-r: 16deg; }
.km-intro-piece-7 { --km-x: -12vw; --km-y: -36vh; --km-r: -12deg; }
.km-intro-piece-8 { --km-x: 12vw; --km-y: -36vh; --km-r: 12deg; }

@keyframes kmIntroRush {
  0% {
    transform: scale(.72) rotate(-20deg);
    opacity: 0;
  }
  16% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
  47% {
    transform: scale(1.08) rotate(0deg);
    opacity: 1;
  }
  100% {
    transform: scale(7.4) rotate(7deg);
    opacity: 0;
  }
}

@keyframes kmIntroPiece {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(.92);
  }
  16% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }
  48% {
    opacity: 1;
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate3d(var(--km-x), var(--km-y), 0) rotate(var(--km-r)) scale(1.18);
  }
}

@keyframes kmIntroWash {
  0%, 46% { opacity: 0; transform: scale(.8); }
  72% { opacity: .72; }
  100% { opacity: 1; transform: scale(1.25); }
}

@keyframes kmIntroOverlay {
  0%, 78% {
    opacity: 1;
    visibility: visible;
  }
  100% {
    opacity: 0;
    visibility: hidden;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kermess-mark { animation: none !important; }
  .km-intro { display: none; }
}

/* Active nav state */
.nav-left a.nav-active,
.nav-right a.nav-active,
.nav-dropdown-trigger.nav-active {
  opacity: 1;
  position: relative;
  color: var(--a-ink);
}
.nav-left > a.nav-active:not(.nav-cta)::after,
.nav-right > a.nav-active:not(.nav-cta)::after,
.nav-dropdown-trigger.nav-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: var(--a-red);
  transform: translateX(-50%);
}
.nav-dropdown-menu a.nav-active {
  color: var(--a-red);
}
.nav.nav--scrolled .nav-left > a.nav-active:not(.nav-cta),
.nav.nav--scrolled .nav-right > a.nav-active:not(.nav-cta),
.nav.nav--scrolled .nav-dropdown-trigger.nav-active {
  color: #fff;
}
.nav.nav--scrolled .nav-left > a.nav-active:not(.nav-cta)::after,
.nav.nav--scrolled .nav-right > a.nav-active:not(.nav-cta)::after,
.nav.nav--scrolled .nav-dropdown-trigger.nav-active::after {
  background: #fff;
}
html[data-theme="dark"] .nav-left > a.nav-active:not(.nav-cta),
html[data-theme="dark"] .nav-right > a.nav-active:not(.nav-cta),
html[data-theme="dark"] .nav-dropdown-trigger.nav-active {
  color: var(--a-ink);
}

/* Nav CTA button — Mobbin black pill */
a.nav-cta {
  background: #141414 !important;
  color: #fff !important;
  opacity: 1 !important;
  min-height: 36px;
  padding: 10px 20px !important;
  border-radius: 9999px;
  font-weight: 500 !important;
  font-size: 14px !important;
  letter-spacing: -0.01em;
  text-transform: none;
  transition: background 0.2s;
}
a.nav-cta:hover { background: #333 !important; }
.nav--scrolled a.nav-cta {
  background: #141414 !important;
  color: #fff !important;
}
.nav--scrolled a.nav-cta:hover { background: #333 !important; }

/* Mobile nav */
@media (min-width: 901px) { .nav-toggle { display: none !important; } }
@media (max-width: 900px) {
  .nav-inner { grid-template-columns: 1fr auto 1fr; padding: 14px 16px; gap: 8px; }
  .nav-left, .nav-right { display: none !important; }
  .nav-logo { font-size: 22px; }
  .nav-logo span { font-size: 8px; letter-spacing: 0.05em; }
  .kermess-mark { width: 18px; height: 18px; margin-bottom: 4px; }
  .nav-inner { position: relative; }
  .nav-toggle {
    display: inline-flex !important;
    flex-direction: column; justify-content: center; gap: 4px;
    background: none; border: none; cursor: pointer;
    padding: 10px 4px; color: var(--a-ink);
    grid-column: 1; justify-self: start;
  }
  .nav-toggle span {
    display: block; width: 22px; height: 1.5px;
    background: currentColor; transition: transform .2s, opacity .2s;
  }
  .nav-toggle.is-open span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
  .nav-toggle.is-open span:nth-child(2) { opacity: 0; }
  .nav-toggle.is-open span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }
}

/* Mobile nav drawer */
@media (max-width: 900px) {
  .nav-left.open {
    display: flex !important;
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; gap: 0 !important;
    background: var(--a-bg);
    border-top: 1px solid var(--a-rule);
    border-bottom: 1px solid var(--a-rule);
    padding: 8px 20px 16px !important;
    z-index: 60;
  }
  .nav-left.open a { padding: 12px 0 !important; border-bottom: 1px solid var(--a-rule); opacity: 1; }
  .nav-left.open a:last-child { border-bottom: none; }
  .nav-left.open .nav-dropdown {
    width: 100%;
  }
  .nav-left.open .nav-dropdown-trigger {
    width: 100%;
    min-height: 44px;
    justify-content: flex-start;
    border-bottom: 1px solid var(--a-rule);
  }
  .nav-left.open .nav-dropdown-menu {
    position: static;
    width: 100%;
    margin: 8px 0 10px;
    box-shadow: none;
    transform: none;
  }
  .nav-left.open a.nav-active,
  .nav-right.open a.nav-active:not(.nav-cta) {
    color: var(--a-ink);
  }
  .nav-left.open a.nav-active::after,
  .nav-right.open a.nav-active:not(.nav-cta)::after {
    bottom: 7px;
    left: 0;
    transform: none;
  }
  .nav-right.open {
    display: flex !important;
    position: absolute; top: calc(100% + 1px); left: 0; right: 0;
    flex-direction: column; gap: 0 !important;
    background: var(--a-bg);
    padding: 0 20px 16px !important;
    z-index: 60;
  }
  .nav-right.open a:not(.btn) { padding: 12px 0 !important; border-bottom: 1px solid var(--a-rule); opacity: 1; }
  .nav-right.open .btn { margin-top: 12px; align-self: flex-start; }
}

/* Nav transitions */
.nav { transition: color .25s ease, border-color .25s ease, background .3s ease; }
.nav .nav-left a, .nav .nav-right a, .nav .nav-logo { transition: color .25s ease; }

/* Dropdown */
.nav-dropdown { position: relative; }
.nav-dropdown-trigger {
  background: none; border: none; cursor: pointer;
  font-family: var(--sans); font-size: 13px; font-weight: 600; letter-spacing: 0.012em;
  text-transform: none; color: inherit; opacity: 0.75;
  display: inline-flex; align-items: center; gap: 4px; line-height: 1;
  padding: 0; transition: opacity .2s, color .2s, background .2s, box-shadow .2s;
}
.nav-dropdown-trigger:hover { opacity: 1; }
.nav-dropdown-caret {
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  transform: translateY(-.5px);
  transition: transform .2s;
}
.nav-dropdown.is-open .nav-dropdown-caret { transform: rotate(180deg); }
.nav-dropdown-menu {
  display: none;
  position: absolute; top: calc(100% + 18px); left: 0;
  background: #fff; color: #000;
  border: 1px solid rgba(0,0,0,0.1);
  width: min(300px, calc(100vw - 32px));
  padding: 12px;
  gap: 12px;
  flex-direction: column;
  z-index: 100;
  border-radius: 18px;
  box-shadow: 0 30px 90px rgba(0,0,0,.14);
}
html[data-theme="dark"] .nav-dropdown-menu {
  background: rgba(18, 12, 17, .96);
  color: var(--a-ink);
  border-color: var(--a-rule);
  box-shadow: 0 24px 80px rgba(0,0,0,.42);
}
.nav-dropdown.is-open .nav-dropdown-menu { display: flex; }
.nav-dropdown-preview {
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: 14px;
  align-items: stretch;
  padding: 10px;
  border-radius: 14px;
  background: #f6f6f6;
}
.nav-dropdown-preview img {
  width: 108px;
  height: 128px;
  object-fit: cover;
  border-radius: 10px;
  background: #111;
}
.nav-dropdown-preview div {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-width: 0;
  padding: 4px 2px;
}
.nav-dropdown-preview span,
.nav-dropdown-item em {
  font-size: 10px;
  line-height: 1;
  font-style: normal;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--a-red);
}
.nav-dropdown-preview strong {
  display: block;
  margin-top: 8px;
  font-size: 22px;
  line-height: 1;
  letter-spacing: -.04em;
}
.nav-dropdown-preview small {
  display: block;
  margin-top: 8px;
  color: var(--a-ink-soft);
  font-size: 12px;
  line-height: 1.35;
}
.nav-dropdown-list {
  display: grid;
  gap: 4px;
}
.nav-dropdown-menu a.nav-dropdown-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 13px 12px;
  border: 0;
  border-radius: 12px;
  font-family: var(--sans);
  opacity: 1;
  transition: background .15s, color .15s;
}
.nav-dropdown-item strong {
  display: block;
  color: inherit;
  font-size: 14px;
  line-height: 1.1;
  font-weight: 800;
  letter-spacing: -.01em;
  text-transform: none;
}
.nav-dropdown-item small {
  display: block;
  margin-top: 4px;
  color: var(--a-ink-soft);
  font-size: 12px;
  line-height: 1.25;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
.nav-dropdown-menu a:last-child { border-bottom: none; }
.nav-dropdown-menu a:hover { background: #f5f5f5; color: var(--a-ink); }
.nav-dropdown-menu a:hover small { color: var(--a-ink-soft); }
.nav-dropdown-menu a.nav-active {
  background: #fff1f1;
  color: var(--a-ink);
}

.theme-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 58px;
  height: 30px;
  padding: 3px;
  border: 1px solid var(--a-rule);
  border-radius: 999px;
  background: color-mix(in srgb, var(--a-bg) 88%, transparent);
  color: inherit;
  cursor: pointer;
  line-height: 0;
}
.theme-toggle::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--a-ink);
  transition: transform .22s ease, background .22s ease;
}
.theme-toggle span {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  opacity: .62;
  transition: color .22s ease, opacity .22s ease;
}
.theme-toggle svg { display: block; width: 15px; height: 15px; }
.theme-toggle .theme-toggle-moon svg { transform: translateX(-1px); }
.theme-toggle .theme-toggle-sun { color: var(--a-bg); opacity: 1; }
.theme-toggle[aria-pressed="true"]::before { transform: translateX(28px); background: var(--a-red); }
.theme-toggle[aria-pressed="true"] .theme-toggle-sun { color: inherit; opacity: .62; }
.theme-toggle[aria-pressed="true"] .theme-toggle-moon { color: #fff; opacity: 1; }
.nav.nav--scrolled .theme-toggle {
  border-color: rgba(255,255,255,.42);
  background: rgba(0,0,0,.12);
}
.nav.nav--scrolled .theme-toggle::before { background: #fff; }
.nav.nav--scrolled .theme-toggle-sun { color: var(--a-red); }
.nav.nav--scrolled .theme-toggle[aria-pressed="true"]::before { background: #fff; }
.nav.nav--scrolled .theme-toggle[aria-pressed="true"] .theme-toggle-moon { color: var(--a-red); }

/* ===== Footer ===== */
.footer { background: var(--a-bg-2); padding: 80px 48px 32px; font-size: 13px; border-bottom: none; }
html[data-theme="dark"] .footer {
  background:
    linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.045)),
    var(--a-bg-2);
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 64px;
}
.footer-brand { font-family: var(--sans); font-size: 40px; font-style: italic; line-height: 1; }
.footer-brand small { display: block; font-family: var(--sans); font-size: 10px; font-style: normal; letter-spacing: 0.05em; margin-top: 8px; opacity: 0.6; }
.footer-col h5 {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 16px;
  opacity: 0.6;
}
.footer-col a {
  display: block;
  padding: 4px 0;
  font-family: var(--sans);
  font-style: normal;
  font-size: 14px;
  font-weight: 500;
  opacity: 0.75;
}
.footer-col a:hover { color: var(--a-red); opacity: 1; }
.footer-bot {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 32px;
  border-top: 1px solid var(--a-rule);
  font-family: var(--sans);
  font-size: 10px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.6;
}
@media (max-width: 900px) {
  .footer { padding-left: 20px !important; padding-right: 20px !important; padding-top: 60px !important; padding-bottom: 40px !important; }
  .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 24px !important; }
  .footer-brand { font-size: 28px !important; }
}
@media (max-width: 540px) {
  .footer-grid { grid-template-columns: 1fr !important; }
}

/* ===== Buttons ===== */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 28px;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--a-ink);
  color: var(--a-bg);
  border: 1.5px solid var(--a-ink);
  cursor: pointer;
  transition: all .2s;
}
.btn:hover { background: var(--a-red); border-color: var(--a-red); }
.btn-ghost { background: transparent; color: var(--a-ink); }
.btn-ghost:hover { background: var(--a-ink); color: var(--a-bg); }

html[data-theme="dark"] .btn {
  box-shadow: 0 0 0 1px rgba(255,255,255,.04), 0 14px 34px rgba(0,0,0,.28);
}

html[data-theme="dark"] .hero,
html[data-theme="dark"] section,
html[data-theme="dark"] .page-head {
  border-color: var(--a-rule);
}

html[data-theme="dark"] .hero-marquee,
html[data-theme="dark"] .newsletter,
html[data-theme="dark"] .summary,
html[data-theme="dark"] .shop-banner {
  background:
    radial-gradient(120% 160% at 12% 0%, rgba(238,23,23,.20), transparent 44%),
    #0d080b;
  color: var(--a-ink);
}

html[data-theme="dark"] .hero-content,
html[data-theme="dark"] .show-poster-inner,
html[data-theme="dark"] .stage {
  color: #fff;
}

html[data-theme="dark"] .hero-title {
  color: #fff;
  text-shadow: 0 18px 80px rgba(238,23,23,.24), 0 2px 16px rgba(0,0,0,.62);
}

html[data-theme="dark"] .hero-meta {
  border-top-color: rgba(255,255,255,.26);
}

html[data-theme="dark"] .hero-content .btn {
  background: #fff;
  color: #0b070a;
  border-color: #fff;
}

html[data-theme="dark"] .hero-content .btn:hover {
  background: var(--a-red);
  color: #fff;
  border-color: var(--a-red);
}

html[data-theme="dark"] .show-poster,
html[data-theme="dark"] .gallery-tile,
html[data-theme="dark"] .two-col-img,
html[data-theme="dark"] .cast-card,
html[data-theme="dark"] .seat-map,
html[data-theme="dark"] .product-img {
  background-color: #171016;
  border-color: var(--a-rule);
}

html[data-theme="dark"] .cast-card {
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,0.055) 0 2px, transparent 2px 12px),
    linear-gradient(180deg, rgba(238,23,23,.10), rgba(255,255,255,.025));
}

html[data-theme="dark"] .cast-card:hover,
html[data-theme="dark"] .cal-row:hover,
html[data-theme="dark"] .tier:hover {
  background-color: rgba(255,255,255,.055);
  color: var(--a-ink);
}

html[data-theme="dark"] .cal,
html[data-theme="dark"] .cal-row,
html[data-theme="dark"] .ticket-tiers,
html[data-theme="dark"] .tier,
html[data-theme="dark"] .faq-item,
html[data-theme="dark"] .press-quote,
html[data-theme="dark"] .show-body .quote,
html[data-theme="dark"] .menu-item,
html[data-theme="dark"] .section-head,
html[data-theme="dark"] .footer-bot {
  border-color: var(--a-rule);
}

html[data-theme="dark"] .shop-filter button,
html[data-theme="dark"] .product-add,
html[data-theme="dark"] .cal-btn,
html[data-theme="dark"] .seats > div {
  border-color: rgba(247,236,229,.34);
  color: var(--a-ink);
}

html[data-theme="dark"] .shop-filter button:hover,
html[data-theme="dark"] .shop-filter button.active,
html[data-theme="dark"] .product-add:hover,
html[data-theme="dark"] .cal-btn:hover {
  background: var(--a-ink);
  color: #0b070a;
  border-color: var(--a-ink);
}

html[data-theme="dark"] .product-card {
  color: var(--a-ink);
}

html[data-theme="dark"] .shop-banner .btn {
  background: var(--a-ink);
  color: #0b070a;
  border-color: var(--a-ink);
}

html[data-theme="dark"] .shop-banner .btn:hover {
  background: var(--a-red);
  color: #fff;
  border-color: var(--a-red);
}

html[data-theme="dark"] .seat-map svg {
  color: var(--a-ink);
}

html[data-theme="dark"] .t-seat:not(.is-selected):not(.is-sold) {
  fill: rgba(247,236,229,.12);
  stroke: rgba(247,236,229,.55);
}

html[data-theme="dark"] .t-seat.is-sold {
  fill: rgba(247,236,229,.16);
  stroke: rgba(247,236,229,.25);
}

html[data-theme="dark"] input,
html[data-theme="dark"] textarea,
html[data-theme="dark"] select {
  color: var(--a-ink);
}

.floating-ctas {
  position: fixed;
  right: clamp(18px, 4vw, 56px);
  bottom: clamp(18px, 4vw, 46px);
  z-index: 80;
  width: 246px;
  height: 138px;
  pointer-events: none;
}

.floating-cta {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 196px;
  padding: 18px 28px;
  border-radius: 10px;
  font-family: var(--sans);
  font-size: 24px;
  font-weight: 900;
  letter-spacing: -.04em;
  line-height: .9;
  text-transform: uppercase;
  box-shadow: 0 18px 45px rgba(0,0,0,.24);
  pointer-events: auto;
  transition: transform .2s ease, box-shadow .2s ease;
}

.floating-cta:hover {
  transform: translateY(-4px) rotate(var(--float-r));
  box-shadow: 0 24px 55px rgba(0,0,0,.30);
}

.floating-cta-tickets {
  --float-r: 8deg;
  top: 0;
  right: 0;
  z-index: 2;
  background: #fff;
  color: #000;
  transform: rotate(8deg);
}

.floating-cta-menu {
  --float-r: -10deg;
  left: 0;
  bottom: 0;
  z-index: 1;
  background: #050505;
  color: #fff200;
  border: 2px solid #fff200;
  transform: rotate(-10deg);
}

html[data-theme="dark"] .floating-cta-tickets {
  background: var(--a-ink);
  color: #0b070a;
}

@media (max-width: 900px) {
  .floating-ctas {
    right: 12px;
    bottom: 12px;
    width: 192px;
    height: 108px;
  }
  .floating-cta {
    min-width: 154px;
    padding: 14px 20px;
    font-size: 18px;
    border-radius: 8px;
  }
}

@media (max-width: 900px) {
  .theme-toggle { margin-top: 12px; align-self: flex-start; }
}

/* Typography safety: public pages should not use decorative italics for live copy. */
html body,
html body * {
  font-style: normal !important;
}

html body em {
  color: inherit !important;
}

html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6,
html body .hero-title,
html body .section-title,
html body .page-head h1,
html body .calendar-title,
html body .show-select-title,
html body .ticket-wallet-title,
html body .site-cta-title {
  color: var(--a-ink, #111) !important;
  font-style: normal !important;
}
