:root {
  --bg: #f5f4f1;
  --surface: #ffffff;
  --text: #1a3a2a;
  --muted: #4f6357;
  --teal: #185fa5;
  --orange: #ef9f27;
  --gold: #ba7517;
  --green: #639922;
  --line: #e6e2da;
  --radius: 10px;
  --shadow: none;
  --shadow-soft: none;
  /* WCAG 2.2 SC 2.4.13: dual-ring focus indicator. Inner cream ring separates the focused
     element from the outer dark ring; outer dark ring is high-contrast on light backgrounds.
     Elements on dark backgrounds (.btn-primary, hero) override below with an inverted ring. */
  --ring: 0 0 0 2px var(--bg), 0 0 0 5px var(--text);
  --font-body: "Outfit", sans-serif;
  /* Display face: Fraunces variable. Carries personality where Chivo was anonymous.
     Headlines should use font-variation-settings to dial in opsz for large display
     sizes; italic Fraunces is reserved for emphasis (e.g., "Elevating Players"). */
  --font-display: "Fraunces", "Chivo", Georgia, serif;
  /* Variable-axis defaults for Fraunces: opsz follows pixel size, SOFT 50 for a
     slightly warmer terminal shape, weight 600 for confident display weight. */
  --font-display-settings: "opsz" 96, "SOFT" 50, "wght" 600;
  --font-display-italic-settings: "opsz" 96, "SOFT" 70, "wght" 500;
  --btn-primary-from: #1a3a2a;
  --btn-primary-to: #1a3a2a;
  --btn-primary-hover-from: #26513c;
  --btn-primary-hover-to: #26513c;
  --btn-primary-active-from: #142d21;
  --btn-primary-active-to: #142d21;
  --btn-primary-text: #ffffff;
  --btn-primary-hover-text: #ffffff;
  --program-red: #e24b4a;
  --program-orange: #ef9f27;
  --program-green: #639922;
  --program-yellow: #ba7517;
  --program-highperf: #185fa5;
  --logo-blue: #1494b8;
  --logo-orange: #f4a11d;
  --logo-green: #70b64a;
  --logo-tagline: #0d89ad;
  --section-gap-desktop: 80px;
  --section-gap-mobile: 48px;
  --layout-max: 1120px;
  --prose-max: 640px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--text);
  line-height: 1.7;
  position: relative;
  overflow-x: hidden;
}

/* Display typography: apply Fraunces variable-axis defaults to every headline
   that uses --font-display, plus a sportier italic for <em> emphasis (e.g.,
   "Elevating Players" on the homepage hero). Letter-spacing tightens slightly
   at display sizes — characteristic of well-set serif typography. */
h1,
h2,
h3,
.eyebrow {
  font-feature-settings: "ss01", "kern";
  font-variation-settings: var(--font-display-settings);
}

h1 em,
h2 em {
  font-style: italic;
  font-variation-settings: var(--font-display-italic-settings);
  letter-spacing: -0.005em;
}

h1 {
  font-variation-settings: "opsz" 144, "SOFT" 50, "wght" 600;
  letter-spacing: -0.025em;
}

body.menu-open {
  overflow: hidden;
  touch-action: none;
}

/* Paper-grain noise texture rendered at ~4% opacity behind every page. Replaces
   the prior dotted-grid + decorative orbs with a single architectural detail
   that reads as material rather than decoration. SVG is inlined to avoid a
   network round-trip. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -2;
  opacity: 0.045;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.07  0 0 0 0 0.07  0 0 0 0 0.07  0 0 0 1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-size: 240px 240px;
  background-repeat: repeat;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(8, 44, 52, 0.22);
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease;
  z-index: 35;
}

body.menu-open::after {
  opacity: 1;
}

/* Legacy decorative orb divs (.bg-orb, .orb-one, .orb-two) still exist in the
   HTML across most pages but are deliberately not styled — they collapse to
   zero-height empty blocks and render nothing. The HTML can be cleaned up in a
   future pass; rendering-wise they are gone. */
.bg-orb {
  display: none;
}

.container {
  width: min(var(--layout-max), calc(100vw - 48px));
  margin: 0 auto;
}

.skip-link {
  position: fixed;
  top: 0.7rem;
  left: 0.7rem;
  z-index: 120;
  background: #ffffff;
  color: var(--text);
  border: 1px solid rgba(2, 117, 139, 0.38);
  border-radius: 999px;
  box-shadow: var(--shadow-soft);
  padding: 0.45rem 0.72rem;
  text-decoration: none;
  font-weight: 700;
  transform: translateY(-180%);
  transition: transform 180ms ease;
}

.skip-link:focus-visible {
  transform: translateY(0);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: none;
  box-shadow: var(--ring);
}

.site-header {
  position: sticky;
  top: 0;
  backdrop-filter: blur(8px);
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid #eeeeee;
  box-shadow: none;
  z-index: 40;
}

.header-row {
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.56rem;
  text-decoration: none;
}

.brand-mark-wrap {
  width: 62px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 10px;
  flex: 0 0 auto;
}

.brand-mark {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  transform: none;
}

.brand-name {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 900;
  font-size: clamp(1.34rem, 2.4vw, 1.8rem);
  letter-spacing: -0.028em;
  line-height: 0.95;
  color: var(--text);
}

.brand-name small {
  display: block;
  font-family: var(--font-body);
  font-size: 0.59rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  margin-top: 0.24rem;
  color: var(--logo-tagline);
}

.play {
  color: var(--logo-blue);
}

.tennis {
  color: var(--logo-orange);
}

.lv {
  color: var(--logo-green);
}

.logo-wordmark-inline {
  display: inline-flex;
  align-items: baseline;
  gap: 0;
  white-space: nowrap;
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: -0.026em;
}

.main-nav {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.main-nav a {
  text-decoration: none;
  color: var(--text);
  font-weight: 500;
  font-size: 0.93rem;
  letter-spacing: 0.005em;
  border-radius: 999px;
  padding: 0.46rem 0.72rem;
  transition: background-color 240ms cubic-bezier(0.16, 1, 0.3, 1),
    color 220ms ease, transform 240ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 240ms cubic-bezier(0.16, 1, 0.3, 1);
}

.main-nav a:hover,
.main-nav a:focus-visible {
  background: #f0f4f2;
  box-shadow: none;
  color: var(--text);
  transform: translateY(-1px);
}

.main-nav a:active {
  transform: translateY(0);
}

.main-nav a.is-active {
  background: #f0f4f2;
  color: var(--text);
  box-shadow: inset 0 0 0 1px rgba(26, 58, 42, 0.08);
}

.main-nav .nav-register {
  background: var(--btn-primary-from);
  color: #ffffff;
  border: 0;
  box-shadow: none;
  padding-inline: 1rem;
}

.main-nav .nav-register:visited {
  color: #ffffff;
}

.main-nav .nav-register:hover,
.main-nav .nav-register:focus-visible {
  background: var(--btn-primary-hover-from);
  color: #ffffff;
  box-shadow: none;
}

.main-nav .nav-register:active {
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(2, 117, 139, 0.24);
}

/* Language switcher: subtle, secondary to nav links */
.main-nav .nav-lang {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.3rem 0.55rem;
  border: 1px solid rgba(26, 58, 42, 0.22);
  background: transparent;
  color: var(--text);
}

.main-nav .nav-lang:hover,
.main-nav .nav-lang:focus-visible {
  background: rgba(26, 58, 42, 0.06);
  border-color: rgba(26, 58, 42, 0.45);
  color: var(--text);
}

.menu-toggle {
  display: none;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--text);
  border-radius: 999px;
  padding: 0.45rem 0.8rem;
  min-height: 40px;
  font: inherit;
  font-weight: 600;
  transition: background-color 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}

.menu-toggle:hover,
.menu-toggle:focus-visible {
  background: rgba(2, 117, 139, 0.08);
  border-color: rgba(2, 117, 139, 0.3);
  box-shadow: var(--shadow-soft);
}

.menu-toggle[aria-expanded="true"] {
  background: rgba(2, 117, 139, 0.14);
  border-color: rgba(2, 117, 139, 0.42);
  box-shadow: 0 10px 22px rgba(8, 52, 63, 0.18);
}

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  gap: 1.25rem;
  align-items: stretch;
  padding: 4.2rem 0 2.35rem;
}

.inner-hero {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 1.25rem;
  align-items: stretch;
  padding: 3.2rem 0 1.5rem;
}

.inner-copy {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: clamp(1.2rem, 3vw, 2.2rem);
}

.hero-copy,
.hero-panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: none;
}

.hero-copy {
  padding: clamp(1.5rem, 3.8vw, 2.9rem);
}

.hero-panel {
  padding: 1.6rem;
  position: relative;
  overflow: hidden;
}

.hero-side {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: none;
  padding: clamp(1.2rem, 3.2vw, 1.8rem);
  display: grid;
  align-content: start;
  gap: 0.75rem;
}

.hero-side .eyebrow {
  margin-bottom: 0.2rem;
}

.hero-side h2 {
  color: var(--text);
  font-size: clamp(1.34rem, 2.4vw, 1.9rem);
  line-height: 1.16;
  max-width: 22ch;
  margin-bottom: 0.1rem;
}

.hero-updates .updates-grid {
  grid-template-columns: 1fr;
  gap: 0.6rem;
}

.hero-panel::before {
  content: "";
  position: absolute;
  width: 250px;
  height: 250px;
  background: radial-gradient(circle, rgba(239, 159, 39, 0.16), transparent 72%);
  top: -70px;
  right: -60px;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  margin: 0 0 0.5rem;
  background: rgba(2, 117, 139, 0.1);
  border: 1px solid rgba(2, 117, 139, 0.18);
  color: var(--teal);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  line-height: 1.2;
  padding: 0.34rem 0.62rem;
  border-radius: 999px;
  font-weight: 700;
  max-width: 100%;
  white-space: normal;
}

.kicker {
  margin: 0 0 0.5rem;
  color: #175867;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Global cleanup: remove redundant pre-heading labels site-wide */
.eyebrow,
.kicker {
  display: none;
}

.section-heading .eyebrow,
.section-heading .kicker,
.page-intro .kicker,
.hero-copy .eyebrow,
.inner-copy .eyebrow,
.simple-shell .eyebrow,
.home-family-note .eyebrow {
  display: inline-flex;
  margin-bottom: 0.35rem;
  align-items: center;
  gap: 0.58rem;
  padding: 0;
  background: none;
  border: 0;
  color: #8a6424;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.section-heading .eyebrow::before,
.section-heading .kicker::before,
.page-intro .kicker::before,
.hero-copy .eyebrow::before,
.inner-copy .eyebrow::before,
.simple-shell .eyebrow::before,
.home-family-note .eyebrow::before {
  content: "";
  width: 30px;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 134, 0, 0.95), rgba(242, 180, 5, 0.45));
  flex: 0 0 auto;
}

.page-intro {
  max-width: 760px;
  display: grid;
  gap: 0.64rem;
}

.page-intro h1 {
  margin: 0;
}

.page-intro p {
  margin: 0;
  max-width: 56ch;
}

.page-intro .orange-highlight,
.page-intro .key-list,
.page-intro .greatbase-logo-link {
  margin-top: 0.1rem;
}

/* Was #4f9a53 (a green, named "orange" — both a copy-paste error and a 3.05:1 contrast
   failure on the cream background). Replaced with an AA-passing burnt-orange (5.9:1). */
.accent-orange {
  color: #8a4f0a;
}

.orange-highlight {
  margin: 0.48rem 0 0;
  padding: 0.72rem 0.85rem;
  border-radius: 12px;
  border: 1px solid rgba(2, 117, 139, 0.28);
  border-left: 4px solid rgba(94, 168, 76, 0.78);
  background: linear-gradient(135deg, rgba(2, 117, 139, 0.09), rgba(242, 180, 5, 0.06), rgba(255, 255, 255, 0.94));
  color: #174c59;
  font-weight: 600;
}

.orange-highlight strong {
  color: #0f5664;
}

.orange-highlight a {
  color: #0f5664;
  font-weight: 700;
  text-decoration: none;
}

.orange-highlight a:hover,
.orange-highlight a:focus-visible {
  text-decoration: underline;
}

.key-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.46rem;
}

.key-list li {
  position: relative;
  padding-left: 0.95rem;
  color: var(--text);
}

.key-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--teal);
  box-shadow: 0 0 0 3px rgba(94, 168, 76, 0.18);
}

.register-steps {
  margin: 0.8rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.6rem;
}

.register-steps-numbered {
  counter-reset: register-step;
}

.register-steps-numbered li {
  position: relative;
  min-height: 1.65rem;
  padding-left: 2.2rem;
  color: #1f4d59;
  line-height: 1.5;
}

.register-steps-numbered li::before {
  counter-increment: register-step;
  content: counter(register-step);
  position: absolute;
  left: 0;
  top: 0.02rem;
  width: 1.48rem;
  height: 1.48rem;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(2, 117, 139, 0.96), rgba(255, 134, 0, 0.94));
  color: #ffffff;
  font-size: 0.76rem;
  font-weight: 800;
  box-shadow: 0 8px 16px rgba(12, 84, 98, 0.16);
}

.registration-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.registration-grid .program-card.is-primary {
  border: 1px solid rgba(2, 117, 139, 0.28);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.99), rgba(242, 249, 247, 0.95));
}

.registration-grid .program-card.is-primary h3 {
  color: #0f5664;
}

.updates-timeline {
  display: grid;
  gap: 0.82rem;
}

.update-entry {
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-left: 4px solid rgba(94, 168, 76, 0.72);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--shadow-soft);
  padding: 0.8rem 0.9rem 0.86rem;
}

.update-meta {
  display: inline-flex;
  margin: 0 0 0.42rem;
  color: #0f5663;
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 0.18rem 0.46rem;
  border-radius: 999px;
  background: linear-gradient(130deg, rgba(2, 117, 139, 0.1), rgba(94, 168, 76, 0.13));
  border: 1px solid rgba(2, 117, 139, 0.24);
}

.update-entry h3 {
  margin-bottom: 0.34rem;
}

.update-entry p {
  margin: 0;
  color: #204c57;
}

.update-entry a,
.update-card a {
  color: var(--teal);
  font-weight: 700;
  text-decoration: none;
}

.update-entry a:hover,
.update-entry a:focus-visible,
.update-card a:hover,
.update-card a:focus-visible {
  text-decoration: underline;
}

h1,
h2,
h3 {
  font-family: var(--font-display);
  letter-spacing: -0.02em;
  margin: 0 0 0.7rem;
  text-wrap: balance;
}

h1 {
  font-size: clamp(2rem, 4.8vw, 3.4rem);
  line-height: 1.05;
}

.headline-accent-orange {
  color: var(--orange);
}

h2 {
  font-size: clamp(1.45rem, 2.8vw, 2rem);
  line-height: 1.15;
}

h3 {
  font-size: 1.15rem;
  margin-bottom: 0.45rem;
}

p {
  margin: 0 0 1rem;
  color: var(--muted);
}

.inner-copy a,
.greatbase-callout a {
  color: var(--teal);
  font-weight: 700;
  text-decoration: none;
}

.inner-copy a:hover,
.inner-copy a:focus-visible,
.greatbase-callout a:hover,
.greatbase-callout a:focus-visible {
  text-decoration: underline;
}

.hero-copy p,
.current-card p,
.card p,
.feature-card p,
.logo-feature-copy p,
.greatbase-callout p {
  line-height: 1.66;
  max-width: 62ch;
}

.hero-copy,
.hero-side,
.hero-panel,
.inner-copy,
.current-card,
.card,
.coach-card,
.program-card,
.feature-card,
.path-card,
.contact-form,
.register-strip,
.logo-feature,
.greatbase-callout {
  border-color: rgba(2, 117, 139, 0.18);
  box-shadow: 0 8px 18px rgba(8, 52, 63, 0.09);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1.2rem;
}

.btn {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  border-radius: 6px;
  padding: 12px 24px;
  min-height: 44px;
  font-weight: 500;
  letter-spacing: 0;
  font-size: 14px;
  border: 1px solid transparent;
  text-align: center;
  white-space: normal;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease,
    color 180ms ease, border-color 180ms ease;
}

a.btn,
button.btn {
  color: var(--text);
}

a.btn:visited {
  color: inherit;
}

.btn:hover {
  transform: translateY(-1px);
  box-shadow: none;
}

.btn:focus-visible {
  outline: none;
  box-shadow: var(--ring), var(--shadow-soft);
}

.btn:active {
  transform: translateY(0);
  box-shadow: none;
}

.btn-primary {
  background: var(--btn-primary-from);
  color: #ffffff;
  border-color: transparent;
  text-shadow: none;
  box-shadow: none;
}

.btn-primary:visited,
.btn-primary:hover,
.btn-primary:focus-visible,
.btn-primary:active {
  color: #ffffff;
}

.btn-primary:hover,
.btn-primary:focus-visible {
  background: var(--btn-primary-hover-from);
  border-color: transparent;
  box-shadow: none;
}

.btn-primary:active {
  background: var(--btn-primary-active-from);
  box-shadow: none;
}

/* Inverted focus ring for dark-background buttons so the indicator is visible against the
   dark green primary fill. Inner dark ring separates the element; outer white ring carries
   the contrast. */
.btn-primary:focus-visible {
  box-shadow: 0 0 0 2px var(--btn-primary-from), 0 0 0 5px #ffffff;
}

/* Hero is on a near-black gradient — focused elements there also need the inverted ring. */
.home-showcase-hero a:focus-visible,
.home-showcase-hero button:focus-visible {
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.55), 0 0 0 5px #ffffff;
}

.btn-secondary {
  background: transparent;
  border: 1.5px solid var(--text);
  color: var(--text);
  box-shadow: none;
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
  background: #f0f4f2;
  border-color: var(--text);
  color: var(--text);
  box-shadow: none;
}

.btn-secondary:visited,
.btn-secondary:active {
  color: var(--text);
}

.btn-coming {
  background: #e8f0ee;
  color: #1f4d59;
  border-color: rgba(15, 56, 68, 0.22);
}

.btn-coming:visited,
.btn-coming:hover,
.btn-coming:focus-visible,
.btn-coming:active {
  color: #1f4d59;
}

.hero-panel h2 {
  color: var(--text);
}

.hero-panel ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.6rem;
}

.hero-panel li {
  padding: 0.7rem 0.75rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(2, 117, 139, 0.14);
  color: var(--text);
  font-size: 0.95rem;
}

.hero-note {
  margin-bottom: 0;
  padding: 0.7rem 0.85rem;
  border-radius: 12px;
  border: 1px solid rgba(2, 117, 139, 0.26);
  border-left: 4px solid rgba(94, 168, 76, 0.72);
  background: linear-gradient(130deg, rgba(2, 117, 139, 0.1), rgba(94, 168, 76, 0.1));
  color: var(--text);
  font-weight: 600;
}

.section-current {
  padding-top: 0.8rem;
}

.current-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.current-card {
  border-radius: 18px;
  border: 1px solid rgba(2, 117, 139, 0.22);
  background: var(--surface);
  box-shadow: var(--shadow);
  padding: 1.1rem;
}

.current-card-clinic {
  border-color: rgba(2, 117, 139, 0.35);
}

.current-card-clay {
  border-color: rgba(94, 168, 76, 0.32);
  background: var(--surface);
}

.pulse-label {
  display: inline-flex;
  align-items: center;
  margin-bottom: 0.5rem;
  padding: 0.25rem 0.56rem;
  border-radius: 999px;
  background: linear-gradient(130deg, rgba(2, 117, 139, 0.12), rgba(94, 168, 76, 0.14));
  border: 1px solid rgba(2, 117, 139, 0.24);
  color: #0f5663;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.2;
  white-space: normal;
}

.current-card h3 {
  margin-bottom: 0.35rem;
}

.current-meta {
  margin-bottom: 0.7rem;
  color: #0f5562;
  font-weight: 700;
}

.session-badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
  margin: 0 0 0.82rem;
}

.session-badge {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.34rem 0.62rem;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.18);
  background: rgba(255, 255, 255, 0.9);
  color: #144f5c;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.01em;
}

.session-badge.is-blue {
  border-color: rgba(2, 117, 139, 0.24);
  background: rgba(227, 246, 249, 0.92);
  color: #0f5663;
}

.session-badge.is-gold {
  border-color: rgba(215, 154, 0, 0.26);
  background: rgba(255, 248, 226, 0.96);
  color: #7b5600;
}

.session-badge.is-green {
  border-color: rgba(94, 168, 76, 0.24);
  background: rgba(236, 248, 231, 0.96);
  color: #2e6a24;
}

.current-points {
  margin: 0 0 0.9rem;
  padding-left: 1.15rem;
  color: var(--text);
}

.current-points li {
  margin-bottom: 0.3rem;
}

.current-rhythm {
  margin: 0 0 0.9rem;
  padding: 0.6rem 0.68rem;
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-radius: 12px;
  background: rgba(2, 117, 139, 0.06);
}

.current-rhythm h4 {
  margin: 0 0 0.35rem;
  font-family: var(--font-display);
  font-size: 0.92rem;
  letter-spacing: -0.01em;
  color: #0f4552;
}

.current-rhythm-list {
  margin: 0;
  padding-left: 1rem;
  display: grid;
  gap: 0.24rem;
  color: var(--text);
}

.current-rhythm-list li {
  margin: 0;
  line-height: 1.48;
}

.schedule-mini {
  overflow-x: auto;
}

.schedule-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.86rem;
  color: var(--text);
}

.schedule-table thead th {
  text-align: left;
  font-size: 0.72rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #1a5a67;
  padding: 0.32rem 0.3rem 0.42rem;
  border-bottom: 1px solid rgba(2, 117, 139, 0.24);
}

.schedule-table tbody th,
.schedule-table tbody td {
  text-align: left;
  vertical-align: top;
  padding: 0.38rem 0.3rem;
  border-bottom: 1px dashed rgba(2, 117, 139, 0.16);
}

.schedule-table tbody th {
  width: 26%;
  font-weight: 700;
  color: #144e5b;
}

.schedule-table tbody td:nth-child(2) {
  width: 35%;
  color: #1f4d59;
  font-weight: 600;
}

.schedule-table tbody td:nth-child(3) {
  color: #1f4d59;
}

.schedule-table tbody tr:last-child th,
.schedule-table tbody tr:last-child td {
  border-bottom: 0;
}

.schedule-date-range {
  margin: 0 0 0.45rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #1a5562;
  font-weight: 600;
}

.session-window-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.82rem;
  margin-bottom: 0.72rem;
}

.session-window-card {
  display: grid;
  gap: 0.28rem;
  padding: 1rem 1rem 0.95rem;
  border-radius: 18px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--shadow-soft);
}

.session-window-card-one {
  border-left: 5px solid rgba(255, 134, 0, 0.7);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 238, 0.95));
}

.session-window-card-two {
  border-left: 5px solid rgba(2, 117, 139, 0.72);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(237, 248, 250, 0.95));
}

.session-window-card-full {
  border-left: 5px solid rgba(94, 168, 76, 0.76);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(241, 249, 242, 0.96));
}

.session-window-label {
  display: inline-flex;
  width: fit-content;
  padding: 0.26rem 0.54rem;
  border-radius: 999px;
  border: 1px solid rgba(15, 86, 99, 0.14);
  background: rgba(255, 255, 255, 0.82);
  color: #0f5663;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.session-window-range {
  color: #114f5d;
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 1.8vw, 1.28rem);
  line-height: 1.15;
}

.session-window-note {
  margin: 0;
  color: #2a5d68;
  font-weight: 700;
}

.session-lines {
  display: grid;
  gap: 0.16rem;
}

.session-lines span {
  display: block;
}

.table-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 12px;
}

.registration-compare-hint {
  display: none;
  margin: 0.15rem 0 0.7rem;
  color: #5a6f76;
  font-size: 0.85rem;
  font-weight: 700;
}

.table-scroll .schedule-table {
  min-width: 430px;
}

.table-scroll .pricing-total-table {
  min-width: 520px;
}

.schedule-overview-table tbody th {
  width: 24%;
}

.schedule-overview-table tbody td:nth-child(2) {
  width: 76%;
}

.pricing-table tbody th {
  width: 34%;
}

.pricing-table tbody td:nth-child(2),
.pricing-table tbody td:nth-child(3) {
  width: 33%;
}

.pricing-total-table {
  font-size: 0.82rem;
}

.pricing-total-table tbody th {
  width: 28%;
}

.pricing-total-table tbody td:nth-child(2),
.pricing-total-table tbody td:nth-child(3),
.pricing-total-table tbody td:nth-child(4),
.pricing-total-table tbody td:nth-child(5) {
  width: 18%;
  white-space: nowrap;
}

.flip-calendar {
  margin-top: 0.3rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.62rem;
}

.flip-week {
  position: relative;
  min-height: 166px;
  perspective: 1200px;
}

.flip-week-input:checked + .flip-week-card {
  transform: rotateY(180deg);
}

.flip-week-input:focus-visible + .flip-week-card {
  box-shadow: var(--ring);
  border-radius: 14px;
}

.flip-week-card {
  display: block;
  width: 100%;
  position: relative;
  min-height: 166px;
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  transition: transform 440ms cubic-bezier(0.2, 0.65, 0.3, 1), box-shadow 220ms ease;
  cursor: pointer;
  border-radius: 15px;
  will-change: transform;
}

.flip-week-input:not(:checked) + .flip-week-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 22px rgba(8, 52, 63, 0.16);
}

.flip-week-input:checked + .flip-week-card:hover {
  transform: rotateY(180deg) translateY(-3px);
  box-shadow: 0 12px 22px rgba(8, 52, 63, 0.16);
}

.flip-week-input:checked + .flip-week-card .flip-week-back {
  border-color: rgba(255, 134, 0, 0.38);
  box-shadow: 0 10px 18px rgba(255, 134, 0, 0.13);
}

.flip-week.session-one .flip-week-input:checked + .flip-week-card .flip-week-back {
  border-color: rgba(2, 117, 139, 0.38);
  box-shadow: 0 10px 18px rgba(2, 117, 139, 0.14);
}

.flip-week.session-two .flip-week-input:checked + .flip-week-card .flip-week-back {
  border-color: rgba(255, 134, 0, 0.38);
  box-shadow: 0 10px 18px rgba(255, 134, 0, 0.13);
}

.flip-week-face {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  border-radius: 15px;
  border: 1px solid rgba(2, 117, 139, 0.2);
  padding: 0.72rem 0.72rem;
  box-shadow: var(--shadow-soft);
}

.flip-week-front {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(240, 248, 246, 0.94));
  display: grid;
  align-content: space-between;
  gap: 0.42rem;
}

.flip-week-front::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  border-top-left-radius: 15px;
  border-top-right-radius: 15px;
  background: linear-gradient(90deg, rgba(2, 117, 139, 0.82), rgba(94, 168, 76, 0.72));
}

.flip-week.session-two .flip-week-front::before {
  background: linear-gradient(90deg, rgba(255, 134, 0, 0.86), rgba(242, 180, 5, 0.8));
}

.flip-week-back {
  transform: rotateY(180deg) translateZ(1px);
  background: linear-gradient(150deg, rgba(249, 253, 251, 0.99), rgba(235, 246, 241, 0.96));
  display: grid;
  gap: 0.42rem;
}

.flip-week-session {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #145562;
  border: 1px solid rgba(2, 117, 139, 0.32);
  background: linear-gradient(130deg, rgba(2, 117, 139, 0.12), rgba(94, 168, 76, 0.14));
  border-radius: 999px;
  padding: 0.16rem 0.44rem;
}

.flip-week-session.is-session-one {
  color: #0f5968;
  border-color: rgba(2, 117, 139, 0.34);
  background: linear-gradient(130deg, rgba(2, 117, 139, 0.12), rgba(94, 168, 76, 0.14));
}

.flip-week-session.is-session-two {
  color: #7a4300;
  border-color: rgba(255, 134, 0, 0.38);
  background: linear-gradient(130deg, rgba(255, 134, 0, 0.14), rgba(242, 180, 5, 0.18));
}

.flip-week.session-two .flip-week-back-title {
  color: #8a4b00;
}

.flip-week-label {
  font-size: 0.69rem;
  font-weight: 800;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: #1b5966;
}

.flip-week-range {
  display: block;
  font-family: var(--font-display);
  font-size: 1.04rem;
  line-height: 1.18;
  color: #0f4b58;
}

.flip-week-hint {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  font-size: 0.71rem;
  color: #2b5f6c;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: linear-gradient(130deg, rgba(2, 117, 139, 0.09), rgba(255, 134, 0, 0.1));
  border: 1px solid rgba(2, 117, 139, 0.2);
  border-radius: 999px;
  padding: 0.2rem 0.46rem;
}

.flip-week-back-title {
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1b5966;
}

.flip-week-lines {
  display: grid;
  gap: 0.34rem;
  font-size: 0.77rem;
  line-height: 1.34;
  color: #1f4d59;
}

.flip-week-lines span {
  display: block;
  border-radius: 9px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  background: rgba(255, 255, 255, 0.78);
  padding: 0.24rem 0.3rem;
}

.flip-week-date {
  color: #0f5663;
  display: inline-block;
  min-width: 7.1em;
  margin-right: 0.2rem;
}

.current-template {
  margin-top: 0.85rem;
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.2);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.97), rgba(243, 250, 247, 0.94));
  box-shadow: var(--shadow-soft);
  padding: 0.95rem 1rem;
}

.current-template h3 {
  margin-bottom: 0.45rem;
}

.current-template-list {
  margin: 0;
  padding-left: 1rem;
  display: grid;
  gap: 0.28rem;
}

.current-template-list strong {
  color: var(--text);
}

.logo-feature {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 1rem;
  align-items: center;
  border-radius: var(--radius);
  border: 1px solid rgba(2, 117, 139, 0.2);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(245, 250, 248, 0.94));
  padding: 1.2rem;
  box-shadow: var(--shadow);
}

.section-logo {
  padding-top: 0.6rem;
}

.logo-feature-mark {
  display: grid;
  justify-items: center;
  gap: 0.55rem;
  text-align: center;
}

.logo-image {
  display: block;
  width: min(380px, 100%);
  height: auto;
  border-radius: 14px;
  border: 1px solid rgba(2, 117, 139, 0.18);
  background: #ffffff;
  box-shadow: var(--shadow);
}

.logo-image.is-missing {
  display: none;
}

.logo-fallback {
  display: none;
  justify-items: center;
  gap: 0.55rem;
  text-align: center;
}

.logo-fallback.is-visible {
  display: grid;
}

.brand-icon-large {
  width: 92px;
  height: 92px;
}

.brand-icon-large .teal {
  width: 30px;
  height: 30px;
  left: 4px;
  top: 30px;
}

.brand-icon-large .gold {
  width: 34px;
  height: 34px;
  top: 0;
}

.brand-icon-large .orange {
  width: 30px;
  height: 30px;
  right: 3px;
  top: 30px;
}

.brand-name-large {
  font-size: clamp(2rem, 4.1vw, 2.8rem);
  line-height: 0.95;
}

.brand-name-large small {
  margin-top: 0.55rem;
  font-size: 0.78rem;
  letter-spacing: 0.29em;
}

.logo-feature-copy p:last-child {
  margin-bottom: 0;
}

.greatbase-callout {
  border-radius: var(--radius);
  border: 1px solid rgba(2, 117, 139, 0.2);
  background: linear-gradient(140deg, rgba(255, 255, 255, 0.96), rgba(239, 247, 248, 0.92));
  box-shadow: var(--shadow);
  padding: clamp(1.1rem, 2.8vw, 1.7rem);
  display: grid;
  gap: 0.6rem;
}

.greatbase-logo-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: min(100%, 330px);
  padding: 0.38rem 0.56rem;
  border: 1px solid rgba(2, 117, 139, 0.24);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--shadow-soft);
  text-decoration: none;
}

.greatbase-logo-link:hover,
.greatbase-logo-link:focus-visible {
  border-color: rgba(2, 117, 139, 0.42);
  box-shadow: 0 10px 22px rgba(8, 52, 63, 0.16);
}

.greatbase-logo-link-compact {
  padding: 0.3rem 0.45rem;
  border-radius: 10px;
  margin-top: 0.22rem;
}

.greatbase-logo {
  display: block;
  width: min(100%, 286px);
  height: auto;
  max-height: 42px;
}

.greatbase-logo-link-compact .greatbase-logo {
  max-height: 30px;
  width: min(100%, 218px);
}

.greatbase-callout .greatbase-logo-link {
  margin-top: 0.1rem;
}

.inner-copy .greatbase-logo-link,
.page-intro .greatbase-logo-link {
  margin-top: 0.08rem;
}

.section {
  padding: clamp(1.4rem, 2.8vw, 2.2rem) 0;
}

.section-heading {
  margin-bottom: 0.94rem;
  display: grid;
  gap: 0.34rem;
}

.section-heading p,
.section-heading h2 {
  margin: 0;
}

main h2 {
  position: relative;
  padding-left: 0.98rem;
  line-height: 1.24;
}

main h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.14em;
  bottom: 0.14em;
  width: 0.22rem;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(2, 117, 139, 0.95), rgba(255, 134, 0, 0.92));
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.82);
}

.section-heading h2 {
  max-width: 22ch;
}

main .page-intro p,
main .hero-copy p,
main .inner-copy p,
main .current-card p,
main .program-card p,
main .feature-card p,
main .card p {
  max-width: 56ch;
}

.section-subpage-strip {
  padding-top: 0.35rem;
  padding-bottom: 0.4rem;
}

.subpage-nav {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.34rem;
  border: 1px solid rgba(2, 117, 139, 0.2);
  border-radius: 999px;
  background: linear-gradient(130deg, rgba(255, 255, 255, 0.95), rgba(242, 249, 247, 0.9));
  box-shadow: var(--shadow-soft);
  padding: 0.28rem;
}

.subpage-nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #114d5a;
  font-weight: 700;
  font-size: 0.86rem;
  letter-spacing: 0.01em;
  border-radius: 999px;
  min-height: 36px;
  padding: 0.43rem 0.72rem;
  transition: background-color 180ms ease, color 180ms ease, box-shadow 180ms ease,
    transform 180ms ease;
}

.subpage-nav a:hover,
.subpage-nav a:focus-visible {
  background: rgba(2, 117, 139, 0.11);
  color: #0d5a69;
}

.subpage-nav a.is-active {
  background: linear-gradient(130deg, #027f97, #249488);
  color: #ffffff;
  box-shadow: 0 8px 15px rgba(2, 117, 139, 0.24);
}

.subpage-nav a.is-active:visited {
  color: #ffffff;
}

/* Admin entry: pushed to the right edge of the subpage nav, muted so it reads
   as an internal/director link rather than a peer of the public actions. */
.subpage-nav .subpage-nav-admin {
  margin-left: auto;
  color: #4f6357;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.78;
}

.subpage-nav .subpage-nav-admin::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 6px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234f6357' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='11' width='16' height='9' rx='1.5'/><path d='M8 11V8a4 4 0 1 1 8 0v3'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  vertical-align: -1px;
}

.subpage-nav .subpage-nav-admin:hover,
.subpage-nav .subpage-nav-admin:focus-visible {
  opacity: 1;
  background: rgba(26, 58, 42, 0.07);
  color: #1a3a2a;
}

.subpage-nav .subpage-nav-admin.is-active {
  opacity: 1;
  color: #ffffff;
}

.subpage-nav .subpage-nav-admin.is-active::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='11' width='16' height='9' rx='1.5'/><path d='M8 11V8a4 4 0 1 1 8 0v3'/></svg>");
}

.mission-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.2rem;
  box-shadow: var(--shadow);
}

.section-accent {
  background: linear-gradient(180deg, rgba(2, 117, 139, 0.07), rgba(94, 168, 76, 0.07));
  border-top: 1px solid rgba(2, 117, 139, 0.1);
  border-bottom: 1px solid rgba(2, 117, 139, 0.1);
}

.pathway-overview {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 0.8rem;
  margin-bottom: 0.85rem;
}

.pathway-track {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.6rem;
}

.pathway-track-item {
  border: 1px solid rgba(2, 117, 139, 0.2);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  padding: 0.72rem 0.76rem;
  box-shadow: var(--shadow-soft);
}

.pathway-track-item h3 {
  margin: 0.28rem 0 0.12rem;
  font-size: 0.96rem;
}

.pathway-track-item p {
  margin: 0;
  font-size: 0.84rem;
  color: #25535e;
}

.pathway-track-num {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: linear-gradient(130deg, #027f97, #49a25b);
  color: #fff;
  font-weight: 700;
  font-size: 0.8rem;
  box-shadow: 0 6px 14px rgba(2, 117, 139, 0.22);
}

.pathway-summary {
  border: 1px solid rgba(2, 117, 139, 0.26);
  border-left: 4px solid rgba(94, 168, 76, 0.72);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.93);
  padding: 0.78rem 0.84rem;
}

.pathway-summary h3 {
  margin-bottom: 0.4rem;
}

.pathway-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 0.85rem;
}

.pathway-grid.pathway-grid-modern {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 0;
}

.path-card {
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(2, 117, 139, 0.2);
  border-radius: 12px;
  padding: 1rem;
  box-shadow: var(--shadow-soft);
}

.stage {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  background: rgba(2, 117, 139, 0.12);
  color: #0f5663;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.78rem;
  margin-bottom: 0.5rem;
}

.path-age {
  margin: 0 0 0.45rem;
  font-size: 0.84rem;
  font-weight: 700;
  color: #1f5662;
}

.collapse-panel,
.coach-details {
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
}

.collapse-panel summary,
.coach-details summary {
  list-style: none;
  cursor: pointer;
  font-weight: 700;
  color: var(--text);
  padding: 0.72rem 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  transition: background-color 180ms ease, color 180ms ease;
}

.collapse-panel summary::-webkit-details-marker,
.coach-details summary::-webkit-details-marker {
  display: none;
}

.collapse-panel summary::before,
.coach-details summary::before {
  content: "+";
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: rgba(2, 117, 139, 0.12);
  color: var(--teal);
  font-size: 0.95rem;
  line-height: 1;
  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.collapse-panel summary:hover,
.collapse-panel summary:focus-visible,
.coach-details summary:hover,
.coach-details summary:focus-visible {
  background: rgba(2, 117, 139, 0.09);
  color: #0f5664;
}

.collapse-panel summary:hover::before,
.collapse-panel summary:focus-visible::before,
.coach-details summary:hover::before,
.coach-details summary:focus-visible::before {
  background: rgba(2, 117, 139, 0.2);
  color: #0f5664;
  transform: scale(1.05);
}

.collapse-panel[open] summary::before,
.coach-details[open] summary::before {
  content: "-";
}

.collapse-panel[open] summary,
.coach-details[open] summary {
  border-bottom: 1px solid rgba(2, 117, 139, 0.14);
}

.collapse-panel {
  margin-top: 0.55rem;
}

.collapse-panel-body {
  display: grid;
  gap: 0.7rem;
  padding: 0 0.95rem 0.95rem;
}

.coach-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.coach-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(243, 249, 247, 0.93));
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 1.15rem;
  display: grid;
  align-content: start;
  gap: 0.42rem;
}

.coach-head {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  gap: 0.72rem;
  align-items: center;
}

.coach-photo-wrap {
  width: 62px;
  height: 62px;
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  background: linear-gradient(145deg, var(--teal), #2d9cb0);
  border: 1px solid rgba(2, 117, 139, 0.36);
  box-shadow: 0 8px 18px rgba(2, 117, 139, 0.2);
}

.coach-photo {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center top;
}

.coach-photo-fallback {
  position: absolute;
  inset: 0;
  display: none;
  place-items: center;
  font-family: var(--font-display);
  font-weight: 800;
  color: #ffffff;
  letter-spacing: 0.02em;
}

.coach-photo-wrap.is-missing .coach-photo {
  display: none;
}

.coach-photo-wrap.is-missing .coach-photo-fallback {
  display: grid;
}

.coach-card h3 {
  margin-bottom: 0.15rem;
}

.coach-role {
  margin: 0;
  color: #14515e;
  font-weight: 700;
}

.coach-details {
  margin-top: 0.12rem;
  overflow: hidden;
}

.coach-details summary {
  padding: 0.62rem 0.74rem;
  font-size: 0.93rem;
}

.coach-details-body {
  padding: 0.62rem 0.78rem 0.82rem;
  display: grid;
  gap: 0.58rem;
}

.coach-credentials {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.32rem;
  color: var(--text);
}

.coach-credentials li {
  margin: 0;
}

.coach-bio,
.coach-note {
  margin: 0;
  color: #1f4c57;
}

.coach-note {
  font-weight: 600;
}

.updates-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}

.update-card {
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--shadow-soft);
  padding: 0.72rem 0.82rem 0.78rem;
}

.update-date {
  display: inline-block;
  margin: 0 0 0.5rem;
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #0f5663;
  background: linear-gradient(130deg, rgba(2, 117, 139, 0.1), rgba(94, 168, 76, 0.13));
  border: 1px solid rgba(2, 117, 139, 0.24);
  border-radius: 999px;
  padding: 0.24rem 0.54rem;
  line-height: 1.2;
  white-space: normal;
}

.update-title {
  font-size: 1rem;
  line-height: 1.3;
  margin: 0 0 0.38rem;
}

.update-card p {
  margin: 0;
  color: #204c57;
  line-height: 1.55;
}

.program-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.program-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.1rem;
  box-shadow: var(--shadow);
  transition: transform 180ms ease, border-color 180ms ease;
}

.program-card:hover {
  transform: translateY(-1px);
  border-color: rgba(2, 117, 139, 0.4);
}

.class-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  align-items: stretch;
}

.class-card {
  display: grid;
  align-content: start;
  gap: 0.4rem;
  min-height: 100%;
  border-radius: 22px;
  border: 1px solid rgba(2, 117, 139, 0.18);
  box-shadow: var(--shadow-soft);
}

.class-card .hero-actions {
  margin-top: auto;
  padding-top: 0.22rem;
}

.class-time {
  margin: 0.02rem 0 0.02rem;
  color: #124f5d;
  font-weight: 800;
  line-height: 1.4;
}

.class-age {
  margin: -0.06rem 0 0.04rem;
  color: #215968;
  font-weight: 800;
  font-size: 0.88rem;
  line-height: 1.4;
}

.class-card-red {
  border-left: 5px solid rgba(219, 102, 88, 0.86);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(255, 243, 240, 0.96));
}

.class-card-orange {
  border-left: 5px solid rgba(255, 134, 0, 0.78);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 238, 0.96));
}

.class-card-green {
  border-left: 5px solid rgba(94, 168, 76, 0.8);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(241, 249, 242, 0.96));
}

.class-card-yellow {
  border-left: 5px solid rgba(215, 154, 0, 0.78);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(255, 249, 236, 0.96));
}

.class-card-advanced {
  border-left: 5px solid rgba(2, 117, 139, 0.76);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(237, 248, 250, 0.96));
}

.class-card-camp {
  border-left: 5px solid rgba(255, 162, 0, 0.88);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(255, 245, 228, 0.97));
}

.class-card-league {
  border-left: 5px solid rgba(52, 132, 116, 0.78);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(240, 248, 245, 0.96));
}

.program-callout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem 1.25rem;
  align-items: center;
  margin-top: 1rem;
  padding: 1.2rem 1.25rem;
  border-radius: 24px;
  border: 1px solid rgba(255, 162, 0, 0.28);
  background:
    radial-gradient(circle at top right, rgba(255, 193, 72, 0.18), transparent 42%),
    linear-gradient(155deg, rgba(255, 252, 245, 0.99), rgba(255, 245, 228, 0.96));
  box-shadow: var(--shadow-soft);
}

.program-callout h3 {
  margin: 0.18rem 0 0.3rem;
}

.program-callout p:last-of-type {
  margin-bottom: 0;
}

.program-callout .hero-actions {
  justify-content: flex-start;
}

.program-callout .session-badge-row {
  margin: 0.25rem 0 0.6rem;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.feature-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.2rem;
  position: relative;
  overflow: hidden;
}

.feature-card::after {
  content: "";
  position: absolute;
  width: 130px;
  height: 130px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(2, 117, 139, 0.15), rgba(2, 117, 139, 0));
  right: -40px;
  top: -40px;
}

.values-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
}

.value-chip {
  min-height: 100px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 1rem;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  background: linear-gradient(145deg, #ffffff, #f6faf8);
}

.value-chip h3 {
  margin: 0;
}

.card,
.program-card,
.current-card,
.feature-card,
.coach-card,
.update-entry,
.update-card,
.path-card,
.pathway-track-item,
.pathway-summary,
.registration-step {
  transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease,
    background-color 220ms ease;
}

.card:hover,
.program-card:hover,
.current-card:hover,
.feature-card:hover,
.coach-card:hover,
.update-entry:hover,
.update-card:hover,
.path-card:hover,
.pathway-track-item:hover,
.pathway-summary:hover,
.registration-step:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow);
  border-color: rgba(2, 117, 139, 0.34);
}

.card:focus-within,
.program-card:focus-within,
.current-card:focus-within,
.feature-card:focus-within,
.coach-card:focus-within,
.update-entry:focus-within,
.update-card:focus-within,
.path-card:focus-within,
.pathway-track-item:focus-within,
.pathway-summary:focus-within,
.registration-step:focus-within {
  box-shadow: var(--ring), var(--shadow);
  border-color: rgba(2, 117, 139, 0.4);
}

.section-contact {
  padding-bottom: 2.1rem;
}

.section-register-strip {
  padding-top: 0;
}

.section-register-strip .eyebrow,
.section-register-strip .kicker {
  background: linear-gradient(130deg, rgba(2, 117, 139, 0.12), rgba(94, 168, 76, 0.16));
  border: 1px solid rgba(2, 117, 139, 0.28);
  color: #0f5664;
}

.register-strip {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 1rem;
  align-items: center;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(2, 117, 139, 0.11), rgba(94, 168, 76, 0.1), rgba(242, 180, 5, 0.07));
  border: 1px solid rgba(2, 117, 139, 0.24);
  border-radius: var(--radius);
  padding: 1.2rem;
  box-shadow: var(--shadow);
}

.register-strip::before {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  border-radius: 999px;
  top: -80px;
  right: -70px;
  background: radial-gradient(circle, rgba(2, 117, 139, 0.22), rgba(2, 117, 139, 0));
}

.register-strip::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  border-radius: 999px;
  bottom: -70px;
  left: -60px;
  background: radial-gradient(circle, rgba(94, 168, 76, 0.2), rgba(94, 168, 76, 0));
}

.register-strip > * {
  position: relative;
  z-index: 1;
}

.register-actions {
  display: grid;
  gap: 0.65rem;
}

.btn-xl {
  min-height: 52px;
  width: 100%;
}

.btn-coming {
  background: #f1f5f4;
  color: #335660;
  border: 1px dashed rgba(2, 117, 139, 0.35);
  box-shadow: none;
  cursor: not-allowed;
  line-height: 1.35;
}

.section-register-strip .btn-primary,
.register-actions .btn-primary {
  background: linear-gradient(130deg, #027f97, #2c9d8a);
  border-color: rgba(2, 117, 139, 0.4);
  box-shadow: 0 11px 22px rgba(2, 117, 139, 0.24);
}

.section-register-strip .btn-primary:hover,
.section-register-strip .btn-primary:focus-visible,
.register-actions .btn-primary:hover,
.register-actions .btn-primary:focus-visible {
  background: linear-gradient(130deg, #02738a, #278f7f);
}

.btn-coming:disabled {
  opacity: 1;
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.contact-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}

.contact-list li {
  background: rgba(2, 117, 139, 0.07);
  border-radius: 10px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  padding: 0.65rem 0.8rem;
  color: var(--text);
}

.contact-list a {
  color: var(--teal);
  font-weight: 700;
  text-decoration: none;
}

.contact-list a:hover,
.contact-list a:focus-visible {
  text-decoration: underline;
}

.contact-form {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 1.1rem;
  box-shadow: var(--shadow);
  display: grid;
  gap: 0.5rem;
}

.contact-form label {
  font-weight: 600;
  color: var(--text);
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  font: inherit;
  padding: 0.68rem 0.74rem;
  border-radius: 10px;
  border: 1px solid #c8d2ce;
  background: #fff;
  color: var(--text);
  transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.contact-form input:hover,
.contact-form select:hover,
.contact-form textarea:hover {
  border-color: rgba(2, 117, 139, 0.34);
  background: #fcfffe;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(2, 117, 139, 0.18), 0 8px 18px rgba(2, 117, 139, 0.12);
  background: #fbfefd;
}

.contact-form input.is-invalid,
.contact-form select.is-invalid,
.contact-form textarea.is-invalid {
  border-color: #c73e3e;
  box-shadow: 0 0 0 3px rgba(199, 62, 62, 0.17);
  background: #fff9f9;
}

.contact-form .btn {
  margin-top: 0.35rem;
  border: 0;
  cursor: pointer;
  transition: transform 240ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 240ms cubic-bezier(0.16, 1, 0.3, 1), filter 220ms ease;
}

.contact-form .btn:hover {
  transform: translateY(-2px) scale(1.01);
  filter: saturate(1.02);
}

.contact-form .btn:active {
  transform: translateY(0) scale(0.985);
}

.contact-form .btn:disabled {
  opacity: 0.7;
  cursor: wait;
}

.contact-form .btn.is-loading {
  opacity: 1;
}

.contact-form .btn.is-loading::after {
  content: "";
  width: 14px;
  height: 14px;
  margin-left: 0.5rem;
  border-radius: 999px;
  border: 2px solid rgba(255, 255, 255, 0.45);
  border-top-color: #ffffff;
  animation: spin 700ms linear infinite;
}

.honeypot {
  position: absolute;
  left: -9999px;
  opacity: 0;
  pointer-events: none;
}

.form-wide {
  max-width: 760px;
  width: 100%;
}

.form-status {
  min-height: 1.25rem;
  margin: 0.4rem 0 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--muted);
}

.field-error {
  margin: -0.15rem 0 0.1rem;
  font-size: 0.83rem;
  line-height: 1.35;
  color: #a32828;
  font-weight: 600;
}

.field-error[hidden] {
  display: none;
}

.form-status.is-success {
  color: #0a7a43;
}

.form-status.is-error {
  color: #a32828;
}

.form-status.is-pending {
  color: #115968;
}

.site-footer {
  border-top: 1px solid rgba(2, 117, 139, 0.15);
  background: rgba(255, 255, 255, 0.78);
}

.mobile-cta-bar {
  position: fixed;
  left: max(0.8rem, env(safe-area-inset-left));
  right: max(0.8rem, env(safe-area-inset-right));
  bottom: calc(0.8rem + env(safe-area-inset-bottom));
  z-index: 80;
  display: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.62rem;
  padding: 0.7rem;
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(14px);
  box-shadow: 0 18px 36px rgba(10, 67, 78, 0.18);
  transition: opacity 180ms ease, transform 180ms ease;
}

.mobile-cta-bar .btn {
  width: 100%;
  min-height: 46px;
  box-shadow: none;
}

.mobile-cta-bar .btn-secondary {
  background: rgba(2, 117, 139, 0.08);
}

body.menu-open .mobile-cta-bar {
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 1rem 1.25rem;
  padding: 1.4rem 0 1rem;
}

.footer-brand-block p {
  margin: 0 0 0.35rem;
}

.footer-brand {
  text-decoration: none;
}

.footer-links-compact {
  display: grid;
  align-content: start;
  gap: 0.45rem;
}

.footer-links {
  display: grid;
  align-content: start;
  gap: 0.45rem;
}

.footer-links a,
.footer-social a {
  color: var(--text);
  text-decoration: none;
  font-weight: 600;
}

.social-link-instagram {
  display: inline-flex;
  align-items: center;
  gap: 0.46rem;
  line-height: 1.2;
}

.social-icon {
  display: inline-block;
  flex: 0 0 auto;
}

.insta-glyph {
  position: relative;
  width: 1.04rem;
  height: 1.04rem;
  border: 1.7px solid currentColor;
  border-radius: 0.32rem;
}

.insta-glyph::before {
  content: "";
  position: absolute;
  width: 0.44rem;
  height: 0.44rem;
  border: 1.55px solid currentColor;
  border-radius: 999px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.insta-glyph::after {
  content: "";
  position: absolute;
  width: 0.16rem;
  height: 0.16rem;
  border-radius: 999px;
  background: currentColor;
  top: 0.13rem;
  right: 0.13rem;
}

.footer-links a:hover,
.footer-links a:focus-visible,
.footer-social a:hover,
.footer-social a:focus-visible {
  color: var(--teal);
  text-decoration: underline;
}

.footer-social-label {
  margin: 0 0 0.35rem;
  font-weight: 700;
  color: #14515e;
}

.footer-bottom {
  border-top: 1px solid rgba(2, 117, 139, 0.14);
  padding: 0.75rem 0 1rem;
}

.footer-bottom p {
  margin: 0;
  font-size: 0.92rem;
}

.footer-row {
  min-height: 74px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.footer-row p {
  margin: 0;
  font-size: 0.92rem;
}

.hero-copy > :last-child,
.hero-panel > :last-child,
.hero-side > :last-child,
.inner-copy > :last-child,
.page-intro > :last-child,
.greatbase-callout > :last-child,
.card > :last-child,
.current-card > :last-child,
.program-card > :last-child,
.feature-card > :last-child,
.update-entry > :last-child,
.path-card > :last-child,
.coach-card > :last-child,
.coach-details-body > :last-child,
.contact-form > :last-child,
.register-strip > div > :last-child {
  margin-bottom: 0;
}

.reveal {
  opacity: 1;
  transform: none;
  filter: none;
  transition: opacity 480ms ease, transform 480ms ease, filter 480ms ease;
}

.js-enabled .reveal {
  opacity: 0;
  transform: translateY(12px) scale(0.99);
  filter: blur(2px);
}

.js-enabled .reveal[data-reveal="left"] {
  transform: translateX(-16px) scale(0.99);
}

.js-enabled .reveal[data-reveal="right"] {
  transform: translateX(16px) scale(0.99);
}

.js-enabled .reveal.visible {
  opacity: 1;
  transform: translate(0, 0) scale(1);
  filter: blur(0);
}

/* Distinct page identities and softer flow */
.page-home {
  background: linear-gradient(165deg, #fefcf8 0%, #f8fcf8 46%, #f7fafc 100%);
}

.page-programs {
  background: linear-gradient(165deg, #fffdf9 0%, #f7fbff 52%, #f9fcf8 100%);
}

.page-coaches {
  background: linear-gradient(165deg, #fefcf8 0%, #fbf8ff 46%, #f8fcf8 100%);
}

.page-updates {
  background: linear-gradient(165deg, #fffdf9 0%, #f9fcff 46%, #f8fbf8 100%);
}

.page-contact {
  background: linear-gradient(165deg, #fefcf8 0%, #f7fcfb 42%, #f9fbff 100%);
}

.page-registration {
  background: linear-gradient(165deg, #fffdf8 0%, #fbfcf7 44%, #f7fbff 100%);
}

.page-community {
  background: linear-gradient(165deg, #fffdf8 0%, #f8fcfb 44%, #f9fbff 100%);
}

.page-league-registration {
  background: linear-gradient(165deg, #fffdf8 0%, #f8fcfb 44%, #f9fbff 100%);
}

.page-summer {
  background: linear-gradient(165deg, #fffdf8 0%, #f7fcfb 42%, #f8fbff 100%);
}

.page-winter {
  background: linear-gradient(165deg, #fffdf9 0%, #f8fbff 44%, #f7fcfa 100%);
}

.page-leagues {
  background: linear-gradient(165deg, #fffdf8 0%, #fbfcf8 44%, #f8fbff 100%);
}

.page-leagues-standings {
  background: linear-gradient(165deg, #fffdf8 0%, #fbfcf8 44%, #f8fbff 100%);
}

.page-leagues-submit {
  background: linear-gradient(165deg, #fffdf8 0%, #fbfcf8 44%, #f8fbff 100%);
}

.page-leagues-admin {
  background: linear-gradient(165deg, #fffdf8 0%, #fbfcf8 44%, #f8fbff 100%);
}

.league-compact-main .section {
  padding-block: 1.15rem;
}

.page-leagues-submit .subpage-nav {
  gap: 0.3rem;
  padding: 0.28rem;
}

.page-leagues-submit .subpage-nav a {
  min-height: 37px;
  padding: 0.44rem 0.74rem;
}

.league-compact-intro {
  padding-top: 1.3rem;
  padding-bottom: 0.24rem;
}

.league-compact-intro .eyebrow {
  margin-bottom: 0.25rem;
}

.league-compact-intro h1 {
  margin: 0;
  font-size: clamp(1.95rem, 3.8vw, 2.42rem);
  line-height: 1.08;
}

.league-intro-note {
  margin: 0.5rem 0 0;
  max-width: 56ch;
  font-size: 0.96rem;
  line-height: 1.52;
  color: #245864;
}

.page-leagues,
.page-leagues-standings,
.page-leagues-submit,
.page-leagues-admin,
.page-league-registration {
  --league-accent: #02758b;
  --league-accent-rgb: 2, 117, 139;
  --league-accent-soft-rgb: 227, 246, 249;
  --league-accent-text: #0f5663;
  --league-on-accent: #ffffff;
  --league-h1-size: clamp(1.92rem, 3.6vw, 2.34rem);
  --league-h2-size: clamp(1.02rem, 1.45vw, 1.15rem);
  --league-h3-size: 0.94rem;
  --league-copy-size: 0.91rem;
}

body.league-theme-mens-singles-i {
  --league-accent: #02758b;
  --league-accent-rgb: 2, 117, 139;
  --league-accent-soft-rgb: 227, 246, 249;
  --league-accent-text: #0f5663;
  --league-on-accent: #ffffff;
}

body.league-theme-mens-singles-ii {
  --league-accent: #0f6f84;
  --league-accent-rgb: 15, 111, 132;
  --league-accent-soft-rgb: 228, 242, 247;
  --league-accent-text: #114f5b;
  --league-on-accent: #ffffff;
}

body.league-theme-mens-singles-iii {
  --league-accent: #1a5f9a;
  --league-accent-rgb: 26, 95, 154;
  --league-accent-soft-rgb: 224, 237, 252;
  --league-accent-text: #133f6b;
  --league-on-accent: #ffffff;
}

body.league-theme-mens-singles-iv {
  --league-accent: #b84a62;
  --league-accent-rgb: 184, 74, 98;
  --league-accent-soft-rgb: 251, 235, 239;
  --league-accent-text: #7a2c3f;
  --league-on-accent: #ffffff;
}

body.league-theme-mens-doubles {
  --league-accent: #ff8600;
  --league-accent-rgb: 255, 134, 0;
  --league-accent-soft-rgb: 255, 245, 232;
  --league-accent-text: #8a4a00;
  --league-on-accent: #ffffff;
}

body.league-theme-womens-singles-i {
  --league-accent: #5ea84c;
  --league-accent-rgb: 94, 168, 76;
  --league-accent-soft-rgb: 236, 248, 231;
  --league-accent-text: #2f6d24;
  --league-on-accent: #ffffff;
}

body.league-theme-womens-doubles-ii {
  --league-accent: #d79a00;
  --league-accent-rgb: 215, 154, 0;
  --league-accent-soft-rgb: 255, 248, 226;
  --league-accent-text: #765100;
  --league-on-accent: #4f3b00;
}

.page-leagues .league-compact-intro h1,
.page-leagues-standings .league-compact-intro h1,
.page-leagues-submit .league-compact-intro h1,
.page-leagues-admin .league-compact-intro h1,
.page-league-registration .section-heading h1 {
  font-size: var(--league-h1-size);
  letter-spacing: -0.015em;
}

.page-leagues .league-intro-note,
.page-leagues-standings .league-intro-note,
.page-leagues-submit .league-intro-note,
.page-league-registration .section-heading > p,
.page-leagues .league-list-note,
.page-leagues .league-home-card p,
.page-leagues-submit .league-form-helper,
.page-leagues-submit .league-score-footnote,
.page-leagues-admin .league-score-footnote,
.page-leagues-standings .league-selection-note,
.page-leagues-submit .league-selection-note,
.page-leagues-admin .league-selection-note {
  font-size: var(--league-copy-size);
  line-height: 1.5;
}

.page-leagues main :is(.league-list-card h2, .league-home-card h2),
.page-leagues-standings main :is(.league-selector-card h2, .league-standings-head h2, .league-results-head h2),
.page-leagues-submit main :is(.league-selector-card h2, .league-utility-card h2, .league-score-form h2, .league-score-form h3),
.page-leagues-admin main :is(.league-admin-gate h2, .league-selector-card h2, .league-standings-head h2, .league-admin-head h2, .league-results-head h2, .league-admin-player-list-wrap h3, .league-registration-pool-head h3) {
  font-size: var(--league-h2-size);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--league-accent-text);
}

.page-leagues-submit .league-entry-title,
.page-leagues-admin .league-entry-title,
.page-leagues-admin .league-admin-player-form h3 {
  font-size: var(--league-h3-size);
  color: var(--league-accent-text);
}

.page-leagues main h2::before,
.page-leagues-standings main h2::before,
.page-leagues-submit main h2::before,
.page-leagues-admin main h2::before,
.page-league-registration main h2::before {
  background: linear-gradient(
    180deg,
    rgba(var(--league-accent-rgb), 0.95),
    rgba(var(--league-accent-rgb), 0.55)
  );
}

.page-leagues .subpage-nav a:hover,
.page-leagues .subpage-nav a:focus-visible,
.page-leagues-standings .subpage-nav a:hover,
.page-leagues-standings .subpage-nav a:focus-visible,
.page-leagues-submit .subpage-nav a:hover,
.page-leagues-submit .subpage-nav a:focus-visible,
.page-leagues-admin .subpage-nav a:hover,
.page-leagues-admin .subpage-nav a:focus-visible,
.page-league-registration .subpage-nav a:hover,
.page-league-registration .subpage-nav a:focus-visible {
  background: rgba(var(--league-accent-rgb), 0.12);
  color: var(--league-accent-text);
}

.page-leagues .subpage-nav a.is-active,
.page-leagues-standings .subpage-nav a.is-active,
.page-leagues-submit .subpage-nav a.is-active,
.page-leagues-admin .subpage-nav a.is-active,
.page-league-registration .subpage-nav a.is-active {
  background: linear-gradient(
    130deg,
    rgba(var(--league-accent-rgb), 0.96),
    rgba(var(--league-accent-rgb), 0.8)
  );
  color: var(--league-on-accent);
  box-shadow: 0 8px 16px rgba(var(--league-accent-rgb), 0.28);
}

.page-leagues .btn-primary,
.page-leagues-standings .btn-primary,
.page-leagues-submit .btn-primary,
.page-leagues-admin .btn-primary,
.page-league-registration .btn-primary {
  background: var(--league-accent);
  color: #ffffff;
  box-shadow: 0 6px 18px rgba(var(--league-accent-rgb), 0.32);
}

.page-leagues .btn-primary:hover,
.page-leagues .btn-primary:focus-visible,
.page-leagues-standings .btn-primary:hover,
.page-leagues-standings .btn-primary:focus-visible,
.page-leagues-submit .btn-primary:hover,
.page-leagues-submit .btn-primary:focus-visible,
.page-leagues-admin .btn-primary:hover,
.page-leagues-admin .btn-primary:focus-visible,
.page-league-registration .btn-primary:hover,
.page-league-registration .btn-primary:focus-visible {
  background: var(--league-accent);
  filter: brightness(1.08);
  color: #ffffff;
}

.page-leagues .btn-secondary:hover,
.page-leagues .btn-secondary:focus-visible,
.page-leagues-standings .btn-secondary:hover,
.page-leagues-standings .btn-secondary:focus-visible,
.page-leagues-submit .btn-secondary:hover,
.page-leagues-submit .btn-secondary:focus-visible,
.page-leagues-admin .btn-secondary:hover,
.page-leagues-admin .btn-secondary:focus-visible,
.page-league-registration .btn-secondary:hover,
.page-league-registration .btn-secondary:focus-visible {
  background: rgba(var(--league-accent-rgb), 0.1);
  border-color: rgba(var(--league-accent-rgb), 0.4);
  color: var(--league-accent-text);
}

.league-chip[data-league-theme],
.league-quick-pill[data-league-theme] {
  --league-chip-rgb: var(--league-accent-rgb);
  --league-chip-soft-rgb: var(--league-accent-soft-rgb);
  --league-chip-text: var(--league-accent-text);
  --league-chip-active-text: #ffffff;
  border-color: rgba(var(--league-chip-rgb), 0.34);
  background: linear-gradient(
    135deg,
    rgba(var(--league-chip-soft-rgb), 0.98),
    rgba(255, 255, 255, 0.96)
  );
  color: var(--league-chip-text);
}

.league-chip[data-league-theme="mens-singles-i"],
.league-quick-pill[data-league-theme="mens-singles-i"] {
  --league-chip-rgb: 2, 117, 139;
  --league-chip-soft-rgb: 227, 246, 249;
  --league-chip-text: #0f5663;
}

.league-chip[data-league-theme="mens-singles-ii"],
.league-quick-pill[data-league-theme="mens-singles-ii"] {
  --league-chip-rgb: 15, 111, 132;
  --league-chip-soft-rgb: 228, 242, 247;
  --league-chip-text: #114f5b;
}

.league-chip[data-league-theme="mens-doubles"],
.league-quick-pill[data-league-theme="mens-doubles"] {
  --league-chip-rgb: 255, 134, 0;
  --league-chip-soft-rgb: 255, 245, 232;
  --league-chip-text: #8a4a00;
}

.league-chip[data-league-theme="womens-singles-i"],
.league-quick-pill[data-league-theme="womens-singles-i"] {
  --league-chip-rgb: 94, 168, 76;
  --league-chip-soft-rgb: 236, 248, 231;
  --league-chip-text: #2f6d24;
}

.league-chip[data-league-theme="womens-doubles-ii"],
.league-quick-pill[data-league-theme="womens-doubles-ii"] {
  --league-chip-rgb: 215, 154, 0;
  --league-chip-soft-rgb: 255, 248, 226;
  --league-chip-text: #765100;
  --league-chip-active-text: #4f3b00;
}

.league-chip-link[data-league-theme]:hover,
.league-chip-link[data-league-theme]:focus-visible,
.league-quick-pill[data-league-theme]:hover,
.league-quick-pill[data-league-theme]:focus-visible {
  border-color: rgba(var(--league-chip-rgb), 0.56);
  background: rgba(var(--league-chip-rgb), 0.16);
  color: var(--league-chip-text);
  box-shadow: 0 8px 18px rgba(var(--league-chip-rgb), 0.22);
}

.league-quick-pill.is-active[data-league-theme] {
  border-color: rgba(var(--league-chip-rgb), 0.68);
  background: linear-gradient(
    130deg,
    rgba(var(--league-chip-rgb), 0.92),
    rgba(var(--league-chip-rgb), 0.78)
  );
  color: var(--league-chip-active-text);
  box-shadow: 0 10px 20px rgba(var(--league-chip-rgb), 0.28);
}

.page-leagues-standings .standings-table thead th,
.page-leagues-admin .standings-table thead th {
  color: var(--league-accent-text);
  background: linear-gradient(
    180deg,
    rgba(var(--league-accent-rgb), 0.15),
    rgba(var(--league-accent-rgb), 0.08)
  );
  box-shadow: inset 0 -1px 0 rgba(var(--league-accent-rgb), 0.3);
}

.page-leagues-standings .standings-rank,
.page-leagues-admin .standings-rank {
  background: rgba(var(--league-accent-rgb), 0.15);
  border-color: rgba(var(--league-accent-rgb), 0.34);
  color: var(--league-accent-text);
}

.page-leagues-standings .standings-team-button:hover,
.page-leagues-standings .standings-team-button:focus-visible,
.page-leagues-admin .standings-team-button:hover,
.page-leagues-admin .standings-team-button:focus-visible {
  color: var(--league-accent-text);
  background: rgba(var(--league-accent-rgb), 0.16);
  box-shadow: 0 0 0 1px rgba(var(--league-accent-rgb), 0.3);
}

.page-leagues-standings .standings-team-button[aria-pressed="true"],
.page-leagues-admin .standings-team-button[aria-pressed="true"] {
  color: var(--league-accent-text);
  background: rgba(var(--league-accent-rgb), 0.2);
  box-shadow: 0 0 0 1px rgba(var(--league-accent-rgb), 0.36);
}

.page-leagues-standings .standings-table tbody tr.is-top,
.page-leagues-admin .standings-table tbody tr.is-top {
  background: linear-gradient(
    135deg,
    rgba(var(--league-accent-rgb), 0.14),
    rgba(var(--league-accent-rgb), 0.08)
  );
}

.page-leagues-standings .standings-table tbody tr.is-selected,
.page-leagues-admin .standings-table tbody tr.is-selected {
  background: linear-gradient(
    135deg,
    rgba(var(--league-accent-rgb), 0.2),
    rgba(var(--league-accent-rgb), 0.12)
  );
}

.page-leagues-standings .league-result-item,
.page-leagues-admin .league-result-item {
  border-left-color: rgba(var(--league-accent-rgb), 0.7);
}

.page-leagues-standings .league-result-meta,
.page-leagues-admin .league-result-meta {
  color: var(--league-accent-text);
}

.league-standings-layout,
.league-submit-layout {
  display: grid;
  grid-template-columns: minmax(250px, 328px) minmax(0, 1fr);
  gap: 0.82rem;
  align-items: start;
}

.league-side-stack {
  display: grid;
  gap: 0.72rem;
  align-content: start;
}

.league-main-stack {
  min-width: 0;
}

.league-home-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.78rem;
}

.league-front-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
  gap: 0.82rem;
}

.league-home-card {
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 8px 20px rgba(15, 86, 99, 0.06);
}

.league-home-card h2 {
  margin-bottom: 0.32rem;
  font-size: 1.08rem;
}

.league-home-card p {
  margin-bottom: 0.62rem;
  font-size: 0.95rem;
  line-height: 1.5;
  max-width: 30ch;
}

.league-list-card {
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 8px 20px rgba(15, 86, 99, 0.06);
}

.league-action-card {
  border-radius: 18px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-left: 6px solid rgba(255, 134, 0, 0.72);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 238, 0.95));
  box-shadow: 0 10px 22px rgba(15, 86, 99, 0.08);
}

.league-action-card h2 {
  margin-bottom: 0.45rem;
}

.league-utility-actions-inline {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: 0.86rem;
}

.league-steps-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.72rem;
}

.league-step-card {
  display: grid;
  align-content: start;
  gap: 0.34rem;
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 8px 18px rgba(15, 86, 99, 0.06);
}

.league-step-card h3 {
  margin: 0.04rem 0 0;
  color: #104f5c;
  font-size: 1rem;
  line-height: 1.18;
}

.league-step-card p {
  margin: 0;
  color: #265966;
  line-height: 1.46;
}

.league-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 134, 0, 0.94), rgba(215, 154, 0, 0.82));
  color: #ffffff;
  font-weight: 800;
  box-shadow: 0 8px 16px rgba(255, 134, 0, 0.18);
}

.league-list-card h2 {
  margin-bottom: 0.55rem;
  font-size: clamp(1.05rem, 1.65vw, 1.18rem);
  line-height: 1.2;
  color: #104f5c;
}

.league-list-note {
  margin: 0 0 0.6rem;
  color: #245864;
  font-size: 0.9rem;
  line-height: 1.45;
}

.league-chip-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.42rem;
}

.league-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.24);
  background: rgba(255, 255, 255, 0.95);
  color: #0f5663;
  font-weight: 750;
  font-size: 0.83rem;
  letter-spacing: 0.01em;
  padding: 0.36rem 0.7rem;
}

.league-chip-link {
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease,
    background-color 180ms ease, color 180ms ease;
}

.league-chip-link:hover,
.league-chip-link:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(255, 134, 0, 0.44);
  background: rgba(255, 174, 0, 0.14);
  color: #8a4a00;
  box-shadow: 0 8px 18px rgba(255, 134, 0, 0.2);
}

.leagues-live-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.48fr) minmax(0, 0.92fr);
  gap: 0.82rem;
  align-items: start;
}

.leagues-live-grid-compact {
  gap: 0.74rem;
}

.league-standings-shell {
  display: grid;
  gap: 0.74rem;
}

.league-submit-shell {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 780px);
  justify-content: start;
}

.league-utility-card {
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 8px 16px rgba(12, 84, 98, 0.06);
}

.league-utility-card h2 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.03rem, 1.6vw, 1.16rem);
  line-height: 1.2;
  color: #104f5c;
}

.league-utility-card-soft {
  background: rgba(255, 255, 255, 0.99);
}

.league-utility-actions {
  display: grid;
  gap: 0.42rem;
}

.league-utility-actions .btn {
  width: 100%;
}

.league-utility-note {
  margin: 0.62rem 0 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #295761;
}

.league-steps-list {
  margin: 0 0 0.7rem;
  padding-left: 1rem;
  display: grid;
  gap: 0.24rem;
  color: #1f4f5b;
  font-size: 0.9rem;
  line-height: 1.45;
}

.league-form-head {
  display: grid;
  gap: 0.22rem;
}

.league-form-kicker {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0f5663;
}

.league-form-helper {
  margin: 0;
  color: #2a5862;
  font-size: 0.84rem;
  line-height: 1.45;
}

.league-submit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.12rem;
}

.page-leagues-standings .league-selector-card h2,
.page-leagues-standings .league-utility-card h2,
.page-leagues-standings .league-standings-head h2,
.page-leagues-submit .league-selector-card h2,
.page-leagues-submit .league-utility-card h2,
.page-leagues-submit .league-score-form h2,
.page-leagues-submit .league-score-form h3 {
  padding-left: 0;
  letter-spacing: -0.01em;
}

.page-leagues-standings .league-selector-card h2::before,
.page-leagues-standings .league-utility-card h2::before,
.page-leagues-standings .league-standings-head h2::before,
.page-leagues-submit .league-selector-card h2::before,
.page-leagues-submit .league-utility-card h2::before,
.page-leagues-submit .league-score-form h2::before {
  display: none;
}

.page-leagues-standings .league-selector-card h2,
.page-leagues-standings .league-utility-card h2,
.page-leagues-standings .league-standings-head h2,
.page-leagues-submit .league-selector-card h2,
.page-leagues-submit .league-utility-card h2,
.page-leagues-submit .league-score-form h3 {
  font-size: clamp(1.03rem, 1.45vw, 1.12rem);
}

.page-leagues-submit .league-score-form h2 {
  font-size: clamp(1.08rem, 1.55vw, 1.16rem);
}

.page-leagues-standings #league-search,
.page-leagues-standings #league-select,
.page-leagues-submit #league-search,
.page-leagues-submit #league-select,
.page-leagues-submit .league-team-field select {
  width: 100%;
  min-height: 42px;
  font-size: 0.9rem;
  line-height: 1.3;
}

.page-leagues-submit .league-team-field label,
.page-leagues-submit .league-partner-field label {
  font-size: 0.75rem;
}

.league-selector-card {
  border-radius: 16px;
  padding: 0.78rem;
  margin-bottom: 0.74rem;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(2, 117, 139, 0.14);
  box-shadow: 0 8px 18px rgba(15, 86, 99, 0.05);
}

.league-selector-card h2,
.league-selector-card h3 {
  margin-bottom: 0.46rem;
  font-size: clamp(1.05rem, 1.65vw, 1.18rem);
  line-height: 1.2;
  color: #104f5c;
}

.league-selector-card h2 {
  margin-top: 0;
}

.league-selector-card-compact {
  padding: 0.72rem;
}

.league-selector-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.56rem;
}

.league-selection-note {
  margin: 0.56rem 0 0;
  padding-top: 0.46rem;
  border-top: 1px solid rgba(2, 117, 139, 0.12);
  font-size: 0.8rem;
  color: #2a5a65;
}

.league-selector-actions {
  margin-top: 0.62rem;
}

.league-selector-actions .btn {
  width: 100%;
}

.league-quick-switch {
  margin-top: 0.52rem;
}

.league-quick-label {
  margin: 0;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1d616d;
}

.league-quick-picks {
  margin-top: 0.36rem;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.42rem;
}

.league-quick-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  appearance: none;
  border: 1px solid rgba(2, 117, 139, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  color: #0f5663;
  font: inherit;
  font-size: 0.79rem;
  font-weight: 730;
  line-height: 1.1;
  padding: 0.44rem 0.74rem;
  min-height: 35px;
  cursor: pointer;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease,
    border-color 180ms ease, color 180ms ease;
}

.league-quick-pill:hover,
.league-quick-pill:focus-visible {
  outline: none;
  transform: translateY(-1px);
  border-color: rgba(255, 134, 0, 0.5);
  background: rgba(255, 174, 0, 0.14);
  color: #8a4a00;
  box-shadow: 0 8px 18px rgba(255, 134, 0, 0.2);
}

.league-quick-pill.is-active {
  border-color: rgba(255, 134, 0, 0.56);
  background: linear-gradient(135deg, rgba(255, 157, 0, 0.2), rgba(255, 121, 0, 0.14));
  color: #8d4900;
  box-shadow: 0 9px 18px rgba(255, 134, 0, 0.22);
}

.league-quick-empty {
  margin: 0;
  font-size: 0.78rem;
  color: #2a5a65;
}

.league-admin-tools {
  display: grid;
  gap: 0.72rem;
}

.league-admin-roster-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.64rem;
  align-items: start;
}

.league-admin-player-form,
.league-admin-player-list-wrap {
  margin: 0;
}

.league-admin-player-list-wrap {
  padding: 0.6rem 0.64rem;
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.9);
}

.league-admin-player-list-wrap h3 {
  margin-bottom: 0.42rem;
  font-size: clamp(1.05rem, 1.65vw, 1.18rem);
  line-height: 1.2;
  color: #104f5c;
}

.league-player-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.44rem;
}

.league-player-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.52rem;
  padding: 0.44rem 0.5rem;
  border: 1px solid rgba(2, 117, 139, 0.15);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.95);
  color: #184d58;
  font-weight: 600;
}

.league-player-copy {
  min-width: 0;
  display: grid;
  gap: 0.1rem;
}

.league-player-name {
  color: #184d58;
  font-weight: 800;
  line-height: 1.3;
}

.league-player-partner {
  color: #4f6357;
  font-size: 0.78rem;
  font-weight: 650;
  line-height: 1.35;
}

.league-player-actions {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.38rem;
  flex: 0 0 auto;
}

.league-player-actions .btn,
.league-player-remove {
  padding: 0.4rem 0.58rem;
  font-size: 0.76rem;
}

.league-admin-player-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.48rem;
  align-items: center;
}

.league-admin-roster-fields {
  display: grid;
  gap: 0.75rem;
}

.league-admin-roster-field {
  display: grid;
  gap: 0.35rem;
}

.league-admin-roster-field label span {
  color: #617368;
  font-weight: 600;
}

.league-admin-field-note {
  margin: -0.1rem 0 0;
  color: #4f6357;
  font-size: 0.82rem;
  line-height: 1.4;
}

.league-registration-pool {
  border-top: 1px solid rgba(2, 117, 139, 0.14);
  margin-top: 0.08rem;
  padding-top: 0.68rem;
}

.league-registration-pool-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.48rem;
  margin-bottom: 0.5rem;
}

.league-registration-pool-actions {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.league-registration-pool-head h3 {
  margin: 0;
  font-size: clamp(1.05rem, 1.65vw, 1.18rem);
  line-height: 1.2;
  color: #104f5c;
}

.league-registration-pool-head .btn {
  padding: 0.4rem 0.6rem;
  font-size: 0.76rem;
}

.league-signup-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.46rem;
}

.league-signup-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.64rem;
  padding: 0.5rem 0.56rem;
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.95);
}

.league-signup-copy {
  min-width: 0;
}

.league-signup-name {
  margin: 0;
  color: #114e5b;
  font-weight: 800;
  line-height: 1.35;
}

.league-signup-meta,
.league-signup-contact,
.league-signup-partner {
  margin: 0.12rem 0 0;
  color: #2a5761;
  font-size: 0.82rem;
  line-height: 1.4;
}

.league-signup-actions {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.38rem;
  flex: 0 0 auto;
}

.league-signup-actions .btn {
  padding: 0.38rem 0.58rem;
  font-size: 0.75rem;
}

.league-signup-add-both {
  background: #1a3a2a;
  color: #fff !important;
  border-color: #1a3a2a;
}

.league-signup-add-both:hover,
.league-signup-add-both:focus-visible {
  background: #26513c;
  border-color: #26513c;
  color: #fff !important;
}

.league-signup-remove {
  border-color: rgba(199, 62, 62, 0.3);
  color: #7f2020;
}

.leagues-standings-card {
  border-radius: 16px;
  padding: 0.9rem;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(2, 117, 139, 0.14);
  box-shadow: 0 8px 18px rgba(15, 86, 99, 0.05);
  overflow: hidden;
}

.leagues-standings-card-compact {
  padding: 0.8rem;
}

.league-standings-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.62rem;
  margin-bottom: 0.54rem;
}

.league-standings-head h2 {
  margin: 0;
  font-size: clamp(1.05rem, 1.65vw, 1.18rem);
  line-height: 1.2;
  color: #104f5c;
  letter-spacing: -0.01em;
}

.standings-kicker {
  margin: 0;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #0f5663;
}

.standings-meta {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: #245b66;
}

.standings-scroll .standings-table {
  min-width: 640px;
}

.standings-scroll {
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.98);
}

.standings-table {
  table-layout: auto;
}

.standings-table thead th {
  white-space: nowrap;
  text-align: center;
  font-size: 0.72rem;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1a5a67;
  position: sticky;
  top: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(244, 251, 249, 0.98), rgba(236, 247, 244, 0.98));
  box-shadow: inset 0 -1px 0 rgba(2, 117, 139, 0.2);
  padding: 0.44rem 0.38rem 0.5rem;
}

.page-leagues .standings-table thead th,
.page-leagues-standings .standings-table thead th,
.page-leagues-admin .standings-table thead th {
  font-size: 0.72rem;
  font-weight: 800;
}

.standings-table thead th:nth-child(2) {
  text-align: left;
}

.standings-table tbody th,
.standings-table tbody td {
  width: auto;
  white-space: nowrap;
  text-align: center;
  font-size: 0.82rem;
  line-height: 1.26;
  padding: 0.44rem 0.38rem;
}

.standings-table tbody th.standings-team {
  font-weight: 800;
  color: #114e5b;
  white-space: nowrap;
  text-align: left;
}

.standings-team-button {
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  text-align: left;
  padding: 0.08rem 0.18rem;
  margin: -0.08rem -0.18rem;
  border-radius: 8px;
  cursor: pointer;
  transition: color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.standings-team-button:hover,
.standings-team-button:focus-visible {
  color: #8a4a00;
  background: rgba(255, 174, 0, 0.14);
  box-shadow: 0 0 0 1px rgba(255, 134, 0, 0.26);
}

.standings-team-button[aria-pressed="true"] {
  color: #8a4a00;
  background: rgba(255, 174, 0, 0.16);
  box-shadow: 0 0 0 1px rgba(255, 134, 0, 0.32);
}

.standings-table tbody tr {
  background: rgba(255, 255, 255, 0.94);
  transition: background-color 170ms ease;
}

.standings-table tbody tr:nth-child(odd) {
  background: rgba(2, 117, 139, 0.02);
}

.standings-table tbody tr:hover {
  background: rgba(255, 174, 0, 0.08);
}

.standings-table tbody tr.is-top {
  background: linear-gradient(135deg, rgba(255, 134, 0, 0.1), rgba(242, 180, 5, 0.08));
}

.standings-table tbody tr.is-selected {
  background: linear-gradient(135deg, rgba(255, 174, 0, 0.18), rgba(255, 134, 0, 0.12));
}

.standings-rank {
  min-width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  font-size: 0.76rem;
  font-weight: 800;
  color: #0f5664;
  background: rgba(2, 117, 139, 0.12);
  border: 1px solid rgba(2, 117, 139, 0.25);
}

.standings-points {
  font-weight: 800;
  color: #0f5664;
}

.standings-note {
  margin: 0.72rem 0 0;
  font-size: 0.84rem;
  color: #2a5661;
}

.league-score-form {
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  box-shadow: 0 12px 24px rgba(15, 86, 99, 0.07);
  background: rgba(255, 255, 255, 0.98);
  padding: 0.82rem;
  gap: 0.54rem;
}

.league-score-form h2,
.league-score-form h3 {
  margin-bottom: 0.12rem;
  font-size: clamp(1.05rem, 1.65vw, 1.18rem);
  line-height: 1.2;
  color: #114f5b;
}

.league-score-form-compact {
  padding: 0.78rem;
}

.league-score-form-standalone {
  max-width: 780px;
}

.league-entry-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.72rem;
}

.league-entry-block {
  display: grid;
  gap: 0.52rem;
  padding: 0.62rem;
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.96);
}

.league-entry-title {
  margin: 0;
  color: #104f5c;
  font-size: 0.95rem;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

.league-team-select-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.68rem;
}

.league-team-field {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
  padding: 0.5rem 0.54rem;
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.95);
}

.league-team-field select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding-right: 1.85rem;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.league-score-form.is-doubles .league-team-select-grid {
  grid-template-columns: 1fr;
  gap: 0.56rem;
}

.league-partner-field {
  display: grid;
  gap: 0.24rem;
  margin-top: 0.08rem;
}

.league-partner-field label {
  margin: 0;
  font-size: 0.76rem;
  font-weight: 700;
  color: #245864;
}

.league-partner-field input {
  min-height: 40px;
}

.league-partner-field[hidden] {
  display: none !important;
}

.league-winner-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  margin-top: 0.05rem;
  font-size: 0.86rem;
  font-weight: 700;
  color: #15505d;
  cursor: pointer;
}

.league-winner-toggle input {
  width: 16px;
  height: 16px;
  accent-color: #ff8600;
}

.league-winner-fieldset {
  margin: 0.08rem 0 0;
  border: 0;
  padding: 0;
  display: grid;
  gap: 0.36rem;
}

.league-winner-fieldset legend {
  margin: 0;
  padding: 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: #215a66;
}

.league-winner-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
}

.league-winner-choice {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.44rem;
  position: relative;
  min-height: 44px;
  border: 1px solid rgba(2, 117, 139, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.95);
  color: #16515e;
  font-size: 0.84rem;
  font-weight: 700;
  padding: 0.46rem 0.78rem;
  cursor: pointer;
  transition: background-color 170ms ease, border-color 170ms ease, color 170ms ease, box-shadow 170ms ease,
    transform 170ms ease;
}

.league-winner-choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  border: 0;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.league-winner-choice span {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
}

.league-winner-choice span::before {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 999px;
  border: 1.5px solid rgba(2, 117, 139, 0.38);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.95);
  transition: background-color 170ms ease, border-color 170ms ease, box-shadow 170ms ease;
}

.league-winner-choice input:checked + span {
  color: #8d4900;
  font-weight: 800;
}

.league-winner-choice input:checked + span::before {
  border-color: rgba(255, 134, 0, 0.72);
  background: #ff8600;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.82);
}

.league-winner-choice input:focus-visible + span::before {
  box-shadow: 0 0 0 3px rgba(2, 117, 139, 0.2), inset 0 0 0 2px rgba(255, 255, 255, 0.9);
}

.league-winner-choice:hover,
.league-winner-choice:focus-within {
  transform: translateY(-1px);
  border-color: rgba(255, 134, 0, 0.45);
  box-shadow: 0 8px 18px rgba(255, 134, 0, 0.15);
}

.league-winner-choice:has(input:checked) {
  background: linear-gradient(135deg, rgba(255, 174, 0, 0.16), rgba(255, 134, 0, 0.12));
  border-color: rgba(255, 134, 0, 0.52);
  color: #8d4900;
}

.league-set-grid {
  display: grid;
  gap: 0.42rem;
  margin-top: 0.08rem;
}

.league-optional-set {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.48rem;
  margin-top: 0.12rem;
}

.league-inline-toggle {
  padding: 0.48rem 0.72rem;
  font-size: 0.8rem;
}

.league-optional-set-note {
  margin: 0;
  font-size: 0.78rem;
  color: #345a65;
}

.league-set-optional-group {
  display: grid;
  gap: 0.42rem;
}

.league-set-optional-group[hidden] {
  display: none !important;
}

.league-inline-text-button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #0f5663;
  font-size: 0.8rem;
  font-weight: 700;
  justify-self: start;
  box-shadow: none;
}

.league-inline-text-button:hover,
.league-inline-text-button:focus-visible {
  color: #ff8600;
  background: transparent;
  transform: none;
  text-decoration: underline;
  box-shadow: none;
}

.league-set-grid-head {
  display: grid;
  grid-template-columns: auto 1fr 1fr;
  align-items: center;
  gap: 0.62rem;
  padding: 0 0.2rem;
  font-size: 0.71rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #0f5663;
}

.league-set-grid-label {
  min-width: 58px;
}

.league-set-grid-head-submit {
  grid-template-columns: minmax(72px, auto) 1fr;
  gap: 0.54rem;
  padding: 0 0.5rem;
}

.league-set-grid-submit-players {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.44rem;
  text-align: center;
}

.league-set-grid-divider {
  opacity: 0.62;
}

.league-set-row {
  display: grid;
  grid-template-columns: auto 1fr 1fr;
  align-items: center;
  gap: 0.68rem;
  padding: 0.34rem 0.4rem;
  border: 1px solid rgba(2, 117, 139, 0.14);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.95);
}

.league-set-label {
  font-size: 0.84rem;
  font-weight: 700;
  color: #144f5c;
  white-space: nowrap;
}

.league-set-row input {
  text-align: center;
}

.league-score-form-standalone .league-set-grid {
  margin-top: 0;
}

.league-score-form-standalone .league-set-row {
  grid-template-columns: minmax(72px, auto) 1fr;
  gap: 0.54rem;
  padding: 0.4rem 0.5rem;
}

.league-set-input-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.44rem;
}

.league-set-input-pair span {
  font-weight: 800;
  color: #1a5764;
}

.league-set-input-pair input {
  min-height: 40px;
  padding-inline: 0.5rem;
  text-align: center;
}

.league-set-tiebreak-row {
  display: grid;
  grid-template-columns: minmax(72px, auto) 1fr;
  align-items: center;
  gap: 0.54rem;
  margin-top: 0.06rem;
  padding: 0.34rem 0.5rem 0.44rem;
  border: 1px dashed rgba(2, 117, 139, 0.26);
  border-radius: 10px;
  background: rgba(2, 117, 139, 0.03);
}

.league-set-tiebreak-row[hidden] {
  display: none !important;
}

.league-set-tb-label {
  font-size: 0.76rem;
  font-weight: 700;
  color: #185461;
  white-space: nowrap;
}

.league-set-input-pair-tb {
  gap: 0.34rem;
}

.league-set-input-pair-tb input {
  min-height: 36px;
}

.league-set-input-pair-tb input::placeholder {
  color: rgba(27, 85, 97, 0.8);
  font-size: 0.72rem;
  font-weight: 700;
}

@media (min-width: 981px) {
  .page-leagues-standings .league-side-stack,
  .page-leagues-submit .league-side-stack {
    position: sticky;
    top: calc(84px + 0.85rem);
  }
}

.league-score-footnote {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 0.8rem;
  color: #28515c;
}

.league-admin-gate {
  max-width: 620px;
  margin: 0 auto;
}

.league-admin-login-form {
  margin-top: 0.45rem;
}

.league-admin-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.18rem;
}

.league-admin-head h2,
.league-admin-head h3 {
  margin-bottom: 0;
  font-size: clamp(1.05rem, 1.65vw, 1.18rem);
  line-height: 1.2;
  color: #104f5c;
}

.league-admin-head .btn {
  padding: 0.5rem 0.72rem;
  font-size: 0.83rem;
}

.league-admin-form-actions {
  margin-top: 0.12rem;
}

.leagues-results-card {
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(2, 117, 139, 0.14);
  box-shadow: 0 8px 18px rgba(15, 86, 99, 0.05);
}

.leagues-results-card-compact {
  padding: 0.82rem;
}

.league-results-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.56rem;
  margin-bottom: 0.58rem;
}

.league-results-head-standings .btn {
  padding: 0.4rem 0.62rem;
  font-size: 0.78rem;
}

.league-results-head h2 {
  margin: 0;
  font-size: clamp(1.05rem, 1.65vw, 1.18rem);
  line-height: 1.2;
  color: #104f5c;
}

.league-results-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.58rem;
}

.league-result-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-left: 4px solid rgba(2, 117, 139, 0.62);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
  padding: 0.62rem 0.72rem;
}

.league-result-copy {
  min-width: 0;
}

.league-result-meta {
  margin: 0 0 0.2rem;
  font-size: 0.74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #0f5663;
}

.league-result-matchup {
  margin: 0 0 0.2rem;
  color: #184d58;
  font-weight: 700;
  line-height: 1.38;
}

.league-result-sets,
.league-result-winner {
  margin: 0;
  color: #20535e;
  font-size: 0.88rem;
  line-height: 1.4;
}

.league-result-winner {
  margin-top: 0.14rem;
  color: #0f5664;
  font-weight: 700;
}

.league-result-sets {
  font-family: var(--font-display);
  letter-spacing: -0.01em;
  line-height: 1.45;
}

.league-result-delete {
  padding: 0.47rem 0.7rem;
  font-size: 0.83rem;
  flex: 0 0 auto;
}

.league-result-actions-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  flex: 0 0 auto;
}

.league-result-actions-inline .btn {
  padding: 0.46rem 0.68rem;
  font-size: 0.8rem;
}

.league-result-edit {
  border-color: rgba(2, 117, 139, 0.35);
}

.league-result-delete {
  border-color: rgba(199, 62, 62, 0.32);
  color: #7f2020;
}

.league-results-admin-note {
  margin: 0.72rem 0 0;
  font-size: 0.84rem;
  color: #29525d;
}

.league-results-admin-note a {
  color: var(--teal);
  font-weight: 700;
  text-decoration: none;
}

.league-results-admin-note a:hover,
.league-results-admin-note a:focus-visible {
  text-decoration: underline;
}

.league-result-empty {
  margin: 0;
  border: 1px dashed rgba(2, 117, 139, 0.28);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.74);
  padding: 0.72rem 0.76rem;
  color: #335f69;
  font-weight: 600;
}

.league-results-actions {
  margin-top: 0.8rem;
  display: flex;
  justify-content: flex-end;
}

.summer-title {
  position: relative;
  display: inline-block;
  line-height: 1.04;
  padding-right: 0.12em;
}

.summer-title-text {
  position: relative;
  z-index: 2;
}

.summer-sun-gif {
  position: absolute;
  z-index: 1;
  width: 54px;
  height: 54px;
  left: 5.85ch;
  top: 0.06em;
  transform: translate(-39%, -17%);
  object-fit: contain;
  border-radius: 999px;
  opacity: 0.76;
  filter: saturate(0.88) brightness(1.05);
  box-shadow: 0 4px 10px rgba(255, 168, 0, 0.18);
  pointer-events: none;
}

.page-winter .site-header,
.page-winter main,
.page-winter .site-footer {
  position: relative;
  z-index: 2;
}

.winter-snow {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 3;
  overflow: hidden;
  opacity: 0.5;
}

.winter-snow .snow-layer {
  position: absolute;
  inset: -12% -10% 0;
  background-repeat: repeat;
  transform: translate3d(0, -12%, 0);
  filter: drop-shadow(0 0 0.9px rgba(208, 228, 250, 0.48));
}

.winter-snow .snow-layer-one {
  background-image:
    radial-gradient(circle, rgba(255, 255, 255, 0.9) 0 1.1px, transparent 1.3px),
    radial-gradient(circle, rgba(226, 239, 255, 0.72) 0 0.8px, transparent 1px);
  background-size: 84px 84px, 128px 128px;
  background-position: 0 0, 44px 26px;
  opacity: 0.6;
  animation: snow-fall-one 24s linear infinite;
}

.winter-snow .snow-layer-two {
  background-image:
    radial-gradient(circle, rgba(255, 255, 255, 0.78) 0 1.4px, transparent 1.7px),
    radial-gradient(circle, rgba(214, 232, 252, 0.58) 0 1px, transparent 1.2px);
  background-size: 144px 144px, 212px 212px;
  background-position: 16px 10px, 72px 38px;
  opacity: 0.48;
  animation: snow-fall-two 32s linear infinite;
}

.winter-snow .snow-layer-three {
  background-image:
    radial-gradient(circle, rgba(255, 255, 255, 0.62) 0 1.7px, transparent 2px),
    radial-gradient(circle, rgba(204, 226, 250, 0.46) 0 1.3px, transparent 1.6px);
  background-size: 224px 224px, 312px 312px;
  background-position: 24px 14px, 110px 58px;
  opacity: 0.34;
  animation: snow-fall-three 38s linear infinite;
}

@keyframes snow-fall-one {
  from {
    transform: translate3d(0, -14%, 0);
  }
  to {
    transform: translate3d(-7px, 106%, 0);
  }
}

@keyframes snow-fall-two {
  from {
    transform: translate3d(0, -18%, 0);
  }
  to {
    transform: translate3d(6px, 106%, 0);
  }
}

@keyframes snow-fall-three {
  from {
    transform: translate3d(0, -20%, 0);
  }
  to {
    transform: translate3d(-5px, 106%, 0);
  }
}

.page-home .home-hero {
  padding-bottom: 2.2rem;
  position: relative;
}

.page-home .hero-tennis-bounce {
  position: absolute;
  right: clamp(0.8rem, 3.4vw, 2.4rem);
  bottom: clamp(0.1rem, 1vw, 0.7rem);
  width: 74px;
  height: 86px;
  pointer-events: none;
  z-index: 2;
}

.page-home .hero-tennis-ball {
  position: absolute;
  left: 50%;
  bottom: 14px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  transform: translateX(-50%);
  overflow: hidden;
  background:
    radial-gradient(circle at 28% 26%, rgba(255, 255, 255, 0.5) 0 13%, rgba(255, 255, 255, 0) 27%),
    radial-gradient(circle at 70% 72%, rgba(142, 168, 19, 0.28) 0 24%, rgba(142, 168, 19, 0) 56%),
    linear-gradient(145deg, #f3ff72 0%, #d6eb39 54%, #b8d11f 100%);
  border: 1px solid rgba(120, 144, 18, 0.55);
  box-shadow: inset 0 -6px 10px rgba(102, 124, 14, 0.24), 0 8px 16px rgba(15, 56, 68, 0.2);
  animation: tennis-bounce 1850ms cubic-bezier(0.35, 0, 0.65, 1) infinite;
}

.page-home .hero-tennis-ball::before,
.page-home .hero-tennis-ball::after {
  content: "";
  position: absolute;
  top: -4%;
  width: 76%;
  height: 108%;
  border: 3px solid rgba(255, 255, 255, 0.94);
  border-radius: 50%;
}

.page-home .hero-tennis-ball::before {
  left: -47%;
  transform: rotate(18deg);
}

.page-home .hero-tennis-ball::after {
  right: -47%;
  transform: rotate(-18deg);
}

.page-home .hero-tennis-shadow {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 44px;
  height: 10px;
  border-radius: 999px;
  transform: translateX(-50%);
  background: rgba(15, 56, 68, 0.2);
  filter: blur(0.5px);
  animation: tennis-shadow 1850ms cubic-bezier(0.35, 0, 0.65, 1) infinite;
}

@keyframes tennis-bounce {
  0% {
    transform: translateX(calc(-50% - 1px)) translateY(0) scaleX(1);
  }

  20% {
    transform: translateX(calc(-50% + 1px)) translateY(-14px) scaleX(0.99);
  }

  40% {
    transform: translateX(calc(-50% + 3px)) translateY(-30px) scaleX(0.98);
  }

  65% {
    transform: translateX(calc(-50% - 2px)) translateY(0) scaleX(1.04);
  }

  85% {
    transform: translateX(calc(-50% - 1px)) translateY(-7px) scaleX(1);
  }

  100% {
    transform: translateX(calc(-50% - 1px)) translateY(0) scaleX(1);
  }
}

@keyframes tennis-shadow {
  0% {
    transform: translateX(calc(-50% - 1px)) scaleX(1);
    opacity: 0.28;
  }

  20% {
    transform: translateX(calc(-50% + 1px)) scaleX(0.9);
    opacity: 0.2;
  }

  40% {
    transform: translateX(calc(-50% + 2px)) scaleX(0.72);
    opacity: 0.12;
  }

  65% {
    transform: translateX(calc(-50% - 2px)) scaleX(1.04);
    opacity: 0.3;
  }

  100% {
    transform: translateX(calc(-50% - 1px)) scaleX(1);
    opacity: 0.28;
  }
}

.page-home .hero-copy {
  border-radius: calc(var(--radius) + 2px);
}

.page-home .hero-side {
  border-radius: calc(var(--radius) + 2px);
}

.page-home .home-start-panel {
  border-left: 5px solid rgba(2, 117, 139, 0.72);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.98), rgba(241, 248, 246, 0.95));
}

.page-home .home-start-panel .hero-side-note {
  margin: 0 0 0.25rem;
  color: #235560;
  max-width: 34ch;
}

.page-home .home-start-steps {
  margin-top: 0.08rem;
  margin-bottom: 0.08rem;
}

.page-home .home-start-links,
.page-registration .registration-start-links {
  display: grid;
  gap: 0.52rem;
  margin-top: 0.18rem;
}

.page-home .home-start-link,
.page-registration .home-start-link {
  display: grid;
  gap: 0.12rem;
  padding: 0.72rem 0.82rem;
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  box-shadow: var(--shadow-soft);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease,
    background-color 180ms ease;
}

.page-home .home-start-link strong,
.page-registration .home-start-link strong {
  color: #0f5663;
  font-size: 0.93rem;
  line-height: 1.15;
}

.page-home .home-start-link span,
.page-registration .home-start-link span {
  color: #285a65;
  font-size: 0.86rem;
  line-height: 1.38;
}

.page-home .home-start-link:hover,
.page-home .home-start-link:focus-visible,
.page-registration .home-start-link:hover,
.page-registration .home-start-link:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(15, 86, 99, 0.12);
}

.page-home .home-start-link.is-clinics,
.page-registration .home-start-link.is-clinics {
  border-left: 4px solid rgba(2, 117, 139, 0.72);
}

.page-home .home-start-link.is-leagues,
.page-registration .home-start-link.is-leagues {
  border-left: 4px solid rgba(255, 134, 0, 0.7);
}

.page-home .home-start-link.is-register {
  border-left: 4px solid rgba(94, 168, 76, 0.76);
}

.page-home .home-fit,
.page-home .home-leagues {
  position: relative;
  overflow: hidden;
  padding: clamp(1.2rem, 2.6vw, 1.8rem);
  border: 1px solid rgba(2, 117, 139, 0.14);
  border-radius: 30px;
  box-shadow: 0 18px 36px rgba(8, 52, 63, 0.08);
}

.page-home .home-fit {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(243, 250, 248, 0.96));
}

.page-home .home-leagues {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.985), rgba(241, 246, 252, 0.95));
}

.page-home .home-fit::before,
.page-home .home-leagues::before {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -90px;
  top: -110px;
  background: radial-gradient(circle, rgba(255, 134, 0, 0.14), rgba(2, 117, 139, 0.06) 45%, transparent 72%);
  pointer-events: none;
}

.page-home .home-fit::after,
.page-home .home-leagues::after {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  left: -155px;
  bottom: -178px;
  border-radius: 50%;
  border: 2px solid rgba(2, 117, 139, 0.13);
  border-right-color: transparent;
  border-bottom-color: transparent;
  transform: rotate(-12deg);
  pointer-events: none;
}

.page-home .home-fit > *,
.page-home .home-leagues > * {
  position: relative;
  z-index: 1;
}

.page-home .home-start-panel .key-list {
  margin-top: 0.05rem;
}

.page-home .home-start-panel .hero-actions {
  display: grid;
  gap: 0.48rem;
  margin-top: 0.2rem;
}

.page-registration .registration-finder {
  position: relative;
}

.page-registration .registration-shortcut {
  margin-top: 0.9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  padding: 0.9rem 1rem;
  border-radius: 18px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: linear-gradient(140deg, rgba(255, 255, 255, 0.98), rgba(239, 249, 245, 0.94));
  box-shadow: var(--shadow-soft);
}

.page-registration .registration-shortcut strong,
.page-registration .registration-shortcut span {
  display: block;
}

.page-registration .registration-shortcut strong {
  color: #0f5663;
  font-size: 1rem;
  margin-bottom: 0.12rem;
}

.page-registration .registration-shortcut span {
  color: #2e606a;
  font-size: 0.94rem;
  line-height: 1.45;
}

.page-registration .registration-shortcut .btn {
  flex: 0 0 auto;
}

.class-finder-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
  gap: 0.88rem;
  align-items: start;
}

.class-finder-form-card,
.class-finder-result-card,
.page-registration .registration-calendar-card,
.page-calendar .calendar-upcoming-card,
.page-calendar .calendar-board-card {
  position: relative;
  border-radius: 22px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 10px 22px rgba(8, 52, 63, 0.06);
  overflow: hidden;
}

.class-finder-form-card::before,
.class-finder-result-card::before,
.page-registration .registration-calendar-card::before,
.page-calendar .calendar-upcoming-card::before,
.page-calendar .calendar-board-card::before {
  content: "";
  position: absolute;
  width: 180px;
  height: 180px;
  right: -86px;
  top: -96px;
  background: radial-gradient(circle, rgba(255, 134, 0, 0.08), rgba(2, 117, 139, 0.03) 48%, transparent 72%);
  pointer-events: none;
  opacity: 0.75;
}

.class-finder-form-card,
.class-finder-result-card,
.page-registration .registration-calendar-card {
  padding: 1rem;
}

.class-finder-form-card > *,
.class-finder-result-card > *,
.page-registration .registration-calendar-card > * {
  position: relative;
  z-index: 1;
}

.class-finder-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.82rem;
}

.class-finder-field-wide {
  grid-column: 1 / -1;
}

.class-finder-field {
  display: grid;
  gap: 0.3rem;
}

.class-finder-field span {
  font-size: 0.84rem;
  font-weight: 700;
  color: #104f5c;
}

.class-finder-field select {
  min-height: 52px;
  border-radius: 14px;
  border: 1px solid rgba(2, 117, 139, 0.2);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.class-finder-actions {
  margin-top: 0.82rem;
}

.class-finder-note {
  margin-top: 0.72rem;
  margin-bottom: 0;
}

.class-finder-result-card {
  min-height: 100%;
}

.class-finder-result-card h3 {
  margin-bottom: 0.34rem;
}

.class-finder-result-summary,
.class-finder-why,
.class-finder-followup {
  color: #255864;
}

.class-finder-default-list {
  margin-top: 0.64rem;
}

.class-finder-meta {
  margin: 0.82rem 0 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.class-finder-meta div {
  padding: 0.68rem 0.74rem;
  border-radius: 14px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  background: rgba(255, 255, 255, 0.88);
}

.class-finder-meta dt {
  margin: 0 0 0.16rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #0f5663;
}

.class-finder-meta dd {
  margin: 0;
  font-weight: 700;
  color: #174f5b;
}

.class-finder-secondary {
  margin-top: 0.82rem;
  padding: 0.74rem 0.82rem;
  border-radius: 14px;
  border: 1px dashed rgba(255, 134, 0, 0.28);
  background: rgba(255, 249, 241, 0.92);
}

.class-finder-secondary strong {
  display: block;
  margin: 0.12rem 0 0.16rem;
  color: #965400;
}

.class-finder-secondary p {
  margin: 0;
  color: #6e4e16;
}

.class-finder-followup {
  margin: 0.72rem 0 0;
  font-size: 0.9rem;
  font-weight: 600;
}

.registration-planning-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
  gap: 0.88rem;
  align-items: stretch;
  margin-top: 0.88rem;
}

.page-registration .registration-calendar-card h3 {
  margin-bottom: 0.32rem;
}

.page-registration .registration-calendar-card .hero-actions {
  margin-top: 0.72rem;
}

.registration-jump-shell {
  margin-top: 0.82rem;
}

.registration-compare-table tbody tr[data-program-target] {
  cursor: pointer;
  transition: transform 170ms ease, background-color 170ms ease, box-shadow 170ms ease;
}

.registration-compare-table tbody tr[data-program-target]:hover,
.registration-compare-table tbody tr[data-program-target]:focus-visible {
  background: rgba(255, 174, 0, 0.06);
  box-shadow: inset 4px 0 0 rgba(255, 134, 0, 0.4);
}

.registration-course-card.is-highlighted {
  animation: registration-card-glow 1600ms ease;
}

@keyframes registration-card-glow {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 134, 0, 0.32);
    transform: translateY(0);
  }

  35% {
    box-shadow: 0 0 0 10px rgba(255, 134, 0, 0.08), 0 18px 30px rgba(255, 134, 0, 0.14);
    transform: translateY(-2px);
  }

  100% {
    box-shadow: 0 12px 24px rgba(15, 86, 99, 0.08);
    transform: translateY(0);
  }
}

.page-calendar .inner-hero .hero-panel {
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.98), rgba(241, 248, 246, 0.95));
}

.page-calendar .calendar-season-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.page-calendar .calendar-season-card {
  border-radius: 18px;
  padding: 0.88rem 0.92rem;
  border: 1px solid rgba(2, 117, 139, 0.14);
  box-shadow: 0 8px 18px rgba(8, 52, 63, 0.05);
}

.page-calendar .calendar-season-card p {
  margin: 0.2rem 0 0;
  color: #295661;
}

.page-calendar .calendar-season-card-current {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.98), rgba(234, 244, 249, 0.94));
}

.page-calendar .calendar-season-card-session-one {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 233, 0.94));
}

.page-calendar .calendar-season-card-session-two {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(242, 250, 237, 0.94));
}

.page-calendar .calendar-filter-shell {
  display: grid;
  gap: 0.76rem;
  margin-bottom: 0.88rem;
}

.page-calendar .calendar-filter-group {
  display: grid;
  gap: 0.42rem;
}

.page-calendar .calendar-filter-select {
  min-height: 50px;
  width: min(360px, 100%);
  border-radius: 14px;
  border: 1px solid rgba(2, 117, 139, 0.18);
  background: rgba(255, 255, 255, 0.96);
  color: #14515d;
  font: inherit;
  font-weight: 700;
  padding: 0.7rem 0.9rem;
  box-shadow: var(--shadow-soft);
}

.page-calendar .calendar-filter-label {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0f5663;
}

.page-calendar .calendar-filter-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.page-calendar .calendar-filter-chip {
  appearance: none;
  border: 1px solid rgba(2, 117, 139, 0.18);
  background: rgba(255, 255, 255, 0.92);
  color: #14515d;
  border-radius: 999px;
  padding: 0.46rem 0.74rem;
  font: inherit;
  font-size: 0.84rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}

.page-calendar .calendar-filter-chip:hover,
.page-calendar .calendar-filter-chip:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 10px 18px rgba(15, 86, 99, 0.1);
}

.page-calendar .calendar-filter-chip.is-active {
  background: linear-gradient(135deg, rgba(2, 117, 139, 0.16), rgba(255, 255, 255, 0.94));
  border-color: rgba(2, 117, 139, 0.34);
}

.page-calendar .calendar-filter-chip.is-red.is-active {
  background: linear-gradient(135deg, rgba(2, 117, 139, 0.14), rgba(255, 255, 255, 0.94));
}

.page-calendar .calendar-filter-chip.is-orange.is-active {
  background: linear-gradient(135deg, rgba(255, 134, 0, 0.16), rgba(255, 255, 255, 0.94));
}

.page-calendar .calendar-filter-chip.is-green.is-active {
  background: linear-gradient(135deg, rgba(94, 168, 76, 0.18), rgba(255, 255, 255, 0.94));
}

.page-calendar .calendar-filter-chip.is-gold.is-active,
.page-calendar .calendar-filter-chip.is-camp.is-active {
  background: linear-gradient(135deg, rgba(242, 180, 5, 0.18), rgba(255, 255, 255, 0.94));
}

.page-calendar .calendar-filter-chip.is-blue.is-active {
  background: linear-gradient(135deg, rgba(54, 112, 184, 0.18), rgba(255, 255, 255, 0.94));
}

.page-calendar .live-calendar-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1.22fr);
  gap: 0.88rem;
  align-items: start;
}

.page-calendar .calendar-upcoming-card,
.page-calendar .calendar-board-card {
  padding: 0.94rem;
}

.page-calendar .calendar-panel-head {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: end;
  margin-bottom: 0.68rem;
}

.page-calendar .calendar-panel-head h3 {
  margin: 0.14rem 0 0;
}

.page-calendar .calendar-panel-note {
  display: none;
}

.page-calendar .calendar-date-card {
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 6px 16px rgba(15, 86, 99, 0.04);
  padding: 0.74rem 0.8rem;
}

.page-calendar .calendar-date-card + .calendar-date-card {
  margin-top: 0.62rem;
}

.page-calendar .calendar-date-head {
  display: flex;
  align-items: baseline;
  gap: 0.48rem;
  flex-wrap: wrap;
  margin-bottom: 0.56rem;
}

.page-calendar .calendar-date-head strong {
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: #0f5663;
}

.page-calendar .calendar-date-weekday {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0f5663;
}

.page-calendar .calendar-date-head small {
  display: inline-flex;
  align-items: center;
  padding: 0.22rem 0.46rem;
  border-radius: 999px;
  background: rgba(255, 174, 0, 0.12);
  color: #835000;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.page-calendar .calendar-date-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.48rem;
}

.page-calendar .calendar-date-line {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.78rem;
  padding: 0.58rem 0.64rem;
  border-radius: 12px;
  border: 1px solid rgba(2, 117, 139, 0.12);
  background: rgba(250, 252, 251, 0.92);
  transition: transform 170ms ease, box-shadow 170ms ease, border-color 170ms ease;
}

.page-calendar .calendar-date-line:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 16px rgba(15, 86, 99, 0.06);
}

.page-calendar .calendar-date-line div {
  min-width: 0;
}

.page-calendar .calendar-date-line strong {
  display: block;
  color: #144f5c;
}

.page-calendar .calendar-date-line span {
  display: block;
  color: #33636d;
  font-size: 0.82rem;
  line-height: 1.45;
}

.page-calendar .calendar-date-line.is-red {
  border-left: 4px solid rgba(2, 117, 139, 0.64);
}

.page-calendar .calendar-date-line.is-orange {
  border-left: 4px solid rgba(255, 134, 0, 0.78);
}

.page-calendar .calendar-date-line.is-green {
  border-left: 4px solid rgba(94, 168, 76, 0.78);
}

.page-calendar .calendar-date-line.is-gold,
.page-calendar .calendar-date-line.is-camp {
  border-left: 4px solid rgba(242, 180, 5, 0.8);
}

.page-calendar .calendar-date-line.is-blue {
  border-left: 4px solid rgba(54, 112, 184, 0.72);
}

.page-calendar .calendar-event-link {
  flex: 0 0 auto;
  text-decoration: none;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.22);
  color: #0f5663;
  font-size: 0.78rem;
  font-weight: 800;
  padding: 0.4rem 0.68rem;
  background: rgba(255, 255, 255, 0.96);
}

.page-calendar .calendar-event-link:hover,
.page-calendar .calendar-event-link:focus-visible {
  color: #ffffff;
  background: var(--teal);
  border-color: var(--teal);
}

.page-calendar .calendar-month-block + .calendar-month-block {
  margin-top: 0.88rem;
}

.page-calendar .calendar-month-head {
  display: flex;
  justify-content: space-between;
  gap: 0.8rem;
  align-items: end;
  margin-bottom: 0.58rem;
}

.page-calendar .calendar-month-head h4 {
  margin: 0;
  font-size: clamp(1.02rem, 1.55vw, 1.18rem);
  color: #104f5c;
}

.page-calendar .calendar-month-head p {
  margin: 0;
  color: #41676f;
  font-size: 0.86rem;
  font-weight: 700;
}

.page-calendar .calendar-month-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.82rem;
}

.page-calendar .calendar-empty {
  margin: 0;
  padding: 1rem 1.05rem;
  border-radius: 18px;
  border: 1px dashed rgba(2, 117, 139, 0.28);
  background: rgba(255, 255, 255, 0.82);
  color: #325d67;
  font-weight: 600;
}

@media (max-width: 980px) {
  .class-finder-shell,
  .registration-planning-grid,
  .page-calendar .live-calendar-layout {
    grid-template-columns: 1fr;
  }

  .page-calendar .calendar-season-grid {
    grid-template-columns: 1fr;
  }

  .page-calendar .calendar-month-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .class-finder-form-card,
  .class-finder-result-card,
  .page-registration .registration-calendar-card,
  .page-calendar .calendar-upcoming-card,
  .page-calendar .calendar-board-card {
    border-radius: 22px;
    padding: 0.9rem;
  }

  .class-finder-grid,
  .class-finder-meta {
    grid-template-columns: 1fr;
  }

  .page-calendar .calendar-filter-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 0.12rem;
    scrollbar-width: thin;
  }

  .page-calendar .calendar-filter-chip {
    flex: 0 0 auto;
  }

  .page-calendar .calendar-date-line {
    align-items: flex-start;
    flex-direction: column;
  }

  .page-calendar .calendar-event-link {
    width: 100%;
    text-align: center;
  }
}

.page-home .home-start-panel .btn {
  width: 100%;
}

.page-home .hero-copy h1 {
  max-width: 7.7ch;
  font-size: clamp(2.7rem, 4.2vw, 4.05rem);
  line-height: 0.96;
  letter-spacing: -0.042em;
}

.page-home .hero-copy h1 .headline-accent-orange {
  display: block;
  margin-bottom: 0.04em;
}

.page-home .hero-copy > p:not(.eyebrow):not(.hero-note) {
  max-width: 49ch;
  font-size: clamp(1.04rem, 1.28vw, 1.1rem);
  line-height: 1.7;
}

.page-home .hero-note {
  max-width: 50ch;
}

.page-home .home-hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(320px, 0.88fr);
  gap: 1.35rem;
  align-items: start;
}

.page-home .home-hero-main {
  display: grid;
  gap: 0.82rem;
}

.page-home .home-hero-main > p:not(.eyebrow) {
  margin: 0;
  max-width: 49ch;
  font-size: clamp(1.04rem, 1.28vw, 1.1rem);
  line-height: 1.7;
}

.page-home .home-hero-main .hero-actions {
  margin-top: 0.28rem;
}

.page-home .home-hero-side {
  display: grid;
  gap: 0.88rem;
  align-content: start;
  padding-top: 0.16rem;
}

.page-home .home-family-note {
  display: grid;
  gap: 0.52rem;
  align-self: start;
  padding: 1rem 1.02rem 1.06rem;
  border-radius: 22px;
  border: 1px solid rgba(231, 188, 108, 0.24);
  background: linear-gradient(160deg, rgba(255, 250, 242, 0.97), rgba(250, 252, 247, 0.93));
  box-shadow: 0 14px 26px rgba(8, 52, 63, 0.045);
}

.page-home .home-family-note h2 {
  margin: 0;
  color: #113f4b;
  font-size: clamp(1.18rem, 1.55vw, 1.48rem);
  line-height: 1.14;
  max-width: 13ch;
}

.page-home .home-family-note p {
  margin: 0;
  color: #295964;
  font-size: 0.98rem;
  line-height: 1.56;
}

.page-home .home-family-note .key-list {
  margin: 0.08rem 0 0;
}

.page-home .home-family-note .key-list li {
  line-height: 1.48;
}

.page-home .home-family-note a {
  color: #0f5664;
  font-weight: 700;
}

.page-home .home-season-note {
  display: grid;
  gap: 0.46rem;
  padding: 0.98rem 1.02rem 1.05rem;
  border-radius: 22px;
  border: 1px solid rgba(15, 86, 100, 0.12);
  background: linear-gradient(155deg, rgba(248, 252, 249, 0.95), rgba(255, 249, 240, 0.94));
  box-shadow: 0 12px 24px rgba(8, 52, 63, 0.04);
}

.page-home .home-season-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.7rem;
}

.page-home .home-season-list li {
  display: grid;
  gap: 0.18rem;
}

.page-home .home-season-list strong {
  color: #113f4b;
  font-size: 0.98rem;
  line-height: 1.3;
}

.page-home .home-season-list span {
  color: #39626b;
  font-size: 0.94rem;
  line-height: 1.5;
}

.page-home .home-start-panel h2 {
  max-width: 14ch;
}

.page-home .home-start-points {
  margin: 0.08rem 0 0;
  padding-left: 1.02rem;
  display: grid;
  gap: 0.34rem;
  color: #255864;
}

.page-home .home-start-points li {
  line-height: 1.44;
}

.page-home .home-trust {
  padding-top: 0.2rem;
  padding-bottom: 0.1rem;
}

.page-home .trust-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.72rem;
}

.page-home .trust-item {
  display: grid;
  gap: 0.2rem;
  padding: 0.88rem 0.94rem;
  border-radius: 18px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.84);
  box-shadow: var(--shadow-soft);
}

.page-home .trust-item strong {
  color: #0f5663;
  font-size: 0.94rem;
}

.page-home .trust-item span {
  color: #2a5d68;
  font-size: 0.9rem;
  line-height: 1.45;
}

.page-home .home-start .program-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.page-home .home-start .program-card {
  border-radius: 20px;
  border: 1px solid rgba(2, 117, 139, 0.18);
  box-shadow: var(--shadow-soft);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(245, 250, 248, 0.94));
}

.page-home .home-start .program-card .hero-actions {
  display: grid;
  gap: 0.48rem;
}

.page-home .home-start .program-card .btn {
  width: 100%;
}

.page-home .home-start .program-card.is-start {
  border-left: 5px solid rgba(2, 117, 139, 0.72);
}

.page-home .home-start .program-card.is-current {
  border-left: 5px solid rgba(255, 134, 0, 0.68);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(255, 247, 238, 0.94));
}

.page-home .home-start .program-card.is-register {
  border-left: 5px solid rgba(94, 168, 76, 0.76);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(241, 249, 242, 0.95));
}

.page-home .home-fit .section-heading {
  max-width: 760px;
}

.page-home .home-fit .section-heading p:last-child {
  margin: 0.18rem 0 0;
  color: #245560;
  max-width: 60ch;
}

.page-home .home-path-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(265px, 1fr));
  gap: 0.9rem;
}

.page-home .home-path-card {
  display: grid;
  align-content: start;
  gap: 0.7rem;
  border-radius: 24px;
  border: 1px solid rgba(15, 56, 68, 0.14);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.99), rgba(247, 251, 249, 0.95));
  box-shadow: var(--shadow-soft);
}

.page-home .home-path-card-foundations {
  border-left: 5px solid rgba(2, 117, 139, 0.74);
}

.page-home .home-path-card-teen {
  border-left: 5px solid rgba(255, 134, 0, 0.72);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 239, 0.95));
}

.page-home .home-path-card-advanced {
  border-left: 5px solid rgba(94, 168, 76, 0.78);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.99), rgba(242, 250, 243, 0.95));
}

.page-home .home-path-copy {
  margin: -0.08rem 0 0;
  color: #245561;
  line-height: 1.56;
}

.page-home .home-program-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.55rem;
}

.page-home .home-program-list li {
  display: grid;
  gap: 0.12rem;
  padding: 0.72rem 0.78rem;
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.12);
  background: rgba(255, 255, 255, 0.84);
}

.page-home .home-program-list strong {
  color: #0f5663;
  font-size: 0.96rem;
  line-height: 1.2;
}

.page-home .home-program-list span {
  color: #2f5e69;
  font-size: 0.88rem;
  line-height: 1.45;
}

.page-home .home-proof-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.58rem;
  margin-top: 1rem;
}

.page-home .home-proof-pill {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0.6rem 0.86rem;
  border-radius: 999px;
  border: 1px solid rgba(15, 56, 68, 0.14);
  background: rgba(255, 255, 255, 0.9);
  color: #0f5663;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.3;
  box-shadow: var(--shadow-soft);
}

.page-home .home-fit .fit-note {
  margin-bottom: 0.95rem;
  border-left: 5px solid rgba(255, 134, 0, 0.68);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 247, 238, 0.94));
}

.page-home .home-fit .fit-note .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.75rem;
}

.page-home .home-fit .program-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  align-items: stretch;
}

.page-home .home-fit .fit-card {
  display: grid;
  align-content: start;
  gap: 0.45rem;
  border-radius: 22px;
  border: 1px solid rgba(2, 117, 139, 0.18);
  box-shadow: var(--shadow-soft);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.99), rgba(244, 250, 248, 0.95));
}

.page-home .home-fit .home-door {
  padding: 1.18rem 1.16rem 1.16rem;
}

.page-home .home-fit .home-door h3 {
  margin-bottom: 0.05rem;
}

.page-home .home-fit .home-door .door-list {
  margin: 0.1rem 0 0;
  padding-left: 1.08rem;
  display: grid;
  gap: 0.34rem;
  color: #255663;
}

.page-home .home-fit .home-door .door-list li {
  line-height: 1.44;
}

.page-home .home-fit .home-door .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: auto;
  padding-top: 0.25rem;
}

.page-home .home-fit .home-door .register-steps {
  margin: 0.08rem 0 0;
}

.page-home .home-fit .fit-card .stage {
  margin-bottom: 0.58rem;
}

.page-home .home-fit .fit-card .btn {
  margin-top: 0.18rem;
}

.page-home .home-fit .fit-foundations {
  border-left: 5px solid rgba(2, 117, 139, 0.72);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(237, 248, 250, 0.96));
}

.page-home .home-fit .fit-developing {
  border-left: 5px solid rgba(255, 134, 0, 0.7);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 238, 0.96));
}

.page-home .home-fit .fit-advanced {
  border-left: 5px solid rgba(94, 168, 76, 0.76);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(241, 249, 242, 0.96));
}

.page-home .home-leagues .section-heading {
  max-width: 760px;
}

.page-home .home-league-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.page-home .home-league-card {
  display: grid;
  align-content: start;
  gap: 0.42rem;
  border-radius: 22px;
  border: 1px solid rgba(15, 56, 68, 0.14);
  box-shadow: var(--shadow-soft);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 249, 0.95));
}

.page-home .home-league-card:nth-child(1) {
  border-left: 5px solid rgba(255, 134, 0, 0.7);
}

.page-home .home-league-card:nth-child(2) {
  border-left: 5px solid rgba(2, 117, 139, 0.72);
}

.page-home .home-league-card:nth-child(3) {
  border-left: 5px solid rgba(94, 168, 76, 0.76);
}

.page-home .home-contact .mission-grid {
  grid-template-columns: 1.1fr 0.9fr;
}

.page-home .home-current .current-card-clinic {
  border-left: 5px solid rgba(2, 117, 139, 0.72);
  background: var(--surface);
}

.page-home .home-current .current-card-clay {
  border-left: 5px solid rgba(94, 168, 76, 0.72);
}

.page-home .home-season .season-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.86rem;
}

.page-home .home-season .season-card {
  display: grid;
  align-content: start;
  gap: 0.45rem;
  padding: 1.08rem 1.06rem 1.1rem;
  border-radius: 22px;
  border: 1px solid rgba(2, 117, 139, 0.18);
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.97), rgba(244, 250, 248, 0.94));
  box-shadow: var(--shadow-soft);
}

.page-home .home-season .season-label {
  display: inline-flex;
  width: fit-content;
  padding: 0.24rem 0.52rem;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.22);
  background: rgba(2, 117, 139, 0.08);
  color: #0f5663;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.page-home .home-season .season-card p {
  margin-bottom: 0.1rem;
}

.page-home .home-season .season-summer {
  border-left: 5px solid rgba(94, 168, 76, 0.74);
}

.page-home .home-season .season-winter {
  border-left: 5px solid rgba(2, 117, 139, 0.7);
}

.page-home .home-season .season-leagues {
  border-left: 5px solid rgba(255, 134, 0, 0.68);
}

.page-home .home-contact .card {
  box-shadow: var(--shadow-soft);
  border-radius: 14px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.88);
}

.page-home .home-contact .card:first-child {
  border-left: 5px solid rgba(94, 168, 76, 0.7);
}

.page-home .home-contact .card:last-child {
  border-left: 4px solid rgba(2, 117, 139, 0.62);
}

.page-home .home-register .register-help-text {
  margin: 0.55rem 0 0;
  color: #255663;
  font-size: 0.92rem;
  line-height: 1.45;
}

.page-home .home-register .register-help-text a {
  color: #0f5663;
  font-weight: 700;
}

.page-home .home-faq .faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.84rem;
}

.faq-item {
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.faq-item summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 0.92rem 2.9rem 0.92rem 1rem;
  font-weight: 800;
  color: #104f5c;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary::after {
  content: "+";
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #0f5663;
  font-size: 1.15rem;
  font-weight: 700;
}

.faq-item[open] summary::after {
  content: "\2212";
}

.faq-item p {
  margin: 0;
  padding: 0 1rem 1rem;
  color: #245561;
}

.page-programs .programs-hero {
  gap: 1.45rem;
}

.page-programs .programs-hero .inner-copy {
  border-radius: calc(var(--radius) + 2px);
}

.page-programs .programs-hero .hero-panel {
  border-radius: 24px;
  border-color: rgba(2, 117, 139, 0.26);
  border-left: 5px solid rgba(255, 134, 0, 0.68);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(255, 247, 238, 0.95));
}

.page-programs .programs-hero .hero-panel .hero-actions {
  display: grid;
  gap: 0.5rem;
  margin-top: 0.9rem;
}

.page-programs .programs-current .section-heading p:last-child,
.page-programs .programs-options .section-heading p:last-child {
  margin-top: 0.2rem;
  max-width: 54ch;
}

.page-programs .programs-current .current-grid {
  grid-template-columns: 1fr;
  gap: 1.05rem;
}

.page-programs .programs-current .current-card {
  border-radius: 22px;
  border: 1px solid rgba(2, 117, 139, 0.2);
  border-left: 6px solid rgba(2, 117, 139, 0.52);
  background: var(--surface);
  box-shadow: var(--shadow-soft);
}

.page-programs .programs-current .current-card-clinic {
  border-left-color: rgba(2, 117, 139, 0.72);
}

.page-programs .programs-current .current-card-clay {
  border-left-color: rgba(94, 168, 76, 0.8);
}

.page-programs .programs-current .current-rhythm {
  border-style: dashed;
  background: rgba(255, 255, 255, 0.84);
}

.page-programs .programs-pathway {
  background: linear-gradient(180deg, rgba(2, 117, 139, 0.06), rgba(94, 168, 76, 0.06));
  border-top: 1px solid rgba(2, 117, 139, 0.14);
  border-bottom: 1px solid rgba(2, 117, 139, 0.12);
}

.page-programs .programs-options .program-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
}

.page-programs .programs-options .program-grid.program-mosaic {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: minmax(118px, auto);
  gap: 0.75rem;
}

.page-programs .programs-options .program-card {
  display: grid;
  align-content: start;
  gap: 0.42rem;
  border-radius: 14px;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(2, 117, 139, 0.2);
  padding: 1rem;
}

.page-programs .programs-options .program-card .hero-actions {
  margin-top: auto;
  padding-top: 0.15rem;
}

.page-programs .programs-options .program-card.is-flagship {
  grid-column: span 3;
  grid-row: span 2;
  border: 1px solid rgba(2, 117, 139, 0.32);
  border-left: 5px solid rgba(2, 117, 139, 0.74);
  background: var(--surface);
}

.page-programs .programs-options .program-card.is-match {
  grid-column: span 3;
  border-left: 4px solid rgba(2, 117, 139, 0.65);
  background: rgba(2, 117, 139, 0.07);
}

.page-programs .programs-options .program-card.is-clay {
  grid-column: span 2;
  border-left: 4px solid rgba(94, 168, 76, 0.75);
  background: rgba(94, 168, 76, 0.08);
}

.page-programs .programs-options .program-card.is-community {
  grid-column: span 4;
  border-left: 4px solid rgba(94, 168, 76, 0.72);
  background: rgba(94, 168, 76, 0.1);
}

.page-programs .programs-options .program-card:hover {
  transform: translateY(-1px);
  border-color: rgba(2, 117, 139, 0.36);
  box-shadow: var(--shadow);
}

.page-coaches .coaches-intro .page-intro {
  max-width: 840px;
}

.page-coaches .coaches-highlights .feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.page-coaches .coach-highlights-grid .feature-card {
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-left: 5px solid rgba(2, 117, 139, 0.72);
  border-radius: 22px;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(243, 250, 247, 0.94));
  box-shadow: var(--shadow-soft);
}

.page-coaches .coach-highlights-grid .feature-card:nth-child(2) {
  border-left-color: rgba(255, 134, 0, 0.72);
}

.page-coaches .coach-highlights-grid .feature-card:nth-child(3) {
  border-left-color: rgba(94, 168, 76, 0.76);
}

.page-coaches .coaches-team .coach-grid-flow {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0.9rem;
}

.page-coaches .coaches-team .section-note {
  margin: 0.18rem 0 0;
  color: #20505b;
  font-size: 0.96rem;
  max-width: 62ch;
}

.page-coaches .coaches-team .coach-card {
  border-left: 5px solid rgba(2, 117, 139, 0.58);
  border-radius: 22px;
  padding: 1.14rem;
  box-shadow: var(--shadow-soft);
}

.page-coaches .coaches-team .coach-card-featured {
  border-left-width: 6px;
  border-left-color: rgba(2, 117, 139, 0.78);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.99), rgba(239, 248, 249, 0.95));
}

.page-coaches .coaches-team .coach-head {
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 0.9rem;
}

.page-coaches .coaches-team .coach-photo-wrap {
  width: 84px;
  height: 84px;
  border-radius: 18px;
}

.page-coaches .coaches-team .coach-details summary {
  background: rgba(2, 117, 139, 0.05);
}

.page-coaches .coaches-team .coach-details summary:hover {
  background: rgba(2, 117, 139, 0.08);
}

.page-coaches .coaches-team .coach-details-body {
  padding-top: 0.74rem;
}

.coach-tag-list {
  list-style: none;
  margin: 0.18rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.36rem;
}

.coach-tag-list li {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.22);
  background: linear-gradient(130deg, rgba(2, 117, 139, 0.08), rgba(255, 134, 0, 0.08));
  color: #0f5663;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 0.28rem 0.56rem;
}

.coach-summary {
  margin: 0.1rem 0 0;
  color: #255762;
  line-height: 1.52;
}

.page-coaches .coaches-approach .feature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.85rem;
}

.page-coaches .coaches-approach .feature-card {
  border: 1px solid rgba(2, 117, 139, 0.2);
  border-left: 5px solid rgba(94, 168, 76, 0.72);
  border-radius: 22px;
  padding: 1.25rem 1.2rem;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(243, 250, 247, 0.94));
  box-shadow: var(--shadow-soft);
}

.page-coaches .coaches-approach .feature-card:nth-child(2) {
  border-left-color: rgba(2, 117, 139, 0.66);
}

.page-coaches .coaches-approach .feature-card:nth-child(3) {
  border-left-color: rgba(94, 168, 76, 0.78);
}

.page-updates .updates-intro {
  background: rgba(255, 255, 255, 0.55);
  border-top: 1px solid rgba(2, 117, 139, 0.14);
  border-bottom: 1px solid rgba(2, 117, 139, 0.12);
}

.page-updates .updates-intro .page-intro {
  margin: 0;
}

.page-updates .updates-stream-section {
  padding-top: 1.65rem;
}

.page-updates .updates-stream {
  position: relative;
  padding-left: 1.55rem;
  gap: 0.85rem;
}

.page-updates .updates-stream::before {
  content: "";
  position: absolute;
  left: 0.44rem;
  top: 0.3rem;
  bottom: 0.3rem;
  width: 2px;
  background: linear-gradient(180deg, rgba(2, 117, 139, 0.72), rgba(94, 168, 76, 0.52));
}

.page-updates .updates-stream .update-entry {
  position: relative;
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-left: 0;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.84);
  box-shadow: var(--shadow-soft);
  padding: 0.76rem 0.9rem 0.84rem;
}

.page-updates .updates-stream .update-entry::before {
  content: "";
  position: absolute;
  left: -1.55rem;
  top: 1rem;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: var(--teal);
  box-shadow: 0 0 0 4px rgba(2, 117, 139, 0.2);
}

.page-updates .updates-stream .update-entry:nth-child(even)::before {
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(94, 168, 76, 0.2);
}

.page-updates .updates-stream .update-entry.is-priority {
  border-color: rgba(2, 117, 139, 0.3);
  background: var(--surface);
}

.page-updates .updates-stream .update-entry.is-summer {
  border-color: rgba(94, 168, 76, 0.32);
}

.page-updates .updates-stream .update-entry.is-leagues {
  border-color: rgba(2, 117, 139, 0.3);
}

.page-updates .updates-stream .update-entry.is-model {
  border-color: rgba(94, 168, 76, 0.34);
}

.page-updates .updates-stream .update-entry.is-community {
  border-color: rgba(2, 117, 139, 0.28);
  background: var(--surface);
}

.page-updates .updates-instagram {
  padding-top: 0.28rem;
}

.page-updates .instagram-embed-card {
  border: 1px solid rgba(2, 117, 139, 0.2);
  border-radius: 20px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.98), rgba(244, 250, 248, 0.94));
  box-shadow: var(--shadow-soft);
  padding: 1rem 1.02rem 1.05rem;
}

.page-updates .instagram-embed-card p {
  margin: 0;
}

.page-updates .instagram-embed-placeholder {
  margin-top: 0.72rem;
  border: 1px dashed rgba(2, 117, 139, 0.36);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.82);
  padding: 0.86rem 0.92rem;
  display: grid;
  gap: 0.48rem;
}

.instagram-embed-label {
  margin: 0;
  font-size: 0.77rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #0f5663;
}

.instagram-embed-copy {
  margin: 0;
  max-width: 50ch;
}

.page-updates .instagram-embed-placeholder .social-link-instagram {
  width: fit-content;
  font-weight: 700;
  color: #0f5663;
}

.page-contact .contact-connect .contact-grid {
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  gap: 1.25rem;
}

.page-contact .contact-connect .contact-list li {
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-left: 4px solid rgba(94, 168, 76, 0.7);
}

.page-contact .contact-connect .contact-form {
  border-radius: 24px;
  background: var(--surface);
}

.page-contact .contact-next .program-grid {
  grid-template-columns: 1fr 1fr;
}

.page-contact .contact-next .program-grid.contact-next-grid {
  grid-template-columns: 1.08fr 0.92fr;
  gap: 1.05rem;
}

.page-contact .contact-next .program-card {
  border-radius: 22px;
  padding: 1.15rem 1.12rem;
  border: 1px solid rgba(2, 117, 139, 0.2);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(243, 250, 247, 0.94));
  box-shadow: var(--shadow-soft);
}

.page-contact .contact-next .program-card.is-primary-next {
  border-left: 5px solid rgba(2, 117, 139, 0.7);
}

.page-contact .contact-next .program-card.is-support-next {
  border-left: 5px solid rgba(94, 168, 76, 0.72);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(241, 249, 242, 0.94));
}

.page-contact .contact-next .program-card p {
  max-width: 44ch;
}

.page-registration .registration-options .registration-flow {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.82rem;
  max-width: none;
}

.page-registration .registration-options .registration-flow.registration-flow-simple {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  max-width: none;
}

.page-registration .registration-options .registration-checklist-card {
  display: grid;
  align-content: start;
  gap: 0.55rem;
  border-radius: 22px;
  border: 1px solid rgba(2, 117, 139, 0.2);
  border-left: 6px solid rgba(255, 134, 0, 0.72);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(255, 247, 238, 0.94));
  box-shadow: var(--shadow-soft);
}

.page-registration .registration-options .registration-checklist-card .register-steps {
  margin-top: 0;
}

.page-registration .registration-options .registration-step {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  align-content: start;
  gap: 0.55rem;
  border-radius: 22px;
  border: 1px solid rgba(2, 117, 139, 0.2);
  border-left: 6px solid rgba(2, 117, 139, 0.7);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(237, 248, 250, 0.95));
  box-shadow: var(--shadow-soft);
  padding: 1.12rem 1.18rem;
}

.page-registration .registration-options .registration-step h3,
.page-registration .registration-options .registration-step p {
  grid-column: auto;
}

.page-registration .registration-options .registration-step h3 {
  margin-top: 0.02rem;
}

.page-registration .registration-options .registration-step .btn,
.page-registration .registration-options .registration-checklist-card .btn {
  min-width: 0;
}

.page-registration .registration-options .registration-step.is-primary {
  border-left: 6px solid rgba(2, 117, 139, 0.72);
  background: var(--surface);
}

.page-registration .registration-options .registration-step-league {
  border-left: 6px solid rgba(94, 168, 76, 0.78);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(241, 249, 242, 0.95));
}

.page-registration .registration-options .registration-step .btn-coming {
  min-width: 214px;
}

.page-registration .registration-options .registration-step .registration-step-label {
  margin: 0 0 0.12rem;
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 800;
  color: #0f5663;
}

.page-registration .registration-intro .hero-actions,
.page-registration .registration-options .hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.page-registration .registration-intro .page-intro {
  position: relative;
  max-width: none;
  padding: clamp(1.35rem, 3vw, 2.2rem);
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-radius: 28px;
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.985), rgba(242, 250, 249, 0.95));
  box-shadow: 0 22px 44px rgba(8, 52, 63, 0.09);
  overflow: hidden;
}

.page-registration .registration-intro .page-intro::after {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -78px;
  top: -88px;
  background: radial-gradient(circle, rgba(245, 176, 40, 0.18), rgba(2, 117, 139, 0.08) 45%, transparent 72%);
  pointer-events: none;
}

.page-registration .registration-intro .page-intro > * {
  position: relative;
  z-index: 1;
}

.page-registration .registration-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr);
  gap: 1rem;
  align-items: stretch;
}

.page-registration .registration-start-card {
  position: relative;
  overflow: hidden;
  display: grid;
  align-content: start;
  gap: 0.72rem;
  padding: clamp(1.2rem, 3vw, 1.8rem);
  border: 1px solid rgba(2, 117, 139, 0.18);
  border-radius: 28px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(240, 248, 246, 0.95));
  box-shadow: 0 20px 40px rgba(8, 52, 63, 0.08);
}

.page-registration .registration-start-card::before {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  right: -90px;
  bottom: -110px;
  background: radial-gradient(circle, rgba(94, 168, 76, 0.14), rgba(2, 117, 139, 0.06) 44%, transparent 72%);
  pointer-events: none;
}

.page-registration .registration-start-card > * {
  position: relative;
  z-index: 1;
}

.page-registration .registration-start-card h2 {
  max-width: 13ch;
}

.page-registration .registration-start-links {
  margin-top: 0;
}

.page-registration .registration-start-card .hero-actions {
  margin-top: auto;
}

.page-registration .registration-guide,
.page-registration .registration-booking,
.page-registration .registration-league-detour {
  position: relative;
  overflow: hidden;
  padding: clamp(1.2rem, 2.6vw, 1.8rem);
  border: 1px solid rgba(2, 117, 139, 0.14);
  border-radius: 30px;
  box-shadow: 0 18px 36px rgba(8, 52, 63, 0.08);
}

.page-registration .registration-guide {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.985), rgba(241, 246, 252, 0.95));
}

.page-registration .registration-booking {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(243, 250, 248, 0.96));
}

.page-registration .registration-league-detour {
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.985), rgba(250, 246, 240, 0.95));
}

.page-registration .registration-guide::before,
.page-registration .registration-booking::before,
.page-registration .registration-league-detour::before {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -90px;
  top: -110px;
  background: radial-gradient(circle, rgba(255, 134, 0, 0.14), rgba(2, 117, 139, 0.06) 45%, transparent 72%);
  pointer-events: none;
}

.page-registration .registration-guide::after,
.page-registration .registration-booking::after,
.page-registration .registration-league-detour::after {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  left: -155px;
  bottom: -178px;
  border-radius: 50%;
  border: 2px solid rgba(2, 117, 139, 0.13);
  border-right-color: transparent;
  border-bottom-color: transparent;
  transform: rotate(-12deg);
  pointer-events: none;
}

.page-registration .registration-guide > *,
.page-registration .registration-booking > *,
.page-registration .registration-league-detour > * {
  position: relative;
  z-index: 1;
}

.page-registration .registration-helper-note {
  margin: 0.82rem 0 0;
  color: #255864;
  font-size: 0.94rem;
  line-height: 1.48;
}

.page-registration .registration-helper-note a {
  color: #0f5663;
  font-weight: 700;
}

.page-registration .registration-intro .page-intro h1 {
  max-width: 11ch;
}

.page-registration .registration-intro .page-intro > p:not(.kicker):not(.orange-highlight) {
  max-width: 58ch;
}

.page-registration .registration-proof-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.25rem;
}

.page-registration .registration-proof-pill {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0.52rem 0.78rem;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.9);
  color: #0f5663;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.3;
  box-shadow: var(--shadow-soft);
}

.page-registration .registration-start-card h2 {
  max-width: 11ch;
}

.page-registration .registration-side-note {
  margin: 0;
  color: #275763;
  line-height: 1.52;
}

.page-registration .registration-fit-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
  gap: 0.84rem;
  margin-bottom: 1rem;
}

.page-registration .registration-fit-card {
  display: grid;
  align-content: start;
  gap: 0.58rem;
  padding: 1.02rem 1.04rem 1.08rem;
  border-radius: 22px;
  border: 1px solid rgba(15, 56, 68, 0.14);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--shadow-soft);
}

.page-registration .registration-fit-card:nth-child(1) {
  border-left: 5px solid rgba(2, 117, 139, 0.72);
}

.page-registration .registration-fit-card:nth-child(2) {
  border-left: 5px solid rgba(255, 134, 0, 0.72);
}

.page-registration .registration-fit-card:nth-child(3) {
  border-left: 5px solid rgba(94, 168, 76, 0.76);
}

.page-registration .registration-fit-card h3 {
  margin: 0;
}

.page-registration .registration-fit-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.52rem;
}

.page-registration .registration-fit-list li {
  display: grid;
  gap: 0.1rem;
  padding: 0.62rem 0.7rem;
  border-radius: 16px;
  background: rgba(247, 250, 249, 0.92);
  border: 1px solid rgba(2, 117, 139, 0.1);
}

.page-registration .registration-fit-list strong {
  color: #0f5663;
  font-size: 0.94rem;
  line-height: 1.2;
}

.page-registration .registration-fit-list span {
  color: #2f5f6a;
  font-size: 0.86rem;
  line-height: 1.42;
}

.page-registration .registration-jump-intro {
  margin: 0.9rem 0 0.5rem;
  color: #174f5b;
  font-size: 0.92rem;
  font-weight: 700;
}

.page-registration .section-heading h2 {
  letter-spacing: -0.02em;
}

.page-registration .registration-booking .section-heading p,
.page-registration .registration-faq .section-heading p {
  max-width: 54ch;
}

.page-registration .registration-faq {
  position: relative;
  overflow: hidden;
  padding: clamp(1.2rem, 2.6vw, 1.8rem);
  border: 1px solid rgba(2, 117, 139, 0.14);
  border-radius: 30px;
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.99), rgba(244, 248, 252, 0.95));
  box-shadow: 0 18px 36px rgba(8, 52, 63, 0.08);
}

.page-registration .registration-faq::before {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -90px;
  top: -110px;
  background: radial-gradient(circle, rgba(2, 117, 139, 0.11), rgba(245, 176, 40, 0.07) 45%, transparent 72%);
  pointer-events: none;
}

.page-registration .registration-faq::after {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  left: -155px;
  bottom: -178px;
  border-radius: 50%;
  border: 2px solid rgba(2, 117, 139, 0.11);
  border-right-color: transparent;
  border-bottom-color: transparent;
  transform: rotate(-12deg);
  pointer-events: none;
}

.page-registration .registration-faq > * {
  position: relative;
  z-index: 1;
}

.page-registration .registration-faq .faq-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.84rem;
}

.page-junior-registration .registration-hub-hero {
  max-width: none;
}

.page-junior-registration .registration-hub-hero p {
  max-width: 56ch;
}

.registration-jump-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.registration-jump-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0.58rem 0.88rem;
  border-radius: 999px;
  border: 1px solid rgba(15, 56, 68, 0.14);
  background: rgba(255, 255, 255, 0.94);
  color: #0f5663;
  font-weight: 800;
  line-height: 1.1;
  text-decoration: none;
  box-shadow: var(--shadow-soft);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease,
    background-color 180ms ease;
}

.registration-jump-link:hover,
.registration-jump-link:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(15, 86, 99, 0.12);
}

.registration-jump-link:visited,
.registration-jump-link:active {
  color: #0f5663;
}

.registration-jump-link.is-red {
  border-color: rgba(219, 102, 88, 0.28);
}

.registration-jump-link.is-orange {
  border-color: rgba(255, 134, 0, 0.3);
}

.registration-jump-link.is-green {
  border-color: rgba(94, 168, 76, 0.3);
}

.registration-jump-link.is-gold {
  border-color: rgba(215, 154, 0, 0.28);
}

.registration-jump-link.is-blue {
  border-color: rgba(2, 117, 139, 0.28);
}

.registration-course-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
  align-items: start;
}

.registration-course-grid-teen {
  grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
}

.registration-course-card {
  scroll-margin-top: 5.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.68rem;
  min-height: 100%;
  border-color: rgba(15, 56, 68, 0.12);
  background: linear-gradient(155deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 249, 0.95));
}

.registration-course-card:target {
  border-color: rgba(2, 117, 139, 0.42);
  box-shadow: 0 0 0 3px rgba(2, 117, 139, 0.12), 0 18px 34px rgba(8, 52, 63, 0.12);
}

.registration-course-card-wide {
  grid-column: 1 / -1;
}

.registration-course-card-featured {
  grid-column: auto;
}

.registration-course-card .stage {
  align-self: flex-start;
}

.registration-course-card .class-time {
  margin: 0;
  color: #144f5c;
  font-size: 1rem;
  font-weight: 700;
}

.registration-course-card .session-badge-row {
  margin: -0.05rem 0 0.05rem;
}

.registration-hub-note {
  margin: 0;
  color: #295965;
  line-height: 1.55;
}

.session-link-group {
  display: grid;
  gap: 0.5rem;
}

.session-link-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: auto;
}

.session-link-card {
  display: grid;
  gap: 0.22rem;
  min-height: 100%;
  padding: 0.84rem 0.76rem 0.82rem;
  border-radius: 18px;
  border: 1px solid rgba(2, 117, 139, 0.24);
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.98), rgba(242, 249, 247, 0.98));
  color: #0f5663;
  text-decoration: none;
  box-shadow:
    inset 0 2px 0 rgba(255, 134, 0, 0.16),
    0 12px 24px rgba(8, 52, 63, 0.08);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease,
    background-color 180ms ease;
}

.session-link-card:hover,
.session-link-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(2, 117, 139, 0.42);
  background: linear-gradient(160deg, rgba(255, 255, 255, 1), rgba(234, 246, 242, 0.98));
  box-shadow:
    inset 0 2px 0 rgba(255, 134, 0, 0.2),
    0 18px 30px rgba(8, 52, 63, 0.14);
}

.session-link-card:visited,
.session-link-card:active {
  color: #0f5663;
}

.session-link-card span {
  color: #b36200;
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.session-link-card strong {
  color: #0f5663;
  font-size: 0.96rem;
  line-height: 1.2;
}

.session-link-card small {
  color: #2e5f6b;
  font-size: 0.75rem;
  line-height: 1.25;
  min-height: 2.45em;
}

.session-link-card .session-link-card-cta {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0.48rem 0.34rem;
  border-radius: 14px;
  border: 1px solid rgba(7, 97, 113, 0.12);
  background: linear-gradient(135deg, rgba(9, 131, 149, 0.98), rgba(12, 102, 118, 0.98));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 10px 18px rgba(8, 52, 63, 0.12);
  color: #ffffff;
  font-size: 0.61rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.04;
  text-transform: none;
  pointer-events: none;
  white-space: normal;
  text-align: center;
  min-height: 36px;
}

.session-link-card .session-link-card-cta::after {
  content: none;
}

.session-link-card:hover .session-link-card-cta,
.session-link-card:focus-visible .session-link-card-cta {
  background: linear-gradient(135deg, rgba(10, 141, 159, 1), rgba(12, 112, 128, 1));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.16),
    0 12px 20px rgba(8, 52, 63, 0.16);
}

.registration-course-card-wide .hero-actions {
  margin-top: 0.05rem;
}

.registration-course-card-wide .session-link-group {
  margin-top: 0.35rem;
}

.page-registration .registration-league-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: end;
}

.page-registration .registration-league-shell .hero-actions {
  justify-content: flex-end;
}

.page-community .section-heading {
  max-width: 760px;
}

.page-community .contact-form.form-wide {
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(245, 251, 248, 0.94));
}

.page-league-registration .league-registration-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(300px, 0.96fr);
  gap: 1rem;
  align-items: start;
}

.page-league-registration .section-heading {
  max-width: none;
}

.page-league-registration .section-heading .eyebrow {
  margin-bottom: 0.25rem;
}

.page-league-registration .section-heading h1 {
  margin: 0;
  font-size: var(--league-h1-size);
  line-height: 1.08;
  letter-spacing: -0.015em;
}

.page-league-registration .section-heading > p {
  margin-top: 0.52rem;
  max-width: 64ch;
  font-size: var(--league-copy-size);
  line-height: 1.5;
}

.page-league-registration .subpage-nav {
  margin-top: 0.72rem;
  margin-bottom: 1.04rem;
}

.page-league-registration .contact-form.form-wide {
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(245, 251, 248, 0.94));
}

.page-league-registration .league-registration-intro .page-intro,
.page-league-registration .league-registration-note,
.page-league-registration .league-registration-form-shell {
  border: 1px solid rgba(214, 190, 145, 0.28);
  border-radius: 26px;
  background: linear-gradient(160deg, rgba(255, 252, 247, 0.98), rgba(255, 247, 237, 0.94));
  box-shadow:
    inset 0 2px 0 rgba(255, 134, 0, 0.12),
    0 16px 30px rgba(8, 52, 63, 0.055);
}

.page-league-registration .league-registration-intro .page-intro {
  padding: 1.28rem 1.34rem 1.32rem;
}

.page-league-registration .league-registration-note {
  display: grid;
  gap: 0.72rem;
  padding: 1.18rem 1.2rem 1.22rem;
}

.page-league-registration .league-registration-note h2 {
  margin: 0;
  max-width: 13ch;
}

.page-league-registration .league-registration-proof-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.46rem;
  margin-top: 0.18rem;
}

.page-league-registration .league-registration-proof-pill {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0.48rem 0.72rem;
  border-radius: 999px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.18);
  background: rgba(255, 255, 255, 0.9);
  color: var(--league-accent-text);
  font-size: 0.81rem;
  font-weight: 700;
  line-height: 1.25;
}

.page-league-registration .league-registration-meta {
  display: grid;
  gap: 0.52rem;
}

.page-league-registration .league-registration-meta-item {
  display: grid;
  gap: 0.14rem;
  padding: 0.72rem 0.8rem;
  border-radius: 16px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.16);
  background: rgba(255, 255, 255, 0.84);
}

.page-league-registration .league-registration-meta-item span {
  color: rgba(17, 78, 91, 0.72);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-league-registration .league-registration-meta-item strong {
  color: var(--league-accent-text);
  font-size: 0.98rem;
  line-height: 1.3;
}

.page-league-registration .league-registration-form-shell {
  padding: 1.16rem 1.16rem 1.22rem;
}

.page-league-registration .league-registration-form-head {
  display: grid;
  gap: 0.38rem;
  margin-bottom: 0.88rem;
}

.page-league-registration .league-registration-form-head p {
  max-width: 54ch;
}

.page-league-registration .league-chip-list-registration {
  margin: 0.18rem 0 0;
}

.page-league-registration .form-wide {
  max-width: none;
}

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

@media (max-width: 980px) {
  .hero {
    grid-template-columns: 1fr;
  }

  .inner-hero {
    grid-template-columns: 1fr;
  }

  .page-home .home-entry-grid,
  .page-league-registration .league-registration-intro-grid {
    grid-template-columns: 1fr;
  }

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

  .pathway-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pathway-overview {
    grid-template-columns: 1fr;
  }

  .pathway-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .class-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .program-callout {
    grid-template-columns: 1fr;
  }

  .logo-feature {
    grid-template-columns: 1fr;
  }

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

  .values-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .coach-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

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

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

  .league-home-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .league-front-grid,
  .league-steps-grid,
  .registration-course-grid,
  .page-registration .registration-options .registration-flow,
  .session-window-grid {
    grid-template-columns: 1fr;
  }

  .league-utility-actions-inline {
    grid-template-columns: 1fr;
  }

  .leagues-live-grid {
    grid-template-columns: 1fr;
  }

  .league-standings-layout,
  .league-submit-layout {
    grid-template-columns: 1fr;
    gap: 0.66rem;
  }

  .league-entry-layout {
    grid-template-columns: 1fr;
  }

  .league-team-select-grid {
    grid-template-columns: 1fr;
    gap: 0.56rem;
  }

  .page-home .home-start .program-grid,
  .page-home .home-fit .program-grid,
  .page-home .home-league-grid {
    grid-template-columns: 1fr;
  }

  .page-registration .registration-hero-grid,
  .page-registration .registration-league-shell {
    grid-template-columns: 1fr;
  }

  .page-registration .registration-league-shell .hero-actions {
    justify-content: flex-start;
  }

  .page-home .trust-strip,
  .page-home .home-season .season-grid,
  .page-home .home-faq .faq-grid,
  .page-coaches .coaches-highlights .feature-grid,
  .page-registration .registration-options .registration-flow.registration-flow-simple {
    grid-template-columns: 1fr;
  }

  .page-home .hero-tennis-bounce {
    right: 0.85rem;
    bottom: 0;
    transform: scale(0.9);
    transform-origin: bottom right;
  }

  .page-programs .programs-options .program-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-programs .programs-options .program-grid.program-mosaic {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-programs .programs-options .program-card.is-flagship,
  .page-programs .programs-options .program-card.is-match,
  .page-programs .programs-options .program-card.is-clay,
  .page-programs .programs-options .program-card.is-community {
    grid-column: span 1;
    grid-row: auto;
  }

  .page-coaches .coaches-approach .feature-grid {
    grid-template-columns: 1fr;
  }

  .page-contact .contact-connect .contact-grid {
    grid-template-columns: 1fr;
  }

  .page-contact .contact-next .program-grid.contact-next-grid {
    grid-template-columns: 1fr;
  }

  .page-registration .registration-options .registration-step {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }

  .page-registration .registration-options .registration-step .btn {
    grid-column: auto;
    grid-row: auto;
    min-width: 0;
    width: 100%;
  }

  .page-registration .registration-options .registration-checklist-card .hero-actions,
  .page-registration .registration-options .registration-step .hero-actions {
    flex-direction: column;
  }

  .page-registration .registration-options .registration-checklist-card .hero-actions .btn,
  .page-registration .registration-options .registration-step .hero-actions .btn {
    width: 100%;
  }

  .flip-calendar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  html {
    font-size: 16px;
  }

  body {
    line-height: 1.6;
  }

  .container {
    width: min(1120px, 94vw);
  }

  .header-row {
    min-height: 78px;
  }

  .brand-mark-wrap {
    width: 54px;
    height: 42px;
    border-radius: 9px;
  }

  .brand-name {
    font-size: clamp(1.2rem, 4vw, 1.45rem);
  }

  .brand-name small {
    font-size: 0.52rem;
    letter-spacing: 0.22em;
  }

  .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 78px;
    font-size: 0.9rem;
  }

  .main-nav {
    position: fixed;
    top: 82px;
    left: 2.5vw;
    right: 2.5vw;
    flex-direction: column;
    align-items: stretch;
    gap: 0.3rem;
    background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(247, 252, 250, 0.97));
    border: 1px solid rgba(2, 117, 139, 0.2);
    border-radius: 14px;
    box-shadow: 0 22px 38px rgba(8, 52, 63, 0.24);
    backdrop-filter: blur(10px);
    padding: 0.62rem;
    min-width: 180px;
    max-width: 460px;
    max-height: calc(100vh - 96px);
    overflow-y: auto;
    margin-left: auto;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px) scale(0.98);
    transform-origin: top right;
    transition: opacity 200ms ease, transform 200ms ease;
    will-change: transform, opacity;
    z-index: 45;
  }

  .main-nav a {
    width: 100%;
    border-radius: 11px;
    padding: 0.66rem 0.84rem;
    font-size: 0.94rem;
    opacity: 0;
    transform: translateY(-4px);
    transition: background-color 200ms ease, color 200ms ease, transform 200ms ease,
      box-shadow 200ms ease, opacity 200ms ease;
  }

  .main-nav .nav-register {
    margin-top: 0.15rem;
  }

  .main-nav.open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
  }

  .main-nav.open a {
    opacity: 1;
    transform: translateY(0);
  }

  .main-nav.open a:nth-child(1) {
    transition-delay: 35ms;
  }

  .main-nav.open a:nth-child(2) {
    transition-delay: 60ms;
  }

  .main-nav.open a:nth-child(3) {
    transition-delay: 85ms;
  }

  .main-nav.open a:nth-child(4) {
    transition-delay: 110ms;
  }

  .main-nav.open a:nth-child(5) {
    transition-delay: 135ms;
  }

  .main-nav.open a:nth-child(6) {
    transition-delay: 160ms;
  }

  .main-nav.open a:nth-child(7) {
    transition-delay: 185ms;
  }

  .schedule-table {
    font-size: 0.82rem;
  }

  .schedule-table thead th {
    font-size: 0.67rem;
    padding: 0.28rem 0.24rem 0.36rem;
  }

  .schedule-table tbody th,
  .schedule-table tbody td {
    padding: 0.32rem 0.24rem;
  }

  .flip-calendar {
    grid-template-columns: 1fr;
    gap: 0.46rem;
  }

  .flip-week,
  .flip-week-card {
    min-height: 172px;
  }

  .flip-week-face {
    padding: 0.66rem 0.64rem;
  }

  .flip-week-range {
    font-size: 0.98rem;
  }

  .flip-week-lines {
    font-size: 0.74rem;
    gap: 0.28rem;
  }

  .flip-week-date {
    min-width: 6.5em;
  }

  .league-standings-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .standings-scroll .standings-table {
    min-width: 520px;
  }

  .standings-table thead th {
    font-size: 0.72rem;
  }

  .standings-table tbody th,
  .standings-table tbody td {
    font-size: 0.78rem;
  }

  .standings-rank {
    min-width: 1.3rem;
    height: 1.3rem;
    font-size: 0.72rem;
  }

  .league-team-select-grid {
    grid-template-columns: 1fr;
    gap: 0.52rem;
  }

  .league-intro-note {
    max-width: 100%;
    font-size: 0.92rem;
    line-height: 1.52;
  }

  .league-utility-card {
    padding: 0.92rem;
  }

  .league-steps-list {
    font-size: 0.86rem;
    gap: 0.22rem;
  }

  .league-submit-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.46rem;
  }

  .league-submit-actions .btn {
    width: 100%;
  }

  .league-winner-choice-grid {
    grid-template-columns: 1fr;
  }

  .league-selector-grid,
  .league-admin-roster-grid {
    grid-template-columns: 1fr;
    gap: 0.56rem;
  }

  .league-quick-picks {
    gap: 0.3rem;
  }

  .league-quick-pill {
    font-size: 0.75rem;
    padding: 0.41rem 0.6rem;
    min-height: 32px;
  }

  .league-set-grid-head-submit {
    grid-template-columns: minmax(58px, auto) 1fr;
    gap: 0.46rem;
    font-size: 0.69rem;
  }

  .league-set-grid-submit-players {
    gap: 0.34rem;
  }

  .league-admin-edit-form .league-set-grid-head,
  .league-admin-edit-form .league-set-row {
    grid-template-columns: minmax(50px, auto) 1fr 1fr;
    gap: 0.46rem;
  }

  .league-admin-edit-form .league-set-grid-head {
    font-size: 0.69rem;
  }

  .league-score-form-standalone .league-set-row {
    grid-template-columns: minmax(58px, auto) 1fr;
    gap: 0.46rem;
  }

  .league-set-tiebreak-row {
    grid-template-columns: minmax(58px, auto) 1fr;
    gap: 0.46rem;
    padding: 0.3rem 0.44rem 0.4rem;
  }

  .league-set-input-pair {
    gap: 0.34rem;
  }

  .league-home-grid {
    grid-template-columns: 1fr;
  }

  .league-result-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.56rem;
  }

  .standings-team-button {
    font-size: 0.78rem;
    line-height: 1.35;
  }

  .league-admin-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .league-registration-pool-head {
    flex-direction: column;
    align-items: stretch;
  }

  .league-registration-pool-head .btn {
    width: 100%;
  }

  .league-signup-item {
    flex-direction: column;
    align-items: flex-start;
  }

  .league-signup-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .league-signup-actions .btn {
    width: 100%;
  }

  .league-player-item {
    flex-direction: column;
    align-items: stretch;
  }

  .league-player-actions {
    width: 100%;
  }

  .league-player-actions .btn {
    flex: 1 1 8rem;
  }

  .league-results-head {
    flex-direction: column;
    align-items: stretch;
  }

  .league-results-head .btn {
    width: 100%;
  }

  .league-result-actions-inline,
  .league-results-actions {
    width: 100%;
  }

  .league-result-actions-inline .btn,
  .league-results-actions .btn {
    width: 100%;
  }

  .page-home .hero-tennis-bounce {
    width: 56px;
    height: 64px;
    right: 0.25rem;
    bottom: 0;
    transform: scale(0.82);
    opacity: 0.86;
  }

  .hero {
    gap: 0.9rem;
    padding: 3.05rem 0 1.78rem;
  }

  .section {
    padding: 1.28rem 0;
  }

  main h2 {
    padding-left: 0.78rem;
    line-height: 1.22;
  }

  main h2::before {
    width: 0.18rem;
    top: 0.18em;
    bottom: 0.18em;
  }

  input,
  select,
  textarea,
  button {
    font-size: 16px;
  }

  h1 {
    font-size: clamp(2rem, 8.7vw, 2.55rem);
    line-height: 1.1;
  }

  h2 {
    font-size: clamp(1.38rem, 6.4vw, 1.86rem);
    line-height: 1.2;
  }

  h3 {
    font-size: 1.08rem;
    line-height: 1.32;
  }

  .hero-copy,
  .hero-side,
  .hero-panel,
  .inner-copy,
  .current-card,
  .card,
  .coach-card,
  .program-card,
  .feature-card,
  .path-card,
  .greatbase-callout,
  .register-strip,
  .contact-form,
  .logo-feature {
    padding: 0.98rem;
  }

  .hero-side h2 {
    max-width: 100%;
  }

  .hero-copy p,
  .hero-panel p,
  .inner-copy p,
  .current-card p,
  .card p,
  .program-card p,
  .feature-card p,
  .logo-feature-copy p,
  .greatbase-callout p {
    font-size: 0.97rem;
    line-height: 1.62;
    max-width: 36ch;
  }

  .hero-note {
    font-size: 0.93rem;
    line-height: 1.56;
  }

  .hero-actions {
    gap: 0.54rem;
    margin-top: 0.95rem;
  }

  .section-heading h2,
  .hero-copy h1,
  .inner-copy h1 {
    max-width: 100%;
  }

  .eyebrow,
  .pulse-label,
  .update-date {
    font-size: 0.72rem;
    letter-spacing: 0.07em;
    padding: 0.24rem 0.5rem;
    line-height: 1.2;
  }

  .section-subpage-strip {
    padding-top: 0.22rem;
    padding-bottom: 0.28rem;
  }

  .subpage-nav {
    display: flex;
    width: 100%;
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    border-radius: 13px;
    padding: 0.24rem;
    gap: 0.26rem;
    scroll-snap-type: x proximity;
  }

  .subpage-nav::-webkit-scrollbar {
    height: 5px;
  }

  .subpage-nav::-webkit-scrollbar-thumb {
    background: rgba(2, 117, 139, 0.28);
    border-radius: 999px;
  }

  .subpage-nav a {
    flex: 0 0 auto;
    white-space: nowrap;
    text-align: center;
    font-size: 0.8rem;
    min-height: 34px;
    padding: 0.4rem 0.62rem;
    scroll-snap-align: start;
  }

  .league-submit-shell {
    grid-template-columns: 1fr;
  }

  .page-league-registration .subpage-nav {
    margin-top: 0.62rem;
    margin-bottom: 0.9rem;
  }

  .session-link-grid {
    grid-template-columns: 1fr;
  }

  .league-score-form-standalone {
    max-width: none;
  }

  .league-selector-card,
  .leagues-standings-card,
  .league-score-form,
  .league-admin-player-list-wrap,
  .league-registration-pool {
    border-radius: 14px;
  }

  .league-selection-note {
    font-size: 0.78rem;
    line-height: 1.42;
  }

  .league-list-card h2,
  .league-selector-card h2,
  .league-selector-card h3,
  .league-standings-head h2,
  .league-score-form h2,
  .league-score-form h3,
  .league-admin-head h2,
  .league-admin-head h3,
  .league-admin-player-list-wrap h3,
  .league-results-head h2,
  .league-registration-pool-head h3 {
    font-size: 1rem;
  }

  .hero-actions .btn,
  .register-actions .btn {
    width: 100%;
    min-height: 46px;
  }

  .card,
  .hero-copy,
  .hero-side,
  .hero-panel,
  .inner-copy,
  .contact-form,
  .register-strip,
  .logo-feature,
  .greatbase-callout {
    border-radius: 14px;
  }

  .greatbase-logo {
    max-height: 36px;
    width: min(100%, 248px);
  }

  .mission-grid,
  .coach-grid,
  .program-grid,
  .current-grid,
  .updates-grid,
  .pathway-grid,
  .pathway-track,
  .feature-grid,
  .values-grid,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .footer-links,
  .footer-links-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.38rem 0.72rem;
  }

  .footer-links a,
  .footer-social a {
    font-size: 0.92rem;
    line-height: 1.35;
  }

  .footer-brand-block p {
    font-size: 0.9rem;
    line-height: 1.46;
  }

  .footer-bottom p {
    font-size: 0.84rem;
  }

  .collapse-panel summary,
  .coach-details summary {
    padding: 0.64rem 0.74rem;
    font-size: 0.94rem;
  }

  .coach-head {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 0.6rem;
  }

  .coach-photo-wrap {
    width: 56px;
    height: 56px;
    border-radius: 12px;
  }

  .coach-photo-fallback {
    font-size: 0.9rem;
  }

  .footer-grid {
    padding-top: 1.1rem;
  }

  .page-updates .updates-stream {
    padding-left: 0;
    gap: 0.68rem;
  }

  .page-updates .updates-stream::before,
  .page-updates .updates-stream .update-entry::before {
    display: none;
  }

  .page-updates .updates-stream .update-entry {
    border-left: 1px solid rgba(2, 117, 139, 0.18);
    padding: 0.72rem 0.76rem 0.8rem;
  }

  .page-coaches .coaches-team .coach-head {
    grid-template-columns: 64px minmax(0, 1fr);
  }

  .page-coaches .coaches-team .coach-photo-wrap {
    width: 64px;
    height: 64px;
    border-radius: 14px;
  }

  .page-programs .programs-options .program-grid {
    grid-template-columns: 1fr;
  }

  .page-programs .programs-options .program-grid.program-mosaic {
    grid-template-columns: 1fr;
    gap: 0.62rem;
  }

  body.menu-open::after {
    opacity: 1;
  }
}

@media (max-width: 480px) {
  .container {
    width: min(1120px, 94.6vw);
  }

  .section {
    padding: 1.08rem 0;
  }

  .hero {
    padding: 2.7rem 0 1.5rem;
    gap: 0.76rem;
  }

  h1 {
    font-size: clamp(1.76rem, 9.5vw, 2.15rem);
  }

  h2 {
    font-size: clamp(1.24rem, 7.6vw, 1.58rem);
    line-height: 1.22;
  }

  h3 {
    font-size: 1.02rem;
    line-height: 1.34;
  }

  main h2 {
    padding-left: 0.66rem;
    line-height: 1.2;
  }

  main h2::before {
    width: 0.14rem;
  }

  .main-nav {
    top: 78px;
    left: 2.4vw;
    right: 2.4vw;
    min-width: 164px;
    border-radius: 14px;
    padding: 0.54rem;
  }

  .league-entry-block {
    padding: 0.54rem;
  }

  .league-winner-choice-grid {
    grid-template-columns: 1fr;
  }

  .league-winner-choice {
    justify-content: flex-start;
    min-height: 42px;
    padding: 0.44rem 0.72rem;
  }

  .brand-mark-wrap {
    width: 46px;
    height: 35px;
    border-radius: 8px;
  }

  .brand-name {
    font-size: clamp(1.02rem, 5.8vw, 1.22rem);
  }

  .brand-name small {
    font-size: 0.44rem;
    letter-spacing: 0.19em;
    margin-top: 0.18rem;
    display: none;
  }

  .hero-copy,
  .hero-side,
  .hero-panel,
  .inner-copy,
  .current-card,
  .card,
  .coach-card,
  .program-card,
  .feature-card,
  .path-card,
  .greatbase-callout,
  .register-strip,
  .contact-form,
  .logo-feature {
    padding: 0.98rem;
  }

  .collapse-panel summary,
  .coach-details summary {
    font-size: 0.9rem;
    padding: 0.58rem 0.68rem;
  }

  .coach-head {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 0.56rem;
  }

  .coach-photo-wrap {
    width: 52px;
    height: 52px;
  }

  .hero-copy p,
  .hero-panel p,
  .inner-copy p,
  .current-card p,
  .card p,
  .program-card p,
  .feature-card p,
  .logo-feature-copy p,
  .greatbase-callout p {
    font-size: 0.95rem;
    line-height: 1.6;
    max-width: 33ch;
  }

  .eyebrow,
  .pulse-label,
  .update-date {
    font-size: 0.69rem;
    letter-spacing: 0.06em;
    padding: 0.22rem 0.46rem;
  }

  .btn {
    font-size: 0.92rem;
    min-height: 44px;
  }

  .btn-coming {
    font-size: 0.86rem;
  }

  .subpage-nav a {
    font-size: 0.77rem;
    padding: 0.4rem 0.58rem;
  }

  .footer-links,
  .footer-links-compact {
    grid-template-columns: 1fr 1fr;
    gap: 0.34rem 0.62rem;
  }

  .footer-links a,
  .footer-social a {
    font-size: 0.89rem;
  }

  .summer-sun-gif {
    width: 45px;
    height: 45px;
    left: 5.45ch;
    top: 0.08em;
    transform: translate(-42%, -18%);
    opacity: 0.72;
  }

  .greatbase-logo {
    max-height: 32px;
    width: min(100%, 220px);
  }

  .schedule-table {
    font-size: 0.78rem;
  }

  .flip-week,
  .flip-week-card {
    min-height: 164px;
  }

  .schedule-table thead th {
    letter-spacing: 0.05em;
  }

  .pricing-total-table {
    font-size: 0.75rem;
  }

  .standings-scroll .standings-table {
    min-width: 520px;
  }

  .league-set-row {
    padding: 0.34rem 0.34rem;
  }

  .league-set-label {
    font-size: 0.8rem;
  }

  .league-result-sets,
  .league-result-winner {
    font-size: 0.84rem;
  }

  .page-updates .updates-stream .update-entry {
    padding: 0.72rem 0.84rem 0.78rem;
  }

  .page-coaches .coaches-team .coach-head {
    grid-template-columns: 56px minmax(0, 1fr);
  }

  .page-coaches .coaches-team .coach-photo-wrap {
    width: 56px;
    height: 56px;
  }
}

@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    animation: none !important;
  }

  .winter-snow {
    opacity: 0.4;
  }

  .winter-snow .snow-layer {
    transform: translate3d(0, 0, 0) !important;
    filter: none;
  }
}

@media (max-width: 760px) {
  body.has-mobile-cta {
    padding-bottom: calc(6.1rem + env(safe-area-inset-bottom));
  }

  .mobile-cta-bar {
    display: grid;
  }

  .page-home .trust-strip {
    grid-template-columns: 1fr;
  }

  .page-home .home-season .season-card,
  .faq-item {
    border-radius: 16px;
  }

  .page-home .home-fit,
  .page-home .home-leagues,
  .page-registration .registration-guide,
  .page-registration .registration-booking,
  .page-registration .registration-league-detour {
    border-radius: 24px;
    padding: 1rem;
  }

  .register-steps-numbered li {
    padding-left: 2rem;
  }
}

.league-compact-main .section {
  padding-block: 0.94rem;
}

.league-compact-intro {
  padding-top: 1.08rem;
}

.page-leagues-standings .league-platform-toolbar,
.page-leagues-submit .league-platform-toolbar,
.page-leagues-standings .leagues-standings-card-platform,
.page-leagues-standings .leagues-results-card-platform,
.page-leagues-submit .league-score-wizard,
.page-leagues .league-home-hero-card,
.page-leagues .league-home-panel,
.page-leagues .league-rules-compact-card {
  padding: 0.9rem 0.94rem;
}

.league-title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.48rem;
}

.league-context-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.75rem;
  padding: 0.24rem 0.58rem;
  border-radius: 999px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.18);
  background: rgba(var(--league-accent-rgb), 0.09);
  color: var(--league-accent-text);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.standings-scroll .standings-table {
  min-width: 720px;
}

.standings-scroll {
  border-radius: 14px;
}

.standings-table thead th {
  font-size: 0.68rem;
  padding: 0.38rem 0.28rem 0.42rem;
}

.standings-table tbody th,
.standings-table tbody td {
  font-size: 0.78rem;
  padding: 0.34rem 0.28rem;
}

.standings-table thead th:first-child,
.standings-table tbody td:first-child {
  width: 2.8rem;
}

.standings-table thead th:nth-child(n + 3):nth-child(-n + 11),
.standings-table tbody td:nth-child(n + 3):nth-child(-n + 11) {
  width: 3.9rem;
}

.standings-table thead th:last-child,
.standings-table tbody td:last-child {
  width: 4.1rem;
}

.standings-col-muted,
.standings-stat-muted {
  color: rgba(26, 90, 103, 0.72);
}

.standings-stat-core,
.standings-points {
  color: #0f5664;
}

.standings-rank {
  min-width: 1.32rem;
  height: 1.32rem;
  font-size: 0.72rem;
}

.standings-table tbody tr {
  transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.standings-table tbody tr.is-playoff {
  background: linear-gradient(135deg, rgba(255, 134, 0, 0.12), rgba(242, 180, 5, 0.08));
}

.standings-table tbody tr.is-playoff-cutoff > * {
  box-shadow: inset 0 -2px 0 rgba(var(--league-accent-rgb), 0.36);
}

.standings-table tbody tr:hover {
  box-shadow: inset 0 0 0 1px rgba(var(--league-accent-rgb), 0.12);
}

.standings-team-button {
  max-width: 100%;
}

.standings-team-wrap {
  min-width: 0;
}

.standings-team-wrap .standings-team-button {
  flex: 1 1 auto;
  min-width: 0;
}

.standings-team-badge {
  flex: 0 0 auto;
}

.league-result-item {
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.league-result-item:hover {
  transform: translateY(-1px);
  border-color: rgba(var(--league-accent-rgb), 0.18);
  box-shadow: 0 14px 24px rgba(12, 68, 81, 0.08);
}

.league-result-badge-rail {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.34rem;
}

.league-result-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.62rem;
  padding: 0.18rem 0.48rem;
  border-radius: 999px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.14);
  background: rgba(var(--league-accent-rgb), 0.08);
  color: var(--league-accent-text);
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1.1;
}

.league-result-chip-league {
  background: rgba(255, 255, 255, 0.9);
}

.league-result-badge {
  min-height: 1.62rem;
  padding: 0.18rem 0.52rem;
}

.league-result-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.34rem;
}

.league-result-meta {
  font-size: 0.74rem;
}

.league-result-matchup {
  font-size: 0.92rem;
}

.league-result-sets {
  font-size: 0.9rem;
}

.league-result-winner {
  font-size: 0.78rem;
}

.league-success-card {
  display: grid;
  gap: 0.7rem;
  margin-top: 0.16rem;
  padding: 0.88rem;
  border-radius: 20px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.2);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(var(--league-accent-soft-rgb), 0.52));
  box-shadow: 0 16px 28px rgba(var(--league-accent-rgb), 0.1);
}

.page-leagues-submit .league-success-card {
  position: relative;
  overflow: hidden;
}

.page-leagues-submit .league-success-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, rgba(var(--league-accent-rgb), 0.94), rgba(255, 134, 0, 0.82));
}

.league-success-card[hidden] {
  display: none !important;
}

.league-success-card h3 {
  margin: 0;
  color: var(--league-accent-text);
}

.league-success-copy {
  margin: 0;
  color: #285763;
  line-height: 1.5;
}

.league-success-summary {
  display: grid;
  gap: 0.42rem;
}

.league-success-row {
  display: grid;
  grid-template-columns: minmax(92px, 112px) minmax(0, 1fr);
  gap: 0.72rem;
  align-items: start;
}

.league-success-label {
  color: rgba(17, 78, 91, 0.72);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.league-success-value {
  color: #114e5b;
  line-height: 1.42;
}

.league-success-actions {
  margin-top: 0.1rem;
}

.page-leagues-submit .league-stepper-item,
.page-leagues-submit .league-matchup-summary-card,
.page-leagues-submit .league-success-card,
.page-leagues-standings .league-platform-toolbar,
.page-leagues-standings .league-results-panel {
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease,
    background-color 180ms ease;
}

@media (max-width: 760px) {
  .league-compact-main .section {
    padding-block: 0.82rem;
  }

  .standings-scroll .standings-table {
    min-width: 520px;
  }

  .standings-table thead th {
    font-size: 0.66rem;
    padding: 0.3rem 0.2rem 0.34rem;
  }

  .standings-table tbody th,
  .standings-table tbody td {
    font-size: 0.75rem;
    padding: 0.3rem 0.2rem;
  }

  .league-title-row {
    align-items: flex-start;
  }

  .league-context-badge {
    min-height: 1.58rem;
    font-size: 0.66rem;
  }

  .league-result-stats {
    gap: 0.28rem;
  }

  .league-success-row {
    grid-template-columns: 1fr;
    gap: 0.18rem;
  }

  .league-success-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* Global polish pass */
:root {
  --surface: #fffefb;
  --line: rgba(15, 86, 100, 0.14);
  --radius: 18px;
  --shadow: 0 18px 42px rgba(8, 52, 63, 0.1), 0 4px 12px rgba(8, 52, 63, 0.05);
  --shadow-soft: 0 12px 28px rgba(8, 52, 63, 0.08), 0 2px 8px rgba(8, 52, 63, 0.04);
  --ring: 0 0 0 3px rgba(2, 117, 139, 0.14), 0 12px 28px rgba(2, 117, 139, 0.12);
}

body {
  background:
    radial-gradient(circle at top left, rgba(2, 117, 139, 0.08), transparent 34%),
    radial-gradient(circle at bottom right, rgba(94, 168, 76, 0.08), transparent 32%),
    linear-gradient(180deg, #fffdf8 0%, #fbfcf8 48%, #f8fbff 100%);
}

body::before {
  background-image:
    radial-gradient(rgba(15, 56, 68, 0.06) 0.7px, transparent 0.7px),
    radial-gradient(rgba(255, 255, 255, 0.78) 0.7px, transparent 0.7px),
    linear-gradient(180deg, rgba(255, 255, 255, 0.24), rgba(255, 255, 255, 0));
  background-size: 24px 24px, 24px 24px, 100% 100%;
  background-position: 0 0, 12px 12px, 0 0;
  opacity: 0.24;
}

.bg-orb {
  opacity: 0.28;
  filter: blur(0.5px);
}

.orb-one {
  width: 420px;
  height: 420px;
  top: -120px;
  left: -120px;
}

.orb-two {
  width: 460px;
  height: 460px;
  bottom: -150px;
  right: -130px;
}

.site-header {
  background: rgba(255, 252, 245, 0.84);
  border-bottom: 1px solid rgba(2, 117, 139, 0.12);
  box-shadow: 0 10px 30px rgba(8, 52, 63, 0.08);
  backdrop-filter: blur(14px);
}

.brand {
  transition: transform 220ms ease;
}

.brand:hover,
.brand:focus-visible {
  transform: translateY(-1px);
}

.brand-mark-wrap {
  background: transparent;
  box-shadow: none;
}

.main-nav a {
  font-weight: 650;
  padding: 0.48rem 0.78rem;
}

.main-nav a:hover,
.main-nav a:focus-visible {
  box-shadow: 0 10px 20px rgba(8, 52, 63, 0.09);
}

.main-nav .nav-register {
  box-shadow: 0 12px 24px rgba(2, 117, 139, 0.22);
}

.hero,
.inner-hero {
  gap: 1.1rem;
}

.hero {
  padding: 4rem 0 2.1rem;
}

.inner-hero {
  padding: 3rem 0 1.35rem;
}

.hero-copy,
.hero-side,
.hero-panel,
.inner-copy,
.current-card,
.card,
.coach-card,
.program-card,
.feature-card,
.path-card,
.contact-form,
.register-strip,
.logo-feature,
.greatbase-callout {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(252, 249, 243, 0.96));
  border: 1px solid rgba(15, 86, 100, 0.12);
  box-shadow: var(--shadow);
  border-radius: 20px;
}

.hero-side,
.hero-panel,
.program-card,
.feature-card,
.coach-card {
  overflow: hidden;
}

.hero-copy,
.hero-panel,
.hero-side {
  position: relative;
}

.hero-panel::before {
  opacity: 0.8;
}

.card:hover,
.program-card:hover,
.current-card:hover,
.feature-card:hover,
.coach-card:hover,
.registration-step:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 46px rgba(8, 52, 63, 0.11), 0 6px 16px rgba(8, 52, 63, 0.06);
}

.card:focus-within,
.program-card:focus-within,
.current-card:focus-within,
.feature-card:focus-within,
.coach-card:focus-within,
.registration-step:focus-within {
  box-shadow: var(--ring);
}

.section {
  padding: clamp(1.55rem, 3vw, 2.35rem) 0;
}

.section-heading {
  margin-bottom: 1.04rem;
}

main h2 {
  padding-left: 0.9rem;
}

main h2::before {
  width: 0.18rem;
  top: 0.16em;
  bottom: 0.16em;
}

.section-heading h2 {
  max-width: 20ch;
}

main .page-intro p,
main .hero-copy p,
main .inner-copy p,
main .current-card p,
main .program-card p,
main .feature-card p,
main .card p {
  max-width: 58ch;
}

.hero-copy p,
.current-card p,
.card p,
.feature-card p,
.logo-feature-copy p,
.greatbase-callout p {
  line-height: 1.64;
}

.hero-actions {
  gap: 0.58rem;
}

.btn {
  min-height: 46px;
  border-radius: 14px;
  padding: 0.78rem 1.04rem;
  font-weight: 750;
  letter-spacing: 0.005em;
}

.btn:hover {
  transform: translateY(-2px);
}

.btn-primary {
  background: linear-gradient(135deg, #02819b, #13958b);
  border-color: rgba(2, 117, 139, 0.4);
  box-shadow: 0 14px 28px rgba(2, 117, 139, 0.22);
}

.btn-primary:hover,
.btn-primary:focus-visible {
  background: linear-gradient(135deg, #02778f, #11857d);
  box-shadow: 0 18px 34px rgba(2, 117, 139, 0.24);
}

.btn-secondary {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 249, 0.96));
  border: 1px solid rgba(15, 86, 100, 0.16);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84), 0 10px 20px rgba(8, 52, 63, 0.06);
}

.btn-secondary:hover,
.btn-secondary:focus-visible {
  background: linear-gradient(180deg, rgba(255, 255, 255, 1), rgba(241, 248, 245, 0.98));
}

.subpage-nav {
  border-color: rgba(15, 86, 100, 0.14);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(246, 251, 249, 0.92));
  box-shadow: 0 10px 22px rgba(8, 52, 63, 0.06);
}

.subpage-nav a {
  min-height: 38px;
  padding: 0.45rem 0.76rem;
}

.subpage-nav a.is-active {
  box-shadow: 0 10px 18px rgba(2, 117, 139, 0.2);
}

.contact-form {
  gap: 0.58rem;
  padding: 1.18rem;
}

.contact-form label {
  font-weight: 650;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  min-height: 48px;
  padding: 0.78rem 0.82rem;
  border-radius: 12px;
  border: 1px solid rgba(15, 86, 100, 0.18);
  background: rgba(255, 255, 255, 0.94);
}

.contact-form textarea {
  min-height: 132px;
}

.contact-form input:hover,
.contact-form select:hover,
.contact-form textarea:hover {
  border-color: rgba(2, 117, 139, 0.28);
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  box-shadow: 0 0 0 3px rgba(2, 117, 139, 0.14), 0 12px 24px rgba(2, 117, 139, 0.1);
}

.form-status {
  min-height: 1.35rem;
  margin-top: 0.46rem;
}

.site-footer {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(247, 251, 249, 0.97));
  border-top: 1px solid rgba(15, 86, 100, 0.12);
  backdrop-filter: blur(10px);
}

.footer-grid {
  gap: 1rem 1.5rem;
  padding: 1.55rem 0 1.05rem;
}

.footer-links a,
.footer-social a {
  text-decoration: none;
  transition: color 180ms ease, transform 180ms ease;
}

.footer-links a:hover,
.footer-links a:focus-visible,
.footer-social a:hover,
.footer-social a:focus-visible {
  color: var(--teal);
  transform: translateX(1px);
}

@media (max-width: 900px) {
  .hero,
  .inner-hero {
    gap: 0.95rem;
  }

  .hero {
    padding-top: 3.45rem;
  }
}

@media (max-width: 760px) {
  .site-header {
    background: rgba(255, 252, 245, 0.92);
  }

  .hero {
    padding-top: 2.85rem;
  }

  .section {
    padding: 1.2rem 0;
  }

  .hero-copy,
  .hero-side,
  .hero-panel,
  .inner-copy,
  .current-card,
  .card,
  .coach-card,
  .program-card,
  .feature-card,
  .path-card,
  .contact-form,
  .register-strip,
  .logo-feature,
  .greatbase-callout {
    border-radius: 16px;
  }

  .contact-form {
    padding: 1rem;
  }

  .footer-grid {
    padding-top: 1.3rem;
  }
}

.page-leagues,
.page-leagues-standings,
.page-leagues-submit,
.page-leagues-admin,
.page-league-registration {
  --league-panel-border: rgba(var(--league-accent-rgb), 0.18);
  --league-panel-border-strong: rgba(var(--league-accent-rgb), 0.28);
  --league-panel-soft: rgba(var(--league-accent-soft-rgb), 0.92);
  --league-panel-shadow: 0 16px 34px rgba(9, 49, 59, 0.08);
}

.page-leagues .league-home-shell,
.page-leagues-standings .league-platform-shell,
.page-leagues-submit .league-submit-platform {
  display: grid;
  gap: 0.9rem;
}

.page-leagues .league-home-shell {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  align-items: start;
}

.league-season-bar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.9rem;
  margin-bottom: 0.7rem;
}

.league-season-bar h1,
.page-leagues-standings .league-platform-heading h1,
.page-leagues-submit .league-platform-heading h1,
.page-leagues-admin .league-admin-gate h1 {
  margin: 0.08rem 0 0;
  color: var(--league-accent-text);
  font-size: clamp(2rem, 4vw, 2.9rem);
  line-height: 1.06;
  letter-spacing: -0.04em;
}

.league-season-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: flex-end;
}

.league-season-pill {
  display: inline-flex;
  align-items: center;
  /* Explicit gap because flex layout strips whitespace between text and the
     <time> child element, which previously rendered as "PLAYOFFSAUG 21". */
  gap: 0.35em;
  min-height: 32px;
  padding: 0.42rem 0.72rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(var(--league-accent-rgb), 0.14);
  color: #29545f;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.league-season-pill.is-active {
  background: var(--brand-dark);
  border-color: var(--brand-dark);
  color: #fff;
}

.page-leagues .league-home-hero-card,
.page-leagues .league-home-panel,
.page-leagues .league-rules-compact-card,
.page-leagues-standings .league-platform-toolbar,
.page-leagues-submit .league-platform-toolbar,
.page-leagues-standings .leagues-standings-card-platform,
.page-leagues-standings .leagues-results-card-platform,
.page-leagues-submit .league-score-wizard {
  border-radius: 24px;
  border: 1px solid var(--league-panel-border);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(var(--league-accent-soft-rgb), 0.44));
  box-shadow: var(--league-panel-shadow);
}

.page-leagues .league-home-hero-card {
  position: relative;
  overflow: hidden;
  padding: 1.25rem;
}

.page-leagues .league-home-hero-card::after {
  content: "";
  position: absolute;
  right: -4rem;
  top: -4rem;
  width: 13rem;
  height: 13rem;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(var(--league-accent-rgb), 0.16), transparent 68%);
  pointer-events: none;
}

.page-leagues .league-home-hero-card h2,
.page-leagues .league-home-panel h2,
.page-leagues .league-rules-compact-card h2,
.page-leagues-standings .league-platform-heading h2,
.page-leagues-submit .league-platform-heading h2 {
  margin: 0;
  padding-left: 0;
  color: var(--league-accent-text);
  letter-spacing: -0.02em;
}

.page-leagues .league-home-section-head {
  display: grid;
  gap: 0.2rem;
  margin-top: 0.95rem;
}

.page-leagues .league-home-section-head h2 {
  font-size: clamp(1.42rem, 2vw, 1.72rem);
}

.league-season-progress-dashboard {
  margin-top: 0.9rem;
}

.page-leagues .league-home-hero-card h2::before,
.page-leagues .league-home-panel h2::before,
.page-leagues .league-rules-compact-card h2::before,
.page-leagues-standings .league-platform-heading h2::before,
.page-leagues-submit .league-platform-heading h2::before {
  display: none;
}

.page-leagues .league-home-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.52rem;
  margin: 0.95rem 0 0;
}

.page-leagues .league-home-meta-item {
  display: grid;
  gap: 0.18rem;
  padding: 0.72rem 0.8rem;
  border-radius: 18px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.14);
  background: rgba(255, 255, 255, 0.78);
}

.page-leagues .league-home-meta-item span {
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(16, 79, 92, 0.72);
}

.page-leagues .league-home-meta-item strong {
  font-size: 0.96rem;
  color: #114e5b;
  line-height: 1.3;
}

.page-leagues .league-home-actions {
  margin-top: 0.92rem;
}

.page-leagues .league-home-panel,
.page-leagues .league-rules-compact-card {
  padding: 1rem;
}

.page-leagues .league-home-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.8rem;
  margin-bottom: 0.78rem;
}

.page-leagues .league-inline-link {
  flex: 0 0 auto;
  color: var(--league-accent-text);
  font-weight: 700;
  text-decoration: none;
}

.page-leagues .league-inline-link:hover,
.page-leagues .league-inline-link:focus-visible {
  text-decoration: underline;
}

.page-leagues .league-home-tools-grid {
  display: grid;
  gap: 0.52rem;
  margin-top: 0.9rem;
}

.page-leagues .league-home-tool-card {
  display: grid;
  gap: 0.16rem;
  padding: 0.82rem 0.86rem;
  border-radius: 18px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.14);
  background: rgba(255, 255, 255, 0.82);
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.page-leagues .league-home-tool-card:hover,
.page-leagues .league-home-tool-card:focus-visible {
  transform: translateY(-1px);
  border-color: var(--league-panel-border-strong);
  box-shadow: 0 12px 22px rgba(var(--league-accent-rgb), 0.16);
}

.page-leagues .league-home-tool-card strong {
  color: #114e5b;
  font-size: 1.08rem;
}

.page-leagues .league-home-tool-card span:last-child {
  color: #2d5c67;
  line-height: 1.56;
  font-size: 0.97rem;
}

.page-leagues .league-home-tool-label {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--league-accent-text);
}

.page-leagues-standings .league-platform-toolbar,
.page-leagues-submit .league-platform-toolbar {
  padding: 1rem 1.02rem 0.92rem;
}

.league-manual-picker {
  margin-top: 0.8rem;
  border: 1px solid rgba(var(--league-accent-rgb), 0.12);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.74);
}

.league-manual-picker summary {
  cursor: pointer;
  list-style: none;
  padding: 0.78rem 0.92rem;
  color: #2b5a65;
  font-size: 0.88rem;
  font-weight: 700;
}

.league-manual-picker summary::-webkit-details-marker {
  display: none;
}

.league-manual-picker[open] summary {
  border-bottom: 1px solid rgba(var(--league-accent-rgb), 0.1);
}

.league-manual-picker .league-selector-grid {
  padding: 0.88rem;
}

.page-leagues-standings .league-platform-toolbar-head,
.page-leagues-submit .league-platform-toolbar-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.page-leagues-standings .league-platform-heading,
.page-leagues-submit .league-platform-heading {
  display: grid;
  gap: 0.26rem;
  max-width: 42rem;
}

.page-leagues-standings .league-platform-toolbar .league-selection-note,
.page-leagues-submit .league-platform-toolbar .league-selection-note {
  margin: 0;
  padding-top: 0;
  border-top: 0;
  font-size: 0.96rem;
  line-height: 1.55;
}

.page-leagues-standings .league-selector-grid-toolbar,
.page-leagues-submit .league-selector-grid-toolbar {
  grid-template-columns: minmax(0, 1.2fr) minmax(220px, 0.8fr);
  gap: 0.68rem;
}

.page-leagues-standings .league-quick-switch-toolbar,
.page-leagues-submit .league-quick-switch-toolbar {
  padding-top: 0.2rem;
}

.page-leagues-standings .league-platform-actions,
.page-leagues-submit .league-platform-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.48rem;
}

.page-leagues-standings .league-platform-actions .btn,
.page-leagues-submit .league-platform-actions .btn {
  min-width: 148px;
}

.page-leagues-standings .league-platform-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.52fr) minmax(300px, 0.9fr);
  gap: 0.9rem;
  align-items: start;
}

.page-leagues-standings .leagues-standings-card-platform,
.page-leagues-standings .leagues-results-card-platform {
  padding: 1rem;
}

.page-leagues-standings .league-results-panel {
  min-height: 100%;
  position: sticky;
  top: 6.6rem;
  border-color: var(--league-panel-border);
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.page-leagues-standings .league-results-panel.has-active-filter {
  border-color: var(--league-panel-border-strong);
  box-shadow: 0 18px 34px rgba(var(--league-accent-rgb), 0.12);
}

.page-leagues-standings .league-results-note {
  margin: 0 0 0.76rem;
  color: #2b5a65;
  font-size: 0.86rem;
  line-height: 1.48;
}

.page-leagues-standings .standings-team-wrap {
  display: flex;
  align-items: center;
  gap: 0.52rem;
  min-width: 0;
}

.page-leagues-standings .standings-team-badge,
.page-leagues-admin .standings-team-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.2rem 0.48rem;
  border-radius: 999px;
  background: rgba(var(--league-accent-rgb), 0.12);
  color: var(--league-accent-text);
  font-size: 0.66rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-leagues-standings .league-result-item,
.page-leagues-admin .league-result-item {
  position: relative;
  overflow: hidden;
  padding: 0.88rem 0.9rem 0.9rem 1rem;
  border-radius: 18px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.12);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(var(--league-accent-soft-rgb), 0.44));
  box-shadow: 0 10px 20px rgba(12, 68, 81, 0.06);
}

.page-leagues-standings .league-result-item::before,
.page-leagues-admin .league-result-item::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, rgba(var(--league-accent-rgb), 0.94), rgba(255, 134, 0, 0.82));
}

.page-leagues-standings .league-result-copy,
.page-leagues-admin .league-result-copy {
  display: grid;
  gap: 0.42rem;
}

.page-leagues-standings .league-result-topline,
.page-leagues-admin .league-result-topline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.52rem;
}

.page-leagues-standings .league-result-badge-rail,
.page-leagues-admin .league-result-badge-rail {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.32rem;
}

.page-leagues-standings .league-result-meta,
.page-leagues-admin .league-result-meta {
  display: inline-flex;
  align-items: center;
  min-height: 1.72rem;
  padding: 0.22rem 0.54rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(var(--league-accent-rgb), 0.12);
}

.page-leagues-standings .league-result-badge,
.page-leagues-admin .league-result-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.28rem 0.58rem;
  border-radius: 999px;
  background: rgba(var(--league-accent-rgb), 0.12);
  color: var(--league-accent-text);
  font-size: 0.74rem;
  font-weight: 800;
}

.page-leagues-standings .league-result-matchup,
.page-leagues-admin .league-result-matchup {
  margin: 0;
  color: #154d59;
  font-size: 0.97rem;
  font-weight: 750;
  line-height: 1.4;
}

.page-leagues-standings .league-result-sets,
.page-leagues-admin .league-result-sets {
  margin: 0;
  color: #0f5663;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.page-leagues-standings .league-result-winner,
.page-leagues-admin .league-result-winner {
  margin: 0.08rem 0 0;
  padding-top: 0.4rem;
  border-top: 1px solid rgba(var(--league-accent-rgb), 0.1);
  color: #2c5964;
  font-size: 0.82rem;
  line-height: 1.45;
}

.page-leagues-submit .league-submit-shell {
  grid-template-columns: minmax(0, 860px);
}

.page-leagues-submit .league-score-wizard {
  display: grid;
  gap: 1rem;
  padding: 1rem 1.02rem;
}

.page-leagues-submit .league-stepper {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.54rem;
}

.page-leagues-submit .league-stepper-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 54px;
  border-radius: 20px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.16);
  background: rgba(255, 255, 255, 0.86);
  color: #21525d;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease,
    box-shadow 180ms ease, transform 180ms ease;
}

.page-leagues-submit .league-stepper-item:hover,
.page-leagues-submit .league-stepper-item:focus-visible {
  outline: none;
  transform: translateY(-1px);
  border-color: var(--league-panel-border-strong);
}

.page-leagues-submit .league-stepper-item.is-active,
.page-leagues-submit .league-stepper-item.is-complete {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(var(--league-accent-soft-rgb), 0.72));
  border-color: var(--league-panel-border-strong);
  color: var(--league-accent-text);
  box-shadow: 0 10px 22px rgba(var(--league-accent-rgb), 0.1);
}

.page-leagues-submit .league-stepper-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.7rem;
  height: 1.7rem;
  border-radius: 999px;
  background: rgba(var(--league-accent-rgb), 0.12);
  color: var(--league-accent-text);
  font-size: 0.76rem;
  font-weight: 900;
}

.page-leagues-submit .league-stepper-item.is-active .league-stepper-count,
.page-leagues-submit .league-stepper-item.is-complete .league-stepper-count {
  background: linear-gradient(135deg, rgba(var(--league-accent-rgb), 0.92), rgba(var(--league-accent-rgb), 0.72));
  color: #ffffff;
}

.page-leagues-submit .league-score-step[hidden] {
  display: none !important;
}

.page-leagues-submit .league-entry-layout-single {
  grid-template-columns: 1fr;
}

.page-leagues-submit .league-score-step-confirm .league-entry-block {
  background: rgba(255, 255, 255, 0.74);
}

.page-leagues-submit .league-entry-block {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(var(--league-accent-soft-rgb), 0.3));
  box-shadow: 0 14px 28px rgba(12, 68, 81, 0.06);
}

.page-leagues-submit .league-score-step-confirm .league-entry-block {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(var(--league-accent-soft-rgb), 0.4));
}

.page-leagues-submit .league-matchup-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.6rem;
  align-items: stretch;
  margin: 0.72rem 0 0.86rem;
}

.page-leagues-submit .league-matchup-summary-card {
  display: grid;
  gap: 0.24rem;
  padding: 0.74rem 0.82rem;
  border-radius: 18px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.14);
  background: rgba(255, 255, 255, 0.86);
}

.page-leagues-submit .league-matchup-slot {
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(17, 78, 91, 0.72);
}

.page-leagues-submit .league-matchup-team {
  color: #104f5c;
  font-size: 0.98rem;
  line-height: 1.4;
  word-break: break-word;
}

.page-leagues-submit .league-matchup-summary-divider {
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.3rem;
  height: 2.3rem;
  border-radius: 999px;
  background: rgba(var(--league-accent-rgb), 0.1);
  color: var(--league-accent-text);
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.page-leagues-submit .league-score-review-card {
  padding: 0.92rem;
  border-radius: 20px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.14);
  background: rgba(255, 255, 255, 0.86);
}

.page-leagues-submit .league-review-grid {
  display: grid;
  gap: 0.58rem;
}

.page-leagues-submit .league-review-row {
  display: grid;
  grid-template-columns: minmax(112px, 140px) minmax(0, 1fr);
  gap: 0.8rem;
  align-items: start;
  padding-bottom: 0.48rem;
  border-bottom: 1px solid rgba(var(--league-accent-rgb), 0.1);
}

.page-leagues-submit .league-review-row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.page-leagues-submit .league-review-label {
  color: rgba(17, 78, 91, 0.72);
  font-size: 0.73rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-leagues-submit .league-review-value {
  color: #104f5c;
  line-height: 1.45;
}

.page-leagues-submit .league-review-note {
  margin: 0.8rem 0 0;
  padding-top: 0.74rem;
  border-top: 1px solid rgba(var(--league-accent-rgb), 0.1);
  color: #2b5964;
  font-size: 0.85rem;
  line-height: 1.52;
}

.page-leagues-submit .league-submit-actions-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.6rem;
}

.page-leagues-submit .league-submit-actions-stepper .btn {
  min-width: 172px;
}

.page-leagues-submit .league-submit-actions-stepper #league-step-next,
.page-leagues-submit .league-submit-actions-stepper #league-step-submit {
  margin-left: auto;
}

.page-leagues-submit .league-score-form .league-entry-title,
.page-leagues-submit .league-score-form h2 {
  color: var(--league-accent-text);
}

.page-leagues-submit .league-set-grid-submit-players {
  align-items: start;
}

.page-leagues-submit .league-set-grid-submit-players span {
  white-space: normal;
  line-height: 1.26;
  text-align: center;
}

.page-leagues-submit .league-score-form .league-entry-title {
  font-size: clamp(1.08rem, 1.45vw, 1.16rem);
}

.page-leagues-submit .league-score-footnote {
  max-width: 58ch;
}

.page-leagues .league-intro-note,
.page-leagues-standings .league-intro-note,
.page-leagues-submit .league-intro-note,
.page-league-registration .page-intro > p:last-child,
.page-league-registration .league-registration-note .key-list,
.page-leagues-submit .league-form-helper,
.page-leagues-standings .league-results-note {
  font-size: 1rem;
  line-height: 1.62;
}

.league-simple-note {
  margin: 0.85rem 0 0;
  color: #275965;
  font-size: 0.96rem;
  line-height: 1.58;
}

.league-simple-note a {
  color: var(--league-accent-text);
  font-weight: 700;
  text-decoration: none;
}

.league-simple-note a:hover,
.league-simple-note a:focus-visible {
  text-decoration: underline;
}

.page-leagues .league-home-hero-card .btn,
.page-leagues .league-home-tool-card,
.page-leagues-standings .league-platform-actions .btn,
.page-leagues-submit .league-platform-actions .btn,
.page-league-registration .league-registration-form-shell .btn,
.page-leagues-submit .league-submit-actions-stepper .btn {
  min-height: 50px;
}

.page-leagues .league-home-tool-card {
  padding: 0.98rem 1rem;
}

.page-leagues .league-home-tool-label,
.page-leagues-submit .league-form-kicker,
.page-leagues-standings .standings-kicker,
.page-league-registration .league-form-kicker {
  font-size: 0.76rem;
}

.page-league-registration .contact-form.form-wide label,
.page-leagues-submit .league-score-form label,
.page-leagues-standings .league-selector-grid label,
.page-leagues-submit .league-selector-grid label {
  font-size: 0.95rem;
  font-weight: 800;
  color: #114e5b;
}

.page-league-registration .contact-form.form-wide input,
.page-league-registration .contact-form.form-wide select,
.page-leagues-submit .league-score-form input,
.page-leagues-submit .league-score-form select,
.page-leagues-standings .league-selector-grid input,
.page-leagues-standings .league-selector-grid select,
.page-leagues-submit .league-selector-grid input,
.page-leagues-submit .league-selector-grid select {
  min-height: 52px;
  font-size: 1rem;
  padding-top: 0.82rem;
  padding-bottom: 0.82rem;
}

.page-leagues-standings .league-quick-picks .league-chip,
.page-leagues-submit .league-quick-picks .league-chip,
.page-league-registration .league-chip-list-registration .league-chip {
  min-height: 40px;
  font-size: 0.88rem;
  padding: 0.5rem 0.78rem;
}

.page-leagues-submit .league-stepper-item {
  min-height: 58px;
  font-size: 0.96rem;
}

.page-leagues-submit .league-winner-choice span {
  min-height: 56px;
  font-size: 0.97rem;
}

.page-leagues-submit .league-entry-block {
  padding: 1.1rem;
}

.page-leagues-submit .league-matchup-summary-card,
.page-leagues-submit .league-score-review-card {
  padding: 0.92rem 0.96rem;
}

.page-leagues-submit .league-set-label {
  font-size: 0.95rem;
  font-weight: 800;
}

.page-leagues-standings .standings-table th,
.page-leagues-standings .standings-table td {
  font-size: 0.95rem;
}

.page-leagues-standings .league-result-matchup,
.page-leagues-admin .league-result-matchup {
  font-size: 1rem;
}

.page-leagues-standings .league-result-sets,
.page-leagues-admin .league-result-sets {
  font-size: 0.98rem;
}

.page-leagues-standings .league-result-winner,
.page-leagues-admin .league-result-winner {
  font-size: 0.88rem;
}

@media (max-width: 1080px) {
  .page-leagues .league-home-shell,
  .page-leagues-standings .league-platform-grid {
    grid-template-columns: 1fr;
  }

  .page-leagues-standings .league-results-panel {
    position: static;
    top: auto;
  }

  .page-leagues .league-home-meta {
    grid-template-columns: 1fr;
  }

  .page-leagues-standings .league-platform-actions,
  .page-leagues-submit .league-platform-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 900px) {
  .page-leagues-standings .league-platform-toolbar,
  .page-leagues-submit .league-platform-toolbar {
    position: static;
    top: auto;
    z-index: auto;
    backdrop-filter: none;
  }

  .page-leagues-standings .league-platform-toolbar-head,
  .page-leagues-submit .league-platform-toolbar-head,
  .page-leagues .league-home-panel-head {
    flex-direction: column;
    align-items: stretch;
  }

  .page-leagues-standings .league-selector-grid-toolbar,
  .page-leagues-submit .league-selector-grid-toolbar {
    grid-template-columns: 1fr;
  }

  .page-leagues-standings .league-platform-actions .btn,
  .page-leagues-submit .league-platform-actions .btn {
    width: 100%;
  }

  .page-leagues-submit .league-submit-actions-stepper {
    display: grid;
    grid-template-columns: 1fr;
  }

  .page-leagues-submit .league-submit-actions-stepper #league-step-next,
  .page-leagues-submit .league-submit-actions-stepper #league-step-submit {
    margin-left: 0;
  }
}

@media (max-width: 760px) {
  .page-leagues .league-home-hero-card,
  .page-leagues .league-home-panel,
  .page-leagues .league-rules-compact-card,
  .page-leagues-standings .league-platform-toolbar,
  .page-leagues-standings .leagues-standings-card-platform,
  .page-leagues-standings .leagues-results-card-platform,
  .page-leagues-submit .league-platform-toolbar,
  .page-leagues-submit .league-score-wizard {
    border-radius: 20px;
    padding: 0.9rem;
  }

  .page-leagues .league-home-tools-grid,
  .page-leagues-submit .league-stepper {
    grid-template-columns: 1fr;
  }

  .page-leagues .league-home-actions {
    grid-template-columns: 1fr;
  }

  .page-leagues-submit .league-matchup-summary {
    grid-template-columns: 1fr;
  }

  .page-leagues-submit .league-matchup-summary-divider {
    justify-self: start;
  }

  .page-leagues-standings .league-quick-picks,
  .page-leagues-submit .league-quick-picks {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 0.1rem;
    scrollbar-width: none;
  }

  .page-leagues-standings .league-quick-picks::-webkit-scrollbar,
  .page-leagues-submit .league-quick-picks::-webkit-scrollbar {
    display: none;
  }

  .page-leagues-submit .league-review-row {
    grid-template-columns: 1fr;
    gap: 0.18rem;
  }

  .page-leagues-standings .league-result-topline,
  .page-leagues-admin .league-result-topline {
    align-items: flex-start;
    flex-direction: column;
  }
}

.page-coaches .coach-proof-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.82rem;
  margin-top: 0.95rem;
}

.page-coaches .coach-proof-card {
  display: grid;
  gap: 0.2rem;
  padding: 0.9rem 0.94rem;
  border-radius: 18px;
  border: 1px solid rgba(2, 117, 139, 0.18);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--shadow-soft);
}

.page-coaches .coach-proof-card strong {
  color: #0f5663;
  font-size: 0.93rem;
}

.page-coaches .coach-proof-card span {
  color: #2b5d68;
  font-size: 0.89rem;
  line-height: 1.44;
}

.coach-recognition-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.48rem;
  margin: 0.9rem 0 0.8rem;
}

.coach-recognition-pill {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.4rem 0.72rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 134, 0, 0.2);
  background: linear-gradient(135deg, rgba(255, 247, 234, 0.98), rgba(255, 255, 255, 0.96));
  color: #8a5212;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  line-height: 1.2;
}

.coach-photo-wrap-placeholder {
  background: linear-gradient(145deg, rgba(255, 251, 242, 0.98), rgba(237, 247, 243, 0.94));
  border: 1px solid rgba(2, 117, 139, 0.14);
}

.coach-photo-placeholder {
  object-fit: cover;
  background: linear-gradient(145deg, rgba(255, 251, 242, 0.98), rgba(237, 247, 243, 0.94));
}

.page-registration .registration-compare {
  position: relative;
  overflow: hidden;
  padding: clamp(1rem, 2.2vw, 1.35rem);
  border: 1px solid rgba(2, 117, 139, 0.14);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 10px 22px rgba(8, 52, 63, 0.06);
}

.page-registration .registration-compare::before {
  display: none;
}

.page-registration .registration-compare::after {
  display: none;
}

.page-registration .registration-compare > * {
  position: relative;
  z-index: 1;
}

.page-registration .registration-compare .section-heading p {
  max-width: 56ch;
}

.registration-compare-table {
  min-width: 980px;
}

.registration-compare-table thead th {
  white-space: nowrap;
}

.registration-compare-table tbody th {
  width: 16%;
}

.registration-compare-table tbody td:nth-child(2),
.registration-compare-table tbody td:nth-child(3),
.registration-compare-table tbody td:nth-child(4),
.registration-compare-table tbody td:nth-child(5),
.registration-compare-table tbody td:nth-child(6),
.registration-compare-table tbody td:nth-child(7) {
  width: auto;
}

.registration-compare-table tbody td:nth-child(4),
.registration-compare-table tbody td:nth-child(5),
.registration-compare-table tbody td:nth-child(6) {
  white-space: nowrap;
  font-weight: 700;
  color: #104f5c;
}

.registration-compare-table tbody td:last-child {
  min-width: 9.5rem;
  white-space: normal;
  color: #295965;
}

.page-contact .contact-intro .page-intro {
  max-width: 780px;
}

.contact-proof-strip,
.summer-proof-strip,
.winter-proof-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.72rem;
}

.contact-proof-pill,
.summer-proof-pill,
.winter-proof-pill {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0.52rem 0.76rem;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.9);
  color: #0f5663;
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.3;
  box-shadow: var(--shadow-soft);
}

.subpage-nav.subpage-nav-jump {
  width: fit-content;
  max-width: 100%;
  margin-top: -0.18rem;
}

@media (max-width: 760px) {
  body.has-mobile-cta {
    padding-bottom: calc(6.45rem + env(safe-area-inset-bottom));
  }

  .mobile-cta-bar {
    left: max(0.68rem, env(safe-area-inset-left));
    right: max(0.68rem, env(safe-area-inset-right));
    bottom: calc(0.68rem + env(safe-area-inset-bottom));
    padding: 0.58rem;
    gap: 0.46rem;
    border-radius: 20px;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
  }

  .mobile-cta-bar .btn {
    min-height: 44px;
    font-size: 0.89rem;
    border-radius: 14px;
  }

  .page-contact .contact-intro .page-intro,
  .page-coaches .coaches-intro .page-intro,
  .page-summer .inner-copy,
  .page-summer .hero-panel,
  .page-winter .inner-copy,
  .page-winter .hero-panel,
  .page-registration .registration-compare {
    padding: 1rem;
    border-radius: 22px;
  }

  .page-contact .contact-intro h1,
  .page-coaches .coaches-intro h1,
  .page-summer .inner-copy h1,
  .page-winter .inner-copy h1 {
    max-width: 12ch;
  }

  .page-contact .section-heading p,
  .page-coaches .section-heading p,
  .page-summer .section-heading p,
  .page-winter .section-heading p {
    max-width: 35ch;
  }

  .page-contact .contact-grid,
  .page-summer .inner-hero,
  .page-winter .inner-hero {
    gap: 0.8rem;
  }

  .page-contact .contact-next .program-grid.contact-next-grid,
  .page-coaches .coach-proof-strip {
    grid-template-columns: 1fr;
  }

  .contact-proof-strip,
  .summer-proof-strip,
  .winter-proof-strip {
    gap: 0.42rem;
    margin-top: 0.62rem;
  }

  .contact-proof-pill,
  .summer-proof-pill,
  .winter-proof-pill {
    min-height: 36px;
    padding: 0.46rem 0.68rem;
    font-size: 0.8rem;
  }

  .subpage-nav.subpage-nav-jump {
    margin-top: -0.24rem;
  }
}

@media (max-width: 480px) {
  .mobile-cta-bar {
    left: max(0.54rem, env(safe-area-inset-left));
    right: max(0.54rem, env(safe-area-inset-right));
    bottom: calc(0.54rem + env(safe-area-inset-bottom));
    padding: 0.5rem;
    gap: 0.4rem;
  }

  .page-summer .hero-actions,
  .page-winter .hero-actions,
  .page-contact .hero-actions,
  .page-coaches .hero-actions {
    display: grid;
    gap: 0.48rem;
  }

  .page-summer .hero-actions .btn,
  .page-winter .hero-actions .btn,
  .page-contact .hero-actions .btn,
  .page-coaches .hero-actions .btn {
    width: 100%;
  }
}

.simple-shell {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: clamp(1.1rem, 2.5vw, 1.45rem);
  border: 1px solid rgba(222, 194, 143, 0.3);
  border-radius: 26px;
  background: linear-gradient(160deg, rgba(255, 253, 249, 0.98), rgba(255, 246, 234, 0.93));
  box-shadow: 0 18px 36px rgba(8, 52, 63, 0.055);
}

.simple-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 100% 0%, rgba(242, 180, 5, 0.12), transparent 34%);
  pointer-events: none;
}

.simple-shell > div > *:last-child {
  margin-bottom: 0;
}

.simple-shell > * {
  position: relative;
  z-index: 1;
}

.simple-shell .hero-actions {
  margin-top: 0;
}

.page-home .hero-copy,
.page-registration .registration-intro .page-intro,
.page-summer .inner-copy,
.page-calendar .inner-copy {
  border: 1px solid rgba(214, 190, 145, 0.32);
  background: linear-gradient(160deg, rgba(255, 253, 249, 0.985), rgba(255, 247, 236, 0.95));
  box-shadow: 0 18px 38px rgba(8, 52, 63, 0.052);
}

.page-home .home-hero,
.page-summer .inner-hero,
.page-calendar .inner-hero {
  grid-template-columns: minmax(0, 1fr);
}

.page-home .home-overview,
.page-registration .registration-guide,
.page-registration .registration-compare,
.page-registration .registration-booking,
.page-registration .registration-faq,
.page-summer .section.container:not(.inner-hero),
.page-calendar .section.container:not(.inner-hero) {
  padding: clamp(1.1rem, 2.5vw, 1.5rem);
  border: 1px solid rgba(214, 190, 145, 0.28);
  border-radius: 28px;
  background: linear-gradient(160deg, rgba(255, 252, 247, 0.97), rgba(255, 247, 237, 0.93));
  box-shadow: 0 16px 34px rgba(8, 52, 63, 0.052);
}

.page-registration .registration-guide::before,
.page-registration .registration-guide::after,
.page-registration .registration-booking::before,
.page-registration .registration-booking::after,
.page-registration .registration-faq::before,
.page-registration .registration-faq::after {
  display: none;
}

.program-card,
.hero-panel,
.card,
.contact-form {
  box-shadow: 0 12px 26px rgba(8, 52, 63, 0.05);
  border-color: rgba(15, 56, 68, 0.12);
}

.program-card:hover,
.program-card:focus-within {
  box-shadow: 0 15px 28px rgba(8, 52, 63, 0.07);
}

.section-heading p,
.page-home .hero-copy > p:not(.eyebrow):not(.hero-note),
.page-registration .page-intro > p:not(.kicker):not(.orange-highlight),
.page-summer .inner-copy > p:not(.eyebrow):not(.orange-highlight),
.page-calendar .inner-copy > p:not(.eyebrow):not(.orange-highlight) {
  max-width: 56ch;
}

.page-home .home-proof-bar {
  margin-top: 1.08rem;
}

.page-home .home-proof-pill,
.page-registration .registration-proof-pill,
.contact-proof-pill,
.summer-proof-pill,
.winter-proof-pill {
  box-shadow: none;
  background: rgba(255, 251, 246, 0.88);
  border-color: rgba(236, 188, 98, 0.24);
}

.page-home .home-proof-pill {
  font-size: 0.83rem;
}

.page-registration .registration-intro .page-intro h1 {
  max-width: 15ch;
}

.page-summer .inner-copy h1,
.page-calendar .inner-copy h1 {
  max-width: 15ch;
}

.page-home .home-overview .hero-actions,
.page-registration .registration-intro .hero-actions,
.page-summer .inner-copy .hero-actions,
.page-calendar .inner-copy .hero-actions {
  margin-top: 0.9rem;
}

.page-home .home-overview .section-heading,
.page-registration .registration-guide .section-heading,
.page-registration .registration-compare .section-heading,
.page-registration .registration-booking .section-heading,
.page-registration .registration-faq .section-heading,
.page-summer .section-heading,
.page-calendar .section-heading {
  margin-bottom: 0.95rem;
}

@media (max-width: 860px) {
  .simple-shell {
    grid-template-columns: 1fr;
  }

  .simple-shell .hero-actions {
    width: 100%;
  }

  .page-home .home-hero-layout {
    grid-template-columns: 1fr;
  }

  .page-home .home-hero-side {
    padding-top: 0;
  }

  .page-home .home-family-note h2 {
    max-width: 100%;
  }
}

/* Final desktop/mobile balance pass */
.hero {
  gap: 1.32rem;
  padding: 3.95rem 0 2.05rem;
}

.inner-hero {
  gap: 1.18rem;
  padding: 2.95rem 0 1.32rem;
}

.section {
  padding: clamp(1.55rem, 3vw, 2.35rem) 0;
}

.page-intro {
  gap: 0.72rem;
}

.section-heading {
  margin-bottom: 1.04rem;
  gap: 0.38rem;
}

.table-scroll {
  margin-top: 0.16rem;
}

.page-home .hero-copy,
.page-registration .registration-intro .page-intro,
.page-summer .inner-copy,
.page-calendar .inner-copy,
.page-contact .contact-intro .page-intro,
.page-coaches .coaches-intro .page-intro {
  padding: clamp(1.32rem, 3vw, 2.18rem);
}

.page-home .home-overview,
.page-registration .registration-guide,
.page-registration .registration-compare,
.page-registration .registration-booking,
.page-registration .registration-faq,
.page-summer .section.container:not(.inner-hero),
.page-calendar .section.container:not(.inner-hero) {
  padding: clamp(1.22rem, 2.6vw, 1.68rem);
}

.page-home .home-proof-bar,
.page-registration .registration-proof-strip,
.contact-proof-strip,
.summer-proof-strip,
.winter-proof-strip,
.page-coaches .coach-proof-strip {
  gap: 0.58rem;
  margin-top: 0.82rem;
}

.page-home .home-proof-bar {
  margin-top: 1.16rem;
}

.page-home .home-hero-side {
  gap: 0.96rem;
}

.page-contact .contact-connect .contact-grid {
  gap: 1.42rem;
}

.page-contact .contact-next .program-grid.contact-next-grid {
  gap: 1.16rem;
}

.page-coaches .coaches-team .coach-grid-flow {
  gap: 1rem;
}

.page-coaches .coach-proof-strip {
  margin-top: 0.9rem;
}

.site-footer {
  margin-top: 1rem;
}

.footer-grid {
  gap: 1.05rem 1.4rem;
  padding: 1.58rem 0 1.06rem;
}

@media (max-width: 980px) {
  .hero {
    padding: 3.35rem 0 1.82rem;
  }

  .inner-hero {
    padding: 2.55rem 0 1.16rem;
  }

  .page-home .home-hero-layout {
    gap: 1.02rem;
  }

  .page-contact .contact-connect .contact-grid,
  .page-contact .contact-next .program-grid.contact-next-grid {
    gap: 0.96rem;
  }
}

@media (max-width: 760px) {
  .section {
    padding: 1.16rem 0;
  }

  .hero {
    gap: 0.82rem;
    padding: 2.82rem 0 1.52rem;
  }

  .inner-hero {
    gap: 0.82rem;
    padding: 2.16rem 0 1.02rem;
  }

  .page-intro {
    gap: 0.56rem;
  }

  .section-heading {
    margin-bottom: 0.78rem;
    gap: 0.28rem;
  }

  main .page-intro p,
  main .hero-copy p,
  main .inner-copy p,
  main .current-card p,
  main .program-card p,
  main .feature-card p,
  main .card p {
    max-width: 100%;
  }

  .page-home .hero-copy,
  .page-registration .registration-intro .page-intro,
  .page-summer .inner-copy,
  .page-calendar .inner-copy,
  .page-contact .contact-intro .page-intro,
  .page-coaches .coaches-intro .page-intro,
  .page-home .home-overview,
  .page-registration .registration-guide,
  .page-registration .registration-compare,
  .page-registration .registration-booking,
  .page-registration .registration-faq,
  .page-summer .section.container:not(.inner-hero),
  .page-calendar .section.container:not(.inner-hero) {
    padding: 1rem;
    border-radius: 22px;
  }

  .page-home .home-family-note,
  .page-home .home-season-note {
    padding: 0.92rem 0.94rem 0.96rem;
    border-radius: 18px;
  }

  .page-home .home-hero-side {
    gap: 0.72rem;
  }

  .page-home .home-proof-bar,
  .page-registration .registration-proof-strip,
  .contact-proof-strip,
  .summer-proof-strip,
  .winter-proof-strip,
  .page-coaches .coach-proof-strip {
    gap: 0.42rem;
    margin-top: 0.64rem;
  }

  .page-contact .contact-grid,
  .page-contact .contact-connect .contact-grid {
    gap: 0.82rem;
  }

  .page-contact .contact-next .program-grid.contact-next-grid,
  .page-coaches .coach-proof-strip,
  .page-coaches .coaches-team .coach-grid-flow,
  .page-registration .registration-faq .faq-grid {
    gap: 0.68rem;
  }

  .footer-grid {
    gap: 0.94rem 1rem;
    padding: 1.12rem 0 0.96rem;
  }
}

@media (max-width: 480px) {
  .section {
    padding: 1rem 0;
  }

  .hero {
    padding: 2.46rem 0 1.28rem;
    gap: 0.72rem;
  }

  .inner-hero {
    padding: 1.94rem 0 0.94rem;
    gap: 0.72rem;
  }

  .page-home .hero-copy h1 {
    max-width: 100%;
    font-size: clamp(2.02rem, 10.4vw, 2.56rem);
    line-height: 0.98;
  }

  .page-home .home-family-note h2 {
    font-size: 1.22rem;
  }

  .page-home .home-season-list {
    gap: 0.56rem;
  }

  .page-home .home-proof-bar {
    margin-top: 0.72rem;
  }

  .page-home .home-proof-pill,
  .page-registration .registration-proof-pill,
  .contact-proof-pill,
  .summer-proof-pill,
  .winter-proof-pill {
    min-height: 34px;
    padding: 0.44rem 0.64rem;
    font-size: 0.78rem;
  }
}

/* Registration focus + unified polish */
.page-home .simple-shell .hero-actions {
  margin-top: 0.82rem;
}

.home-secondary-note {
  margin: 0.82rem 0 0;
  color: #2f5c67;
  font-size: 0.95rem;
  line-height: 1.56;
}

.home-secondary-note a {
  color: #0f5663;
  font-weight: 700;
  text-decoration: none;
}

.home-secondary-note a:hover,
.home-secondary-note a:focus-visible {
  text-decoration: underline;
}

.page-registration .registration-main-shell {
  display: block;
}

.page-registration .registration-main-column {
  min-width: 0;
  display: grid;
  gap: 1rem;
}

.page-registration .registration-sticky-helper {
  position: sticky;
  top: calc(92px + 1rem);
  align-self: start;
  gap: 0.78rem;
}

.page-registration .registration-hero-grid {
  align-items: start;
}

@media (min-width: 1100px) {
  .page-registration .container {
    width: min(1380px, 96vw);
  }

  .page-registration .registration-hero-grid {
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
    gap: 1.25rem;
  }

  .page-registration .registration-intro .page-intro h1 {
    max-width: 12.5ch;
  }

  .page-registration .registration-booking .registration-course-grid {
    gap: 1rem;
  }
}

.page-home .home-hero-main {
  max-width: 40rem;
}

.page-home .home-hero-main h1 {
  max-width: 8.8ch;
}

.page-home .home-hero-side {
  max-width: 24rem;
  justify-self: end;
}

.page-home .home-overview {
  margin-top: -0.2rem;
}

.page-home .home-entry-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.page-home .home-entry-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.72rem;
  padding: 1.2rem 1.24rem 1.24rem;
  border: 1px solid rgba(214, 190, 145, 0.28);
  border-radius: 26px;
  background: linear-gradient(160deg, rgba(255, 252, 247, 0.98), rgba(255, 247, 237, 0.94));
  box-shadow:
    inset 0 2px 0 rgba(255, 134, 0, 0.12),
    0 16px 30px rgba(8, 52, 63, 0.055);
}

.page-home .home-entry-card::before {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  right: -110px;
  top: -130px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 134, 0, 0.12), rgba(2, 117, 139, 0.04) 44%, transparent 72%);
  pointer-events: none;
}

.page-home .home-entry-card > * {
  position: relative;
  z-index: 1;
}

.page-home .home-entry-card h2 {
  margin: 0;
  max-width: 14ch;
}

.page-home .home-entry-card p:not(.eyebrow) {
  margin: 0;
  max-width: 44ch;
}

.page-home .home-entry-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.46rem;
}

.page-home .home-entry-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.42rem 0.68rem;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  background: rgba(255, 255, 255, 0.88);
  color: #14515d;
  font-size: 0.79rem;
  font-weight: 700;
}

.page-home .home-entry-card-leagues {
  background: linear-gradient(160deg, rgba(254, 252, 247, 0.98), rgba(244, 249, 247, 0.95));
}

.page-registration .registration-sticky-helper .hero-actions {
  display: grid;
  gap: 0.48rem;
}

.page-registration .registration-sticky-helper .btn {
  width: 100%;
}

.page-registration .registration-sticky-helper .registration-fit-list {
  gap: 0.46rem;
}

.page-registration .registration-sticky-helper .registration-fit-list li {
  padding: 0.58rem 0.66rem;
}

.page-registration .registration-pathways {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.98rem;
  margin: 0;
  padding: 1.32rem 1.38rem 1.42rem;
  border: 1px solid rgba(214, 190, 145, 0.28);
  border-radius: 26px;
  background: linear-gradient(160deg, rgba(255, 252, 247, 0.98), rgba(252, 247, 239, 0.94));
  box-shadow:
    inset 0 2px 0 rgba(255, 134, 0, 0.14),
    0 16px 30px rgba(8, 52, 63, 0.055);
}

.page-registration .registration-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.9rem;
}

.registration-path-card {
  display: grid;
  align-content: start;
  gap: 0.72rem;
  padding: 1.16rem 1.12rem 1.14rem;
  border-radius: 24px;
  border: 1px solid rgba(15, 56, 68, 0.14);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.99), rgba(247, 251, 249, 0.95));
  box-shadow: var(--shadow-soft);
}

.registration-path-card .stage {
  align-self: flex-start;
}

.registration-path-card h3,
.registration-cluster-heading h3 {
  margin: 0;
}

.registration-path-card p,
.registration-cluster-heading p:last-child {
  margin: 0;
  color: #275965;
  line-height: 1.56;
}

.registration-path-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.52rem;
}

.registration-path-list li {
  display: grid;
  gap: 0.1rem;
  padding: 0.72rem 0.78rem;
  border-radius: 16px;
  border: 1px solid rgba(2, 117, 139, 0.12);
  background: rgba(255, 255, 255, 0.84);
}

.registration-path-list strong {
  color: #0f5663;
  font-size: 0.95rem;
}

.registration-path-list span {
  color: #2f5e69;
  font-size: 0.87rem;
  line-height: 1.4;
}

.registration-cluster {
  display: grid;
  gap: 0.92rem;
}

.registration-cluster + .registration-cluster {
  margin-top: 1.08rem;
  padding-top: 1.08rem;
  border-top: 1px solid rgba(15, 56, 68, 0.1);
}

.registration-cluster-heading {
  display: grid;
  gap: 0.28rem;
  max-width: 48rem;
}

.registration-course-grid-single {
  grid-template-columns: minmax(0, 1fr);
  max-width: 520px;
}

.registration-course-grid-stacked {
  grid-template-columns: minmax(0, 1fr);
}

.page-registration .registration-guide,
.page-registration .registration-compare,
.page-registration .registration-booking,
.page-registration .registration-faq {
  margin: 0;
}

.hero-copy,
.simple-shell,
.page-registration .registration-intro .page-intro,
.page-registration .registration-start-card,
.page-registration .registration-guide,
.page-registration .registration-compare,
.page-registration .registration-booking,
.page-registration .registration-faq,
.page-leagues-standings .league-platform-toolbar,
.page-leagues-standings .leagues-standings-card-platform,
.page-leagues-standings .leagues-results-card-platform,
.page-leagues-submit .league-platform-toolbar,
.page-leagues-submit .league-score-wizard {
  box-shadow:
    inset 0 2px 0 rgba(255, 134, 0, 0.14),
    0 16px 30px rgba(8, 52, 63, 0.055);
}

.page-registration .registration-guide,
.page-registration .registration-compare,
.page-registration .registration-booking,
.page-registration .registration-faq,
.page-leagues-standings .league-platform-toolbar,
.page-leagues-standings .leagues-standings-card-platform,
.page-leagues-standings .leagues-results-card-platform,
.page-leagues-submit .league-platform-toolbar,
.page-leagues-submit .league-score-wizard {
  border-radius: 26px;
}

.page-leagues-standings .league-platform-toolbar,
.page-leagues-submit .league-platform-toolbar,
.page-leagues-standings .leagues-standings-card-platform,
.page-leagues-standings .leagues-results-card-platform,
.page-leagues-submit .league-score-wizard {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.985), rgba(var(--league-accent-soft-rgb), 0.34));
}

.league-status-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.56rem;
  margin-top: 0.72rem;
}

.league-status-item {
  display: grid;
  gap: 0.16rem;
  padding: 0.72rem 0.78rem;
  border-radius: 16px;
  border: 1px solid rgba(var(--league-accent-rgb), 0.14);
  background: rgba(255, 255, 255, 0.84);
}

.league-status-item-accent {
  background: linear-gradient(160deg, rgba(255, 249, 240, 0.96), rgba(var(--league-accent-soft-rgb), 0.5));
  border-color: rgba(255, 134, 0, 0.22);
}

.league-status-label {
  color: rgba(17, 78, 91, 0.72);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.15;
}

.league-status-item strong {
  color: #114e5b;
  font-size: 0.98rem;
  line-height: 1.25;
}

.page-leagues-standings .league-results-list,
.page-leagues-admin .league-results-list {
  gap: 0.66rem;
}

.page-leagues-standings .league-results-note {
  max-width: 38ch;
}

.page-leagues-standings .standings-meta {
  max-width: 36ch;
  text-align: right;
}

.page-leagues-standings .league-result-item,
.page-leagues-admin .league-result-item {
  padding: 0.72rem 0.82rem;
  border-radius: 16px;
}

.page-leagues-submit .league-score-wizard {
  gap: 1.04rem;
}

.page-leagues-submit .league-score-step .league-entry-block {
  border-radius: 20px;
}

.page-leagues-submit .league-matchup-summary {
  margin: 0.8rem 0 0.92rem;
}

.page-leagues-submit .league-form-helper {
  max-width: 40ch;
}

.page-leagues-submit .league-score-footnote {
  max-width: 44ch;
}

.page-leagues-submit .league-submit-actions-stepper {
  margin-top: 0.18rem;
}

@media (max-width: 980px) {
  .page-registration .registration-sticky-helper {
    position: static;
  }

  .page-registration .registration-path-grid {
    grid-template-columns: 1fr;
  }

  .registration-course-grid-teen {
    grid-template-columns: 1fr;
  }

  .registration-course-grid-single {
    max-width: none;
  }

  .league-status-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-home .home-hero-side {
    max-width: none;
    justify-self: stretch;
  }
}

@media (max-width: 760px) {
  .home-secondary-note {
    margin-top: 0.68rem;
    font-size: 0.92rem;
  }

  .page-registration .registration-main-shell {
    gap: 0.82rem;
  }

  .page-registration .registration-main-column {
    gap: 0.82rem;
  }

  .page-registration .registration-sticky-helper {
    gap: 0.68rem;
  }

  .page-registration .registration-pathways {
    padding: 1.08rem;
  }

  .registration-cluster + .registration-cluster {
    margin-top: 0.92rem;
    padding-top: 0.92rem;
  }

  .league-status-strip {
    gap: 0.42rem;
    margin-top: 0.58rem;
  }

  .league-status-item {
    padding: 0.62rem 0.66rem;
    border-radius: 14px;
  }

  .league-status-item strong {
    font-size: 0.92rem;
  }

  .page-leagues .league-home-tool-card span:last-child,
  .page-leagues .league-intro-note,
  .page-leagues-standings .league-intro-note,
  .page-leagues-submit .league-intro-note,
  .page-league-registration .page-intro > p:last-child,
  .page-leagues-submit .league-form-helper,
  .page-leagues-standings .league-results-note,
  .league-simple-note {
    font-size: 0.93rem;
  }
}

@media (max-width: 480px) {
  .league-status-strip {
    grid-template-columns: 1fr 1fr;
  }

  .page-registration .registration-sticky-helper .btn {
    min-height: 44px;
  }
}

/* 2026-04 homepage + registration restructure */
.headline-accent-green {
  color: var(--green);
}

.main-nav .nav-register {
  padding: 0.7rem 1.18rem;
  border: 1px solid rgba(2, 117, 139, 0.14);
  background: linear-gradient(135deg, rgba(10, 145, 164, 0.98), rgba(8, 117, 139, 0.98));
  color: #ffffff;
  font-weight: 800;
  box-shadow: 0 16px 28px rgba(8, 52, 63, 0.14);
}

.main-nav .nav-register:visited,
.main-nav .nav-register:hover,
.main-nav .nav-register:focus-visible,
.main-nav .nav-register:active {
  color: #ffffff;
}

.page-home .home-hero.home-hero-destination {
  padding-top: 3.5rem;
}

.page-home .home-destination-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.98fr) minmax(360px, 0.92fr);
  gap: 1.1rem;
  align-items: stretch;
}

.page-home .home-destination-copy {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 0.95rem;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border: 1px solid rgba(214, 190, 145, 0.34);
  border-radius: 32px;
  background: linear-gradient(155deg, rgba(255, 253, 248, 0.98), rgba(251, 246, 237, 0.95));
  box-shadow:
    inset 0 2px 0 rgba(255, 134, 0, 0.16),
    0 20px 40px rgba(8, 52, 63, 0.07);
}

.page-home .home-destination-copy::before {
  content: "";
  position: absolute;
  width: 340px;
  height: 340px;
  right: -120px;
  top: -140px;
  background: radial-gradient(circle, rgba(255, 134, 0, 0.14), rgba(94, 168, 76, 0.06) 48%, transparent 72%);
  pointer-events: none;
}

.page-home .home-destination-copy > * {
  position: relative;
  z-index: 1;
}

.page-home .home-destination-copy h1 {
  margin: 0;
  max-width: 7.9ch;
  font-size: clamp(3.1rem, 6vw, 5.4rem);
  line-height: 0.92;
  letter-spacing: -0.055em;
}

.page-home .home-destination-lead {
  margin: 0;
  max-width: 25ch;
  color: #173f49;
  font-size: clamp(1.06rem, 1.6vw, 1.26rem);
  line-height: 1.58;
}

.page-home .home-destination-copy .hero-actions {
  margin-top: 0.12rem;
}

.page-home .home-hero-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.15rem;
}

.page-home .home-hero-proof span {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0.48rem 0.82rem;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  background: rgba(255, 255, 255, 0.8);
  color: #0f5663;
  font-size: 0.84rem;
  font-weight: 700;
  box-shadow: var(--shadow-soft);
}

.page-home .home-destination-visual {
  display: grid;
}

.page-home .home-photo-panel {
  display: grid;
  gap: 0.9rem;
}

.page-home .home-photo-card {
  position: relative;
  min-height: 460px;
  overflow: hidden;
  border-radius: 32px;
  border: 1px solid rgba(214, 190, 145, 0.34);
  background-image:
    linear-gradient(180deg, rgba(12, 38, 43, 0.14), rgba(12, 38, 43, 0.28)),
    url("https://oakmonttennis.com/wp-content/uploads/2024/04/Oakmont-4.17.2024-scaled.jpeg");
  background-size: cover;
  background-position: center;
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, 0.18),
    0 22px 42px rgba(8, 52, 63, 0.1);
}

.page-home .home-photo-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 52%;
  background: linear-gradient(180deg, rgba(12, 38, 43, 0), rgba(12, 38, 43, 0.58));
}

.page-home .home-photo-overlay {
  position: absolute;
  left: 1.1rem;
  right: 1.1rem;
  bottom: 1.1rem;
  z-index: 1;
  display: grid;
  gap: 0.35rem;
  padding: 1rem 1.05rem;
  border-radius: 24px;
  background: rgba(255, 250, 244, 0.9);
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 18px 26px rgba(8, 52, 63, 0.14);
}

.page-home .home-photo-overlay h2,
.page-home .home-photo-overlay p {
  margin: 0;
}

.page-home .home-photo-overlay p:last-child {
  color: #2d5b66;
  line-height: 1.5;
}

.page-home .home-hero-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.page-home .home-hero-metric-card,
.page-home .home-site-card {
  border: 1px solid rgba(214, 190, 145, 0.3);
  border-radius: 26px;
  background: linear-gradient(155deg, rgba(255, 253, 248, 0.98), rgba(248, 250, 246, 0.95));
  box-shadow: 0 16px 26px rgba(8, 52, 63, 0.06);
}

.page-home .home-hero-metric-card {
  display: grid;
  gap: 0.18rem;
  padding: 1.05rem 1.1rem;
}

.page-home .home-hero-metric-card strong {
  color: var(--green);
  font-family: var(--font-display);
  font-size: clamp(2rem, 3vw, 2.7rem);
  line-height: 0.95;
  letter-spacing: -0.04em;
}

.page-home .home-hero-metric-card span {
  color: #315864;
  font-size: 0.98rem;
  line-height: 1.35;
}

.page-home .home-hero-site-list {
  display: grid;
  gap: 0.82rem;
}

.page-home .home-site-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.78rem;
  align-items: start;
  padding: 0.95rem 1rem;
}

.page-home .home-site-dot {
  width: 15px;
  height: 15px;
  margin-top: 0.2rem;
  border-radius: 999px;
  background: var(--green);
  box-shadow: 0 0 0 6px rgba(94, 168, 76, 0.14);
}

.page-home .home-site-card strong,
.page-home .home-site-card span {
  display: block;
}

.page-home .home-site-card strong {
  color: #113f4b;
  font-size: 1rem;
}

.page-home .home-site-card span {
  color: #3a616b;
  line-height: 1.45;
}

.page-home .home-track {
  padding-top: 0.6rem;
}

.page-home .home-track-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: end;
}

.section-link-inline {
  align-self: start;
  color: #b76217;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}

.section-link-inline:hover,
.section-link-inline:focus-visible {
  text-decoration: underline;
}

.section-link-stack {
  display: grid;
  gap: 0.28rem;
  justify-items: end;
}

.page-home .home-track-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.page-home .home-track-card {
  display: grid;
  grid-template-rows: auto auto auto;
  overflow: hidden;
  border: 1px solid rgba(214, 190, 145, 0.34);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 18px 32px rgba(8, 52, 63, 0.07);
}

.page-home .home-track-card-top {
  display: grid;
  gap: 0.55rem;
  padding: 1.2rem 1.2rem 1.12rem;
  color: #ffffff;
}

.page-home .home-track-card-top h3,
.page-home .home-track-card-top p {
  margin: 0;
  color: inherit;
}

.page-home .home-track-card-top p {
  color: rgba(255, 255, 255, 0.88);
  line-height: 1.56;
}

.page-home .home-track-card-top .stage {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.16);
}

.page-home .home-track-card-foundations .home-track-card-top {
  background: linear-gradient(160deg, #2f7b3a, #2b6d34);
}

.page-home .home-track-card-teen .home-track-card-top {
  background: linear-gradient(160deg, #e97f29, #d8721f);
}

.page-home .home-track-card-advanced .home-track-card-top {
  background: linear-gradient(160deg, #183f48, #123640);
}

.page-home .home-track-points {
  list-style: none;
  margin: 0;
  padding: 1rem 1.2rem;
  display: grid;
  gap: 0.78rem;
  color: #3b2f28;
}

.page-home .home-track-points li {
  position: relative;
  padding-left: 1rem;
  line-height: 1.45;
  color: #3e3129;
}

.page-home .home-track-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.52rem;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #d36d23;
}

.page-home .home-track-card-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 1rem 1.2rem 1.1rem;
  border-top: 1px solid rgba(214, 190, 145, 0.26);
  background: linear-gradient(180deg, rgba(255, 251, 245, 0.94), rgba(255, 248, 239, 0.9));
}

.page-home .home-track-price {
  display: grid;
  gap: 0.1rem;
  color: #5c3115;
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2vw, 1.65rem);
  font-weight: 900;
  line-height: 1;
}

.page-home .home-track-price::before {
  content: "From";
  display: block;
  color: #ad6423;
  font-family: var(--font-body);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-home .home-track-card-bottom .btn {
  min-width: 180px;
}

.page-home .home-process {
  padding-top: 0.4rem;
}

.page-home .home-process-shell {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 1rem;
  padding: clamp(1.3rem, 3vw, 2rem);
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-radius: 32px;
  background: linear-gradient(160deg, rgba(244, 249, 247, 0.97), rgba(255, 249, 241, 0.96));
  box-shadow: 0 18px 34px rgba(8, 52, 63, 0.07);
}

.page-home .home-process-shell::before {
  content: "";
  position: absolute;
  inset: auto -60px -180px auto;
  width: 320px;
  height: 320px;
  border-radius: 50%;
  border: 2px solid rgba(2, 117, 139, 0.12);
  border-right-color: transparent;
  border-bottom-color: transparent;
  transform: rotate(18deg);
  pointer-events: none;
}

.page-home .home-process-shell > * {
  position: relative;
  z-index: 1;
}

.page-home .home-process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.95rem;
}

.page-home .home-process-card {
  display: grid;
  gap: 0.5rem;
  padding: 1rem 1.05rem;
  border-radius: 24px;
  border: 1px solid rgba(2, 117, 139, 0.14);
  background: rgba(255, 255, 255, 0.8);
  box-shadow: var(--shadow-soft);
}

.page-home .home-process-card h3,
.page-home .home-process-card p {
  margin: 0;
}

.page-home .home-process-card p {
  color: #2f5d68;
}

.page-home .home-process-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: rgba(94, 168, 76, 0.16);
  color: #2f7b3a;
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 900;
}

.page-home .home-process-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
}

.page-registration .registration-intro {
  padding-top: 1rem;
}

.page-registration .registration-landing-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(320px, 0.88fr);
  gap: 1rem;
  align-items: stretch;
}

.page-registration .registration-landing-copy,
.page-registration .registration-session-panel,
.page-registration .registration-selector,
.page-registration .registration-booking,
.page-registration .registration-compare,
.page-registration .registration-faq {
  position: relative;
  overflow: hidden;
  padding: clamp(1.25rem, 2.8vw, 1.9rem);
  border: 1px solid rgba(214, 190, 145, 0.3);
  border-radius: 30px;
  background: linear-gradient(155deg, rgba(255, 253, 248, 0.985), rgba(247, 250, 247, 0.95));
  box-shadow:
    inset 0 2px 0 rgba(255, 134, 0, 0.12),
    0 20px 36px rgba(8, 52, 63, 0.07);
}

.page-registration .registration-landing-copy::before,
.page-registration .registration-session-panel::before,
.page-registration .registration-selector::before,
.page-registration .registration-booking::before,
.page-registration .registration-compare::before,
.page-registration .registration-faq::before {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  right: -110px;
  top: -140px;
  background: radial-gradient(circle, rgba(255, 134, 0, 0.12), rgba(2, 117, 139, 0.06) 45%, transparent 72%);
  pointer-events: none;
}

.page-registration .registration-landing-copy > *,
.page-registration .registration-session-panel > *,
.page-registration .registration-selector > *,
.page-registration .registration-booking > *,
.page-registration .registration-compare > *,
.page-registration .registration-faq > * {
  position: relative;
  z-index: 1;
}

.page-registration .registration-landing-copy h1 {
  max-width: 11ch;
}

.page-registration .registration-session-panel {
  display: grid;
  gap: 0.9rem;
  align-content: start;
}

.page-registration .registration-session-strip {
  display: grid;
  gap: 0.7rem;
}

.page-registration .registration-session-chip {
  display: grid;
  gap: 0.12rem;
  padding: 0.95rem 1rem;
  border-radius: 22px;
  border: 1px solid rgba(2, 117, 139, 0.15);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--shadow-soft);
}

.page-registration .registration-session-chip span {
  color: #0f5663;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-registration .registration-session-chip strong {
  color: #11424d;
  font-size: 1.2rem;
  line-height: 1.1;
}

.page-registration .registration-session-chip small {
  color: #2f5d68;
  font-size: 0.92rem;
}

.page-registration .registration-session-chip.is-one {
  border-left: 5px solid rgba(255, 134, 0, 0.72);
}

.page-registration .registration-session-chip.is-two {
  border-left: 5px solid rgba(2, 117, 139, 0.72);
}

.page-registration .registration-session-chip.is-full {
  border-left: 5px solid rgba(94, 168, 76, 0.76);
}

.page-registration .registration-track-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  align-items: stretch;
}

.page-registration .registration-track-card {
  appearance: none;
  width: 100%;
  text-align: left;
  display: grid;
  gap: 0.7rem;
  padding: 1.15rem 1.1rem;
  border-radius: 28px;
  border: 1px solid rgba(15, 56, 68, 0.14);
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--shadow-soft);
  cursor: default;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 180ms ease, border-color 180ms ease, background-color 180ms ease;
}

.page-registration .registration-track-card:hover,
.page-registration .registration-track-card:focus-visible {
  transform: none;
  box-shadow: 0 14px 24px rgba(8, 52, 63, 0.08);
}

.page-registration .registration-track-card.is-active {
  transform: translateY(-3px);
  box-shadow: 0 20px 34px rgba(8, 52, 63, 0.13);
}

.page-registration .registration-track-card[data-track-button="foundations"] {
  border-left: 6px solid rgba(2, 117, 139, 0.72);
}

.page-registration .registration-track-card[data-track-button="teen"] {
  border-left: 6px solid rgba(255, 134, 0, 0.72);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.96), rgba(255, 248, 239, 0.92));
}

.page-registration .registration-track-card[data-track-button="advanced"] {
  border-left: 6px solid rgba(94, 168, 76, 0.76);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 243, 0.94));
}

.page-registration .registration-track-card.is-active[data-track-button="foundations"] {
  border-color: rgba(2, 117, 139, 0.34);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.98), rgba(238, 249, 250, 0.96));
}

.page-registration .registration-track-card.is-active[data-track-button="teen"] {
  border-color: rgba(255, 134, 0, 0.34);
}

.page-registration .registration-track-card.is-active[data-track-button="advanced"] {
  border-color: rgba(94, 168, 76, 0.36);
}

.page-registration .registration-track-card h3,
.page-registration .registration-track-card p {
  margin: 0;
}

.page-registration .registration-track-card p {
  color: #275965;
  line-height: 1.55;
}

.page-registration .registration-track-card .registration-track-action {
  margin-top: auto;
  text-decoration: none;
}

.page-registration .registration-track-points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}

.page-registration .registration-track-points li {
  position: relative;
  padding-left: 0.95rem;
  color: #1e4f5a;
  line-height: 1.42;
}

.page-registration .registration-track-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.56rem;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #d36d23;
}

.page-registration .registration-track-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 40px;
  padding: 0.55rem 0.88rem;
  border-radius: 999px;
  background: rgba(15, 86, 99, 0.08);
  color: #0f5663;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
}

.page-registration .registration-track-action:hover,
.page-registration .registration-track-action:focus-visible {
  background: rgba(15, 86, 99, 0.14);
  color: #0c4953;
}

.page-registration .registration-cluster {
  display: grid;
  gap: 0.95rem;
  scroll-margin-top: 6.75rem;
}

.page-registration .registration-cluster[hidden] {
  display: none !important;
}

.page-registration .registration-cluster-heading {
  gap: 0.28rem;
}

.page-registration .registration-course-grid {
  gap: 1rem;
}

.page-registration .registration-course-grid-teen {
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
}

.page-registration .registration-course-card {
  padding: 1.15rem;
  border-radius: 24px;
}

.page-registration .registration-course-card .session-badge-row {
  gap: 0.38rem;
}

.page-registration .session-link-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.58rem;
}

.page-registration .session-link-card {
  min-height: 0;
  gap: 0.28rem;
  padding: 0.84rem 0.72rem 0.78rem;
}

.page-registration .session-link-card small {
  min-height: 0;
}

.page-registration .session-link-card .session-link-card-cta {
  margin-top: auto;
  min-height: 40px;
  padding: 0.58rem 0.45rem;
  white-space: nowrap;
  font-size: 0.72rem;
  letter-spacing: 0.01em;
}

.page-registration .registration-compare {
  padding-top: 1rem;
}

.page-registration .registration-compare-details {
  border: 1px solid rgba(2, 117, 139, 0.16);
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.84);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}

.page-registration .registration-compare-details summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  display: grid;
  gap: 0.2rem;
  padding: 1rem 3rem 1rem 1rem;
}

.page-registration .registration-compare-details summary::-webkit-details-marker {
  display: none;
}

.page-registration .registration-compare-details summary::after {
  content: "+";
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #0f5663;
  font-size: 1.2rem;
  font-weight: 700;
}

.page-registration .registration-compare-details[open] summary::after {
  content: "\2212";
}

.page-registration .registration-compare-summary-text {
  color: #11424d;
  font-size: 1.12rem;
  font-weight: 800;
  line-height: 1.2;
}

.page-registration .registration-compare-inner {
  padding: 0 1rem 1rem;
}

.page-calendar .calendar-class-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.page-calendar .calendar-class-card {
  min-height: 0;
}

.page-calendar .calendar-class-card-wide {
  grid-column: 1 / -1;
}

.page-calendar .calendar-embed-shell {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(15, 56, 68, 0.1);
  border-radius: 28px;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.94), rgba(247, 251, 249, 0.92));
  box-shadow: var(--shadow-soft);
}

.page-calendar [data-calendar-embed-frame] {
  display: block;
  width: 100%;
  min-height: 760px;
  border: 0;
}

.page-about .about-hero-grid,
.page-about .about-story-grid,
.page-about .about-pillars-grid {
  display: grid;
  gap: 1rem;
}

.page-about .inner-hero.container,
.page-about .section.container {
  width: min(1180px, 94vw);
}

.page-about .about-hero-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.78fr);
  align-items: start;
}

.page-about .inner-hero {
  grid-template-columns: 1fr;
}

.page-about .about-hero {
  padding-top: 2.35rem;
}

/* ── Full-bleed about hero ───────────────────────────────────────────────
   Replaces the prior card+sidebar treatment. Background is a graded photo
   of the director; headline overlaid in Fraunces at display scale. */
.about-fullbleed-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 78svh;
  padding: 96px 0 72px;
  overflow: hidden;
  isolation: isolate;
  margin: 0 0 var(--section-gap-desktop);
}

.about-fullbleed-hero-media {
  position: absolute;
  inset: 0;
  z-index: -2;
}

.about-fullbleed-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 22%;
  filter: saturate(0.92) contrast(1.04);
}

.about-fullbleed-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(180deg, rgba(15, 28, 22, 0.32) 0%, rgba(15, 28, 22, 0.78) 70%, rgba(15, 28, 22, 0.92) 100%),
    linear-gradient(90deg, rgba(15, 28, 22, 0.52) 0%, rgba(15, 28, 22, 0.18) 60%);
}

.about-fullbleed-hero-content {
  color: #ffffff;
  max-width: 760px;
  position: relative;
  z-index: 1;
}

.about-fullbleed-hero-content .eyebrow {
  color: rgba(255, 255, 255, 0.78);
}

.about-fullbleed-hero-content h1 {
  color: #ffffff;
  font-size: clamp(2.6rem, 6.5vw, 4.8rem);
  line-height: 1.04;
  letter-spacing: -0.025em;
  margin: 0 0 1.1rem;
  font-variation-settings: "opsz" 144, "SOFT" 50, "wght" 600;
}

.about-fullbleed-hero-content h1 em {
  font-style: italic;
  font-variation-settings: "opsz" 144, "SOFT" 80, "wght" 500;
}

.about-fullbleed-hero-sub {
  color: rgba(255, 255, 255, 0.88);
  font-size: clamp(1rem, 1.2vw, 1.18rem);
  line-height: 1.6;
  max-width: 560px;
  margin: 0 0 1.6rem;
}

.about-hero-btn-ghost {
  background: transparent;
  border: 1.5px solid rgba(255, 255, 255, 0.55);
  color: #ffffff;
}

.about-hero-btn-ghost:hover,
.about-hero-btn-ghost:focus-visible {
  background: rgba(255, 255, 255, 0.1);
  border-color: #ffffff;
  color: #ffffff;
}

@media (max-width: 720px) {
  .about-fullbleed-hero {
    min-height: 70svh;
    padding: 72px 0 56px;
  }
}

/* ── Compact prose treatment for the Why-We-Exist section ────────────────
   Two ideas joined by a thin rule, no card chrome. */
.about-story-prose {
  max-width: var(--prose-max);
  margin: 0 auto;
  text-align: center;
}

.about-story-prose p {
  font-size: 1.05rem;
  line-height: 1.7;
  color: var(--text);
  margin: 0;
}

.about-story-rule {
  border: 0;
  height: 1px;
  width: 64px;
  margin: 1.6rem auto;
  background: linear-gradient(90deg, transparent, rgba(26, 58, 42, 0.35), transparent);
}

/* ── Coaches page portrait banner ────────────────────────────────────────
   Replaces the prior intro card + proof-strip. Faces carry the hero; the h1
   sits quietly below. */
.coaches-portrait-banner {
  margin: 0 0 var(--section-gap-desktop);
  padding: 32px 0 0;
}

.coaches-portrait-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 2px;
  margin: 0 0 32px;
}

.coaches-portrait {
  position: relative;
  margin: 0;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: rgba(26, 58, 42, 0.06);
}

.coaches-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.94) contrast(1.04);
  transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1), filter 300ms ease;
}

.coaches-portrait:hover img {
  transform: scale(1.04);
  filter: saturate(1.05) contrast(1.06);
}

.coaches-portrait-placeholder img {
  object-fit: contain;
  padding: 18%;
  opacity: 0.55;
}

.coaches-portrait figcaption {
  position: absolute;
  inset: auto 0 0 0;
  padding: 12px 14px 10px;
  background: linear-gradient(180deg, rgba(15, 28, 22, 0) 0%, rgba(15, 28, 22, 0.78) 100%);
  color: #ffffff;
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.78rem;
  line-height: 1.3;
}

.coaches-portrait-name {
  font-weight: 600;
  font-size: 0.86rem;
  letter-spacing: -0.01em;
}

.coaches-portrait-role {
  opacity: 0.78;
  font-size: 0.72rem;
}

.coaches-portrait-meta {
  text-align: left;
  max-width: 760px;
  padding-top: 8px;
}

.coaches-portrait-meta h1 {
  font-size: clamp(2.4rem, 5.5vw, 4rem);
  line-height: 1.04;
  letter-spacing: -0.025em;
  margin: 0 0 0.6rem;
  font-variation-settings: "opsz" 144, "SOFT" 50, "wght" 600;
}

.coaches-portrait-tagline {
  color: var(--muted);
  max-width: 540px;
  font-size: 1.02rem;
  margin: 0;
}

@media (max-width: 900px) {
  .coaches-portrait-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .coaches-portrait-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ── Coaches: horizontal name list (developmental coaches) ────────────────
   Replaces the prior card-per-coach grid. Names lead, role-tags follow, photo
   is a small thumbnail on the left. */
.coach-name-list {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  border-top: 1px solid rgba(26, 58, 42, 0.12);
}

.coach-name-row {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 18px 6px;
  border-bottom: 1px solid rgba(26, 58, 42, 0.12);
  transition: background-color 180ms ease;
}

.coach-name-row:hover {
  background: rgba(2, 117, 139, 0.04);
}

.coach-name-photo {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(26, 58, 42, 0.08);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--muted);
  font-weight: 700;
  font-size: 0.92rem;
  font-family: var(--font-display);
  letter-spacing: 0.04em;
  flex-shrink: 0;
}

.coach-name-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.coach-name-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.coach-name-name {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--text);
  font-variation-settings: "opsz" 32, "SOFT" 50, "wght" 600;
}

.coach-name-tags {
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.4;
}

.coach-name-arrow {
  color: var(--muted);
  font-size: 1.1rem;
  opacity: 0.5;
  transition: transform 220ms ease, opacity 220ms ease;
}

.coach-name-row:hover .coach-name-arrow {
  transform: translateX(3px);
  opacity: 1;
}

@media (max-width: 560px) {
  .coach-name-row {
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
  }
  .coach-name-photo {
    width: 44px;
    height: 44px;
  }
  .coach-name-arrow {
    display: none;
  }
}

/* ── Calendar hero: typographic date moment at architectural scale ───────
   Replaces the prior copy-block hero with the next program date set big
   in Fraunces. Title is screen-reader-only to preserve heading order. */
.calendar-date-hero {
  padding: 96px 0 72px;
  margin: 0 0 var(--section-gap-desktop);
}

.calendar-date-hero-inner {
  display: grid;
  gap: 24px;
}

.calendar-date-hero-display {
  display: grid;
  grid-template-columns: auto auto auto auto;
  grid-template-areas:
    "month month rule year"
    "day day day day";
  align-items: end;
  gap: 12px 24px;
  margin: 16px 0 4px;
}

.calendar-date-hero-month {
  grid-area: month;
  font-family: var(--font-display);
  font-size: clamp(1.6rem, 2.4vw, 2.4rem);
  font-style: italic;
  font-variation-settings: "opsz" 32, "SOFT" 80, "wght" 500;
  letter-spacing: -0.005em;
  color: var(--muted);
  align-self: start;
  padding-bottom: 0.2em;
}

.calendar-date-hero-day {
  grid-area: day;
  font-family: var(--font-display);
  font-size: clamp(6rem, 18vw, 14rem);
  font-variation-settings: "opsz" 144, "SOFT" 50, "wght" 600;
  line-height: 0.9;
  letter-spacing: -0.05em;
  color: var(--text);
  margin: 0;
}

.calendar-date-hero-rule {
  grid-area: rule;
  width: 80px;
  height: 1px;
  background: rgba(26, 58, 42, 0.35);
  align-self: end;
  margin-bottom: 0.6em;
}

.calendar-date-hero-year {
  grid-area: year;
  font-family: var(--font-body);
  font-size: clamp(0.9rem, 1.1vw, 1.05rem);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--muted);
  align-self: end;
  padding-bottom: 0.4em;
}

.calendar-date-hero-meta {
  font-size: 1.05rem;
  color: var(--text);
  max-width: 600px;
  margin: 8px 0 0;
  line-height: 1.7;
}

.calendar-date-hero-actions {
  margin-top: 12px;
}

@media (max-width: 720px) {
  .calendar-date-hero {
    padding: 64px 0 48px;
  }
  .calendar-date-hero-display {
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "month year"
      "day day"
      "rule rule";
    gap: 8px 16px;
  }
  .calendar-date-hero-rule {
    width: 100%;
    margin: 8px 0 0;
  }
}

/* ── Leagues hub: architectural court-line backdrop ─────────────────────
   A large, faint blueprint of a tennis court sits behind the dashboard hero.
   Replaces the prior plain-gradient context with the actual object the
   product is about. */
.leagues-hub-architectural {
  position: relative;
  isolation: isolate;
  padding: 64px 0 var(--section-gap-desktop);
}

.leagues-hub-court-backdrop {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  color: rgba(2, 117, 139, 0.12);
  overflow: hidden;
}

.leagues-hub-court-backdrop svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  transform: scale(1.05);
  transform-origin: center;
}

@media (max-width: 720px) {
  .leagues-hub-architectural {
    padding: 32px 0 var(--section-gap-mobile);
  }
  .leagues-hub-court-backdrop {
    opacity: 0.7;
  }
}

/* ── Homepage enrollment line ────────────────────────────────────────────
   Replaces the prior credential-strip card with a single line of running
   text. A small green dot replaces the card chrome as the visual anchor. */
.home-enrollment-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0 auto;
  padding: 14px 16px;
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--text);
  border-top: 1px solid rgba(26, 58, 42, 0.1);
  border-bottom: 1px solid rgba(26, 58, 42, 0.1);
  background: transparent;
  text-align: left;
}

.home-enrollment-line-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--program-green);
  box-shadow: 0 0 0 3px rgba(99, 153, 34, 0.18);
  flex-shrink: 0;
  margin-right: 4px;
  animation: home-enrollment-pulse 2.6s ease-in-out infinite;
}

@keyframes home-enrollment-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(99, 153, 34, 0.18); }
  50%      { box-shadow: 0 0 0 6px rgba(99, 153, 34, 0.04); }
}

@media (prefers-reduced-motion: reduce) {
  .home-enrollment-line-dot { animation: none; }
}

.home-enrollment-line strong {
  font-weight: 700;
  margin-right: 0.2rem;
}

.home-enrollment-line a {
  color: var(--teal);
  font-weight: 700;
  margin-left: auto;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 180ms ease;
}

.home-enrollment-line a:hover,
.home-enrollment-line a:focus-visible {
  border-bottom-color: currentColor;
}

/* ── Leagues admin: activity log ─────────────────────────────────────────
   Read-only feed of recent admin and public actions, rendered by the inline
   script in leagues-admin.html. */
.leagues-audit-card {
  display: grid;
  gap: 1rem;
}

.leagues-audit-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.leagues-audit-list {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid rgba(26, 58, 42, 0.1);
}

.leagues-audit-item {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 12px 16px;
  padding: 12px 4px;
  border-bottom: 1px solid rgba(26, 58, 42, 0.08);
  font-size: 0.92rem;
}

.leagues-audit-item.is-destructive .leagues-audit-verb {
  color: #c73e3e;
}

.leagues-audit-item.is-edit .leagues-audit-verb {
  color: #8a4f0a;
}

.leagues-audit-item.is-create .leagues-audit-verb {
  color: #4f9a53;
}

.leagues-audit-time {
  color: var(--muted);
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.leagues-audit-verb {
  font-weight: 700;
  color: var(--text);
}

.leagues-audit-actor {
  justify-self: end;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(26, 58, 42, 0.06);
}

.leagues-audit-detail {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.5;
}

.leagues-audit-detail:empty {
  display: none;
}

@media (max-width: 640px) {
  .leagues-audit-item {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .leagues-audit-time {
    grid-column: 1 / -1;
  }
}

/* ── Private lessons page ────────────────────────────────────────────────
   Booking form for one-on-one lessons. Two pickers (coach, location) styled
   as visual cards, then a standard form for player + parent info. */
.private-hero {
  padding: 72px 0 40px;
  margin-bottom: 0;
}

.private-hero-inner {
  text-align: left;
  max-width: 720px;
}

.private-hero h1 {
  font-size: clamp(2.6rem, 6vw, 4.4rem);
  line-height: 1.04;
  letter-spacing: -0.025em;
  margin: 0 0 1rem;
  font-variation-settings: "opsz" 144, "SOFT" 50, "wght" 600;
}

.private-hero h1 em {
  font-style: italic;
  font-variation-settings: "opsz" 144, "SOFT" 80, "wght" 500;
}

.private-hero-sub {
  color: var(--muted);
  font-size: clamp(1rem, 1.2vw, 1.18rem);
  line-height: 1.6;
  max-width: 600px;
  margin: 0;
}

.private-form {
  display: grid;
  gap: 24px;
  max-width: 1040px;
  margin: 0 auto;
  background: rgba(255, 255, 255, 0.92);
  padding: clamp(20px, 3vw, 32px);
  border: 1px solid rgba(26, 58, 42, 0.14);
  border-radius: 16px;
  box-shadow: 0 18px 44px -34px rgba(26, 58, 42, 0.32);
}

.private-fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 14px;
}

.private-fieldset:not(:last-of-type) {
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(26, 58, 42, 0.1);
}

.private-fieldset legend {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 2px;
  padding: 0;
  width: 100%;
}

.private-fieldset-step {
  font-family: var(--font-body);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--muted);
  background: rgba(26, 58, 42, 0.06);
  padding: 4px 10px;
  border-radius: 999px;
}

.private-fieldset-title {
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  font-weight: 600;
  color: var(--text);
  font-variation-settings: "opsz" 48, "SOFT" 50, "wght" 600;
}

/* ── Coach picker ──────────────────────────────────────────────────────── */
.private-coach-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.private-coach-card {
  position: relative;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(26, 58, 42, 0.18);
  border-radius: 10px;
  background: #ffffff;
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.private-coach-card:hover {
  border-color: rgba(26, 58, 42, 0.4);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px -14px rgba(26, 58, 42, 0.3);
}

.private-coach-card input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}

.private-coach-card:has(input:checked) {
  border-color: var(--text);
  background: rgba(26, 58, 42, 0.04);
  box-shadow: 0 0 0 1px var(--text) inset;
}

/* Placeholder portrait styling — used for coaches without a real photo yet */
.private-coach-photo-placeholder {
  background: rgba(26, 58, 42, 0.06);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.private-coach-photo-placeholder img {
  width: 56%;
  height: 56%;
  object-fit: contain;
  opacity: 0.55;
}

.home-privates-strip-coach-photo-placeholder {
  background: rgba(26, 58, 42, 0.08);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.home-privates-strip-coach-photo-placeholder img {
  width: 64%;
  height: 64%;
  object-fit: contain;
  opacity: 0.6;
}

.private-coach-photo {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(26, 58, 42, 0.08);
  flex-shrink: 0;
}

.private-coach-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.private-coach-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.private-coach-name {
  font-family: var(--font-display);
  font-size: 1.04rem;
  font-weight: 600;
  color: var(--text);
  font-variation-settings: "opsz" 32, "SOFT" 50, "wght" 600;
}

.private-coach-role {
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.25;
}

@media (max-width: 960px) {
  .private-coach-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .private-coach-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Location picker ───────────────────────────────────────────────────── */
.private-location-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.private-location-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 1px solid rgba(26, 58, 42, 0.18);
  border-radius: 10px;
  background: #ffffff;
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.private-location-card:hover {
  border-color: rgba(26, 58, 42, 0.4);
  transform: translateY(-1px);
  box-shadow: 0 8px 18px -14px rgba(26, 58, 42, 0.3);
}

.private-location-card input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}

.private-location-card:has(input:checked) {
  border-color: var(--text);
  background: rgba(26, 58, 42, 0.04);
  box-shadow: 0 0 0 1px var(--text) inset;
}

.private-location-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.private-location-name {
  font-family: var(--font-display);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--text);
  font-variation-settings: "opsz" 32, "SOFT" 50, "wght" 600;
}

.private-location-where {
  color: var(--muted);
  font-size: 0.84rem;
}

.private-location-icon {
  width: 32px;
  height: 32px;
  color: rgba(26, 58, 42, 0.42);
  flex-shrink: 0;
}

.private-location-card:has(input:checked) .private-location-icon {
  color: var(--text);
}

@media (max-width: 560px) {
  .private-location-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Form fields ───────────────────────────────────────────────────────── */
.private-field-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px 16px;
}

.private-schedule-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: 16px;
  align-items: stretch;
}

.private-schedule-side {
  display: grid;
  gap: 12px;
  align-content: start;
}

.private-contact-grid .private-field-notes {
  grid-column: span 2;
}

.private-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.private-field-short {
  max-width: 130px;
}

.private-field label {
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.01em;
}

.private-field input,
.private-field select,
.private-field textarea,
.private-form input[type="text"],
.private-form input[type="email"],
.private-form input[type="tel"],
.private-form select,
.private-form textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid rgba(26, 58, 42, 0.22);
  border-radius: 8px;
  background: #ffffff;
  color: var(--text);
  font-family: var(--font-body);
  font-size: 0.96rem;
  line-height: 1.4;
  transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.private-field textarea,
.private-form textarea {
  min-height: 104px;
  resize: vertical;
}

.private-field input:focus,
.private-field select:focus,
.private-field textarea:focus,
.private-form textarea:focus {
  outline: none;
  border-color: var(--text);
  box-shadow: 0 0 0 3px rgba(26, 58, 42, 0.14);
  background: #fbfdfb;
}

.private-field-helper {
  margin: 4px 0 0;
  font-size: 0.78rem;
  color: var(--muted);
}

@media (max-width: 720px) {
  .private-form {
    padding: 18px;
    border-radius: 14px;
  }
  .private-field-grid {
    grid-template-columns: 1fr;
  }
  .private-schedule-grid {
    grid-template-columns: 1fr;
  }
  .private-contact-grid .private-field-notes {
    grid-column: auto;
  }
  .private-field-short {
    max-width: none;
  }
}

/* ── Form actions + success ────────────────────────────────────────────── */
.private-form-actions {
  margin-top: 8px;
}

#private-submit:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.private-success-card {
  display: grid;
  gap: 12px;
  justify-items: start;
  padding: 32px;
  border: 1px solid rgba(26, 58, 42, 0.18);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(99, 153, 34, 0.06), rgba(2, 117, 139, 0.04));
}

.private-success-icon {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  background: var(--program-green);
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.private-success-icon svg {
  width: 24px;
  height: 24px;
}

.private-success-card h2 {
  margin: 0;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  letter-spacing: -0.02em;
}

.private-success-card p {
  margin: 0;
  color: var(--text);
  max-width: 560px;
}

/* ── FAQ ───────────────────────────────────────────────────────────────── */
.private-faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 32px;
  border-top: 1px solid rgba(26, 58, 42, 0.1);
  padding-top: 24px;
}

.private-faq-item h3 {
  margin: 0 0 6px;
  font-size: 1.08rem;
  font-variation-settings: "opsz" 32, "SOFT" 50, "wght" 600;
}

.private-faq-item p {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
  line-height: 1.6;
}

@media (max-width: 720px) {
  .private-faq-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Nav "Privates" entry ──────────────────────────────────────────────── */
.main-nav .nav-privates {
  background: transparent;
  border: 1px solid rgba(26, 58, 42, 0.22);
  color: var(--text);
  font-weight: 600;
}

.main-nav .nav-privates:hover,
.main-nav .nav-privates:focus-visible {
  background: rgba(26, 58, 42, 0.06);
  border-color: rgba(26, 58, 42, 0.45);
  color: var(--text);
}

.main-nav .nav-privates.is-active {
  background: rgba(26, 58, 42, 0.08);
  border-color: var(--text);
  color: var(--text);
}

/* ── Homepage Private Lessons card ─────────────────────────────────────── */
.home-privates-strip {
  margin: 0 auto var(--section-gap-desktop);
  padding: 28px 24px;
  border: 1px solid rgba(26, 58, 42, 0.12);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(2, 117, 139, 0.05), rgba(99, 153, 34, 0.04));
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: center;
  gap: 24px;
}

.home-privates-strip-copy .eyebrow {
  margin: 0 0 6px;
}

.home-privates-strip-copy h2 {
  margin: 0 0 6px;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  letter-spacing: -0.02em;
}

.home-privates-strip-copy p {
  margin: 0;
  color: var(--muted);
  max-width: 480px;
}

.home-privates-strip-coaches {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

@media (max-width: 720px) {
  .home-privates-strip-coaches {
    grid-template-columns: 1fr;
  }
}

.home-privates-strip-coach {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(26, 58, 42, 0.12);
  border-radius: 999px;
  text-decoration: none;
  color: var(--text);
  font-weight: 600;
  font-size: 0.92rem;
  transition: background-color 180ms ease, transform 180ms ease, border-color 180ms ease;
}

.home-privates-strip-coach:hover,
.home-privates-strip-coach:focus-visible {
  background: #ffffff;
  border-color: rgba(26, 58, 42, 0.32);
  transform: translateX(2px);
}

.home-privates-strip-coach-photo {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(26, 58, 42, 0.08);
  flex-shrink: 0;
}

.home-privates-strip-coach-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-privates-strip-coach-arrow {
  margin-left: auto;
  opacity: 0.5;
}

@media (max-width: 720px) {
  .home-privates-strip {
    grid-template-columns: 1fr;
  }
}

/* ── Per-coach "Book a private" CTA on coaches.html ────────────────────── */
.coach-book-private {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  padding: 8px 14px;
  background: transparent;
  border: 1px solid rgba(26, 58, 42, 0.32);
  border-radius: 999px;
  color: var(--text);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.86rem;
  text-decoration: none;
  transition: background-color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.coach-book-private:hover,
.coach-book-private:focus-visible {
  background: var(--text);
  color: #ffffff;
  border-color: var(--text);
  transform: translateY(-1px);
}

.coach-book-private::after {
  content: "→";
  font-weight: 400;
  transition: transform 220ms ease;
}

.coach-book-private:hover::after {
  transform: translateX(2px);
}

/* ── Lesson length picker (30 / 60 / 90 min pills) ──────────────────────── */
.private-field-label-text {
  display: block;
  font-family: var(--font-body);
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 8px;
}

.private-length-pills {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.private-length-pill {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 10px 18px;
  border: 1px solid rgba(26, 58, 42, 0.22);
  border-radius: 999px;
  background: #ffffff;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 0.92rem;
  color: var(--text);
  transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.private-length-pill input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
}

.private-length-pill strong {
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 600;
  font-variation-settings: "opsz" 32, "SOFT" 50, "wght" 600;
}

.private-length-pill:hover {
  border-color: rgba(26, 58, 42, 0.42);
}

.private-length-pill:has(input:checked) {
  border-color: var(--text);
  background: rgba(26, 58, 42, 0.06);
  box-shadow: 0 0 0 1px var(--text) inset;
}

/* ── Recurring weekly checkbox card ─────────────────────────────────────── */
.private-checkbox {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid rgba(26, 58, 42, 0.18);
  border-radius: 10px;
  background: #ffffff;
  cursor: pointer;
  transition: border-color 180ms ease, background-color 180ms ease;
}

.private-checkbox:hover {
  border-color: rgba(26, 58, 42, 0.4);
}

.private-checkbox input[type="checkbox"] {
  margin: 3px 0 0;
  width: 18px;
  height: 18px;
  accent-color: var(--text);
  cursor: pointer;
}

.private-checkbox:has(input:checked) {
  border-color: var(--text);
  background: rgba(26, 58, 42, 0.04);
}

.private-checkbox-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.private-checkbox-title {
  font-weight: 600;
  font-size: 0.96rem;
  color: var(--text);
}

.private-checkbox-sub {
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.4;
}

/* ── Inline price note + phone fallback ─────────────────────────────────── */
.private-confirm-note {
  margin: 12px 0 0;
  padding: 14px 16px;
  background: rgba(26, 58, 42, 0.045);
  border: 1px solid rgba(26, 58, 42, 0.12);
  border-radius: 8px;
  color: var(--text);
  font-size: 0.9rem;
  line-height: 1.55;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.private-confirm-note-mark {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  color: rgba(26, 58, 42, 0.75);
  margin-top: 2px;
}

.private-confirm-note strong {
  font-weight: 700;
  margin-right: 0.2rem;
}

.private-phone-fallback {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 0.88rem;
  text-align: center;
}

.private-phone-fallback a {
  color: var(--text);
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid rgba(26, 58, 42, 0.3);
  transition: border-color 180ms ease;
}

.private-phone-fallback a:hover,
.private-phone-fallback a:focus-visible {
  border-bottom-color: var(--text);
}

.page-about .inner-copy {
  max-width: none;
}

.page-about .about-greatbase-shell {
  grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.84fr);
}

.page-about .about-next-shell {
  grid-template-columns: minmax(0, 1fr) auto;
}

.page-about .simple-shell {
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, 0.95fr);
}

.page-about .about-next-shell {
  grid-template-columns: minmax(0, 1fr) auto;
}

.page-about .about-hero .inner-copy,
.page-about .about-greatbase-shell > div:first-child,
.page-about .about-next-shell > div:first-child {
  min-width: 0;
}

.page-about .about-greatbase-shell > div:first-child p,
.page-about .about-next-shell > div:first-child p {
  max-width: 62ch;
}

.page-about .about-story-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-about .about-pillars-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-about .about-side-note,
.page-about .about-story-card,
.page-about .about-pillar-card,
.page-about .about-greatbase-note {
  padding: 1.3rem;
  border: 1px solid rgba(15, 56, 68, 0.1);
  border-radius: 26px;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.94), rgba(247, 250, 247, 0.92));
  box-shadow: var(--shadow-soft);
}

.page-about .about-side-note {
  align-self: start;
  display: block;
  width: 100%;
  min-width: 0;
}

.page-about .about-side-label {
  display: inline-flex;
  align-items: center;
  gap: 0.72rem;
  margin: 0 0 0.85rem;
  color: #8a5b1d;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.page-about .about-side-label::before {
  content: "";
  width: 28px;
  height: 1px;
  background: linear-gradient(90deg, rgba(239, 159, 39, 0.95), rgba(186, 117, 23, 0.45));
  flex: 0 0 auto;
}

.page-about .about-highlight-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.8rem;
}

.page-about .about-highlight-list li {
  position: relative;
  padding-left: 1rem;
  color: #1f5661;
  line-height: 1.52;
}

.page-about .about-highlight-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.52rem;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #d36d23;
}

.page-about .about-story-card h3,
.page-about .about-pillar-card h3 {
  margin-bottom: 0.5rem;
}

.page-about .about-story-card p,
.page-about .about-pillar-card p {
  margin: 0;
  color: #2f5d68;
}

.page-about .about-greatbase-shell,
.page-about .about-next-shell {
  align-items: center;
}

.page-about .about-greatbase-note {
  display: grid;
  gap: 1rem;
}

.page-about .about-hero-grid > *,
.page-about .about-greatbase-shell > *,
.page-about .about-next-shell > * {
  width: 100%;
  min-width: 0;
}

.page-about .about-quote {
  margin: 0;
  color: #11424d;
  font-size: 1.1rem;
  line-height: 1.6;
  font-weight: 600;
}

.page-about .inner-hero.container,
.page-about .section.container {
  width: min(1280px, 96vw);
}

.page-about .about-hero-grid {
  grid-template-columns: minmax(0, 1.06fr) minmax(360px, 0.78fr);
  width: 100%;
}

.page-about .about-story-grid,
.page-about .about-pillars-grid,
.page-about .about-greatbase-shell,
.page-about .about-next-shell,
.page-about .simple-shell {
  width: 100%;
}

.page-about .about-greatbase-shell {
  grid-template-columns: minmax(0, 1.12fr) minmax(360px, 0.88fr);
}

.page-about .about-next-shell {
  grid-template-columns: minmax(0, 1fr) minmax(320px, auto);
}

@media (max-width: 1120px) {
  .page-home .home-destination-grid,
  .page-registration .registration-landing-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-track-grid,
  .page-home .home-process-grid,
  .page-registration .registration-track-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-track-heading {
    grid-template-columns: 1fr;
  }

  .page-registration .registration-course-grid-teen {
    grid-template-columns: 1fr;
  }

  .page-about .about-hero-grid,
  .page-about .about-story-grid,
  .page-about .about-pillars-grid,
  .page-calendar .calendar-class-grid {
    grid-template-columns: 1fr;
  }

  .page-about .about-greatbase-shell,
  .page-about .about-next-shell {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 860px) {
  .page-home .home-photo-card {
    min-height: 360px;
  }

  .page-home .home-hero-metrics {
    grid-template-columns: 1fr 1fr;
  }

  .page-home .home-track-card-bottom {
    align-items: start;
    flex-direction: column;
  }

  .page-home .home-track-card-bottom .btn {
    width: 100%;
    min-width: 0;
  }

  .page-registration .session-link-grid {
    grid-template-columns: 1fr;
  }

  .registration-compare-hint {
    display: block;
  }

  .page-registration .registration-shortcut {
    align-items: start;
    flex-direction: column;
  }
}

@media (max-width: 640px) {
  .page-home .home-destination-copy h1 {
    max-width: 100%;
    font-size: clamp(2.5rem, 11vw, 3.4rem);
  }

  .page-home .home-hero-metrics {
    grid-template-columns: 1fr;
  }

  .page-home .home-photo-overlay {
    left: 0.85rem;
    right: 0.85rem;
    bottom: 0.85rem;
  }

  .page-home .home-track-card-top,
  .page-home .home-track-points,
  .page-home .home-track-card-bottom,
  .page-home .home-process-card,
  .page-registration .registration-track-card,
  .page-registration .registration-course-card {
    padding-left: 0.95rem;
    padding-right: 0.95rem;
  }

  .page-registration .registration-landing-copy,
  .page-registration .registration-session-panel,
  .page-registration .registration-finder,
  .page-registration .registration-selector,
  .page-registration .registration-booking,
  .page-registration .registration-compare,
  .page-registration .registration-faq {
    border-radius: 24px;
  }

  .page-registration .registration-program-pills {
    display: flex;
  }

  .page-registration .registration-compare .table-scroll {
    display: none;
  }

  .registration-compare-hint {
    display: none;
  }

  .section-link-stack {
    justify-items: start;
  }
}

/* April 2026 cleanup: current junior offerings only */
.ball-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.55rem;
  padding: 0.18rem 0.52rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
  border: 1px solid transparent;
}

.ball-label-red {
  background: rgba(216, 59, 48, 0.12);
  border-color: rgba(216, 59, 48, 0.24);
  color: #ba2a20;
}

.ball-label-orange {
  background: rgba(255, 134, 0, 0.14);
  border-color: rgba(255, 134, 0, 0.22);
  color: #bf5f0c;
}

.ball-label-green {
  background: rgba(94, 168, 76, 0.14);
  border-color: rgba(94, 168, 76, 0.24);
  color: #3c7f2f;
}

.ball-label-gold {
  background: rgba(242, 180, 5, 0.14);
  border-color: rgba(242, 180, 5, 0.24);
  color: #9a6d00;
}

.ball-label-teal {
  background: rgba(2, 117, 139, 0.12);
  border-color: rgba(2, 117, 139, 0.22);
  color: #0f5663;
}

.page-registration .registration-track-card.is-u12 {
  border-left: 6px solid rgba(2, 117, 139, 0.72);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 251, 0.95));
}

.page-registration .registration-track-card.is-teen {
  border-left: 6px solid rgba(255, 134, 0, 0.72);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.96), rgba(255, 248, 239, 0.92));
}

.page-registration .registration-track-card.is-performance {
  border-left: 6px solid rgba(94, 168, 76, 0.76);
  background: linear-gradient(150deg, rgba(255, 255, 255, 0.96), rgba(242, 249, 243, 0.94));
}

.page-registration .registration-track-card.is-u12:hover,
.page-registration .registration-track-card.is-u12:focus-visible {
  border-color: rgba(2, 117, 139, 0.34);
}

.page-registration .registration-track-card.is-teen:hover,
.page-registration .registration-track-card.is-teen:focus-visible {
  border-color: rgba(255, 134, 0, 0.34);
}

.page-registration .registration-track-card.is-performance:hover,
.page-registration .registration-track-card.is-performance:focus-visible {
  border-color: rgba(94, 168, 76, 0.36);
}

.page-registration .registration-track-card.is-u12 .stage {
  background: rgba(2, 117, 139, 0.1);
  border: 1px solid rgba(2, 117, 139, 0.16);
  color: #0f5663;
}

.page-registration .registration-track-card.is-teen .stage {
  background: rgba(255, 134, 0, 0.12);
  border: 1px solid rgba(255, 134, 0, 0.16);
  color: #a45812;
}

.page-registration .registration-track-card.is-performance .stage {
  background: rgba(94, 168, 76, 0.12);
  border: 1px solid rgba(94, 168, 76, 0.18);
  color: #3c7f2f;
}

.page-registration .registration-track-points li {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.42rem;
  padding-left: 0;
}

.page-registration .registration-track-points li::before {
  display: none;
}

.page-registration .registration-track-card .stage {
  width: fit-content;
}

.page-registration .registration-compare .table-scroll {
  margin-top: 0.75rem;
}

.page-registration .registration-compare .schedule-date-range {
  margin-top: 0.9rem;
}

.page-registration .registration-intro,
.page-registration .registration-finder,
.page-registration .registration-selector,
.page-registration .registration-booking,
.page-registration .registration-compare,
.page-registration .registration-faq {
  width: min(1380px, 96vw);
  margin-inline: auto;
}

.page-registration .registration-course-card {
  padding: 1.08rem;
}

.page-registration .registration-course-grid {
  gap: 0.92rem;
}

.page-registration .registration-course-grid-single {
  max-width: none;
}

.page-registration .registration-booking {
  width: min(1380px, 96vw);
  margin-inline: auto;
}

.page-registration .registration-cluster {
  width: 100%;
  display: grid;
  gap: 0.95rem;
}

.page-registration .registration-cluster .registration-course-grid,
.page-registration .registration-cluster .registration-course-grid-single {
  width: 100%;
}

.page-registration .registration-hub-note {
  max-width: 42ch;
}

.page-registration .registration-cluster + .registration-cluster {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(15, 56, 68, 0.1);
}

.page-registration .registration-course-grid-two-up {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

/* April 2026 design token pass */
h1,
.hero-copy h1,
.page-intro h1,
.page-home .home-hero-main h1,
.page-registration .registration-landing-copy h1 {
  font-size: clamp(40px, 4.4vw, 52px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.03em;
}

h2,
.section-heading h2,
.page-intro h2,
.hero-panel h2,
.hero-side h2 {
  font-size: clamp(28px, 3vw, 32px);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

h3,
.program-card h3,
.page-registration .registration-track-card h3,
.page-registration .registration-course-card h3,
.page-home .home-track-card-top h3 {
  font-size: clamp(18px, 1.8vw, 20px);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.015em;
}

body,
p,
li,
input,
select,
textarea {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.7;
}

main p,
.hero-copy p,
.hero-panel p,
.program-card p,
.page-intro p {
  max-width: var(--prose-max);
}

.eyebrow,
.kicker,
.stage,
.session-badge,
.badge,
.ball-label,
.credential-strip,
.credential-strip * {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

section,
.section,
.simple-shell,
.inner-hero,
.hero {
  margin-bottom: var(--section-gap-desktop);
}

.program-card,
.feature-card,
.path-card,
.contact-form,
.register-strip,
.logo-feature,
.greatbase-callout,
.page-registration .registration-course-card,
.page-registration .registration-track-card,
.page-home .home-track-card,
.page-home .home-hero-metric-card,
.page-about .about-side-note,
.page-about .about-story-card,
.page-about .about-pillar-card,
.page-about .about-greatbase-note {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: none;
}

.page-registration .registration-course-card,
.page-home .home-track-card,
.program-card {
  padding: 20px;
}

.page-registration .registration-course-card.registration-course-red,
.page-registration #red-ball.registration-course-card,
.page-home .home-track-card-red,
.program-card.is-red {
  border-color: var(--program-red);
  border-top: 4px solid var(--program-red);
}

.page-registration .registration-course-card.registration-course-orange,
.page-registration #orange-ball.registration-course-card,
.page-home .home-track-card-orange,
.program-card.is-orange {
  border-color: var(--program-orange);
  border-top: 4px solid var(--program-orange);
}

.page-registration .registration-course-card.registration-course-green,
.page-registration #green-ball.registration-course-card,
.page-home .home-track-card-green,
.program-card.is-green {
  border-color: var(--program-green);
  border-top: 4px solid var(--program-green);
}

.page-registration .registration-course-card.registration-course-yellow,
.page-registration #beginner-yellow.registration-course-card,
.page-home .home-track-card-yellow,
.program-card.is-yellow {
  border-color: var(--program-yellow);
  border-top: 4px solid var(--program-yellow);
}

.page-registration .registration-course-card.registration-course-highperf,
.page-registration #high-performance-camp.registration-course-card,
.page-home .home-track-card-highperf,
.program-card.is-highperf {
  border-color: var(--program-highperf);
  border-top: 4px solid var(--program-highperf);
}

.ball-label-red {
  background: rgba(226, 75, 74, 0.1);
  border-color: rgba(226, 75, 74, 0.28);
  color: var(--program-red);
}

.ball-label-orange {
  background: rgba(239, 159, 39, 0.12);
  border-color: rgba(239, 159, 39, 0.28);
  color: var(--program-orange);
}

.ball-label-green {
  background: rgba(99, 153, 34, 0.12);
  border-color: rgba(99, 153, 34, 0.28);
  color: var(--program-green);
}

.ball-label-gold {
  background: rgba(186, 117, 23, 0.12);
  border-color: rgba(186, 117, 23, 0.28);
  color: var(--program-yellow);
}

.ball-label-teal {
  background: rgba(24, 95, 165, 0.12);
  border-color: rgba(24, 95, 165, 0.28);
  color: var(--program-highperf);
}

.credential-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  padding: 16px;
  background: var(--text);
  color: #ffffff;
  border-radius: 10px;
}

.credential-strip > * + *::before {
  content: "·";
  margin-right: 0.5rem;
  color: rgba(255, 255, 255, 0.72);
}

@media (max-width: 860px) {
  section,
  .section,
  .simple-shell,
  .inner-hero,
  .hero {
    margin-bottom: var(--section-gap-mobile);
  }

  .container {
    width: min(var(--layout-max), calc(100vw - 48px));
  }
}

@media (max-width: 640px) {
  .container {
    width: calc(100vw - 48px);
  }
}

.page-registration .registration-program-pills {
  display: none;
  gap: 0.5rem;
  overflow-x: auto;
  padding: 0.15rem 0 0.35rem;
  margin: 0.2rem 0 0.65rem;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.page-registration .registration-program-pills::-webkit-scrollbar {
  display: none;
}

.page-registration .registration-program-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  min-height: 40px;
  padding: 0.55rem 0.88rem;
  border-radius: 999px;
  border: 1px solid rgba(2, 117, 139, 0.16);
  background: rgba(255, 255, 255, 0.96);
  color: #104f5c;
  text-decoration: none;
  font-size: 0.84rem;
  font-weight: 800;
  box-shadow: var(--shadow-soft);
}

.page-registration .registration-program-pill.is-red {
  border-color: rgba(216, 59, 48, 0.22);
  color: #ba2a20;
}

.page-registration .registration-program-pill.is-orange {
  border-color: rgba(255, 134, 0, 0.22);
  color: #bf5f0c;
}

.page-registration .registration-program-pill.is-green {
  border-color: rgba(94, 168, 76, 0.24);
  color: #3c7f2f;
}

.page-registration .registration-program-pill.is-gold {
  border-color: rgba(242, 180, 5, 0.24);
  color: #9a6d00;
}

.page-registration .registration-program-pill.is-teal {
  border-color: rgba(2, 117, 139, 0.22);
  color: #0f5663;
}

.page-registration .session-link-grid {
  gap: 0.5rem;
}

.page-registration .session-link-card {
  gap: 0.22rem;
  padding: 0.82rem 0.68rem 0.74rem;
}

.page-registration .registration-course-card,
.page-registration .registration-cluster {
  scroll-margin-top: 112px;
}

.page-registration .session-link-card .session-link-card-cta {
  min-height: 40px;
  padding: 0.58rem 0.5rem;
  white-space: normal;
  text-wrap: balance;
  font-size: 0.74rem;
}

.page-registration .session-link-group + .session-link-group {
  margin-top: 0.72rem;
}

.page-home .home-destination-copy h1 {
  max-width: 8.8ch;
}

.page-home .home-destination-lead {
  max-width: 30ch;
}

.page-home .home-photo-panel {
  gap: 0.78rem;
}

.page-home .home-photo-card {
  min-height: 420px;
}

.page-home .home-photo-overlay {
  max-width: 28rem;
}

.page-home .home-hero-proof span:first-child {
  border-color: rgba(94, 168, 76, 0.22);
}

.page-home .home-site-card:last-child .home-site-dot {
  background: #d36d23;
  box-shadow: 0 0 0 6px rgba(211, 109, 35, 0.14);
}

.page-home .home-track-card-u12 .home-track-card-top {
  background: linear-gradient(160deg, #2f7b3a, #2b6d34);
}

.page-home .home-track-card-performance .home-track-card-top {
  background: linear-gradient(160deg, #183f48, #123640);
}

.page-home .home-track-points li.track-point-label {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-left: 0;
}

.page-home .home-track-points li.track-point-label::before {
  display: none;
}

.page-leagues-standings .league-platform-toolbar,
.page-leagues-submit .league-platform-toolbar {
  border-color: rgba(var(--league-accent-rgb), 0.2);
}

.page-leagues-standings .league-platform-grid {
  gap: 1rem;
}

.page-leagues-standings .league-platform-heading h2,
.page-leagues-submit .league-platform-heading h2 {
  letter-spacing: -0.03em;
}

.page-leagues-standings .league-results-panel,
.page-leagues-submit .league-score-wizard {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.6),
    0 18px 34px rgba(var(--league-accent-rgb), 0.08);
}

.page-leagues-standings .league-result-matchup,
.page-leagues-admin .league-result-matchup {
  font-size: 0.98rem;
}

.page-leagues-submit .league-form-helper,
.page-leagues-submit .league-score-footnote,
.page-leagues-standings .league-results-note,
.page-leagues-standings .standings-meta {
  color: #315c67;
}

.page-leagues-submit .league-entry-block {
  border: 1px solid rgba(var(--league-accent-rgb), 0.12);
}

.site-context-badge {
  /* Hidden by default — the badge was crowding the main nav past its 1120px
     container at typical desktop widths, forcing the Register button onto a
     second line. The subpage-nav strip directly below the header already
     establishes the page's section context (Hub / Standings / Submit / etc.),
     so the badge is informationally redundant. If we ever need it back on
     ultra-wide layouts we can override at min-width: 1400px. */
  display: none;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
}

.site-context-badge-leagues {
  border: 1px solid rgba(166, 104, 44, 0.18);
  background: rgba(199, 126, 58, 0.1);
  color: #8e5626;
}

.page-leagues .site-header,
.page-leagues-standings .site-header,
.page-leagues-submit .site-header,
.page-leagues-admin .site-header,
.page-league-registration .site-header {
  background: rgba(252, 247, 239, 0.92);
  border-bottom-color: rgba(166, 104, 44, 0.18);
  box-shadow: 0 6px 16px rgba(82, 58, 34, 0.08);
}

.page-leagues .main-nav .nav-register,
.page-leagues-standings .main-nav .nav-register,
.page-leagues-submit .main-nav .nav-register,
.page-leagues-admin .main-nav .nav-register,
.page-league-registration .main-nav .nav-register {
  border-color: rgba(166, 104, 44, 0.28);
  background: linear-gradient(135deg, #a96732, #c67a3b);
  box-shadow: 0 12px 22px rgba(122, 74, 34, 0.18);
}

.page-leagues .main-nav .nav-register:hover,
.page-leagues .main-nav .nav-register:focus-visible,
.page-leagues-standings .main-nav .nav-register:hover,
.page-leagues-standings .main-nav .nav-register:focus-visible,
.page-leagues-submit .main-nav .nav-register:hover,
.page-leagues-submit .main-nav .nav-register:focus-visible,
.page-leagues-admin .main-nav .nav-register:hover,
.page-leagues-admin .main-nav .nav-register:focus-visible,
.page-league-registration .main-nav .nav-register:hover,
.page-league-registration .main-nav .nav-register:focus-visible {
  background: linear-gradient(135deg, #995b2b, #b96f33);
  box-shadow: 0 14px 24px rgba(122, 74, 34, 0.24);
}

.page-leagues .league-compact-intro .eyebrow,
.page-leagues-standings .league-compact-intro .eyebrow,
.page-leagues-submit .league-compact-intro .eyebrow,
.page-leagues-admin .league-compact-intro .eyebrow,
.page-league-registration .page-intro .eyebrow {
  color: #8e5626;
}

/* Keep the header shell consistent even when a page widens its content container */
.site-header .container {
  width: min(1120px, 92vw);
}

@media (max-width: 1100px) {
  .site-context-badge {
    display: none;
  }
}

@media (max-width: 1120px) {
  .page-registration .registration-course-grid-two-up {
    grid-template-columns: 1fr;
  }
}

/* April 2026 leagues premium pass */
.page-leagues .league-home-hero-card,
.page-leagues .league-home-panel,
.page-leagues .league-rules-compact-card,
.page-leagues-standings .league-platform-toolbar,
.page-leagues-submit .league-platform-toolbar,
.page-leagues-standings .leagues-standings-card,
.page-leagues-standings .league-results-panel,
.page-leagues-submit .league-score-wizard {
  border-radius: 10px;
  box-shadow: none;
}

.league-season-status {
  display: grid;
  gap: 0.9rem;
  margin-top: 1rem;
}

.league-season-status-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.league-season-status-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #7a6247;
}

.league-season-status-value {
  font-size: 18px;
  font-weight: 500;
  color: var(--text);
}

.league-season-progress {
  display: grid;
  gap: 0.45rem;
}

.league-season-progress-track {
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: #ede7dd;
  overflow: hidden;
}

.league-season-progress-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #639922, #ba7517);
}

.league-season-progress-legend {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  font-size: 12px;
  color: var(--muted);
}

.league-home-stat-grid,
.league-division-grid {
  display: grid;
  gap: 16px;
}

.league-home-stat-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1rem;
}

.league-home-stat-card,
.league-division-card {
  display: grid;
  gap: 0.35rem;
  padding: 20px;
  border: 1px solid #e6e2da;
  border-radius: 10px;
  background: #ffffff;
  color: var(--text);
  text-decoration: none;
}

.league-home-stat-card span,
.league-division-type {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #8e5626;
}

.league-home-stat-card strong,
.league-division-card strong {
  font-size: 20px;
  font-weight: 500;
  line-height: 1.25;
}

.league-home-stat-card small,
.league-division-card span:last-child {
  font-size: 15px;
  line-height: 1.6;
  color: var(--muted);
}

.league-division-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1rem;
}

.league-division-card[data-league-theme="mens-singles-i"]   { border-top: 4px solid #02758b; }
.league-division-card[data-league-theme="mens-singles-ii"]  { border-top: 4px solid #0f6f84; }
.league-division-card[data-league-theme="mens-singles-iii"] { border-top: 4px solid #1a5f9a; }
.league-division-card[data-league-theme="mens-singles-iv"]  { border-top: 4px solid #b84a62; }
.league-division-card[data-league-theme="mens-doubles"]     { border-top: 4px solid #ff8600; }
.league-division-card[data-league-theme="womens-singles-i"] { border-top: 4px solid #5ea84c; }
.league-division-card[data-league-theme="womens-doubles-ii"]{ border-top: 4px solid #d79a00; }

.league-division-card[data-league-theme="mens-singles-i"]   .league-division-type { color: #02758b; }
.league-division-card[data-league-theme="mens-singles-ii"]  .league-division-type { color: #0f6f84; }
.league-division-card[data-league-theme="mens-singles-iii"] .league-division-type { color: #133f6b; }
.league-division-card[data-league-theme="mens-singles-iv"]  .league-division-type { color: #7a2c3f; }
.league-division-card[data-league-theme="mens-doubles"]     .league-division-type { color: #e07500; }
.league-division-card[data-league-theme="womens-singles-i"] .league-division-type { color: #3e8f2e; }
.league-division-card[data-league-theme="womens-doubles-ii"].league-division-type { color: #b07f00; }

.league-home-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.league-home-action-card {
  display: grid;
  gap: 0.35rem;
  padding: 20px;
  border: 1px solid #e6e2da;
  border-radius: 10px;
  background: #ffffff;
  color: var(--text);
  text-decoration: none;
}

.league-home-action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(2, 117, 139, 0.10);
  color: #02758b;
  margin-bottom: 4px;
}

.league-home-action-card strong {
  font-size: 20px;
  font-weight: 500;
}

.league-home-action-card span:last-child {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.6;
}

.league-rules-stack {
  display: grid;
  gap: 12px;
  margin-top: 1rem;
  list-style: none;
  padding-left: 0;
}

.league-rule-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  padding: 18px 20px;
  border: 1px solid #e6e2da;
  border-radius: 10px;
  background: #ffffff;
}

.league-rule-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(2, 117, 139, 0.10);
  color: #02758b;
  font-size: 15px;
  font-weight: 700;
}

.league-rule-body h3 {
  margin-bottom: 0.35rem;
}

.league-division-pills-wrap {
  margin-bottom: 1rem;
}

.league-division-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.page-leagues-standings .standings-rank,
.page-leagues-admin .standings-rank {
  min-width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 14px;
  background: #edf1ee;
  color: var(--text);
}

.standings-rank.is-first {
  background: #e24b4a;
  color: #fff;
}

.standings-rank.is-second {
  background: #b7b7b7;
  color: #fff;
}

.standings-rank.is-third {
  background: #ef9f27;
  color: #fff;
}

.standings-team-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.standings-history {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
}

.standings-history-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #d9ddd7;
}

.standings-history-dot.is-win {
  background: #639922;
}

.standings-history-dot.is-loss {
  background: #e24b4a;
}

.standings-history-dot.is-empty {
  background: #e5e1d8;
}

.standings-team-badge,
.playoff-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(99, 153, 34, 0.12);
  color: #639922;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.standings-table tbody tr.is-playoff-cutoff > * {
  border-bottom: 2px dashed rgba(99, 153, 34, 0.55) !important;
}

.page-leagues-standings .league-platform-grid {
  grid-template-columns: 1fr;
}

.page-leagues-standings .league-results-panel-below {
  margin-top: 16px;
  border: 1px solid #e6e2da;
  background: #fff;
}

.page-leagues-standings .league-result-item {
  border: 1px solid #e6e2da;
  border-radius: 10px;
  background: #fff;
}

.page-leagues-submit .league-stepper {
  grid-template-columns: minmax(0, 1fr) 72px minmax(0, 1fr) 72px minmax(0, 1fr);
  align-items: center;
}

.page-leagues-submit .league-vs-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 0.7rem;
  align-items: center;
  margin-top: 0.95rem;
  padding: 0.9rem;
  border-radius: 14px;
  background: rgba(var(--league-accent-rgb), 0.06);
  border: 1px solid rgba(var(--league-accent-rgb), 0.12);
}

.page-leagues-submit .league-vs-preview-player,
.page-leagues-submit .league-vs-preview-sep {
  text-align: center;
  font-weight: 700;
  color: #174c57;
}

.page-leagues-submit .league-vs-preview-sep {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.84);
}

.league-stepper-line {
  position: relative;
  display: block;
  height: 4px;
  border-radius: 999px;
  background: #e5e1d8;
  overflow: hidden;
}

.league-stepper-line-fill {
  display: block;
  height: 100%;
  width: 0%;
  background: var(--text);
  transition: width 220ms ease;
}

.page-leagues-submit .league-score-form[data-submit-step="2"] .league-stepper-line:first-of-type .league-stepper-line-fill,
.page-leagues-submit .league-score-form[data-submit-step="3"] .league-stepper-line:first-of-type .league-stepper-line-fill {
  width: 100%;
}

.page-leagues-submit .league-score-form[data-submit-step="3"] .league-stepper-line:last-of-type .league-stepper-line-fill {
  width: 100%;
}

.page-leagues-submit .league-score-footnote-strong {
  margin-bottom: 0.72rem;
  font-weight: 700;
  color: #184d58;
}

.page-leagues-submit .league-winner-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.page-leagues-submit .league-winner-choice span {
  min-height: 64px;
  font-size: 18px;
  padding: 16px;
  border-radius: 10px;
}

.page-leagues-submit .league-set-input-pair input,
.page-leagues-submit .league-set-input-pair-tb input {
  min-height: 52px;
  font-size: 22px;
  font-weight: 500;
  text-align: center;
}

.page-leagues-submit .league-success-card {
  border: 1px solid rgba(99, 153, 34, 0.28);
  background: linear-gradient(180deg, rgba(99, 153, 34, 0.1), rgba(255,255,255,0.98));
  border-radius: 18px;
  padding: 1.2rem;
}

.page-leagues-submit .league-success-card::before {
  content: "✓";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: #639922;
  color: #fff;
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 12px;
}

@media (max-width: 860px) {
  .league-season-bar,
  .page-leagues-standings .league-platform-toolbar-head,
  .page-leagues-submit .league-platform-toolbar-head {
    flex-direction: column;
    align-items: stretch;
  }

  .league-season-pills {
    justify-content: flex-start;
  }

  .league-home-stat-grid,
  .league-home-actions,
  .league-division-grid {
    grid-template-columns: 1fr;
  }

  .page-leagues-submit .league-stepper {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .league-stepper-line {
    display: none;
  }

  .page-leagues-submit .league-vs-preview {
    grid-template-columns: 1fr;
  }
}

/* 2026-04 homepage showcase rebuild */
.page-home .home-showcase-hero {
  position: relative;
  overflow: hidden;
  padding: 96px 0 88px;
  background:
    radial-gradient(ellipse at 20% 55%, rgba(99, 153, 34, 0.22), transparent 52%),
    radial-gradient(ellipse at 80% 25%, rgba(2, 117, 139, 0.12), transparent 44%),
    linear-gradient(175deg, rgba(30, 64, 46, 0.99), rgba(18, 44, 30, 0.99));
}

/* Fine court-grid texture */
.page-home .home-showcase-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px);
  background-size: 80px 80px, 80px 80px, 20px 20px, 20px 20px;
  pointer-events: none;
}

/* Soft spotlight behind text */
.page-home .home-showcase-hero::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(1000px, 92vw);
  height: min(520px, 60vw);
  transform: translate(-50%, -50%);
  border-radius: 999px;
  background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.07), transparent 68%);
  pointer-events: none;
}

/* Court-line SVG layer — faint baseline / service-line geometry */
.home-showcase-hero-court {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  opacity: 0.055;
}

/* 2026-04 leagues public shell refinement */
.page-leagues .league-home-shell-dashboard {
  grid-template-columns: minmax(0, 1fr);
  max-width: 1120px;
  margin: 0 auto;
}

.page-leagues .league-home-dashboard-card {
  display: grid;
  gap: 1rem;
  padding: 1.2rem 1.25rem 1.3rem;
}

.page-leagues .league-season-progress-legend {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-leagues .league-home-dashboard-grid {
  display: grid;
  gap: 1rem;
}

.page-leagues .league-home-dashboard-section {
  display: grid;
  gap: 0.95rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(var(--league-accent-rgb), 0.12);
}

.page-leagues .league-home-dashboard-section:first-child {
  padding-top: 0.2rem;
}

.page-leagues .league-home-section-head {
  margin-top: 0;
}

.page-leagues .league-home-section-head h2 {
  font-size: clamp(1.22rem, 1.8vw, 1.55rem);
}

.page-leagues .league-home-actions,
.page-leagues .league-division-grid,
.page-leagues .league-home-stat-grid {
  margin-top: 0;
}

.page-leagues .league-home-action-card,
.page-leagues .league-division-card,
.page-leagues .league-home-stat-card {
  position: relative;
  overflow: hidden;
}

.page-leagues .league-home-action-card::after,
.page-leagues .league-division-card::after,
.page-leagues .league-home-stat-card::after {
  content: "";
  position: absolute;
  inset: auto -20% -45% auto;
  width: 8rem;
  height: 8rem;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(var(--league-accent-rgb), 0.08), transparent 68%);
  pointer-events: none;
}

.page-leagues .league-home-action-card:hover,
.page-leagues .league-home-action-card:focus-visible,
.page-leagues .league-division-card:hover,
.page-leagues .league-division-card:focus-visible {
  transform: translateY(-1px);
  border-color: var(--league-panel-border-strong);
  box-shadow: 0 14px 26px rgba(var(--league-accent-rgb), 0.12);
}

.league-division-desc {
  font-size: 15px;
  line-height: 1.6;
  color: var(--muted);
}

.league-division-arrow {
  display: inline-flex;
  align-items: center;
  margin-top: 0.35rem;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--league-accent-text);
}

.page-leagues .league-home-stat-card strong {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text);
}

.page-leagues .league-home-stat-card span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #02758b;
}

.page-leagues .league-rule-card {
  grid-template-columns: 44px minmax(0, 1fr);
  padding: 16px 18px;
  gap: 14px;
  align-items: center;
}

.page-leagues .league-rule-number {
  width: 44px;
  height: 44px;
  font-size: 14px;
  font-weight: 700;
}

.page-leagues-standings .league-platform-toolbar,
.page-leagues-submit .league-platform-toolbar {
  display: grid;
  gap: 1rem;
}

.page-leagues-standings .league-platform-toolbar-head,
.page-leagues-submit .league-platform-toolbar-head {
  align-items: end;
}

.page-leagues-standings .league-platform-actions,
.page-leagues-submit .league-platform-actions {
  justify-content: flex-start;
}

.page-leagues-standings .league-status-strip,
.page-leagues-submit .league-status-strip {
  border-top: 1px solid rgba(var(--league-accent-rgb), 0.12);
  padding-top: 0.9rem;
}

.page-leagues-standings .league-platform-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
}

.page-leagues-standings .league-results-panel {
  position: static;
  top: auto;
}

.page-leagues-standings .leagues-standings-card-platform,
.page-leagues-standings .leagues-results-card-platform {
  padding: 1.05rem;
}

.page-leagues-standings .standings-table thead th {
  padding: 0 10px 12px;
  font-size: 10px;
  letter-spacing: 0.08em;
}

.page-leagues-standings .standings-table td,
.page-leagues-standings .standings-table th[scope="row"] {
  padding: 14px 10px;
}

.page-leagues-standings .league-results-head-standings {
  margin-bottom: 0.5rem;
}

.page-leagues-submit .league-score-wizard {
  gap: 1.1rem;
  padding: 1.05rem;
}

.page-leagues-submit .league-stepper {
  grid-template-columns: auto minmax(56px, 1fr) auto minmax(56px, 1fr) auto;
  gap: 0.7rem;
  align-items: center;
}

.page-leagues-submit .league-stepper-item {
  flex-direction: column;
  justify-content: flex-start;
  min-height: auto;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}

.page-leagues-submit .league-stepper-item:hover,
.page-leagues-submit .league-stepper-item:focus-visible {
  transform: none;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

.page-leagues-submit .league-stepper-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #5a747b;
}

.page-leagues-submit .league-stepper-item.is-active .league-stepper-label,
.page-leagues-submit .league-stepper-item.is-complete .league-stepper-label {
  color: var(--league-accent-text);
}

.page-leagues-submit .league-stepper-count {
  width: 2rem;
  height: 2rem;
}

.page-leagues-submit .league-entry-block {
  padding: 1rem;
  border: 1px solid rgba(var(--league-accent-rgb), 0.14);
  border-radius: 18px;
}

.page-leagues-submit .league-vs-preview,
.page-leagues-submit .league-matchup-summary {
  border-radius: 16px;
}

.page-leagues-submit .league-winner-choice span {
  min-height: 68px;
  font-size: 19px;
}

.page-leagues-submit .league-success-card {
  display: grid;
  gap: 0.75rem;
}

.page-leagues-admin .league-admin-gate {
  max-width: 720px;
  margin: 0 auto;
}

@media (max-width: 860px) {
  .page-leagues .league-home-dashboard-grid {
    gap: 0.9rem;
  }

  .page-leagues-submit .league-stepper {
    grid-template-columns: 1fr;
  }

  .page-leagues-submit .league-stepper-item {
    flex-direction: row;
    justify-content: flex-start;
    gap: 0.7rem;
  }

  .page-leagues-submit .league-stepper-label {
    font-size: 11px;
  }
}

.page-home .home-showcase-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 760px;
  text-align: center;
}

.page-home .home-showcase-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 24px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.page-home .home-showcase-kicker::before,
.page-home .home-showcase-kicker::after {
  content: "";
  width: 28px;
  height: 1px;
  background: rgba(255, 255, 255, 0.38);
}

.page-home .home-showcase-hero h1 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(2.8rem, 6vw, 4.9rem);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -0.04em;
}

.page-home .home-showcase-subhead {
  max-width: 34rem;
  margin: 24px auto 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 17px;
  line-height: 1.72;
}

.page-home .home-showcase-hero .hero-actions {
  justify-content: center;
  margin-top: 34px;
}

.page-home .home-showcase-hero .btn-secondary,
.page-home .home-showcase-cta .btn-secondary {
  border-color: rgba(255, 255, 255, 0.24);
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.page-home .home-showcase-hero .btn-secondary:hover,
.page-home .home-showcase-hero .btn-secondary:focus-visible,
.page-home .home-showcase-cta .btn-secondary:hover,
.page-home .home-showcase-cta .btn-secondary:focus-visible {
  background: rgba(255, 255, 255, 0.16);
  color: #ffffff;
}

.page-home .credential-strip {
  overflow: hidden;
  padding: 16px 0;
  background: #1a3a2a;
  color: #ffffff;
}

.page-home .credential-track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: home-credential-scroll 32s linear infinite;
}

.page-home .credential-item {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  padding: 0 28px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.page-home .credential-dot {
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.4);
}

@keyframes home-credential-scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

.page-home .home-showcase-programs {
  background: #ffffff;
}

.page-home .home-showcase-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  margin-bottom: 48px;
}

.page-home .home-showcase-heading > div > p:last-child {
  max-width: 580px;
}

.page-home .home-showcase-program-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.page-home .home-showcase-program-card {
  display: grid;
  grid-template-rows: auto 1fr;
  background: #ffffff;
  border: 1px solid var(--line);
  border-top-width: 4px;
  border-radius: 10px;
  overflow: hidden;
}

.page-home .home-showcase-program-card-red {
  border-top-color: var(--program-red);
}

.page-home .home-showcase-program-card-orange {
  border-top-color: var(--program-orange);
}

.page-home .home-showcase-program-card-green {
  border-top-color: var(--program-green);
}

.page-home .home-showcase-program-card-yellow {
  border-top-color: var(--program-yellow);
}

.page-home .home-showcase-program-card-highperf {
  border-top-color: var(--program-highperf);
}

.page-home .home-showcase-program-top,
.page-home .home-showcase-program-bottom {
  padding: 22px;
}

.page-home .home-showcase-program-top {
  border-bottom: 1px solid var(--line);
}

.page-home .home-showcase-program-ball {
  display: inline-flex;
  width: 36px;
  height: 36px;
  margin-bottom: 14px;
  border-radius: 999px;
}

.page-home .home-showcase-program-card-red .home-showcase-program-ball {
  background: rgba(226, 75, 74, 0.16);
}

.page-home .home-showcase-program-card-orange .home-showcase-program-ball {
  background: rgba(239, 159, 39, 0.16);
}

.page-home .home-showcase-program-card-green .home-showcase-program-ball {
  background: rgba(99, 153, 34, 0.16);
}

.page-home .home-showcase-program-card-yellow .home-showcase-program-ball {
  background: rgba(186, 117, 23, 0.16);
}

.page-home .home-showcase-program-card-highperf .home-showcase-program-ball {
  background: rgba(24, 95, 165, 0.16);
}

.page-home .home-showcase-program-age {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.page-home .home-showcase-program-card-red .home-showcase-program-age,
.page-home .home-showcase-program-card-red .home-showcase-program-link {
  color: var(--program-red);
}

.page-home .home-showcase-program-card-orange .home-showcase-program-age,
.page-home .home-showcase-program-card-orange .home-showcase-program-link {
  color: var(--program-orange);
}

.page-home .home-showcase-program-card-green .home-showcase-program-age,
.page-home .home-showcase-program-card-green .home-showcase-program-link {
  color: var(--program-green);
}

.page-home .home-showcase-program-card-yellow .home-showcase-program-age,
.page-home .home-showcase-program-card-yellow .home-showcase-program-link {
  color: var(--program-yellow);
}

.page-home .home-showcase-program-card-highperf .home-showcase-program-age,
.page-home .home-showcase-program-card-highperf .home-showcase-program-link {
  color: var(--program-highperf);
}

.page-home .home-showcase-program-top h3 {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
}

.page-home .home-showcase-program-top p:last-child,
.page-home .home-showcase-program-bottom p,
.page-home .home-showcase-program-bottom span {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}

.page-home .home-showcase-program-schedule {
  display: grid;
  gap: 5px;
  margin-bottom: 16px;
}

.page-home .home-showcase-program-price {
  margin: 0 0 14px;
  color: var(--text);
  font-size: 13px;
  font-weight: 500;
}

.page-home .home-showcase-program-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  width: 100%;
  padding: 12px 18px;
  border: 1.5px solid currentColor;
  border-radius: 6px;
  background: transparent;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}

.page-home .home-showcase-program-card-red .home-showcase-program-link:hover,
.page-home .home-showcase-program-card-red .home-showcase-program-link:focus-visible {
  background: var(--program-red);
  color: #ffffff;
}

.page-home .home-showcase-program-card-orange .home-showcase-program-link:hover,
.page-home .home-showcase-program-card-orange .home-showcase-program-link:focus-visible {
  background: var(--program-orange);
  color: #ffffff;
}

.page-home .home-showcase-program-card-green .home-showcase-program-link:hover,
.page-home .home-showcase-program-card-green .home-showcase-program-link:focus-visible {
  background: var(--program-green);
  color: #ffffff;
}

.page-home .home-showcase-program-card-yellow .home-showcase-program-link:hover,
.page-home .home-showcase-program-card-yellow .home-showcase-program-link:focus-visible {
  background: var(--program-yellow);
  color: #ffffff;
}

.page-home .home-showcase-program-card-highperf .home-showcase-program-link:hover,
.page-home .home-showcase-program-card-highperf .home-showcase-program-link:focus-visible {
  background: var(--program-highperf);
  color: #ffffff;
}

.page-home .home-showcase-stats-bar {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--bg);
}

.page-home .home-showcase-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.page-home .home-showcase-stat {
  padding: 40px 24px;
  border-right: 1px solid var(--line);
  text-align: center;
}

.page-home .home-showcase-stat:last-child {
  border-right: none;
}

.page-home .home-showcase-stat strong {
  display: block;
  margin-bottom: 8px;
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(2.1rem, 4vw, 3.1rem);
  font-weight: 600;
  line-height: 1;
}

.page-home .home-showcase-stat span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.55;
}

.page-home .home-showcase-director {
  background: #1a3a2a;
}

.page-home .home-showcase-director-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.92fr) minmax(0, 1.08fr);
  gap: 64px;
  align-items: center;
}

.page-home .home-showcase-director-photo-wrap {
  position: relative;
  max-width: 420px;
}

.page-home .home-showcase-director-photo {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
}

.page-home .home-showcase-director-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.page-home .home-showcase-director-badge {
  position: absolute;
  right: -16px;
  bottom: -16px;
  display: grid;
  gap: 4px;
  padding: 14px 18px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
  background: #ffffff;
}

.page-home .home-showcase-director-badge strong {
  color: var(--text);
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 600;
  line-height: 1;
}

.page-home .home-showcase-director-badge span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.page-home .home-showcase-director-copy .eyebrow,
.page-home .home-showcase-director-copy h2,
.page-home .home-showcase-director-copy p,
.page-home .home-showcase-award {
  color: #ffffff;
}

.page-home .home-showcase-director-copy .eyebrow {
  color: rgba(255, 255, 255, 0.66);
}

.page-home .home-showcase-director-copy h2 {
  margin: 0 0 16px;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  font-weight: 600;
  line-height: 1.15;
}

.page-home .home-showcase-director-copy > p:last-of-type {
  margin: 0 0 28px;
  color: rgba(255, 255, 255, 0.82);
}

.page-home .home-showcase-awards {
  display: grid;
  gap: 10px;
  margin-bottom: 30px;
}

.page-home .home-showcase-award {
  display: flex;
  align-items: center;
  gap: 12px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.55;
}

.page-home .home-showcase-award::before {
  content: "";
  width: 18px;
  height: 18px;
  border-radius: 999px;
  flex: 0 0 auto;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 0 0 5px rgba(255, 255, 255, 0.78);
}

.page-home .home-showcase-director .btn-secondary {
  background: #ffffff;
  border-color: #ffffff;
  color: var(--text);
}

.page-home .home-showcase-director .btn-secondary:hover,
.page-home .home-showcase-director .btn-secondary:focus-visible {
  background: rgba(255, 255, 255, 0.92);
  color: var(--text);
}

.page-home .home-showcase-cta {
  padding: 72px 0;
  background: linear-gradient(180deg, rgba(26, 58, 42, 0.96), rgba(24, 52, 37, 0.98));
}

.page-home .home-showcase-cta-inner {
  max-width: 720px;
  text-align: center;
}

.page-home .home-showcase-cta .eyebrow,
.page-home .home-showcase-cta h2,
.page-home .home-showcase-cta p {
  color: #ffffff;
}

.page-home .home-showcase-cta .eyebrow {
  color: rgba(255, 255, 255, 0.72);
}

.page-home .home-showcase-cta h2 {
  margin: 0;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 600;
  line-height: 1.1;
}

.page-home .home-showcase-cta p:last-of-type {
  max-width: 34rem;
  margin: 16px auto 0;
  color: rgba(255, 255, 255, 0.82);
}

.page-home .home-showcase-cta .hero-actions {
  justify-content: center;
  margin-top: 32px;
}

@media (max-width: 1040px) {
  .page-home .home-showcase-program-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-home .home-showcase-director-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .page-home .home-showcase-director-photo-wrap {
    max-width: 360px;
  }
}

@media (max-width: 760px) {
  .page-home .home-showcase-hero {
    padding: 72px 0 64px;
  }

  .page-home .home-showcase-heading {
    grid-template-columns: 1fr;
    margin-bottom: 32px;
  }

  .page-home .home-showcase-program-grid,
  .page-home .home-showcase-stats-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-showcase-stat {
    border-right: none;
    border-bottom: 1px solid var(--line);
  }

  .page-home .home-showcase-stat:last-child {
    border-bottom: none;
  }

  .page-home .credential-strip {
    padding: 14px 0;
  }

  .page-home .credential-item {
    padding: 0 18px;
    font-size: 12px;
  }
}

@media (max-width: 640px) {
  .page-home .home-showcase-hero h1 {
    font-size: clamp(2.3rem, 11vw, 3.5rem);
  }

  .page-home .home-showcase-subhead {
    font-size: 16px;
  }

  .page-home .home-showcase-hero .hero-actions,
  .page-home .home-showcase-cta .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .page-home .home-showcase-director-badge {
    right: 12px;
    bottom: 12px;
  }
}

/* 2026-04 homepage mock alignment */
.page-home {
  --font-home-serif: "DM Serif Display", Georgia, serif;
}

.page-home .site-header {
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.page-home .nav-register {
  min-height: 44px;
  padding-inline: 22px;
  border-radius: 999px;
}

.page-home .home-showcase-hero {
  padding: 112px 0 96px;
}

.page-home .home-showcase-hero h1,
.page-home .home-showcase-heading h2,
.page-home .home-showcase-director-copy h2,
.page-home .home-showcase-cta h2,
.page-home .home-showcase-stat strong {
  font-family: var(--font-home-serif);
  font-weight: 400;
  letter-spacing: -0.02em;
}

.page-home .home-showcase-hero h1 em {
  font-style: italic;
  color: rgba(255, 255, 255, 0.72);
}

.page-home .home-showcase-subhead {
  max-width: 36rem;
}

.page-home .home-showcase-heading {
  margin-bottom: 40px;
}

.page-home .home-showcase-program-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.page-home .home-showcase-program-card {
  border-color: rgba(26, 58, 42, 0.12);
  box-shadow: 0 14px 34px rgba(26, 58, 42, 0.05);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.page-home .home-showcase-program-card:hover,
.page-home .home-showcase-program-card:focus-within {
  transform: translateY(-3px);
  box-shadow: 0 18px 38px rgba(26, 58, 42, 0.09);
}

.page-home .home-showcase-program-top,
.page-home .home-showcase-program-bottom {
  padding: 24px;
}

.page-home .home-showcase-program-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-bottom: 16px;
  border-radius: 999px;
}

.page-home .home-showcase-program-icon svg {
  width: 24px;
  height: 24px;
}

.page-home .home-showcase-program-card-red .home-showcase-program-icon,
.page-home .home-showcase-program-card-red .home-showcase-program-age,
.page-home .home-showcase-program-card-red .home-showcase-program-link {
  color: var(--program-red);
}

.page-home .home-showcase-program-card-red .home-showcase-program-icon {
  background: rgba(226, 75, 74, 0.16);
}

.page-home .home-showcase-program-card-orange .home-showcase-program-icon,
.page-home .home-showcase-program-card-orange .home-showcase-program-age,
.page-home .home-showcase-program-card-orange .home-showcase-program-link {
  color: var(--program-orange);
}

.page-home .home-showcase-program-card-orange .home-showcase-program-icon {
  background: rgba(239, 159, 39, 0.16);
}

.page-home .home-showcase-program-card-green .home-showcase-program-icon,
.page-home .home-showcase-program-card-green .home-showcase-program-age,
.page-home .home-showcase-program-card-green .home-showcase-program-link {
  color: var(--program-green);
}

.page-home .home-showcase-program-card-green .home-showcase-program-icon {
  background: rgba(99, 153, 34, 0.16);
}

.page-home .home-showcase-program-card-yellow .home-showcase-program-icon,
.page-home .home-showcase-program-card-yellow .home-showcase-program-age,
.page-home .home-showcase-program-card-yellow .home-showcase-program-link {
  color: var(--program-yellow);
}

.page-home .home-showcase-program-card-yellow .home-showcase-program-icon {
  background: rgba(186, 117, 23, 0.16);
}

.page-home .home-showcase-program-card-highperf .home-showcase-program-icon,
.page-home .home-showcase-program-card-highperf .home-showcase-program-age,
.page-home .home-showcase-program-card-highperf .home-showcase-program-link {
  color: var(--program-highperf);
}

.page-home .home-showcase-program-card-highperf .home-showcase-program-icon {
  background: rgba(24, 95, 165, 0.16);
}

.page-home .home-showcase-program-card-quiz {
  border-top-color: var(--text);
  background: linear-gradient(180deg, rgba(26, 58, 42, 0.03), #ffffff);
}

.page-home .home-showcase-program-card-quiz .home-showcase-program-icon,
.page-home .home-showcase-program-card-quiz .home-showcase-program-age {
  color: var(--text);
}

.page-home .home-showcase-program-card-quiz .home-showcase-program-icon {
  background: rgba(26, 58, 42, 0.1);
}

.page-home .home-showcase-program-card-quiz .home-showcase-program-link {
  background: var(--text);
  border-color: var(--text);
  color: #ffffff;
}

.page-home .home-showcase-program-card-quiz .home-showcase-program-link:hover,
.page-home .home-showcase-program-card-quiz .home-showcase-program-link:focus-visible {
  background: #28563d;
  border-color: #28563d;
  color: #ffffff;
}

.page-home .home-showcase-program-top h3 {
  font-family: var(--font-home-serif);
  font-size: 1.65rem;
  font-weight: 400;
}

.page-home .home-showcase-program-link {
  min-height: 46px;
}

.page-home .home-showcase-stats-bar {
  background: #faf8f4;
}

.page-home .home-showcase-director {
  padding-block: 88px;
}

.page-home .home-showcase-director-actions {
  justify-content: flex-start;
}

.page-home .home-showcase-testimonials {
  background: #ffffff;
}

.page-home .home-testimonial-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.page-home .home-testimonial-card {
  padding: 28px 24px;
  border: 1px solid rgba(26, 58, 42, 0.12);
  border-radius: 14px;
  background: #f8f6f1;
}

.page-home .home-testimonial-quote {
  display: inline-block;
  margin-bottom: 12px;
  color: rgba(26, 58, 42, 0.18);
  font-family: var(--font-home-serif);
  font-size: 3.5rem;
  line-height: 0.8;
}

.page-home .home-testimonial-card p {
  margin: 0 0 18px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--text);
}

.page-home .home-testimonial-meta {
  display: grid;
  gap: 4px;
}

.page-home .home-testimonial-meta strong {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}

.page-home .home-testimonial-meta span {
  color: var(--muted);
  font-size: 12px;
}

.page-home .home-showcase-cta {
  padding: 80px 0;
}

.page-home .home-footer {
  padding: 56px 0 32px;
  background: #1a3a2a;
}

.page-home .home-footer-grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 40px;
}

.page-home .home-footer .footer-brand {
  margin-bottom: 14px;
}

.page-home .home-footer-copy {
  max-width: 280px;
  margin: 0 0 18px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 14px;
  line-height: 1.7;
}

.page-home .home-footer-contact-list,
.page-home .home-footer-links {
  display: grid;
  gap: 10px;
}

.page-home .home-footer-contact-list a,
.page-home .home-footer-links a,
.page-home .home-footer-bottom p,
.page-home .home-footer-bottom-links a {
  color: rgba(255, 255, 255, 0.68);
  text-decoration: none;
  transition: color 160ms ease;
}

.page-home .home-footer-contact-list a:hover,
.page-home .home-footer-contact-list a:focus-visible,
.page-home .home-footer-links a:hover,
.page-home .home-footer-links a:focus-visible,
.page-home .home-footer-bottom-links a:hover,
.page-home .home-footer-bottom-links a:focus-visible {
  color: #ffffff;
}

.page-home .home-footer-title {
  margin: 0 0 16px;
  color: rgba(255, 255, 255, 0.48);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.page-home .home-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.page-home .home-footer-bottom-links {
  display: flex;
  align-items: center;
  gap: 18px;
}

.page-home .mobile-cta-bar.is-single {
  grid-template-columns: minmax(0, 1fr);
}

.page-home .mobile-cta-bar.is-single .btn {
  min-height: 54px;
  border-radius: 999px;
}

@media (max-width: 1040px) {
  .page-home .home-showcase-program-grid,
  .page-home .home-testimonial-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-home .home-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .page-home .home-showcase-hero {
    padding: 84px 0 72px;
  }

  .page-home .home-showcase-heading {
    gap: 14px;
  }

  .page-home .home-showcase-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-home .home-showcase-stat:nth-child(2n) {
    border-right: none;
  }

  .page-home .home-showcase-stat:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }

  .page-home .home-showcase-director-actions,
  .page-home .home-showcase-cta .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }
}

@media (max-width: 640px) {
  .page-home .home-showcase-hero-inner {
    text-align: left;
  }

  .page-home .home-showcase-kicker {
    justify-content: flex-start;
  }

  .page-home .home-showcase-subhead {
    margin-inline: 0;
  }

  .page-home .home-showcase-program-grid,
  .page-home .home-testimonial-grid,
  .page-home .home-footer-grid,
  .page-home .home-showcase-stats-grid {
    grid-template-columns: 1fr;
  }

  .page-home .home-showcase-stat {
    border-right: none;
    border-bottom: 1px solid var(--line);
  }

  .page-home .home-showcase-stat:last-child {
    border-bottom: none;
  }

  .page-home .home-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* 2026-04 unification pass */
.page-home {
  --font-home-serif: var(--font-display);
}

.site-footer-rich {
  padding: 56px 0 32px;
  background: #1a3a2a;
  border-top: none;
}

.site-footer-rich .home-footer-grid {
  display: grid;
  grid-template-columns: 1.8fr 1fr 1fr 1fr;
  gap: 40px;
  margin-bottom: 40px;
  align-items: start;
}

.site-footer-rich .footer-brand {
  margin-bottom: 14px;
  text-decoration: none;
}

.site-footer-rich .home-footer-brand-col {
  max-width: 320px;
}

.site-footer-rich .home-footer-copy {
  max-width: 280px;
  margin: 0 0 18px;
  color: rgba(255, 255, 255, 0.68);
  font-size: 14px;
  line-height: 1.7;
}

.site-footer-rich .home-footer-contact-list,
.site-footer-rich .home-footer-links {
  display: grid;
  gap: 10px;
}

.site-footer-rich .home-footer-contact-list a,
.site-footer-rich .home-footer-links a,
.site-footer-rich .home-footer-bottom p,
.site-footer-rich .home-footer-bottom-links a {
  color: rgba(255, 255, 255, 0.68);
  text-decoration: none;
  transition: color 160ms ease;
}

.site-footer-rich .home-footer-contact-list a:hover,
.site-footer-rich .home-footer-contact-list a:focus-visible,
.site-footer-rich .home-footer-links a:hover,
.site-footer-rich .home-footer-links a:focus-visible,
.site-footer-rich .home-footer-bottom-links a:hover,
.site-footer-rich .home-footer-bottom-links a:focus-visible {
  color: #ffffff;
}

.site-footer-rich .home-footer-title {
  margin: 0 0 16px;
  color: rgba(255, 255, 255, 0.48);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.site-footer-rich .home-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.site-footer-rich .home-footer-bottom-links {
  display: flex;
  align-items: center;
  gap: 18px;
}

.page-home .home-showcase-hero {
  padding: 104px 0 88px;
}

.page-home .home-showcase-heading {
  align-items: start;
  margin-bottom: 34px;
}

.page-home .home-showcase-heading > div > p:last-child {
  max-width: 620px;
}

.page-home .home-showcase-program-top h3,
.page-home .home-showcase-cta h2,
.page-home .home-showcase-director-copy h2,
.page-home .home-showcase-stat strong,
.page-home .home-showcase-hero h1 {
  font-family: var(--font-home-serif);
}

.home-enrollment-strip {
  padding: 16px 0;
  background: #1a3a2a;
  color: #ffffff;
}

.home-enrollment-strip-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 18px;
  align-items: center;
}

.home-enrollment-label {
  margin: 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
}

.home-enrollment-copy {
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  line-height: 1.5;
}

.home-enrollment-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background 160ms ease;
}

.home-enrollment-link:hover,
.home-enrollment-link:focus-visible {
  background: rgba(255, 255, 255, 0.18);
  color: #ffffff;
}

.page-calendar .calendar-quick-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  max-width: 980px;
}

.page-calendar .calendar-jump-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid rgba(26, 58, 42, 0.14);
  border-radius: 999px;
  background: #ffffff;
  color: var(--text);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.page-calendar .calendar-jump-pill:hover,
.page-calendar .calendar-jump-pill:focus-visible {
  transform: translateY(-1px);
  background: #f0f4f2;
  color: var(--text);
}

.page-calendar .calendar-jump-pill.is-red {
  border-color: rgba(226, 75, 74, 0.28);
}

.page-calendar .calendar-jump-pill.is-orange {
  border-color: rgba(239, 159, 39, 0.3);
}

.page-calendar .calendar-jump-pill.is-green {
  border-color: rgba(99, 153, 34, 0.28);
}

.page-calendar .calendar-jump-pill.is-gold {
  border-color: rgba(186, 117, 23, 0.28);
}

.page-calendar .calendar-jump-pill.is-blue {
  border-color: rgba(24, 95, 165, 0.28);
}

.page-calendar .calendar-jump-pill-register {
  background: var(--text);
  border-color: var(--text);
  color: #ffffff;
}

.page-calendar .calendar-jump-pill-register:hover,
.page-calendar .calendar-jump-pill-register:focus-visible {
  background: #284739;
  border-color: #284739;
  color: #ffffff;
}

@media (max-width: 1040px) {
  .site-footer-rich .home-footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .page-calendar .calendar-mini-results-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .home-enrollment-strip-inner,
  .page-calendar .calendar-mini-results-head {
    grid-template-columns: 1fr;
    display: grid;
    align-items: start;
  }

  .page-calendar .calendar-mini-results-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .site-footer-rich .home-footer-grid {
    grid-template-columns: 1fr;
  }

  .site-footer-rich .home-footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* 2026-04 full-site design system */
:root {
  --bg: #f5f4f1;
  --surface: #ffffff;
  --text: #1a3a2a;
  --muted: #55665d;
  --teal: #185fa5;
  --orange: #ef9f27;
  --gold: #ba7517;
  --green: #639922;
  --line: #e6e2da;
  --radius: 10px;
  --shadow: none;
  --shadow-soft: none;
  --layout-max: 1120px;
  --prose-max: 640px;
}

body::before,
body::after,
.bg-orb {
  display: none !important;
}

h1 {
  font-size: clamp(40px, 5vw, 52px);
  font-weight: 600;
  line-height: 1.1;
}

h2 {
  font-size: clamp(28px, 3vw, 32px);
  font-weight: 500;
  line-height: 1.25;
}

h3 {
  font-size: clamp(18px, 1.8vw, 20px);
  font-weight: 500;
  line-height: 1.3;
}

p,
li,
label,
input,
select,
textarea {
  font-size: 16px;
}

p {
  line-height: 1.7;
  max-width: var(--prose-max);
}

.eyebrow,
.stage,
.home-showcase-program-age,
.home-footer-title,
.league-form-kicker,
.about-side-label,
.home-enrollment-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.section {
  padding-block: var(--section-gap-desktop);
}

.section.section-subpage-strip {
  padding-block: 24px;
}

.inner-hero {
  padding-top: 80px;
  padding-bottom: 32px;
}

.site-header {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: 1px solid #eeeeee;
  box-shadow: none;
}

.header-row {
  min-height: 60px;
}

.nav-register {
  min-height: 44px;
  padding-inline: 22px;
  border-radius: 999px;
  background: #1a3a2a;
  color: #ffffff;
}

.card,
.program-card,
.class-card,
.simple-shell,
.contact-form,
.league-home-hero-card,
.league-rules-compact-card,
.league-platform-toolbar,
.leagues-standings-card-platform,
.leagues-results-card-platform,
.league-score-wizard,
.league-admin-gate {
  border-radius: 10px;
  box-shadow: none !important;
}

.page-home {
  --font-home-serif: var(--font-display);
}

.page-home .site-header {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.page-home .home-showcase-hero {
  padding: 96px 0 80px;
  background: #1a3a2a;
}

.page-home .home-showcase-hero::after {
  display: none;
}

.page-home .home-showcase-hero::before {
  opacity: 0.18;
  background-size: 56px 56px;
}

.page-home .home-showcase-hero-inner {
  max-width: 820px;
}

.page-home .home-showcase-hero h1,
.page-home .home-showcase-heading h2,
.page-home .home-showcase-program-top h3,
.page-home .home-showcase-director-copy h2,
.page-home .home-showcase-cta h2 {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em;
}

.page-home .home-showcase-hero h1 em {
  color: rgba(255, 255, 255, 0.78);
  font-style: normal;
}

.page-home .home-showcase-subhead {
  max-width: 620px;
  margin-top: 20px;
  font-size: 16px;
  line-height: 1.7;
}

.page-home .home-showcase-program-card {
  box-shadow: none !important;
}

.page-home .home-showcase-program-card-quiz {
  background: #ffffff;
  border-top-color: var(--text);
}

.page-home .home-showcase-director {
  padding-block: 80px;
  background: #1a3a2a;
}

.page-home .home-showcase-cta {
  padding: 80px 0;
  background: #ffffff;
}

.page-home .home-showcase-cta-inner {
  max-width: 760px;
  text-align: left;
}

.page-home .home-showcase-cta .eyebrow,
.page-home .home-showcase-cta h2,
.page-home .home-showcase-cta p {
  color: var(--text);
}

.page-home .home-showcase-cta .hero-actions {
  justify-content: flex-start;
}

.page-home .home-showcase-cta .btn-secondary {
  border-color: var(--text);
  background: transparent;
  color: var(--text);
}

.page-home .home-showcase-cta .btn-secondary:hover,
.page-home .home-showcase-cta .btn-secondary:focus-visible {
  background: #f0f4f2;
  color: var(--text);
}

.page-leagues,
.page-leagues-standings,
.page-leagues-submit,
.page-leagues-admin {
  --league-accent: #1a3a2a;
  --league-accent-rgb: 26, 58, 42;
  --league-accent-soft-rgb: 240, 244, 242;
  --league-accent-text: #1a3a2a;
  --league-panel-shadow: none;
}

.site-context-badge-leagues {
  background: rgba(26, 58, 42, 0.08);
  border: 1px solid rgba(26, 58, 42, 0.12);
  color: var(--text);
}

.page-leagues .league-home-hero-card,
.page-leagues .league-rules-compact-card,
.page-leagues-standings .league-platform-toolbar,
.page-leagues-standings .leagues-standings-card-platform,
.page-leagues-standings .leagues-results-card-platform,
.page-leagues-submit .league-platform-toolbar,
.page-leagues-submit .league-score-wizard,
.page-leagues-admin .league-admin-gate,
.page-leagues-admin .league-admin-panel,
.page-leagues-admin .league-registration-pool-wrap {
  box-shadow: none !important;
}

.page-leagues .league-home-action-card,
.page-leagues .league-division-card,
.page-leagues .league-home-stat-card,
.page-leagues .league-rule-card,
.page-leagues-standings .league-result-item,
.page-leagues-submit .league-stepper-item,
.page-leagues-submit .league-entry-block,
.page-leagues-submit .league-matchup-summary-card,
.page-leagues-submit .league-success-card,
.league-status-item {
  box-shadow: none !important;
}

.page-leagues .league-home-action-card::after,
.page-leagues .league-division-card::after,
.page-leagues .league-home-stat-card::after,
.page-leagues .league-home-hero-card::after {
  display: none;
}

.page-leagues .league-division-card {
  border-top: 4px solid var(--league-accent) !important;
}

.page-calendar .calendar-mini-results {
  padding: 20px;
}

.page-about .about-side-note {
  align-self: start;
  display: grid;
  gap: 0.85rem;
}

.page-about .about-side-note .eyebrow {
  margin: 0;
}

.page-about .about-side-note h3 {
  margin: 0;
  max-width: none;
  font-family: var(--font-display);
  font-size: clamp(20px, 2vw, 24px);
  font-weight: 500;
  line-height: 1.25;
}

.page-about .about-highlight-list {
  margin-top: 0;
}

.page-calendar .calendar-quick-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  max-width: 980px;
}

.page-calendar .calendar-jump-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border: 1px solid rgba(26, 58, 42, 0.14);
  border-radius: 999px;
  background: #ffffff;
  color: var(--text);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease;
}

.page-calendar .calendar-jump-pill:hover,
.page-calendar .calendar-jump-pill:focus-visible {
  transform: translateY(-1px);
  background: #f0f4f2;
  color: var(--text);
}

.page-calendar .calendar-jump-pill.is-red {
  border-color: rgba(226, 75, 74, 0.28);
}

.page-calendar .calendar-jump-pill.is-orange {
  border-color: rgba(239, 159, 39, 0.3);
}

.page-calendar .calendar-jump-pill.is-green {
  border-color: rgba(99, 153, 34, 0.28);
}

.page-calendar .calendar-jump-pill.is-gold {
  border-color: rgba(186, 117, 23, 0.28);
}

.page-calendar .calendar-jump-pill.is-blue {
  border-color: rgba(24, 95, 165, 0.28);
}

.page-calendar .calendar-jump-pill-register {
  background: var(--text);
  border-color: var(--text);
  color: #ffffff;
}

.page-calendar .calendar-jump-pill-register:hover,
.page-calendar .calendar-jump-pill-register:focus-visible {
  background: #284739;
  border-color: #284739;
  color: #ffffff;
}

.page-calendar .calendar-class-card,
.page-calendar .calendar-class-card-wide {
  scroll-margin-top: 88px;
}

@media (max-width: 760px) {
  .section {
    padding-block: var(--section-gap-mobile);
  }

  .inner-hero {
    padding-top: 56px;
    padding-bottom: 24px;
  }

  .page-home .home-showcase-hero {
    padding: 80px 0 64px;
  }

  .page-home .home-showcase-cta {
    padding: 56px 0;
  }

  .page-calendar .calendar-quick-jump {
    gap: 0.6rem;
  }
}

/* ============================================================
   Mobile experience improvements — 2026-04
   ============================================================ */

/* 1. Prevent iOS auto-zoom: form inputs must be ≥ 16px on mobile
      (any inherited size < 16px causes Safari to zoom on focus)   */
@media (max-width: 760px) {
  .contact-form input,
  .contact-form select,
  .contact-form textarea {
    font-size: 16px;
    min-height: 48px;
  }

  .contact-form label {
    font-size: 15px;
  }
}

/* 2. Register strip: stack copy above button on phones */
@media (max-width: 640px) {
  .register-strip {
    grid-template-columns: 1fr;
  }

  .register-actions {
    width: 100%;
  }

  .register-actions .btn {
    width: 100%;
  }
}

/* 3. Footer grid: single column on small phones */
@media (max-width: 540px) {
  .footer-grid {
    grid-template-columns: 1fr;
    gap: 1.4rem 0;
  }
}

/* 4. Better tap targets for footer links (44px recommended min) */
@media (max-width: 760px) {
  .footer-links a,
  .footer-social a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
  }

  .footer-bottom {
    padding: 1rem 0 1.4rem;
  }
}

/* 5. Hero action buttons: full-width stack on phones
      (applies to all pages — home already had a narrower override) */
@media (max-width: 540px) {
  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .hero-actions .btn {
    width: 100%;
    text-align: center;
  }
}

/* 6. Nav: add stagger delay for the 8th item if ever present,
      and ensure all 7 current items animate cleanly */
@media (max-width: 760px) {
  .main-nav.open a:nth-child(8) {
    transition-delay: 210ms;
  }
}

/* 7. Subpage nav pills: allow wrap and touch-friendly sizing on phones */
@media (max-width: 540px) {
  .subpage-nav {
    flex-wrap: wrap;
    gap: 0.25rem;
    padding: 0.3rem;
  }

  .subpage-nav a {
    min-height: 40px;
    padding: 0.46rem 0.62rem;
    font-size: 0.82rem;
  }
}

/* 8. Section register strip: tighten padding on phones */
@media (max-width: 640px) {
  .section-register-strip {
    padding-top: 0;
  }

  .register-strip {
    padding: 1rem;
  }
}

/* 9. Inner-hero: tighten top padding on small phones so hero
      doesn't push content too far down */
@media (max-width: 480px) {
  .inner-hero {
    padding-top: 1.6rem;
    padding-bottom: 1rem;
  }

  .inner-copy {
    padding: 1rem;
  }
}

/* 10. Table scroll: ensure touch momentum and hint at overflow */
.table-scroll {
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
}

@media (max-width: 640px) {
  .table-scroll::after {
    content: "";
    display: block;
    min-width: 1px;
  }

  .pricing-total-table,
  .schedule-table {
    font-size: 0.8rem;
  }
}

/* 11. Home: stats bar — 2×2 grid on phones, full-width stat padding */
@media (max-width: 540px) {
  .page-home .home-showcase-stat {
    padding: 28px 16px;
  }
}

/* 12. Contact/updates proof pills: wrap cleanly on small screens */
@media (max-width: 540px) {
  .contact-proof-strip,
  .winter-proof-strip {
    flex-wrap: wrap;
    gap: 0.4rem;
  }

  .contact-proof-pill,
  .winter-proof-pill {
    font-size: 0.78rem;
    padding: 0.3rem 0.7rem;
  }
}

/* ============================================================
   REGISTRATION BALL ICONS
   ============================================================ */

.reg-ball-icon {
  display: block;
  width: 36px;
  height: 36px;
  margin-bottom: 10px;
  flex-shrink: 0;
}

.reg-ball-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.reg-ball-icon-red      { color: var(--program-red); }
.reg-ball-icon-orange   { color: var(--program-orange); }
.reg-ball-icon-green    { color: var(--program-green); }
.reg-ball-icon-yellow   { color: var(--program-yellow); }
.reg-ball-icon-highperf { color: var(--program-highperf); }

/* ============================================================
   LEAGUE RULES CALLOUT (register-league.html)
   ============================================================ */

.league-rules-callout {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid rgba(2, 117, 139, 0.28);
  border-radius: 10px;
  background: rgba(2, 117, 139, 0.05);
  text-decoration: none;
  color: var(--text);
  transition: background 0.18s, border-color 0.18s;
  margin-top: 1.25rem;
}

.league-rules-callout:hover,
.league-rules-callout:focus-visible {
  background: rgba(2, 117, 139, 0.10);
  border-color: rgba(2, 117, 139, 0.5);
}

.league-rules-callout-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: rgba(2, 117, 139, 0.10);
  color: #02758b;
  flex-shrink: 0;
}

.league-rules-callout div {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.league-rules-callout strong {
  font-size: 15px;
  font-weight: 600;
  color: #02758b;
  display: block;
}

.league-rules-callout span:not(.league-rules-callout-icon):not(.league-rules-callout-arrow) {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.4;
}

.league-rules-callout-arrow {
  color: #02758b;
  font-size: 16px;
  flex-shrink: 0;
}

/* ============================================================
   HOME ACTION REEL SECTION (video clips)
   ============================================================ */

.home-action-reel {
  background: linear-gradient(175deg, rgba(22, 50, 36, 0.97), rgba(18, 44, 30, 0.96));
  color: #fff;
  padding: 80px 0;
  overflow: hidden;
}

.home-action-reel-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}

.home-action-reel-text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.home-action-reel-text .eyebrow {
  color: rgba(255, 255, 255, 0.6);
}

.home-action-reel-text h2 {
  color: #fff;
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1.15;
  margin: 0;
}

.home-action-reel-text h2 em {
  font-style: normal;
  color: #a3d977;
}

.home-action-reel-text p {
  color: rgba(255, 255, 255, 0.72);
  font-size: 1.05rem;
  line-height: 1.65;
  margin: 0;
}

.home-action-reel-text .btn-primary {
  align-self: flex-start;
  margin-top: 0.5rem;
}

.home-action-reel-videos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.home-action-video-wrap {
  border-radius: 16px;
  overflow: hidden;
  aspect-ratio: 9 / 16;
  background: rgba(0, 0, 0, 0.4);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}

.home-action-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 860px) {
  .home-action-reel-inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .home-action-reel-videos {
    grid-template-columns: 1fr 1fr;
    max-width: 480px;
    margin: 0 auto;
  }

  .home-action-reel-text {
    text-align: center;
    align-items: center;
  }

  .home-action-reel-text .btn-primary {
    align-self: center;
  }
}

@media (max-width: 480px) {
  .home-action-reel {
    padding: 56px 0;
  }

  .home-action-reel-videos {
    gap: 10px;
  }

  .home-action-video-wrap {
    border-radius: 12px;
  }
}

/* ============================================================
   LEAGUE NEXT-STEP BANNER
   ============================================================ */

.league-next-step-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 10px;
  font-size: 14px;
  line-height: 1.5;
  margin-bottom: 0.25rem;
}

.league-next-step-banner a {
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.league-next-step-banner.is-pre-season {
  background: rgba(2, 117, 139, 0.08);
  border: 1px solid rgba(2, 117, 139, 0.25);
  color: #02758b;
}

.league-next-step-banner.is-active-season {
  background: rgba(99, 153, 34, 0.08);
  border: 1px solid rgba(99, 153, 34, 0.25);
  color: #3e6b18;
}

.league-next-step-banner.is-playoffs {
  background: rgba(255, 134, 0, 0.08);
  border: 1px solid rgba(255, 134, 0, 0.3);
  color: #b05a00;
}

.league-next-step-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
}

/* ============================================================
   DIVISION CARD ARROW ANIMATION
   ============================================================ */

.league-division-arrow {
  display: flex;
  align-items: center;
  color: var(--muted);
  transition: transform 0.18s, color 0.18s;
}

.league-division-card:hover .league-division-arrow,
.league-division-card:focus-visible .league-division-arrow {
  transform: translateX(4px);
  color: var(--text);
}

/* ============================================================
   COACHES ACTION REEL (mirrors home-action-reel)
   ============================================================ */

.coaches-action-reel {
  background: linear-gradient(170deg, rgba(22, 50, 36, 0.97), rgba(18, 44, 30, 0.96));
  color: #fff;
  padding: 80px 0;
  overflow: hidden;
}

.coaches-action-reel-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}

.coaches-action-reel-text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.coaches-action-reel-text .eyebrow { color: rgba(255,255,255,0.6); }

.coaches-action-reel-text h2 {
  color: #fff;
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1.15;
  margin: 0;
}

.coaches-action-reel-text h2 em {
  font-style: normal;
  color: #a3d977;
}

.coaches-action-reel-text p {
  color: rgba(255,255,255,0.72);
  font-size: 1.05rem;
  line-height: 1.65;
  margin: 0;
}

.coaches-action-reel-text .btn-primary { align-self: flex-start; margin-top: 0.5rem; }

.coaches-action-reel-videos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

@media (max-width: 860px) {
  .coaches-action-reel-inner {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .coaches-action-reel-videos {
    grid-template-columns: 1fr 1fr;
    max-width: 480px;
    margin: 0 auto;
  }
  .coaches-action-reel-text {
    text-align: center;
    align-items: center;
  }
  .coaches-action-reel-text .btn-primary { align-self: center; }
}

@media (max-width: 480px) {
  .coaches-action-reel { padding: 56px 0; }
  .coaches-action-reel-videos { gap: 10px; }
}

/* ============================================================
   LEAGUE STATUS STRIP — accent border top
   ============================================================ */

.page-leagues-standings .league-status-strip,
.page-leagues-submit .league-status-strip {
  border-top: 2px solid rgba(2, 117, 139, 0.15);
  padding-top: 0.85rem;
  margin-top: 0.85rem;
}

.page-leagues-standings .league-status-item-accent strong,
.page-leagues-submit .league-status-item-accent strong {
  color: #02758b;
}

/* ============================================================
   LEAGUE DIVISION GRID — improved spacing
   ============================================================ */

.page-leagues .league-division-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.page-leagues .league-division-card {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  padding: 14px 16px;
  gap: 3px;
}

.page-leagues .league-division-arrow {
  margin-top: 6px;
  justify-self: end;
}

/* ============================================================
   HERO — "Elevating Players." float animation
   ============================================================ */

@keyframes hero-float-up {
  0%, 100% { transform: translateY(0px); }
  45%       { transform: translateY(-10px); }
}

.page-home .home-showcase-hero h1 em {
  display: inline-block;
  font-style: italic;
  color: #a3d977;
  animation: hero-float-up 3.8s ease-in-out infinite;
  will-change: transform;
}

/* Pause if user prefers reduced motion */
@media (prefers-reduced-motion: reduce) {
  .page-home .home-showcase-hero h1 em {
    animation: none;
  }
}

/* ============================================================
   LEAGUE REGISTRATION — Oakmont membership fieldset
   ============================================================ */

.league-membership-fieldset {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px 20px 20px;
  margin: 0;
  background: rgba(2, 117, 139, 0.03);
}

.league-membership-fieldset legend {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  padding: 0 6px;
  letter-spacing: 0.01em;
}

.league-membership-note {
  font-size: 13px;
  color: var(--muted);
  margin: 6px 0 14px;
  line-height: 1.5;
}

.league-membership-choice-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.league-membership-choice {
  display: flex;
  cursor: pointer;
}

.league-membership-choice input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.league-membership-choice-inner {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  padding: 14px 16px;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.league-membership-choice input[type="radio"]:checked + .league-membership-choice-inner {
  border-color: #02758b;
  background: rgba(2, 117, 139, 0.06);
  box-shadow: 0 0 0 3px rgba(2, 117, 139, 0.12);
}

.league-membership-choice:hover .league-membership-choice-inner {
  border-color: #02758b;
  background: rgba(2, 117, 139, 0.04);
}

.league-membership-choice-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}

.league-membership-choice-price {
  font-size: 13px;
  color: var(--muted);
  font-weight: 500;
}

.league-membership-choice input[type="radio"]:checked + .league-membership-choice-inner .league-membership-choice-price {
  color: #02758b;
  font-weight: 600;
}

.league-membership-choice:focus-within .league-membership-choice-inner {
  outline: none;
  box-shadow: 0 0 0 3px rgba(2, 117, 139, 0.2);
}

@media (max-width: 480px) {
  .league-membership-choice-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   SITE-WIDE UNIFORMITY — spacing, type, cards
   ============================================================ */

/* Consistent base font size */
html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
}

/* Tighten heading left-border to feel consistent at every level */
main h2::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.22em;
  bottom: 0.22em;
  width: 3px;
  background: var(--green);
  border-radius: 2px;
}

/* Eyebrow consistency */
.eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0 0 0.5rem;
}

/* Card base padding — use 22px across the board */
.card {
  padding: 22px;
}

/* Consistent form label sizing */
.contact-form label,
form label {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.01em;
}

/* Consistent form input/select height */
.contact-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]),
.contact-form select,
.contact-form textarea,
form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]):not(.honeypot),
form select {
  min-height: 44px;
  font-size: 15px;
}

/* Consistent section-level max-width for prose blocks */
.page-intro p,
.league-list-note,
.league-form-helper {
  max-width: 58ch;
  line-height: 1.65;
}

/* ============================================================
   MOBILE IMPROVEMENTS
   ============================================================ */

/* Hero — better padding and font scale on small screens */
@media (max-width: 540px) {
  .page-home .home-showcase-hero {
    padding: 72px 0 64px;
  }

  .page-home .home-showcase-hero h1 {
    font-size: clamp(2.2rem, 10vw, 3rem);
  }

  /* Court SVG — reduce opacity on mobile so it doesn't crowd the text */
  .home-showcase-hero-court {
    opacity: 0.03;
  }
}

/* Action reel — ensure videos don't overflow on very small screens */
@media (max-width: 400px) {
  .home-action-reel-videos,
  .coaches-action-reel-videos {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .home-action-video-wrap {
    border-radius: 10px;
  }
}

/* League hub action cards — single column below 500px */
@media (max-width: 500px) {
  .league-utility-actions.league-home-actions {
    grid-template-columns: 1fr;
  }

  .league-home-action-card {
    grid-template-columns: 48px 1fr;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 14px;
  }

  .league-home-action-icon {
    grid-row: 1 / 3;
  }
}

/* Division cards — single column on narrow phones */
@media (max-width: 400px) {
  .page-leagues .league-division-grid {
    grid-template-columns: 1fr;
  }
}

/* Registration form — full width inputs on mobile */
@media (max-width: 600px) {
  .league-registration-intro-grid {
    grid-template-columns: 1fr;
  }

  .league-registration-form-shell {
    padding: 0;
  }

  .form-wide {
    padding: 20px 16px;
  }
}

/* League membership choice — more compact on phone */
@media (max-width: 360px) {
  .league-membership-choice-inner {
    padding: 12px 12px;
  }
}

/* Nav pills — ensure they wrap cleanly */
@media (max-width: 480px) {
  .subpage-nav {
    gap: 6px;
    padding: 10px 0;
  }

  .subpage-nav a {
    font-size: 13px;
    padding: 6px 12px;
  }
}

/* Footer — tighter on small screens */
@media (max-width: 400px) {
  .footer-bottom {
    flex-direction: column;
    gap: 8px;
    text-align: center;
  }

  .footer-bottom-links {
    justify-content: center;
  }
}

/* Table overflow on mobile */
.table-scroll,
.standings-scroll {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

/* Prevent long stat labels from squishing on mobile */
@media (max-width: 540px) {
  .league-status-strip {
    flex-wrap: wrap;
    gap: 10px 16px;
  }
}

/* ============================================================
   HEADER / PAGE-TOP SPACING CONSISTENCY  (2026-04-04b)
   Pages whose first <main> child is .section (not .inner-hero)
   get the same breathing room as inner-hero pages.
   ============================================================ */
main > .section:first-child {
  padding-top: clamp(2.6rem, 5vw, 3.4rem);
}

/* League hub pages have their own subpage-nav strip — keep compact */
.league-compact-main > .section:first-child {
  padding-top: clamp(1.4rem, 2.8vw, 2.2rem);
}

/* Homepage hero has its own treatment — don't override */
.page-home main > .section:first-child {
  padding-top: unset;
}

/* ============================================================
   ABOUT PAGE — ACTION REEL
   ============================================================ */
.about-action-reel {
  padding: clamp(2rem, 4vw, 3.2rem) 0;
}

.about-action-reel-inner {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  align-items: center;
  text-align: center;
}

.about-action-reel-videos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  width: 100%;
  max-width: 460px;
}

.about-action-video-wrap {
  border-radius: 14px;
  overflow: hidden;
  aspect-ratio: 9/16;
  background: #0d0f14;
  box-shadow: 0 6px 28px rgba(0,0,0,0.4);
}

.about-action-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.about-action-reel-caption {
  max-width: 380px;
}

.about-action-reel-caption .eyebrow {
  margin-bottom: 0.5rem;
}

.about-action-reel-caption p {
  color: var(--text-muted);
  font-size: clamp(0.9rem, 2vw, 1rem);
  line-height: 1.6;
  margin: 0;
}

@media (min-width: 680px) {
  .about-action-reel-inner {
    flex-direction: row;
    text-align: left;
    justify-content: center;
    gap: 3.5rem;
  }

  .about-action-reel-videos {
    max-width: 260px;
    flex-shrink: 0;
  }

  .about-action-reel-caption {
    max-width: 300px;
  }
}

@media (max-width: 400px) {
  .about-action-reel-videos {
    gap: 8px;
  }
}

/* ============================================================
   STANDINGS — SKELETON LOADER
   ============================================================ */
.skeleton-row td {
  padding: 10px 8px;
}

.skeleton-bar {
  display: inline-block;
  height: 13px;
  border-radius: 6px;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.04) 25%,
    rgba(255,255,255,0.09) 50%,
    rgba(255,255,255,0.04) 75%
  );
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s ease-in-out infinite;
  vertical-align: middle;
}

@keyframes skeleton-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Hide skeletons once the JS app has loaded data */
.league-data-loaded .skeleton-row {
  display: none;
}

/* ============================================================
   THANKS PAGE
   ============================================================ */
.page-thanks .thanks-confirmation {
  padding-top: clamp(2.8rem, 5.5vw, 4rem);
  padding-bottom: clamp(0.8rem, 2vw, 1.2rem);
}

.thanks-icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(2, 117, 139, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.4rem;
}

.thanks-icon-wrap svg {
  width: 26px;
  height: 26px;
  color: #02758b;
  flex-shrink: 0;
}

.thanks-next-section {
  padding-bottom: clamp(2.5rem, 5vw, 4rem);
}

.thanks-next-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
  margin-top: 1.8rem;
}

.thanks-next-card {
  background: var(--card-bg, #1a1d24);
  border: 1px solid var(--border, rgba(255,255,255,0.08));
  border-radius: 14px;
  padding: 1.3rem 1.4rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.18s ease, transform 0.18s ease;
}

.thanks-next-card:hover {
  border-color: #02758b;
  transform: translateY(-2px);
  text-decoration: none;
}

.thanks-next-card-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #02758b;
  margin-bottom: 0.1rem;
}

.thanks-next-card h3 {
  font-size: 0.975rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.3;
  color: var(--text-primary, #f0f0f0);
}

.thanks-next-card p {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin: 0;
  line-height: 1.5;
}

.thanks-cta-row {
  margin-top: 2rem;
}

@media (max-width: 480px) {
  .thanks-next-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   SCROLL PROGRESS BAR  (2026-04-04c)
   ============================================================ */
#scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, #02758b, #ff8600);
  transform: scaleX(0);
  transform-origin: left;
  z-index: 9999;
  transition: transform 0.08s linear;
  pointer-events: none;
}

/* ============================================================
   CUSTOM TENNIS BALL CURSOR (desktop pointer devices only)
   ============================================================ */
.has-ball-cursor {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='10' fill='%23c8e847'/%3E%3Cpath d='M3 8 Q7 5.5 11 11 Q15 16.5 19 14M3 14 Q7 16.5 11 11 Q15 5.5 19 8' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 11 11, auto;
}

.has-ball-cursor a,
.has-ball-cursor button,
.has-ball-cursor [role="button"],
.has-ball-cursor select,
.has-ball-cursor label[for],
.has-ball-cursor summary,
.has-ball-cursor [data-tilt] {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22'%3E%3Ccircle cx='11' cy='11' r='10' fill='%23ff8600'/%3E%3Cpath d='M3 8 Q7 5.5 11 11 Q15 16.5 19 14M3 14 Q7 16.5 11 11 Q15 5.5 19 8' fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 11 11, pointer;
}

/* ============================================================
   PROGRAM ROADMAP
   ============================================================ */
.registration-roadmap {
  padding-bottom: clamp(2rem, 4vw, 3rem);
}

.roadmap-outer {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  padding-bottom: 1rem;
  /* scrollbar styling */
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.1) transparent;
}

.roadmap-outer::-webkit-scrollbar { height: 4px; }
.roadmap-outer::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 2px; }

.roadmap-track {
  display: flex;
  align-items: flex-start;
  gap: 0;
  min-width: 680px;
  padding: 1.5rem 0 0.5rem;
  position: relative;
}

/* The connecting line behind all nodes */
.roadmap-track::before {
  content: '';
  position: absolute;
  top: calc(1.5rem + 22px); /* vertically centered on nodes */
  left: calc(10%);
  width: 80%;
  height: 2px;
  background: linear-gradient(90deg,
    #e63527 0%, #e63527 20%,
    #ff8600 20%, #ff8600 40%,
    #5ea84c 40%, #5ea84c 60%,
    #d79a00 60%, #d79a00 80%,
    #02758b 80%, #02758b 100%
  );
  border-radius: 1px;
  opacity: 0.5;
  pointer-events: none;
}

.roadmap-step {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  text-decoration: none;
  color: inherit;
  padding: 0 8px;
  position: relative;
  z-index: 1;
  transition: transform 0.2s ease;
}

.roadmap-step:hover {
  transform: translateY(-3px);
  text-decoration: none;
}

.roadmap-node {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
  margin-bottom: 1rem;
  border: 3px solid rgba(255,255,255,0.1);
  flex-shrink: 0;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.roadmap-step:hover .roadmap-node {
  transform: scale(1.12);
  box-shadow: 0 6px 24px rgba(0,0,0,0.4);
}

.roadmap-node-red    { background: #e63527; }
.roadmap-node-orange { background: #ff8600; }
.roadmap-node-green  { background: #5ea84c; }
.roadmap-node-gold   { background: #d79a00; }
.roadmap-node-teal   { background: #02758b; }

.roadmap-ball-svg {
  width: 22px;
  height: 22px;
  color: rgba(255,255,255,0.9);
}

.roadmap-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: center;
}

.roadmap-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--text-primary, #f0f0f0);
  line-height: 1.2;
}

.roadmap-age {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.roadmap-desc {
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.45;
  margin: 4px 0 0;
  max-width: 110px;
}

/* ============================================================
   FAQ ACCORDION POLISH
   ============================================================ */
.faq-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.7rem;
  max-width: 780px;
}

@media (min-width: 640px) {
  .faq-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.faq-item {
  background: var(--card-bg, #1a1d24);
  border: 1px solid var(--border, rgba(255,255,255,0.08));
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.2s ease;
}

.faq-item:hover {
  border-color: rgba(255,255,255,0.15);
}

.faq-item[open] {
  border-color: rgba(2, 117, 139, 0.5);
}

.faq-item summary {
  padding: 1rem 1.2rem;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.925rem;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  color: var(--text-primary, #f0f0f0);
  line-height: 1.4;
}

.faq-item summary::-webkit-details-marker { display: none; }

.faq-toggle-icon {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(2, 117, 139, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #02758b;
  font-size: 1.1rem;
  line-height: 1;
  transition: transform 0.25s ease, background 0.2s ease;
}

.faq-item[open] .faq-toggle-icon {
  transform: rotate(45deg);
  background: rgba(2, 117, 139, 0.25);
}

.faq-item .faq-body {
  padding: 0 1.2rem 1rem;
  animation: faq-slide-in 0.22s ease;
}

.faq-item .faq-body p {
  font-size: 0.88rem;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0;
}

@keyframes faq-slide-in {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   GOOGLE MAPS EMBED
   ============================================================ */
.contact-map-wrap {
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--border, rgba(255,255,255,0.08));
  margin-top: 1.6rem;
  aspect-ratio: 16/7;
  background: #0d0f14;
  min-height: 220px;
}

.contact-map-wrap iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  filter: invert(0.88) hue-rotate(180deg) saturate(0.7);
}

@media (prefers-color-scheme: light) {
  .contact-map-wrap iframe {
    filter: none;
  }
}

/* ============================================================
   CONFETTI CANVAS (applied via JS to thanks.html)
   ============================================================ */
#confetti-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 8000;
}

/* ============================================================
   VANILLA TILT — program card lift
   ONLY on fine-pointer (mouse) devices to avoid breaking
   tap events in iOS Safari on touch screens.
   ============================================================ */
@media (pointer: fine) {
  .registration-course-card {
    transform-style: preserve-3d;
    will-change: transform;
  }
}

/* ============================================================
   PREFERS-REDUCED-MOTION SAFETY NET
   All animations and transitions killed for users who
   have requested reduced motion in their OS settings.
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  /* Keep skeleton bars readable without animation */
  .skeleton-bar {
    background: rgba(255, 255, 255, 0.07);
    animation: none !important;
  }

  /* Keep the progress bar instant */
  #scroll-progress {
    transition: none !important;
  }
}


/* Shared cleanup pass: remove custom cursor, normalize top spacing, tighten card gaps */
.has-ball-cursor,
.has-ball-cursor a,
.has-ball-cursor button,
.has-ball-cursor select,
.has-ball-cursor summary,
.has-ball-cursor [role=button],
.has-ball-cursor [data-tilt],
.has-ball-cursor label[for] {
  cursor: auto !important;
}

body:not(.page-home) .inner-hero {
  padding-top: 2.4rem !important;
  padding-bottom: 1.1rem !important;
}

body:not(.page-home) main > .section:first-of-type {
  padding-top: 3rem !important;
}

.section {
  padding-block: 72px;
}

.page-home .section {
  padding-block: 72px;
}

.home-showcase-program-grid,
.coach-grid,
.page-coaches .coaches-team .coach-grid-flow,
.page-calendar .calendar-class-grid,
.page-about .about-story-grid,
.page-about .about-pillars-grid,
.page-about .about-hero-grid,
.page-registration .registration-course-grid,
.page-registration .registration-course-grid-teen,
.page-registration .registration-course-grid-single,
.page-registration .registration-course-grid-two-up,
.league-division-grid,
.site-footer-rich .home-footer-grid {
  gap: 16px !important;
}

.simple-shell,
.page-about .about-greatbase-shell,
.page-about .about-next-shell,
.page-home .home-showcase-director-grid,
.page-home .home-showcase-cta-inner,
.page-registration .registration-landing-grid,
.page-registration .registration-course-shell {
  gap: 16px !important;
}

@media (max-width: 760px) {
  .section,
  .page-home .section {
    padding-block: 48px;
  }

  body:not(.page-home) .inner-hero {
    padding-top: 2rem !important;
    padding-bottom: 0.85rem !important;
  }

  body:not(.page-home) main > .section:first-of-type {
    padding-top: 2.4rem !important;
  }
}

/* Unified footer and FAQ readability pass */
.site-footer.site-footer-rich {
  margin-top: 80px;
}

.site-footer.site-footer-rich .footer-brand {
  align-items: flex-start;
}

.site-footer.site-footer-rich .home-footer-copy {
  max-width: 34ch;
}

.page-registration .registration-faq {
  background: #ffffff;
  border: 1px solid rgba(26, 58, 42, 0.12);
  box-shadow: none;
}

.page-registration .registration-faq::before,
.page-registration .registration-faq::after {
  display: none;
}

.faq-item {
  background: #ffffff;
  border: 1px solid rgba(26, 58, 42, 0.12);
  box-shadow: none;
}

.faq-item:hover {
  border-color: rgba(26, 58, 42, 0.22);
}

.faq-item[open] {
  border-color: rgba(26, 58, 42, 0.22);
}

.faq-item summary {
  color: #1a3a2a;
}

.faq-toggle-icon {
  background: #f0f4f2;
  color: #1a3a2a;
}

.faq-item[open] .faq-toggle-icon {
  background: #e4ece8;
}

.faq-item .faq-body p,
.faq-item .faq-body a {
  color: rgba(26, 58, 42, 0.82);
}

@media (max-width: 760px) {
  .site-footer.site-footer-rich {
    margin-top: 48px;
  }
}

/* Registration simplification pass */
.page-registration .registration-intro-note {
  margin: 0.8rem 0 0;
  font-size: 0.96rem;
  color: rgba(26, 58, 42, 0.78);
}

.page-registration .registration-selector,
.page-registration .registration-booking,
.page-registration .registration-compare,
.page-registration .registration-finder,
.page-registration .registration-faq {
  scroll-margin-top: 88px;
}

.page-registration .registration-selector .section-heading,
.page-registration .registration-booking .section-heading,
.page-registration .registration-compare .section-heading,
.page-registration .registration-finder .section-heading {
  max-width: 42rem;
}

.page-registration .registration-selector .section-heading p,
.page-registration .registration-booking .section-heading p,
.page-registration .registration-compare .section-heading p,
.page-registration .registration-finder .section-heading p {
  max-width: 38rem;
}

.page-registration .registration-track-grid {
  margin-top: 0.9rem;
}

.page-registration .registration-cluster + .registration-cluster {
  margin-top: 1.25rem;
}

.page-registration .class-finder-shell {
  margin-top: 0.9rem;
}

@media (max-width: 760px) {
  .page-registration .registration-intro-note {
    font-size: 0.92rem;
  }
}

/* Registration FAQ desktop 3-column fix */
.page-registration .registration-faq .faq-grid {
  max-width: none;
}

@media (min-width: 1100px) {
  .page-registration .registration-faq .faq-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
  }
}

/* ============================================================
   LEAGUE "HOW IT WORKS" EXPLAINER
   ============================================================ */
.league-how-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  position: relative;
  max-width: 860px;
}

.league-how-step {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 1.2rem;
  align-items: flex-start;
  padding: 1.4rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}

.league-how-step:last-child {
  border-bottom: none;
}

.league-how-number {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(2,117,139,0.18), rgba(2,117,139,0.06));
  border: 1.5px solid rgba(2,117,139,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  font-weight: 800;
  color: #02758b;
  flex-shrink: 0;
  font-family: var(--font-heading, var(--font-display));
}

.league-how-content {
  padding-top: 0.2rem;
}

.league-how-content h3 {
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 0.35rem;
  color: var(--text-primary, #f0f0f0);
}

.league-how-content p {
  font-size: 0.9rem;
  color: var(--text-muted);
  line-height: 1.6;
  margin: 0 0 0.8rem;
}

.league-how-content .btn {
  font-size: 0.8rem;
  padding: 0.45rem 1rem;
}

@media (min-width: 600px) {
  .league-how-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0 2.5rem;
  }

  .league-how-step {
    border-bottom: none;
    border-right: 1px solid rgba(255,255,255,0.06);
    padding: 1.4rem 2.5rem 1.4rem 0;
  }

  .league-how-step:nth-child(even) {
    border-right: none;
    padding: 1.4rem 0 1.4rem 0;
  }

  .league-how-step:nth-last-child(-n+2) {
    border-top: 1px solid rgba(255,255,255,0.06);
  }
}

/* ============================================================
   HOW IT WORKS — light-background overrides for leagues page
   The base styles use dark-theme CSS vars (near-white text).
   These overrides scope dark legible colors to .page-leagues.
   ============================================================ */
.page-leagues .league-how-content h3 {
  color: #0d3d4a;
}

.page-leagues .league-how-content p {
  color: rgba(15, 40, 52, 0.68);
}

.page-leagues .league-how-step {
  border-bottom-color: rgba(0, 0, 0, 0.07);
}

.page-leagues .league-how-step:last-child {
  border-bottom-color: transparent;
}

@media (min-width: 600px) {
  .page-leagues .league-how-step {
    border-right-color: rgba(0, 0, 0, 0.07);
    border-bottom-color: transparent;
  }

  .page-leagues .league-how-step:nth-child(even) {
    border-right-color: transparent;
  }

  .page-leagues .league-how-step:nth-last-child(-n+2) {
    border-top-color: rgba(0, 0, 0, 0.07);
  }

  /* Card wrapper on leagues page — match light theme */
  .page-leagues .league-how-grid {
    background: rgba(2, 117, 139, 0.04);
    border-color: rgba(2, 117, 139, 0.14);
  }
}

/* league-how-link — inline text link inside step content */
.league-how-link {
  display: inline-block;
  font-size: 0.82rem;
  font-weight: 600;
  color: #02758b;
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: color 0.18s, opacity 0.18s;
}
.league-how-link:hover {
  color: #ff8600;
  opacity: 1;
}

/* Wrap the how-grid in a tinted card on md+ */
@media (min-width: 600px) {
  .league-how-grid {
    background: rgba(255,255,255,0.025);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 16px;
    padding: 1.6rem 2rem;
  }
}

/* ============================================================
   SCORE SUBMISSION — LIVE SCORE PREVIEW
   ============================================================ */
.league-score-live-preview {
  background: rgba(2,117,139,0.07);
  border: 1px solid rgba(2,117,139,0.2);
  border-radius: 12px;
  padding: 1rem 1.2rem;
  margin-top: 1.2rem;
  display: grid;
  gap: 0.35rem;
}

.league-score-preview-row {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.875rem;
}

.league-score-preview-label {
  color: var(--text-muted);
  min-width: 44px;
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.league-score-preview-value {
  font-weight: 700;
  color: var(--text-primary, #f0f0f0);
  font-size: 0.95rem;
  font-variant-numeric: tabular-nums;
}

.league-score-preview-status {
  margin-left: auto;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
}

.league-score-preview-status.is-valid {
  background: rgba(94,168,76,0.18);
  color: #5ea84c;
}

.league-score-preview-status.is-pending {
  background: rgba(255,255,255,0.05);
  color: var(--text-muted);
}

.league-score-preview-status.is-warn {
  background: rgba(215,154,0,0.15);
  color: #d79a00;
}

.league-score-preview-summary {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding-top: 0.5rem;
  margin-top: 0.25rem;
  font-size: 0.82rem;
  color: var(--text-muted);
  font-style: italic;
}

/* ============================================================
   SCORE SUBMISSION — SUCCESS CARD ANIMATION
   ============================================================ */
.league-success-card {
  animation: success-pop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes success-pop {
  0%   { opacity: 0; transform: scale(0.92) translateY(12px); }
  100% { opacity: 1; transform: scale(1)    translateY(0); }
}

.league-success-card .league-form-kicker {
  color: #5ea84c;
}

.league-success-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(94,168,76,0.14);
  border: 2px solid rgba(94,168,76,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}

.league-success-icon svg {
  color: #5ea84c;
  width: 24px;
  height: 24px;
}

/* ============================================================
   STANDINGS PAGE — MOBILE-FIRST LAYOUT + PLAYER CARD ENHANCEMENTS
   ============================================================ */

/* ── Mobile-first: keep division pills at the top like score submit ── */
@media (max-width: 639px) {
  .page-leagues-standings .league-platform-shell {
    display: flex;
    flex-direction: column;
  }
  .page-leagues-standings .league-platform-toolbar {
    order: 0;
  }
  .page-leagues-standings .league-platform-grid {
    order: 1;
  }
  /* Slim the toolbar to just division pills */
  .page-leagues-standings .league-platform-toolbar .league-platform-toolbar-head,
  .page-leagues-standings .league-platform-toolbar .league-status-strip,
  .page-leagues-standings .league-platform-toolbar .league-simple-note,
  .page-leagues-standings .league-platform-toolbar .league-manual-picker {
    display: none;
  }
  .page-leagues-standings .league-platform-toolbar {
    padding: 0.65rem 1rem;
    border-radius: 0;
  }
  .page-leagues-standings .league-platform-toolbar .league-division-pills-wrap {
    padding-top: 0;
  }
  /* Edge-to-edge standings card on mobile */
  .page-leagues-standings .leagues-standings-card.card {
    border-radius: 0;
    border-left: none;
    border-right: none;
  }
  /* Compact standings table on mobile */
  .page-leagues-standings .standings-table th,
  .page-leagues-standings .standings-table td {
    padding: 0.55rem 0.45rem;
    font-size: 0.82rem;
  }
}

/* ── Rank cell — playoff badges ── */
.standings-rank-cell {
  display: flex;
  align-items: center;
  gap: 5px;
}
.standings-rank-num {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  min-width: 16px;
}
.standings-playoff-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.standings-playoff-dot-gold {
  background: linear-gradient(135deg, #ff8600, #d79a00);
  box-shadow: 0 0 6px rgba(255,134,0,0.45);
}
.standings-playoff-dot-silver {
  background: rgba(200,200,200,0.55);
  border: 1px solid rgba(255,255,255,0.25);
}
th.standings-th-rank,
td.standings-td-rank {
  white-space: nowrap;
}

/* ── Player name cell ── */
.standings-name-wrap {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  min-width: 0;
}
.standings-player-name {
  font-weight: 600;
}

/* ── Still-to-play badge ── */
.standings-stp {
  display: inline-flex;
  align-items: center;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 1px 5px;
  border-radius: 4px;
  background: rgba(215,154,0,0.12);
  border: 1px solid rgba(215,154,0,0.28);
  color: #c9911a;
  white-space: nowrap;
  cursor: default;
  flex-shrink: 0;
}

/* ── Expandable row ── */
.standings-expandable-row {
  cursor: pointer;
  transition: background 0.15s;
}
.standings-expandable-row:hover td {
  background: rgba(255,255,255,0.025);
}
.standings-expandable-row.is-expanded td {
  background: rgba(2,117,139,0.07);
  border-bottom-color: transparent;
}
.standings-expand-chevron {
  display: inline-block;
  width: 14px;
  height: 14px;
  vertical-align: middle;
  opacity: 0.35;
  flex-shrink: 0;
  transition: transform 0.2s, opacity 0.2s;
}
.standings-expandable-row.is-expanded .standings-expand-chevron {
  transform: rotate(180deg);
  opacity: 0.65;
}

/* ── Expansion detail row ── */
.standings-expand-row > td {
  padding: 0 0.75rem 0.85rem !important;
  border-top: none !important;
}
.standings-expand-body {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  padding: 0.7rem 0.9rem;
  background: rgba(2,117,139,0.06);
  border-radius: 10px;
  border: 1px solid rgba(2,117,139,0.14);
  animation: expand-in 0.2s ease;
}
@keyframes expand-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.standings-expand-stat {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.standings-expand-label {
  font-size: 0.67rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted, #8a9ab0);
  font-weight: 600;
}
.standings-expand-value {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-primary, #f0f0f0);
  font-variant-numeric: tabular-nums;
}
.standings-expand-value.is-playoff {
  color: #ff8600;
}
.standings-expand-schedule {
  font-size: 0.78rem !important;
  padding: 0.38rem 0.85rem !important;
  margin-left: auto;
  white-space: nowrap;
}
@media (max-width: 479px) {
  .standings-expand-body {
    gap: 0.9rem;
  }
  .standings-expand-schedule {
    margin-left: 0;
    width: 100%;
    text-align: center;
  }
}

/* ============================================================
   LEAGUES SUBMIT — MOBILE: strip "Guided Score Entry" clutter
   ============================================================ */
@media (max-width: 639px) {
  .page-leagues-submit .league-platform-toolbar-head,
  .page-leagues-submit .league-status-strip,
  .page-leagues-submit .league-simple-note,
  .page-leagues-submit .league-manual-picker {
    display: none;
  }
  .page-leagues-submit .league-platform-toolbar {
    padding: 0.65rem 1rem;
    border-radius: 0;
  }
  .page-leagues-submit .league-platform-toolbar .league-division-pills-wrap {
    padding-top: 0;
  }
}

/* ============================================================
   STANDINGS TABLE — MOBILE: ALL columns visible, horizontal scroll
   ============================================================ */
.page-leagues-standings .standings-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Compact column sizing so all columns fit and scroll naturally */
@media (max-width: 600px) {
  .page-leagues-standings .standings-table {
    font-size: 0.8rem;
    min-width: 480px; /* forces horizontal scroll on very small screens */
  }
  .page-leagues-standings .standings-table th,
  .page-leagues-standings .standings-table td {
    padding: 0.55rem 0.4rem;
    white-space: nowrap;
  }
  /* # column */
  .page-leagues-standings .standings-table th:nth-child(1),
  .page-leagues-standings .standings-table td:nth-child(1) {
    width: 28px;
    min-width: 28px;
    text-align: center;
  }
  /* Player name — can shrink but stays readable */
  .page-leagues-standings .standings-table th:nth-child(2),
  .page-leagues-standings .standings-table td:nth-child(2) {
    min-width: 110px;
  }
  /* Numeric stat columns: P, W, L, Sets, Pts */
  .page-leagues-standings .standings-table th:nth-child(3),
  .page-leagues-standings .standings-table td:nth-child(3),
  .page-leagues-standings .standings-table th:nth-child(4),
  .page-leagues-standings .standings-table td:nth-child(4),
  .page-leagues-standings .standings-table th:nth-child(5),
  .page-leagues-standings .standings-table td:nth-child(5),
  .page-leagues-standings .standings-table th:nth-child(6),
  .page-leagues-standings .standings-table td:nth-child(6),
  .page-leagues-standings .standings-table th:nth-child(7),
  .page-leagues-standings .standings-table td:nth-child(7) {
    width: 38px;
    min-width: 38px;
    text-align: center;
  }
  /* Still-to-play badge: smaller on tiny screens */
  .standings-stp {
    font-size: 0.58rem;
    padding: 1px 3px;
  }
  /* Expand panel on small screens */
  .standings-expand-body {
    gap: 0.75rem;
  }
}

/* ============================================================
   HERO — animated background layers + floating ball
   All motion wrapped in prefers-reduced-motion: no-preference
   ============================================================ */

/* Grid texture drift — ::before layer */
@keyframes hero-grid-drift {
  0%   { background-position: 0px 0px, 0px 0px, 0px 0px, 0px 0px; }
  100% { background-position: 80px 40px, 80px 40px, 20px 10px, 20px 10px; }
}

/* Spotlight breathe — ::after layer */
@keyframes hero-spot-pulse {
  0%, 100% { opacity: 0.7; transform: translate(-50%, -50%) scale(1); }
  50%       { opacity: 1;   transform: translate(-50%, -50%) scale(1.12); }
}

/* Court lines breathe */
@keyframes hero-court-breathe {
  0%, 100% { opacity: 0.055; }
  55%       { opacity: 0.09;  }
}

/* Floating ball — gentle arc orbit */
@keyframes hero-ball-float {
  0%   { transform: translate(0px, 0px)    rotate(0deg); }
  25%  { transform: translate(14px, -22px) rotate(90deg); }
  50%  { transform: translate(28px, -8px)  rotate(180deg); }
  75%  { transform: translate(12px, 10px)  rotate(270deg); }
  100% { transform: translate(0px, 0px)    rotate(360deg); }
}

@media (prefers-reduced-motion: no-preference) {
  .page-home .home-showcase-hero::before {
    animation: hero-grid-drift 22s linear infinite;
  }

  .page-home .home-showcase-hero::after {
    animation: hero-spot-pulse 7s ease-in-out infinite;
  }

  .home-showcase-hero-court {
    animation: hero-court-breathe 9s ease-in-out infinite;
  }

  .hero-ball-float {
    animation: hero-ball-float 14s ease-in-out infinite;
  }
}

/* Floating ball element — positioned in hero top-right quadrant */
.hero-ball-float {
  position: absolute;
  top: 18%;
  right: 12%;
  width: 64px;
  height: 64px;
  pointer-events: none;
  opacity: 0.22;
  will-change: transform;
  z-index: 0;
}

.hero-ball-float svg {
  width: 100%;
  height: 100%;
}

/* Scale ball down on mobile so it stays unobtrusive */
@media (max-width: 640px) {
  .hero-ball-float {
    width: 44px;
    height: 44px;
    top: 12%;
    right: 8%;
    opacity: 0.15;
  }
}

/* ============================================================
   LEAGUE HUB — simplified layout (2026-04 restructure)
   Division cards are the primary element; action buttons are
   a secondary compact row below them.
   ============================================================ */

/* Small label above division grid */
.league-hub-section-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted, #8a9ab0);
  margin: 1.4rem 0 0.65rem;
}

/* Secondary action row: Submit Score + Register */
.league-hub-actions {
  display: flex;
  gap: 0.75rem;
  margin-top: 1.5rem;
  flex-wrap: wrap;
}

@media (max-width: 480px) {
  .league-hub-actions {
    flex-direction: column;
  }
  .league-hub-actions .btn {
    width: 100%;
    text-align: center;
  }
}

/* ============================================================
   LEAGUE TOOLBAR — compact variant (no status strip)
   ============================================================ */

/* Tighten toolbar bottom padding now that strip is gone */
.league-platform-toolbar {
  padding-bottom: 1rem;
}

/* Division pills sit closer to the heading row */
.league-division-pills-wrap {
  margin-top: 0.85rem;
}

/* ============================================================
   ADMIN PAGE — refreshed layout (2026-04)
   ============================================================ */

/* Top bar: division picker + sign out row */
.league-admin-topbar-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.league-admin-topbar-head h2 {
  margin: 0;
  font-size: 1.15rem;
}

/* Section heading inside a tool card */
.league-admin-section-head {
  margin-bottom: 1.2rem;
}

.league-admin-section-head h2 {
  margin: 0.15rem 0 0.3rem;
  font-size: 1.05rem;
}

/* Divider between roster and registration pool */
.league-admin-section-divider {
  border: none;
  border-top: 1px solid var(--line, rgba(0,0,0,0.08));
  margin: 1.8rem 0;
}

/* Registration pool head: label+desc on left, buttons on right */
.league-registration-pool-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.9rem;
}

.league-registration-pool-head h3 {
  margin: 0.15rem 0 0;
  font-size: 1rem;
}

.league-registration-pool-actions {
  display: flex;
  gap: 0.6rem;
  flex-shrink: 0;
  flex-wrap: wrap;
}

@media (max-width: 520px) {
  .league-admin-topbar-head {
    flex-direction: column;
  }
  .league-registration-pool-head {
    flex-direction: column;
  }
  .league-registration-pool-actions {
    width: 100%;
  }
  .league-registration-pool-actions .btn {
    flex: 1;
    text-align: center;
  }
}

/* Login form max-width so it doesn't stretch wide on desktop */
.league-admin-gate {
  max-width: 440px;
}

.league-admin-login-form {
  margin-top: 1.2rem;
}

/* ============================================================
   LEAGUE HUB — force-fix action button colours
   Belt-and-suspenders rule scoped directly to the hub action
   row so the Register btn-primary is always teal/white.
   ============================================================ */
.league-hub-actions .btn-primary {
  background: #02758b;
  color: #ffffff !important;
  border-color: #02758b;
  box-shadow: 0 4px 14px rgba(2, 117, 139, 0.35);
}

.league-hub-actions .btn-primary:hover,
.league-hub-actions .btn-primary:focus-visible {
  background: #01657a;
  border-color: #01657a;
  color: #ffffff !important;
  filter: none;
}

.league-hub-actions .btn-secondary {
  color: #1a3a2a;
  border-color: rgba(26, 58, 42, 0.45);
}

/* ============================================================
   FINAL CONVERSION + LEAGUE UTILITY PASS
   Keep the public site calm, then make leagues behave like a tool.
   ============================================================ */
.section {
  padding-block: 64px;
}

.page-home .section {
  padding-block: 64px;
}

.page-home .home-showcase-programs {
  padding-top: 56px;
}

.page-home .home-showcase-director,
.page-home .home-showcase-cta {
  margin-top: 0;
}

body:not(.page-home) main > .section:first-of-type {
  padding-top: 2.25rem !important;
}

.page-registration .registration-intro,
.page-registration .registration-booking,
.page-registration .registration-faq,
.page-league-registration .section,
.page-leagues .section,
.page-leagues-standings .section,
.page-leagues-submit .section {
  padding-block: 48px;
}

.page-leagues .section-subpage-strip,
.page-leagues-standings .section-subpage-strip,
.page-leagues-submit .section-subpage-strip,
.page-league-registration .section-subpage-strip {
  padding-block: 14px !important;
}

.page-leagues .league-home-shell,
.page-leagues .league-platform-shell,
.page-leagues-standings .league-platform-shell,
.page-leagues-submit .league-submit-shell,
.page-league-registration .league-registration-shell {
  gap: 16px;
}

.page-leagues .league-home-dashboard-card,
.page-leagues .league-division-card,
.page-leagues .league-rule-card,
.page-leagues-standings .league-platform-toolbar,
.page-leagues-standings .leagues-standings-card-platform,
.page-leagues-standings .leagues-results-card-platform,
.page-leagues-submit .league-platform-toolbar,
.page-leagues-submit .league-score-wizard,
.page-league-registration .league-registration-card {
  border-radius: 10px;
  box-shadow: none;
}

.page-leagues .league-division-card,
.page-leagues .league-dashboard-action,
.page-leagues-standings .league-division-pill,
.page-leagues-submit .league-division-pill,
.page-leagues-submit .league-winner-choice,
.page-leagues-submit .league-stepper-item,
.page-league-registration .league-registration-card a,
.league-mobile-bar .btn {
  min-height: 48px;
}

.page-leagues .league-dashboard-action,
.page-leagues .league-division-card,
.page-leagues-submit .league-winner-choice span {
  padding: 16px;
}

.page-leagues .league-rule-card {
  padding: 18px;
}

.page-leagues .league-home-status-grid,
.page-leagues .league-dashboard-actions,
.page-leagues .league-division-grid,
.page-leagues .league-how-grid,
.page-leagues .league-rules-stack,
.page-leagues-standings .league-platform-grid,
.page-leagues-submit .league-entry-layout,
.page-league-registration .league-registration-grid {
  gap: 16px;
}

.page-leagues-submit .league-score-form input,
.page-leagues-submit .league-score-form select,
.page-leagues-submit .league-score-form textarea {
  min-height: 52px;
  font-size: 1rem;
}

.page-leagues-submit .league-set-input-pair input {
  min-height: 58px;
  font-size: 1.35rem;
  text-align: center;
}

.page-leagues-submit .league-submit-actions-stepper .btn {
  min-height: 50px;
}

.page-registration .session-link-card {
  padding: 14px;
}

.page-registration .session-link-card .session-link-card-cta {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.page-registration .registration-course-card,
.page-registration .registration-cluster,
.page-registration .registration-faq {
  scroll-margin-top: 84px;
}

@media (max-width: 760px) {
  .section,
  .page-home .section {
    padding-block: 42px;
  }

  .page-home .home-showcase-programs {
    padding-top: 38px;
  }

  .page-registration .registration-intro,
  .page-registration .registration-booking,
  .page-registration .registration-faq,
  .page-league-registration .section,
  .page-leagues .section,
  .page-leagues-standings .section,
  .page-leagues-submit .section {
    padding-block: 36px;
  }

  .page-registration .registration-course-grid,
  .page-registration .registration-course-grid-teen,
  .page-registration .registration-course-grid-single,
  .page-registration .registration-course-grid-two-up,
  .page-registration .session-link-grid {
    grid-template-columns: 1fr !important;
  }

  .page-registration .session-link-card {
    padding: 16px;
  }

  .page-registration .session-link-card .session-link-card-cta,
  .page-registration .btn,
  .page-leagues .btn,
  .page-leagues-standings .btn,
  .page-leagues-submit .btn,
  .page-league-registration .btn {
    width: 100%;
    min-height: 50px;
  }

  .page-leagues .league-dashboard-actions,
  .page-leagues .league-home-status-grid,
  .page-leagues .league-division-grid,
  .page-leagues-standings .league-platform-actions,
  .page-leagues-submit .league-winner-choice-grid {
    grid-template-columns: 1fr !important;
  }

  .page-leagues-standings .league-division-pills,
  .page-leagues-submit .league-division-pills {
    gap: 8px;
  }

  .page-leagues-submit .league-stepper {
    gap: 8px;
  }

  .page-leagues-submit .league-stepper-label {
    font-size: 0.78rem;
  }
}

/* ============================================================
   CONVERSION + MOBILE QA PASS
   Registration now goes straight from orientation to booking.
   ============================================================ */
.anchor-target {
  display: block;
  height: 1px;
  margin-top: -1px;
  scroll-margin-top: 88px;
}

.page-registration .registration-start-shortcuts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 1rem;
}

.page-registration .registration-start-shortcuts a {
  display: flex;
  min-height: 74px;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  padding: 12px 14px;
  border: 1px solid rgba(26, 58, 42, 0.14);
  border-radius: 10px;
  background: #ffffff;
  color: #1a3a2a;
  text-decoration: none;
}

.page-registration .registration-start-shortcuts a:hover,
.page-registration .registration-start-shortcuts a:focus-visible {
  border-color: rgba(26, 58, 42, 0.34);
  background: #f0f4f2;
}

.page-registration .registration-start-shortcuts span {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(26, 58, 42, 0.64);
}

.page-registration .registration-start-shortcuts strong {
  font-size: 0.95rem;
  line-height: 1.2;
}

.page-registration .registration-booking {
  padding-top: 40px;
}

.page-registration .session-link-card::after {
  content: "Opens USTA";
  margin-top: 8px;
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  color: rgba(26, 58, 42, 0.62);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.page-leagues-submit .league-score-footnote {
  max-width: 58rem;
}

@media (max-width: 900px) {
  .page-registration .registration-start-shortcuts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .page-registration .registration-landing-copy p {
    max-width: none;
  }

  .page-registration .registration-start-shortcuts {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .page-registration .registration-start-shortcuts a {
    min-height: 58px;
  }

  .page-registration .registration-booking {
    padding-top: 28px;
  }

  .page-registration .registration-compare .table-scroll,
  .page-registration .registration-compare .schedule-date-range {
    display: none;
  }

  .page-registration .registration-program-pills {
    margin-top: 0.75rem;
  }

  .page-registration .session-link-card::after {
    margin-top: 6px;
  }

.page-leagues-submit .league-score-footnote {
  font-size: 0.95rem;
}
}

/* ============================================================
   CTA VISIBILITY FIX
   Visited anchor buttons were inheriting dark text on primary CTAs.
   Keep register buttons readable without requiring hover.
   ============================================================ */
a.btn.btn-primary,
a.btn.btn-primary:visited,
button.btn.btn-primary,
.league-price-band-actions .btn-primary,
.league-price-band-actions .btn-primary:visited,
.league-mobile-bar .btn-primary,
.league-mobile-bar .btn-primary:visited {
  color: #ffffff !important;
}
