/* ===========================================
   2027 Renewals · 2027 SEASON | Angel City FC
   HubSpot self-contained landing page
   =========================================== */

  :root {
    --sol-rosa: #f1b1a5;
    --sol-rosa-dark: #e0a094;
    --sol-rosa-soft: rgba(241, 177, 165, 0.18);
    --sol-rosa-glow: rgba(241, 177, 165, 0.30);
  
    --rnw-dark: #111111;
    --rnw-dark-mid: #1a1a1a;
    --rnw-card-dark: #242424;
    --rnw-card-dark-border: rgba(255, 255, 255, 0.10);
  
    --rnw-surface: #fafaf8;
    --rnw-surface-warm: #f6f4f1;
    --rnw-panel: #ffffff;
    --rnw-panel-edge: #e8e6e3;
  
    /* Lighter / nostalgic "sun" palette, scoped to pillars + look-back modules */
    --rnw-cream: #f7f1e8;
    --rnw-paper: #fbf7f0;
    --rnw-paper-edge: #e6ddce;
    --rnw-sun: radial-gradient(120% 120% at 15% 0%, rgba(241, 177, 165, 0.55) 0%, rgba(247, 241, 232, 0.9) 45%, var(--rnw-cream) 100%);
    --font-serif: Georgia, 'Times New Roman', serif;
  
    --rnw-ink: #121416;
    --asphalt: #1c1c1c;
    --armour: #6b7280;
    --line-white: #ffffff;
    --pitch-black: #000000;
    --text-dark: #1c1c1c;
  
    --benefits-border-light: #ececec;
    --benefits-header-height: 3.25rem;
  
    /* Elevation scale: e1 resting hairline, e2 cards, e3 hero surfaces */
    --shadow-e1: 0 1px 2px rgba(28, 20, 16, 0.05), 0 1px 3px rgba(28, 20, 16, 0.04);
    --shadow-e2: 0 8px 28px rgba(28, 20, 16, 0.10), 0 2px 6px rgba(28, 20, 16, 0.05);
    --shadow-e3: 0 22px 60px rgba(28, 20, 16, 0.18), 0 4px 12px rgba(28, 20, 16, 0.07);
    --shadow-e3-rosa: 0 22px 60px rgba(28, 20, 16, 0.18), 0 0 0 1px rgba(241, 177, 165, 0.28);

    --shadow-sm: var(--shadow-e1);
    --shadow-card: var(--shadow-e2);
    --shadow-card-hover: var(--shadow-e3-rosa);

    /* Shared hover motion so every premium surface lifts identically */
    --lift-hover: 0 -3px;
    --lift-transition: translate 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out), border-color 0.35s ease;
  
    --radius-sm: 8px;
    --radius-md: 14px;
    --radius-lg: 20px;
    --radius-xl: 28px;
    --radius-full: 9999px;
  
    --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --transition: all 0.3s var(--ease-out);
    --rnw-scroll-offset: 50px;
    --rnw-faq-scroll-offset: 130px;
  
    /* Seat map tier colors */
    --tier-supporters: rgba(74, 155, 95, 0.62);
    --tier-supporters-active: rgba(74, 155, 95, 0.88);
    --tier-general: rgba(66, 133, 199, 0.58);
    --tier-general-active: rgba(66, 133, 199, 0.85);
    --tier-premium: rgba(155, 89, 182, 0.58);
    --tier-premium-active: rgba(155, 89, 182, 0.85);
    --tier-suites: rgba(212, 162, 76, 0.62);
    --tier-suites-active: rgba(212, 162, 76, 0.88);
  }
  
  *, *::before, *::after { box-sizing: border-box; }
  
  html {
    scroll-behavior: smooth;
    scroll-padding-top: var(--rnw-scroll-offset);
  }
  
  html:has(.acfc-rnw-app) { overflow-x: hidden; }
  
  /* HubSpot SR offer bar (sr-offer-bar-01): omit on 2027 Renewals landing only */
  html:has(.acfc-rnw-app) .sr-offer-bar-01 {
    display: none !important;
  }
  
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
      animation-duration: 0.01ms !important;
      transition-duration: 0.01ms !important;
    }
    .acfc-rnw-reveal {
      opacity: 1 !important;
      transform: none !important;
      transition: none !important;
    }
  }
  
  body {
    margin: 0;
    font-family: 'Inter', 'Segoe UI', -apple-system, BlinkMacSystemFont, 'Roboto', sans-serif;
    color: var(--text-dark);
    background: var(--rnw-surface);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
  }
  
  img { max-width: 100%; height: auto; display: block; }
  
  a { color: inherit; }
  
  /* ---------- Scroll reveal ---------- */
  
  .acfc-rnw-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.65s var(--ease-out), transform 0.65s var(--ease-out);
  }
  
  .acfc-rnw-reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
  }
  
  /* Delays are listed per transitioned property (opacity, transform, then any
     hover properties) so a staggered card still reacts to hover instantly.
     Extra values are ignored on elements that only transition opacity/transform. */
  .acfc-rnw-reveal-stagger > .acfc-rnw-reveal:nth-child(2) { transition-delay: 0.08s, 0.08s, 0s, 0s, 0s; }
  .acfc-rnw-reveal-stagger > .acfc-rnw-reveal:nth-child(3) { transition-delay: 0.16s, 0.16s, 0s, 0s, 0s; }
  .acfc-rnw-reveal-stagger > .acfc-rnw-reveal:nth-child(4) { transition-delay: 0.24s, 0.24s, 0s, 0s, 0s; }
  .acfc-rnw-reveal-stagger > .acfc-rnw-reveal:nth-child(5) { transition-delay: 0.32s, 0.32s, 0s, 0s, 0s; }
  .acfc-rnw-reveal-stagger > .acfc-rnw-reveal:nth-child(6) { transition-delay: 0.40s, 0.40s, 0s, 0s, 0s; }
  
  /* Intro is above the fold on many viewports - show immediately, not on scroll */
  .acfc-rnw-intro .acfc-rnw-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  
  /* ---------- App wrapper ---------- */
  
  .acfc-rnw-app {
    width: 100%;
    max-width: 100%;
    background: var(--rnw-surface);
    cursor: default;
    -webkit-tap-highlight-color: transparent;
  }
  
  .acfc-rnw-app a,
  .acfc-rnw-app button,
  .acfc-rnw-app summary,
  .acfc-rnw-app [role="button"] {
    cursor: pointer;
  }
  
  /* ---------- Container ---------- */
  
  .angelcity2026-container {
    max-width: 1340px;
    margin: 0 auto;
    padding-left: max(24px, env(safe-area-inset-left, 0px));
    padding-right: max(24px, env(safe-area-inset-right, 0px));
  }
  
  @media (max-width: 600px) {
    .angelcity2026-container {
      padding-left: max(20px, env(safe-area-inset-left, 0px));
      padding-right: max(20px, env(safe-area-inset-right, 0px));
    }
  }
  
  /* ---------- Shared typography ---------- */
  
  .acfc-rnw-eyebrow {
    font-family: 'Inter', sans-serif;
    font-size: clamp(0.75rem, 1.8vw, 0.875rem);
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--sol-rosa);
    margin: 0 0 12px;
  }
  
  .acfc-rnw-section-head {
    text-align: center;
    margin-bottom: clamp(24px, 4vw, 40px);
  }
  
  .acfc-rnw-section-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.5rem, 3.5vw, 2.4rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: var(--rnw-ink);
    margin: 0 0 8px;
    text-wrap: balance;
  }

  .acfc-rnw-section-title em {
    font-style: normal;
    font-weight: 900;
    color: var(--sol-rosa-dark);
  }

  [data-theme="dark"] .acfc-rnw-section-title em { color: var(--sol-rosa); }
  
  .acfc-rnw-section-lead {
    font-size: clamp(0.95rem, 1.8vw, 1.05rem);
    color: var(--armour);
    margin: 0 auto;
    max-width: 640px;
    line-height: 1.65;
  }
  
  .acfc-rnw-section-head--light .acfc-rnw-section-title { color: var(--line-white); }
  .acfc-rnw-section-head--light .acfc-rnw-section-lead { color: rgba(255, 255, 255, 0.72); }
  
  .acfc-rnw-title--left { text-align: left; }
  .acfc-rnw-lead--left { text-align: left; margin: 0; }
  
  /* ============================================
     SIGNATURE SYSTEM - "dreams within reach"
     frosted glass · dreamy blur · image-in-text
     Shared across Why Renew / How It Works /
     Key Dates / Payment Plans / Benefits
     ============================================ */
  
  /* A section that carries a full-bleed dreamy photo backdrop */
  .acfc-rnw-signature {
    position: relative;
    isolation: isolate;
    overflow: hidden;
  }
  
  .acfc-rnw-signature > .angelcity2026-container {
    position: relative;
    z-index: 1;
  }
  
  /* Dreamy blurred photo layer - keeps grit/intensity, never loses the image */
  .acfc-rnw-dreamy {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
  }
  
  .acfc-rnw-dreamy img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.1);
    filter: blur(8px) saturate(1.15) contrast(1.06);
  }
  
  /* Legibility scrim tuned per theme so text stays readable over the photo */
  .acfc-rnw-dreamy::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
      radial-gradient(130% 90% at 16% 0%, rgba(241, 177, 165, 0.32) 0%, transparent 52%),
      linear-gradient(180deg, rgba(251, 247, 240, 0.66) 0%, rgba(247, 241, 232, 0.78) 52%, var(--rnw-cream) 100%);
  }
  
  [data-theme="dark"] .acfc-rnw-dreamy::after {
    background:
      radial-gradient(130% 90% at 16% 0%, rgba(241, 177, 165, 0.2) 0%, transparent 52%),
      linear-gradient(180deg, rgba(8, 8, 8, 0.62) 0%, rgba(8, 8, 8, 0.78) 52%, var(--rnw-dark) 100%);
  }
  
  /* Legibility over dreamy photos - text only, no header panel */
  .acfc-rnw-signature .acfc-rnw-section-head .acfc-rnw-section-title {
    color: var(--asphalt);
    text-shadow:
      0 0 20px rgba(255, 255, 255, 0.85),
      0 1px 2px rgba(255, 255, 255, 0.9),
      0 2px 8px rgba(247, 241, 232, 0.7);
  }
  
  .acfc-rnw-signature .acfc-rnw-section-head .acfc-rnw-section-lead {
    color: rgba(28, 28, 28, 0.88);
    text-shadow:
      0 0 16px rgba(255, 255, 255, 0.8),
      0 1px 3px rgba(255, 255, 255, 0.75);
  }
  
  .acfc-rnw-signature .acfc-rnw-dates-note {
    color: rgba(28, 28, 28, 0.78);
    text-shadow:
      0 0 12px rgba(255, 255, 255, 0.75),
      0 1px 2px rgba(255, 255, 255, 0.7);
  }
  
  [data-theme="dark"] .acfc-rnw-signature .acfc-rnw-section-head .acfc-rnw-section-title {
    color: var(--line-white);
    text-shadow:
      0 0 20px rgba(0, 0, 0, 0.75),
      0 1px 3px rgba(0, 0, 0, 0.85),
      0 2px 8px rgba(0, 0, 0, 0.6);
  }
  
  [data-theme="dark"] .acfc-rnw-signature .acfc-rnw-section-head .acfc-rnw-section-lead {
    color: rgba(255, 255, 255, 0.88);
    text-shadow:
      0 0 16px rgba(0, 0, 0, 0.7),
      0 1px 3px rgba(0, 0, 0, 0.8);
  }
  
  [data-theme="dark"] .acfc-rnw-signature .acfc-rnw-dates-note {
    color: rgba(255, 255, 255, 0.72);
    text-shadow:
      0 0 12px rgba(0, 0, 0, 0.65),
      0 1px 2px rgba(0, 0, 0, 0.75);
  }

  /* A quieter alternative to .acfc-rnw-signature: same section rhythm, no photo,
     just a soft tan/grey tonal wash so the module doesn't feel flat white. */
  .acfc-rnw-tonal {
    position: relative;
    isolation: isolate;
    background:
      radial-gradient(120% 100% at 18% 0%, rgba(241, 177, 165, 0.16) 0%, transparent 55%),
      linear-gradient(180deg, var(--rnw-cream) 0%, #efe8dc 48%, #e3dccf 100%);
  }

  [data-theme="dark"] .acfc-rnw-tonal {
    background:
      radial-gradient(120% 100% at 18% 0%, rgba(241, 177, 165, 0.09) 0%, transparent 55%),
      linear-gradient(180deg, var(--rnw-dark-mid) 0%, #171717 48%, var(--rnw-dark) 100%);
  }

  /* Frosted-glass surface */
  .acfc-rnw-frost {
    position: relative;
    background: rgba(255, 255, 255, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.75);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-e3);
    -webkit-backdrop-filter: blur(18px) saturate(1.35);
    backdrop-filter: blur(18px) saturate(1.35);
  }

  /* Hairline highlight along the top edge reads as polished glass */
  .acfc-rnw-frost::after {
    content: '';
    position: absolute;
    top: 0;
    left: 12%;
    right: 12%;
    height: 1px;
    border-radius: var(--radius-full);
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.9), transparent);
    pointer-events: none;
  }

  [data-theme="dark"] .acfc-rnw-frost::after {
    background: linear-gradient(90deg, transparent, rgba(241, 177, 165, 0.4), transparent);
  }

  /* Hovering card families share one lift so it feels like one system. Lift
     uses `translate` rather than `transform` so it composes with the scroll
     reveal, which owns `transform` on these same elements. Plan and step cards
     are deliberately static - they are read, not clicked. */
  .acfc-rnw-pillar,
  .acfc-rnw-incentive,
  .acfc-rnw-spotlight-card {
    transition:
      opacity 0.65s var(--ease-out),
      transform 0.65s var(--ease-out),
      var(--lift-transition);
  }

  .acfc-rnw-pillar:hover,
  .acfc-rnw-pillar:focus-within {
    translate: var(--lift-hover);
    box-shadow: var(--shadow-card-hover);
    border-color: rgba(241, 177, 165, 0.55);
  }

  @media (prefers-reduced-motion: reduce) {
    .acfc-rnw-pillar:hover,
    .acfc-rnw-pillar:focus-within {
      translate: none;
    }
  }
  
  [data-theme="dark"] .acfc-rnw-frost {
    background: rgba(26, 26, 26, 0.4);
    border-color: rgba(255, 255, 255, 0.14);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5);
  }
  
  /* Solid fallback where backdrop-filter is unsupported */
  @supports not ((-webkit-backdrop-filter: blur(2px)) or (backdrop-filter: blur(2px))) {
    .acfc-rnw-frost { background: rgba(255, 255, 255, 0.93); }
    [data-theme="dark"] .acfc-rnw-frost { background: rgba(26, 26, 26, 0.95); }
  }
  
  /* Image-in-text headline mask - player photo lives inside the type */
  .acfc-rnw-imgtext {
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.08), rgba(0, 0, 0, 0.28)),
      url('../../assets/315-match/03152026_vsChicago_AS-66.jpg');
    background-size: cover;
    background-position: center 26%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  
  /* "We" in the benefits headline: solid brand pink, not a photo mask */
  .acfc-rnw-imgtext--fans {
    background-image: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    color: var(--sol-rosa-dark);
    -webkit-text-fill-color: var(--sol-rosa-dark);
  }
  
  [data-theme="dark"] .acfc-rnw-imgtext--fans {
    color: var(--sol-rosa);
    -webkit-text-fill-color: var(--sol-rosa);
  }
  
  /* Solid fallback so masked type is never invisible */
  @supports not ((-webkit-background-clip: text) or (background-clip: text)) {
    .acfc-rnw-imgtext { color: var(--asphalt); -webkit-text-fill-color: var(--asphalt); }
    [data-theme="dark"] .acfc-rnw-imgtext { color: var(--sol-rosa); -webkit-text-fill-color: var(--sol-rosa); }
  }
  
  /* ---------- Buttons ---------- */
  
  .angelcity2026-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border: 2px solid transparent;
    border-radius: var(--radius-full);
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.015em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: var(--transition);
    padding: 0.95rem 2rem;
    white-space: nowrap;
    line-height: 1;
    -webkit-appearance: none;
    appearance: none;
  }
  
  .angelcity2026-btn-primary {
    background: var(--sol-rosa);
    color: var(--pitch-black);
    border-color: var(--sol-rosa);
  }
  
  a.angelcity2026-btn.angelcity2026-btn-primary,
  a.angelcity2026-btn.angelcity2026-btn-primary:hover,
  a.angelcity2026-btn.angelcity2026-btn-primary:focus-visible {
    color: var(--pitch-black);
  }
  
  .angelcity2026-btn-primary:hover,
  .angelcity2026-btn-primary:focus-visible {
    background: var(--sol-rosa-dark);
    border-color: var(--sol-rosa-dark);
    transform: translateY(-2px);
    box-shadow: 0 8px 28px var(--sol-rosa-glow);
  }
  
  .angelcity2026-btn-secondary {
    background: transparent;
    color: var(--line-white);
    border-color: rgba(255, 255, 255, 0.45);
  }
  
  a.angelcity2026-btn.angelcity2026-btn-secondary,
  a.angelcity2026-btn.angelcity2026-btn-secondary:hover,
  a.angelcity2026-btn.angelcity2026-btn-secondary:focus-visible {
    color: var(--line-white);
  }
  
  .angelcity2026-btn-secondary:hover,
  .angelcity2026-btn-secondary:focus-visible {
    border-color: var(--line-white);
    background: rgba(255, 255, 255, 0.08);
  }
  
  /* Light mode override for secondary button on light backgrounds */
  [data-theme="light"] .angelcity2026-btn-secondary {
    color: var(--asphalt);
    border-color: rgba(28, 28, 28, 0.35);
  }
  
  [data-theme="light"] a.angelcity2026-btn.angelcity2026-btn-secondary,
  [data-theme="light"] a.angelcity2026-btn.angelcity2026-btn-secondary:hover,
  [data-theme="light"] a.angelcity2026-btn.angelcity2026-btn-secondary:focus-visible {
    color: var(--asphalt);
  }
  
  [data-theme="light"] .angelcity2026-btn-secondary:hover,
  [data-theme="light"] .angelcity2026-btn-secondary:focus-visible {
    border-color: var(--asphalt);
    background: rgba(28, 28, 28, 0.05);
  }

  /* The hero always sits on a dark photo/video with a fixed dark overlay,
     regardless of site theme, so its secondary button must keep the
     light-on-dark style even when the light-mode override above would
     otherwise darken it to the point of being unreadable. */
  [data-theme="light"] .acfc-rnw-hero-actions .angelcity2026-btn-secondary,
  [data-theme="light"] .acfc-rnw-hero-actions a.angelcity2026-btn.angelcity2026-btn-secondary {
    color: var(--line-white);
    border-color: rgba(255, 255, 255, 0.45);
  }

  [data-theme="light"] .acfc-rnw-hero-actions .angelcity2026-btn-secondary:hover,
  [data-theme="light"] .acfc-rnw-hero-actions .angelcity2026-btn-secondary:focus-visible,
  [data-theme="light"] .acfc-rnw-hero-actions a.angelcity2026-btn.angelcity2026-btn-secondary:hover,
  [data-theme="light"] .acfc-rnw-hero-actions a.angelcity2026-btn.angelcity2026-btn-secondary:focus-visible {
    border-color: var(--line-white);
    background: rgba(255, 255, 255, 0.08);
  }
  
  /* Disabled secondary button (e.g. "Member Hub Coming Soon") — greyed out,
     no hover/focus feedback since it isn't interactive. */
  .angelcity2026-btn-secondary[aria-disabled="true"],
  .angelcity2026-btn-secondary[aria-disabled="true"]:hover,
  .angelcity2026-btn-secondary[aria-disabled="true"]:focus-visible {
    color: rgba(255, 255, 255, 0.38);
    border-color: rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.04);
    cursor: not-allowed;
    pointer-events: none;
  }
  
  [data-theme="light"] .angelcity2026-btn-secondary[aria-disabled="true"],
  [data-theme="light"] .angelcity2026-btn-secondary[aria-disabled="true"]:hover,
  [data-theme="light"] .angelcity2026-btn-secondary[aria-disabled="true"]:focus-visible {
    color: rgba(28, 28, 28, 0.35);
    border-color: rgba(28, 28, 28, 0.16);
    background: rgba(28, 28, 28, 0.04);
  }
  
  .angelcity2026-btn-outline-dark {
    background: transparent;
    color: var(--asphalt);
    border-color: var(--rnw-panel-edge);
  }
  
  a.angelcity2026-btn.angelcity2026-btn-outline-dark,
  a.angelcity2026-btn.angelcity2026-btn-outline-dark:hover,
  a.angelcity2026-btn.angelcity2026-btn-outline-dark:focus-visible {
    color: var(--asphalt);
  }
  
  .angelcity2026-btn-outline-dark:hover {
    border-color: var(--sol-rosa);
    background: var(--sol-rosa-soft);
  }
  
  /* ---------- Jump nav ---------- */
  
  .acfc-rnw-jump {
    background: var(--rnw-paper);
    border-bottom: 1px solid var(--rnw-paper-edge);
    position: sticky;
    top: 0;
    z-index: 50;
  }
  
  .acfc-rnw-jump-inner {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 10px 0;
  }
  
  .acfc-rnw-jump-inner::-webkit-scrollbar { display: none; }
  
  .acfc-rnw-jump-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--armour);
    white-space: nowrap;
    margin-right: 4px;
  }
  
  /* Flex-centered with a fixed height instead of vertical padding: the pill
     then centres on the text box rather than on the font's line metrics,
     which sit high for all-caps text. */
  .acfc-rnw-jump-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    font-family: 'Inter', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--asphalt);
    padding: 0 12px;
    border-radius: var(--radius-full);
    border: 1px solid rgba(28, 28, 28, 0.28);
    white-space: nowrap;
    transition: var(--transition);
  }
  
  .acfc-rnw-jump-link:hover,
  .acfc-rnw-jump-link:focus-visible {
    color: var(--pitch-black);
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
  }
  
  /* ---------- Mid-page CTA band ---------- */
  
  .acfc-rnw-midcta {
    background: var(--sol-rosa);
    padding: clamp(32px, 5vw, 48px) 0;
  }
  
  .acfc-rnw-midcta-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 24px 40px;
    max-width: 880px;
    margin: 0 auto;
  }
  
  .acfc-rnw-midcta-copy {
    flex: 1 1 320px;
    min-width: 0;
  }
  
  .acfc-rnw-midcta-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.35rem, 3.2vw, 2.1rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    color: var(--pitch-black);
    margin: 0 0 6px;
    line-height: 1.05;
  }
  
  .acfc-rnw-midcta-lead {
    font-size: clamp(0.9rem, 1.7vw, 1.05rem);
    color: rgba(0, 0, 0, 0.72);
    margin: 0;
    max-width: 52ch;
  }
  
  .acfc-rnw-midcta-deadline {
    margin: 0.65rem 0 0;
    font-size: 0.88rem;
    font-weight: 600;
    color: rgba(0, 0, 0, 0.55);
  }
  
  .acfc-rnw-midcta-deadline strong {
    color: var(--pitch-black);
  }
  
  .acfc-rnw-midcta .angelcity2026-btn-primary {
    background: var(--pitch-black);
    color: var(--line-white);
    border-color: var(--pitch-black);
    flex-shrink: 0;
  }
  
  .acfc-rnw-midcta a.angelcity2026-btn.angelcity2026-btn-primary,
  .acfc-rnw-midcta a.angelcity2026-btn.angelcity2026-btn-primary:hover,
  .acfc-rnw-midcta a.angelcity2026-btn.angelcity2026-btn-primary:focus-visible {
    color: var(--line-white);
  }
  
  .acfc-rnw-midcta .angelcity2026-btn-primary:hover {
    background: var(--asphalt);
    border-color: var(--asphalt);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.25);
  }
  
  @media (max-width: 720px) {
    .acfc-rnw-midcta-inner {
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      gap: 16px;
    }
  
    .acfc-rnw-midcta-copy {
      flex: 0 1 auto;
      width: 100%;
    }
  
    .acfc-rnw-midcta-lead {
      margin-inline: auto;
      max-width: 40ch;
    }
  
    .acfc-rnw-midcta .angelcity2026-btn-primary {
      width: 100%;
      max-width: 320px;
    }
  }
  
  /* ---------- Hero ---------- */
  
  .acfc-rnw-hero {
    position: relative;
    min-height: clamp(500px, 74svh, 700px);
    display: flex;
    align-items: center;
    overflow: hidden;
    background: var(--rnw-dark);
  }
  
  .acfc-rnw-hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
  }
  
  .acfc-rnw-hero-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 30%;
  }
  
  .acfc-rnw-hero-fallback {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  /* Slight push on the source photo, then a one-time settle so the frame
     resolves into place instead of snapping in flat. */
  .acfc-rnw-hero-video,
  .acfc-rnw-hero-fallback {
    filter: saturate(1.06) contrast(1.04);
    animation: acfc-rnw-hero-settle 2.6s var(--ease-out) both;
  }

  @keyframes acfc-rnw-hero-settle {
    from { transform: scale(1.07); }
    to { transform: scale(1); }
  }
  
  /* Dense pocket behind the copy that clears quickly to the right, so the
     crowd stays legible rather than sitting under a flat grey wash. */
  .acfc-rnw-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
      radial-gradient(125% 105% at 0% 50%, rgba(0, 0, 0, 0.90) 0%, rgba(0, 0, 0, 0.66) 28%, rgba(0, 0, 0, 0.22) 60%, transparent 84%),
      linear-gradient(to top, rgba(0, 0, 0, 0.74) 0%, rgba(0, 0, 0, 0.14) 36%, transparent 66%),
      radial-gradient(145% 125% at 50% 45%, transparent 52%, rgba(0, 0, 0, 0.45) 100%);
  }
  
  .acfc-rnw-hero-content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: clamp(40px, 5vw, 64px) 0 clamp(48px, 6vw, 72px);
  }
  
  .acfc-rnw-hero-urgency {
    /*display: inline-flex;*/
    display: none;
    align-items: center;
    gap: 10px;
    margin: 0 0 16px;
    font-family: 'Inter', sans-serif;
    font-size: clamp(0.75rem, 1.8vw, 0.875rem);
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--sol-rosa);
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.55);
  }
  
  .acfc-rnw-hero-urgency-dot {
    width: 7px;
    height: 7px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--sol-rosa);
    box-shadow: 0 0 0 0 var(--sol-rosa-glow);
    animation: acfc-rnw-pulse 2s var(--ease-out) infinite;
  }
  
  @keyframes acfc-rnw-pulse {
    0% { box-shadow: 0 0 0 0 rgba(241, 177, 165, 0.6); }
    70% { box-shadow: 0 0 0 10px rgba(241, 177, 165, 0); }
    100% { box-shadow: 0 0 0 0 rgba(241, 177, 165, 0); }
  }
  
  .acfc-rnw-hero-trust {
    margin: 22px 0 0;
    font-size: clamp(0.8rem, 1.6vw, 0.92rem);
    font-weight: 600;
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.88);
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.65);
  }
  
  .acfc-rnw-hero-trust span {
    color: var(--sol-rosa);
    margin: 0 6px;
  }
  
  /* A small tracked-out kicker over a heavier, larger statement line reads as
     a lockup rather than two same-weight lines stacked on top of each other -
     the size/weight/tracking all contrast on purpose. */
  .acfc-rnw-hero-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(2rem, 5.6vw, 3.65rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.035em;
    line-height: 0.98;
    text-wrap: balance;
    color: var(--line-white);
    margin: 0 0 clamp(14px, 1.6vw, 20px);
    max-width: 800px;
    /* Tight edge shadow for legibility plus a wide soft one for depth; a
       single large blur muddies the letterforms at this weight. */
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.38), 0 10px 34px rgba(0, 0, 0, 0.45);
  }

  /* Two-tier crescendo: "2027 Season Ticket" sets it up at full heading
     weight and size, then "Renewals" steps up again in scale, weight, and
     color for the payoff - no small kicker burying the year. */
  .acfc-rnw-hero-title-line {
    display: block;
  }

  .acfc-rnw-hero-title em {
    display: block;
    font-style: normal;
    font-size: 1.22em;
    font-weight: 900;
    letter-spacing: -0.045em;
    color: var(--sol-rosa);
    margin-top: 0.1em;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35), 0 10px 34px rgba(0, 0, 0, 0.4);
  }
  
  .acfc-rnw-hero-lead {
    font-size: clamp(0.88rem, 1.65vw, 1.05rem);
    color: rgba(255, 255, 255, 0.92);
    max-width: 520px;
    margin: 0 0 16px;
    line-height: 1.55;
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.7);
  }

  .acfc-rnw-hero-body {
    font-size: clamp(0.9rem, 1.5vw, 1.02rem);
    color: rgba(255, 255, 255, 0.82);
    max-width: 46ch;
    margin: 0 0 clamp(26px, 3vw, 34px);
    line-height: 1.55;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
  }
  
  .acfc-rnw-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
  }

  /* Hero buttons sit on photography, so they get a finer edge and a glass
     fill rather than the solid-surface treatment used elsewhere. */
  .acfc-rnw-hero-actions .angelcity2026-btn {
    border-width: 1.5px;
  }

  .acfc-rnw-hero-actions .angelcity2026-btn-primary {
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.34);
  }

  .acfc-rnw-hero-actions .angelcity2026-btn-secondary {
    background: rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  /* Cascade the hero in rather than landing every element at once. */
  .acfc-rnw-hero-title { transition-delay: 0.06s, 0.06s; }
  .acfc-rnw-hero-body { transition-delay: 0.15s, 0.15s; }
  .acfc-rnw-hero-actions { transition-delay: 0.24s, 0.24s; }
  
  @media (max-width: 768px) {
    .acfc-rnw-hero {
      min-height: clamp(420px, 88svh, 580px);
    }

    /* The left-weighted scrim is wrong once the copy centers. */
    .acfc-rnw-hero-overlay {
      background:
        linear-gradient(to top, rgba(0, 0, 0, 0.86) 0%, rgba(0, 0, 0, 0.55) 45%, rgba(0, 0, 0, 0.35) 100%),
        radial-gradient(140% 110% at 50% 45%, transparent 45%, rgba(0, 0, 0, 0.5) 100%);
    }
  
    .acfc-rnw-hero-content {
      padding-bottom: clamp(56px, 10vw, 72px);
    }
  
    .acfc-rnw-hero-content .angelcity2026-container {
      text-align: center;
    }
  
    .acfc-rnw-hero-urgency {
      justify-content: center;
    }
  
    .acfc-rnw-hero-title,
    .acfc-rnw-hero-lead,
    .acfc-rnw-hero-body {
      margin-inline: auto;
    }

    .acfc-rnw-hero-actions {
      justify-content: center;
    }
  
    .acfc-rnw-hero-trust {
      margin-top: 16px;
      font-size: 0.78rem;
      text-align: center;
    }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-hero-video {
      object-position: center 20%;
    }
  
    .acfc-rnw-hero-actions .angelcity2026-btn {
      width: 100%;
      max-width: 320px;
    }
  }
  
  /* ---------- Intro band ---------- */
  
  .acfc-rnw-intro {
    background: var(--rnw-cream);
    color: var(--asphalt);
    padding: clamp(48px, 7vw, 80px) 0;
  }
  
  .acfc-rnw-intro-grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(32px, 5vw, 72px);
    align-items: center;
  }
  
  .acfc-rnw-intro-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.55rem, 3.5vw, 2.1rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    line-height: 1.08;
    color: var(--asphalt);
    margin: 0 0 20px;
  }
  
  /* Same crescendo as the hero title: the accent line steps up in size,
     weight, and tracking rather than only changing color. */
  .acfc-rnw-intro-title em {
    font-style: normal;
    color: var(--sol-rosa);
    display: block;
    font-size: 1.1em;
    font-weight: 900;
    letter-spacing: -0.03em;
    margin-top: 0.08em;
  }
  
  .acfc-rnw-intro-copy p {
    font-size: clamp(0.95rem, 1.8vw, 1.05rem);
    color: rgba(28, 28, 28, 0.78);
    margin: 0 0 16px;
    line-height: 1.7;
  }
  
  .acfc-rnw-intro-copy p strong {
    color: var(--asphalt);
  }
  
  .acfc-rnw-intro-quote {
    margin: 28px 0 0;
    padding: 4px 0 4px 22px;
    border-left: 3px solid var(--sol-rosa);
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.2rem, 2.3vw, 1.65rem);
    font-weight: 800;
    line-height: 1.15;
    text-transform: uppercase;
    letter-spacing: -0.015em;
    color: var(--asphalt);
  }
  
  .acfc-rnw-intro-volemos {
    display: block;
    margin: 12px 0 0;
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.7rem, 4.2vw, 2.7rem);
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--sol-rosa-dark);
  }
  
  .acfc-rnw-intro-visual {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-card-hover);
    border: 1px solid rgba(241, 177, 165, 0.35);
    padding: clamp(12px, 2.5vw, 18px);
  }
  
  .acfc-rnw-intro-visual::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: var(--radius-lg);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
    pointer-events: none;
  }
  
  .acfc-rnw-intro-visual img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: calc(var(--radius-lg) - 4px);
  }
  
  @media (max-width: 768px) {
    .acfc-rnw-intro-grid {
      grid-template-columns: 1fr;
    }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-intro-copy .acfc-rnw-eyebrow,
    .acfc-rnw-intro-title {
      text-align: center;
    }
  
    .acfc-rnw-intro-quote {
      padding-left: 16px;
      font-size: clamp(1.15rem, 5vw, 1.5rem);
    }
  }
  
  /* Letter intro layout */
  .acfc-rnw-intro--letter {
    padding: clamp(56px, 8vw, 100px) 0;
    background:
      radial-gradient(ellipse 80% 60% at 50% 0%, rgba(241, 177, 165, 0.14), transparent 55%),
      var(--rnw-cream);
  }
  
  .acfc-rnw-intro-letter {
    max-width: 720px;
    margin: 0 auto;
    padding: clamp(36px, 5vw, 56px) clamp(28px, 5vw, 52px) clamp(40px, 5vw, 56px);
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.72) 0%, rgba(255, 252, 248, 0.92) 100%);
    border: 1px solid rgba(28, 28, 28, 0.08);
    border-radius: var(--radius-lg);
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.7) inset,
      0 18px 48px rgba(28, 28, 28, 0.1),
      0 4px 14px rgba(28, 28, 28, 0.06);
    position: relative;
  }
  
  .acfc-rnw-intro-letter::before {
    content: '';
    position: absolute;
    inset: 10px;
    border: 1px solid rgba(241, 177, 165, 0.35);
    border-radius: calc(var(--radius-lg) - 6px);
    pointer-events: none;
  }
  
  
  .acfc-rnw-intro-letterhead {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
    margin: 0 0 clamp(20px, 3vw, 28px);
    padding-bottom: clamp(16px, 2.5vw, 22px);
    border-bottom: 1px solid rgba(28, 28, 28, 0.12);
    position: relative;
    z-index: 1;
  }
  
  .acfc-rnw-intro-crest {
    display: block;
    width: clamp(56px, 10vw, 72px);
    height: auto;
    margin: 0;
  }
  
  
  .acfc-rnw-intro-letterhead .acfc-rnw-eyebrow {
    margin: 0;
    text-align: center;
  }
  
  
  .acfc-rnw-intro--letter .acfc-rnw-intro-title {
    text-align: center;
    margin-bottom: clamp(24px, 3.5vw, 32px);
    position: relative;
    z-index: 1;
  }
  
  .acfc-rnw-intro-letter-body {
    font-family: var(--font-serif);
    font-size: clamp(1.05rem, 2vw, 1.18rem);
    line-height: 1.8;
    color: rgba(28, 28, 28, 0.88);
    position: relative;
    z-index: 1;
    /* Personalization tokens resolve to arbitrary names, so never let one
       unbreakable string push the page into horizontal scroll. */
    overflow-wrap: break-word;
  }
  
  .acfc-rnw-intro-letter-body p {
    margin: 0 0 1.15em;
  }
  
  .acfc-rnw-intro-letter-body p:last-child {
    margin-bottom: 0;
  }
  
  .acfc-rnw-intro-name {
    color: var(--sol-rosa-dark);
    font-weight: 400;
  }
  
  .acfc-rnw-intro-name-slot:has(.acfc-rnw-intro-name:empty) {
    display: none;
  }
  
  .acfc-rnw-intro-letter-close {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1rem, 1.9vw, 1.15rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.005em;
    line-height: 1.3;
    color: var(--asphalt);
    margin-top: 1.6em !important;
  }
  
  .acfc-rnw-intro-signature {
    margin-top: clamp(28px, 4vw, 40px);
    padding-top: clamp(20px, 3vw, 28px);
    border-top: 1px solid rgba(28, 28, 28, 0.12);
    text-align: center;
    position: relative;
    z-index: 1;
  }
  
  
  .acfc-rnw-intro-signoff {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: clamp(1.05rem, 2vw, 1.2rem);
    color: var(--sol-rosa-dark);
    margin: 0;
  }
  
  .acfc-rnw-intro-heart {
    font-style: normal;
    font-size: 1.15em;
    line-height: 1;
    margin-right: 0.35em;
    color: var(--sol-rosa);
    transform: translateY(0.02em);
  }
  
  @media (max-width: 540px) {
    .acfc-rnw-intro-letter {
      padding: 22px 14px 26px;
    }
  
    .acfc-rnw-intro-letter::before {
      inset: 6px;
    }
  
    .acfc-rnw-intro--letter .acfc-rnw-intro-title {
      font-size: clamp(1.4rem, 6.2vw, 1.65rem);
    }
  
    .acfc-rnw-intro-letter-body {
      font-size: 1rem;
      line-height: 1.7;
      padding-inline: 12px;
    }
  }
  
  .acfc-rnw-section-head--left {
    text-align: left;
    max-width: 720px;
  }
  
  .acfc-rnw-section-head--left .acfc-rnw-section-lead {
    margin-left: 0;
    margin-right: 0;
  }
  
  /* ---------- VIP value block ---------- */
  
  .acfc-rnw-vip {
    background: var(--rnw-paper, #fafaf8);
    padding: clamp(56px, 8vw, 100px) 0;
    color: var(--asphalt);
  }

  /* Higher specificity than the plain .acfc-rnw-vip background above, so the
     tonal wash (no photo) wins when both classes are present on the section. */
  .acfc-rnw-vip.acfc-rnw-tonal {
    background:
      radial-gradient(120% 100% at 18% 0%, rgba(241, 177, 165, 0.16) 0%, transparent 55%),
      linear-gradient(180deg, var(--rnw-cream) 0%, #efe8dc 48%, #e3dccf 100%);
  }
  
  .acfc-rnw-vip-panel {
    max-width: 1100px;
    margin: 0 auto;
    padding: clamp(24px, 3vw, 34px) clamp(20px, 3vw, 34px) clamp(24px, 3vw, 32px);
    background:
      linear-gradient(160deg, rgba(241, 177, 165, 0.14) 0%, rgba(255, 255, 255, 0.72) 42%, rgba(255, 255, 255, 0.9) 100%);
    border: 1px solid rgba(241, 177, 165, 0.35);
    border-radius: var(--radius-lg, 16px);
    box-shadow: 0 18px 48px rgba(28, 28, 28, 0.06);
  }
  
  .acfc-rnw-vip-panel-head {
    text-align: center;
    max-width: 720px;
    margin: 0 auto clamp(20px, 2.6vw, 28px);
  }
  
  .acfc-rnw-vip-intro-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.5rem, 3.5vw, 2.4rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    line-height: 1.1;
    color: var(--asphalt);
    margin: 0;
  }
  
  /* "Season Ticket Benefits" is the sell, so it carries the size/weight
     emphasis; "vs Single Game Tickets" is the smaller qualifier line. */
  .acfc-rnw-vip-intro-title-line {
    display: block;
    font-size: 1.08em;
    font-weight: 900;
    letter-spacing: -0.03em;
  }

  .acfc-rnw-vip-intro-title em {
    font-style: normal;
    color: var(--sol-rosa-dark);
    display: block;
    font-size: 0.58em;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin-top: 0.35em;
  }
  
  .acfc-rnw-vip-panel-lead {
    margin: 0;
    font-size: clamp(0.98rem, 1.8vw, 1.08rem);
    line-height: 1.65;
    color: rgba(28, 28, 28, 0.8);
  }
  
  @media (max-width: 768px) {
    .acfc-rnw-vip {
      padding: clamp(40px, 8vw, 72px) 0;
    }

    .acfc-rnw-vip-panel {
      padding: 28px 18px 32px;
      border-radius: var(--radius-lg, 16px);
      position: relative;
      box-shadow:
        0 0 0 1px rgba(241, 177, 165, 0.22),
        0 22px 56px rgba(28, 28, 28, 0.1);
    }

    .acfc-rnw-vip-panel-head {
      margin-bottom: 28px;
      padding: 0;
      position: relative;
      z-index: 1;
    }

    .acfc-rnw-vip-intro-title {
      font-size: clamp(1.35rem, 6.2vw, 1.8rem);
      letter-spacing: -0.02em;
      line-height: 1.05;
      margin-bottom: 16px;
    }

    .acfc-rnw-vip-intro-title-line {
      font-size: 1.05em;
    }

    .acfc-rnw-vip-intro-title em {
      margin-top: 0.3em;
      font-size: 0.56em;
    }

    .acfc-rnw-vip-panel-lead {
      font-size: 0.98rem;
      line-height: 1.7;
      max-width: 34em;
      margin-inline: auto;
    }

    .acfc-rnw-vsmatrix {
      position: relative;
      z-index: 1;
      padding-top: 20px;
    }
  }
  
  .acfc-rnw-vsmatrix {
    margin-top: 0;
    padding-top: clamp(18px, 2.5vw, 26px);
    border-top: 1px solid rgba(241, 177, 165, 0.28);
  }
  
  .acfc-rnw-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  
  /* Compact comparison matrix: one row per benefit, so the membership column
     reads as a single raised panel running the height of the table. */
  .acfc-rnw-vsmatrix-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
  }

  .acfc-rnw-vsmatrix-corner {
    width: 17%;
    background: none;
    border: 0;
  }

  .acfc-rnw-vsmatrix-head {
    width: 41.5%;
    padding: 11px clamp(12px, 1.6vw, 16px);
    text-align: left;
    vertical-align: bottom;
    font-family: 'Inter', sans-serif;
    font-size: clamp(0.85rem, 1.7vw, 1rem);
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.15;
    text-transform: uppercase;
  }

  .acfc-rnw-vsmatrix-head--single {
    color: rgba(28, 28, 28, 0.45);
  }

  /* Header caps the raised membership column */
  .acfc-rnw-vsmatrix-head--stm {
    color: var(--asphalt);
    background: linear-gradient(180deg, rgba(241, 177, 165, 0.88) 0%, rgba(241, 177, 165, 0.6) 100%);
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    box-shadow: 0 -2px 20px rgba(241, 177, 165, 0.4);
  }

  /* Badge rides beside the name so the header stays one line tall */
  .acfc-rnw-vsmatrix-head-name {
    vertical-align: middle;
  }

  .acfc-rnw-vsmatrix-badge {
    display: inline-block;
    margin-left: 9px;
    padding: 3px 9px;
    border-radius: var(--radius-full);
    background: var(--asphalt);
    color: var(--sol-rosa);
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.5;
    vertical-align: middle;
    white-space: nowrap;
  }

  .acfc-rnw-vsmatrix-label {
    padding: clamp(11px, 1.4vw, 14px) 10px clamp(11px, 1.4vw, 14px) 0;
    text-align: left;
    vertical-align: top;
    font-size: 0.73rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--asphalt);
    border-bottom: 1px solid rgba(28, 28, 28, 0.09);
  }

  .acfc-rnw-vsmatrix-cell {
    padding: clamp(11px, 1.4vw, 14px) clamp(12px, 1.6vw, 16px);
    vertical-align: top;
    font-size: clamp(0.86rem, 1.4vw, 0.95rem);
    line-height: 1.45;
    border-bottom: 1px solid rgba(28, 28, 28, 0.09);
  }

  .acfc-rnw-vsmatrix-cell--single {
    color: rgba(28, 28, 28, 0.62);
  }

  .acfc-rnw-vsmatrix-cell--stm {
    color: var(--asphalt);
    background: rgba(241, 177, 165, 0.13);
    border-left: 1px solid rgba(241, 177, 165, 0.4);
    border-right: 1px solid rgba(241, 177, 165, 0.4);
  }

  .acfc-rnw-vsmatrix-table tbody tr:last-child .acfc-rnw-vsmatrix-label,
  .acfc-rnw-vsmatrix-table tbody tr:last-child .acfc-rnw-vsmatrix-cell--single {
    border-bottom: 0;
  }

  .acfc-rnw-vsmatrix-table tbody tr:last-child .acfc-rnw-vsmatrix-cell--stm {
    border-bottom: 1px solid rgba(241, 177, 165, 0.4);
    border-radius: 0 0 var(--radius-md) var(--radius-md);
  }

  .acfc-rnw-vsmatrix-val {
    display: flex;
    align-items: flex-start;
    gap: 10px;
  }

  .acfc-rnw-vsmatrix-icon {
    flex: 0 0 auto;
    width: 19px;
    height: 19px;
    margin-top: 0.06em;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .acfc-rnw-vsmatrix-icon svg {
    width: 10px;
    height: 10px;
  }

  .acfc-rnw-vsmatrix-icon--no {
    background-color: rgba(28, 28, 28, 0.09);
    color: rgba(28, 28, 28, 0.42);
  }

  .acfc-rnw-vsmatrix-icon--yes {
    background-image: linear-gradient(135deg, var(--sol-rosa) 0%, var(--sol-rosa-dark) 100%);
    color: var(--pitch-black);
    box-shadow: 0 2px 8px rgba(241, 177, 165, 0.4);
  }

  /* Mid widths: the row labels need more room before they wrap */
  @media (min-width: 641px) and (max-width: 900px) {
    .acfc-rnw-vsmatrix-corner {
      width: 21%;
    }

    .acfc-rnw-vsmatrix-head {
      width: 39.5%;
    }

    .acfc-rnw-vsmatrix-label {
      font-size: 0.72rem;
      letter-spacing: 0.06em;
    }

    .acfc-rnw-vsmatrix-cell {
      font-size: 0.86rem;
    }
  }

  /* One legend above the list replaces the per-cell column labels on mobile,
     so each card drops two label lines and still says which chip is which. */
  .acfc-rnw-vsmatrix-legend,
  .acfc-rnw-perks-legend {
    display: none;
  }

  /* Below 640px the matrix becomes one card per benefit. Matches the
     "Compare All Benefits" tables below: the benefit name spans the top,
     then Single Game Tickets and Season Ticket Membership sit side by side
     as two equal chips, so both are always visible and aligned to each
     other instead of stacked full-width blocks. */
  @media (max-width: 640px) {
    .acfc-rnw-vsmatrix-legend {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      margin: 0 0 10px;
      padding: 0 13px;
      text-align: center;
    }

    .acfc-rnw-vsmatrix-legend-item {
      padding: 5px 6px;
      border: 1px solid rgba(28, 28, 28, 0.1);
      border-radius: var(--radius-sm);
      background: rgba(255, 255, 255, 0.55);
      font-size: 0.6rem;
      font-weight: 700;
      letter-spacing: 0.07em;
      line-height: 1.3;
      text-transform: uppercase;
      color: var(--armour);
    }

    .acfc-rnw-vsmatrix-legend-item--stm {
      border-color: rgba(241, 177, 165, 0.42);
      background: rgba(241, 177, 165, 0.16);
      color: var(--sol-rosa-dark);
    }

    .acfc-rnw-vsmatrix-table,
    .acfc-rnw-vsmatrix-table tbody {
      display: block;
    }

    .acfc-rnw-vsmatrix-table thead {
      display: none;
    }

    .acfc-rnw-vsmatrix-table tbody tr {
      display: grid;
      grid-template-columns: 1fr 1fr;
      grid-template-areas: "title title" "single stm";
      column-gap: 8px;
      row-gap: 7px;
      padding: 12px;
      margin-bottom: 8px;
      border: 1px solid rgba(28, 28, 28, 0.1);
      border-radius: var(--radius-md);
      background: rgba(255, 255, 255, 0.72);
      text-align: left;
    }

    .acfc-rnw-vsmatrix-table tbody tr:last-child {
      margin-bottom: 0;
    }

    .acfc-rnw-vsmatrix-label {
      grid-area: title;
      width: auto;
      padding: 0;
      border-bottom: none;
      text-align: left;
    }

    .acfc-rnw-vsmatrix-cell {
      display: block;
      width: auto;
      padding: 8px 9px;
      border: 1px solid rgba(28, 28, 28, 0.1);
      border-radius: var(--radius-sm);
      background: rgba(255, 255, 255, 0.55);
      font-size: 0.8rem;
      line-height: 1.35;
      text-align: left;
    }

    .acfc-rnw-vsmatrix-cell--single,
    .acfc-rnw-vsmatrix-table tbody tr:last-child .acfc-rnw-vsmatrix-cell--single {
      grid-area: single;
    }

    .acfc-rnw-vsmatrix-cell--stm,
    .acfc-rnw-vsmatrix-table tbody tr:last-child .acfc-rnw-vsmatrix-cell--stm {
      grid-area: stm;
      border-color: rgba(241, 177, 165, 0.42);
      border-radius: var(--radius-sm);
      background: rgba(241, 177, 165, 0.16);
    }

    /* Icon sits inline with the value instead of on its own line */
    .acfc-rnw-vsmatrix-val {
      flex-direction: row;
      align-items: flex-start;
      text-align: left;
      gap: 7px;
    }

    .acfc-rnw-vsmatrix-icon {
      width: 16px;
      height: 16px;
      margin-top: 0.12em;
    }

    .acfc-rnw-vsmatrix-icon svg {
      width: 9px;
      height: 9px;
    }
  }
  
  .acfc-rnw-incentives {
    margin-top: clamp(48px, 6vw, 72px);
  }
  
  .acfc-rnw-incentives-head {
    margin-bottom: clamp(18px, 3vw, 28px);
  }
  
  .acfc-rnw-incentives-title,
  .acfc-rnw-events-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.25rem, 2.7vw, 1.7rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.015em;
    line-height: 1.15;
    margin: 0;
    color: var(--asphalt);
  }
  
  .acfc-rnw-incentives-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(16px, 2.5vw, 24px);
  }
  
  .acfc-rnw-incentive {
    padding: clamp(22px, 3vw, 30px);
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  
  .acfc-rnw-incentive-heading {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  
  .acfc-rnw-incentive-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--sol-rosa-dark);
  }
  
  .acfc-rnw-incentive-icon svg {
    width: 26px;
    height: 26px;
  }
  
  .acfc-rnw-incentive-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1rem, 1.8vw, 1.2rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    margin: 0;
    line-height: 1.15;
    flex: 1 1 auto;
    min-width: 0;
  }
  
  .acfc-rnw-incentive-desc {
    margin: 0;
    font-size: clamp(0.92rem, 1.6vw, 1rem);
    line-height: 1.65;
    color: rgba(28, 28, 28, 0.78);
  }
  
  .acfc-rnw-events {
    margin-top: clamp(32px, 5vw, 56px);
    margin-bottom: clamp(40px, 6vw, 64px);
  }
  
  .acfc-rnw-events--lead {
    margin-top: 0;
    margin-bottom: clamp(40px, 6vw, 64px);
  }
  
  .acfc-rnw-events-head {
    margin: 0 0 12px;
    padding: 0;
    text-align: left;
  }
  
  .acfc-rnw-events-head .acfc-rnw-eyebrow {
    margin: 0 0 6px;
  }
  
  .acfc-rnw-events-title-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 6px;
    width: 100%;
  }
  
  .acfc-rnw-events-title {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
  }
  
  .acfc-rnw-events-lead {
    margin: 0;
    max-width: 640px;
    font-size: clamp(0.95rem, 1.8vw, 1.05rem);
    line-height: 1.55;
    color: var(--armour);
  }
  
  .acfc-rnw-events-carousel {
    margin: 0;
  }
  
  .acfc-rnw-events-carousel-nav {
    display: flex;
    flex: 0 0 auto;
    flex-shrink: 0;
    gap: 8px;
    margin: 0;
  }
  
  .acfc-rnw-events-carousel-btn {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1.5px solid rgba(28, 28, 28, 0.18);
    background: rgba(255, 255, 255, 0.9);
    color: var(--asphalt);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
  }
  
  .acfc-rnw-events-carousel-btn:hover,
  .acfc-rnw-events-carousel-btn:focus-visible {
    border-color: var(--sol-rosa);
    background: var(--sol-rosa);
    color: var(--pitch-black, #111);
    outline: none;
  }
  
  .acfc-rnw-events-carousel-btn:active {
    transform: scale(0.96);
  }
  
  .acfc-rnw-events-carousel-track {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    overflow-anchor: none;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 0;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 4px 2px 12px;
    cursor: grab;
  }
  
  .acfc-rnw-events-carousel-track::-webkit-scrollbar {
    display: none;
  }
  
  .acfc-rnw-events-carousel-track:focus-visible {
    outline: 2px solid var(--sol-rosa);
    outline-offset: 4px;
  }
  
  .acfc-rnw-events-carousel-track.is-dragging {
    cursor: grabbing;
    scroll-snap-type: none;
  }
  
  .acfc-rnw-events-slide {
    flex: 0 0 min(78vw, 520px);
    margin: 0;
    scroll-snap-align: start;
    border-radius: var(--radius-lg, 16px);
    overflow: hidden;
    background: rgba(28, 28, 28, 0.06);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.1);
    opacity: 1;
    transform: none;
  }
  
  .acfc-rnw-events-slide img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }
  
  @media (max-width: 900px) {
    .acfc-rnw-incentives-grid,
    .acfc-rnw-stats-grid,
    .acfc-rnw-plans-grid {
      grid-template-columns: 1fr;
    }
  
    .acfc-rnw-stat {
      border-left: none;
      border-top: 1px solid var(--rnw-paper-edge);
      padding: 20px 16px;
    }
  
    .acfc-rnw-stat:first-child { border-top: none; }
  }
  
  @media (max-width: 768px) {
    .acfc-rnw-member-value .acfc-rnw-incentives-grid {
      gap: 12px;
    }
  
    .acfc-rnw-events-title-row {
      flex-wrap: wrap;
      gap: 10px;
      row-gap: 8px;
    }
  
    .acfc-rnw-events-carousel-btn {
      width: 44px;
      height: 44px;
    }
  
    .acfc-rnw-events-carousel-track {
      scroll-padding-inline: 4px;
    }
  
    .acfc-rnw-events-slide {
      flex-basis: min(85%, 360px);
    }
  }
  
  @media (prefers-reduced-motion: reduce) {
    .acfc-rnw-events-slide {
      transform: none;
      transition: none;
    }
  
    .acfc-rnw-events-carousel-btn {
      transition: none;
    }
  }
  
  /* ---------- Member moments: video + mosaic gallery ---------- */

  .acfc-rnw-moments {
    position: relative;
    background: var(--rnw-surface-warm);
    padding: clamp(56px, 8vw, 96px) 0;
    overflow: hidden;
  }

  .acfc-rnw-moments::before {
    content: '';
    position: absolute;
    inset: -20% -10% auto -10%;
    height: 60%;
    background: radial-gradient(ellipse 70% 100% at 50% 0%, var(--sol-rosa-soft) 0%, transparent 70%);
    pointer-events: none;
  }

  .acfc-rnw-moments > .angelcity2026-container {
    position: relative;
    z-index: 1;
  }

  /* Feature video */
  .acfc-rnw-moments-video {
    position: relative;
    margin: 0 0 clamp(16px, 2.5vw, 24px);
    border-radius: var(--radius-lg);
    overflow: hidden;
    /* Cinematic letterbox: shorter than the source 16:9 so the frame does not
       dominate the section. The video is center-cropped to fill it. */
    aspect-ratio: 21 / 9;
    width: 100%;
    background: var(--rnw-card-dark);
    border: 1px solid rgba(241, 177, 165, 0.35);
    box-shadow: 0 26px 70px rgba(28, 20, 16, 0.22);
  }

  .acfc-rnw-moments-video-el {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }

  .acfc-rnw-moments-video-scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.72) 0%, rgba(0, 0, 0, 0.14) 45%, transparent 75%);
    pointer-events: none;
  }

  .acfc-rnw-moments-video-toggle {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.4);
    background: rgba(0, 0, 0, 0.5);
    color: var(--line-white);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s var(--ease-out);
  }

  .acfc-rnw-moments-video-toggle:hover,
  .acfc-rnw-moments-video-toggle:focus-visible {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
    transform: scale(1.06);
    outline: none;
  }

  .acfc-rnw-moments-video-toggle:focus-visible {
    outline: 2px solid var(--sol-rosa);
    outline-offset: 3px;
  }

  /* Mute toggle shares the play/pause button's look, pinned to the opposite corner */
  .acfc-rnw-moments-video-mute {
    top: auto;
    bottom: 16px;
    right: 16px;
  }

  .acfc-rnw-moments-icon {
    width: 18px;
    height: 18px;
    fill: currentColor;
  }

  /* Show pause while playing, play while paused */
  .acfc-rnw-moments-icon--pause { display: none; }
  .acfc-rnw-moments-icon--play { display: block; }
  .acfc-rnw-moments-video.is-playing .acfc-rnw-moments-icon--pause { display: block; }
  .acfc-rnw-moments-video.is-playing .acfc-rnw-moments-icon--play { display: none; }

  /* Show the muted (crossed-out) glyph by default, sound-wave glyph once unmuted */
  .acfc-rnw-moments-icon--muted { display: block; }
  .acfc-rnw-moments-icon--unmuted { display: none; }
  .acfc-rnw-moments-video.is-unmuted .acfc-rnw-moments-icon--muted { display: none; }
  .acfc-rnw-moments-video.is-unmuted .acfc-rnw-moments-icon--unmuted { display: block; }

  .acfc-rnw-moments-video-caption {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: clamp(18px, 3vw, 28px);
  }

  .acfc-rnw-moments-video-kicker {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--sol-rosa);
  }

  .acfc-rnw-moments-video-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.2rem, 2.7vw, 1.8rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--line-white);
  }

  /* Mosaic grid: three columns to match the video width */
  .acfc-rnw-moments-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: repeat(2, clamp(150px, 17vw, 230px));
    gap: clamp(10px, 1.5vw, 16px);
  }

  .acfc-rnw-moments-tile {
    position: relative;
    margin: 0;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: rgba(28, 28, 28, 0.06);
    box-shadow: 0 12px 32px rgba(28, 20, 16, 0.12);
  }

  .acfc-rnw-moments-tile--tall {
    grid-row: span 2;
  }

  .acfc-rnw-moments-tile--wide {
    grid-column: span 2;
  }

  .acfc-rnw-moments-tile img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(0.35);
    transform: scale(1.01);
    transition: filter 0.5s var(--ease-out), transform 0.6s var(--ease-out);
  }

  .acfc-rnw-moments-tile:hover img,
  .acfc-rnw-moments-tile:focus-within img {
    filter: grayscale(0);
    transform: scale(1.06);
  }

  .acfc-rnw-moments-caption {
    position: absolute;
    left: 10px;
    bottom: 10px;
    z-index: 2;
    padding: 6px 12px;
    border-radius: var(--radius-full);
    background: rgba(0, 0, 0, 0.6);
    color: var(--line-white);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.3s var(--ease-out), transform 0.3s var(--ease-out);
    display:none;
  }

  .acfc-rnw-moments-tile:hover .acfc-rnw-moments-caption,
  .acfc-rnw-moments-tile:focus-within .acfc-rnw-moments-caption {
    opacity: 1;
    transform: translateY(0);
  }

  .acfc-rnw-moments-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    margin-top: clamp(28px, 4vw, 40px);
    text-align: center;
  }

  .acfc-rnw-moments-cta-copy {
    margin: 0;
    font-size: clamp(1rem, 2vw, 1.15rem);
    line-height: 1.5;
    color: var(--asphalt);
  }

  @media (max-width: 900px) {
    /* Two columns only works evenly with uniform tiles, so drop the spans */
    .acfc-rnw-moments-grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-template-rows: repeat(3, clamp(140px, 26vw, 200px));
    }

    .acfc-rnw-moments-tile--tall,
    .acfc-rnw-moments-tile--wide {
      grid-row: auto;
      grid-column: auto;
    }
  }

  @media (max-width: 768px) {
    .acfc-rnw-moments-video {
      border-radius: var(--radius-md);
      /* 21:9 collapses to a sliver at phone widths, so give the frame back some height */
      aspect-ratio: 16 / 10;
    }

    .acfc-rnw-moments-video-toggle {
      top: 12px;
      right: 12px;
    }

    .acfc-rnw-moments-video-mute {
      top: auto;
      bottom: 12px;
      right: 12px;
    }

    /* Captions are hover-only on desktop; always visible on touch */
    .acfc-rnw-moments-caption {
      opacity: 1;
      transform: none;
      font-size: 0.7rem;
      padding: 5px 10px;
    }

    .acfc-rnw-moments-tile img {
      filter: grayscale(0);
    }
  }

  @media (max-width: 560px) {
    .acfc-rnw-moments-grid {
      grid-template-columns: 1fr;
      grid-template-rows: none;
      grid-auto-rows: clamp(180px, 52vw, 260px);
    }

    .acfc-rnw-moments-tile--tall,
    .acfc-rnw-moments-tile--wide {
      grid-row: auto;
      grid-column: auto;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .acfc-rnw-moments-tile img,
    .acfc-rnw-moments-caption,
    .acfc-rnw-moments-video-toggle {
      transition: none;
    }

    .acfc-rnw-moments-tile:hover img,
    .acfc-rnw-moments-tile:focus-within img {
      transform: none;
    }
  }

  /* ---------- How it works steps ---------- */
  
  .acfc-rnw-steps {
    background: var(--rnw-cream);
    padding: clamp(56px, 8vw, 96px) 0;
  }
  
  .acfc-rnw-steps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
  }

  .acfc-rnw-steps-grid--three {
    grid-template-columns: repeat(3, 1fr);
    max-width: 1292px;
    margin-inline: auto;
  }
  
  .acfc-rnw-step {
    position: relative;
    padding: 20px 22px 22px;
    /* Grid rows already stretch every card to the tallest one; making the
       card a column flex container lets the tier note anchor to the bottom
       so all three end at the same baseline regardless of body copy length. */
    display: flex;
    flex-direction: column;
  }
  
  .acfc-rnw-step-number {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 0.85em;
    font-weight: 800;
    color: var(--sol-rosa-dark);
    margin-right: 8px;
  }
  
  .acfc-rnw-step-title {
    font-family: 'Inter', sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--asphalt);
    margin: 0 0 10px;
    line-height: 1.2;
  }
  
  .acfc-rnw-step-body {
    font-size: 0.88rem;
    color: rgba(28, 28, 28, 0.78);
    margin: 0;
    line-height: 1.65;
  }

  /* The browser's default UA styles for :visited/:hover outrank the generic
     "a { color: inherit; }" rule (higher specificity), so an unvisited link
     inherits fine but can go native purple/black once visited or on hover.
     Pin every state explicitly so it stays legible in both themes. */
  .acfc-rnw-step-body a {
    color: var(--sol-rosa-dark);
    font-weight: 400;
    text-decoration-color: currentColor;
  }

  .acfc-rnw-step-body a:visited {
    color: var(--sol-rosa-dark);
    font-weight: 400;
  }

  .acfc-rnw-step-body a:hover,
  .acfc-rnw-step-body a:focus-visible {
    color: var(--sol-rosa);
  }

  .acfc-rnw-step-tiers {
    /* Pinned to the bottom of the (flex column) card via margin-top: auto,
       so all three step cards line up their tier note on the same baseline
       even though the lead copy above it varies in length. */
    margin: auto 0 0;
    padding-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .acfc-rnw-step-tier {
    padding: 8px 10px;
    border: 1px solid rgba(28, 28, 28, 0.1);
    border-radius: var(--radius-sm, 8px);
    background: rgba(28, 28, 28, 0.03);
  }

  .acfc-rnw-step-tier-name {
    display: block;
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: 0.66rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--armour);
    margin-bottom: 2px;
    line-height: 1.25;
  }

  .acfc-rnw-step-tier-body {
    margin: 0;
    font-size: 0.76rem;
    line-height: 1.4;
    color: rgba(28, 28, 28, 0.78);
  }

  /* Premium is the only tier that requires action, so it gets the pink
     treatment to stand apart from the two auto-renewing tiers above it. */
  .acfc-rnw-step-tier--action {
    border-color: rgba(241, 177, 165, 0.5);
    background: rgba(241, 177, 165, 0.14);
  }

  .acfc-rnw-step-tier--action .acfc-rnw-step-tier-name {
    color: var(--sol-rosa-dark);
  }

  /* Steps 2 and 3 are identical for every tier, so this note uses a dashed,
     lower-emphasis style to read as "applies to everyone" rather than a
     tier-specific callout like the boxes in step 1. */
  .acfc-rnw-step-tier--all {
    border-style: dashed;
    background: none;
  }

  .acfc-rnw-step-tier--all .acfc-rnw-step-tier-name {
    color: var(--armour);
  }
  
  .acfc-rnw-steps-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin: 32px auto 0;
  }
  
  @media (max-width: 1024px) {
    .acfc-rnw-steps-grid { grid-template-columns: repeat(2, 1fr); }
    .acfc-rnw-steps-grid--three { grid-template-columns: repeat(3, 1fr); }
  }

  @media (max-width: 768px) {
    .acfc-rnw-steps-grid { grid-template-columns: 1fr; }
    .acfc-rnw-steps-grid--three { grid-template-columns: 1fr; }
    .acfc-rnw-step { padding: 18px 16px; }
    .acfc-rnw-step-body { font-size: 0.92rem; }
  }
  
  /* ---------- Stats band ---------- */
  
  .acfc-rnw-stats {
    position: relative;
    background: var(--rnw-cream);
    padding: clamp(56px, 8vw, 96px) 0;
    overflow: hidden;
  }
  
  .acfc-rnw-stats::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 80% 60% at 50% 50%, rgba(241, 177, 165, 0.28) 0%, transparent 70%);
    pointer-events: none;
  }
  
  .acfc-rnw-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    position: relative;
    z-index: 1;
  }
  
  .acfc-rnw-stat {
    text-align: center;
    padding: 24px 16px;
    border-left: 1px solid var(--rnw-paper-edge);
  }
  
  .acfc-rnw-stat:first-child {
    border-left: none;
  }
  
  .acfc-rnw-stat-value {
    font-family: 'Inter', sans-serif;
    font-size: clamp(2.6rem, 7vw, 4.75rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 2px var(--sol-rosa-dark);
    margin-bottom: 8px;
    transition: text-shadow 0.6s var(--ease-out);
  }
  
  .acfc-rnw-stat-value.is-counted {
    color: var(--sol-rosa-dark);
    -webkit-text-stroke: 0;
    text-shadow: 0 0 22px rgba(241, 177, 165, 0.55);
    animation: acfc-rnw-stat-glow 1.2s var(--ease-out);
  }
  
  .acfc-rnw-stat-value--text {
    color: var(--sol-rosa-dark);
    -webkit-text-stroke: 0;
    text-shadow: 0 0 22px rgba(241, 177, 165, 0.55);
    font-size: clamp(2.6rem, 7vw, 4.5rem);
    letter-spacing: 0.04em;
  }
  
  @keyframes acfc-rnw-stat-glow {
    0% { text-shadow: 0 0 0 rgba(241, 177, 165, 0); }
    40% { text-shadow: 0 0 32px rgba(241, 177, 165, 0.85); }
    100% { text-shadow: 0 0 22px rgba(241, 177, 165, 0.55); }
  }
  
  .acfc-rnw-stat-suffix {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    color: var(--sol-rosa-dark);
    vertical-align: super;
  }
  
  .acfc-rnw-stat-prefix {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    color: var(--sol-rosa-dark);
  }
  
  .acfc-rnw-stat-label {
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--armour);
  }
  
  @media (max-width: 768px) {
    .acfc-rnw-stats-grid { grid-template-columns: 1fr; }
    .acfc-rnw-stat {
      border-left: none;
      border-top: 1px solid var(--rnw-paper-edge);
      padding: 20px 16px;
    }
    .acfc-rnw-stat:first-child { border-top: none; }
    .acfc-rnw-stat-label {
      font-size: 0.8rem;
      line-height: 1.4;
      max-width: 260px;
      margin-inline: auto;
    }
  }
  
  /* ---------- Key dates timeline ---------- */
  
  .acfc-rnw-dates {
    background: var(--rnw-cream);
    padding: clamp(56px, 8vw, 96px) 0;
  }
  
  .acfc-rnw-timeline {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 720px;
    position: relative;
  }
  
  .acfc-rnw-timeline::before {
    content: '';
    position: absolute;
    top: 12px;
    bottom: 12px;
    left: 19px;
    width: 2px;
    background: linear-gradient(to bottom, var(--sol-rosa) 0%, rgba(241, 177, 165, 0.25) 100%);
  }
  
  .acfc-rnw-tl-item {
    position: relative;
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 20px;
    padding-bottom: 20px;
  }
  
  .acfc-rnw-tl-item:last-child { padding-bottom: 0; }
  
  .acfc-rnw-tl-node {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--rnw-panel);
    border: 2px solid var(--sol-rosa);
    color: var(--sol-rosa-dark);
    font-family: 'Inter', sans-serif;
    font-size: 1.1rem;
    font-weight: 800;
  }
  
  .acfc-rnw-tl-item.is-highlight .acfc-rnw-tl-node {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
  }
  
  .acfc-rnw-tl-card {
    position: relative;
    padding: 20px 22px;
    transition: transform 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out);
  }
  
  .acfc-rnw-tl-item.is-highlight .acfc-rnw-tl-card {
    box-shadow: 0 18px 50px rgba(28, 20, 16, 0.14);
  }
  
  .acfc-rnw-tl-phase {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--armour);
    margin-bottom: 10px;
  }
  
  .acfc-rnw-tl-badge {
    position: absolute;
    top: 16px;
    right: 18px;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pitch-black);
    background: var(--sol-rosa);
    border-radius: var(--radius-full);
    padding: 4px 10px;
  }
  
  .acfc-rnw-date-head {
    margin-bottom: 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(28, 28, 28, 0.08);
  }
  
  .acfc-rnw-date-label {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.05rem, 2vw, 1.2rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.015em;
    color: var(--asphalt);
    margin: 0 0 6px;
    line-height: 1.12;
  }
  
  .acfc-rnw-date-when {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: none;
    color: var(--sol-rosa-dark);
    line-height: 1.35;
  }
  
  .acfc-rnw-date-when::before {
    content: '';
    flex-shrink: 0;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.65;
  }
  
  .acfc-rnw-tl-item.is-highlight .acfc-rnw-date-label {
    color: var(--pitch-black);
  }
  
  .acfc-rnw-tl-item.is-highlight .acfc-rnw-date-head {
    border-bottom-color: rgba(28, 28, 28, 0.12);
  }
  
  .acfc-rnw-date-desc {
    font-size: 0.82rem;
    color: var(--armour);
    margin: 0;
    line-height: 1.55;
  }

  .acfc-rnw-date-sublist {
    list-style: none;
    margin: 10px 0 0;
    padding: 10px 0 0;
    border-top: 1px solid rgba(28, 28, 28, 0.1);
    display: grid;
    gap: 6px;
  }

  .acfc-rnw-date-sublist li {
    font-size: 0.8rem;
    color: var(--armour);
    line-height: 1.5;
  }

  .acfc-rnw-date-sublist strong {
    color: var(--asphalt);
  }

  .acfc-rnw-dates-note {
    text-align: center;
    font-size: 0.78rem;
    color: var(--armour);
    margin: 28px 0 0;
    font-style: italic;
  }
  
  @media (max-width: 560px) {
    .acfc-rnw-tl-item { grid-template-columns: 32px 1fr; gap: 14px; }
    .acfc-rnw-timeline::before { left: 15px; }
    .acfc-rnw-tl-node { width: 32px; height: 32px; font-size: 0.9rem; }
    .acfc-rnw-tl-badge { position: static; display: inline-block; margin-bottom: 8px; }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-tl-card { padding: 16px 14px; }
    .acfc-rnw-date-label { font-size: 1rem; }
    .acfc-rnw-date-when { font-size: 0.76rem; }
  }
  
  /* ---------- Payment plans ---------- */
  
  .acfc-rnw-plans {
    background: var(--rnw-cream);
    padding: clamp(56px, 8vw, 96px) 0;
  }
  
  .acfc-rnw-plans-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
  
  .acfc-rnw-plan-card {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 10px;
    padding: 30px 26px;
    overflow: hidden;
    transition: transform 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out);
  }
  
  .acfc-rnw-plan-tag {
    display: inline-block;
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--sol-rosa-dark);
    background: var(--sol-rosa-soft);
    border-radius: var(--radius-full);
    padding: 4px 12px;
    margin-bottom: 0;
    white-space: nowrap;
  }
  
  .acfc-rnw-plan-title {
    grid-column: 1;
    grid-row: 1;
    font-family: 'Inter', sans-serif;
    font-size: 1.25rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.015em;
    color: var(--asphalt);
    margin: 0;
    min-width: 0;
  }
  
  .acfc-rnw-plan-desc {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-top: 10px;
    font-size: 0.9rem;
    color: rgba(28, 28, 28, 0.8);
    margin-bottom: 0;
    line-height: 1.6;
  }
  
  .acfc-rnw-plans-note {
    text-align: center;
    font-size: 0.85rem;
    color: var(--armour);
    margin: 28px 0 0;
  }
  
  .acfc-rnw-plans-note a {
    color: var(--sol-rosa-dark);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  
  @media (max-width: 768px) {
    .acfc-rnw-plans-grid { grid-template-columns: 1fr; }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-plan-card { padding: 24px 20px; }
  }
  
  /* ---------- Benefits table ---------- */
  
  .acfc-rnw-benefits {
    background: var(--rnw-cream);
    padding: clamp(56px, 8vw, 96px) 0;
  }
  
  .acfc-rnw-benefits-head {
    max-width: 640px;
    margin: 0 auto clamp(24px, 4vw, 36px);
    text-align: center;
  }
  
  .acfc-rnw-benefits-head .acfc-rnw-eyebrow,
  .acfc-rnw-benefits-head .acfc-rnw-benefits-headline,
  .acfc-rnw-benefits-head .acfc-rnw-section-lead {
    text-align: center;
  }
  
  .acfc-rnw-benefits-head .acfc-rnw-section-lead {
    margin-left: auto;
    margin-right: auto;
    max-width: 540px;
  }
  
  .acfc-rnw-member-value {
    display: flex;
    flex-direction: column;
    gap: clamp(14px, 2vw, 20px);
    margin: 0 0 clamp(36px, 5vw, 52px);
  }
  
  .acfc-rnw-member-value .acfc-rnw-incentives-grid {
    gap: 14px;
  }
  
  .acfc-rnw-member-value .acfc-rnw-incentive {
    padding: clamp(16px, 2.4vw, 22px);
    gap: 8px;
  }
  
  .acfc-rnw-member-value .acfc-rnw-incentive-desc {
    font-size: clamp(0.88rem, 1.5vw, 0.95rem);
    line-height: 1.5;
  }
  
  .acfc-rnw-benefits-intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    margin-bottom: 48px;
  }
  
  .acfc-rnw-benefits-media {
    border-radius: var(--radius-lg);
    overflow: hidden;
    aspect-ratio: 4 / 3;
    box-shadow: 0 22px 60px rgba(28, 20, 16, 0.2);
  }
  
  .acfc-rnw-benefits-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  .acfc-rnw-benefits-headline {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.025em;
    line-height: 1.02;
    color: var(--asphalt);
    font-size: clamp(1.85rem, 4.5vw, 2.8rem);
    margin: 6px 0 14px;
  }
  
  .acfc-rnw-benefits-headline .acfc-rnw-imgtext {
    display: inline;
  }
  
  .acfc-rnw-benefits .acfc-rnw-eyebrow { color: var(--sol-rosa-dark); }
  .acfc-rnw-benefits-table-heading { color: var(--asphalt); }
  
  /* Top-6 spotlight grid. Flexbox (not CSS Grid) so that an incomplete
     final row - e.g. 2 cards left over in a 3-column layout - centers
     itself instead of hugging the left edge with an empty trailing column. */
  .acfc-rnw-spotlight {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-bottom: 0;
  }
  
  .acfc-rnw-spotlight-card {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 14px;
    row-gap: 4px;
    align-items: center;
    padding: 16px 18px;
    flex: 0 1 calc((100% - (2 * 12px)) / 3);
  }
  
  .acfc-rnw-spotlight-card.acfc-rnw-frost {
    box-shadow: none;
  }
  
  .acfc-rnw-spotlight-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--sol-rosa-soft);
    color: var(--sol-rosa-dark);
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
    margin-bottom: 0;
    padding-left: 2px;
  }
  
  .acfc-rnw-spotlight-icon svg { width: 20px; height: 20px; }
  
  .acfc-rnw-spotlight-title {
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--asphalt);
    margin: 0;
    line-height: 1.15;
    grid-column: 2;
    grid-row: 1;
  }
  
  .acfc-rnw-spotlight-desc {
    font-size: 0.8rem;
    color: var(--armour);
    margin: 0;
    line-height: 1.45;
    grid-column: 2;
    grid-row: 2;
  }
  
  .acfc-rnw-benefits-table-heading {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.2rem, 2.7vw, 1.6rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.015em;
    color: var(--asphalt);
    text-align: center;
    margin: 0 0 20px;
  }

  /* Perks comparison tables (STM vs single ticket buyer) */
  .acfc-rnw-perks-compare {
    display: flex;
    flex-direction: column;
    gap: clamp(28px, 4vw, 44px);
    margin-top: clamp(8px, 2vw, 16px);
  }

  .acfc-rnw-perks-panel {
    position: relative;
    overflow: hidden;
    padding: clamp(22px, 3.5vw, 32px);
    border: 1px solid rgba(241, 177, 165, 0.35);
    box-shadow: var(--shadow-card);
    background:
      linear-gradient(165deg, rgba(255, 255, 255, 0.97) 0%, rgba(247, 241, 232, 0.92) 100%);
  }

  .acfc-rnw-perks-panel::before {
    content: '';
    position: absolute;
    inset: auto -10% -28% -10%;
    height: 55%;
    background:
      radial-gradient(ellipse 80% 100% at 50% 100%, rgba(241, 177, 165, 0.22) 0%, transparent 72%);
    pointer-events: none;
  }

  .acfc-rnw-perks-head {
    position: relative;
    z-index: 1;
    margin-bottom: clamp(18px, 3vw, 24px);
    max-width: 720px;
  }

  .acfc-rnw-perks-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.1rem, 2.4vw, 1.4rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.015em;
    text-transform: uppercase;
    color: var(--asphalt);
    margin: 0;
  }

  @media (min-width: 769px) {
    .acfc-rnw-perks-head {
      max-width: none;
    }

    .acfc-rnw-perks-title {
      white-space: nowrap;
    }
  }

  .acfc-rnw-perks-title em {
    font-style: normal;
    font-weight: 900;
    color: var(--sol-rosa-dark);
  }

  .acfc-rnw-perks-accent {
    display: block;
    width: 52px;
    height: 4px;
    margin-top: 12px;
    background: var(--sol-rosa);
    border-radius: 2px;
  }

  .acfc-rnw-perks-table-scroll {
    position: relative;
    z-index: 1;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--sol-rosa) transparent;
    border-radius: var(--radius-md);
    border: 1px solid var(--benefits-border-light);
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(6px);
  }

  .acfc-rnw-perks-table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    table-layout: fixed;
  }

  /* Header bar: quiet warm surface for the context columns, sol rosa for the
     STM column so the eye lands on the tier we are actually selling. */
  .acfc-rnw-perks-table thead th {
    padding: 0.85rem 1rem;
    font-size: clamp(0.72rem, 1.1vw, 0.78rem);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    text-align: left;
    vertical-align: middle;
    color: var(--armour);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(247, 241, 232, 0.94) 100%);
    border-bottom: 2px solid var(--sol-rosa);
  }

  .acfc-rnw-perks-th-label {
    display: block;
    line-height: 1.25;
  }

  /* Matches the sticky body cells so the column stays aligned while scrolling */
  .acfc-rnw-perks-table thead .acfc-rnw-perks-th-benefit {
    width: 38%;
    position: sticky;
    left: 0;
    z-index: 3;
    color: var(--asphalt);
    box-shadow: 4px 0 10px -6px rgba(0, 0, 0, 0.12);
  }

  .acfc-rnw-perks-table thead .acfc-rnw-perks-th-buyer {
    width: 27%;
  }

  /* Wider than the buyer column so the name and tier chip fit on one line. */
  .acfc-rnw-perks-table thead .acfc-rnw-perks-th-member {
    width: 35%;
  }

  .acfc-rnw-perks-table thead .acfc-rnw-perks-th-buyer {
    border-left: 1px solid rgba(28, 28, 28, 0.08);
  }

  .acfc-rnw-perks-table thead .acfc-rnw-perks-th-member {
    color: var(--asphalt);
    background: linear-gradient(180deg, rgba(241, 177, 165, 0.62) 0%, rgba(241, 177, 165, 0.85) 100%);
    box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.6);
  }

  /* The label is block-level in the other two columns; here it flows inline so
     the tier chip sits beside the column name instead of dropping below it. */
  .acfc-rnw-perks-th-member .acfc-rnw-perks-th-label {
    display: inline;
  }

  .acfc-rnw-perks-tier {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 9px;
    padding: 3px 9px;
    border-radius: var(--radius-full);
    background: rgba(255, 255, 255, 0.72);
    color: var(--asphalt);
    font-size: 0.78em;
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1;
    vertical-align: middle;
    white-space: nowrap;
  }

  /* Carry the emphasis down the Season Ticket Member column */
  .acfc-rnw-perks-table tbody td:last-child {
    background: rgba(241, 177, 165, 0.12);
    border-left-color: rgba(241, 177, 165, 0.5);
  }

  .acfc-rnw-perks-benefit {
    padding: 0.72rem 1rem;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--asphalt);
    text-align: left;
    vertical-align: middle;
    background: rgba(255, 255, 255, 0.65);
    border-bottom: 1px solid var(--benefits-border-light);
    position: sticky;
    left: 0;
    z-index: 2;
    box-shadow: 4px 0 10px -6px rgba(0, 0, 0, 0.12);
  }

  .acfc-rnw-perks-cell {
    padding: 0.72rem 1rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--benefits-border-light);
    border-left: 1px solid rgba(241, 177, 165, 0.35);
    background: rgba(255, 255, 255, 0.45);
    font-size: 0.875rem;
    line-height: 1.4;
    color: var(--asphalt);
  }

  .acfc-rnw-perks-status {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem 0.5rem;
  }

  .acfc-rnw-perks-status strong {
    font-weight: 800;
    letter-spacing: 0.01em;
  }

  .acfc-rnw-perks-detail {
    font-size: 0.82em;
    font-style: italic;
    color: var(--armour);
    font-weight: 500;
  }

  .acfc-rnw-perks-note-ref {
    font-size: 0.7em;
    color: var(--sol-rosa-dark);
    font-weight: 700;
    margin-left: 1px;
  }

  .acfc-rnw-perks-footnote {
    margin: 14px 2px 0;
    padding-top: 12px;
    border-top: 1px solid rgba(28, 28, 28, 0.08);
    font-size: 0.78rem;
    line-height: 1.6;
    color: var(--armour);
  }

  .acfc-rnw-perks-footnote .acfc-rnw-perks-note-ref {
    margin-left: 0;
  }

  .acfc-rnw-perks-icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
  }

  .acfc-rnw-perks-icon--deny {
    color: #c94b4b;
    padding: 2px;
    border-radius: 50%;
    background: rgba(201, 75, 75, 0.12);
    box-sizing: content-box;
  }

  .acfc-rnw-perks-icon--star {
    fill: #d4a017;
    stroke: none;
    width: 16px;
    height: 16px;
  }

  .acfc-rnw-perks-cell.is-deny .acfc-rnw-perks-status {
    color: var(--armour);
  }

  .acfc-rnw-perks-cell.is-include .acfc-rnw-perks-status strong {
    color: var(--asphalt);
  }

  .acfc-rnw-perks-cell.is-premium .acfc-rnw-perks-status strong {
    color: var(--asphalt);
  }

  .acfc-rnw-perks-cell.is-neutral .acfc-rnw-perks-status {
    font-weight: 600;
    color: var(--armour);
  }

  .acfc-rnw-perks-table tbody tr:last-child .acfc-rnw-perks-benefit,
  .acfc-rnw-perks-table tbody tr:last-child .acfc-rnw-perks-cell {
    border-bottom: none;
  }

  @media (max-width: 768px) {
    .acfc-rnw-perks-panel {
      padding: 18px 14px;
    }

    .acfc-rnw-perks-head {
      text-align: center;
    }

    .acfc-rnw-perks-accent {
      margin-inline: auto;
    }

    .acfc-rnw-perks-table-scroll::after {
      content: 'Swipe to compare';
      display: block;
      text-align: center;
      font-size: 0.7rem;
      font-weight: 600;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--armour);
      padding: 8px 0 4px;
    }

    .acfc-rnw-perks-benefit {
      min-width: 148px;
      font-size: 0.8rem;
      padding: 0.65rem 0.75rem;
    }

    .acfc-rnw-perks-cell {
      min-width: 132px;
      padding: 0.65rem 0.75rem;
      font-size: 0.8rem;
    }

    .acfc-rnw-perks-table thead th {
      padding: 0.7rem 0.75rem;
    }

    /* These nest inside cells, so em sizing compounds down to ~9px on phones.
       Pin them to absolute sizes that stay readable. */
    .acfc-rnw-perks-tier {
      font-size: 0.7rem;
    }

    .acfc-rnw-perks-detail {
      font-size: 0.72rem;
    }
  }

  /* Below 640px the three columns no longer fit, and side-scrolling left the
     Season Ticket Member column - the entire argument - off screen behind a
     swipe. Turn each row into a card instead: the benefit name spans the
     top, then the Single Ticket Buyer and Season Ticket Member answers sit
     side by side as two evenly-sized chips, so both are always visible and
     aligned to each other rather than stacked or hidden. The column names
     are stated once in the legend above the list rather than on every row,
     which keeps each answer to a single line. */
  @media (max-width: 640px) {
    .acfc-rnw-perks-legend {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      margin: 0 0 10px;
      padding: 0 13px;
      text-align: center;
    }

    .acfc-rnw-perks-legend-item {
      padding: 5px 6px;
      border: 1px solid var(--benefits-border-light);
      border-radius: var(--radius-sm);
      background: rgba(255, 255, 255, 0.55);
      font-size: 0.6rem;
      font-weight: 700;
      letter-spacing: 0.07em;
      line-height: 1.3;
      text-transform: uppercase;
      color: var(--armour);
    }

    .acfc-rnw-perks-legend-item--member {
      border-color: rgba(241, 177, 165, 0.42);
      background: rgba(241, 177, 165, 0.16);
      color: var(--sol-rosa-dark);
    }

    .acfc-rnw-perks-table-scroll {
      overflow: visible;
    }

    .acfc-rnw-perks-table-scroll::after {
      content: none;
    }

    .acfc-rnw-perks-table {
      display: block;
      min-width: 0;
    }

    .acfc-rnw-perks-table thead {
      display: none;
    }

    .acfc-rnw-perks-table tbody {
      display: block;
    }

    .acfc-rnw-perks-table tr {
      display: grid;
      grid-template-columns: 1fr 1fr;
      grid-template-areas: "title title" "buyer member";
      column-gap: 8px;
      row-gap: 7px;
      margin-bottom: 8px;
      padding: 12px;
      border: 1px solid var(--benefits-border-light);
      border-radius: var(--radius-md);
      background: rgba(255, 255, 255, 0.72);
      text-align: left;
    }

    .acfc-rnw-perks-table tbody tr:last-child {
      margin-bottom: 0;
    }

    .acfc-rnw-perks-table .acfc-rnw-perks-benefit {
      grid-area: title;
      position: static;
      width: auto;
      min-width: 0;
      padding: 0;
      font-size: 0.85rem;
      line-height: 1.3;
      text-align: left;
      background: none;
      box-shadow: none;
      border-bottom: none;
    }

    /* Both answers become equal-weight chips. The value and its detail run
       inline on one line where they fit, so a row is roughly two lines tall
       instead of five. */
    .acfc-rnw-perks-table .acfc-rnw-perks-cell {
      display: flex;
      align-items: center;
      justify-content: center;
      width: auto;
      min-width: 0;
      padding: 7px 8px;
      border: 1px solid var(--benefits-border-light);
      border-radius: var(--radius-sm);
      background: rgba(255, 255, 255, 0.55);
      font-size: 0.78rem;
      line-height: 1.35;
      text-align: center;
    }

    .acfc-rnw-perks-table .acfc-rnw-perks-cell:nth-of-type(1) {
      grid-area: buyer;
    }

    .acfc-rnw-perks-table .acfc-rnw-perks-cell:nth-of-type(2) {
      grid-area: member;
      border-color: rgba(241, 177, 165, 0.42);
      background: rgba(241, 177, 165, 0.16);
    }

    /* Column names live in the legend above the list, not on every row */
    .acfc-rnw-perks-cell::before {
      content: none;
    }

    .acfc-rnw-perks-status {
      flex-direction: row;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
      gap: 0.15rem 0.3rem;
      text-align: center;
    }

    .acfc-rnw-perks-detail {
      font-size: 0.68rem;
    }

    .acfc-rnw-perks-icon {
      width: 15px;
      height: 15px;
    }

    .acfc-rnw-perks-icon--star {
      width: 14px;
      height: 14px;
    }
  }
  
  @media (max-width: 900px) {
    .acfc-rnw-spotlight-card {
      flex-basis: calc((100% - 12px) / 2);
    }
  }
  
  @media (max-width: 640px) {
    .acfc-rnw-spotlight-card {
      flex-basis: 100%;
      padding: 14px 16px;
    }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-benefits-head .acfc-rnw-eyebrow,
    .acfc-rnw-benefits-headline,
    .acfc-rnw-benefits-head .acfc-rnw-section-lead {
      text-align: center;
    }
  
    .acfc-rnw-benefits-headline {
      font-size: clamp(1.6rem, 7vw, 2rem);
      line-height: 1.1;
    }
  }
  
  /* ---------- Experience feature grid ---------- */
  
  .acfc-rnw-experience {
    position: relative;
    background: var(--rnw-surface);
    padding: clamp(48px, 7vw, 80px) 0;
    overflow: hidden;
  }

  /* Higher specificity than the plain .acfc-rnw-experience background above, so
     the tonal wash (no photo) wins when both classes are present on a section. */
  .acfc-rnw-experience.acfc-rnw-tonal {
    background:
      radial-gradient(120% 100% at 18% 0%, rgba(241, 177, 165, 0.16) 0%, transparent 55%),
      linear-gradient(180deg, var(--rnw-cream) 0%, #efe8dc 48%, #e3dccf 100%);
  }

  /* Sol rosa bloom behind the Member Hub showcase */
  .acfc-rnw-nextseason::before {
    content: '';
    position: absolute;
    inset: -12% -10% auto -10%;
    height: 62%;
    background: radial-gradient(ellipse 62% 100% at 50% 0%, var(--sol-rosa-soft) 0%, transparent 72%);
    pointer-events: none;
  }

  .acfc-rnw-nextseason > .angelcity2026-container {
    position: relative;
    z-index: 1;
  }
  
  .acfc-rnw-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }

  .acfc-rnw-nextseason .acfc-rnw-feature-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Member Hub app showcase */
  .acfc-rnw-mhub-showcase {
    position: relative;
    overflow: hidden;
    padding: clamp(24px, 3vw, 32px) clamp(16px, 2.5vw, 28px);
    margin-bottom: clamp(28px, 4vw, 40px);
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    border: 1px solid rgba(241, 177, 165, 0.38);
    box-shadow: var(--shadow-card);
    background:
      linear-gradient(155deg, rgba(241, 177, 165, 0.16) 0%, rgba(255, 255, 255, 0.88) 38%, rgba(247, 241, 232, 0.92) 100%);
  }

  /* Alternating copy/device rows so each screen sits beside the copy it proves.
     The device column is sized to the phone itself so the copy keeps the rest. */
  .acfc-rnw-mhub-row {
    display: grid;
    grid-template-columns: minmax(0, 420px) minmax(0, 264px);
    align-items: center;
    justify-content: center;
    gap: clamp(32px, 4vw, 48px);
    padding: clamp(22px, 3.5vw, 34px) 0;
    border-top: 1px solid rgba(241, 177, 165, 0.3);
  }

  .acfc-rnw-mhub-row:first-child {
    border-top: none;
    padding-top: 0;
  }

  .acfc-rnw-mhub-row:last-child {
    padding-bottom: 0;
  }

  .acfc-rnw-mhub-row--flip {
    grid-template-columns: minmax(0, 264px) minmax(0, 420px);
  }

  .acfc-rnw-mhub-text {
    display: flex;
    flex-direction: column;
    gap: clamp(12px, 2vw, 18px);
    align-items: flex-start;
    text-align: left;
    max-width: 420px;
    justify-self: center;
  }

  /* Eyebrow is a kicker on the title, so drop its default margin and offset
     part of the column gap to keep the pair together. */
  .acfc-rnw-mhub-text .acfc-rnw-eyebrow {
    margin-bottom: -8px;
  }

  .acfc-rnw-mhub-screen {
    position: relative;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 218px;
    justify-self: center;
  }

  /* Rosa bloom fills the media column so the device reads as placed, not floating */
  .acfc-rnw-mhub-screen::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 48%;
    width: 235%;
    height: 88%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(ellipse at center, var(--sol-rosa-glow) 0%, transparent 68%);
    pointer-events: none;
  }

  .acfc-rnw-mhub-screen-frame {
    position: relative;
    z-index: 1;
    width: 100%;
    aspect-ratio: 9 / 19;
    border-radius: clamp(16px, 2.2vw, 26px);
    overflow: hidden;
    background: var(--pitch-black);
    border: 3px solid #1b1b1b;
    box-shadow: 0 16px 40px rgba(28, 20, 16, 0.2);
    transition: transform 0.45s var(--ease-out), box-shadow 0.45s var(--ease-out);
  }

  /* Device speaker pill */
  .acfc-rnw-mhub-screen-frame::before {
    content: '';
    position: absolute;
    top: 7px;
    left: 50%;
    transform: translateX(-50%);
    width: 32%;
    height: 5px;
    border-radius: var(--radius-full);
    background: rgba(0, 0, 0, 0.6);
    z-index: 2;
  }

  .acfc-rnw-mhub-screen-frame img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .acfc-rnw-mhub-screen--feature {
    max-width: 244px;
  }

  .acfc-rnw-mhub-screen-label {
    position: relative;
    z-index: 1;
  }

  .acfc-rnw-mhub-screen--feature .acfc-rnw-mhub-screen-frame {
    box-shadow:
      0 26px 62px rgba(28, 20, 16, 0.28),
      0 0 0 1px rgba(241, 177, 165, 0.5),
      0 0 48px var(--sol-rosa-glow);
  }

  .acfc-rnw-mhub-screen:hover .acfc-rnw-mhub-screen-frame {
    transform: translateY(-4px);
  }

  .acfc-rnw-mhub-screen-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--armour);
    text-align: center;
  }

  .acfc-rnw-mhub-screen--feature .acfc-rnw-mhub-screen-label {
    color: var(--sol-rosa-dark);
  }

  .acfc-rnw-mhub-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.35rem, 2.9vw, 1.9rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: var(--asphalt);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
  }

  /* Neutral (non-pulsing) tag distinguishing this from the pink "NEW" badge,
     so it reads as informational rather than an exciting feature callout. */
  .acfc-rnw-mhub-soon-badge {
    display: inline-block;
    font-family: 'Inter', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(28, 28, 28, 0.65);
    background: rgba(28, 28, 28, 0.08);
    border: 1px solid rgba(28, 28, 28, 0.16);
    border-radius: var(--radius-full);
    padding: 4px 10px;
    vertical-align: middle;
  }

  .acfc-rnw-mhub-lead {
    margin: 0;
    font-size: clamp(0.95rem, 1.7vw, 1.05rem);
    line-height: 1.6;
    color: rgba(28, 28, 28, 0.82);
    max-width: 52ch;
  }

  .acfc-rnw-mhub-note {
    margin: 10px 0 0;
    font-size: 0.85rem;
    font-style: italic;
    color: rgba(28, 28, 28, 0.62);
  }

  .acfc-rnw-mhub-groups {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(14px, 2vw, 20px);
    width: 100%;
    max-width: 420px;
    text-align: left;
    justify-self: center;
  }

  .acfc-rnw-mhub-group {
    padding: clamp(18px, 2.4vw, 26px) clamp(18px, 2.2vw, 24px);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(241, 177, 165, 0.32);
    box-shadow: 0 8px 24px rgba(28, 20, 16, 0.06);
  }

  /* Rosa hairline under the title gives each group a clear masthead */
  .acfc-rnw-mhub-group-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(0.95rem, 1.6vw, 1.1rem);
    font-weight: 800;
    letter-spacing: -0.005em;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--sol-rosa-dark);
    margin: 0 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(241, 177, 165, 0.3);
  }

  /* NEW badge for highlighted features */
  .acfc-rnw-mhub-badge {
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 400;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pitch-black);
    background: var(--sol-rosa);
    border-radius: var(--radius-full);
    padding: 4px 10px;
    margin-left: 8px;
    vertical-align: middle;
    animation: pulse-glow 2s ease-in-out infinite;
  }

  @keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 8px rgba(241, 177, 165, 0.4); }
    50% { box-shadow: 0 0 16px rgba(241, 177, 165, 0.7); }
  }

  /* Highlight styling for new benefits group */
  .acfc-rnw-mhub-group--highlight {
    background: linear-gradient(135deg, rgba(241, 177, 165, 0.12) 0%, rgba(255, 255, 255, 0.92) 100%);
    border-color: var(--sol-rosa);
    box-shadow: 0 12px 32px rgba(241, 177, 165, 0.18), 0 0 0 1px rgba(241, 177, 165, 0.2);
    position: relative;
  }

  .acfc-rnw-mhub-group--highlight::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(circle at top right, rgba(241, 177, 165, 0.15), transparent 60%);
    pointer-events: none;
  }

  .acfc-rnw-mhub-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .acfc-rnw-mhub-list li {
    position: relative;
    padding-left: 18px;
    font-size: clamp(0.88rem, 1.35vw, 0.95rem);
    line-height: 1.55;
    color: var(--asphalt);
  }

  .acfc-rnw-mhub-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.6em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--sol-rosa);
    transform: translateY(-50%);
  }

  .acfc-rnw-mhub-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 4px;
  }

  /* App store buttons (ported from MobileFanApp) */
  .acfc-rnw-store-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    min-height: 48px;
    min-width: 158px;
    padding: 8px 16px 8px 12px;
    border-radius: 10px;
    background: var(--asphalt);
    color: var(--line-white);
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    transition: transform 0.2s var(--ease-out), box-shadow 0.2s ease;
  }

  a.acfc-rnw-store-btn,
  a.acfc-rnw-store-btn:hover,
  a.acfc-rnw-store-btn:focus-visible {
    color: var(--line-white);
    background: var(--asphalt);
    border-color: rgba(255, 255, 255, 0.12);
  }

  .acfc-rnw-store-btn:hover,
  .acfc-rnw-store-btn:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22);
    outline: none;
  }

  .acfc-rnw-store-btn:focus-visible {
    outline: 2px solid var(--sol-rosa);
    outline-offset: 3px;
  }

  .acfc-rnw-store-btn-icon {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    color: var(--line-white);
  }

  .acfc-rnw-store-btn-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.1;
    min-width: 0;
    color: inherit;
  }

  .acfc-rnw-store-btn-label {
    font-size: 0.72rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    opacity: 0.92;
  }

  .acfc-rnw-store-btn-name {
    font-size: 1.05rem;
    font-weight: 600;
    letter-spacing: 0.01em;
  }

  .acfc-rnw-mhub-web {
    margin: 0;
    font-size: 0.88rem;
    color: var(--armour);
  }

  .acfc-rnw-mhub-web a {
    color: var(--sol-rosa-dark);
    font-weight: 600;
    text-underline-offset: 3px;
  }

  /* Tighten just enough for both stores to sit side by side on a phone */
  @media (max-width: 480px) {
    .acfc-rnw-store-btn {
      min-width: 0;
      gap: 8px;
      padding: 8px 12px;
    }

    .acfc-rnw-store-btn-icon {
      width: 24px;
      height: 24px;
    }

    .acfc-rnw-store-btn-name {
      font-size: 0.95rem;
    }
  }

  @media (max-width: 340px) {
    .acfc-rnw-mhub-actions {
      flex-direction: column;
      align-items: stretch;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .acfc-rnw-store-btn {
      transition: none;
    }

    .acfc-rnw-store-btn:hover,
    .acfc-rnw-store-btn:focus-visible {
      transform: none;
    }
  }

  @media (max-width: 900px) {
    /* Device column stays on its own side, so the flip row needs the mirror */
    .acfc-rnw-mhub-row {
      grid-template-columns: minmax(0, 1fr) minmax(0, 200px);
      gap: clamp(16px, 2.5vw, 28px);
    }

    .acfc-rnw-mhub-row--flip {
      grid-template-columns: minmax(0, 200px) minmax(0, 1fr);
      gap: clamp(16px, 2.5vw, 28px);
    }

    .acfc-rnw-mhub-screen,
    .acfc-rnw-mhub-screen--feature {
      max-width: 190px;
    }
  }

  @media (max-width: 768px) {
    .acfc-rnw-nextseason .acfc-rnw-feature-grid {
      grid-template-columns: 1fr;
    }

    .acfc-rnw-mhub-showcase {
      padding: 18px 14px;
    }

    /* Stack to one column, screen (proof) ahead of its copy in both
       directions so the app preview leads and the text follows. */
    .acfc-rnw-mhub-row,
    .acfc-rnw-mhub-row--flip {
      grid-template-columns: 1fr;
      gap: clamp(18px, 4vw, 26px);
    }

    .acfc-rnw-mhub-row > .acfc-rnw-mhub-screen {
      order: -1;
    }

    /* Once stacked, the row padding doubles up between sections, and three
       tall 9:19 devices make the module a long scroll. Trim both. */
    .acfc-rnw-mhub-row {
      padding: clamp(18px, 4vw, 24px) 0;
    }

    .acfc-rnw-mhub-screen {
      max-width: 176px;
    }

    .acfc-rnw-mhub-screen--feature {
      max-width: 196px;
    }

    /* Once stacked to one column, center the "Member Hub" intro copy
       (eyebrow, title + badge, lead, app buttons, note, and web link)
       instead of leaving it left-aligned inside a centered block. */
    .acfc-rnw-mhub-text {
      align-items: center;
      text-align: center;
    }

    .acfc-rnw-mhub-title {
      justify-content: center;
    }

    .acfc-rnw-mhub-lead {
      text-align: center;
    }

    .acfc-rnw-mhub-note {
      text-align: center;
    }

    .acfc-rnw-mhub-actions {
      justify-content: center;
    }

    .acfc-rnw-mhub-web {
      text-align: center;
    }
  }


  @media (prefers-reduced-motion: reduce) {
    .acfc-rnw-mhub-screen-frame {
      transition: none;
    }

    .acfc-rnw-mhub-screen:hover .acfc-rnw-mhub-screen-frame {
      transform: none;
    }
  }

  .acfc-rnw-nextseason-cta {
    margin-top: clamp(28px, 4vw, 40px);
    text-align: center;
  }

  /* Events and We Belong Here share the cream field, so the pair reads as one
     block with a single gap between them rather than stacked section padding. */
  .acfc-rnw-events-section.acfc-rnw-benefits {
    padding-bottom: 0;
  }

  .acfc-rnw-events-section .acfc-rnw-events--lead {
    margin-bottom: 0;
  }

  .acfc-rnw-events-section + .acfc-rnw-benefits {
    padding-top: clamp(40px, 6vw, 64px);
  }
  
  .acfc-rnw-feature-card {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    min-height: clamp(300px, 30vw, 400px);
    display: flex;
    align-items: flex-end;
  }
  
  .acfc-rnw-feature-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: grayscale(1);
    transform: scale(1.02);
    transition: filter 0.5s var(--ease-out), transform 0.6s var(--ease-out);
  }
  
  .acfc-rnw-feature-card:hover .acfc-rnw-feature-bg {
    filter: grayscale(0);
    transform: scale(1.07);
  }
  
  .acfc-rnw-feature-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.25) 55%, transparent 100%);
  }
  
  .acfc-rnw-feature-inner {
    position: relative;
    z-index: 2;
    padding: 28px 24px;
  }
  
  .acfc-rnw-feature-kicker {
    display: inline-block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--sol-rosa);
    margin-bottom: 10px;
  }
  
  .acfc-rnw-feature-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.3rem, 2.7vw, 1.6rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.015em;
    color: var(--line-white);
    margin: 0 0 10px;
    line-height: 1.1;
  }
  
  .acfc-rnw-feature-body {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.78);
    margin: 0;
    line-height: 1.6;
  }
  
  @media (max-width: 900px) {
    .acfc-rnw-feature-grid { grid-template-columns: 1fr; }
    .acfc-rnw-feature-card { min-height: 260px; }
    .acfc-rnw-feature-bg { filter: grayscale(0); }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-feature-inner { padding: 22px 18px; }
    .acfc-rnw-feature-title { font-size: 1.35rem; }
  }
  
  /* ---------- Select-A-Seat walkthrough ---------- */
  
  .acfc-rnw-sas {
    background: var(--rnw-surface-warm);
    padding: clamp(48px, 7vw, 80px) 0;
  }
  
  /* Quick-jump chip nav */
  .acfc-rnw-sas-jump-label {
    text-align: center;
    font-family: 'Inter', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--asphalt);
    margin: 0 0 12px;
  }
  
  .acfc-rnw-sas-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-bottom: clamp(28px, 4vw, 44px);
  }
  
  a.acfc-rnw-sas-chip,
  a.acfc-rnw-sas-chip:visited {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: var(--radius-full);
    border: 1px solid var(--rnw-panel-edge);
    background: var(--rnw-panel);
    color: var(--asphalt);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    transition: var(--transition);
  }
  
  /* The number sits a step larger than the label, so centering the two line
     boxes leaves their baselines about a pixel apart and the label reads as
     floating high. Align on the baseline wherever a number is present. Chips
     without one (Opt-Out) stay centered, since a lone baseline-aligned item
     would sit flush to the top of the stretched chip instead. */
  a.acfc-rnw-sas-chip:has(.acfc-rnw-sas-chip-num) {
    align-items: baseline;
  }

  .acfc-rnw-sas-chip-num {
    font-family: 'Inter', sans-serif;
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--sol-rosa-dark);
  }
  
  .acfc-rnw-sas-chip:hover,
  .acfc-rnw-sas-chip:focus-visible,
  a.acfc-rnw-sas-chip:hover,
  a.acfc-rnw-sas-chip:focus-visible {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
  }
  
  .acfc-rnw-sas-chip:hover .acfc-rnw-sas-chip-num,
  .acfc-rnw-sas-chip:focus-visible .acfc-rnw-sas-chip-num {
    color: var(--pitch-black);
  }
  
  .acfc-rnw-sas-jump-label,
  .acfc-rnw-sas-nav,
  .acfc-rnw-sas-tips,
  .acfc-rnw-sas-actions {
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
  }
  
  .acfc-rnw-sas-list {
    list-style: none;
    margin: 0 auto;
    padding: 0;
    max-width: 1080px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 2.5vw, 28px);
    counter-reset: sas-step;
  }
  
  .acfc-rnw-sas-item {
    display: flex;
    flex-direction: column;
    background: var(--rnw-panel);
    border: 1px solid var(--rnw-panel-edge);
    border-radius: var(--radius-lg);
    padding: clamp(12px, 1.5vw, 16px);
    scroll-margin-top: 90px;
    height: 100%;
  }
  
  /* These previews hold UI screenshots, which run wider than 16/9 and vary a
     little from step to step. Cropping them to a fixed frame cuts off the
     part of the screen the step is describing, so the frame takes its ratio
     from the tallest image in the step (--sas-media-ratio, set per step) and
     images are contained rather than cropped. */
  .acfc-rnw-sas-item-media {
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
    aspect-ratio: var(--sas-media-ratio, 21 / 10);
    background: var(--rnw-panel);
    box-shadow: var(--shadow-card);
  }

  .acfc-rnw-sas-item-media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }
  
  .acfc-rnw-sas-item-media {
    cursor: zoom-in;
  }
  
  .acfc-rnw-sas-expand-hint {
    position: absolute;
    right: 10px;
    bottom: 10px;
    z-index: 3;
    padding: 5px 10px;
    border-radius: var(--radius-full);
    background: var(--pitch-black);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    pointer-events: none;
  }
  
  /* Per-step image carousel */
  .acfc-rnw-sas-carousel {
    position: relative;
    width: 100%;
    height: 100%;
  }
  
  .acfc-rnw-sas-carousel-viewport {
    overflow: hidden;
    width: 100%;
    height: 100%;
    border-radius: inherit;
  }
  
  .acfc-rnw-sas-carousel-track {
    display: flex;
    height: 100%;
    transition: transform 0.3s ease;
  }
  
  .acfc-rnw-sas-carousel-slide {
    flex: 0 0 100%;
    margin: 0;
    height: 100%;
  }
  
  .acfc-rnw-sas-carousel-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }
  
  .acfc-rnw-sas-carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
    width: 34px;
    height: 34px;
    border: none;
    border-radius: 50%;
    background: var(--sol-rosa);
    color: var(--pitch-black);
    display: grid;
    place-items: center;
    cursor: pointer;
    box-shadow: var(--shadow-sm);
    transition: var(--transition);
  }
  
  .acfc-rnw-sas-carousel-btn:hover,
  .acfc-rnw-sas-carousel-btn:focus-visible {
    background: var(--sol-rosa-dark);
    color: var(--pitch-black);
  }
  
  .acfc-rnw-sas-carousel-prev { left: 8px; }
  .acfc-rnw-sas-carousel-next { right: 8px; }

  /* Keyed to pointer type rather than width: a 768px tablet is still a finger.
     34px is under the 44px minimum tap target, so extend an invisible hit area
     past the arrow rather than growing the arrow itself - same trick as the
     dots below - which keeps it the same size as desktop. */
  @media (pointer: coarse) {
    .acfc-rnw-sas-carousel-btn::after {
      content: '';
      position: absolute;
      inset: -5px;
      border-radius: 50%;
    }
  }
  
  .acfc-rnw-sas-carousel-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 8px;
    z-index: 4;
    display: flex;
    justify-content: center;
    gap: 12px;
    padding: 0 8px;
  }
  
  .acfc-rnw-sas-carousel-dots.is-hidden {
    display: none;
  }
  
  .acfc-rnw-sas-carousel-dots button {
    position: relative;
    width: 8px;
    height: 8px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.45);
    cursor: pointer;
    transition: var(--transition);
  }

  /* An 8px dot is far too small to tap, so extend an invisible hit area past
     the indicator rather than enlarging the dot itself. */
  .acfc-rnw-sas-carousel-dots button::after {
    content: '';
    position: absolute;
    inset: -14px -9px;
  }

  .acfc-rnw-sas-carousel-dots button.is-active,
  .acfc-rnw-sas-carousel-dots button[aria-selected="true"] {
    background: var(--sol-rosa);
    transform: scale(1.15);
  }
  
  .acfc-rnw-sas-panel-list {
    margin: 0;
    padding: 0 0 0 1.1rem;
    font-size: 0.82rem;
    color: var(--armour);
    line-height: 1.55;
  }
  
  .acfc-rnw-sas-panel-list li + li {
    margin-top: 8px;
  }
  
  .acfc-rnw-sas-panel-list ul {
    margin: 8px 0 0;
    padding-left: 1.1rem;
    list-style: circle;
  }
  
  .acfc-rnw-sas-panel-list a {
    color: var(--sol-rosa-dark);
    font-weight: 600;
  }
  
  /* Expanded walkthrough modal */
  .acfc-rnw-sas-modal {
    position: fixed;
    inset: 0;
    z-index: 100050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom));
    overflow: hidden;
    overscroll-behavior: none;
  }
  
  .acfc-rnw-sas-modal[hidden] {
    display: none !important;
  }
  
  .acfc-rnw-sas-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }

  /* The dark theme's page background (#111) is already near-black, so a
     plain black scrim on top of it reads as fully solid with no visible
     translucency. Lighten + brighten the blur instead of just darkening,
     so content behind the modal is still perceptibly showing through. */
  [data-theme="dark"] .acfc-rnw-sas-modal-overlay {
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(6px) brightness(1.6);
    -webkit-backdrop-filter: blur(6px) brightness(1.6);
  }
  
  .acfc-rnw-sas-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(1100px, 100%);
    max-width: 950px;
    max-height: min(94vh, 920px);
    display: flex;
    flex-direction: column;
    background: var(--rnw-panel);
    border-radius: var(--radius-lg);
    border: 1px solid var(--rnw-panel-edge);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    overscroll-behavior: contain;
  }
  
  .acfc-rnw-sas-modal-close {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 5;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: rgba(28, 28, 28, 0.08);
    color: var(--asphalt);
    cursor: pointer;
    display: grid;
    place-items: center;
  }
  
  .acfc-rnw-sas-modal-close:hover,
  .acfc-rnw-sas-modal-close:focus-visible {
    background: var(--sol-rosa);
    color: var(--pitch-black);
  }
  
  .acfc-rnw-sas-modal-steps-wrap {
    flex-shrink: 0;
    padding: 14px 52px 0 16px;
    border-bottom: 1px solid var(--rnw-panel-edge);
    background: var(--rnw-surface-warm);
  }
  
  .acfc-rnw-sas-modal-steps {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 12px;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-x;
  }
  
  .acfc-rnw-sas-modal-step-tab {
    flex: 0 0 auto;
    border: 1px solid var(--rnw-panel-edge);
    border-radius: var(--radius-full);
    background: var(--rnw-panel);
    color: var(--asphalt);
    line-height: 1.4;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 8px 14px;
    cursor: pointer;
    white-space: nowrap;
    transition: var(--transition);
  }
  
  .acfc-rnw-sas-modal-step-tab.is-active {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
  }
  
  .acfc-rnw-sas-modal-main {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1;
    overflow: hidden;
  }
  
  .acfc-rnw-sas-modal-media {
    flex: 0 0 auto;
    min-height: 0;
    padding: 12px 16px 8px;
    overflow: hidden;
  }
  
  /* A fixed-height frame is near square on a phone, which leaves a wide
     screenshot floating in a thick letterbox. Take the height from the step's
     own image ratio instead and only fall back to capping it when that would
     push the frame past its share of the dialog. */
  .acfc-rnw-sas-modal-carousel {
    position: relative;
    display: flex;
    flex-direction: column;
    max-height: min(46vh, 440px);
    border-radius: var(--radius-md);
    overflow: hidden;
    background: #111;
    box-shadow: var(--shadow-card);
    isolation: isolate;
  }

  .acfc-rnw-sas-modal-carousel .acfc-rnw-sas-carousel-viewport {
    position: relative;
    flex: 0 1 auto;
    min-height: 0;
    aspect-ratio: var(--sas-media-ratio, 21 / 10);
    height: auto;
    overflow: hidden;
  }
  
  .acfc-rnw-sas-modal-carousel .acfc-rnw-sas-carousel-track {
    height: 100%;
  }
  
  .acfc-rnw-sas-modal-carousel .acfc-rnw-sas-carousel-slide {
    height: 100%;
    min-height: 0;
  }
  
  .acfc-rnw-sas-modal-carousel .acfc-rnw-sas-carousel-slide img {
    width: 100%;
    height: 100%;
    max-height: 100%;
    object-fit: contain;
    background: #111;
  }
  
  /* Zoom turns the slide into the scroll port and lets the image overflow it,
     so panning is native scrolling - momentum on iOS, wheel and trackpad on
     desktop - instead of hand-rolled drag maths. */
  .acfc-rnw-sas-modal-carousel.is-zoomed .acfc-rnw-sas-carousel-slide {
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-x pan-y;
    cursor: grab;
  }

  .acfc-rnw-sas-modal-carousel.is-zoomed .acfc-rnw-sas-carousel-slide img {
    width: 260%;
    height: auto;
    /* The global `img { max-width: 100% }` would clamp the width straight back
       to the slide and cancel the zoom. */
    max-width: none;
    max-height: none;
    object-fit: fill;
  }

  /* The arrows sit on top of the pan area and would swallow drags, and the
     track transform makes neighbouring slides meaningless while zoomed. */
  .acfc-rnw-sas-modal-carousel.is-zoomed .acfc-rnw-sas-carousel-btn {
    display: none !important;
  }

  /* Anchored inside the viewport rather than the carousel so it sits on the
     image's bottom corner instead of floating over the dots bar, and stays put
     on single-image steps where that bar is hidden. */
  .acfc-rnw-sas-zoom-btn {
    position: absolute;
    left: 10px;
    bottom: 10px;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border: none;
    border-radius: var(--radius-full);
    background: rgba(0, 0, 0, 0.62);
    color: #fff;
    font-family: 'Inter', sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    transition: var(--transition);
  }

  .acfc-rnw-sas-zoom-btn:hover,
  .acfc-rnw-sas-zoom-btn:focus-visible {
    background: var(--sol-rosa);
    color: var(--pitch-black);
  }

  .acfc-rnw-sas-zoom-btn svg {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
  }

  /* The frame is far shorter on a phone, so the pill is trimmed down there to
     keep it off the screenshot. Desktop has the room and keeps the full size. */
  @media (pointer: coarse) {
    .acfc-rnw-sas-zoom-btn {
      gap: 5px;
      padding: 6px 11px;
      font-size: 0.6rem;
      letter-spacing: 0.05em;
    }

    .acfc-rnw-sas-zoom-btn svg {
      width: 11px;
      height: 11px;
    }

    /* Too small to be a comfortable target at that size, so extend the hit area
       past the pill the same way the arrows and dots do. */
    .acfc-rnw-sas-zoom-btn::after {
      content: '';
      position: absolute;
      inset: -10px -8px;
    }
  }

  /* Static rather than overlaid, so the dots get their own bar under the image.
     The arrows sit inside the viewport so this bar doesn't pull them off the
     image's centre line. */
  .acfc-rnw-sas-modal-carousel .acfc-rnw-sas-carousel-dots {
    position: static;
    flex: 0 0 auto;
    padding: 8px 8px 10px;
    margin: 0;
    background: #0a0a0a;
  }
  
  .acfc-rnw-sas-modal-footer {
    flex: 1 1 auto;
    min-height: 0;
    position: relative;
    z-index: 2;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 14px 18px 18px;
    border-top: 1px solid var(--rnw-panel-edge);
    background: var(--rnw-panel);
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
  }
  
  .acfc-rnw-sas-modal-step-label {
    margin: 0 0 6px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--sol-rosa-dark);
  }
  
  .acfc-rnw-sas-modal-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1rem, 2.2vw, 1.3rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--asphalt);
    margin: 0 0 10px;
    line-height: 1.2;
  }
  
  .acfc-rnw-sas-modal-text .acfc-rnw-sas-panel-list {
    font-size: 0.88rem;
  }
  
  .acfc-rnw-sas-modal-step-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
  }

  .acfc-rnw-sas-modal-step-nav[hidden] {
    display: none;
  }
  
  .acfc-rnw-sas-modal-step-btn {
    flex: 1 1 auto;
    min-width: 140px;
    padding: 10px 16px;
    border-radius: var(--radius-full);
    border: 1px solid var(--rnw-panel-edge);
    background: var(--rnw-panel);
    color: var(--asphalt);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    transition: var(--transition);
  }
  
  .acfc-rnw-sas-modal-step-btn:hover,
  .acfc-rnw-sas-modal-step-btn:focus-visible {
    border-color: var(--sol-rosa);
    color: var(--sol-rosa-dark);
  }
  
  .acfc-rnw-sas-modal-step-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
  }
  
  .acfc-rnw-sas-modal-step-btn-primary {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
  }
  
  .acfc-rnw-sas-modal-step-btn-primary:hover,
  .acfc-rnw-sas-modal-step-btn-primary:focus-visible {
    background: var(--sol-rosa-dark);
    border-color: var(--sol-rosa-dark);
    color: #fff;
  }
  
  /* Prominent step numeral, USC-style */
  .acfc-rnw-sas-item-num {
    position: absolute;
    top: 10px;
    left: 14px;
    z-index: 2;
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.7rem, 2.8vw, 2.4rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: #fff;
    text-shadow: 0 2px 18px rgba(0, 0, 0, 0.55);
  }
  
  .acfc-rnw-sas-item-content {
    padding: 14px 4px 4px;
    flex: 1;
  }
  
  .acfc-rnw-sas-panel-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(0.95rem, 1.6vw, 1.15rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--asphalt);
    margin: 0 0 8px;
    line-height: 1.2;
  }
  
  .acfc-rnw-sas-panel-desc {
    font-size: 0.85rem;
    color: var(--armour);
    margin: 0;
    padding-bottom: 0;
    line-height: 1.55;
  }
  
  .acfc-rnw-sas-tips {
    margin-top: clamp(28px, 4vw, 44px);
    padding-top: 28px;
    border-top: 1px solid var(--rnw-panel-edge);
    text-align: center;
  }
  
  .acfc-rnw-sas-tips-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1rem, 2vw, 1.15rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.005em;
    color: var(--sol-rosa-dark);
    margin: 0 0 16px;
  }
  
  .acfc-rnw-sas-tips-list {
    margin: 0 auto;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px 28px;
    max-width: 900px;
  }
  
  .acfc-rnw-sas-tips-list li {
    display: inline-flex;
    align-items: flex-start;
    gap: 10px;
    font-size: clamp(0.92rem, 1.6vw, 1rem);
    color: var(--asphalt);
    line-height: 1.55;
    text-align: left;
  }
  
  .acfc-rnw-sas-tips-list li::before {
    content: '';
    position: static;
    flex-shrink: 0;
    margin-top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--sol-rosa) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 9px no-repeat;
  }
  
  .acfc-rnw-sas-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-top: 36px;
  }
  
  @media (max-width: 900px) {
    .acfc-rnw-sas-list {
      grid-template-columns: 1fr;
      max-width: 560px;
    }
  }
  
  @media (max-width: 640px) {
    .acfc-rnw-sas-item { scroll-margin-top: 110px; }
    .acfc-rnw-sas-nav { gap: 6px; }
    .acfc-rnw-sas-chip { padding: 7px 12px; font-size: 0.72rem; }
    .acfc-rnw-sas-panel-title { font-size: clamp(1.05rem, 4vw, 1.2rem); }
    .acfc-rnw-sas-panel-desc { font-size: 0.92rem; }
    .acfc-rnw-sas-panel-list { font-size: 0.88rem; }
    .acfc-rnw-sas-modal-dialog { max-height: 96vh; border-radius: var(--radius-md); }
    .acfc-rnw-sas-modal-carousel { max-height: min(38vh, 320px); }
    .acfc-rnw-sas-modal-step-nav { flex-direction: column; }

    /* At this width, longer tips wrap to 2 lines and nearly fill the row
       while shorter tips end up alone on their own row, centered as their
       own narrower block - so each checkmark lands at a different x
       position instead of forming a column. Fix the list to one shared
       width, centered as a whole, so every row (and its checkmark) starts
       at the same left edge inside that block. */
    .acfc-rnw-sas-tips-list {
      flex-direction: column;
      align-items: stretch;
      gap: 12px;
      width: 100%;
      max-width: 300px;
      margin-inline: auto;
    }

    .acfc-rnw-sas-tips-list li {
      max-width: none;
      width: 100%;
    }
  }
  
  /* ---------- Testimonials ---------- */
  
  .acfc-rnw-quotes {
    background: var(--rnw-cream);
    padding: clamp(48px, 7vw, 80px) 0;
  }
  
  .acfc-rnw-quotes .acfc-rnw-section-title { color: var(--asphalt); }
  
  .acfc-rnw-quotes-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(14px, 2vw, 22px);
    align-items: stretch;
  }
  
  .acfc-rnw-quote-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 40px 28px 26px;
    background: rgba(255, 255, 255, 0.72);
    border-color: rgba(255, 255, 255, 0.9);
    box-shadow: var(--shadow-e2);
    transition:
      opacity 0.65s var(--ease-out),
      transform 0.65s var(--ease-out),
      var(--lift-transition);
  }

  .acfc-rnw-quote-card:hover,
  .acfc-rnw-quote-card:focus-within {
    translate: var(--lift-hover);
    box-shadow: var(--shadow-card-hover);
    border-color: rgba(241, 177, 165, 0.6);
  }
  
  .acfc-rnw-quote-mark {
    position: absolute;
    top: 10px;
    left: 22px;
    font-family: var(--font-serif);
    font-size: 4.5rem;
    line-height: 1;
    color: var(--sol-rosa);
    opacity: 0.85;
    pointer-events: none;
  }
  
  .acfc-rnw-quote-text {
    position: relative;
    flex: 1 1 auto;
    margin: 12px 0 22px;
    font-family: var(--font-serif);
    font-size: clamp(0.95rem, 1.6vw, 1.02rem);
    font-style: italic;
    line-height: 1.6;
    color: rgba(28, 28, 28, 0.88);
  }
  
  .acfc-rnw-quote-author {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: auto;
    border-top: 1px solid rgba(28, 28, 28, 0.1);
    padding-top: 16px;
  }
  
  @media (prefers-reduced-motion: reduce) {
    .acfc-rnw-quote-card:hover,
    .acfc-rnw-quote-card:focus-within {
      translate: none;
    }
  }
  
  .acfc-rnw-quote-name {
    font-family: 'Inter', sans-serif;
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.01em;
    color: var(--asphalt);
  }
  
  .acfc-rnw-quote-tier {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sol-rosa-dark);
  }
  
  @media (max-width: 900px) {
    .acfc-rnw-quotes-grid { grid-template-columns: 1fr; max-width: 560px; margin: 0 auto; }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-quote-card { padding: 28px 20px 22px; }
    .acfc-rnw-quote-text { font-size: 0.9rem; }
  }
  
  /* ---------- FAQ ---------- */
  
  .acfc-rnw-faq {
    background: var(--rnw-paper);
    padding: clamp(48px, 7vw, 80px) 0;
  }
  
  .acfc-rnw-faq-body {
    max-width: 850px;
    margin: 0 auto;
  }
  
  .acfc-rnw-faq-tabs-wrap {
    display: flex;
    justify-content: center;
    margin-bottom: clamp(20px, 3vw, 28px);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  
  .acfc-rnw-faq-tabs-wrap::-webkit-scrollbar {
    display: none;
  }
  
  .acfc-rnw-faq-tabs {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    padding: 5px;
    border-radius: var(--radius-full);
    border: 1px solid var(--rnw-paper-edge);
    background: var(--rnw-panel);
    box-shadow: var(--shadow-sm);
  }
  
  .acfc-rnw-faq-tab {
    font-family: 'Inter', sans-serif;
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 10px 16px;
    border-radius: var(--radius-full);
    border: 1px solid transparent;
    background: transparent;
    color: var(--armour);
    cursor: pointer;
    transition: var(--transition);
    white-space: nowrap;
  }
  
  .acfc-rnw-faq-tab:hover {
    color: var(--asphalt);
    background: var(--sol-rosa-soft);
  }
  
  .acfc-rnw-faq-tab.is-active {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
    box-shadow: 0 2px 10px rgba(241, 177, 165, 0.45);
  }
  
  .acfc-rnw-faq-panels {
    position: relative;
    overflow-anchor: none;
  }
  
  .acfc-rnw-faq-panel {
    display: none;
    flex-direction: column;
    gap: 10px;
    margin: 0;
  }
  
  .acfc-rnw-faq-panel.is-active {
    display: flex;
  }
  
  .acfc-rnw-faq-item {
    border: 1px solid var(--rnw-panel-edge);
    border-radius: var(--radius-md);
    background: var(--rnw-panel);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: border-color 0.25s var(--ease-out), box-shadow 0.25s var(--ease-out), background 0.25s var(--ease-out);
  }
  
  .acfc-rnw-faq-item[id] {
    scroll-margin-top: var(--rnw-faq-scroll-offset);
  }
  
  .acfc-rnw-faq-item[open] {
    border-color: rgba(241, 177, 165, 0.55);
    box-shadow: var(--shadow-card);
    background: linear-gradient(160deg, var(--rnw-panel) 0%, rgba(241, 177, 165, 0.08) 100%);
  }
  
  .acfc-rnw-faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 16px 18px;
    font-weight: 600;
    font-size: 0.95rem;
    line-height: 1.4;
    color: var(--asphalt);
    cursor: pointer;
    list-style: none;
    transition: color 0.2s var(--ease-out);
  }
  
  .acfc-rnw-faq-question:hover {
    color: var(--pitch-black);
  }
  
  .acfc-rnw-faq-question span {
    flex: 1;
    min-width: 0;
  }
  
  .acfc-rnw-faq-question::-webkit-details-marker { display: none; }
  
  .acfc-rnw-faq-chevron {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    padding: 7px;
    border-radius: 50%;
    color: var(--sol-rosa-dark);
    background: var(--sol-rosa-soft);
    border: 1px solid rgba(241, 177, 165, 0.35);
    transition: transform 0.3s var(--ease-out), background 0.2s var(--ease-out), color 0.2s var(--ease-out);
  }
  
  .acfc-rnw-faq-item[open] .acfc-rnw-faq-chevron {
    transform: rotate(180deg);
    background: var(--sol-rosa);
    color: var(--pitch-black);
    border-color: var(--sol-rosa);
  }
  
  .acfc-rnw-faq-answer {
    padding: 0 18px 18px;
    font-size: 0.9rem;
    color: var(--armour);
    line-height: 1.7;
  }
  
  .acfc-rnw-faq-answer p { margin: 0 0 10px; }
  .acfc-rnw-faq-answer p:last-child { margin-bottom: 0; }
  .acfc-rnw-faq-answer ul {
    margin: 8px 0 0;
    padding-left: 1.25rem;
  }
  .acfc-rnw-faq-answer li { margin-bottom: 6px; }
  .acfc-rnw-faq-answer li:last-child { margin-bottom: 0; }
  .acfc-rnw-faq-answer a {
    color: var(--sol-rosa-dark);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  
  .acfc-rnw-faq-answer a:hover {
    color: var(--asphalt);
  }
  
  .acfc-rnw-faq-help {
    margin: clamp(24px, 4vw, 32px) 0 0;
    padding-top: 20px;
    border-top: 1px solid var(--rnw-paper-edge);
    text-align: center;
    font-size: 0.9rem;
    color: var(--armour);
  }
  
  .acfc-rnw-faq-help a {
    color: var(--asphalt);
    font-weight: 600;
    text-decoration: none;
  }
  
  .acfc-rnw-faq-help a:hover {
    color: var(--sol-rosa-dark);
    text-decoration: underline;
  }
  
  .acfc-rnw-faq-help span {
    margin: 0 0.35em;
    color: var(--rnw-panel-edge);
  }
  
  /* Legacy contact cards (currently commented out in HTML) */
  .acfc-rnw-faq-contact {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    max-width: 875px;
    margin: 0 auto 36px;
  }
  
  .acfc-rnw-faq-contact-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border-radius: var(--radius-md);
    background: var(--rnw-panel);
    border: 1px solid var(--rnw-panel-edge);
    color: var(--asphalt);
    text-decoration: none;
    font-size: 0.9rem;
    font-weight: 600;
    transition: var(--transition);
    box-shadow: var(--shadow-sm);
  }
  
  .acfc-rnw-faq-contact-item svg {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    color: var(--sol-rosa);
  }
  
  .acfc-rnw-faq-contact-item span {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
    min-width: 0;
    word-break: break-word;
  }
  
  a.acfc-rnw-faq-contact-item:hover,
  a.acfc-rnw-faq-contact-item:focus-visible {
    border-color: var(--sol-rosa);
    background: var(--sol-rosa-soft);
    color: var(--asphalt);
    box-shadow: var(--shadow-card);
  }
  
  a.acfc-rnw-faq-contact-item:hover svg,
  a.acfc-rnw-faq-contact-item:focus-visible svg {
    color: var(--sol-rosa-dark);
  }
  
  .acfc-rnw-faq-contact-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--armour);
  }
  
  @media (max-width: 720px) {
    .acfc-rnw-faq .acfc-rnw-section-head {
      padding-inline: 4px;
    }
  
    .acfc-rnw-faq-tabs-wrap {
      justify-content: flex-start;
      /* Room to scroll the last tab fully clear of the viewport edge
         rather than stopping flush against it. */
      padding-right: 16px;
      /* The tabs pill is now wider than the viewport (see .acfc-rnw-faq-tabs
         below), so its own rounded right edge sits off-screen and the
         visible edge is just a hard clip. Round this wrapper's own right
         corners so the scrollable edge always reads as a soft curve,
         regardless of scroll position. */
      border-top-right-radius: var(--radius-full);
      border-bottom-right-radius: var(--radius-full);
    }
  
    .acfc-rnw-faq-tabs {
      flex-wrap: nowrap;
      justify-content: flex-start;
      /* The base rule caps this at 100% of the (fixed-width) viewport, so
         the pill background never grows past that even though the tabs
         inside keep their natural width - the last tab pokes out past the
         pill's rounded edge instead of the wrap's horizontal scroll being
         able to reach it. Let it size to its full content instead. */
      width: max-content;
      max-width: none;
    }

    .acfc-rnw-faq-tab {
      flex-shrink: 0;
    }
  
    .acfc-rnw-faq-contact {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
    }
  
    .acfc-rnw-faq-contact-item {
      width: 100%;
      max-width: 360px;
    }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-faq-tab {
      font-size: 0.7rem;
      min-height: 44px;
      padding: 12px 14px;
    }
  
    .acfc-rnw-faq-question {
      font-size: 0.9rem;
      min-height: 44px;
      padding: 14px 16px;
    }
  
    .acfc-rnw-faq-answer {
      padding: 0 16px 16px;
      font-size: 0.875rem;
    }
  
    .acfc-rnw-faq-chevron {
      width: 28px;
      height: 28px;
      padding: 6px;
    }
  }
  
  /* ---------- CTA band ---------- */
  
  .acfc-rnw-cta-band {
    position: relative;
    padding: clamp(20px, 4vw, 88px) 0;
    text-align: center;
    color: var(--line-white);
    border-bottom: 1px solid var(--sol-rosa);
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)),
      url('https://angelcityfc-pm.web.app/assets/images/tickets-landing/tickets-faq.jpg');
    background-size: cover;
    background-position: center;
    background-attachment: scroll;
  }
  
  .acfc-rnw-cta-band::before {
    content: '';
    position: absolute;
    top: 0;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%);
  }
  
  .acfc-rnw-cta-band .acfc-rnw-eyebrow { color: var(--sol-rosa); }
  
  .acfc-rnw-cta-band-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.6rem, 3.9vw, 2.6rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    color: var(--line-white);
    margin: 0 0 12px;
    line-height: 1.1;
  }
  
  /* Same crescendo as the hero title: the accent line steps up in size,
     weight, and tracking rather than only changing color. */
  .acfc-rnw-cta-band-title em {
    display: block;
    font-style: normal;
    color: var(--sol-rosa);
    font-size: 1.12em;
    font-weight: 900;
    letter-spacing: -0.03em;
    margin-top: 0.1em;
  }
  
  .acfc-rnw-cta-band-lead {
    font-size: clamp(0.95rem, 1.8vw, 1.05rem);
    color: rgba(255, 255, 255, 0.9);
    max-width: 520px;
    margin: 0 auto 24px;
  }
  
  .acfc-rnw-cta-band-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-bottom: 16px;
  }
  
  .acfc-rnw-cta-band .angelcity2026-btn-primary {
    background: var(--sol-rosa);
    color: var(--pitch-black);
    border-color: var(--sol-rosa);
  }
  
  .acfc-rnw-cta-band a.angelcity2026-btn.angelcity2026-btn-primary,
  .acfc-rnw-cta-band a.angelcity2026-btn.angelcity2026-btn-primary:hover,
  .acfc-rnw-cta-band a.angelcity2026-btn.angelcity2026-btn-primary:focus-visible {
    color: var(--pitch-black);
  }
  
  .acfc-rnw-cta-band .angelcity2026-btn-primary:hover {
    background: var(--sol-rosa-dark);
    border-color: var(--sol-rosa-dark);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
  }
  
  .acfc-rnw-cta-band .angelcity2026-btn-outline-dark {
    color: var(--line-white);
    border-color: rgba(255, 255, 255, 0.45);
  }
  
  .acfc-rnw-cta-band a.angelcity2026-btn.angelcity2026-btn-outline-dark,
  .acfc-rnw-cta-band a.angelcity2026-btn.angelcity2026-btn-outline-dark:hover,
  .acfc-rnw-cta-band a.angelcity2026-btn.angelcity2026-btn-outline-dark:focus-visible {
    color: var(--line-white);
  }
  
  .acfc-rnw-cta-band .angelcity2026-btn-outline-dark:hover {
    border-color: var(--line-white);
    background: rgba(255, 255, 255, 0.08);
  }
  
  .acfc-rnw-cta-contact-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: 12px;
    margin-top: clamp(36px, 5vw, 52px);
  }
  
  .acfc-rnw-cta-band a.acfc-rnw-cta-contact-item,
  .acfc-rnw-cta-band a.acfc-rnw-cta-contact-item:visited {
    display: block;
    width: fit-content;
    max-width: 100%;
    padding: 18px 20px;
    border-radius: var(--radius-md);
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.06);
    color: var(--line-white);
    text-decoration: none;
    transition: var(--transition);
  }
  
  .acfc-rnw-cta-contact-item-inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    width: auto;
  }
  
  .acfc-rnw-cta-contact-item-icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 24px;
    color: var(--sol-rosa);
  }
  
  .acfc-rnw-cta-contact-item-icon svg {
    width: 22px;
    height: 22px;
  }
  
  .acfc-rnw-cta-contact-item-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
    text-align: left;
  }
  
  .acfc-rnw-cta-contact-item-label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.75);
    white-space: nowrap;
  }
  
  .acfc-rnw-cta-contact-item-value {
    font-size: 0.84rem;
    font-weight: 600;
    line-height: 1.3;
    color: inherit;
    white-space: nowrap;
  }
  
  .acfc-rnw-cta-band a.acfc-rnw-cta-contact-item:hover,
  .acfc-rnw-cta-band a.acfc-rnw-cta-contact-item:focus-visible {
    border-color: var(--sol-rosa);
    background: rgba(241, 177, 165, 0.12);
    color: var(--line-white);
  }
  
  .acfc-rnw-cta-band a.acfc-rnw-cta-contact-item:hover .acfc-rnw-cta-contact-item-label,
  .acfc-rnw-cta-band a.acfc-rnw-cta-contact-item:focus-visible .acfc-rnw-cta-contact-item-label {
    color: rgba(255, 255, 255, 0.75);
  }
  
  @media (max-width: 768px) {
    .acfc-rnw-cta-contact-item-value {
      white-space: normal;
      word-break: break-word;
    }
  }
  
  /* ---------- Floating CTA ---------- */
  
  .acfc-rnw-notify {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 10000100;
    padding: 14px 16px;
    padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, transparent 100%);
    pointer-events: none;
    display: flex;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transform: translateY(100%);
    transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out), visibility 0.4s;
  }
  
  .acfc-rnw-notify.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  
  body.acfc-rnw-sas-modal-open .acfc-rnw-notify.is-visible {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(100%);
  }
  
  html.acfc-rnw-sas-modal-open,
  body.acfc-rnw-sas-modal-open {
    overflow: hidden !important;
  }
  
  body.acfc-rnw-sas-modal-open {
    position: fixed;
    width: 100%;
    left: 0;
    right: 0;
  }
  
  .acfc-rnw-notify-btn {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    pointer-events: all;
    min-height: 48px;
    padding: 12px 44px;
    border-radius: var(--radius-full);
    background: var(--sol-rosa);
    color: var(--pitch-black);
    border: none;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
    box-shadow: 0 4px 24px rgba(241, 177, 165, 0.45), 0 8px 32px rgba(0, 0, 0, 0.35);
    transition: var(--transition);
  }
  
  .acfc-rnw-notify-btn:hover {
    background: var(--sol-rosa-dark);
    transform: translateY(-3px);
  }
  
  /* line-height 1 rather than the inherited body 1.65: the label is a single
     line, so the extra leading only skews where it sits inside the pill. */
  .acfc-rnw-notify-main {
    font-family: 'Inter', sans-serif;
    font-size: 0.9375rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    line-height: 1;
  }

  .acfc-rnw-notify-sub {
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(0, 0, 0, 0.62);
    line-height: 1;
  }
  
  /* ---------- Key messaging pillars (light "sun") ---------- */
  
  .acfc-rnw-pillars {
    background: var(--rnw-cream);
    padding: clamp(56px, 8vw, 96px) 0;
  }
  
  .acfc-rnw-pillars .acfc-rnw-section-title { color: var(--asphalt); }
  
  /* Eyebrows over dreamy photo backdrops need dark, high-contrast text instead of pale pink */
  .acfc-rnw-signature .acfc-rnw-eyebrow {
    color: var(--asphalt);
    text-shadow: 0 1px 12px rgba(255, 255, 255, 0.6);
  }
  
  [data-theme="dark"] .acfc-rnw-signature .acfc-rnw-eyebrow {
    color: var(--sol-rosa);
    text-shadow: 0 1px 12px rgba(0, 0, 0, 0.5);
  }
  
  .acfc-rnw-pillars-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
  
  .acfc-rnw-pillar {
    position: relative;
    padding: 34px 28px 30px;
    overflow: hidden;
    transition: transform 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out);
  }
  
  .acfc-rnw-pillar--feature {
    box-shadow: 0 18px 50px rgba(28, 20, 16, 0.14);
  }
  
  .acfc-rnw-pillar-title {
    font-family: 'Inter', sans-serif;
    font-size: clamp(1.2rem, 2.4vw, 1.5rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.015em;
    color: var(--asphalt);
    margin: 0 0 6px;
    line-height: 1.05;
  }
  
  .acfc-rnw-pillar-kicker {
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--sol-rosa-dark);
    margin: 0 0 10px;
  }
  
  .acfc-rnw-pillar-desc {
    font-size: 0.92rem;
    line-height: 1.6;
    color: rgba(28, 28, 28, 0.82);
    margin: 0;
  }
  
  .acfc-rnw-pillar-desc strong { color: var(--asphalt); }
  
  @media (max-width: 900px) {
    .acfc-rnw-pillars-grid { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-pillar { padding: 24px 20px; }
  }
  
  /* ---------- Look back: nostalgia polaroids (light/cream) ---------- */
  
  .acfc-rnw-lookback {
    background:
      linear-gradient(rgba(247, 241, 232, 0.92), rgba(247, 241, 232, 0.92)),
      var(--rnw-cream);
    padding: clamp(48px, 7vw, 80px) 0;
    overflow-x: clip;
  }
  
  .acfc-rnw-lookback .acfc-rnw-section-title { color: var(--asphalt); }
  .acfc-rnw-lookback .acfc-rnw-eyebrow { color: var(--sol-rosa-dark); }
  .acfc-rnw-lookback .acfc-rnw-section-lead { color: rgba(28, 28, 28, 0.72); }
  
  .acfc-rnw-lookback-clip {
    display: inline-block;
    font-family: var(--font-serif);
    font-weight: 700;
    font-style: italic;
    font-size: clamp(0.82rem, 1.8vw, 1rem);
    letter-spacing: 0.01em;
    color: var(--asphalt);
    background: var(--line-white);
    border: 1px solid var(--rnw-paper-edge);
    padding: 8px 16px;
    margin: 0 auto 18px;
    transform: rotate(-1.5deg);
    box-shadow: 2px 3px 0 rgba(0, 0, 0, 0.08);
    filter: grayscale(1) contrast(1.15);
  }
  
  .acfc-rnw-polaroids {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 14px;
    align-items: start;
  }
  
  .acfc-rnw-polaroid {
    margin: 0;
    background: var(--line-white);
    padding: 12px 12px 0;
    border: 1px solid var(--rnw-paper-edge);
    border-radius: 3px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.14);
    transition: transform 0.35s var(--ease-out), box-shadow 0.35s var(--ease-out);
  }
  
  .acfc-rnw-polaroid:nth-child(odd) { transform: rotate(-2.2deg); }
  .acfc-rnw-polaroid:nth-child(even) { transform: rotate(1.8deg); }
  .acfc-rnw-polaroid:nth-child(3) { transform: rotate(-0.5deg); }
  
  .acfc-rnw-polaroid:hover {
    transform: rotate(0deg) translateY(-6px);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.22);
    z-index: 2;
  }
  
  .acfc-rnw-polaroid-photo {
    position: relative;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--rnw-card-dark);
  }
  
  .acfc-rnw-polaroid-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(0.35) sepia(0.15);
    transition: filter 0.4s var(--ease-out);
  }
  
  .acfc-rnw-polaroid:hover .acfc-rnw-polaroid-photo img {
    filter: grayscale(0) sepia(0);
  }
  
  .acfc-rnw-polaroid-cap {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 52px;
    box-sizing: border-box;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 0;
    line-height: 1;
    color: var(--asphalt);
    padding: 0;
    margin: 0;
    text-align: center;
  }
  
  .acfc-rnw-polaroid-year {
    display: block;
    font-family: 'Inter', sans-serif;
    font-style: normal;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1;
    color: var(--sol-rosa-dark);
    margin: 0;
    padding-left: 0.05em;
  }
  
  .acfc-rnw-polaroid-cap-text {
    display: none;
  }
  
  .acfc-rnw-lookback-note {
    text-align: center;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--asphalt);
    margin: 32px 0 0;
  }
  
  @media (max-width: 900px) {
    .acfc-rnw-polaroids {
      display: grid;
      grid-template-columns: 1fr;
      gap: 20px;
      max-width: min(100%, 300px);
      margin-inline: auto;
      padding: 0;
      overflow: visible;
    }
  
    .acfc-rnw-polaroid {
      width: 100%;
      max-width: 100%;
      min-width: 0;
    }
  
    .acfc-rnw-polaroid:nth-child(odd) { transform: rotate(-1.2deg); }
    .acfc-rnw-polaroid:nth-child(even) { transform: rotate(1deg); }
    .acfc-rnw-polaroid:nth-child(3) { transform: rotate(-0.4deg); }
  
    .acfc-rnw-polaroid:hover {
      transform: rotate(0deg);
      box-shadow: 0 8px 22px rgba(0, 0, 0, 0.14);
    }
  }
  
  @media (max-width: 560px) {
    .acfc-rnw-lookback .angelcity2026-container {
      padding-left: max(24px, env(safe-area-inset-left, 0px));
      padding-right: max(24px, env(safe-area-inset-right, 0px));
    }
  
    .acfc-rnw-polaroids {
      max-width: min(100%, 280px);
      gap: 18px;
    }
  }
  
  /* ---------- HubSpot overrides ---------- */
  
  .container:has(.acfc-rnw-hero),
  .row:has(.acfc-rnw-hero),
  [class*="col"]:has(.acfc-rnw-hero) {
    overflow-x: visible !important;
    max-width: none !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  
  /* ---------- Theme toggle button ---------- */
  
  .acfc-rnw-theme-toggle {
    position: fixed;
    bottom: calc(clamp(14px, 2.4vw, 24px) + env(safe-area-inset-bottom, 0px));
    right: clamp(14px, 2.4vw, 24px);
    z-index: 2147483647;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border-radius: var(--radius-full);
    border: none;
    background: var(--pitch-black);
    color: var(--sol-rosa);
    cursor: pointer;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
    transition: var(--transition);
  }
  
  .acfc-rnw-theme-toggle:hover {
    transform: translateY(-2px) scale(1.05);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  }
  
  .acfc-rnw-theme-toggle:focus-visible {
    outline: 2px solid var(--sol-rosa);
    outline-offset: 3px;
  }
  
  .acfc-rnw-theme-toggle .acfc-rnw-icon {
    width: 22px;
    height: 22px;
  }
  
  .acfc-rnw-theme-toggle .acfc-rnw-icon-sun { display: none; }
  
  [data-theme="dark"] .acfc-rnw-theme-toggle {
    border-color: var(--sol-rosa);
    background: var(--sol-rosa);
    color: var(--pitch-black);
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45), 0 0 0 4px rgba(0, 0, 0, 0.55);
  }
  
  [data-theme="dark"] .acfc-rnw-theme-toggle .acfc-rnw-icon-sun { display: block; }
  [data-theme="dark"] .acfc-rnw-theme-toggle .acfc-rnw-icon-moon { display: none; }
  
  /* ============================================
     DARK THEME - full page dark palette
     ============================================ */
  
  /* Dark surfaces need deeper, tighter shadows to read as elevation at all */
  [data-theme="dark"] {
    --shadow-e1: 0 1px 2px rgba(0, 0, 0, 0.4);
    --shadow-e2: 0 8px 28px rgba(0, 0, 0, 0.45), 0 2px 6px rgba(0, 0, 0, 0.3);
    --shadow-e3: 0 22px 60px rgba(0, 0, 0, 0.55), 0 4px 12px rgba(0, 0, 0, 0.35);
    --shadow-e3-rosa: 0 22px 60px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(241, 177, 165, 0.28);
  }

  /* Global base */
  [data-theme="dark"] body,
  [data-theme="dark"] .acfc-rnw-app {
    background: var(--rnw-dark);
    color: rgba(255, 255, 255, 0.88);
  }
  
  [data-theme="dark"] .acfc-rnw-section-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-section-lead { color: rgba(255, 255, 255, 0.72); }
  [data-theme="dark"] .acfc-rnw-eyebrow { color: var(--sol-rosa); }
  
  /* Jump nav */
  [data-theme="dark"] .acfc-rnw-jump {
    background: var(--rnw-dark);
    border-bottom-color: rgba(255, 255, 255, 0.08);
  }
  [data-theme="dark"] .acfc-rnw-jump-label { color: rgba(255, 255, 255, 0.45); }
  [data-theme="dark"] .acfc-rnw-jump-link {
    color: rgba(255, 255, 255, 0.75);
    border-color: rgba(255, 255, 255, 0.32);
  }
  
  [data-theme="dark"] .acfc-rnw-jump-link:hover,
  [data-theme="dark"] .acfc-rnw-jump-link:focus-visible,
  [data-theme="dark"] a.acfc-rnw-jump-link:hover,
  [data-theme="dark"] a.acfc-rnw-jump-link:focus-visible {
    color: var(--pitch-black);
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
  }
  
  /* Intro / manifesto */
  [data-theme="dark"] .acfc-rnw-intro {
    background: var(--rnw-dark);
    color: var(--line-white);
  }
  [data-theme="dark"] .acfc-rnw-intro--letter {
    background:
      radial-gradient(ellipse 80% 55% at 50% 0%, rgba(241, 177, 165, 0.16), transparent 58%),
      var(--rnw-dark);
  }
  [data-theme="dark"] .acfc-rnw-intro-letter {
    background:
      linear-gradient(165deg, rgba(36, 32, 31, 0.98) 0%, rgba(22, 22, 22, 0.96) 48%, rgba(18, 18, 18, 0.98) 100%);
    border: 1px solid rgba(241, 177, 165, 0.28);
    box-shadow:
      0 1px 0 rgba(255, 255, 255, 0.06) inset,
      0 22px 56px rgba(0, 0, 0, 0.5),
      0 0 0 1px rgba(0, 0, 0, 0.35);
    color: var(--line-white);
  }
  [data-theme="dark"] .acfc-rnw-intro-letter::before {
    border-color: rgba(241, 177, 165, 0.32);
  }
  [data-theme="dark"] .acfc-rnw-intro--letter .acfc-rnw-intro-title {
    color: var(--line-white);
  }
  [data-theme="dark"] .acfc-rnw-intro--letter .acfc-rnw-intro-title em {
    color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-intro--letter .acfc-rnw-eyebrow {
    color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-intro-letter-body {
    color: rgba(255, 255, 255, 0.82);
  }
  [data-theme="dark"] .acfc-rnw-intro-letter-body strong {
    color: var(--line-white);
  }
  [data-theme="dark"] .acfc-rnw-intro-letter-close {
    color: var(--line-white);
  }
  [data-theme="dark"] .acfc-rnw-intro-name,
  [data-theme="dark"] .acfc-rnw-intro-signoff {
    color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-intro-letterhead,
  [data-theme="dark"] .acfc-rnw-intro-signature {
    border-color: rgba(241, 177, 165, 0.22);
  }
  [data-theme="dark"] .acfc-rnw-intro-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-intro-copy p { color: rgba(255, 255, 255, 0.78); }
  [data-theme="dark"] .acfc-rnw-intro-copy p strong { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-intro-quote { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-intro-volemos { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-intro-visual {
    background: var(--rnw-cream);
    border-color: rgba(241, 177, 165, 0.5);
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.42);
  }
  [data-theme="dark"] .acfc-rnw-intro-visual img {
    background-color: var(--rnw-cream);
  }
  
  /* VIP value block */
  [data-theme="dark"] .acfc-rnw-vip {
    background: var(--rnw-dark);
    color: var(--line-white);
  }
  [data-theme="dark"] .acfc-rnw-vip.acfc-rnw-tonal {
    background:
      radial-gradient(120% 100% at 18% 0%, rgba(241, 177, 165, 0.09) 0%, transparent 55%),
      linear-gradient(180deg, var(--rnw-dark-mid) 0%, #171717 48%, var(--rnw-dark) 100%);
  }
  [data-theme="dark"] .acfc-rnw-vip-panel {
    background:
      linear-gradient(160deg, rgba(241, 177, 165, 0.12) 0%, rgba(28, 28, 28, 0.92) 40%, rgba(22, 22, 22, 0.96) 100%);
    border-color: rgba(241, 177, 165, 0.28);
    box-shadow: 0 22px 56px rgba(0, 0, 0, 0.4);
  }
  [data-theme="dark"] .acfc-rnw-vip-intro-title {
    color: var(--line-white);
  }
  [data-theme="dark"] .acfc-rnw-vip-intro-title em {
    color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-vip-panel-lead {
    color: rgba(255, 255, 255, 0.78);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix {
    border-top-color: rgba(241, 177, 165, 0.22);
  }
  [data-theme="dark"] .acfc-rnw-incentives-title,
  [data-theme="dark"] .acfc-rnw-events-title,
  [data-theme="dark"] .acfc-rnw-incentive-title {
    color: var(--line-white);
  }
  [data-theme="dark"] .acfc-rnw-incentive-desc,
  [data-theme="dark"] .acfc-rnw-events-lead {
    color: rgba(255, 255, 255, 0.78);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-head--single {
    color: rgba(255, 255, 255, 0.48);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-head--stm {
    background: linear-gradient(180deg, var(--sol-rosa) 0%, rgba(241, 177, 165, 0.72) 100%);
    color: var(--pitch-black);
    box-shadow: 0 -2px 24px rgba(241, 177, 165, 0.28);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-badge {
    background: var(--pitch-black);
    color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-label {
    color: #ffffff;
    border-bottom-color: rgba(255, 255, 255, 0.12);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-cell {
    border-bottom-color: rgba(255, 255, 255, 0.12);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-cell--single {
    color: rgba(255, 255, 255, 0.62);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-cell--stm {
    color: rgba(255, 255, 255, 0.92);
    background: rgba(241, 177, 165, 0.12);
    border-left-color: rgba(241, 177, 165, 0.34);
    border-right-color: rgba(241, 177, 165, 0.34);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-table tbody tr:last-child .acfc-rnw-vsmatrix-label,
  [data-theme="dark"] .acfc-rnw-vsmatrix-table tbody tr:last-child .acfc-rnw-vsmatrix-cell--single {
    border-bottom: 0;
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-table tbody tr:last-child .acfc-rnw-vsmatrix-cell--stm {
    border-bottom-color: rgba(241, 177, 165, 0.34);
  }
  [data-theme="dark"] .acfc-rnw-vsmatrix-icon--no {
    background-color: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.45);
  }
  @media (max-width: 640px) {
    [data-theme="dark"] .acfc-rnw-vsmatrix-table tbody tr {
      background: rgba(28, 28, 28, 0.7);
      border-color: rgba(255, 255, 255, 0.12);
    }
    [data-theme="dark"] .acfc-rnw-vsmatrix-cell {
      border-color: rgba(255, 255, 255, 0.12);
      background: rgba(255, 255, 255, 0.04);
    }
    [data-theme="dark"] .acfc-rnw-vsmatrix-cell--stm,
    [data-theme="dark"] .acfc-rnw-vsmatrix-table tbody tr:last-child .acfc-rnw-vsmatrix-cell--stm {
      border-color: rgba(241, 177, 165, 0.36);
      background: rgba(241, 177, 165, 0.12);
    }
    [data-theme="dark"] .acfc-rnw-vsmatrix-legend-item {
      border-color: rgba(255, 255, 255, 0.12);
      background: rgba(255, 255, 255, 0.04);
      color: rgba(255, 255, 255, 0.6);
    }
    [data-theme="dark"] .acfc-rnw-vsmatrix-legend-item--stm {
      border-color: rgba(241, 177, 165, 0.36);
      background: rgba(241, 177, 165, 0.12);
      color: var(--sol-rosa);
    }
  }
  [data-theme="dark"] .acfc-rnw-incentive-icon {
    color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-events-carousel-btn {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.22);
    color: var(--line-white);
  }
  [data-theme="dark"] .acfc-rnw-events-carousel-btn:hover,
  [data-theme="dark"] .acfc-rnw-events-carousel-btn:focus-visible {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black, #111);
  }
  [data-theme="dark"] .acfc-rnw-events-slide {
    background: rgba(255, 255, 255, 0.06);
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
  }
  [data-theme="dark"] .acfc-rnw-events-slide.is-active {
    box-shadow: 0 22px 52px rgba(241, 177, 165, 0.22);
  }
  
  /* Pillars section shell */
  [data-theme="dark"] .acfc-rnw-pillars { background: var(--rnw-dark); }
  [data-theme="dark"] .acfc-rnw-pillars .acfc-rnw-section-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-pillars .acfc-rnw-eyebrow { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-pillar-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-pillar-kicker { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-pillar-desc { color: rgba(255, 255, 255, 0.75); }
  [data-theme="dark"] .acfc-rnw-pillar-desc strong { color: var(--line-white); }
  
  /* How it works / steps */
  [data-theme="dark"] .acfc-rnw-steps { background: var(--rnw-dark); }
  [data-theme="dark"] .acfc-rnw-step-number { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-step-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-step-body { color: rgba(255, 255, 255, 0.75); }
  [data-theme="dark"] .acfc-rnw-step-tier {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.04);
  }
  [data-theme="dark"] .acfc-rnw-step-tier-name { color: rgba(255, 255, 255, 0.55); }
  [data-theme="dark"] .acfc-rnw-step-tier-body { color: rgba(255, 255, 255, 0.75); }
  [data-theme="dark"] .acfc-rnw-step-tier--action {
    border-color: rgba(241, 177, 165, 0.4);
    background: rgba(241, 177, 165, 0.1);
  }
  [data-theme="dark"] .acfc-rnw-step-tier--action .acfc-rnw-step-tier-name { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-step-tier--all {
    background: none;
  }
  /* Stats band */
  [data-theme="dark"] .acfc-rnw-stats { background: var(--rnw-dark); }
  [data-theme="dark"] .acfc-rnw-stats::before {
    background: radial-gradient(ellipse 80% 60% at 50% 50%, rgba(241, 177, 165, 0.12) 0%, transparent 70%);
  }
  [data-theme="dark"] .acfc-rnw-stat { border-left-color: rgba(255, 255, 255, 0.12); }
  [data-theme="dark"] .acfc-rnw-stat-value { -webkit-text-stroke: 2px var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-stat-value.is-counted { color: var(--sol-rosa); -webkit-text-stroke: 0; }
  [data-theme="dark"] .acfc-rnw-stat-value--text { color: var(--sol-rosa); -webkit-text-stroke: 0; }
  [data-theme="dark"] .acfc-rnw-stat-suffix,
  [data-theme="dark"] .acfc-rnw-stat-prefix { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-stat-label { color: rgba(255, 255, 255, 0.65); }
  
  /* Key dates timeline */
  [data-theme="dark"] .acfc-rnw-dates { background: var(--rnw-dark); }
  [data-theme="dark"] .acfc-rnw-tl-node {
    background: var(--rnw-card-dark);
    border-color: rgba(241, 177, 165, 0.4);
    color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-tl-item.is-highlight .acfc-rnw-tl-card {
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5);
  }
  [data-theme="dark"] .acfc-rnw-tl-phase { color: rgba(255, 255, 255, 0.55); }
  [data-theme="dark"] .acfc-rnw-date-head { border-bottom-color: rgba(255, 255, 255, 0.1); }
  [data-theme="dark"] .acfc-rnw-date-when { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-date-label { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-tl-item.is-highlight .acfc-rnw-date-label { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-tl-item.is-highlight .acfc-rnw-date-head { border-bottom-color: rgba(255, 255, 255, 0.14); }
  [data-theme="dark"] .acfc-rnw-date-desc { color: rgba(255, 255, 255, 0.62); }
  [data-theme="dark"] .acfc-rnw-date-sublist { border-top-color: rgba(255, 255, 255, 0.14); }
  [data-theme="dark"] .acfc-rnw-date-sublist li { color: rgba(255, 255, 255, 0.62); }
  [data-theme="dark"] .acfc-rnw-date-sublist strong { color: var(--line-white); }
  
  /* Experience shell (feature cards keep their image overlays) */
  [data-theme="dark"] .acfc-rnw-experience { background: var(--rnw-dark-mid); }
  [data-theme="dark"] .acfc-rnw-experience.acfc-rnw-tonal {
    background:
      radial-gradient(120% 100% at 18% 0%, rgba(241, 177, 165, 0.09) 0%, transparent 55%),
      linear-gradient(180deg, var(--rnw-dark-mid) 0%, #171717 48%, var(--rnw-dark) 100%);
  }
  [data-theme="dark"] .acfc-rnw-mhub-showcase {
    background: linear-gradient(155deg, rgba(241, 177, 165, 0.1) 0%, rgba(26, 26, 26, 0.95) 42%, rgba(20, 20, 20, 0.98) 100%);
    border-color: var(--rnw-card-dark-border);
    box-shadow: none;
  }
  [data-theme="dark"] .acfc-rnw-mhub-screen-frame {
    border-color: #0d0d0d;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
  }
  [data-theme="dark"] .acfc-rnw-mhub-screen--feature .acfc-rnw-mhub-screen-frame {
    box-shadow:
      0 26px 62px rgba(0, 0, 0, 0.6),
      0 0 0 1px rgba(241, 177, 165, 0.45),
      0 0 52px var(--sol-rosa-glow);
  }
  [data-theme="dark"] .acfc-rnw-mhub-screen-label { color: rgba(255, 255, 255, 0.6); }
  [data-theme="dark"] .acfc-rnw-mhub-screen--feature .acfc-rnw-mhub-screen-label { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-mhub-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-mhub-soon-badge {
    color: rgba(255, 255, 255, 0.7);
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.22);
  }
  [data-theme="dark"] .acfc-rnw-mhub-note { color: rgba(255, 255, 255, 0.55); }
  [data-theme="dark"] .acfc-rnw-mhub-lead { color: rgba(255, 255, 255, 0.72); }
  [data-theme="dark"] .acfc-rnw-mhub-group {
    background: rgba(36, 36, 36, 0.85);
    border-color: var(--rnw-card-dark-border);
    box-shadow: none;
  }
  [data-theme="dark"] .acfc-rnw-mhub-group-title {
    border-bottom-color: rgba(241, 177, 165, 0.24);
  }
  [data-theme="dark"] .acfc-rnw-mhub-badge {
    background: var(--sol-rosa);
    color: var(--pitch-black);
  }
  [data-theme="dark"] .acfc-rnw-mhub-group--highlight {
    background: linear-gradient(135deg, rgba(241, 177, 165, 0.08) 0%, rgba(36, 36, 36, 0.95) 100%);
    border-color: var(--sol-rosa);
    box-shadow: 0 12px 32px rgba(241, 177, 165, 0.25), 0 0 0 1px rgba(241, 177, 165, 0.4);
  }
  [data-theme="dark"] .acfc-rnw-mhub-group--highlight::before {
    background: radial-gradient(circle at top right, rgba(241, 177, 165, 0.12), transparent 60%);
  }
  [data-theme="dark"] .acfc-rnw-mhub-list li { color: rgba(255, 255, 255, 0.88); }
  [data-theme="dark"] .acfc-rnw-store-btn,
  [data-theme="dark"] a.acfc-rnw-store-btn,
  [data-theme="dark"] a.acfc-rnw-store-btn:hover,
  [data-theme="dark"] a.acfc-rnw-store-btn:focus-visible {
    background: var(--pitch-black);
    border-color: rgba(255, 255, 255, 0.2);
  }
  [data-theme="dark"] .acfc-rnw-mhub-web { color: rgba(255, 255, 255, 0.6); }
  [data-theme="dark"] .acfc-rnw-mhub-web a { color: var(--sol-rosa); }
  
  /* Member moments */
  [data-theme="dark"] .acfc-rnw-moments { background: var(--rnw-dark-mid); }
  [data-theme="dark"] .acfc-rnw-moments-video {
    border-color: var(--rnw-card-dark-border);
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.55);
  }
  [data-theme="dark"] .acfc-rnw-moments-tile {
    background: var(--rnw-card-dark);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
  }
  [data-theme="dark"] .acfc-rnw-moments-cta-copy { color: rgba(255, 255, 255, 0.82); }

  /* Testimonials */
  [data-theme="dark"] .acfc-rnw-quotes { background: var(--rnw-dark); }
  [data-theme="dark"] .acfc-rnw-quotes .acfc-rnw-section-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-quote-card.acfc-rnw-frost {
    background: rgba(28, 28, 28, 0.72);
    border-color: var(--rnw-card-dark-border);
    box-shadow: var(--shadow-e2);
  }
  [data-theme="dark"] .acfc-rnw-quote-card:hover,
  [data-theme="dark"] .acfc-rnw-quote-card:focus-within {
    border-color: rgba(241, 177, 165, 0.5);
    box-shadow: var(--shadow-card-hover);
  }
  [data-theme="dark"] .acfc-rnw-quote-mark { opacity: 0.6; }
  [data-theme="dark"] .acfc-rnw-quote-text { color: rgba(255, 255, 255, 0.85); }
  [data-theme="dark"] .acfc-rnw-quote-author { border-top-color: rgba(255, 255, 255, 0.12); }
  [data-theme="dark"] .acfc-rnw-quote-name { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-quote-tier { color: var(--sol-rosa); }
  
  /* FAQ */
  [data-theme="dark"] .acfc-rnw-faq { background: var(--rnw-dark); }
  [data-theme="dark"] .acfc-rnw-faq-contact-item {
    background: var(--rnw-card-dark);
    border-color: var(--rnw-card-dark-border);
    color: var(--line-white);
    box-shadow: none;
  }
  
  [data-theme="dark"] a.acfc-rnw-faq-contact-item:hover,
  [data-theme="dark"] a.acfc-rnw-faq-contact-item:focus-visible {
    border-color: var(--sol-rosa);
    background: rgba(241, 177, 165, 0.12);
    color: var(--line-white);
  }
  
  [data-theme="dark"] a.acfc-rnw-faq-contact-item:hover svg,
  [data-theme="dark"] a.acfc-rnw-faq-contact-item:focus-visible svg {
    color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-faq-contact-label { color: rgba(255, 255, 255, 0.5); }
  [data-theme="dark"] .acfc-rnw-faq-tab {
    border-color: transparent;
    background: transparent;
    color: rgba(255, 255, 255, 0.65);
  }
  [data-theme="dark"] .acfc-rnw-faq-tabs {
    background: var(--rnw-card-dark);
    border-color: var(--rnw-card-dark-border);
  }
  [data-theme="dark"] .acfc-rnw-faq-tab:hover {
    color: var(--line-white);
    background: rgba(241, 177, 165, 0.12);
  }
  [data-theme="dark"] .acfc-rnw-faq-tab:hover,
  [data-theme="dark"] .acfc-rnw-faq-tab.is-active {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
  }
  [data-theme="dark"] .acfc-rnw-faq-item {
    background: var(--rnw-card-dark);
    border-color: var(--rnw-card-dark-border);
    box-shadow: none;
  }
  [data-theme="dark"] .acfc-rnw-faq-item[open] {
    border-color: rgba(241, 177, 165, 0.45);
    background: linear-gradient(160deg, var(--rnw-card-dark) 0%, rgba(241, 177, 165, 0.1) 100%);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
  }
  [data-theme="dark"] .acfc-rnw-faq-question { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-faq-question:hover { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-faq-chevron {
    color: var(--sol-rosa);
    background: rgba(241, 177, 165, 0.12);
    border-color: rgba(241, 177, 165, 0.28);
  }
  [data-theme="dark"] .acfc-rnw-faq-item[open] .acfc-rnw-faq-chevron {
    background: var(--sol-rosa);
    color: var(--pitch-black);
    border-color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-faq-answer { color: rgba(255, 255, 255, 0.68); }
  [data-theme="dark"] .acfc-rnw-faq-answer a { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-faq-help {
    border-top-color: var(--rnw-card-dark-border);
    color: rgba(255, 255, 255, 0.55);
  }
  [data-theme="dark"] .acfc-rnw-faq-help a { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-faq-help a:hover { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-faq-help span { color: rgba(255, 255, 255, 0.25); }
  
  /* Pillars: featured card in dark */
  [data-theme="dark"] .acfc-rnw-pillar--feature {
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5);
  }
  
  /* Payment plans */
  [data-theme="dark"] .acfc-rnw-plans { background: var(--rnw-dark); }
  [data-theme="dark"] .acfc-rnw-plan-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-plan-desc { color: rgba(255, 255, 255, 0.72); }
  [data-theme="dark"] .acfc-rnw-plan-tag { color: var(--sol-rosa); background: rgba(241, 177, 165, 0.14); }
  [data-theme="dark"] .acfc-rnw-plans-note { color: rgba(255, 255, 255, 0.6); }
  [data-theme="dark"] .acfc-rnw-plans-note a { color: var(--sol-rosa); }
  
  /* Benefits */
  [data-theme="dark"] .acfc-rnw-benefits { background: var(--rnw-dark); }
  [data-theme="dark"] .acfc-rnw-benefits-headline { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-spotlight-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-spotlight-desc { color: rgba(255, 255, 255, 0.72); }
  [data-theme="dark"] .acfc-rnw-spotlight-card.acfc-rnw-frost { box-shadow: none; }
  [data-theme="dark"] .acfc-rnw-benefits-table-heading { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-perks-panel {
    border-color: var(--rnw-card-dark-border);
    background: linear-gradient(165deg, rgba(36, 36, 36, 0.98) 0%, rgba(26, 26, 26, 0.95) 100%);
    box-shadow: none;
  }
  [data-theme="dark"] .acfc-rnw-perks-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-perks-title em { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-perks-table-scroll {
    background: rgba(20, 20, 20, 0.75);
    border-color: var(--rnw-card-dark-border);
  }
  [data-theme="dark"] .acfc-rnw-perks-benefit {
    color: rgba(255, 255, 255, 0.92);
    background: rgba(30, 30, 30, 0.85);
    border-bottom-color: rgba(255, 255, 255, 0.08);
    box-shadow: 4px 0 10px -6px rgba(0, 0, 0, 0.55);
  }
  [data-theme="dark"] .acfc-rnw-perks-cell {
    color: rgba(255, 255, 255, 0.88);
    background: rgba(24, 24, 24, 0.6);
    border-bottom-color: rgba(255, 255, 255, 0.08);
    border-left-color: rgba(255, 255, 255, 0.08);
  }
  [data-theme="dark"] .acfc-rnw-perks-table thead th {
    background: linear-gradient(180deg, #333 0%, #292929 100%);
    color: rgba(255, 255, 255, 0.82);
    border-bottom-color: var(--sol-rosa);
  }
  [data-theme="dark"] .acfc-rnw-perks-table thead .acfc-rnw-perks-th-benefit {
    color: var(--line-white);
    box-shadow: 4px 0 10px -6px rgba(0, 0, 0, 0.6);
  }
  [data-theme="dark"] .acfc-rnw-perks-table thead .acfc-rnw-perks-th-buyer {
    border-left-color: rgba(255, 255, 255, 0.12);
  }
  [data-theme="dark"] .acfc-rnw-perks-table thead .acfc-rnw-perks-th-member {
    background: linear-gradient(180deg, var(--sol-rosa) 0%, var(--sol-rosa-dark) 100%);
    color: var(--pitch-black);
    box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.3);
  }
  [data-theme="dark"] .acfc-rnw-perks-tier {
    background: rgba(255, 255, 255, 0.8);
    color: var(--pitch-black);
  }
  [data-theme="dark"] .acfc-rnw-perks-table tbody td:last-child {
    background: rgba(241, 177, 165, 0.09);
    border-left-color: rgba(241, 177, 165, 0.28);
  }
  [data-theme="dark"] .acfc-rnw-perks-detail { color: rgba(255, 255, 255, 0.55); }
  [data-theme="dark"] .acfc-rnw-perks-note-ref { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-perks-footnote {
    color: rgba(255, 255, 255, 0.55);
    border-top-color: rgba(255, 255, 255, 0.1);
  }
  [data-theme="dark"] .acfc-rnw-perks-cell.is-include .acfc-rnw-perks-status strong,
  [data-theme="dark"] .acfc-rnw-perks-cell.is-premium .acfc-rnw-perks-status strong {
    color: var(--line-white);
  }

  /* Dark theme for the stacked perks cards. The cell backgrounds above are set
     for the table layout, so the card layout needs its own surfaces. */
  @media (max-width: 640px) {
    [data-theme="dark"] .acfc-rnw-perks-table tr {
      border-color: var(--rnw-card-dark-border);
      background: rgba(30, 30, 30, 0.85);
    }

    [data-theme="dark"] .acfc-rnw-perks-table .acfc-rnw-perks-benefit {
      background: none;
      box-shadow: none;
    }

    [data-theme="dark"] .acfc-rnw-perks-table .acfc-rnw-perks-cell {
      border-color: var(--rnw-card-dark-border);
      background: rgba(255, 255, 255, 0.04);
    }

    [data-theme="dark"] .acfc-rnw-perks-table .acfc-rnw-perks-cell:nth-of-type(2) {
      border-color: rgba(241, 177, 165, 0.35);
      background: rgba(241, 177, 165, 0.12);
    }

    [data-theme="dark"] .acfc-rnw-perks-legend-item {
      border-color: var(--rnw-card-dark-border);
      background: rgba(255, 255, 255, 0.04);
      color: rgba(255, 255, 255, 0.6);
    }

    [data-theme="dark"] .acfc-rnw-perks-legend-item--member {
      border-color: rgba(241, 177, 165, 0.35);
      background: rgba(241, 177, 165, 0.12);
      color: var(--sol-rosa);
    }
  }
  
  /* Look back / nostalgia */
  [data-theme="dark"] .acfc-rnw-lookback { background: var(--rnw-dark); }
  [data-theme="dark"] .acfc-rnw-lookback .acfc-rnw-section-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-lookback .acfc-rnw-section-lead { color: rgba(255, 255, 255, 0.72); }
  [data-theme="dark"] .acfc-rnw-lookback .acfc-rnw-eyebrow { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-lookback-note { color: rgba(255, 255, 255, 0.75); }
  
  /* Select-A-Seat */
  [data-theme="dark"] .acfc-rnw-sas { background: var(--rnw-dark-mid); }
  [data-theme="dark"] .acfc-rnw-sas-jump-label { color: var(--line-white); }
  [data-theme="dark"] a.acfc-rnw-sas-chip,
  [data-theme="dark"] a.acfc-rnw-sas-chip:visited {
    background: var(--rnw-card-dark);
    border-color: var(--rnw-card-dark-border);
    color: rgba(255, 255, 255, 0.82);
  }
  [data-theme="dark"] .acfc-rnw-sas-chip-num { color: var(--sol-rosa); }
  [data-theme="dark"] a.acfc-rnw-sas-chip:hover,
  [data-theme="dark"] a.acfc-rnw-sas-chip:focus-visible {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
  }
  [data-theme="dark"] a.acfc-rnw-sas-chip:hover .acfc-rnw-sas-chip-num,
  [data-theme="dark"] a.acfc-rnw-sas-chip:focus-visible .acfc-rnw-sas-chip-num {
    color: var(--pitch-black);
  }
  [data-theme="dark"] .acfc-rnw-sas-item {
    background: var(--rnw-card-dark);
    border-color: var(--rnw-card-dark-border);
  }
  [data-theme="dark"] .acfc-rnw-sas-panel-title { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-sas-panel-desc { color: rgba(255, 255, 255, 0.65); }
  [data-theme="dark"] .acfc-rnw-sas-item-media { background: var(--rnw-card-dark); }
  [data-theme="dark"] .acfc-rnw-sas-panel-list { color: rgba(255, 255, 255, 0.82); }
  [data-theme="dark"] .acfc-rnw-sas-panel-list a { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-sas-panel-list strong { color: var(--line-white); }
  [data-theme="dark"] .acfc-rnw-sas-tips { border-top-color: rgba(255, 255, 255, 0.12); }
  [data-theme="dark"] .acfc-rnw-sas-tips-title { color: var(--sol-rosa); }
  [data-theme="dark"] .acfc-rnw-sas-tips-list li { color: rgba(255, 255, 255, 0.82); }
  
  /* Select-A-Seat expanded modal */
  [data-theme="dark"] .acfc-rnw-sas-modal-dialog {
    background: var(--rnw-card-dark);
    border-color: var(--rnw-card-dark-border);
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-close {
    background: rgba(255, 255, 255, 0.08);
    color: var(--line-white);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-steps-wrap {
    background: var(--rnw-dark-mid);
    border-bottom-color: rgba(255, 255, 255, 0.1);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-step-tab {
    background: var(--rnw-card-dark);
    border-color: var(--rnw-card-dark-border);
    color: rgba(255, 255, 255, 0.82);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-step-tab.is-active {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-footer {
    background: var(--rnw-card-dark);
    border-top-color: rgba(255, 255, 255, 0.1);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-step-label { color: var(--sol-rosa); }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-title { color: var(--line-white); }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-text .acfc-rnw-sas-panel-list {
    color: rgba(255, 255, 255, 0.84);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-text .acfc-rnw-sas-panel-list a {
    color: var(--sol-rosa);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-text .acfc-rnw-sas-panel-list strong {
    color: var(--line-white);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-step-btn {
    background: var(--rnw-dark-mid);
    border-color: rgba(255, 255, 255, 0.14);
    color: rgba(255, 255, 255, 0.88);
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-step-btn:hover,
  [data-theme="dark"] .acfc-rnw-sas-modal-step-btn:focus-visible {
    border-color: var(--sol-rosa);
    color: #fff;
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-step-btn-primary {
    background: var(--sol-rosa);
    border-color: var(--sol-rosa);
    color: var(--pitch-black);
  }

  [data-theme="dark"] .acfc-rnw-sas-modal-step-btn-primary:hover,
  [data-theme="dark"] .acfc-rnw-sas-modal-step-btn-primary:focus-visible {
    background: var(--sol-rosa-dark);
    border-color: var(--sol-rosa-dark);
    color: #fff;
  }
  
  [data-theme="dark"] .acfc-rnw-sas-modal-carousel .acfc-rnw-sas-carousel-dots {
    background: #080808;
  }
  
  [data-theme="dark"] .acfc-rnw-sas-carousel-btn {
    background: var(--sol-rosa);
    color: var(--pitch-black);
  }

  [data-theme="dark"] .acfc-rnw-sas-carousel-btn:hover,
  [data-theme="dark"] .acfc-rnw-sas-carousel-btn:focus-visible {
    background: var(--sol-rosa-dark);
    color: var(--pitch-black);
  }
  
  /* Outline buttons on dark sections */
  [data-theme="dark"] .angelcity2026-btn-outline-dark {
    color: var(--line-white);
    border-color: rgba(255, 255, 255, 0.4);
  }
  
  [data-theme="dark"] a.angelcity2026-btn.angelcity2026-btn-outline-dark,
  [data-theme="dark"] a.angelcity2026-btn.angelcity2026-btn-outline-dark:hover,
  [data-theme="dark"] a.angelcity2026-btn.angelcity2026-btn-outline-dark:focus-visible {
    color: var(--line-white);
  }
  
  [data-theme="dark"] .angelcity2026-btn-outline-dark:hover {
    border-color: var(--sol-rosa);
    background: rgba(241, 177, 165, 0.12);
  }
  
  /* Mobile divider colors for the dark stats band */
  @media (max-width: 768px) {
    [data-theme="dark"] .acfc-rnw-stat { border-top-color: rgba(255, 255, 255, 0.12); }
  }
  
  /* ---------- Mobile coordination: fixed UI + shared CTAs ---------- */
  
  body:has(.acfc-rnw-notify.is-visible) .acfc-rnw-theme-toggle {
    bottom: calc(82px + env(safe-area-inset-bottom, 0px));
  }
  
  /*body:has(.acfc-rnw-notify.is-visible) .acfc-rnw-app {
    padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
  }*/
  
  @media (max-width: 900px) {
    [data-theme="dark"] .acfc-rnw-stat { border-top-color: rgba(255, 255, 255, 0.12); }
  }
  
  @media (max-width: 768px) {
    :root {
      --rnw-scroll-offset: 72px;
    }
  
    .acfc-rnw-jump-inner {
      padding: 8px 0 12px;
      gap: 6px;
    }
  
    .acfc-rnw-jump-link {
      min-height: 36px;
      padding: 0 14px;
      font-size: 0.7rem;
    }
  
    .acfc-rnw-theme-toggle {
      width: 44px;
      height: 44px;
      right: max(12px, env(safe-area-inset-right, 0px));
    }
  
    .acfc-rnw-cta-band {
      padding: clamp(48px, 10vw, 72px) 0 calc(48px + env(safe-area-inset-bottom, 0px));
    }
  
    .acfc-rnw-cta-band-title {
      font-size: clamp(1.45rem, 6.2vw, 1.9rem);
    }
  
    .acfc-rnw-cta-contact-item-label {
      white-space: normal;
    }
  
    .acfc-rnw-cta-band-actions,
    .acfc-rnw-sas-actions,
    .acfc-rnw-steps-cta {
      flex-direction: column;
      align-items: center;
    }
  
    .acfc-rnw-cta-band-actions .angelcity2026-btn,
    .acfc-rnw-sas-actions .angelcity2026-btn,
    .acfc-rnw-steps-cta .angelcity2026-btn,
    .acfc-rnw-midcta .angelcity2026-btn-primary {
      width: 100%;
      max-width: 320px;
      white-space: normal;
      text-align: center;
    }
  
    .acfc-rnw-faq-tab {
      min-height: 44px;
      padding: 12px 16px;
    }
  
    .acfc-rnw-events {
      margin-bottom: clamp(28px, 5vw, 40px);
    }
  
    .acfc-rnw-events-lead {
      max-width: none;
    }
  
    .angelcity2026-container {
      padding-left: max(16px, env(safe-area-inset-left, 0px));
      padding-right: max(16px, env(safe-area-inset-right, 0px));
    }
  }
  
  @media (max-width: 640px) {
    .acfc-rnw-hero-actions {
      flex-direction: column;
      align-items: stretch;
      width: 100%;
      max-width: 360px;
      margin-inline: auto;
    }
  
    .acfc-rnw-hero-actions .angelcity2026-btn {
      width: 100%;
      max-width: none;
      white-space: normal;
      text-align: center;
      padding-inline: 1.25rem;
    }
  
    .acfc-rnw-cta-contact-grid {
      flex-direction: column;
      align-items: center;
      width: fit-content;
      max-width: 100%;
      margin-inline: auto;
    }
  
    .acfc-rnw-cta-band a.acfc-rnw-cta-contact-item,
    .acfc-rnw-cta-band a.acfc-rnw-cta-contact-item:visited {
      width: 100%;
    }
  }
  
  @media (max-width: 480px) {
    .acfc-rnw-notify-btn {
      width: calc(100% - 32px);
      max-width: 360px;
      padding: 14px 24px;
    }
  
    .acfc-rnw-section-title {
      font-size: clamp(1.35rem, 6.2vw, 1.8rem);
    }
  
    .acfc-rnw-hero-title {
      font-size: clamp(1.9rem, 9.5vw, 2.4rem);
    }
  
    .acfc-rnw-member-value .acfc-rnw-incentive {
      padding: 14px 14px;
    }
  
    .acfc-rnw-incentive-title {
      font-size: clamp(0.95rem, 4.5vw, 1.15rem);
    }
  }
  
  /* ---------- Interactive seat map ---------- */
  
  .acfc-rnw-seatmap {
    position: relative;
    padding: clamp(3.5rem, 7vw, 5.5rem) 0;
    overflow: hidden;
  }
  
  .acfc-rnw-seatmap-value {
    margin: 0.75rem auto 0;
    max-width: 36rem;
    font-size: 1.05rem;
    font-weight: 500;
    color: rgba(28, 28, 28, 0.88);
    text-shadow:
      0 0 16px rgba(255, 255, 255, 0.8),
      0 1px 3px rgba(255, 255, 255, 0.75);
  }
  
  .acfc-rnw-seatmap-value strong {
    color: #c87868;
    font-weight: 800;
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-value {
    color: rgba(255, 255, 255, 0.88);
    text-shadow: none;
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-value strong {
    color: var(--sol-rosa);
  }
  
  .acfc-rnw-seatmap-legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.65rem 1.25rem;
    margin: 0 auto 2rem;
    max-width: 720px;
  }
  
  .acfc-rnw-seatmap-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.82rem;
    font-weight: 600;
    color: rgba(28, 28, 28, 0.82);
    cursor: pointer;
    padding: 0.35rem 0.5rem;
    border-radius: var(--radius-full);
    transition: var(--transition);
  }
  
  .acfc-rnw-seatmap-legend-item:hover,
  .acfc-rnw-seatmap-legend-item:focus-visible {
    color: var(--asphalt);
    background: rgba(255, 255, 255, 0.55);
    outline: none;
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-legend-item {
    color: rgba(255, 255, 255, 0.82);
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-legend-item:hover,
  [data-theme="dark"] .acfc-rnw-seatmap-legend-item:focus-visible {
    color: var(--line-white);
    background: rgba(255, 255, 255, 0.08);
  }
  
  .acfc-rnw-seatmap-swatch {
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1px solid rgba(255, 255, 255, 0.35);
    flex-shrink: 0;
  }
  
  .acfc-rnw-seatmap-legend-item[data-tier="supporters"] .acfc-rnw-seatmap-swatch { background: var(--tier-supporters-active); }
  .acfc-rnw-seatmap-legend-item[data-tier="general"] .acfc-rnw-seatmap-swatch { background: var(--tier-general-active); }
  .acfc-rnw-seatmap-legend-item[data-tier="premium"] .acfc-rnw-seatmap-swatch { background: var(--tier-premium-active); }
  .acfc-rnw-seatmap-legend-item[data-tier="suites"] .acfc-rnw-seatmap-swatch { background: var(--tier-suites-active); }
  
  .acfc-rnw-seatmap-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
    gap: 1.5rem;
    align-items: start;
  }
  
  .acfc-rnw-seatmap-stage-wrap {
    min-width: 0;
  }
  
  .acfc-rnw-seatmap-stage {
    position: relative;
    width: 100%;
    max-width: 560px;
    margin: 0 auto;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-card);
    background: var(--rnw-panel);
    aspect-ratio: 525 / 520;
  }
  
  .acfc-rnw-seatmap-base {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }
  
  .acfc-rnw-seatmap-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
  }
  
  .acfc-rnw-seatmap-zone {
    pointer-events: all;
    cursor: pointer;
    stroke: rgba(255, 255, 255, 0.55);
    stroke-width: 1.2;
    transition: fill 0.2s ease, stroke-width 0.2s ease, filter 0.2s ease;
    outline: none;
  }
  
  .acfc-rnw-seatmap-zone--supporters { fill: var(--tier-supporters); }
  .acfc-rnw-seatmap-zone--general { fill: var(--tier-general); }
  .acfc-rnw-seatmap-zone--premium { fill: var(--tier-premium); }
  .acfc-rnw-seatmap-zone--suites { fill: var(--tier-suites); }
  
  .acfc-rnw-seatmap-zone:hover,
  .acfc-rnw-seatmap-zone:focus-visible,
  .acfc-rnw-seatmap-zone.is-active {
    stroke-width: 2;
    stroke: var(--line-white);
    filter: drop-shadow(0 0 6px rgba(241, 177, 165, 0.45));
  }
  
  .acfc-rnw-seatmap-zone--supporters:hover,
  .acfc-rnw-seatmap-zone--supporters:focus-visible,
  .acfc-rnw-seatmap-zone--supporters.is-active { fill: var(--tier-supporters-active); }
  .acfc-rnw-seatmap-zone--general:hover,
  .acfc-rnw-seatmap-zone--general:focus-visible,
  .acfc-rnw-seatmap-zone--general.is-active { fill: var(--tier-general-active); }
  .acfc-rnw-seatmap-zone--premium:hover,
  .acfc-rnw-seatmap-zone--premium:focus-visible,
  .acfc-rnw-seatmap-zone--premium.is-active { fill: var(--tier-premium-active); }
  .acfc-rnw-seatmap-zone--suites:hover,
  .acfc-rnw-seatmap-zone--suites:focus-visible,
  .acfc-rnw-seatmap-zone--suites.is-active { fill: var(--tier-suites-active); }
  
  .acfc-rnw-seatmap-zone:focus-visible {
    outline: 2px solid var(--sol-rosa);
    outline-offset: 1px;
  }
  
  .acfc-rnw-seatmap-hint {
    margin: 0.75rem 0 0;
    text-align: center;
    font-size: 0.82rem;
    color: rgba(28, 28, 28, 0.62);
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-hint {
    color: rgba(255, 255, 255, 0.62);
  }
  
  .acfc-rnw-seatmap-panel {
    position: sticky;
    top: calc(var(--rnw-scroll-offset) + 1rem);
    padding: 1.35rem;
    min-height: 320px;
    display: flex;
    flex-direction: column;
  }
  
  .acfc-rnw-seatmap-panel-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    flex: 1;
    padding: 1.5rem 0.5rem;
  }
  
  .acfc-rnw-seatmap-panel-empty[hidden],
  .acfc-rnw-seatmap-panel-body[hidden] {
    display: none !important;
  }
  
  .acfc-rnw-seatmap-panel-icon {
    width: 3rem;
    height: 3rem;
    margin-bottom: 1rem;
    color: var(--sol-rosa);
  }
  
  .acfc-rnw-seatmap-panel-icon svg {
    width: 100%;
    height: 100%;
  }
  
  .acfc-rnw-seatmap-panel-body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: relative;
    outline: none;
  }
  
  .acfc-rnw-seatmap-panel-close {
    position: absolute;
    top: -0.35rem;
    right: -0.35rem;
    width: 2rem;
    height: 2rem;
    border: none;
    border-radius: var(--radius-full);
    background: rgba(0, 0, 0, 0.06);
    color: inherit;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    display: none;
  }
  
  .acfc-rnw-seatmap-panel-media {
    border-radius: var(--radius-md);
    overflow: hidden;
    background: rgba(0, 0, 0, 0.04);
  }
  
  .acfc-rnw-seatmap-panel-thumb {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
  }
  
  .acfc-rnw-seatmap-tier-badge {
    display: inline-block;
    margin-bottom: 0.35rem;
    padding: 0.2rem 0.55rem;
    border-radius: var(--radius-full);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
  
  .acfc-rnw-seatmap-tier-badge--supporters { background: rgba(74, 155, 95, 0.18); color: #2d7a45; }
  .acfc-rnw-seatmap-tier-badge--general { background: rgba(66, 133, 199, 0.18); color: #2a6dad; }
  .acfc-rnw-seatmap-tier-badge--premium { background: rgba(155, 89, 182, 0.18); color: #7d3e99; }
  .acfc-rnw-seatmap-tier-badge--suites { background: rgba(212, 162, 76, 0.22); color: #9a6f1f; }
  
  .acfc-rnw-seatmap-panel .acfc-rnw-seatmap-panel-title {
    margin: 0;
    font-family: 'Inter', sans-serif;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -0.015em;
    text-transform: uppercase;
    line-height: 1.2;
  }
  
  .acfc-rnw-seatmap-panel-price {
    margin: 0.35rem 0 0;
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--sol-rosa-dark);
  }
  
  .acfc-rnw-seatmap-panel-blurb {
    margin: 0.5rem 0 0;
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--armour);
  }
  
  .acfc-rnw-seatmap-panel-actions {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-top: auto;
    padding-top: 0.5rem;
  }
  
  .acfc-rnw-seatmap-panel-actions .angelcity2026-btn {
    width: 100%;
    text-align: center;
    justify-content: center;
  }
  
  .acfc-rnw-seatmap-vr-link,
  a.angelcity2026-btn.acfc-rnw-seatmap-vr-link,
  a.angelcity2026-btn.acfc-rnw-seatmap-vr-link:hover,
  a.angelcity2026-btn.acfc-rnw-seatmap-vr-link:focus-visible {
    color: var(--pitch-black);
    border-color: var(--pitch-black);
    background: transparent;
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-vr-link,
  [data-theme="dark"] a.angelcity2026-btn.acfc-rnw-seatmap-vr-link,
  [data-theme="dark"] a.angelcity2026-btn.acfc-rnw-seatmap-vr-link:hover,
  [data-theme="dark"] a.angelcity2026-btn.acfc-rnw-seatmap-vr-link:focus-visible {
    color: var(--line-white);
    border-color: var(--line-white);
    background: transparent;
  }
  
  .acfc-rnw-seatmap-list-wrap {
    margin-top: 2.5rem;
  }
  
  .acfc-rnw-seatmap-list-heading {
    margin: 0 0 1rem;
    font-family: 'Inter', sans-serif;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    text-align: center;
    color: rgba(28, 28, 28, 0.9);
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-list-heading {
    color: rgba(255, 255, 255, 0.9);
  }
  
  .acfc-rnw-seatmap-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 0.55rem;
  }
  
  .acfc-rnw-seatmap-list-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    width: 100%;
    padding: 0.75rem 1rem;
    border: 1px solid rgba(28, 28, 28, 0.1);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.45);
    color: rgba(28, 28, 28, 0.92);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: var(--transition);
  }
  
  .acfc-rnw-seatmap-list-item:hover,
  .acfc-rnw-seatmap-list-item:focus-visible,
  .acfc-rnw-seatmap-list-item.is-active {
    border-color: rgba(241, 177, 165, 0.65);
    background: rgba(241, 177, 165, 0.22);
    outline: none;
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-list-item {
    border-color: rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.92);
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-list-item:hover,
  [data-theme="dark"] .acfc-rnw-seatmap-list-item:focus-visible,
  [data-theme="dark"] .acfc-rnw-seatmap-list-item.is-active {
    border-color: rgba(241, 177, 165, 0.45);
    background: rgba(241, 177, 165, 0.12);
  }
  
  .acfc-rnw-seatmap-list-name {
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.3;
  }
  
  .acfc-rnw-seatmap-list-price {
    flex-shrink: 0;
    font-size: 0.82rem;
    font-weight: 800;
    color: var(--sol-rosa);
  }
  
  .acfc-rnw-seatmap-disclaimer {
    margin: 2rem auto 0;
    max-width: 42rem;
    text-align: center;
    font-size: 0.82rem;
    line-height: 1.5;
    color: rgba(28, 28, 28, 0.62);
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-disclaimer {
    color: rgba(255, 255, 255, 0.58);
  }
  
  /* Seat map: light theme context (non-signature fallback) */
  .acfc-rnw-app:not([data-theme="dark"]) .acfc-rnw-seatmap:not(.acfc-rnw-signature) .acfc-rnw-seatmap-panel-price {
    color: #c87868;
  }
  
  @media (max-width: 960px) {
    .acfc-rnw-seatmap-layout {
      grid-template-columns: 1fr;
    }
  
    .acfc-rnw-seatmap-panel {
      position: relative;
      top: auto;
    }
  }
  
  @media (max-width: 768px) {
    .acfc-rnw-seatmap-panel-close {
      display: block;
    }
  
    .acfc-rnw-seatmap-list {
      grid-template-columns: 1fr;
    }
  
    .acfc-rnw-seatmap-panel-actions .angelcity2026-btn {
      max-width: none;
    }
  }
  
  /* Seat map: dark theme overrides */
  [data-theme="dark"] .acfc-rnw-seatmap-panel-price {
    color: var(--sol-rosa);
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-panel-blurb {
    color: rgba(255, 255, 255, 0.72);
  }
  
  [data-theme="dark"] .acfc-rnw-seatmap-tier-badge--supporters { color: #8fd4a3; }
  [data-theme="dark"] .acfc-rnw-seatmap-tier-badge--general { color: #8ec0ef; }
  [data-theme="dark"] .acfc-rnw-seatmap-tier-badge--premium { color: #d4a8e8; }
  [data-theme="dark"] .acfc-rnw-seatmap-tier-badge--suites { color: #e8c878; }
  
  [data-theme="dark"] .acfc-rnw-seatmap-panel-close {
    background: rgba(255, 255, 255, 0.1);
    color: var(--line-white);
  }
  