/* ============================================================
   Active Sports FC — theme layout layer
   Builds page-level structure ON TOP of the design-system tokens +
   components (.asfc-* in components.css). Everything here references tokens
   only. This is the layer the developer extends as pages are built out — the
   per-page specs in _handoff/specs/ are the brief for the finer layout.
   Prefix: .asfc-* (theme structures) / .as-* (token utilities from base.css)
   ============================================================ */

/* ---------- Accessibility helpers ---------- */
.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}
.asfc-skip-link {
  position: absolute; left: -9999px; top: 0; z-index: var(--z-toast);
  background: var(--surface-inverse); color: #fff;
  padding: var(--space-3) var(--space-5);
  font-family: var(--font-heading); text-transform: uppercase;
  letter-spacing: var(--tracking-caps-sm); text-decoration: none;
}
.asfc-skip-link:focus { left: var(--space-4); top: var(--space-4); }

.asfc-link-button {
  background: none; border: 0; padding: 0; cursor: pointer;
  color: inherit; font: inherit; text-decoration: underline;
  text-underline-offset: 0.15em;
}

/* ---------- Layout primitives ---------- */
.asfc-main { display: block; }
.asfc-section { padding-block: var(--section-y); }
@media (min-width: 768px) { .asfc-section { padding-block: var(--section-y-lg); } }
.as-container--narrow { max-width: var(--container-narrow); }

/* Page-header band — dark gold-on-black, full-bleed. PHP twin of the JSX
   PageHead. Rendered by template-parts/global/page-head.php at the top of
   interior pages. One <h1> per page. */
.asfc-page-head { background: var(--surface-inverse); color: var(--text-inverse); padding-block: var(--space-12); }
.asfc-page-head .asfc-section-head__rule { background: var(--gold-light); margin: var(--space-3) 0; }
.asfc-page-head__title { color: var(--brand-white); font-size: var(--font-size-5xl); margin: 0; }
.asfc-page-head__sub { color: var(--text-inverse-muted); font-size: var(--font-size-lg); margin: var(--space-3) 0 0; max-width: 560px; }
.asfc-page-head__body { color: var(--text-inverse-muted); margin: var(--space-4) 0 0; max-width: 640px; }
.asfc-page-head__body > :first-child { margin-top: 0; }
.asfc-page-head__body > :last-child { margin-bottom: 0; }
.asfc-subhead { margin: var(--space-12) 0 var(--space-6); }

.asfc-prose { max-width: var(--container-narrow); }
.asfc-prose > * + * { margin-top: var(--space-4); }
.asfc-prose h2 { margin-top: var(--space-10); }
.asfc-prose h3 { margin-top: var(--space-8); }
.asfc-prose img { border-radius: var(--radius-lg); margin-block: var(--space-6); }

/* ---------- Grids ---------- */
.asfc-grid { display: grid; gap: var(--space-6); grid-template-columns: 1fr; }
@media (min-width: 600px) {
  .asfc-grid--3, .asfc-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 960px) {
  .asfc-grid--3 { grid-template-columns: repeat(3, 1fr); }
  .asfc-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

/* Section head with a trailing action (e.g. "See all news"). */
.asfc-section-head--row {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: var(--space-4); flex-wrap: wrap;
}

/* ---------- Image placeholders (stand in for missing photography) ---------- */
.asfc-placeholder {
  display: block; width: 100%; aspect-ratio: 3 / 2;
  background-color: var(--surface-inverse);
  background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 7px);
  position: relative;
}
.asfc-placeholder--portrait { aspect-ratio: 3 / 4; }
.asfc-placeholder::after {
  content: attr(data-label);
  position: absolute; inset: auto 0 var(--space-3) 0; text-align: center;
  font-family: var(--font-body); font-size: var(--font-size-xs);
  letter-spacing: 0.04em; color: var(--text-inverse-muted); text-transform: lowercase;
}

/* ============================================================
   HEADER
   ============================================================ */
.asfc-header {
  position: sticky; top: 0; z-index: var(--z-header);
  background: var(--surface-default);
  border-bottom: var(--border-width) solid var(--border-default);
  transition: box-shadow var(--duration-base) var(--ease-standard);
}
.asfc-header.is-scrolled { box-shadow: var(--shadow-md); }
.asfc-header__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--space-6); min-height: 72px;
}
.asfc-header__brand {
  display: inline-flex; align-items: center; gap: var(--space-3);
  text-decoration: none; color: inherit; flex: none;
}
.asfc-header__brand img { height: 52px; width: auto; display: block; }
.asfc-header__wordmark {
  font-family: var(--font-heading); font-weight: var(--font-weight-semibold);
  text-transform: uppercase; letter-spacing: var(--tracking-heading);
  font-size: var(--font-size-lg); color: var(--text-heading);
}
.asfc-header__toggle { display: inline-flex; }

/* Nav: mobile-first full-width dropdown below the header; horizontal from 900px. */
.asfc-nav {
  position: absolute; top: 100%; left: 0; right: 0; width: auto;
  max-height: calc(100vh - 72px); max-height: calc(100dvh - 72px);
  background: var(--surface-default);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity var(--duration-base) var(--ease-standard),
              transform var(--duration-base) var(--ease-standard),
              visibility var(--duration-base) var(--ease-standard);
  display: flex; flex-direction: column; gap: 0;
  padding: var(--space-1) var(--gutter) var(--space-6); overflow-y: auto;
  border-bottom: var(--border-width) solid var(--border-default);
  box-shadow: var(--shadow-lg);
}
@media (min-width: 768px) { .asfc-nav { padding-inline: var(--gutter-lg); } }
.asfc-nav.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.asfc-nav__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 0;
}
.asfc-nav__list > li { border-bottom: var(--border-width) solid var(--border-default); }
.asfc-nav__list a {
  display: block; padding: var(--space-4) 0;
  font-family: var(--font-heading); text-transform: uppercase;
  letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--text-default); text-decoration: none;
}
.asfc-nav__list a:hover { color: var(--text-muted); }
.asfc-nav__list .current-menu-item > a,
.asfc-nav__list .current_page_item > a,
.asfc-nav__list .current-menu-ancestor > a { color: var(--accent-strong); }
.asfc-nav .asfc-btn { margin-top: var(--space-5); width: 100%; justify-content: center; }
body.asfc-nav-open { overflow: hidden; }

@media (min-width: 900px) {
  .asfc-header__toggle { display: none; }
  .asfc-nav {
    position: static; width: auto; max-height: none; transform: none; background: none;
    opacity: 1; visibility: visible;
    flex-direction: row; align-items: center; padding: 0; border: 0; overflow: visible;
    box-shadow: none; margin-left: auto;
  }
  .asfc-nav__list { flex-direction: row; align-items: center; gap: var(--space-5); }
  .asfc-nav__list > li { border-bottom: 0; }
  .asfc-nav__list a { font-size: var(--font-size-sm); padding: 0 0 4px; white-space: nowrap; border-bottom: 2px solid transparent; transition: color 160ms ease; }
  .asfc-nav__list .current-menu-item > a,
  .asfc-nav__list .current_page_item > a,
  .asfc-nav__list .current-menu-ancestor > a { border-bottom-color: var(--accent-strong); }
  .asfc-nav .asfc-btn { margin-top: 0; margin-left: var(--space-5); width: auto; }
  body.asfc-nav-open { overflow: auto; }
}

/* ============================================================
   HERO
   ============================================================ */
/* Editorial photo hero (matches HomeScreen design): full-bleed warm B/W photo
   with subtle scroll parallax under stacked scrims + gold glow + diagonal hatch.
   Left-aligned content column: kicker -> h1 headline -> intro -> two CTAs. */
.asfc-hero {
  position: relative; isolation: isolate; overflow: hidden;
  background: var(--surface-inverse); color: #fff;
  display: flex; align-items: center;
}
@media (min-width: 768px) { .asfc-hero { min-height: 78vh; max-height: 900px; } }

/* Full-bleed photo layer. */
.asfc-hero__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.asfc-hero__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 32%;
  filter: grayscale(1) contrast(1.05) brightness(0.82) sepia(0.18);
  transform: scale(1.22); will-change: transform;
}

/* Legibility scrims — left-heavy (content sits left) + bottom anchor. */
.asfc-hero__scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.asfc-hero__scrim--main {
  background: linear-gradient(95deg, rgba(20,17,13,0.94) 0%, rgba(20,17,13,0.78) 38%, rgba(20,17,13,0.30) 70%, rgba(20,17,13,0.55) 100%);
}
.asfc-hero__scrim--base {
  background: linear-gradient(0deg, rgba(20,17,13,0.75), transparent 45%);
}
/* gold radial glow, top-right */
.asfc-hero__glow {
  position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0.45;
  background: radial-gradient(60% 80% at 78% 14%, rgba(234,218,167,0.18), transparent 60%);
}
.asfc-hero__hatch { position: absolute; inset: 0; z-index: 2; pointer-events: none; }

/* Content column aligns to the page container (left edge), not a centred
   760px block. Title/intro keep their own narrower measures below. */
/* A fixed content measure, centred in the hero. width:100% defeats the
   flex shrink-to-content (parent is display:flex) so it's a true 760px
   column rather than collapsing to its text and drifting right. */
.asfc-hero__inner {
  position: relative; z-index: 3;
  width: 100%;
  max-width: var(--container-narrow);
  padding-top: var(--space-24); padding-bottom: var(--space-24);
}
.asfc-hero .asfc-kicker--inverse { margin-bottom: 0; }
.asfc-hero__title {
  color: #fff; font-size: clamp(56px, 8vw, 96px);
  margin: 12px 0 16px; line-height: 0.92; max-width: 13ch;
  text-shadow: 0 2px 30px rgba(0,0,0,0.45);
}
.asfc-hero__accent { color: var(--gold-light); }
.asfc-hero__intro {
  color: var(--text-inverse-muted); font-size: var(--font-size-lg);
  max-width: 520px; margin: 0 0 var(--space-6);
  text-shadow: 0 1px 16px rgba(0,0,0,0.4);
}
.asfc-hero__ctas { display: flex; gap: var(--space-3); flex-wrap: wrap; }

/* ============================================================
   NEXT FIXTURE
   The card itself is the shared .asfc-fixture--next component
   (components.css). Theme adds only the page-level framing:
   centred heading + constrained card width.
   ============================================================ */
.asfc-next-fixture .asfc-section-head { text-align: center; }
.asfc-next-fixture .asfc-section-head__rule { margin-inline: auto; }
.asfc-next-fixture .asfc-fixture--next { max-width: 720px; margin-inline: auto; }
@media (max-width: 600px) {
  .asfc-next-fixture .asfc-fixture--next { padding: var(--space-6); }
  .asfc-next-fixture .asfc-fixture__teams { gap: var(--space-4); }
}

/* ============================================================
   NEWS / EVENT CARDS
   News cards are the shared .asfc-news component (components.css) +
   the cards/news-card.php partial. Only event cards (no component yet)
   are styled here.
   ============================================================ */
.asfc-event-card__media { display: block; position: relative; }
.asfc-event-card__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.asfc-event-card__datechip {
  position: absolute; top: var(--space-3); left: var(--space-3);
  background: var(--gold-light); color: #0a0a0a; border-radius: var(--radius-md);
  padding: var(--space-2) var(--space-3); text-align: center; line-height: 1;
  font-family: var(--font-heading);
}
.asfc-event-card__day { display: block; font-size: var(--font-size-xl); font-weight: var(--font-weight-semibold); }
.asfc-event-card__mon { display: block; font-size: var(--font-size-xs); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); }
.asfc-event-card__title { font-size: var(--font-size-lg); margin: 0 0 var(--space-2); }
.asfc-event-card__title a { text-decoration: none; color: inherit; }
.asfc-event-card__meta { margin: 0; color: var(--text-muted); font-size: var(--font-size-sm); display: flex; flex-direction: column; gap: var(--space-1); }
.asfc-event-card__meta span { display: inline-flex; align-items: center; gap: var(--space-2); }

/* ============================================================
   LEAGUE TABLE
   The table itself is the shared .asfc-table component (components.css).
   Theme adds only the page-level framing (full-table CTA spacing).
   ============================================================ */
.asfc-league .asfc-btn { margin-top: var(--space-6); }

/* ============================================================
   FIXTURES & RESULTS (combined page layout)
   Two columns — upcoming fixtures (.asfc-fixture cards with a Watch Live CTA)
   and recent results (.asfc-result rows + match-report bars) — then the full
   league table. The cards, rows and table are shared components
   (components.css); only the page framing lives here. Matches the signed-off
   "Fixtures & Results" design. The grid auto-collapses to one column ≤~720px.
   ============================================================ */
.asfc-fr { padding-top: var(--space-8); padding-bottom: var(--space-20); }
.asfc-fr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: var(--space-10); align-items: start; }
.asfc-fr-colhead {
  font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm);
  font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); color: var(--text-default);
  padding: 0 0 10px; margin-bottom: var(--space-5); border-bottom: var(--border-width-thick) solid var(--accent-strong);
}
.asfc-fr-month {
  font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm);
  font-size: var(--font-size-sm); color: var(--text-muted); margin: var(--space-5) 0 var(--space-3);
}
.asfc-fr-cards { display: grid; gap: var(--space-4); }
.asfc-fr-results { border: var(--border-width) solid var(--border-default); border-radius: var(--radius-lg); overflow: hidden; }
.asfc-fr-league { margin-top: var(--space-16); }
.asfc-fr-league__head { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: var(--space-4); }
.asfc-fr-league__action { margin-bottom: var(--space-6); }
.asfc-fr-table-wrap { border: var(--border-width) solid var(--border-default); border-radius: var(--radius-lg); overflow: hidden; }
.asfc-fr-caption { margin: var(--space-4) 0 0; font-size: var(--font-size-sm); color: var(--text-muted); }
.asfc-match-list p.asfc-match-list__month {font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); color: var(--text-muted); margin-top: var(--space-5);}
.asfc-match-list .asfc-fixture { margin:0 0 25px 0 }

/* ============================================================
   SPONSOR-A-PLAYER (commercial card — no design-system component)
   Player cards themselves are the shared .asfc-player component
   (components.css). Only the sponsor-a-player commerce card lives here.
   ============================================================ */
.asfc-sap-card__media { position: relative; }
.asfc-sap-card__media img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.asfc-sap-card__number {
  position: absolute; left: var(--space-3); bottom: var(--space-3); z-index: 1;
  font-family: var(--font-heading); font-weight: var(--font-weight-bold);
  font-size: var(--font-size-5xl); line-height: 1; color: var(--gold-light);
}
.asfc-sap-card__media.as-scrim::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(0deg, rgba(24,21,16,0.92) 0%, rgba(24,21,16,0.30) 55%, rgba(24,21,16,0) 100%);
}
.asfc-sap-card__name { font-size: var(--font-size-xl); margin: 0; }
.asfc-sap-card__pos { color: var(--text-muted); margin: var(--space-1) 0 0; font-size: var(--font-size-sm); }
.asfc-sap-card__price { font-family: var(--font-heading); font-size: var(--font-size-lg); margin: var(--space-3) 0; }
.asfc-sap-card__credit { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--success); font-weight: var(--font-weight-medium); margin: var(--space-3) 0 0; }
.asfc-sap-card--taken { opacity: 0.92; }

/* ============================================================
   SPONSORS
   ============================================================ */
.asfc-sponsor-strip { background: var(--gold-tint-50); border-top: 1px solid var(--gold-tint-300); padding-block: var(--space-10); }
.asfc-sponsor-strip__inner { text-align: center; }
.asfc-sponsor-strip__label { display: block; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-kicker); font-size: var(--font-size-xs); color: var(--text-muted); margin: 0 0 var(--space-5); }
.asfc-sponsor-strip__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: var(--space-8); align-items: center; justify-content: center;
}
.asfc-sponsor-strip__name { font-family: var(--font-heading); text-transform: uppercase; font-weight: var(--font-weight-semibold); font-size: var(--font-size-lg); color: var(--neutral-700); }
.asfc-sponsor-strip__slot { font-family: var(--font-heading); text-transform: uppercase; font-weight: var(--font-weight-semibold); font-size: var(--font-size-sm); color: var(--neutral-400); border: 1px dashed var(--gold-tint-400); border-radius: var(--radius-sm); padding: 8px 16px; }
.asfc-sponsor-strip__item img { max-height: 56px; width: auto; filter: grayscale(1); opacity: 0.8; transition: filter var(--duration-base), opacity var(--duration-base); }
.asfc-sponsor-strip__item:hover img { filter: none; opacity: 1; }
.asfc-sponsor-grid { display: grid; gap: var(--space-6); grid-template-columns: repeat(2, 1fr); margin-bottom: var(--space-10); }
@media (min-width: 768px) { .asfc-sponsor-grid { grid-template-columns: repeat(4, 1fr); } }
.asfc-sponsor-grid__item {
  display: flex; align-items: center; justify-content: center;
  padding: var(--space-6); background: var(--surface-raised);
  border: var(--border-width) solid var(--border-default); border-radius: var(--radius-lg);
}
.asfc-sponsor-grid__item img { max-height: 72px; width: auto; }

/* ============================================================
   DONATE / THERMOMETER  +  PRIZE DRAW
   (Donate band + thermometer card live lower down with the home sections;
   the old generic .asfc-thermo block was unused and has been removed.)
   ============================================================ */
.asfc-tape { background: var(--gold-light); color: #0a0a0a; border-top: 1px solid rgba(24,21,16,0.14); border-bottom: 1px solid rgba(24,21,16,0.14); }
.asfc-pdtape-row { display: flex; align-items: center; gap: var(--space-6); justify-content: space-between; padding-block: var(--space-4); }
.asfc-pdtape-msg { display: flex; align-items: center; gap: var(--space-4); min-width: 0; flex-wrap: wrap; }
.asfc-pdtape-pill { display: inline-flex; align-items: center; gap: 7px; flex: none; white-space: nowrap; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-weight: var(--font-weight-semibold); font-size: var(--font-size-xs); line-height: 1; padding: 7px 11px; border-radius: var(--radius-pill); background: #181510; color: var(--gold-light); border: 1px solid #181510; }
.asfc-pdtape-pill i { width: 14px; height: 14px; }
.asfc-pdtape-text { min-width: 0; }
.asfc-pdtape-hook { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-weight: var(--font-weight-semibold); font-size: var(--font-size-lg); color: #0a0a0a; line-height: 1.1; }
.asfc-pdtape-sub { color: rgba(10,10,10,0.7); font-size: var(--font-size-sm); margin-left: 10px; }
.asfc-pdtape-divider { border-left: 1px solid rgba(24,21,16,0.22); align-self: stretch; }
.asfc-pdtape-compliance { display: inline-flex; align-items: center; gap: 6px; flex: none; white-space: nowrap; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-weight: var(--font-weight-semibold); font-size: var(--font-size-xs); color: rgba(10,10,10,0.75); }
.asfc-pdtape-compliance i { width: 13px; height: 13px; }
.asfc-pdtape-cta { flex: none; }
@media (max-width: 768px) {
  .asfc-pdtape-row { flex-direction: column; align-items: flex-start; gap: var(--space-4); }
  .asfc-pdtape-cta { width: 100%; }
  .asfc-pdtape-cta .asfc-btn { width: 100%; }
  .asfc-pdtape-divider { display: none; }
  .asfc-pdtape-sub { display: block; margin-left: 0; }
}
.asfc-microline { font-family: var(--font-body); text-transform: none; letter-spacing: 0; font-size: var(--font-size-xs); opacity: 0.75; }
.asfc-film__a11y { margin-top: var(--space-4); font-size: var(--font-size-sm); }

/* ============================================================
   PRIZE DRAW — dedicated landing page (matches PrizeDrawScreen +
   prize-draw-panel). Free draw: celebration hero -> what you win
   -> entry mechanic (entryOnly) -> plain-English rules. The .jsx
   screen, this CSS and page-prize-draw.php emit IDENTICAL markup.
   Page prefix .asfc-pd-* ; surface flips via [data-surface="dark"].
   ============================================================ */

/* shared: inner section padding + gold rule */
.asfc-pd-section { padding-block: var(--space-20); }
.asfc-pd-rule { border: 0; height: 2px; width: 48px; background: var(--gold-light); margin: 10px 0 16px; }

/* shared: compliance pills (18+ · no purchase · free prize draw) */
.asfc-pd-pills { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.asfc-pd-pills--center { justify-content: center; }
.asfc-pd-pill { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); line-height: 1; padding: 6px 10px; border-radius: var(--radius-pill); background: var(--gold-tint-200); color: #0a0a0a; border: 1px solid var(--gold-tint-400); }
.asfc-pd-pill i, .asfc-pd-pill svg { width: 13px; height: 13px; }
.asfc-pd-pills--dark .asfc-pd-pill,
[data-surface="dark"] .asfc-pd-pill { background: rgba(234,218,167,0.14); color: var(--gold-light); border-color: rgba(234,218,167,0.36); }

/* ---- HERO (celebration photo, page h1) ---- */
.asfc-pd-hero { position: relative; overflow: hidden; color: #fff; background: #15120d; }
.asfc-pd-hero__media, .asfc-pd-hero__scrim, .asfc-pd-hero__grad, .asfc-pd-hero__hatch { position: absolute; inset: 0; }
.asfc-pd-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 32%; filter: grayscale(1) contrast(1.05) brightness(0.82) sepia(0.18); }
.asfc-pd-hero__grad { background: linear-gradient(90deg, rgba(20,17,13,0.86) 0%, rgba(20,17,13,0.52) 52%, rgba(20,17,13,0.18) 100%); }
.asfc-pd-hero__inner { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: min(78vh, 760px); padding-top: var(--space-24); padding-bottom: var(--space-20); }
.asfc-pd-hero__content { max-width: 700px; }
.asfc-pd-hero__rule { border: 0; height: 2px; width: 48px; background: var(--gold-light); margin: 12px 0 16px; }
.asfc-pd-hero__title { color: #fff; font-size: var(--font-size-6xl); line-height: var(--line-height-display); margin: 0 0 18px; max-width: 15ch; text-shadow: 0 2px 28px rgba(0,0,0,0.5); }
.asfc-pd-hero__intro { color: #fff; font-size: var(--font-size-xl); line-height: var(--line-height-normal); margin: 0 0 22px; max-width: 560px; text-shadow: 0 1px 16px rgba(0,0,0,0.55); }
.asfc-pd-hero__pills { margin-bottom: var(--space-8); }
.asfc-pd-hero__actions { display: flex; gap: var(--space-5); flex-wrap: wrap; align-items: center; }
.asfc-pd-hero__next { display: inline-flex; align-items: center; gap: 10px; color: var(--text-inverse-muted); font-size: var(--font-size-sm); }
.asfc-pd-hero__next i, .asfc-pd-hero__next svg { width: 16px; height: 16px; color: var(--gold-light); }
.asfc-pd-hero__next strong, .asfc-pd-hero__next a { color: #fff; font-weight: var(--font-weight-semibold); }

/* ---- WHAT YOU WIN ---- */
.asfc-pd-prize { background: var(--surface-default); }
.asfc-pd-prizegrid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-12); align-items: center; }
.asfc-pd-prize__h { color: var(--text-heading); font-size: var(--font-size-4xl); line-height: var(--line-height-tight); margin: 0 0 16px; max-width: 16ch; }
.asfc-pd-prize__lead { color: var(--text-muted); font-size: var(--font-size-lg); line-height: var(--line-height-normal); margin: 0 0 var(--space-8); max-width: 460px; }
.asfc-pd-inclusions { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-5); }
.asfc-pd-inc { display: flex; gap: var(--space-4); align-items: flex-start; }
.asfc-pd-inc__icon { flex: none; width: 42px; height: 42px; border-radius: var(--radius-md); background: var(--gold-tint-100); border: 1px solid var(--gold-tint-400); display: inline-flex; align-items: center; justify-content: center; }
.asfc-pd-inc__icon i, .asfc-pd-inc__icon svg { width: 20px; height: 20px; color: var(--brand-gold); }
.asfc-pd-inc__t { display: block; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-weight: var(--font-weight-semibold); font-size: var(--font-size-base); color: var(--text-heading); }
.asfc-pd-inc__s { display: block; color: var(--text-muted); font-size: var(--font-size-sm); line-height: var(--line-height-snug); margin-top: 2px; }
.asfc-pd-prizefig { margin: 0; position: relative; width: 100%; aspect-ratio: 4 / 3; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--border-default); background: var(--gold-tint-100); background-image: repeating-linear-gradient(135deg, rgba(24,21,16,0.07) 0 12px, rgba(24,21,16,0.02) 12px 24px); display: flex; align-items: flex-end; }
.asfc-pd-prizefig__label { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--font-size-xs); color: var(--text-muted); padding: 10px 12px; }
.asfc-pd-prizefig__icon { position: absolute; top: 14px; right: 14px; width: 26px; height: 26px; color: var(--brand-gold); }

/* ---- ENTRY MECHANIC (prize-draw-panel, entryOnly + shared card) ---- */
.asfc-pd-enter { background: var(--surface-tint); color: var(--text-default); }
.asfc-pd-enter__inner { max-width: 680px; margin: 0 auto; }
.asfc-pd-enter__head { text-align: center; margin-bottom: var(--space-8); }
.asfc-pd-enter__head .asfc-pd-rule { margin-inline: auto; }
.asfc-pd-enter__h { color: var(--text-heading); font-size: var(--font-size-4xl); line-height: var(--line-height-tight); margin: 0 0 14px; }
.asfc-pd-enter__lead { color: var(--text-muted); font-size: var(--font-size-lg); line-height: var(--line-height-normal); margin: 0 auto; max-width: 520px; }
.asfc-pd-enter__head .asfc-pd-pills { margin-top: var(--space-6); }

/* layout shells (also used by the home-set two-column / ticket variants) */
.asfc-pd-cols { display: grid; grid-template-columns: 1.04fr 0.96fr; gap: var(--space-12); align-items: start; }
.asfc-pd-ticket { position: relative; display: grid; grid-template-columns: 1.04fr 0.96fr; }
.asfc-pd-perf-h, .asfc-pd-notch-h { display: none; }

/* entry card */
.asfc-pd-card { border-radius: var(--radius-lg); padding: var(--space-8); background: var(--surface-raised); border: 1px solid var(--border-default); box-shadow: var(--shadow-md); }
.asfc-pd-card__h { color: var(--text-heading); font-size: var(--font-size-2xl); margin: 0 0 var(--space-5); }
.asfc-pd-steps { list-style: none; margin: 0 0 var(--space-6); padding: 0; display: flex; flex-direction: column; gap: var(--space-4); }
.asfc-pd-steps > li { display: flex; gap: var(--space-3); align-items: flex-start; }
.asfc-pd-step__n { flex: none; width: 26px; height: 26px; border-radius: var(--radius-pill); display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-heading); font-weight: var(--font-weight-semibold); font-size: var(--font-size-sm); margin-top: 1px; background: var(--surface-inverse); color: #fff; }
.asfc-pd-step__t { color: var(--text-default); font-size: var(--font-size-base); line-height: var(--line-height-snug); }

/* entry form (mailing-list-signup embed) */
.asfc-pd-form { min-height: 188px; display: flex; flex-direction: column; gap: var(--space-4); }
.asfc-pd-field { display: flex; flex-direction: column; gap: 6px; }
.asfc-pd-field__label { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); color: var(--text-default); }
.asfc-pd-field__req { color: var(--error); }
.asfc-pd-consent { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.asfc-pd-consent input { width: 20px; height: 20px; margin-top: 1px; flex: none; accent-color: #181510; }
.asfc-pd-consent span { color: var(--text-muted); font-size: var(--font-size-sm); line-height: var(--line-height-snug); }
.asfc-pd-reassure { display: flex; align-items: center; gap: 8px; color: var(--text-muted); font-size: var(--font-size-sm); margin: var(--space-5) 0 0; }
.asfc-pd-reassure i, .asfc-pd-reassure svg { width: 15px; height: 15px; color: var(--brand-gold); flex: none; }
.asfc-pd-cardterms { border-top: 1px solid var(--border-default); margin-top: var(--space-5); padding-top: var(--space-4); }
.asfc-pd-cardterms p { color: var(--text-muted); font-size: var(--font-size-xs); line-height: var(--line-height-snug); margin: 0; }
.asfc-pd-cardterms a { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: var(--link-on-light); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); text-decoration: underline; text-underline-offset: 2px; }
.asfc-pd-cardterms a i, .asfc-pd-cardterms a svg { width: 15px; height: 15px; }

/* ---- RULES, PLAINLY (dark band) ---- */
.asfc-pd-rules { background: var(--surface-inverse); color: var(--text-inverse); }
.asfc-pd-rules__head { max-width: 560px; margin-bottom: var(--space-10); }
.asfc-pd-rules__h { color: #fff; font-size: var(--font-size-4xl); line-height: var(--line-height-tight); margin: 0; max-width: 16ch; }
.asfc-pd-rulesgrid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); }
.asfc-pd-ruleitem { display: flex; gap: var(--space-4); align-items: flex-start; }
.asfc-pd-ruleitem__icon { flex: none; width: 42px; height: 42px; border-radius: var(--radius-md); background: rgba(234,218,167,0.1); border: 1px solid var(--border-inverse); display: inline-flex; align-items: center; justify-content: center; }
.asfc-pd-ruleitem__icon i, .asfc-pd-ruleitem__icon svg { width: 20px; height: 20px; color: var(--gold-light); }
.asfc-pd-ruleitem__t { display: block; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-weight: var(--font-weight-semibold); font-size: var(--font-size-lg); color: #fff; }
.asfc-pd-ruleitem__s { display: block; color: var(--text-inverse-muted); font-size: var(--font-size-sm); line-height: var(--line-height-normal); margin-top: 4px; }
.asfc-pd-rules__foot { margin-top: var(--space-10); padding-top: var(--space-6); border-top: 1px solid var(--border-inverse); display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; justify-content: space-between; }
.asfc-pd-rules__note { color: var(--text-inverse-muted); font-size: var(--font-size-sm); margin: 0; max-width: 520px; line-height: var(--line-height-normal); }
.asfc-pd-rules__link { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); text-decoration: underline; text-underline-offset: 3px; }
.asfc-pd-rules__link i, .asfc-pd-rules__link svg { width: 17px; height: 17px; }

/* ---- prize-draw responsive ---- */
@media (max-width: 880px) {
  .asfc-pd-prizegrid { grid-template-columns: 1fr; gap: var(--space-8); }
  .asfc-pd-rulesgrid { grid-template-columns: 1fr; }
  .asfc-pd-cols { grid-template-columns: 1fr; gap: var(--space-8); }
  .asfc-pd-ticket { grid-template-columns: 1fr; }
  .asfc-pd-perf-v, .asfc-pd-notch-v { display: none !important; }
  .asfc-pd-perf-h, .asfc-pd-notch-h { display: block !important; }
}
@media (max-width: 600px) {
  .asfc-pd-hero__inner { min-height: 70vh; }
  .asfc-pd-hero__title { font-size: 3rem; }
  .asfc-pd-hero__intro { font-size: 1.125rem; }
  .asfc-pd-prize__h, .asfc-pd-enter__h, .asfc-pd-rules__h { font-size: 2rem; }
}

/* ============================================================
   FILM / SOCIAL — consent-gated embeds
   ============================================================ */
.asfc-film__frame, .asfc-social__frame {
  position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-lg);
  overflow: hidden; background: var(--surface-inverse-raised);
  border: var(--border-width) solid var(--border-inverse);
}
.asfc-social__frame { aspect-ratio: auto; min-height: 360px; }
.asfc-film__frame iframe, .asfc-social__frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.asfc-consent-block {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: var(--space-3);
  text-align: center; padding: var(--space-6); color: var(--text-inverse-muted);
}
.asfc-consent-block i { width: 40px; height: 40px; color: var(--gold-light); }
.asfc-consent-block p { max-width: 42ch; margin: 0; }

/* ============================================================
   TIMELINE (our journey) — vertical rail on mobile, alternating
   left/right of a centre spine on desktop (matches JourneyScreen)
   ============================================================ */
.asfc-timeline { list-style: none; margin: var(--space-10) 0 0; padding: 0; position: relative; }
.asfc-timeline::before { content: ""; position: absolute; top: 6px; bottom: 6px; left: 11px; width: 2px; background: var(--border-strong); }
.asfc-tl-item { position: relative; padding: 0 0 var(--space-10) 44px; }
.asfc-tl-item:last-child { padding-bottom: 0; }
.asfc-tl-dot { position: absolute; left: 0; top: 4px; width: 24px; height: 24px; border-radius: var(--radius-pill); background: var(--surface-subtle); border: 2px solid var(--brand-gold); box-shadow: 0 0 0 4px var(--surface-subtle); }
.asfc-tl-item--featured .asfc-tl-dot { background: var(--brand-gold); }
.asfc-tl-year { font-family: var(--font-heading); font-weight: 700; font-size: var(--font-size-2xl); line-height: 1; color: var(--text-heading); letter-spacing: var(--tracking-caps-sm); }
.asfc-tl-title { font-size: var(--font-size-xl); margin: 8px 0 8px; }
.asfc-tl-body { color: var(--text-muted); margin: 0; max-width: 48ch; line-height: 1.65; }
.asfc-tl-item--featured .asfc-tl-content { background: var(--gold-tint-50); border: var(--border-width) solid var(--gold-tint-300); border-radius: var(--radius-lg); padding: var(--space-5) var(--space-6); box-shadow: var(--shadow-sm); }

@media (min-width: 881px) {
  .asfc-timeline::before { left: 50%; transform: translateX(-1px); }
  .asfc-tl-item { width: 50%; padding: 0 48px var(--space-12) 0; text-align: right; }
  .asfc-tl-item:last-child { padding-bottom: 0; }
  .asfc-tl-item:nth-child(even) { margin-left: 50%; padding: 0 0 var(--space-12) 48px; text-align: left; }
  .asfc-tl-dot { left: auto; right: -12px; top: 2px; }
  .asfc-tl-item:nth-child(even) .asfc-tl-dot { left: -12px; right: auto; }
  .asfc-tl-body { max-width: 48ch; margin-left: auto; }
  .asfc-tl-item:nth-child(even) .asfc-tl-body { margin-left: 0; margin-right: auto; }
}

/* Our Journey — narrative + alumni pathway */
.asfc-narrative { max-width: 680px; display: flex; flex-direction: column; gap: var(--space-5); font-size: var(--font-size-lg); line-height: 1.6; color: var(--text-default); }
.asfc-narrative > p { margin: 0; }
.asfc-alumni { list-style: none; margin: var(--space-8) 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-10); }
@media (max-width: 720px) { .asfc-alumni { grid-template-columns: 1fr; } }
.asfc-alumni__item { padding: var(--space-5) 0; border-top: var(--border-width) solid var(--border-inverse); display: flex; gap: var(--space-4); }
.asfc-alumni__item i, .asfc-alumni__item svg { width: 20px; height: 20px; color: var(--gold-light); flex: none; margin-top: 4px; }
.asfc-alumni__name { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-weight: var(--font-weight-semibold); color: var(--brand-white); }
.asfc-alumni__path { color: var(--text-inverse-muted); margin-top: 4px; }
.asfc-cta-center { max-width: 640px; margin: 0 auto; text-align: center; }
.asfc-cta-center p { color: var(--text-muted); margin: 0 auto var(--space-8); max-width: 520px; font-size: var(--font-size-lg); }
.asfc-cta-center .asfc-section-head { text-align: center; }
.asfc-cta-center .asfc-section-head__rule { margin-inline: auto; }

/* ============================================================
   ARTICLE / REPORT
   ============================================================ */
.asfc-article__head, .asfc-report__head { padding-block: var(--section-y); }
.asfc-article__head h1, .asfc-report__head h1 { color: var(--brand-white); font-size: var(--font-size-5xl); line-height: 1.05; margin: 0; }
.asfc-article__back { display: inline-flex; align-items: center; gap: 6px; color: var(--text-inverse-muted); font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); text-decoration: none; margin-bottom: var(--space-6); }
.asfc-article__back:hover { color: var(--gold-light); }
.asfc-article__back i, .asfc-article__back svg { width: 14px; height: 14px; }
.asfc-article__tag { margin-bottom: var(--space-4); }
.asfc-article__standfirst { font-size: var(--font-size-xl); color: var(--gold-light); line-height: 1.45; max-width: 50ch; margin: var(--space-4) 0 0; }
.asfc-article__date { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); color: var(--text-inverse-muted); margin: var(--space-5) 0 0; }
.asfc-article__leadwrap { background: var(--surface-inverse); }
.asfc-article__lead { margin: 0; transform: translateY(40px); }
.asfc-article__lead img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.asfc-article__hero { margin: 0; }
.asfc-article__hero img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.asfc-article__body { padding-top: calc(var(--section-y) + 40px); padding-bottom: var(--section-y); }
.asfc-article__close { margin: var(--space-2) 0 0; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-2xl); font-weight: var(--font-weight-semibold); color: var(--text-heading); }
.asfc-article__foot { border-top: var(--border-width) solid var(--border-default); margin-top: var(--space-8); padding-top: var(--space-6); }
.asfc-article__more { background: var(--surface-subtle); border-top: var(--border-width) solid var(--border-default); }
.asfc-article__more h2 { font-size: var(--font-size-2xl); margin: 0 0 var(--space-6); }
.asfc-article__more-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-5); }
@media (max-width: 680px) { .asfc-article__more-grid { grid-template-columns: 1fr; } }
.asfc-report__score { font-family: var(--font-heading); text-transform: uppercase; font-size: var(--font-size-2xl); }
.asfc-report__score strong { color: var(--gold-light); margin-inline: var(--space-2); }

/* ============================================================
   GALLERY
   ============================================================ */
.asfc-gallery { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .asfc-gallery { grid-template-columns: repeat(3, 1fr); } }
.asfc-gallery__item img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-md); }

/* ============================================================
   FOOTER
   ============================================================ */
.asfc-footer { position: relative; isolation: isolate; overflow: hidden; padding-top: var(--space-16); }
.asfc-footer__hatch { position: absolute; inset: 0; z-index: 0; }
.asfc-footer > .as-container { position: relative; z-index: 1; }
.asfc-footer__top { display: grid; gap: var(--space-10); grid-template-columns: 1fr; padding-top: 0; padding-bottom: var(--space-12); }
@media (min-width: 860px) { .asfc-footer__top { grid-template-columns: 1.7fr 1.5fr 1fr; gap: var(--space-8); } }
.asfc-footer__logo { width: auto; height: 64px; display: block; margin-bottom: var(--space-4); }
.asfc-footer__blurb { color: var(--text-inverse-muted); font-size: var(--font-size-sm); max-width: 320px; margin: 0 0 var(--space-5); line-height: 1.6; }
.asfc-footer__signup { max-width: 360px; }
.asfc-footer__signup .asfc-section-head { text-align: left; margin-bottom: var(--space-3); }
.asfc-footer__signup .asfc-section-head__rule { display: none; }
.asfc-footer__signup .asfc-section-head h2 { font-size: var(--font-size-lg); line-height: 1.2; margin-top: var(--space-2); }
.asfc-footer__signup .asfc-signup__inner > p { color: var(--text-inverse-muted); font-size: var(--font-size-sm); line-height: 1.6; margin: var(--space-2) 0 var(--space-4); }
.asfc-footer__nav-heading { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); color: var(--gold-light); font-weight: var(--font-weight-semibold); margin: 0 0 var(--space-4); }
.asfc-footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.asfc-footer__list a { text-decoration: none; color: var(--text-inverse); font-size: var(--font-size-sm); width: max-content; line-height: 1.2; }
.asfc-footer__list a:hover { color: var(--gold-light); }
.asfc-footer__divider { border: 0; height: 1px; background: var(--border-inverse); margin: 0; }
.asfc-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); padding-block: var(--space-8); flex-wrap: wrap; }
.asfc-socials { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--space-3); }
.asfc-socials__link { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-md); border: var(--border-width) solid var(--border-inverse); color: var(--text-inverse); transition: background-color .15s, border-color .15s, color .15s; }
.asfc-socials__link:hover { background: var(--surface-inverse-raised); border-color: var(--gold-light); color: var(--gold-light); }
.asfc-footer__meta { display: flex; align-items: center; gap: var(--space-6); color: var(--text-inverse-muted); flex-wrap: wrap; font-size: var(--font-size-xs); }
.asfc-footer__legal-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--space-4); }
.asfc-footer__meta a, .asfc-footer__legal-list a { color: var(--text-inverse); text-decoration: underline; text-underline-offset: 3px; }
.asfc-footer__meta a:hover, .asfc-footer__legal-list a:hover { color: var(--gold-light); }
.asfc-footer__legal { padding-bottom: var(--space-8); margin: 0; color: var(--text-inverse-muted); font-size: var(--font-size-xs); line-height: 1.7; }
@media (max-width: 600px) {
  .asfc-footer__bottom { flex-direction: column; align-items: flex-start; gap: var(--space-5); }
  .asfc-footer__meta { gap: var(--space-3); }
}

/* ============================================================
   FORMS
   ============================================================ */
.asfc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.asfc-contact-form, .asfc-signup__form { display: flex; flex-direction: column; gap: var(--space-5); }
/* Filter chips (news archive). */
.asfc-chips { display: flex; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-8); }
.asfc-chip { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); padding: 8px 14px; border-radius: var(--radius-pill); cursor: pointer; border: var(--border-width) solid var(--border-strong); background: transparent; color: var(--text-default); transition: background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard); }
.asfc-chip:hover { background: var(--neutral-100); }
.asfc-chip.is-active { background: var(--surface-inverse); border-color: var(--surface-inverse); color: var(--brand-white); }
/* Contact — form + details aside (matches ContactScreen). */
.asfc-contact-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--space-12); align-items: start; }
@media (max-width: 880px) { .asfc-contact-grid { grid-template-columns: 1fr; gap: var(--space-8); } }
.asfc-contact-details { display: flex; flex-direction: column; gap: var(--space-6); }
.asfc-contact-detail { display: flex; gap: var(--space-3); }
.asfc-contact-detail__icon { width: 44px; height: 44px; flex: none; border-radius: var(--radius-md); background: var(--gold-tint-100); border: var(--border-width) solid var(--gold-tint-300); display: inline-flex; align-items: center; justify-content: center; color: var(--neutral-700); }
.asfc-contact-detail__icon i, .asfc-contact-detail__icon svg { width: 20px; height: 20px; }
.asfc-contact-detail__h { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); margin: 0 0 2px; }
.asfc-contact-detail__line { color: var(--text-muted); font-size: var(--font-size-sm); line-height: 1.5; }
.asfc-contact-detail__line a { color: inherit; text-decoration: none; }
.asfc-contact-detail__line a:hover { color: var(--accent-strong); }

/* ============================================================
   GET INVOLVED — photo hero + overlapping pathway hub + stat strip
   (matches GetInvolvedScreen). Hub classes are shared with the
   Community "how else to help" hub.
   ============================================================ */
.asfc-gi-hero { position: relative; isolation: isolate; overflow: hidden; min-height: 460px; display: flex; align-items: center; background: linear-gradient(125deg,#23201a,#181510 70%); color: #fff; }
.asfc-gi-hero__img { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 38%; filter: grayscale(1) contrast(1.05) brightness(0.9) sepia(0.16); }
.asfc-gi-hero__scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.asfc-gi-hero__scrim--main { background: linear-gradient(90deg, rgba(20,17,13,0.88) 0%, rgba(20,17,13,0.58) 40%, rgba(20,17,13,0.10) 100%); }
.asfc-gi-hero__scrim--base { background: linear-gradient(0deg, rgba(20,17,13,0.94) 0%, rgba(20,17,13,0) 58%); }
.asfc-gi-hero__hatch { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.asfc-gi-hero__inner { position: relative; z-index: 3; width: 100%; padding-top: var(--space-20); padding-bottom: var(--space-24); }
.asfc-gi-hero__rule { border: 0; height: 2px; width: 48px; background: var(--gold-light); margin: var(--space-3) 0 var(--space-4); }
.asfc-gi-hero__title { color: #fff; font-size: clamp(56px, 8vw, 96px); line-height: 0.92; margin: 0; max-width: 12ch; }
.asfc-gi-hero__intro { color: var(--text-inverse-muted); font-size: var(--font-size-lg); max-width: 440px; margin: var(--space-5) 0 0; }

.asfc-hub-row { position: relative; z-index: 3; margin-top: -96px; padding-bottom: var(--space-16); }
@media (max-width: 560px) { .asfc-hub-row { margin-top: var(--space-8); } }
.asfc-hub-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-4); align-items: stretch; }
@media (max-width: 980px) { .asfc-hub-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .asfc-hub-grid { grid-template-columns: 1fr; } }
.asfc-hub-card { display: flex; flex-direction: column; justify-content: space-between; min-height: 248px; text-decoration: none; background: var(--surface-raised); color: var(--text-default); padding: var(--space-6); border-radius: var(--radius-lg); border: var(--border-width) solid var(--border-default); box-shadow: var(--shadow-lg); transition: box-shadow var(--duration-base) var(--ease-standard), transform var(--duration-base) var(--ease-standard); }
a.asfc-hub-card:hover { transform: translateY(-3px); }
.asfc-hub-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); }
.asfc-hub-card__title { color: var(--text-heading); font-size: var(--font-size-2xl); line-height: 1.05; margin: 0; }
.asfc-hub-card__desc { color: var(--text-muted); font-size: var(--font-size-sm); margin: 0; }
.asfc-hub-card__arrow { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: none; color: var(--text-default); }
.asfc-hub-card__arrow i, .asfc-hub-card__arrow svg { width: 22px; height: 22px; }
.asfc-hub-card--filled { background: var(--surface-inverse); color: var(--text-inverse); border-color: var(--border-inverse); }
.asfc-hub-card--filled .asfc-hub-card__title { color: var(--brand-white); font-size: var(--font-size-3xl); margin: 12px 0 10px; }
.asfc-hub-card--filled .asfc-hub-card__desc { color: var(--text-inverse-muted); }
.asfc-hub-card__kicker { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-kicker); font-size: var(--font-size-xs); color: var(--gold-light); }
.asfc-hub-card__cta { display: inline-flex; align-items: center; gap: 8px; margin-top: var(--space-5); font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-weight: var(--font-weight-semibold); font-size: var(--font-size-sm); color: var(--gold-light); text-decoration: underline; text-underline-offset: 4px; }
.asfc-hub-card__cta i, .asfc-hub-card__cta svg { width: 16px; height: 16px; }

.asfc-statline { background: var(--gold-tint-50); border-top: var(--border-width) solid var(--gold-tint-300); }
.asfc-statline__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); flex-wrap: wrap; padding-block: var(--space-12); }
.asfc-statline__eyebrow { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-kicker); font-size: var(--font-size-xs); color: var(--text-muted); margin-bottom: 8px; }
.asfc-statline__lead { font-family: var(--font-heading); font-weight: var(--font-weight-semibold); text-transform: uppercase; font-size: var(--font-size-2xl); color: var(--text-heading); letter-spacing: var(--tracking-heading); max-width: 18ch; }
.asfc-statline__stats { display: flex; gap: var(--space-10); }
.asfc-statline__num { font-family: var(--font-heading); font-weight: var(--font-weight-semibold); font-size: var(--font-size-5xl); line-height: 1; color: var(--text-heading); }
.asfc-statline__label { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); color: var(--text-muted); margin-top: 6px; }

/* ============================================================
   PRESS & MEDIA KIT (matches PressScreen)
   ============================================================ */
.asfc-ph-chip { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); color: var(--neutral-700); background: var(--gold-tint-100); border: 1px dashed var(--gold-tint-400); border-radius: var(--radius-pill); padding: 2px 10px; }
.asfc-ph-chip i, .asfc-ph-chip svg { width: 13px; height: 13px; }
.asfc-prose-measure { max-width: 720px; display: flex; flex-direction: column; gap: var(--space-6); }
.asfc-lead { margin: 0; font-size: var(--font-size-xl); line-height: 1.5; color: var(--text-default); font-weight: var(--font-weight-medium); }
.asfc-lead--lg { font-size: var(--font-size-2xl); line-height: 1.4; }
.asfc-prose-measure p:not(.asfc-lead) { margin: 0; font-size: var(--font-size-lg); line-height: 1.65; color: var(--text-muted); }

.asfc-press-facts { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-12); }
.asfc-press-facts__row { display: grid; grid-template-columns: 180px 1fr; gap: var(--space-4); padding: var(--space-4) 0; border-top: var(--border-width) solid var(--gold-tint-300); align-items: baseline; }
.asfc-press-facts dt { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--text-heading); margin: 0; }
.asfc-press-facts dd { margin: 0; color: var(--text-default); font-size: var(--font-size-base); line-height: 1.55; }
@media (max-width: 760px) { .asfc-press-facts { grid-template-columns: 1fr; } .asfc-press-facts__row { grid-template-columns: 1fr; gap: 2px; } }

.asfc-press-angles { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-12); }
.asfc-press-angle { display: flex; gap: var(--space-4); padding: var(--space-6) 0; border-top: var(--border-width) solid var(--border-inverse); }
.asfc-press-angle i, .asfc-press-angle svg { width: 22px; height: 22px; color: var(--gold-light); flex: none; margin-top: 4px; }
.asfc-press-angle h3 { color: var(--brand-white); font-size: var(--font-size-lg); margin: 0; }
.asfc-press-angle p { color: var(--text-inverse-muted); margin: 6px 0 0; line-height: 1.6; }
@media (max-width: 760px) { .asfc-press-angles { grid-template-columns: 1fr; } }

.asfc-press-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
@media (max-width: 980px) { .asfc-press-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .asfc-press-grid { grid-template-columns: 1fr; } }
.asfc-asset { overflow: hidden; display: flex; flex-direction: column; padding: 0; }
.asfc-asset__media { aspect-ratio: 4 / 3; background: var(--gold-tint-100); border-bottom: var(--border-width) solid var(--border-default); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.asfc-asset__media--dark { background: var(--surface-inverse); }
.asfc-asset__media img.cover { width: 100%; height: 100%; object-fit: cover; }
.asfc-asset__media img.crest { height: 58%; width: auto; }
.asfc-asset__media i, .asfc-asset__media svg { width: 40px; height: 40px; color: var(--neutral-500); }
.asfc-asset__wordmark { font-family: var(--font-heading); font-weight: var(--font-weight-semibold); text-transform: uppercase; letter-spacing: var(--tracking-caps-md); font-size: var(--font-size-xl); color: var(--text-heading); }
.asfc-asset__body { padding: var(--space-4) var(--space-4) var(--space-5); display: flex; flex-direction: column; gap: var(--space-3); flex: 1; }
.asfc-asset__label { font-size: var(--font-size-base); margin: 0; }
.asfc-asset__fmt { color: var(--text-muted); font-size: var(--font-size-xs); margin-top: 6px; }
.asfc-asset__req { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); color: var(--neutral-700); }
.asfc-asset__req i, .asfc-asset__req svg { width: 15px; height: 15px; }

.asfc-press-people { display: grid; grid-template-columns: 1fr 1.2fr; gap: var(--space-12); align-items: start; }
@media (max-width: 860px) { .asfc-press-people { grid-template-columns: 1fr; } }
.asfc-press-contact { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--space-12); align-items: start; }
@media (max-width: 860px) { .asfc-press-contact { grid-template-columns: 1fr; } }

.asfc-checklist { list-style: none; margin: 0; padding: 0; max-width: 720px; }
.asfc-checklist li { display: flex; gap: var(--space-4); padding: var(--space-4) 0; border-top: var(--border-width) solid var(--border-default); align-items: flex-start; }
.asfc-checklist i, .asfc-checklist svg { width: 18px; height: 18px; color: var(--accent-strong); flex: none; margin-top: 4px; }
.asfc-checklist span { color: var(--text-default); font-size: var(--font-size-lg); line-height: 1.5; }

.asfc-quote { border-left: 3px solid var(--gold-light); }
.asfc-quote blockquote { margin: 0; }
.asfc-quote blockquote p { margin: 0; font-size: var(--font-size-xl); line-height: 1.5; color: var(--text-default); font-style: italic; }
.asfc-quote blockquote footer { margin-top: var(--space-4); font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--text-heading); }

.asfc-deflist { margin: 0; }
.asfc-deflist__row { display: grid; grid-template-columns: 120px 1fr; gap: var(--space-4); padding: var(--space-4) 0; border-top: var(--border-width) solid var(--border-inverse); align-items: center; }
.asfc-deflist dt { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--gold-light); }
.asfc-deflist dd { margin: 0; color: var(--text-inverse); }
.asfc-deflist dd a { color: var(--brand-white); }
.asfc-notes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-4); color: var(--text-inverse-muted); font-size: var(--font-size-sm); line-height: 1.6; }
.asfc-eyebrow { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); color: var(--gold-light); margin-bottom: var(--space-4); }
.asfc-featured-line { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-md); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--neutral-700); }

/* ============================================================
   PLAYER BIO (single-player — matches PlayerBioScreen)
   ============================================================ */
.asfc-bio { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(115deg,#211d16,#181510 72%); color: #fff; }
.asfc-bio__glow { position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0.55; background: radial-gradient(60% 90% at 72% 8%, rgba(234,218,167,0.18), transparent 60%); }
.asfc-bio__watermark { position: absolute; right: -2%; top: -8%; z-index: 0; font-family: var(--font-heading); font-weight: var(--font-weight-bold); font-size: clamp(280px, 34vw, 560px); line-height: 0.8; color: rgba(234,218,167,0.07); letter-spacing: -0.02em; user-select: none; pointer-events: none; }
.asfc-bio > .as-container { position: relative; z-index: 1; }
.asfc-bio-hero { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: var(--space-10); align-items: end; }
@media (max-width: 860px) { .asfc-bio-hero { grid-template-columns: 1fr; } }
.asfc-bio__textcol { padding-top: var(--space-16); padding-bottom: var(--space-16); }
.asfc-bio__crumb { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); color: var(--text-inverse-muted); margin-bottom: var(--space-8); }
.asfc-bio__crumb a { color: var(--text-inverse-muted); text-decoration: none; }
.asfc-bio__crumb a:hover { color: var(--gold-light); }
.asfc-bio__crumb-sep { margin: 0 8px; color: var(--gold-light); }
.asfc-bio__crumb-cur { color: var(--brand-white); }
.asfc-bio__rule { border: 0; height: 2px; width: 48px; background: var(--gold-light); margin: 10px 0 14px; }
.asfc-bio__name { margin: 0; line-height: 0.88; font-size: clamp(64px, 9vw, 112px); letter-spacing: var(--tracking-display); }
.asfc-bio__name-first { display: block; color: var(--brand-white); }
.asfc-bio__name-last { display: block; color: var(--gold-light); }
.asfc-bio__captain { display: inline-flex; align-items: center; gap: 8px; margin-top: var(--space-5); white-space: nowrap; background: var(--gold-light); color: #181510; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-weight: var(--font-weight-semibold); font-size: var(--font-size-sm); padding: 7px 14px; border-radius: var(--radius-pill); }
.asfc-bio__captain i, .asfc-bio__captain svg { width: 15px; height: 15px; }
.asfc-bio__ctas { display: flex; gap: var(--space-3); flex-wrap: wrap; margin-top: var(--space-8); }
.asfc-bio-portrait { position: relative; align-self: end; margin-top: var(--space-16); }
.asfc-bio-portrait__block { position: absolute; left: 0; right: 18%; bottom: 0; top: 14%; background: var(--gold-light); border-radius: var(--radius-lg); opacity: 0.9; }
.asfc-bio-portrait__img { position: relative; display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top center;}
.asfc-bio-portrait__img img { border-top-left-radius: var(--radius-lg); border-top-right-radius: var(--radius-lg);}
.asfc-bio-portrait__ph { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 4 / 5; background: linear-gradient(160deg, var(--neutral-800), var(--neutral-900) 70%); border-top-left-radius: var(--radius-lg); border-top-right-radius: var(--radius-lg); color: var(--neutral-500); font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-kicker); font-size: var(--font-size-xs); }

.asfc-bio-statband { background: var(--gold-tint-50); border-bottom: var(--border-width) solid var(--gold-tint-300); }
.asfc-bio-statband__eyebrow { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-kicker); font-size: var(--font-size-xs); color: var(--text-muted); margin-bottom: var(--space-5); }
.asfc-bio-stats { display: grid; grid-template-columns: repeat(4, 1fr); }
@media (max-width: 600px) { .asfc-bio-stats { grid-template-columns: repeat(2, 1fr); row-gap: var(--space-6); } }
.asfc-bio-stat { padding: 0 var(--space-6); border-left: var(--border-width) solid var(--gold-tint-400); }
.asfc-bio-stat:first-child { border-left: 0; padding-left: 0; }
@media (max-width: 600px) { .asfc-bio-stat:nth-child(odd) { border-left: 0; padding-left: 0; } }
.asfc-bio-stat__v { font-family: var(--font-heading); font-weight: var(--font-weight-semibold); font-size: var(--font-size-5xl); line-height: 1; color: var(--text-heading); }
.asfc-bio-stat__l { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); color: var(--text-muted); margin-top: 8px; }

.asfc-bio-profile { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--space-12); align-items: start; }
@media (max-width: 860px) { .asfc-bio-profile { grid-template-columns: 1fr; } }
.asfc-bio__body { font-size: var(--font-size-lg); line-height: 1.7; color: var(--text-default); max-width: 38em; }
.asfc-bio__body > :first-child { margin-top: 0; }
.asfc-bio__quote { margin: var(--space-8) 0 0; padding-left: var(--space-5); border-left: 3px solid var(--gold-light); font-family: var(--font-heading); font-weight: var(--font-weight-medium); font-size: var(--font-size-2xl); line-height: 1.25; color: var(--text-heading); text-transform: uppercase; letter-spacing: var(--tracking-heading); }
.asfc-bio-details__h { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--text-heading); padding-bottom: var(--space-4); border-bottom: 2px solid var(--gold-light); margin-bottom: var(--space-2); }
.asfc-bio-details dl { margin: 0; }
.asfc-bio-details__row { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) 0; border-bottom: var(--border-width) solid var(--border-default); }
.asfc-bio-details__row:last-child { border-bottom: 0; }
.asfc-bio-details dt { color: var(--text-muted); font-size: var(--font-size-sm); margin: 0; }
.asfc-bio-details dd { margin: 0; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-weight: var(--font-weight-medium); font-size: var(--font-size-sm); color: var(--text-heading); text-align: right; }
.asfc-bio-sponsor { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); flex-wrap: wrap; }
.asfc-bio-sponsor__title { color: var(--text-heading); font-size: var(--font-size-3xl); margin: 10px 0; }
.asfc-bio-sponsor p { color: var(--text-default); margin: 0; max-width: 560px; }

/* ============================================================
   COMMUNITY / FILM page (matches CommunityScreen)
   ============================================================ */
.asfc-hero.asfc-hero--page { min-height: 0; }
@media (min-width: 768px) { .asfc-hero.asfc-hero--page { min-height: 0; max-height: none; } }

.asfc-cfilm__quote { margin: calc(var(--space-2) * -1) 0 0; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-2xl); font-weight: var(--font-weight-medium); color: var(--gold-light); }
.asfc-cfilm__lead { margin: var(--space-6) 0 0; font-size: var(--font-size-lg); line-height: 1.65; color: var(--text-inverse-muted); max-width: 820px; }
.asfc-cfilm__meta { display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-8); align-items: center; margin-top: var(--space-5); }
.asfc-cfilm__metalabel { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); color: var(--text-inverse-muted); margin-right: var(--space-3); }
.asfc-cfilm__cap { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--text-inverse-muted); font-size: var(--font-size-sm); }
.asfc-cfilm__cap i, .asfc-cfilm__cap svg { width: 16px; height: 16px; }
.asfc-cfilm__transcript > summary { display: inline-flex; align-items: center; gap: var(--space-2); cursor: pointer; color: var(--brand-white); font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); text-decoration: underline; text-underline-offset: 3px; list-style: none; }
.asfc-cfilm__transcript > summary::-webkit-details-marker { display: none; }
.asfc-cfilm__transcript-body { margin-top: var(--space-4); padding: var(--space-6); background: var(--surface-inverse-raised); border: var(--border-width) solid var(--border-inverse); border-radius: var(--radius-lg); max-width: 820px; color: var(--text-inverse-muted); font-size: var(--font-size-sm); line-height: 1.65; }

.asfc-feature { overflow: hidden; padding: 0; }
.asfc-feature__grid { display: grid; grid-template-columns: 300px 1fr; align-items: stretch; }
@media (max-width: 640px) { .asfc-feature__grid { grid-template-columns: 1fr; } }
.asfc-feature__art { background: linear-gradient(120deg,#211d16,#181510 70%); display: flex; align-items: center; justify-content: center; padding: var(--space-8); min-height: 200px; }
.asfc-feature__art img { height: 96px; width: auto; }
.asfc-feature__body { padding: var(--space-8); display: flex; flex-direction: column; gap: var(--space-4); }
.asfc-feature__src { display: inline-flex; align-items: center; gap: 6px; font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); color: var(--text-heading); }
.asfc-feature__src i, .asfc-feature__src svg { width: 14px; height: 14px; color: var(--neutral-600); }
.asfc-feature__title { margin: 0; font-size: var(--font-size-2xl); }
.asfc-feature__body p { margin: 0; color: var(--text-muted); font-size: var(--font-size-base); line-height: 1.65; }
.asfc-cause-card { border-left: 3px solid var(--gold-light); background: var(--surface-subtle); }
.asfc-cause-card__meta { display: flex; align-items: center; gap: var(--space-3); margin-bottom: var(--space-3); flex-wrap: wrap; }
.asfc-cause-card p { margin: 0; color: var(--text-muted); font-size: var(--font-size-lg); line-height: 1.65; }
.asfc-charity-row { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; padding-top: var(--space-2); }
.asfc-charity-row__label { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); color: var(--text-heading); }

/* ============================================================
   TEAM — position-grouped squad + staff bio cards (matches TeamScreen)
   ============================================================ */
.asfc-jump { display: inline-flex; align-items: center; gap: var(--space-2); font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); text-decoration: none; white-space: nowrap; padding: 11px 22px; border-radius: var(--radius-pill); border: var(--border-width) solid var(--surface-inverse); background: var(--surface-inverse); color: var(--brand-white); transition: opacity var(--duration-fast) var(--ease-standard); }
.asfc-jump:hover { opacity: 0.88; }
.asfc-jump i, .asfc-jump svg { width: 16px; height: 16px; }
.asfc-team-group + .asfc-team-group { margin-top: var(--space-12); }
.asfc-team-group__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; }
.asfc-team-group__count { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-sm); color: var(--text-muted); padding-bottom: 6px; }
.asfc-squad-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-5); margin-top: var(--space-6); }
@media (max-width: 980px) { .asfc-squad-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 680px) { .asfc-squad-grid { grid-template-columns: repeat(2, 1fr); } }
.asfc-staff-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); margin-top: var(--space-8); }
@media (max-width: 760px) { .asfc-staff-grid { grid-template-columns: 1fr; } }
.asfc-staff-card { display: flex; gap: var(--space-5); background: var(--surface-inverse-raised); border: var(--border-width) solid var(--border-inverse); border-radius: var(--radius-lg); padding: var(--space-5); }
.asfc-staff-card__photo { flex: none; width: 200px; aspect-ratio: 4 / 5; border-radius: var(--radius-md); overflow: hidden; position: relative; background: linear-gradient(160deg, var(--neutral-800), var(--neutral-900) 70%); }
.asfc-staff-card__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.asfc-staff-card__name { font-family: var(--font-heading); text-transform: uppercase; font-weight: var(--font-weight-semibold); font-size: var(--font-size-lg); line-height: 1.05; color: var(--brand-white); margin: 0; }
.asfc-staff-card__role { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); color: var(--gold-light); margin-top: 5px; }
.asfc-staff-card__bio { color: var(--text-inverse-muted); font-size: var(--font-size-sm); line-height: 1.55; margin: 10px 0 0; }
.asfc-staff-card__bio--empty { color: var(--text-subtle); font-style: italic; }
.asfc-signup__row { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.asfc-signup__row .asfc-input { flex: 1 1 220px; }
.asfc-search { display: flex; gap: var(--space-2); }

/* ---------- 404 ---------- */
.asfc-404 .asfc-section-head__rule { display: inline-block; }

/* ============================================================
   HOME — design-aligned panels (film 2-col, league card, donate band, IG grid)
   ============================================================ */

/* Film — 2-col video + copy. */
.asfc-film { position: relative; overflow: hidden; }
.asfc-film::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0.6; background: radial-gradient(60% 80% at 12% 18%, rgba(234,218,167,0.14), transparent 60%); }
.asfc-film-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr 1fr; gap: var(--space-10); align-items: start; }
.asfc-film__media, .asfc-film__copy { min-width: 0; }
.as-inverse .asfc-film__title { color: var(--brand-yellow); font-size: clamp(2.25rem, 4.5vw, 3.25rem); line-height: 1.04; margin: 12px 0 18px; overflow-wrap: break-word; }
.asfc-film__meta { list-style: none; margin: 0 0 var(--space-5); padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.asfc-film__meta li { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); color: var(--gold-light); border: 1px solid rgba(234,218,167,0.28); border-radius: var(--radius-pill); padding: 5px 12px; }
.asfc-film__synopsis { color: var(--text-inverse-muted); font-size: var(--font-size-lg); margin: 0 0 var(--space-5); max-width: 480px; }
.asfc-film__cta { margin-top: var(--space-5); }
.asfc-film__cta .asfc-btn { display: inline-flex; }

/* League table — bordered card wrapper. */
.asfc-league__wrap { border: 1px solid var(--border-default); border-radius: var(--radius-lg); overflow: hidden; }
.asfc-league__wrap .asfc-table tbody tr:last-child th,
.asfc-league__wrap .asfc-table tbody tr:last-child td { border-bottom: 0; }

/* Donate — full-bleed photo band with copy + thermometer card. */
.asfc-donate { position: relative; isolation: isolate; overflow: hidden; color: #fff; background: #15120d; }
.asfc-donate__media { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.asfc-donate__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 36%; filter: grayscale(1) contrast(1.06) brightness(0.78) sepia(0.18); transform: scale(1.18); will-change: transform; }
.asfc-donate__scrim { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(20,17,13,0.92) 0%, rgba(20,17,13,0.72) 42%, rgba(20,17,13,0.34) 100%); }
.asfc-donate__glow { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0.4; background: radial-gradient(60% 80% at 14% 22%, rgba(234,218,167,0.2), transparent 60%); }
.asfc-donate__hatch { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.asfc-donate__inner { position: relative; z-index: 3; padding-top: var(--space-20); padding-bottom: var(--space-20); }
.asfc-donate__grid { display: grid; grid-template-columns: 3fr 2fr; gap: var(--space-12); align-items: center; }
.asfc-donate__copy, .asfc-donate__aside { min-width: 0; }
.asfc-donate__title { color: #fff; font-size: var(--font-size-4xl); margin: 10px 0 12px; text-shadow: 0 2px 24px rgba(0,0,0,0.4); }
.asfc-donate__intro { color: var(--text-inverse-muted); font-size: var(--font-size-lg); margin: 0; max-width: 520px; text-shadow: 0 1px 14px rgba(0,0,0,0.4); }
.asfc-donate__reassure { display: flex; align-items: flex-start; gap: var(--space-3); color: var(--text-inverse-muted); font-size: var(--font-size-sm); line-height: 1.6; margin: var(--space-5) 0 0; max-width: 370px; text-shadow: 0 1px 14px rgba(0,0,0,0.4); }
.asfc-donate__reassure i { width: 18px; height: 18px; color: var(--gold-light); flex: none; margin-top: 2px; }
.asfc-thermo-card { background: var(--surface-inverse-raised); border: 1px solid var(--border-inverse); border-radius: var(--radius-lg); padding: var(--space-6); margin-bottom: var(--space-6); }
.asfc-thermo-card__label { font-family: var(--font-heading); text-transform: uppercase; letter-spacing: var(--tracking-caps-sm); font-size: var(--font-size-xs); font-weight: var(--font-weight-semibold); color: var(--gold-light); }
.asfc-thermo-card__figure { font-family: var(--font-heading); font-size: var(--font-size-4xl); font-weight: var(--font-weight-semibold); color: #fff; line-height: 1.1; margin-top: var(--space-3); }
.asfc-thermo-card__figure span { font-size: var(--font-size-lg); color: var(--text-inverse-muted); font-weight: var(--font-weight-regular); }
.asfc-thermo-card__track { margin-top: var(--space-5); height: 14px; border-radius: var(--radius-pill); background: rgba(234,218,167,0.16); border: 1px solid rgba(234,218,167,0.28); overflow: hidden; }
.asfc-thermo-card__fill { height: 100%; border-radius: var(--radius-pill); background: linear-gradient(90deg, var(--gold-light), #fee100); }
.asfc-donate__aside .asfc-btn { display: inline-flex; }

/* Instagram grid. */
.asfc-ig-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-3); }
.asfc-ig-tile { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; border-radius: var(--radius-sm); background: var(--neutral-200); text-decoration: none; }
.asfc-ig-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 320ms var(--ease-standard); }
.asfc-ig-tile:hover img, .asfc-ig-tile:focus-visible img { transform: scale(1.06); }
.asfc-ig-mark { position: absolute; top: 10px; right: 10px; opacity: 0.92; filter: drop-shadow(0 1px 3px rgba(0,0,0,0.5)); transition: opacity 200ms; pointer-events: none; }
.asfc-ig-tile:hover .asfc-ig-mark, .asfc-ig-tile:focus-visible .asfc-ig-mark { opacity: 0; }
.asfc-ig-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(24,21,16,0.58); opacity: 0; transition: opacity 200ms var(--ease-standard); color: #fff; }
.asfc-ig-overlay i { width: 28px; height: 28px; }
.asfc-ig-tile:hover .asfc-ig-overlay, .asfc-ig-tile:focus-visible .asfc-ig-overlay { opacity: 1; }
.asfc-ig-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; filter: drop-shadow(0 1px 4px rgba(0,0,0,0.6)); transition: opacity 200ms; }
.asfc-ig-tile:hover .asfc-ig-play { opacity: 0; }

/* Home responsive. */
@media (max-width: 880px) {
  .asfc-film-grid { grid-template-columns: 1fr; gap: var(--space-8); }
  .asfc-donate__grid { grid-template-columns: 1fr; gap: var(--space-8); }
  .asfc-staff-card { display: block; }
  .asfc-staff-card__photo { width: 100%; margin-bottom: 30px; }

}
@media (max-width: 600px) {
  .asfc-ig-grid { grid-template-columns: repeat(2, 1fr); }
}
