/* ===========================================================
   Legacy Boxing brand theme
   Colours sampled from the Legacy Boxing logo + banner:
   charcoal-black background, gold lettering, crimson accents.
   =========================================================== */
:root {
  --legacy-black: #1b1717;   /* charcoal background of the logo disc */
  --legacy-black-2: #100d0d; /* deeper black for footer / banner     */
  --legacy-gold: #f5b400;    /* the gold "LEGACY BOXING" lettering    */
  --legacy-gold-2: #ffcf33;  /* lighter gold for hover                */
  --legacy-red: #e23b2e;     /* the red gloves / stars                */
  --legacy-red-2: #b62d23;   /* darker red for hover / shadows        */
  --legacy-white: #ffffff;
  --legacy-muted: #cfc9c9;
}

body {
  background-color: var(--legacy-black);
  color: var(--legacy-white);
}

body.member-area-page {
  background-color: #323232;
  color: #1f2933;
}

.member-area-shell {
  min-height: calc(100vh - 73px);
}

.member-area-page .wizard-panel,
.member-area-page .container,
.member-area-page .container-xxl {
  color: #1f2933;
}

.member-area-page .legacy-section-title {
  color: var(--legacy-gold);
  position: relative;
}

.member-area-page .text-muted {
  color: #626b75 !important;
}

.member-area-page .wizard-step-label,
.member-area-page h1,
.member-area-page h2,
.member-area-page h3,
.member-area-page h4,
.member-area-page h5,
.member-area-page h6 {
  color: #1f2933;
}

.member-area-page .wizard-step.is-active .wizard-step-label {
  color: var(--legacy-gold);
}

.member-home-page {
  margin-top: 25px;
}
.member-home-page .member-home-shell,
.member-home-page .card {
  background-color: #eef0f3;
  border-color: #c7cbd1;
  color: #1f2933;
  --bs-card-bg: #eef0f3;
  --bs-card-color: #1f2933;
  --bs-card-border-color: #c7cbd1;
  --bs-card-cap-bg: #eef0f3;
}
.member-home-page .card-header,
.member-home-page .card-header.bg-white,
.member-home-page .bg-white {
  background-color: #eef0f3 !important;
  border-color: #c7cbd1 !important;
  color: #1f2933;
}
.member-home-page .card-body {
  background-color: #eef0f3;
}
.member-home-page .card-title,
.member-home-page .card h1,
.member-home-page .card h2,
.member-home-page .card h3,
.member-home-page .card h4,
.member-home-page .card h5,
.member-home-page .card h6 {
  color: #1f2933;
}
.member-home-page .text-muted,
.member-home-page .card .text-muted {
  color: #5f6872 !important;
}
.member-home-page .table {
  --bs-table-bg: transparent;
  --bs-table-color: #1f2933;
  --bs-table-border-color: #c7cbd1;
  --bs-table-striped-color: #1f2933;
  --bs-table-striped-bg: rgba(31,41,51,.04);
  --bs-table-hover-color: #1f2933;
  --bs-table-hover-bg: rgba(31,41,51,.06);
  border-color: #c7cbd1;
  color: #1f2933;
}
.member-home-page .table > :not(caption) > * > * {
  background-color: transparent;
  border-color: #c7cbd1;
  color: #1f2933;
}
/* Members tab — legacy-choice style cards */
.member-home-page .member-card {
  align-items: center;
  background-color: #f7f8fa;
  border: 3px solid #0d6efd;
  border-radius: 1rem;
  color: #1f2933;
  display: flex;
  flex-direction: column;
  padding: 1.75rem 1.25rem 1.25rem;
  text-align: center;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.member-home-page .member-card:hover {
  box-shadow: 0 10px 26px rgba(31,41,51,.16);
  transform: translateY(-2px);
}
.member-home-page .member-card-default {
  background-color: #fdf3f2;
  border-color: var(--legacy-red);
}
.member-home-page .member-card-icon {
  color: var(--legacy-red);
  font-size: 3.25rem;
  line-height: 1;
  margin-bottom: .75rem;
}
.member-home-page .member-card-name {
  align-items: center;
  color: #1f2933;
  display: inline-flex;
  flex-wrap: wrap;
  font-size: 1.15rem;
  font-weight: 800;
  gap: .5rem;
  justify-content: center;
  letter-spacing: 1px;
  margin: 0 0 .75rem;
  text-transform: uppercase;
}
.member-home-page .member-card-tag {
  background: var(--legacy-red);
  color: #ffffff;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .04em;
  padding: .25em .55em;
  text-transform: uppercase;
}
.member-home-page .member-card-info {
  color: #5f6872;
  display: grid;
  font-size: .9rem;
  gap: .35rem;
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  width: 100%;
}
.member-home-page .member-card-info li {
  align-items: center;
  display: flex;
  gap: .5rem;
  justify-content: center;
  overflow-wrap: anywhere;
}
.member-home-page .member-card-info i {
  color: #0d6efd;
  flex: 0 0 1em;
}
.member-home-page .member-card-default .member-card-info i {
  color: var(--legacy-red);
}
.member-home-page .member-card-footer {
  margin-top: auto;
  width: 100%;
}
.member-home-page .member-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: center;
}

/* Add Member tile — same shape, dashed border to read as an action */
.member-home-page .member-add-card {
  align-items: center;
  background: transparent;
  border: 3px dashed #9aa3ad;
  border-radius: 1rem;
  color: #1f2933;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  padding: 2rem 1.25rem;
  text-align: center;
  text-decoration: none;
  transition: background .16s ease, border-color .16s ease, transform .16s ease;
}
.member-home-page .member-add-card:hover {
  background: #f4f6f9;
  border-color: var(--legacy-gold);
  color: #1f2933;
  transform: translateY(-2px);
}
.member-home-page .member-add-icon {
  align-items: center;
  background: #eef0f3;
  border-radius: 50%;
  color: #5f6872;
  display: inline-flex;
  font-size: 1.7rem;
  height: 64px;
  justify-content: center;
  margin-bottom: .75rem;
  width: 64px;
}
.member-home-page .member-add-card:hover .member-add-icon {
  background: var(--legacy-gold);
  color: #1f2933;
}

.member-home-page .nav-tabs {
  border-bottom-color: #c7cbd1;
}
.member-home-page .nav-tabs .nav-link {
  color: #946d00;
}
.member-home-page .nav-tabs .nav-link:hover {
  border-color: #c7cbd1 #c7cbd1 #c7cbd1;
  color: #7c2400;
}
.member-home-page .nav-tabs .nav-link.active {
  background-color: #eef0f3;
  border-color: #c7cbd1 #c7cbd1 #eef0f3;
  color: #7c2400;
}

.add-session-page {
  position: relative;
}

.add-session-hero {
  padding-top: 2.75rem;
  /* blue band ends 35px below the wizard text */
  padding-bottom: 35px;
  /* no gap: keep the teal summary band flush against the blue header */
  margin-bottom: 0;
  position: relative;
}

.add-session-hero::before {
  background: #238fb4;
  border-bottom: 8px solid #176f8f;
  box-sizing: border-box;
  content: "";
  height: 100%;
  left: 50%;
  pointer-events: none;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 100vw;
  z-index: 0;
}

.add-session-page > *,
.add-session-hero > *,
.add-session-page .wizard-panel {
  position: relative;
  z-index: 1;
}

.add-session-hero > .d-flex,
.add-session-hero > .wizard-steps {
  text-shadow: 0 1px 0 rgba(0,0,0,.55);
}

/* Membership/Session summary band — full-bleed dark red, single-line text */
.add-session-page .wizard-panel > .d-flex:first-child {
  background: transparent;
  border-radius: 0;
  padding: 1.25rem;
  position: relative;
}
.add-session-page .wizard-panel > .d-flex:first-child::before {
  background: #dbeefa;
  bottom: 0;
  box-shadow: 0 8px 24px rgba(16,13,13,.08);
  content: "";
  left: 50%;
  pointer-events: none;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 100vw;
  z-index: 0;
}
.add-session-page .wizard-panel > .d-flex:first-child > * {
  position: relative;
  z-index: 1;
}
/* lay the label / name / level out on one line */
.add-session-page .wizard-panel > .d-flex:first-child > div:first-child {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: .15rem .6rem;
}
.add-session-page .wizard-panel > .d-flex:first-child > div:first-child h5 {
  white-space: nowrap;
}

.add-session-page .wizard-panel > .d-flex:first-child h5,
.add-session-page .wizard-panel > .d-flex:first-child .small,
.add-session-page .wizard-panel > .d-flex:first-child .text-muted {
  color: #1f2933 !important;
}

.add-session-page .wizard-step-label {
  color: #fff;
}

.add-session-page .wizard-step.is-active .wizard-step-label,
.add-session-page .wizard-step.is-done .wizard-step-label {
  color: var(--legacy-gold);
}

.add-session-page .wizard-panel > .card,
.add-session-page .program-track-grid,
.add-session-page .session-selection-layout,
.add-session-page .payment-option-grid {
  margin-top: 1.5rem;
}
.add-session-page .wizard-panel > .card,
.add-session-page .class-session-card,
.add-session-page .payment-step-summary {
  background-color: #eef0f3;
  border-color: #c7cbd1;
  color: #1f2933;
  --bs-card-bg: #eef0f3;
  --bs-card-color: #1f2933;
  --bs-card-border-color: #c7cbd1;
}
.add-session-page .wizard-panel > .card h1,
.add-session-page .wizard-panel > .card h2,
.add-session-page .wizard-panel > .card h3,
.add-session-page .wizard-panel > .card h4,
.add-session-page .wizard-panel > .card h5,
.add-session-page .wizard-panel > .card h6,
.add-session-page .class-session-card h1,
.add-session-page .class-session-card h2,
.add-session-page .class-session-card h3,
.add-session-page .class-session-card h4,
.add-session-page .class-session-card h5,
.add-session-page .class-session-card h6 {
  color: #1f2933;
}
.add-session-page .wizard-panel > .card .text-muted,
.add-session-page .class-session-card .text-muted {
  color: #5f6872 !important;
}
/* Program detail panel — darker grey card with light, legible text */
.add-session-page .program-detail-panel {
  background-color: #4a4d52;
  border-color: #5c5f65;
  color: #f3f4f6;
}
.add-session-page .program-detail-panel h3 {
  color: #ffffff;
}
.add-session-page .program-detail-panel .program-detail-subtitle {
  color: #d7dade;
}
.add-session-page .program-detail-panel .program-detail-list dd,
.add-session-page .program-detail-panel .program-detail-focus ul {
  color: #f3f4f6;
}
.add-session-page .program-detail-panel .text-muted {
  color: #d7dade !important;
}
.add-session-page .legacy-choice {
  background-color: #f7f8fa;
  border-color: var(--legacy-gold);
  color: #1f2933;
}
.add-session-page .legacy-choice h3 {
  color: #1f2933;
}
.add-session-page .legacy-choice p {
  color: #5f6872;
}
.add-session-page .legacy-choice:hover {
  background-color: #fff;
  color: #1f2933;
  box-shadow: 0 10px 26px rgba(31,41,51,.16);
}
.add-session-page #sessAlert:not(.d-none) {
  margin: 1.5rem 0;
}
.add-session-page .payment-step-panel {
  margin-top: 0;
}
.add-session-page .payment-step-panel .payment-step-summary {
  text-shadow: none;
}
.add-session-page .payment-step-panel .payment-step-summary h5,
.add-session-page .payment-step-panel .payment-step-summary .small,
.add-session-page .payment-step-panel .payment-step-summary .text-muted {
  color: #1f2933 !important;
}
.add-session-page .payment-step-panel .payment-option-grid {
  margin-top: 1.5rem;
}

/* ---- Navbar branding ---- */
.legacy-navbar {
  background-color: var(--legacy-black-2) !important;
  border-bottom: 4px solid var(--legacy-red);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .28);
  min-height: 82px;
}
.legacy-navbar .navbar-brand {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--legacy-gold) !important;
}
.legacy-navbar .navbar-brand img { height: 42px; width: auto; }

/* ---- Navbar links (FightMatcher-style) ---- */
.legacy-primary-nav {
  gap: .75rem;
}
.legacy-primary-nav .nav-link,
.legacy-account-nav .nav-link {
  background: transparent;
  border: 0;
  color: var(--legacy-muted);
  font-size: 1.05rem;
  font-weight: 600;
  padding: 1.75rem .75rem 1.55rem;
  position: relative;
}
.legacy-primary-nav .nav-link:hover,
.legacy-primary-nav .nav-link.active,
.legacy-account-nav .nav-link:hover {
  color: #ffffff;
}
.legacy-primary-nav .nav-link::after {
  background: #0d6efd;
  bottom: -.25rem;
  content: "";
  height: 6px;
  left: .75rem;
  opacity: 0;
  position: absolute;
  right: .75rem;
  transition: opacity .16s ease;
}
.legacy-primary-nav .nav-link:hover::after,
.legacy-primary-nav .nav-link:focus::after,
.legacy-primary-nav .nav-link.active::after {
  opacity: 1;
}
.legacy-user-email {
  color: var(--legacy-muted);
  font-weight: 500;
  max-width: 24rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.legacy-logout-btn {
  border: 1px solid #f3f4f6;
  border-radius: 6px;
  color: #ffffff;
  font-weight: 700;
  padding: .45rem .9rem;
}
.legacy-logout-btn:hover {
  background: #ffffff;
  color: var(--legacy-black-2);
}

@media (max-width: 991.98px) {
  .legacy-navbar {
    min-height: auto;
  }
  .legacy-primary-nav .nav-link,
  .legacy-account-nav .nav-link {
    padding: .75rem 0;
  }
  .legacy-primary-nav .nav-link::after {
    bottom: .35rem;
    left: 0;
    right: auto;
    width: 4rem;
  }
  .legacy-user-email {
    max-width: 100%;
    padding: .75rem 0;
  }
}
.legacy-social a {
  align-items: center;
  color: var(--legacy-gold);
  display: inline-flex;
  font-size: 1.4rem;
  line-height: 1;
  text-decoration: none;
  transition: color .15s ease, transform .15s ease;
}
.legacy-social a:hover {
  color: var(--legacy-gold-2);
  transform: translateY(-2px);
}

/* ---- Buttons ---- */
.btn-legacy-gold {
  background-color: var(--legacy-gold);
  border: 2px solid var(--legacy-red);
  color: var(--legacy-black-2);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.btn-legacy-gold:hover,
.btn-legacy-gold:focus {
  background-color: var(--legacy-gold-2);
  color: var(--legacy-black-2);
}
.btn-legacy-red {
  background-color: var(--legacy-red);
  border: 2px solid var(--legacy-red);
  color: var(--legacy-white);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .5px;
}
.btn-legacy-red:hover,
.btn-legacy-red:focus {
  background-color: var(--legacy-red-2);
  color: var(--legacy-white);
}
.btn-legacy-outline {
  background-color: transparent;
  border: 2px solid var(--legacy-gold);
  color: var(--legacy-gold);
  font-weight: 700;
}
.btn-legacy-outline:hover { background-color: var(--legacy-gold); color: var(--legacy-black-2); }

/* ---- Landing hero ---- */
.legacy-hero {
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
  background:
    linear-gradient(rgba(16,13,13,.82), rgba(16,13,13,.92)),
    url('/images/hero.jpg') center/cover no-repeat;
  border: 3px solid var(--legacy-gold);
  text-align: center;
  padding: 3.5rem 1.5rem;
}
.legacy-hero img.legacy-logo {
  width: 220px;
  max-width: 60vw;
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.6));
}
.legacy-hero h1 {
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--legacy-gold);
  margin-top: 1.25rem;
}
.legacy-hero p.lead { color: var(--legacy-muted); }

/* ---- Public Legacy Boxing site ---- */
.legacy-public-hero {
  position: relative;
  overflow: hidden;
  align-items: flex-end;
  justify-content: center;
  background: #100d0d;
  border-bottom: 6px solid var(--legacy-gold);
  display: flex;
  min-height: clamp(520px, 74vh, 760px);
  width: 100vw;
  left: 50%;
  transform: translateX(-50%);
  margin-top: -1.5rem;
  padding: 4rem max(1.5rem, calc((100vw - 1140px) / 2)) 2.5rem;
}
/* rotating, full-cover background images */
.legacy-public-hero .hero-bg {
  position: absolute;
  inset: 0;
  background-position: center 18%;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0;
  animation: heroCycle 250s infinite;
  animation-fill-mode: backwards;
}
.legacy-public-hero .hero-bg-1 {
  background-image: url('/images/legacy-public/legacy-hero-218b.jpg');
  animation-delay: 0s;
}
.legacy-public-hero .hero-bg-2 {
  background-image: url('/images/legacy-public/team-large.jpg');
  animation-delay: 50s;
}
.legacy-public-hero .hero-bg-3 {
  background-image: url('/images/legacy-public/team-squad.jpg');
  animation-delay: 100s;
}
.legacy-public-hero .hero-bg-4 {
  background-image: url('/images/legacy-public/competition-ring-win.jpg');
  animation-delay: 150s;
}
.legacy-public-hero .hero-bg-5 {
  background-image: url('/images/legacy-public/team-ring2.jpg');
  animation-delay: 200s;
}
@keyframes heroCycle {
  0% { opacity: 0; }
  1% { opacity: 1; }
  19% { opacity: 1; }
  21% { opacity: 0; }
  100% { opacity: 0; }
}
.legacy-public-hero .hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(0deg, rgba(16,13,13,.9) 0%, rgba(16,13,13,.45) 30%, rgba(16,13,13,0) 60%),
    linear-gradient(90deg, rgba(16,13,13,.55) 0%, rgba(16,13,13,.2) 40%, rgba(16,13,13,0) 75%);
}
.legacy-public-hero-content {
  position: relative;
  z-index: 3;
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.legacy-public-hero .legacy-logo {
  filter: drop-shadow(0 6px 14px rgba(0,0,0,.65));
  position: absolute;
  top: 1rem;
  left: 1.25rem;
  margin: 0;
  max-width: 24vw;
  width: 95px;
  z-index: 4;
}
.legacy-public-hero h1 {
  color: var(--legacy-gold);
  font-size: clamp(1.8rem, 4vw, 3rem);
  font-weight: 950;
  line-height: .92;
  margin: 0 0 .65rem;
  text-transform: uppercase;
}
.legacy-public-hero p {
  color: #f5f0e7;
  font-size: clamp(.9rem, 1.5vw, 1.05rem);
  line-height: 1.35;
  margin: 0 auto 1.1rem;
  max-width: 460px;
}
.legacy-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  justify-content: center;
}
.legacy-hero-actions .btn {
  font-size: .9rem;
  padding: .5rem 1.1rem;
}
.legacy-public-band,
.legacy-training-section,
.legacy-results-section,
.legacy-competition-section,
.legacy-gallery-section,
.public-programs {
  padding: 4.5rem 0;
}
.legacy-about-band {
  align-items: end;
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
}
.legacy-kicker {
  color: var(--legacy-red);
  display: inline-block;
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .08em;
  margin-bottom: .75rem;
  text-transform: uppercase;
}
.legacy-public-copy h2,
.legacy-training-content h2,
.legacy-results-copy h2,
.legacy-gallery-heading h2 {
  color: var(--legacy-gold);
  font-size: clamp(2rem, 4vw, 3.35rem);
  font-weight: 900;
  line-height: 1;
  margin-bottom: 1rem;
  text-transform: uppercase;
}
.legacy-public-copy p,
.legacy-training-content p,
.legacy-results-copy p {
  color: var(--legacy-muted);
  font-size: 1.08rem;
  line-height: 1.65;
  margin: 0;
}
.legacy-feature-list {
  display: grid;
  gap: .85rem;
}
.legacy-feature-list div,
.legacy-feature-list a {
  align-items: center;
  background: var(--cc-surface);
  border: 1px solid var(--cc-border);
  border-radius: .5rem;
  color: var(--cc-text);
  display: flex;
  gap: .85rem;
  padding: 1rem;
  text-decoration: none;
}
.legacy-feature-list a:hover {
  border-color: var(--legacy-gold);
  color: var(--cc-text);
}
.legacy-feature-list i {
  color: var(--legacy-gold);
  font-size: 1.35rem;
}
.legacy-training-section {
  align-items: center;
  display: grid;
  gap: 2.5rem;
  grid-template-columns: minmax(320px, .9fr) minmax(0, 1fr);
}
.legacy-results-section {
  align-items: center;
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(0, .85fr) minmax(340px, 1.15fr);
}
.legacy-results-section img {
  aspect-ratio: 16 / 9;
  border: 3px solid var(--legacy-red);
  display: block;
  object-fit: cover;
  object-position: center;
  width: 100%;
}
.legacy-competition-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.legacy-competition-grid img {
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(245,180,0,.32);
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
}
.legacy-competition-grid img:nth-child(1),
.legacy-competition-grid img:nth-child(2),
.legacy-competition-grid img:nth-child(3) {
  grid-column: span 2;
}
.legacy-competition-grid img:nth-child(4),
.legacy-competition-grid img:nth-child(5),
.legacy-competition-grid img:nth-child(6) {
  aspect-ratio: 3 / 4;
  grid-column: span 2;
}
.legacy-training-photo img,
.legacy-photo-grid img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.legacy-training-photo {
  aspect-ratio: 16 / 10;
  border: 3px solid var(--legacy-gold);
  overflow: hidden;
}
.legacy-stat-row {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1.5rem;
}
.legacy-stat-row div {
  border-top: 3px solid var(--legacy-red);
  padding-top: .75rem;
}
.legacy-stat-row strong,
.legacy-stat-row span {
  display: block;
}
.legacy-stat-row strong {
  color: var(--legacy-gold);
  font-size: 2rem;
  line-height: 1;
}
.legacy-stat-row span {
  color: var(--legacy-muted);
  font-size: .9rem;
}
.legacy-gallery-heading {
  margin-bottom: 1.25rem;
}
.legacy-photo-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.legacy-photo-grid img {
  aspect-ratio: 4 / 3;
  border: 1px solid rgba(245,180,0,.32);
}
.legacy-photo-grid img:first-child {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 100%;
}
.public-program-grid {
  align-items: stretch;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.public-program-card {
  align-items: flex-start;
  min-height: 276px;
}
.public-program-content {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 100%;
}
.public-program-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: auto;
  padding-top: 1rem;
}
.public-program-actions .btn {
  white-space: nowrap;
}

/* ---- Programs styled like the local "Training Rates" cards ---- */
.public-rate-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.public-rate-card {
  background: #100d0d;
  border: 1px solid rgba(245, 180, 0, .16);
  color: #efe9e1;
  display: flex;
  min-height: 460px;
  overflow: hidden;
  position: relative;
}
/* image layer that zooms on hover */
.public-rate-card .rate-bg {
  background-position: center;
  background-size: cover;
  inset: 0;
  position: absolute;
  transform: scale(1.02);
  transition: transform .6s ease;
  z-index: 0;
}
/* dark overlay that lifts on hover to reveal the photo */
.public-rate-card::after {
  background: linear-gradient(rgba(16,13,13,.62) 0%, rgba(16,13,13,.74) 55%, rgba(16,13,13,.86) 100%);
  content: "";
  inset: 0;
  position: absolute;
  transition: opacity .35s ease;
  z-index: 0;
}
.public-rate-card:hover .rate-bg {
  transform: scale(1.1);
}
.public-rate-card:hover::after {
  opacity: .8;
}
.public-rate-card .rate-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 2rem 1.75rem;
  position: relative;
  z-index: 1;
}
.public-rate-card .rate-price {
  color: var(--legacy-red);
  font-size: 2rem;
  font-weight: 900;
  line-height: 1;
}
.public-rate-card .rate-title {
  color: #ffffff;
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: .04em;
  margin-top: 1.5rem;
  text-transform: uppercase;
}
.public-rate-card .rate-sub {
  color: #d9d3cb;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.public-rate-card .rate-desc {
  color: #ece7df;
  font-size: .95rem;
  line-height: 1.6;
  margin: 1.1rem 0 0;
}
.public-rate-card .rate-actions {
  display: flex;
  flex-direction: column;
  gap: .55rem;
  margin-top: auto;
  padding-top: 1.75rem;
}
.public-rate-card .rate-register {
  color: var(--legacy-red);
  font-weight: 800;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}
.public-rate-card .rate-register:hover {
  color: var(--legacy-gold);
}
.public-rate-card .rate-register i {
  transition: transform .15s ease;
}
.public-rate-card .rate-register:hover i {
  transform: translateX(4px);
}
.public-rate-card .rate-register-alt {
  color: #b9b3ab;
  font-size: .85rem;
  text-decoration: none;
}
.public-rate-card .rate-register-alt:hover {
  color: #fff;
  text-decoration: underline;
}

/* ---- Legacy Fighters roster ---- */
.legacy-fighters-intro {
  font-size: 1.08rem;
  line-height: 1.65;
  margin: 0 0 2rem;
  max-width: 720px;
}
.fighter-roster {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.fighter-card {
  background: #ffffff;
  border: 1px solid var(--lp-line, #e4e1da);
  margin: 0;
  overflow: hidden;
  text-align: center;
}
.fighter-card img {
  aspect-ratio: 4 / 5;
  background: #ffffff;
  display: block;
  object-fit: cover;
  object-position: top center;
  width: 100%;
}
.fighter-card figcaption {
  padding: 1rem .75rem 1.25rem;
}
.legacy-public-page .fighter-card figcaption strong {
  color: var(--lp-ink, #1b1717);
  display: block;
  font-size: 1.15rem;
  font-weight: 800;
}
.legacy-public-page .fighter-card figcaption span {
  color: var(--legacy-red);
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* ---- Bright public theme (full brighten redesign) ---- */
body:has(.legacy-public-page) {
  background-color: #f5f6f8;
  color: #23262b;
  overflow-x: hidden;
}
.legacy-public-page {
  --lp-ink: #1b1717;
  --lp-body: #4a4d54;
  --lp-line: #e4e1da;
}
.legacy-public-page .legacy-public-copy h2,
.legacy-public-page .legacy-training-content h2,
.legacy-public-page .legacy-results-copy h2,
.legacy-public-page .legacy-gallery-heading h2 {
  color: var(--lp-ink);
}
.legacy-public-page .legacy-public-copy p,
.legacy-public-page .legacy-training-content p,
.legacy-public-page .legacy-results-copy p,
.legacy-public-page .public-programs .text-muted {
  color: var(--lp-body) !important;
}
.legacy-public-page .public-programs .legacy-section-title {
  color: var(--lp-ink);
}
/* feature cards: white with a soft lift instead of dark surfaces */
.legacy-public-page .legacy-feature-list div,
.legacy-public-page .legacy-feature-list a {
  background: #ffffff;
  border: 1px solid var(--lp-line);
  box-shadow: 0 1px 3px rgba(16, 13, 13, .06);
  color: var(--lp-ink);
}
.legacy-public-page .legacy-feature-list a:hover {
  border-color: var(--legacy-gold);
  color: var(--lp-ink);
}
/* stat numbers read better in red on a light page */
.legacy-public-page .legacy-stat-row strong {
  color: var(--legacy-red);
}
.legacy-public-page .legacy-stat-row span {
  color: var(--lp-body);
}
/* gallery/training image borders softened for the lighter backdrop */
.legacy-public-page .legacy-competition-grid img,
.legacy-public-page .legacy-photo-grid img {
  border-color: var(--lp-line);
}
/* championship photos inside the About band */
.legacy-about-photos {
  grid-column: 1 / -1;
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr 1fr;
  margin-top: 1.5rem;
}
.legacy-about-photos figure {
  margin: 0;
}
.legacy-about-photos img {
  aspect-ratio: 4 / 3;
  border: 3px solid var(--legacy-gold);
  display: block;
  object-fit: cover;
  object-position: center;
  width: 100%;
}
.legacy-public-page .legacy-about-photos figcaption {
  color: var(--lp-body);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .03em;
  margin-top: .55rem;
  text-transform: uppercase;
}
/* single full-width group photo in the About band */
.legacy-about-group {
  grid-template-columns: 1fr;
}
.legacy-about-group img {
  aspect-ratio: 16 / 9;
}
.legacy-about-training {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.legacy-about-training img {
  aspect-ratio: 4 / 3;
}
/* In Action / reels videos */
.legacy-video-grid {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.legacy-video-grid figure {
  margin: 0;
}
.legacy-video-grid video {
  background: #000;
  border: 1px solid var(--lp-line, #e4e1da);
  display: block;
  width: 100%;
}
.legacy-video-grid figcaption {
  color: var(--lp-body);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .03em;
  margin-top: .55rem;
  text-transform: uppercase;
}
/* Library section */
.legacy-library-grid {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 1fr 1fr;
}
.legacy-library-grid figure {
  margin: 0;
}
.legacy-library-grid img {
  aspect-ratio: 3 / 2;
  border: 3px solid var(--legacy-gold);
  display: block;
  object-fit: cover;
  width: 100%;
}
.legacy-public-page .legacy-library-grid figcaption {
  color: var(--lp-body);
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .03em;
  margin-top: .55rem;
  text-transform: uppercase;
}
/* coach profile (Legacy Coaches) */
.legacy-coaches-section .legacy-gallery-heading {
  margin-bottom: 1.5rem;
}
.coach-profile {
  align-items: start;
  display: grid;
  gap: 1.6rem;
  grid-template-columns: minmax(170px, 220px) minmax(0, 1fr);
}
.coach-profile-featured {
  grid-template-columns: minmax(170px, 220px) minmax(0, 1fr) minmax(170px, 220px);
}
.coach-profile + .coach-profile {
  margin-top: 2rem;
}
.coach-profile-photo {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.coach-profile-featured .coach-profile-photo {
  align-items: center;
  justify-content: end;
  min-height: 245px;
  padding: 6.75rem .45rem 0;
}
.coach-profile-featured .coach-profile-photo img {
  border: 3px solid var(--legacy-gold);
}
.coach-profile-photo img {
  border: 3px solid var(--legacy-gold);
  display: block;
  height: auto;
  width: 100%;
}
.coach-supporting-photo {
  align-self: center;
  background: #000;
  margin: 0;
  padding: 1.5rem .9rem;
}
.coach-supporting-photo img {
  border: 0;
  display: block;
  height: auto;
  width: 100%;
}
.legacy-public-page .coach-profile-bio h3 {
  color: var(--lp-ink);
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 900;
  margin: 0;
  text-transform: uppercase;
}
.coach-profile-bio .coach-role {
  color: var(--legacy-red);
  font-weight: 800;
  letter-spacing: .04em;
  margin: .15rem 0 1.1rem;
  text-transform: uppercase;
}
.legacy-public-page .coach-profile-bio p {
  color: var(--lp-body);
  font-size: 1.05rem;
  line-height: 1.7;
  margin: 0 0 1rem;
}
.coach-inline-figure {
  margin: 1.25rem 0;
  max-width: 360px;
}
.coach-inline-figure img {
  border: 1px solid var(--lp-line);
  display: block;
  width: 100%;
}

@media (max-width: 980px) {
  .legacy-public-hero {
    background:
      linear-gradient(rgba(16,13,13,.78), rgba(16,13,13,.86)),
      url('/images/legacy-public/legacy-hero-218b.jpg') center/cover no-repeat;
  }
  .legacy-about-band,
  .legacy-about-training,
  .legacy-training-section,
  .legacy-results-section,
  .legacy-photo-grid,
  .coach-profile,
  .legacy-library-grid,
  .legacy-video-grid,
  .public-program-grid,
  .public-rate-grid {
    grid-template-columns: 1fr;
  }
  .legacy-competition-grid,
  .fighter-roster {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .legacy-competition-grid img:nth-child(n) {
    grid-column: auto;
  }
  .legacy-photo-grid img:first-child {
    grid-column: auto;
    grid-row: auto;
  }
  .coach-supporting-photo {
    margin: 0 0 1rem;
    max-width: 360px;
    padding: 0;
    width: 100%;
  }
  .coach-profile-featured .coach-profile-photo {
    background: transparent;
    min-height: 0;
    padding: 0;
  }
}

@media (max-width: 620px) {
  .legacy-public-hero {
    min-height: 620px;
    padding-top: 3rem;
  }
  .legacy-hero-actions .btn,
  .public-program-actions .btn {
    width: 100%;
  }
  .legacy-stat-row {
    grid-template-columns: 1fr;
  }
  .legacy-competition-grid {
    grid-template-columns: 1fr;
  }
  .legacy-competition-grid img:nth-child(n) {
    aspect-ratio: 4 / 3;
  }
  .legacy-public-band,
  .legacy-training-section,
  .legacy-results-section,
  .legacy-competition-section,
  .legacy-gallery-section,
  .legacy-contact-section,
  .public-programs {
    padding: 3rem 0;
  }
  .legacy-contact-form {
    grid-template-columns: 1fr;
    padding: 1rem;
  }
}

.legacy-contact-section {
  padding: 4rem 0 5rem;
}
.legacy-contact-layout {
  display: grid;
  gap: 1rem;
  grid-template-columns: minmax(260px, .85fr) minmax(320px, 1.15fr);
}
.legacy-contact-details {
  background: #100d0d;
  border-top: 5px solid var(--legacy-gold);
  color: #fff;
  padding: 1.5rem;
}
.legacy-contact-details h3 {
  color: var(--legacy-gold);
  font-size: 1.65rem;
  font-weight: 900;
  margin: 0 0 1rem;
  text-transform: uppercase;
}
.legacy-contact-details p {
  align-items: start;
  display: flex;
  gap: .7rem;
  line-height: 1.45;
  margin: 0 0 .85rem;
}
.legacy-contact-details i {
  color: var(--legacy-gold);
  flex: 0 0 auto;
}
.legacy-contact-details a {
  color: #fff;
  text-decoration: none;
}
.legacy-contact-details a:hover {
  color: var(--legacy-gold);
}
.legacy-contact-map {
  background: #100d0d;
  border-top: 5px solid var(--legacy-gold);
  min-height: 320px;
}
.legacy-contact-map iframe {
  border: 0;
  display: block;
  height: 100%;
  min-height: 320px;
  width: 100%;
}
.legacy-contact-form {
  background: #100d0d;
  border-top: 5px solid var(--legacy-gold);
  color: #fff;
  display: grid;
  gap: 1rem;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 1.5rem;
}
.contact-field {
  display: flex;
  flex-direction: column;
  gap: .45rem;
}
.contact-field-full {
  grid-column: 1 / -1;
}
.legacy-contact-form label {
  color: var(--legacy-gold);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .04em;
  margin: 0;
  text-transform: uppercase;
}
.legacy-contact-form .form-control,
.legacy-contact-form .form-select {
  background-color: #2a2424;
  border-color: rgba(245,180,0,.35);
  color: #fff;
}
.legacy-contact-form .form-control:focus,
.legacy-contact-form .form-select:focus {
  background-color: #2a2424;
  border-color: var(--legacy-gold);
  box-shadow: 0 0 0 .2rem rgba(245,180,0,.18);
  color: #fff;
}
.contact-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  grid-column: 1 / -1;
}
.contact-actions span {
  color: rgba(255,255,255,.72);
  font-size: .95rem;
}
@media (max-width: 620px) {
  .legacy-contact-layout {
    grid-template-columns: 1fr;
  }
  .legacy-contact-form {
    grid-template-columns: 1fr;
    padding: 1rem;
  }
}

/* ---- Big choice cards (GoodLife-style) ---- */
.legacy-choice {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-color: var(--legacy-black-2);
  border: 3px solid var(--legacy-gold);
  border-radius: 1rem;
  padding: 2.5rem 1.5rem;
  color: var(--legacy-white);
  text-decoration: none;
  height: 100%;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.legacy-choice:hover {
  transform: translateY(-4px);
  border-color: var(--legacy-red);
  box-shadow: 0 10px 26px rgba(0,0,0,.55);
  color: var(--legacy-white);
}
.legacy-choice .legacy-choice-icon {
  font-size: 3.25rem;
  color: var(--legacy-red);
  margin-bottom: 1rem;
}
.legacy-choice h3 {
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--legacy-gold);
  margin-bottom: .25rem;
}
.legacy-choice p { color: var(--legacy-muted); margin-bottom: 0; }

.registration-start-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 980px) {
  .registration-start-grid {
    grid-template-columns: 1fr;
  }
}

/* ---- Section headings on dark ---- */
.legacy-section-title {
  color: var(--legacy-gold);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
}
.legacy-divider {
  width: 90px; height: 4px; border: 0; opacity: 1;
  background: var(--legacy-red);
  margin: .75rem auto 2rem;
}

/* Make plain cards readable on the dark theme */
.legacy-card {
  background-color: var(--legacy-black-2);
  border: 1px solid rgba(245,180,0,.35);
  color: var(--legacy-white);
}
.legacy-card .form-control,
.legacy-card .form-select,
.legacy-card textarea {
  background-color: #2a2424;
  border-color: rgba(245,180,0,.35);
  color: var(--legacy-white);
}
.legacy-card .form-control::placeholder { color: #8a8080; }
.legacy-card .form-control:focus,
.legacy-card .form-select:focus,
.legacy-card textarea:focus {
  background-color: #2a2424;
  color: var(--legacy-white);
  border-color: var(--legacy-gold);
  box-shadow: 0 0 0 .2rem rgba(245,180,0,.25);
}

/* ---- Step indicator ---- */
.wizard-steps {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0 0 .5rem;
  counter-reset: step;
}
.wizard-step {
  flex: 1 1 0;
  text-align: center;
  position: relative;
  color: var(--legacy-muted);
  font-size: .85rem;
  cursor: default;
}
.wizard-step + .wizard-step::before {
  content: "";
  position: absolute;
  top: 18px;
  left: -50%;
  width: 100%;
  height: 3px;
  background: rgba(245,180,0,.25);
  z-index: 0;
}
.wizard-step.is-done + .wizard-step::before,
.wizard-step.is-done::before { background: var(--legacy-gold); }
.wizard-step-num {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin: 0 auto .35rem;
  border-radius: 50%;
  background: var(--legacy-black-2);
  border: 3px solid rgba(245,180,0,.35);
  color: var(--legacy-muted);
  font-weight: 800;
}
.wizard-step.is-active .wizard-step-num {
  background: var(--legacy-gold);
  border-color: var(--legacy-gold);
  color: var(--legacy-black-2);
}
.wizard-step.is-done .wizard-step-num {
  background: var(--legacy-red);
  border-color: var(--legacy-red);
  color: #fff;
  cursor: pointer;
}
.wizard-step.is-active .wizard-step-label { color: var(--legacy-gold); font-weight: 700; }

/* ---- Wizard panels ---- */
.wizard-panel { display: none; }
.wizard-panel.is-active { display: block; }

/* ---- Plan radio cards ---- */
.plan-card {
  display: flex;
  gap: .75rem;
  align-items: flex-start;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 1rem;
  border: 2px solid rgba(245,180,0,.35);
  border-radius: .75rem;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}
.plan-card:hover { border-color: var(--legacy-gold); }
.plan-card:has(.plan-radio:checked) {
  border-color: var(--legacy-gold);
  background: rgba(245,180,0,.08);
}
.plan-card .plan-radio { margin-top: .25rem; }
.plan-card-body { display: flex; flex-direction: column; }
.plan-name { font-weight: 800; color: var(--legacy-gold); text-transform: uppercase; letter-spacing: .5px; }
.plan-shirt {
  display: inline-block;
  margin-left: .4rem;
  font-size: .72rem;
  font-weight: 600;
  color: var(--legacy-muted);
  text-transform: none;
  letter-spacing: 0;
}
.plan-desc { color: var(--legacy-muted); font-size: .88rem; }

/* ---- Member session signup cards ---- */
.program-track-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.program-track-card {
  align-items: center;
  background: var(--cc-surface);
  border: 2px solid var(--cc-border);
  border-radius: .5rem;
  color: var(--cc-text);
  display: flex;
  gap: 1rem;
  min-height: 148px;
  padding: 1rem;
  text-align: left;
  transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}
.program-track-card:not(:disabled):hover,
.program-track-card.is-active {
  border-color: var(--legacy-gold);
  transform: translateY(-1px);
}
.program-track-card strong,
.program-track-card small {
  display: block;
}
.program-track-card strong {
  color: var(--legacy-gold);
  font-size: 1.05rem;
  text-transform: uppercase;
}
.program-track-card small {
  color: var(--cc-muted);
  margin-top: .2rem;
}
.program-track-gray {
  background: #4a4a47;
  border-color: #696964;
  color: #fff;
}
.program-track-gray strong,
.program-track-gray small {
  color: #fff;
}
.program-track-white {
  background: #fff;
  color: #151515;
}
.program-track-white strong,
.program-track-white small {
  color: #151515;
}
.program-track-blue {
  background: #1e67d1;
  border-color: #75a8ff;
  color: #fff;
}
.program-track-blue strong,
.program-track-blue small {
  color: #fff;
}
.program-track-red {
  background: #d7262e;
  border-color: #ff7f86;
  color: #fff;
}
.program-track-red strong,
.program-track-red small {
  color: #fff;
}
.program-track-black {
  background: #050505;
  border-color: #777;
  color: #fff;
}
.program-track-black strong,
.program-track-black small {
  color: #fff;
}
.program-track-card:disabled {
  cursor: not-allowed;
  filter: grayscale(.7);
  opacity: .42;
  transform: none;
}
.program-track-card:disabled,
.program-track-card:disabled strong,
.program-track-card:disabled small {
  color: #d8d8d8;
}
.program-track-card:disabled .program-track-icon {
  background: #777;
}
.program-track-locked {
  color: #ffd25a;
  font-weight: 800;
  margin-top: .25rem;
  text-transform: uppercase;
}
.program-track-card:disabled .program-track-locked {
  color: #ffbf00;
}
.program-track-icon {
  align-items: center;
  background: var(--legacy-red);
  border-radius: 50%;
  color: var(--legacy-white);
  display: flex;
  flex: 0 0 44px;
  height: 44px;
  justify-content: center;
  width: 44px;
}
.program-track-details {
  display: grid;
  gap: .2rem;
  margin-top: .75rem;
}
.program-track-details span {
  color: inherit;
  display: block;
  font-size: .88rem;
  line-height: 1.25;
}
@media (max-width: 700px) {
  .program-track-grid { grid-template-columns: 1fr; }
}
.class-session-card {
  background: #f7f7f5;
  border: 0;
  border-radius: .35rem;
  color: #25262b;
  min-height: 300px;
  box-shadow: 0 14px 36px rgba(0,0,0,.24);
}
.session-selection-layout {
  align-items: start;
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(360px, 520px) minmax(0, 1fr);
}
.program-detail-panel {
  background: var(--cc-surface);
  border: 2px solid var(--cc-border);
  border-radius: .5rem;
  color: var(--cc-text);
  min-height: 300px;
  padding: 1.5rem;
}
.program-detail-kicker {
  color: var(--legacy-gold);
  font-size: .85rem;
  font-weight: 900;
  letter-spacing: .02em;
  margin-bottom: .5rem;
  text-transform: uppercase;
}
.program-detail-panel h3 {
  color: var(--cc-text);
  font-size: 1.65rem;
  font-weight: 900;
  margin: 0 0 .35rem;
}
.program-detail-subtitle {
  color: var(--cc-muted);
  font-size: 1.05rem;
  margin-bottom: 1.25rem;
}
.program-detail-list {
  display: grid;
  gap: .75rem;
  margin: 0 0 1.25rem;
}
.program-detail-list div {
  display: grid;
  gap: .15rem;
}
.program-detail-list dt,
.program-detail-focus strong {
  color: var(--legacy-gold);
  font-size: .82rem;
  font-weight: 900;
  text-transform: uppercase;
}
.program-detail-list dd {
  color: var(--cc-text);
  margin: 0;
}
.program-detail-focus {
  border-top: 1px solid var(--cc-border);
  padding-top: 1rem;
}
.program-detail-focus ul {
  color: var(--cc-text);
  margin: .5rem 0 0;
  padding-left: 1.15rem;
}
.program-detail-focus li {
  line-height: 1.35;
  margin-bottom: .35rem;
}
@media (max-width: 900px) {
  .session-selection-layout {
    grid-template-columns: 1fr;
  }
}
.class-session-body {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.75rem;
}
.class-session-time {
  color: #30343b;
  font-size: 1rem;
  font-weight: 800;
  margin-bottom: .75rem;
}
.class-session-main {
  align-items: flex-start;
  display: grid;
  gap: 1.25rem;
  grid-template-columns: 96px minmax(0, 1fr);
}
.class-session-brand {
  color: var(--legacy-red);
  font-size: 1.35rem;
  font-style: italic;
  font-weight: 900;
  line-height: .9;
  text-transform: uppercase;
}
.class-session-main h3 {
  color: #2c3441;
  font-size: 1.45rem;
  font-weight: 900;
  line-height: 1.1;
  margin: 0 0 .35rem;
}
.class-session-main p {
  color: #2c3441;
  font-size: 1rem;
  line-height: 1.35;
  margin: 0 0 .45rem;
}
.class-session-rank { font-weight: 700; }
.class-session-date-range {
  color: #30343b !important;
  font-weight: 800;
}
.class-session-outcomes {
  border-top: 1px solid rgba(44, 52, 65, .14);
  margin-top: .8rem;
  padding-top: .75rem;
}
.class-session-outcomes strong {
  color: #2c3441;
  display: block;
  font-size: .86rem;
  font-weight: 900;
  letter-spacing: .02em;
  margin-bottom: .35rem;
  text-transform: uppercase;
}
.class-session-outcomes ul {
  color: #2c3441;
  margin: 0;
  padding-left: 1.1rem;
}
.class-session-outcomes li {
  font-size: .9rem;
  line-height: 1.3;
  margin-bottom: .2rem;
}
.rank-swatch {
  border: 1px solid #c8c8c8;
  display: inline-block;
  height: 12px;
  margin-top: .25rem;
  width: 42px;
}
.rank-white { background: #fff; }
.rank-blue { background: #1e67d1; border-color: #1e67d1; }
.rank-red { background: #d7262e; border-color: #d7262e; }
.rank-black { background: #050505; border-color: #050505; }
.class-session-footer {
  align-items: end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 1.5rem;
}
.class-session-footer span {
  color: #5d6370;
  font-size: .9rem;
}
.class-session-footer .btn {
  min-width: 132px;
}
.alert-program-choice {
  background: #f8a99e;
  border-color: #fa8072;
  color: #4b1712;
}
.payment-option-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.payment-option-card {
  background: var(--cc-surface);
  border: 2px solid var(--cc-border);
  border-radius: .5rem;
  color: var(--cc-text);
  padding: 1.15rem 1.25rem;
  text-align: left;
  transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}
.payment-option-card:hover,
.payment-option-card.is-active {
  background: rgba(245, 180, 0, .08);
  border-color: var(--legacy-gold);
  transform: translateY(-1px);
}
.payment-option-card strong,
.payment-option-card small {
  display: block;
}
.payment-option-card strong {
  color: var(--legacy-gold);
  font-size: 1.05rem;
  text-transform: uppercase;
}
.payment-option-card small {
  color: var(--cc-muted);
  margin-top: .35rem;
}
.payment-option-card:disabled {
  cursor: wait;
  opacity: .68;
}
.legacy-payment-table th {
  color: #626b75;
  font-weight: 700;
  width: 45%;
}
.legacy-payment-table td {
  font-weight: 700;
}
.legacy-payment-table .legacy-payment-total th,
.legacy-payment-table .legacy-payment-total td {
  border-top: 2px solid #dee2e6;
  color: var(--legacy-red);
  font-size: 1.15rem;
  font-weight: 800;
}
@media (max-width: 700px) {
  .payment-option-grid { grid-template-columns: 1fr; }
}
.btn-shirt-gray {
  background: #4a4a47;
  border: 2px solid #696964;
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
}
.btn-shirt-gray:hover,
.btn-shirt-gray:focus {
  background: #3b3b38;
  border-color: #5a5a55;
  color: #fff;
}
.btn-shirt-white {
  background: #fff;
  border: 2px solid #d5d5d5;
  color: #151515;
  font-weight: 800;
  text-transform: uppercase;
}
.btn-shirt-white:hover,
.btn-shirt-white:focus {
  background: #f0f0f0;
  color: #151515;
}
.btn-shirt-blue {
  background: #1e67d1;
  border: 2px solid #1e67d1;
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
}
.btn-shirt-blue:hover,
.btn-shirt-blue:focus {
  background: #1553ad;
  border-color: #1553ad;
  color: #fff;
}
.btn-shirt-red {
  background: #d7262e;
  border: 2px solid #d7262e;
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
}
.btn-shirt-red:hover,
.btn-shirt-red:focus {
  background: #ad1d24;
  border-color: #ad1d24;
  color: #fff;
}
.btn-shirt-black {
  background: #050505;
  border: 2px solid #777;
  color: #fff;
  font-weight: 800;
  text-transform: uppercase;
}
.btn-shirt-black:hover,
.btn-shirt-black:focus {
  background: #222;
  color: #fff;
}

/* ---- Conditional fields (hidden until toggled) ---- */
.conditional-field { display: none; }
.conditional-field.is-visible { display: block; }

/* ===========================================================
   Surface theme — Claude Code style warm gray (replaces white
   Bootstrap card/table/tab/modal surfaces site-wide).
   =========================================================== */
:root {
  --cc-surface: #30302e;    /* card body */
  --cc-surface-2: #262624;  /* card header / table head / hover */
  --cc-surface-3: #3a3937;  /* raised rows / inputs */
  --cc-text: #e8e6e1;       /* primary text */
  --cc-muted: #a8a39a;      /* secondary text */
  --cc-border: #46443f;     /* borders / dividers */
}

.card {
  background-color: var(--cc-surface);
  color: var(--cc-text);
  border: 1px solid var(--cc-border);
  --bs-card-bg: var(--cc-surface);
  --bs-card-color: var(--cc-text);
  --bs-card-border-color: var(--cc-border);
  --bs-card-cap-bg: var(--cc-surface-2);
}
.card-header,
.card-header.bg-white,
.bg-white {
  background-color: var(--cc-surface-2) !important;
  color: var(--cc-text);
  border-color: var(--cc-border) !important;
}
.card .card-title,
.card h1, .card h2, .card h3, .card h4, .card h5, .card h6 { color: var(--cc-text); }
.card .text-muted,
.text-muted { color: var(--cc-muted) !important; }
.card .text-dark, .card .text-body, .card .text-black { color: var(--cc-text) !important; }
hr { border-color: var(--cc-border); color: var(--cc-border); opacity: 1; }

/* Tables on gray */
.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--cc-text);
  --bs-table-border-color: var(--cc-border);
  --bs-table-striped-color: var(--cc-text);
  --bs-table-striped-bg: rgba(255,255,255,.03);
  --bs-table-hover-color: var(--cc-text);
  --bs-table-hover-bg: rgba(255,255,255,.05);
  color: var(--cc-text);
  border-color: var(--cc-border);
}
.table > :not(caption) > * > * { background-color: transparent; color: var(--cc-text); border-color: var(--cc-border); }
.table-light, thead.table-light, .table-light > th, .table-light > td {
  --bs-table-bg: var(--cc-surface-2);
  --bs-table-color: var(--cc-text);
  background-color: var(--cc-surface-2) !important;
  color: var(--cc-text) !important;
}
.table-secondary, .table-secondary > th, .table-secondary > td {
  --bs-table-bg: var(--cc-surface-3);
  --bs-table-color: var(--cc-text);
  background-color: var(--cc-surface-3) !important;
  color: var(--cc-text) !important;
}

/* Tabs on gray */
.nav-tabs { border-bottom-color: var(--cc-border); }
.nav-tabs .nav-link { color: var(--legacy-gold); }
.nav-tabs .nav-link:hover { border-color: var(--cc-border) var(--cc-border) var(--cc-border); color: var(--legacy-gold-2); }
.nav-tabs .nav-link.active {
  background-color: var(--cc-surface);
  color: var(--legacy-gold);
  border-color: var(--cc-border) var(--cc-border) var(--cc-surface);
}

/* Form controls on gray (outside the dark hero card) */
.card .form-control, .card .form-select, .card textarea {
  background-color: var(--cc-surface-3);
  border-color: var(--cc-border);
  color: var(--cc-text);
}
.card .form-control::placeholder { color: var(--cc-muted); }
.card .form-control:focus, .card .form-select:focus, .card textarea:focus {
  background-color: var(--cc-surface-3);
  color: var(--cc-text);
  border-color: var(--legacy-gold);
  box-shadow: 0 0 0 .2rem rgba(245,180,0,.2);
}

/* Modals on gray */
.modal-content { background-color: var(--cc-surface); color: var(--cc-text); border: 1px solid var(--cc-border); }
.modal-header, .modal-footer { border-color: var(--cc-border); }
.btn-close { filter: invert(1) grayscale(1) brightness(1.6); }

/* Global form controls on the dark theme (covers controls outside cards,
   e.g. the Admin search/filter bars). .legacy-card / .card rules above win
   by specificity where they apply. */
.form-control, .form-select, textarea {
  background-color: var(--cc-surface-3);
  border-color: var(--cc-border);
  color: var(--cc-text);
}
.form-control::placeholder { color: var(--cc-muted); }
.form-control:focus, .form-select:focus, textarea:focus {
  background-color: var(--cc-surface-3);
  color: var(--cc-text);
  border-color: var(--legacy-gold);
  box-shadow: 0 0 0 .2rem rgba(245,180,0,.2);
}
.form-check-input { background-color: var(--cc-surface-3); border-color: var(--cc-border); }
.form-check-input:checked { background-color: var(--legacy-gold); border-color: var(--legacy-gold); }

/* Admin submenu (navbar.bg-light) + any bg-light surfaces on gray */
.bg-light { background-color: var(--cc-surface-2) !important; color: var(--cc-text); }
.navbar.bg-light { border-color: var(--cc-border) !important; }
.navbar-light .nav-link, .navbar.bg-light .nav-link { color: var(--cc-text); }
.navbar-light .nav-link:hover, .navbar.bg-light .nav-link:hover { color: var(--legacy-gold); }

/* Pagination on gray */
.page-link {
  background-color: var(--cc-surface);
  border-color: var(--cc-border);
  color: var(--legacy-gold);
}
.page-link:hover { background-color: var(--cc-surface-3); color: var(--legacy-gold-2); }
.page-item.active .page-link { background-color: var(--legacy-gold); border-color: var(--legacy-gold); color: var(--legacy-black-2); }
.page-item.disabled .page-link { background-color: var(--cc-surface); color: var(--cc-muted); border-color: var(--cc-border); }
