﻿/* =========================================================
   ESTRELLA FOOTBALL ACADEMY â€” Premium Platform Rebuild
   Design tokens: Deep Navy / White / Orange
   ========================================================= */
:root{
  --color-white: #ffffff;
  --color-navy: #071426;
  --color-orange: #f2540e;
  --color-text: #071426;
  --color-muted: rgba(7,20,38,0.68);
  --color-border: rgba(7,20,38,0.14);
  --color-surface: rgba(7,20,38,0.04);
  --color-surface-strong: rgba(7,20,38,0.08);
  --color-overlay: rgba(7,20,38,0.52);
  --color-disabled: rgba(7,20,38,0.34);
  --color-on-dark-muted: rgba(255,255,255,0.72);
  --color-on-dark-soft: rgba(255,255,255,0.10);

  --space-xs: 6px;
  --space-sm: 10px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 36px;
  --space-2xl: 56px;

  --card-padding-x: 24px;
  --card-padding-y: 22px;
  --card-gap: 14px;
  --card-title-gap: 10px;
  --card-body-gap: 8px;

  --font-family-primary: 'Manrope', -apple-system, sans-serif;
  --font-family-display: 'Oswald', 'Arial Narrow', sans-serif;
  --font-family-mono: 'JetBrains Mono', monospace;
  --font-size-xs: 11px;
  --font-size-sm: 13px;
  --font-size-base: 15px;
  --font-size-lg: 18px;
  --font-size-xl: 22px;
  --font-size-2xl: 30px;
  --font-size-3xl: 44px;
  --font-size-display: 68px;

  --navy: var(--color-navy);
  --navy-deep: var(--color-navy);
  --navy-mid: var(--color-navy);
  --maroon: var(--color-orange);
  --maroon-deep: var(--color-navy);
  --yellow: var(--color-orange);
  --yellow-bright: var(--color-orange);
  --yellow-deep: var(--color-orange);
  --white: var(--color-white);
  --offwhite: var(--color-surface);
  --ink: var(--color-text);
  --grey: var(--color-muted);
  --line: var(--color-border);
  --line-dark: rgba(255,255,255,0.14);
  --glass-bg: rgba(255,255,255,0.08);
  --glass-brd: rgba(255,255,255,0.18);

  --f-display: var(--font-family-display);
  --f-body: var(--font-family-primary);
  --f-mono: var(--font-family-mono);

  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;
  --radius: var(--radius-md);
  --shadow-sm: 0 8px 24px rgba(7,20,38,0.06);
  --shadow-md: 0 18px 44px rgba(7,20,38,0.12);
  --shadow-orange: 0 10px 24px rgba(245,166,35,0.24);
  --shadow-yellow: var(--shadow-orange);
  --container: 1220px;
  --container-width: var(--container);
  --section-space-sm: 56px;
  --section-space-lg: 88px;
  --transition-fast: .15s ease;
  --transition-normal: .22s ease;
  --transition-slow: .38s ease;
  --ease-standard: cubic-bezier(.2, 0, .2, 1);
  --ease-emphasized: cubic-bezier(.2, 0, 0, 1);
  --header-height: 68px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ overflow-x:hidden; }
/* Global icon default â€” every <svg> in this build is an inline icon with a
   viewBox but no width/height attribute. Without this rule the browser falls
   back to a default intrinsic size (often 300x150px), which is what was
   blowing up the WhatsApp button and hero CTA icons. Sizing to 1em ties every
   icon to its surrounding font-size automatically; specific components below
   (e.g. .card-icon svg, .hero-rays svg) override this where a different size
   or a full-bleed fill is needed. */
svg{ width:1em; height:1em; display:inline-block; vertical-align:-0.14em; flex-shrink:0; }
html, body { overflow-x: hidden; } body{
  margin:0; font-family:var(--f-body); color:var(--color-text); background:var(--color-white);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
p a,.policy-article a,.form-note a,.registration-check a,.breadcrumb a{ text-decoration:underline; text-decoration-color:rgba(245,166,35,.55); text-underline-offset:3px; transition:color var(--transition-fast), text-decoration-color var(--transition-fast); }
p a:hover,.policy-article a:hover,.form-note a:hover,.registration-check a:hover,.breadcrumb a:hover{ color:var(--color-orange); text-decoration-color:currentColor; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--f-display); margin:0; line-height:1.08; text-transform:uppercase; letter-spacing:0.01em; }
p{ margin:0; }
h1,h2,h3,h4,p,li,dt,dd,a,button,label,span,strong,b,small,td,th{ overflow-wrap:anywhere; }
.container{ max-width:var(--container); margin:0 auto; padding:0 20px; }
@media(min-width:768px){ .container{ padding:0 40px; } }
@media(max-width:380px){ .container{ padding-left:16px; padding-right:16px; } }
:focus-visible{ outline:3px solid var(--color-orange); outline-offset:3px; }
@media(prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .js-motion .reveal,.js-motion .motion-item{ opacity:1 !important; transform:none !important; }
  .js-motion body > main{ opacity:1 !important; transform:none !important; }
  .js-motion .player-login-card form > *,.js-motion .player-login-secure{ opacity:1 !important; transform:none !important; }
}

/* Signature accent: the crest star, used sparingly as a premium marker */
.star-mark{ display:inline-block; width:1em; height:1em; }
.star-divider{ display:flex; align-items:center; gap:14px; margin:0 0 18px; }
.star-divider::before,.star-divider::after{ content:""; flex:1; height:1px; background:var(--line); }
.star-divider svg{ width:15px; height:15px; flex-shrink:0; color:var(--yellow-deep); }
.eyebrow{ font-family:var(--f-mono); font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--color-navy); display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.eyebrow svg{ width:12px; height:12px; }
.eyebrow.on-dark{ color:var(--yellow-bright); }

/* Buttons */
.btn{ position:relative; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:44px; max-width:100%; font-family:var(--f-display); font-weight:600; text-transform:uppercase; letter-spacing:.04em; font-size:14.5px; padding:15px 28px; border-radius:var(--radius); border:1.5px solid transparent; transition:transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast); white-space:normal; text-align:center; line-height:1.25; }
.btn::before{ content:""; position:absolute; inset:auto auto 50% 50%; width:0; height:0; border-radius:50%; background:rgba(255,255,255,.22); transform:translate(-50%,50%); opacity:0; pointer-events:none; transition:width .42s var(--ease-standard), height .42s var(--ease-standard), opacity .42s var(--ease-standard); }
.btn:hover::before,.btn:focus-visible::before{ width:220%; height:220%; opacity:1; }
.btn:active{ transform:translateY(1px); filter:saturate(.96); }
.btn svg,.btn span:last-child{ transition:transform var(--transition-fast); }
.btn:hover svg{ transform:translateX(2px); }
.btn-yellow{ background:var(--color-orange); color:var(--color-navy); box-shadow:var(--shadow-orange); }
.btn-yellow:hover{ background:var(--color-orange); box-shadow:0 14px 30px rgba(245,166,35,.30); transform:translateY(-2px); }
.btn-outline{ background:transparent; border-color:currentColor; color:inherit; }
.btn-outline:hover{ border-color:var(--color-orange); color:var(--color-orange); }
.btn-navy{ background:var(--color-navy); color:var(--color-white); }
.btn-navy:hover{ background:rgba(7,20,38,.90); transform:translateY(-2px); }
.btn-maroon{ background:var(--color-navy); color:var(--color-white); }
.btn-maroon:hover{ transform:translateY(-2px); }
.btn-block{ width:100%; }
.btn-sm{ padding:10px 18px; font-size:12.5px; }
.btn[disabled]{ opacity:.5; cursor:not-allowed; transform:none !important; }

/* Glass utility */
.glass{ background:var(--glass-bg); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border:1px solid var(--glass-brd); }

/* Reusable UI system */
.btn-primary,.btn-yellow{ background:var(--color-orange); color:var(--color-navy); box-shadow:var(--shadow-orange); }
.btn-secondary,.btn-navy,.btn-maroon{ background:var(--color-navy); color:var(--color-white); }
.btn-text{ padding:8px 4px; border-color:transparent; background:transparent; color:var(--color-navy); box-shadow:none; }
.btn-text:hover{ color:var(--color-orange); transform:none; }
.btn-danger{ background:transparent; border-color:rgba(7,20,38,.34); color:var(--color-navy); }
.btn-danger:hover{ border-color:var(--color-orange); background:rgba(245,166,35,.10); color:var(--color-navy); }
.btn-loading,.btn[aria-busy="true"]{ position:relative; color:transparent !important; pointer-events:none; }
.btn-loading::after{ content:""; position:absolute; width:1em; height:1em; border-radius:50%; border:2px solid currentColor; border-top-color:transparent; color:var(--color-navy); animation:uiSpin .7s linear infinite; }
.btn[aria-busy="true"]::after{ content:""; position:absolute; width:1em; height:1em; border-radius:50%; border:2px solid var(--color-navy); border-top-color:transparent; animation:uiSpin .7s linear infinite; }
.btn-full-mobile{ width:auto; }
.icon-btn,.admin-icon-btn,.admin-menu-btn,.portal-icon-btn,.portal-menu-btn{ min-width:42px; min-height:42px; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-white); color:var(--color-navy); display:inline-flex; align-items:center; justify-content:center; transition:transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast); }
.icon-btn:hover,.admin-icon-btn:hover,.admin-menu-btn:hover,.portal-icon-btn:hover,.portal-menu-btn:hover{ transform:translateY(-2px) scale(1.015); border-color:var(--color-orange); background:var(--color-white); color:var(--color-navy); box-shadow:0 8px 18px rgba(7,20,38,.08); }
.btn:disabled,.btn[aria-disabled="true"],.icon-btn:disabled{ opacity:.58; cursor:not-allowed; pointer-events:none; box-shadow:none; }

.ui-card,.premium-card,.card,.portal-panel,.portal-alert,.download-card,.admin-panel,.admin-stat-card,.admin-report-card,.admin-chart-card,.review-card,.fee-summary,.payment-box,.confirmation-card{ border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); }
.ui-card{ padding:var(--space-lg); }
.premium-card{ padding:var(--card-padding-y) var(--card-padding-x); }
.ui-card-compact{ padding:var(--space-md); }
.ui-card-interactive{ transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal); }
.ui-card-interactive:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:rgba(245,166,35,.42); }
:where(.premium-card,.card,.program-card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card,.review-card,.fee-summary,.payment-box,.confirmation-card){ display:flex; flex-direction:column; align-items:flex-start; gap:0; min-width:0; justify-content:flex-start; text-align:left; }
:where(.premium-card,.card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card,.review-card,.fee-summary,.payment-box,.confirmation-card) > *{ position:relative; z-index:2; width:100%; }
:where(.premium-card,.card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card,.review-card,.fee-summary,.payment-box,.confirmation-card) :where(h2,h3,h4){ margin:0 0 10px; text-wrap:balance; line-height:1.15; max-width:100%; display:block; }
:where(.premium-card,.card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card,.review-card,.fee-summary,.payment-box,.confirmation-card) :where(p,small){ margin:0; line-height:1.62; max-width:100%; display:block; }
:where(.premium-card,.card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card,.review-card,.fee-summary,.payment-box,.confirmation-card) :where(.btn,.program-card-actions){ margin-top:auto; }
:where(.premium-card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card) > .card-icon + :where(h2,h3,h4),
:where(.premium-card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card) > .premium-card__badge + :where(h2,h3,h4),
:where(.premium-card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card) > span + :where(h2,h3,h4){ margin-top:0; }
:where(.premium-card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card) > .card-icon + :where(h2,h3,h4) + :where(p,small),
:where(.premium-card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card) > .premium-card__badge + :where(h2,h3,h4) + :where(p,small),
:where(.premium-card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.download-card,.portal-stat-card,.admin-stat-card,.admin-report-card,.admin-chart-card) > span + :where(h2,h3,h4) + :where(p,small){ margin-top:0; }

.premium-card,
.card,
.program-feature-card,
.program-index-card,
.contact-info-card,
.contact-location-card,
.trial-process li{ position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,250,252,.98)); border:1px solid rgba(7,20,38,.08); border-radius:var(--radius-lg); box-shadow:0 18px 44px rgba(7,20,38,.06); gap:0; }
.premium-card::before,
.card::before,
.program-feature-card::before,
.program-index-card::before,
.contact-info-card::before,
.contact-location-card::before,
.trial-process li::before{ content:''; position:absolute; left:0; right:0; top:0; height:4px; background:linear-gradient(90deg, var(--color-orange), rgba(245,166,35,.7)); transform:scaleX(.62); transform-origin:left; transition:transform var(--transition-normal), opacity var(--transition-normal); opacity:.96; z-index:1; }
.premium-card::after,
.card::after,
.program-feature-card::after,
.program-index-card::after,
.contact-info-card::after,
.contact-location-card::after,
.trial-process li::after{ content:''; position:absolute; inset:auto -20px -26px auto; width:120px; height:120px; border-radius:50%; background:radial-gradient(circle, rgba(245,166,35,.20), rgba(245,166,35,0) 70%); pointer-events:none; z-index:0; opacity:.52; transition:opacity var(--transition-normal), transform var(--transition-normal); }
.premium-card:hover::before,
.card:hover::before,
.program-feature-card:hover::before,
.program-index-card:hover::before,
.contact-info-card:hover::before,
.contact-location-card:hover::before,
.trial-process li:hover::before{ transform:scaleX(1); }
.premium-card:hover::after,
.card:hover::after,
.program-feature-card:hover::after,
.program-index-card:hover::after,
.contact-info-card:hover::after,
.contact-location-card:hover::after,
.trial-process li:hover::after{ transform:translate(-4px,-4px); opacity:.8; }
.premium-card:hover,
.card:hover,
.program-feature-card:hover,
.program-index-card:hover,
.contact-info-card:hover,
.contact-location-card:hover,
.trial-process li:hover{ transform:translateY(-6px); box-shadow:0 24px 58px rgba(7,20,38,.11); border-color:rgba(245,166,35,.28); }
.premium-card:focus-within,
.card:focus-within,
.program-feature-card:focus-within,
.program-index-card:focus-within,
.contact-info-card:focus-within,
.contact-location-card:focus-within,
.trial-process li:focus-within{ outline:3px solid rgba(245,166,35,.22); outline-offset:4px; }
.card-icon{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:16px; background:rgba(245,166,35,.10); color:var(--color-orange); border:1px solid rgba(245,166,35,.20); box-shadow:0 10px 24px rgba(245,166,35,.08); margin:0 0 14px; transition:transform var(--transition-normal), background var(--transition-normal), color var(--transition-normal); flex-shrink:0; align-self:flex-start; }
.card-icon svg{ width:22px; height:22px; }
.premium-card:hover .card-icon,
.card:hover .card-icon,
.program-feature-card:hover .card-icon,
.contact-info-card:hover .card-icon,
.contact-location-card:hover .card-icon{ transform:translateY(-2px) scale(1.04); background:rgba(245,166,35,.16); }
.premium-card__badge,
.program-feature-card span,
.program-index-card span,
.program-age,
.home-hero-preview span,
.stage-node span{ display:inline-flex; align-items:center; justify-content:center; min-width:42px; min-height:42px; border-radius:14px; background:rgba(245,166,35,.12); color:var(--color-orange); font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:0 12px; border:1px solid rgba(245,166,35,.18); box-shadow:0 10px 22px rgba(245,166,35,.08); transition:transform var(--transition-normal), background var(--transition-normal), color var(--transition-normal), box-shadow var(--transition-normal); flex-shrink:0; }
.premium-card:hover .premium-card__badge,
.program-feature-card:hover span,
.program-index-card:hover span,
.program-card:hover .program-age,
.home-hero-preview:hover span,
.player-stage:hover .stage-node span{ transform:translateY(-2px); background:rgba(245,166,35,.16); box-shadow:0 12px 28px rgba(245,166,35,.12); }
.program-index-card{ padding:26px 24px 28px; }
.program-index-card h2{ margin:0; }
.program-feature-card{ padding:24px 24px 30px; }
.program-feature-card h3{ margin:0 0 12px; }
.trial-process li{ margin:0; padding:22px 18px 20px 18px; display:grid; grid-template-columns:auto 1fr; gap:14px; border-radius:16px; }
.premium-card--light{ background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,250,252,.98)); }
.premium-card h3,
.premium-card h2,
.premium-card h4{ margin:0 0 8px; }
.premium-card p,
.premium-card small{ margin:0; }
.premium-card--dark{ background:linear-gradient(180deg, rgba(7,20,38,.94), rgba(9,27,49,.88)); color:var(--color-white); border-color:rgba(255,255,255,.09); }
.premium-card--dark .card-icon{ background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.20); color:var(--color-orange); }
.premium-card--stat{ padding:18px; min-height:138px; }
.premium-card--dashboard{ box-shadow:0 12px 28px rgba(7,20,38,.06); }
.premium-card--compact{ padding:18px; }
.trial-process li::before{ content:counter(trial-process, decimal-leading-zero); font-family:var(--f-mono); color:var(--color-orange); font-size:15px; letter-spacing:.1em; width:34px; height:34px; display:grid; place-items:center; background:rgba(245,166,35,.08); border-radius:50%; position:relative; top:0; left:auto; right:auto; }
.trial-process li strong{ margin:0 0 6px; display:block; color:var(--color-navy); }
.trial-process li p{ margin:0; color:var(--color-muted); line-height:1.6; font-size:15px; }

.field label,.form-label{ display:block; margin-bottom:var(--space-xs); font-family:var(--f-mono); font-size:var(--font-size-xs); letter-spacing:.05em; text-transform:uppercase; color:var(--color-navy); }
.field label,.form-label{ transition:color var(--transition-fast), transform var(--transition-fast); transform-origin:left center; }
.field:focus-within label,.field:focus-within .form-label{ color:var(--color-navy); transform:translateY(-1px); }
.field input,.field select,.field textarea,.form-control,.admin-search input,.admin-filters input,.admin-filters select,.admin-form input,.admin-form select,.admin-form textarea{ width:100%; min-height:42px; border:1.5px solid var(--color-border); border-radius:var(--radius); padding:12px 14px; font-family:var(--f-body); font-size:var(--font-size-base); color:var(--color-text); background:var(--color-white); transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast), transform var(--transition-fast); }
.field textarea,.form-control textarea,textarea.form-control{ min-height:110px; resize:vertical; }
.field input:hover,.field select:hover,.field textarea:hover,.form-control:hover{ border-color:rgba(7,20,38,.28); }
.field input:focus,.field select:focus,.field textarea:focus,.form-control:focus{ border-color:var(--color-orange); outline:none; background:var(--color-white); box-shadow:0 0 0 3px rgba(245,166,35,.16), 0 8px 22px rgba(7,20,38,.06); transform:translateY(-1px); }
.field input:disabled,.field select:disabled,.field textarea:disabled,.form-control:disabled{ background:var(--color-surface); color:var(--color-disabled); cursor:not-allowed; }
.field input[readonly],.field textarea[readonly],.form-control[readonly]{ background:var(--color-surface); }
.field.invalid input,.field.invalid select,.field.invalid textarea,.form-control.is-invalid{ border-color:var(--color-orange); box-shadow:0 0 0 3px rgba(245,166,35,.16); }
.helper-text,.form-note{ margin-top:6px; color:var(--color-muted); font-size:var(--font-size-sm); line-height:1.5; }
.field-error,.validation-message{ min-height:18px; margin:6px 0 0; color:var(--color-navy); font-size:12px; font-weight:800; opacity:.001; transform:translateY(-2px); transition:opacity var(--transition-fast), transform var(--transition-fast); }
.field-error:not(:empty),.validation-message:not(:empty){ opacity:1; transform:none; }
.required-indicator{ color:var(--color-orange); }
.checkbox-field,.radio-field,.registration-check,.payment-methods label,.permission-grid label{ min-height:44px; display:flex; align-items:flex-start; gap:10px; color:var(--color-navy); }
input[type="checkbox"],input[type="radio"]{ accent-color:var(--color-orange); }

.badge,.status-chip,.ui-chip{ display:inline-flex; align-items:center; gap:7px; border-radius:var(--radius-pill); border:1px solid var(--color-border); font-family:var(--f-mono); text-transform:uppercase; line-height:1.2; }
.status-chip{ padding:5px 10px; font-size:11px; font-weight:800; }
.status-chip::before,.status-chip > span[aria-hidden="true"]{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.72; }
.status-chip.ok,.status-chip.info{ background:rgba(7,20,38,.07); color:var(--color-navy); }
.status-chip.pending{ background:rgba(245,166,35,.16); color:var(--color-navy); border-color:rgba(245,166,35,.34); }
.status-chip.danger{ background:var(--color-white); color:var(--color-navy); border-color:rgba(7,20,38,.34); }

.table-wrap,.responsive-table,.admin-table-wrap{ width:100%; overflow-x:auto; border-radius:var(--radius-lg); scrollbar-width:thin; }
.table-wrap::before,.responsive-table::before,.admin-table-wrap::before,.home-pathway-track::before,.trial-step-list::before,.week-grid::before{ content:"Swipe to view"; display:block; margin:0 0 8px; font-family:var(--f-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-muted); }
@media(min-width:900px){ .table-wrap::before,.responsive-table::before,.admin-table-wrap::before,.home-pathway-track::before,.trial-step-list::before,.week-grid::before{ display:none; } }
.data-table{ width:100%; border-collapse:collapse; font-size:13.5px; background:var(--color-white); border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--color-border); }
.data-table th{ text-align:left; padding:13px 16px; background:var(--color-navy); color:var(--color-white); font-family:var(--f-display); text-transform:uppercase; font-size:11.5px; letter-spacing:.03em; font-weight:500; }
.data-table td{ padding:12px 16px; border-top:1px solid var(--color-border); color:var(--color-text); vertical-align:top; }
.data-table tbody tr{ transition:background var(--transition-fast); }
.data-table tbody tr:hover{ background:var(--color-surface); }
.data-table tr.is-selected{ background:rgba(245,166,35,.10); }
.table-empty,.empty-state{ color:var(--color-muted); line-height:1.55; }
.program-highlight-list dt,.trial-process li::before,.contact-location-card span,.session-list span,.week-card span,.portal-alert span,.review-card dt,.fee-summary dt,.payment-summary span,.admin-stat-card span,.admin-calendar span,.admin-calendar small,.small-caps-label{ color:var(--color-navy); }

.ui-modal,.admin-modal{ position:fixed; inset:0; z-index:90; display:grid; place-items:center; padding:20px; background:var(--color-overlay); opacity:0; transition:opacity var(--transition-normal); }
.ui-modal.is-open,.admin-modal.is-open{ opacity:1; }
.ui-modal[hidden],.admin-modal[hidden],.ui-toast[hidden],.admin-toast[hidden]{ display:none; }
.ui-dialog,.admin-modal-card{ position:relative; width:min(460px,100%); max-height:calc(100vh - 40px); overflow:auto; padding:24px; border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-md); transform:scale(.985) translateY(8px); transition:transform var(--transition-normal); }
.ui-modal.is-open .ui-dialog,.admin-modal.is-open .admin-modal-card{ transform:none; }
.ui-dialog-close,.admin-modal-card > button{ position:absolute; top:12px; right:12px; width:34px; height:34px; border:1px solid var(--color-border); border-radius:50%; background:var(--color-white); color:var(--color-navy); }
.ui-scroll-locked{ overflow:hidden; }

.ui-toast,.admin-toast{ position:fixed; right:20px; bottom:20px; z-index:100; max-width:min(360px,calc(100vw - 40px)); padding:13px 16px; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-navy); color:var(--color-white); box-shadow:var(--shadow-md); opacity:0; transform:translateY(8px); transition:opacity var(--transition-normal), transform var(--transition-normal); }
.ui-toast.is-open,.admin-toast.is-open{ opacity:1; transform:none; }
.ui-alert{ display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-surface); color:var(--color-navy); line-height:1.55; }
.ui-alert-warning,.ui-alert-error{ border-color:rgba(245,166,35,.34); background:rgba(245,166,35,.10); }

.ui-pagination,.admin-pagination{ display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; color:var(--color-muted); font-size:13px; }
.ui-pagination button,.admin-pagination button{ min-height:38px; border:1px solid var(--color-border); border-radius:var(--radius); padding:8px 12px; background:var(--color-white); color:var(--color-navy); }
.ui-pagination button[aria-current="page"]{ border-color:var(--color-orange); background:rgba(245,166,35,.14); font-weight:800; }

.tabs{ display:flex; gap:8px; overflow-x:auto; scrollbar-width:thin; }
.tabs [role="tab"]{ flex:0 0 auto; min-height:42px; border:1px solid var(--color-border); border-radius:var(--radius-pill); padding:9px 14px; background:var(--color-white); color:var(--color-muted); font-weight:800; }
.tabs [role="tab"][aria-selected="true"]{ color:var(--color-navy); border-color:rgba(245,166,35,.55); background:rgba(245,166,35,.16); }

.loading-spinner{ width:28px; height:28px; border-radius:50%; border:3px solid var(--color-border); border-top-color:var(--color-orange); animation:uiSpin .8s linear infinite; }
.skeleton-row,.skeleton-card{ position:relative; overflow:hidden; background:linear-gradient(90deg,var(--color-surface),var(--color-surface-strong),var(--color-surface)); background-size:220% 100%; animation:portalSkeleton 1.6s ease infinite; }
.skeleton-card{ min-height:120px; border-radius:var(--radius-lg); border:1px solid var(--color-border); }
.skeleton-row{ height:42px; border-radius:var(--radius); }
@keyframes uiSpin{ to{ transform:rotate(360deg); } }

@media(max-width:680px){
  .btn-full-mobile{ width:100%; }
  .ui-toast,.admin-toast{ right:14px; bottom:14px; max-width:calc(100vw - 28px); }
  .ui-dialog,.admin-modal-card{ padding:22px; }
  .site-footer{ padding:36px 0 20px; text-align:center; }
  .footer-grid{ gap:24px; }
  .footer-grid > *{ min-width:0; }
  .footer-grid > div:first-child{ display:flex; flex-direction:column; align-items:center; }
  .footer-brand{ justify-content:center; margin-bottom:10px; }
  .footer-summary,.footer-mini-copy{ max-width:32rem; margin-left:auto; margin-right:auto; text-align:center; }
  .site-footer h5{ margin-bottom:11px; text-align:center; }
  .site-footer ul{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; }
  .site-footer li{ min-width:0; }
  .site-footer a{ display:flex; justify-content:center; text-align:center; }
  .site-footer a:hover{ transform:translateY(-1px); }
  .social-row{ justify-content:center; margin-top:12px; }
  .footer-bottom{ justify-content:center; align-items:center; flex-direction:column; gap:5px; margin-top:24px; padding-top:14px; text-align:center; }
  .footer-bottom span{ width:100%; }
}

/* Header â€” glassmorphism nav */
.site-header{ position:sticky; top:0; z-index:200; background:rgba(7,20,38,0.94); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-bottom:1px solid rgba(255,255,255,0.12); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding:12px 20px; max-width:var(--container); margin:0 auto; gap:14px; transition:padding var(--transition-normal); }
@media(min-width:768px){ .header-inner{ padding:14px 40px; } }
.brand{ display:flex; align-items:center; gap:10px; }
.brand img{ width:40px; height:40px; border-radius:50%; transition:width var(--transition-normal), height var(--transition-normal), transform var(--transition-fast); }
.brand:hover img,.brand:focus-visible img{ transform:scale(1.035); }
.brand-text{ font-family:var(--f-display); color:var(--white); line-height:1.05; }
.brand-text b{ display:block; font-size:15px; letter-spacing:.03em; text-transform:uppercase; }
.brand-text span{ display:block; font-family:var(--f-mono); font-size:9px; letter-spacing:.14em; color:var(--color-orange); text-transform:uppercase; margin-top:2px; }
.main-nav{ display:none; align-items:center; gap:24px; position:relative; }
.main-nav a{ font-family:var(--f-display); font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:rgba(255,255,255,.82); position:relative; padding:6px 0 12px; transition:color var(--transition-fast); }
/* legacy underline per-link (keeps hover feedback) */
.main-nav a::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:transparent; transform:scaleX(0); transition:transform var(--transition-normal); transform-origin:left; }
.main-nav a:hover::after,.main-nav a.active::after{ background:transparent; transform:scaleX(0); }
.main-nav a.active{ color:var(--color-orange); }

/* Animated shared underline that slides between items */
.main-nav .nav-underline{ position:absolute; left:0; bottom:6px; height:3px; width:48px; background:linear-gradient(90deg,var(--color-orange), rgba(245,130,30,0.85)); border-radius:6px; transform:translateX(0); transition:transform .32s cubic-bezier(.2,.9,.2,1), width .32s cubic-bezier(.2,.9,.2,1), opacity .22s ease; opacity:1; pointer-events:none; z-index:4; }
.main-nav .nav-underline.hidden{ opacity:0; }
@media(prefers-reduced-motion: reduce){ .main-nav .nav-underline{ transition:none !important; } }
  
.nav-actions{ display:none; align-items:center; gap:10px; }
.site-header .nav-actions .btn-outline{ color:var(--color-white); border-color:rgba(255,255,255,.38); }
.site-header .nav-actions .btn-outline:hover{ color:var(--color-orange); border-color:var(--color-orange); }
.site-header{ transition:box-shadow var(--transition-normal), border-color var(--transition-normal), background var(--transition-normal); }
.site-header.is-scrolled{ box-shadow:0 8px 24px rgba(7,20,38,.18); border-bottom-color:rgba(245,166,35,.22); background:rgba(7,20,38,.88); }
.site-header.is-scrolled .header-inner{ padding-top:8px; padding-bottom:8px; }
.site-header.is-scrolled .brand img{ width:36px; height:36px; }
@media(min-width:1050px){ .main-nav{ display:flex; } .nav-actions{ display:flex !important; } .menu-toggle{ display:none !important; } }
.menu-toggle{ display:flex; align-items:center; justify-content:center; width:42px; height:42px; background:transparent; border:1px solid rgba(255,255,255,.25); border-radius:8px; color:var(--white); flex-shrink:0; transition:border-color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast); }
.menu-toggle:hover,.menu-toggle:focus-visible{ border-color:var(--color-orange); background:rgba(255,255,255,.06); transform:translateY(-1px); }
.menu-toggle[aria-expanded="true"]{ border-color:var(--color-orange); transform:rotate(90deg); }
.menu-toggle svg{ width:20px; height:20px; transition:transform var(--transition-normal); }
.mobile-nav{ display:flex; flex-direction:column; max-height:0; opacity:0; transform:translateY(-6px); pointer-events:none; overflow:hidden; overscroll-behavior:contain; background:var(--color-navy); border-top:1px solid rgba(255,255,255,0); padding:0 20px; transition:max-height var(--transition-normal), opacity var(--transition-fast), transform var(--transition-normal), padding var(--transition-normal), border-color var(--transition-normal); }
.mobile-nav.open{ max-height:calc(100vh - var(--header-height)); opacity:1; transform:none; pointer-events:auto; overflow-y:auto; border-top-color:rgba(255,255,255,.12); padding:10px 20px calc(22px + env(safe-area-inset-bottom)); }
.mobile-nav a{ min-height:44px; color:rgba(255,255,255,.88); font-family:var(--f-display); text-transform:uppercase; letter-spacing:.03em; padding:13px 4px; border-bottom:1px solid rgba(255,255,255,.08); font-size:15px; transition:color var(--transition-fast), padding-left var(--transition-fast), background var(--transition-fast); }
.mobile-nav a:hover,.mobile-nav a:focus-visible,.mobile-nav a.active{ color:var(--color-orange); padding-left:8px; }
.mobile-nav .btn{ margin-top:14px; }
@media(min-width:1050px){ .mobile-nav{ display:none; } }

/* Shared premium hero system */
.page-hero{ position:relative; min-height:clamp(520px, 40vw, 640px); display:flex; align-items:center; overflow:hidden; color:var(--white); background:var(--color-navy); isolation:isolate; }
.page-hero--inner{ min-height:clamp(360px, 28vw, 480px); }
.page-hero__media,
.page-hero__overlay,
.page-hero__accent{ position:absolute; inset:0; }
.page-hero__media{ z-index:0; overflow:hidden; }
.page-hero__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 48%; opacity:.78; transform:scale(1.02); transition:transform 14s ease-out, opacity var(--transition-slow); will-change:transform; }
.page-hero:hover .page-hero__media img,
.page-hero:focus-within .page-hero__media img{ transform:scale(1.045); }
.page-hero__overlay{ z-index:1; background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.84) 34%, rgba(4,18,35,.42) 72%, rgba(4,18,35,.16) 100%), linear-gradient(0deg, rgba(4,18,35,.66) 0%, rgba(4,18,35,.2) 46%, rgba(4,18,35,.1) 100%); pointer-events:none; }
.page-hero__accent{ z-index:1; background:radial-gradient(circle at 82% 24%, rgba(245,130,30,.18), rgba(245,130,30,.06) 8%, transparent 28%), linear-gradient(135deg, rgba(255,255,255,.04), transparent 55%); pointer-events:none; }
.page-hero__content{ position:relative; z-index:2; max-width:720px; padding-top:86px; padding-bottom:56px; animation:heroContentIn .58s var(--ease-emphasized) both; }
.page-hero__eyebrow{ margin-bottom:16px; font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--color-orange); }
.page-hero__title{ max-width:12ch; font-size:clamp(2.75rem, 5vw, 5.4rem); line-height:.95; letter-spacing:-.02em; text-wrap:balance; color:var(--white); }
.page-hero__description{ max-width:620px; margin-top:18px; color:rgba(255,255,255,.87); font-size:clamp(1rem, 1.45vw, 1.1rem); line-height:1.68; }
.page-hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:26px; }
.page-hero__actions .btn{ min-height:46px; }
.page-hero__actions .btn-outline{ color:var(--color-white); border-color:rgba(255,255,255,.7); background:rgba(255,255,255,.08); }
.page-hero__actions .btn-outline:hover,
.page-hero__actions .btn-outline:focus-visible{ color:var(--color-white); border-color:var(--color-orange); background:rgba(245,166,35,.16); transform:translateY(-2px); }
.page-hero__side-cards{ position:relative; z-index:2; display:grid; gap:12px; align-self:end; margin:0; }
.page-hero__scroll-cue{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:2; width:26px; height:42px; border:2px solid rgba(255,255,255,.36); border-radius:14px; display:none; }
.page-hero__scroll-cue span{ position:absolute; left:50%; top:8px; width:4px; height:8px; background:var(--color-orange); border-radius:2px; transform:translateX(-50%); animation:scrollCue 1.8s ease 3; }
.page-hero__shell{ position:relative; z-index:2; display:grid; grid-template-columns:minmax(0, 1fr) minmax(260px, 320px); align-items:end; gap:34px; width:100%; padding-top:64px; padding-bottom:56px; }
@keyframes heroContentIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@keyframes heroSettle{ from{ opacity:.54; transform:scale(1.04); } to{ opacity:.78; transform:none; } }
@keyframes scrollCue{ 0%{ opacity:1; top:8px; } 70%{ opacity:0; top:22px; } 100%{ opacity:0; top:8px; } }
.page-hero__media img,
.program-section-hero img,
.contact-hero-media img,
.registration-intro::before,
.policy-hero::before{ animation:heroSettle .72s var(--ease-emphasized) both; }
.page-hero__media img,
.program-section-hero img,
.contact-hero-media img{ transition:transform 14s ease-out, opacity var(--transition-slow); will-change:transform; }
@media(prefers-reduced-motion: reduce){ .page-hero__media img,.program-section-hero img,.contact-hero-media img,.registration-intro::before,.policy-hero::before{ animation:none; transform:none; } }
@media(min-width:768px){ .page-hero__scroll-cue{ display:block; } }
@media(max-width:1024px){ .page-hero{ min-height:clamp(480px, 54vw, 580px); } .page-hero--inner{ min-height:clamp(340px, 38vw, 420px); } .page-hero__shell{ grid-template-columns:minmax(0, 1fr); } .page-hero__side-cards{ grid-template-columns:repeat(3,minmax(0,1fr)); max-width:860px; } }
@media(max-width:760px){ .page-hero{ min-height:clamp(420px, 62vw, 520px); } .page-hero--inner{ min-height:clamp(320px, 56vw, 390px); } .page-hero__shell{ padding-top:68px; padding-bottom:42px; gap:22px; } .page-hero__content{ padding-top:56px; padding-bottom:30px; } .page-hero__title{ max-width:11ch; font-size:clamp(2.2rem, 10vw, 3.1rem); } .page-hero__description{ max-width:100%; font-size:15px; line-height:1.6; margin-top:14px; } .page-hero__actions{ gap:10px; margin-top:22px; } .page-hero__actions .btn{ width:100%; justify-content:center; } .page-hero__side-cards{ grid-template-columns:1fr; max-width:none; } }
@media(max-width:480px){ .page-hero{ min-height:clamp(400px, 72vw, 460px); } .page-hero--inner{ min-height:clamp(300px, 70vw, 360px); } .page-hero__content{ padding-top:48px; padding-bottom:24px; } .page-hero__title{ font-size:clamp(1.95rem, 10vw, 2.6rem); } .page-hero__eyebrow{ margin-bottom:12px; } .page-hero__description{ margin-top:12px; } }

/* Legacy hero aliases for older page templates */
.hero,
.page-hero{ position:relative; min-height:clamp(520px, 40vw, 640px); display:flex; align-items:center; overflow:hidden; color:var(--white); background:var(--color-navy); isolation:isolate; }
.hero-compact{ min-height:clamp(360px, 28vw, 480px); }
.hero-bg,
.page-hero__media{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.hero-bg img,
.page-hero__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 48%; opacity:.78; transform:scale(1.02); }
.hero-rays{ position:absolute; inset:0; z-index:1; opacity:.18; pointer-events:none; }
.hero-rays svg{ width:100%; height:100%; vertical-align:top; }
.hero-vignette{ position:absolute; inset:0; z-index:1; pointer-events:none; box-shadow:inset 0 0 160px 40px rgba(7,20,38,.55); }
.hero-inner,
.page-hero__content{ position:relative; z-index:2; max-width:720px; padding-top:86px; padding-bottom:56px; animation:heroContentIn .58s var(--ease-emphasized) both; }
.hero-sub,
.page-hero__description{ max-width:620px; margin-top:18px; color:rgba(255,255,255,.87); font-size:clamp(1rem, 1.45vw, 1.1rem); line-height:1.68; }
.hero-ctas,
.page-hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:26px; }
.hero-ctas .btn,
.page-hero__actions .btn{ min-height:46px; }

/* Trust bar â€” floating glass overlap on the hero edge */
.trust-bar-wrap{ position:relative; z-index:20; margin-top:-38px; margin-bottom:28px; padding:0 20px; }
@media(min-width:768px){ .trust-bar-wrap{ padding:0 40px; margin-top:-46px; margin-bottom:40px; } }
.trust-bar{ max-width:var(--container); margin:0 auto; background:rgba(7,20,38,.92); backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px); border:1px solid var(--glass-brd); border-radius:var(--radius-lg); padding:20px 22px; box-shadow:var(--shadow-md), inset 0 1px 0 rgba(255,255,255,.16); }
.trust-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px 14px; }
@media(min-width:768px){ .trust-row{ grid-template-columns:repeat(4,1fr); } }
.trust-item{ display:flex; align-items:center; gap:10px; }
.trust-item svg{ width:23px; height:23px; flex-shrink:0; color:var(--color-orange); }
.trust-item b{ display:block; font-family:var(--f-display); font-size:12.5px; letter-spacing:.02em; text-transform:uppercase; color:var(--white); text-shadow:0 1px 4px rgba(7,20,38,.5); }
.trust-item span{ display:block; font-size:11px; color:rgba(255,255,255,.78); text-shadow:0 1px 3px rgba(7,20,38,.5); }

/* Sections */
.section{ position:relative; padding:var(--section-space-sm) 0; }
@media(min-width:768px){ .section{ padding:var(--section-space-lg) 0; } }
.section-offwhite{ background:linear-gradient(180deg, rgba(248,249,252,.94), rgba(255,255,255,1)); }
.section-navy{ background:linear-gradient(180deg, #071427 0%, #061124 100%); color:var(--white); }
.section-navy::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 12% 18%, rgba(255,255,255,.06), transparent 26%), radial-gradient(circle at 82% 30%, rgba(245,166,35,.12), transparent 22%); pointer-events:none; }
.section-navy-grad{ background:var(--color-navy); color:var(--white); }
.section-maroon{ background:var(--color-navy); color:var(--white); }
.section-head{ max-width:680px; margin-bottom:44px; position:relative; z-index:1; }
.section-head h2{ font-size:clamp(28px,4.6vw,46px); line-height:1.02; }
.section-head p{ margin-top:16px; font-size:16px; line-height:1.7; color:var(--grey); }
.section-navy .section-head p,.section-navy-grad .section-head p,.section-maroon .section-head p{ color:rgba(255,255,255,.78); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head.center .star-divider{ justify-content:center; }
.section-head.center .star-divider::before,.section-head.center .star-divider::after{ max-width:60px; }

/* Grid */
.grid{ display:grid; gap:24px; min-width:0; }
.grid > *{ min-width:0; }
.grid-2{ grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.grid-3{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.grid-4{ grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
@media(min-width:640px){ .grid-4{ grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); } }
@media(min-width:900px){ .grid-2{ grid-template-columns:repeat(2,1fr); } .grid-3{ grid-template-columns:repeat(3,1fr); } .grid-4{ grid-template-columns:repeat(4,1fr); } }
.two-col-media{ display:grid; grid-template-columns:1fr; gap:32px; align-items:center; min-width:0; }
.two-col-media > *{ min-width:0; }
.wizard-track{ display:flex; gap:6px; overflow-x:auto; padding-bottom:10px; margin-bottom:26px; scrollbar-width:thin; min-width:0; }
@media(max-width:900px){ .section-head{text-align:center;} .section-head.center{ text-align:center; } }

/* Cards */
.card{ position:relative; overflow:hidden; background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,250,252,.98)); border:1px solid rgba(7,20,38,.08); border-radius:var(--radius-lg); padding:28px; box-shadow:0 18px 44px rgba(7,20,38,.06); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease; }
.card::before{ content:''; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg, var(--color-orange), rgba(245,166,35,.7)); }
.card:hover,.card:focus-within{ transform:translateY(-3px); box-shadow:0 22px 54px rgba(7,20,38,.10); border-color:rgba(245,166,35,.25); }
.card-icon{ display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:18px; background:rgba(245,166,35,.10); color:var(--color-orange); border:1px solid rgba(245,166,35,.20); box-shadow:0 10px 24px rgba(245,166,35,.08); margin:0 0 16px; }
.card-icon svg{ width:22px; height:22px; }
.card h3{ font-size:19px; margin:0 0 10px; letter-spacing:0; color:var(--navy-deep); }
.card p{ font-size:15px; line-height:1.75; color:var(--grey); margin:0; }

/* Program cards */
.program-card{ position:relative; border-radius:18px; overflow:hidden; background:linear-gradient(180deg, rgba(7,20,38,.96), rgba(7,20,38,.88)); border:1px solid rgba(255,255,255,.08); box-shadow:0 18px 40px rgba(7,20,38,.08); transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal); }
.program-card__link{ display:block; position:relative; height:100%; color:var(--white); text-decoration:none; }
.program-card__media{ position:absolute; inset:0; background-color:var(--navy-deep); background-size:cover; background-position:center; background-repeat:no-repeat; transform:scale(1); transition:transform 8s ease-out, filter var(--transition-normal); will-change:transform; filter:saturate(.92) contrast(1.04); }
.program-card__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(4,18,35,.08) 0%, rgba(4,18,35,.2) 35%, rgba(4,18,35,.64) 100%); }
.program-card__media--academy{ background-image:radial-gradient(circle at 18% 18%, rgba(255,255,255,.18), transparent 24%), linear-gradient(135deg, rgba(245,166,35,.22), rgba(7,20,38,.02) 40%, rgba(7,20,38,.78) 100%); }
.program-card__media--international{ background-image:radial-gradient(circle at 80% 24%, rgba(245,166,35,.18), transparent 26%), linear-gradient(135deg, rgba(255,255,255,.08), rgba(7,20,38,.05) 38%, rgba(7,20,38,.82) 100%); }
.program-card__media--trial{ background-image:radial-gradient(circle at 70% 30%, rgba(255,255,255,.16), transparent 24%), linear-gradient(145deg, rgba(245,166,35,.14), rgba(7,20,38,.02) 40%, rgba(7,20,38,.78) 100%); }
.program-card__overlay{ position:absolute; inset:0; background:linear-gradient(120deg, rgba(7,20,38,.2), rgba(7,20,38,.4)); pointer-events:none; }
.program-card__content{ position:relative; z-index:2; display:flex; flex-direction:column; min-height:100%; padding:24px 24px 22px; justify-content:flex-end; min-height:280px; }
.program-card__number{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; margin-bottom:14px; border:1px solid rgba(255,255,255,.16); border-radius:12px; background:rgba(255,255,255,.08); color:var(--color-orange); font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; }
.program-card__title{ margin:0 0 10px; font-size:clamp(22px,2.3vw,28px); line-height:1.08; font-family:var(--f-display); letter-spacing:.01em; color:var(--white); }
.program-card__description{ margin:0 0 18px; max-width:32ch; font-size:14px; line-height:1.62; color:rgba(255,255,255,.84); }
.program-card__cta{ margin-top:auto; display:inline-flex; align-items:center; gap:10px; font-weight:700; color:var(--color-orange); font-family:var(--f-display); letter-spacing:.02em; }
.program-card__cta .arrow{ display:inline-block; transform:translateX(0); transition:transform var(--transition-normal); }
.program-card::after{ content:""; position:absolute; top:0; right:0; width:86px; height:86px; background:linear-gradient(135deg, rgba(245,130,30,.16), rgba(245,130,30,.02)); clip-path:polygon(45% 0,100% 0,100% 55%); z-index:2; pointer-events:none; }
.program-card:hover, .program-card:focus-within{ transform:translateY(-6px); box-shadow:0 24px 48px rgba(7,20,38,.15); border-color:rgba(245,166,35,.34); }
.program-card:hover .program-card__media, .program-card:focus-within .program-card__media{ transform:scale(1.04); }
.program-card:hover .program-card__cta .arrow, .program-card:focus-within .program-card__cta .arrow{ transform:translateX(6px); }
.program-card:focus-within{ outline:3px solid rgba(245,166,35,.18); outline-offset:4px; }

/* grid layout */
.home-program-grid{ display:grid; gap:20px; grid-template-columns:1fr; }
.programs-grid{ align-items:stretch; }
.program-card--feature{ min-height:460px; }
.program-card--secondary{ min-height:220px; }
@media(min-width:860px){ .programs-grid{ grid-template-columns:1.15fr .85fr; grid-template-rows:repeat(2,minmax(220px,auto)); } .program-card--feature{ grid-row:1 / span 2; min-height:100%; } .program-card--secondary{ min-height:220px; } }
@media(min-width:1200px){ .program-card--feature{ min-height:500px; } }
@media(min-width:860px) and (max-width:1199px){ .program-card--feature .program-card__content{ min-height:460px; } }

/* accessibility and motion */
@media(prefers-reduced-motion: reduce){ .program-card__media{ transition:none !important; } .program-card:hover .program-card__media{ transform:none !important; } .program-card:hover .program-card__cta .arrow{ transform:none !important; } .premium-card:hover, .card:hover, .program-feature-card:hover, .program-index-card:hover, .contact-info-card:hover, .contact-location-card:hover, .trial-process li:hover, .home-stats-grid .stat-card:hover{ transform:none !important; } }

/* small screens */
@media(max-width:768px){ .program-card--feature, .program-card--secondary{ min-height:auto; } .program-card__content{ min-height:260px; } }


/* Glass card (for dark sections) */
.card-glass{ background:var(--glass-bg); backdrop-filter:blur(16px); border:1px solid var(--glass-brd); border-radius:var(--radius-lg); padding:26px; color:var(--white); }
.card-glass p{ color:rgba(255,255,255,.75); font-size:14.5px; line-height:1.6; }
.card-glass h3{ font-size:18.5px; margin-bottom:8px; color:var(--white); }
.card-glass .card-icon{ background:rgba(255,255,255,0.10); }
.card-glass .card-icon svg{ color:var(--color-orange); }

/* Stats counter â€” glassmorphism over photography */
.stats-band{ position:relative; overflow:hidden; padding:64px 0; background:var(--navy-deep); }
.stats-band-bg{ position:absolute; inset:0; z-index:0; }
.stats-band-bg img{ width:100%; height:100%; object-fit:cover; opacity:.28; filter:saturate(1.05); }
.stats-band-bg::after{ content:""; position:absolute; inset:0; background:rgba(7,20,38,.88); }
.stats-band .container{ position:relative; z-index:1; }
.stats-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; text-align:center; }
@media(min-width:800px){ .stats-row{ grid-template-columns:repeat(5,1fr); } .stat-glass-wide{ grid-column:span 1; } }
@media(max-width:799px){ .stat-glass-wide{ grid-column:span 2; } }
.stat-glass-card{ background:var(--glass-bg); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border:1px solid var(--glass-brd); border-radius:16px; padding:22px 14px; box-shadow:0 8px 32px rgba(7,20,38,.25), inset 0 1px 0 rgba(255,255,255,.12); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:112px; }
.stat-glass-card b{ display:flex; align-items:center; justify-content:center; min-height:40px; font-family:var(--f-display); font-size:clamp(26px,4.6vw,38px); color:var(--color-orange); text-shadow:none; line-height:1; }
.stat-glass-card span{ display:block; font-family:var(--f-mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.72); }

/* Coach card */
.coach-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); }
.coach-photo{ height:0; padding-top:105%; position:relative; background:var(--color-navy); background-size:cover; background-position:center; }
.coach-photo .coach-initials{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:var(--f-display); font-size:44px; color:rgba(255,255,255,.9); }
.coach-photo .coach-tag{ position:absolute; bottom:10px; left:10px; background:rgba(7,20,38,.78); backdrop-filter:blur(4px); color:var(--color-orange); font-family:var(--f-mono); font-size:10px; letter-spacing:.05em; text-transform:uppercase; padding:5px 10px; border-radius:6px; }
.coach-info{ padding:20px; }
.coach-info h3{ font-size:17px; margin-bottom:2px; }
.coach-info .coach-role{ font-family:var(--f-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--color-orange); margin-bottom:10px; display:block; }
.coach-info p{ font-size:13.5px; color:var(--grey); line-height:1.55; }
.coach-meta{ display:flex; gap:14px; margin-top:12px; font-size:11.5px; color:var(--grey); }
.coach-meta div{ display:flex; align-items:center; gap:5px; }
.coach-meta svg{ width:13px; height:13px; color:var(--color-orange); }

/* Pathway stepper */
.pathway{ display:flex; flex-direction:column; gap:0; }
@media(min-width:900px){ .pathway{ flex-direction:row; align-items:flex-start; } }
.pathway-step{ flex:1; position:relative; padding:0 0 28px 40px; }
@media(min-width:900px){ .pathway-step{ padding:44px 14px 0; text-align:center; } }
.pathway-step::before{ content:attr(data-n); position:absolute; left:0; top:0; width:28px; height:28px; border-radius:50%; background:var(--yellow); color:var(--navy-deep); font-family:var(--f-display); font-size:13px; display:flex; align-items:center; justify-content:center; }
@media(min-width:900px){ .pathway-step::before{ left:50%; transform:translateX(-50%); top:0; } }
.pathway-step::after{ content:""; position:absolute; left:13px; top:28px; bottom:0; width:2px; background:repeating-linear-gradient(180deg, rgba(255,255,255,.35) 0 6px, transparent 6px 12px); }
.pathway-step:last-child::after{ display:none; }
@media(min-width:900px){ .pathway-step::after{ top:14px; left:60%; right:-40%; bottom:auto; width:auto; height:2px; background:repeating-linear-gradient(90deg, rgba(255,255,255,.35) 0 6px, transparent 6px 12px); } }
.pathway-step h4{ font-size:14.5px; margin-bottom:5px; letter-spacing:0; text-transform:none; font-family:var(--f-body); font-weight:700; }
.pathway-step p{ font-size:12.5px; color:rgba(255,255,255,.65); line-height:1.5; }

/* Testimonials */
.testi-card{ background:var(--white); border-radius:var(--radius-lg); padding:26px; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.testi-stars{ display:flex; gap:3px; margin-bottom:12px; color:var(--yellow-deep); }
.testi-stars svg{ width:15px; height:15px; }
.testi-card p{ font-size:15px; line-height:1.65; color:var(--color-muted); font-style:italic; }
.testi-who{ display:flex; align-items:center; gap:11px; margin-top:18px; }
.testi-avatar{ width:42px; height:42px; border-radius:50%; background:var(--color-navy); color:var(--white); display:flex; align-items:center; justify-content:center; font-family:var(--f-display); font-size:15px; flex-shrink:0; }
.testi-who b{ display:block; font-size:13.5px; }
.testi-who span{ display:block; font-size:11.5px; color:var(--grey); }

/* Success story card */
.success-card{ background:var(--navy); border-radius:var(--radius-lg); overflow:hidden; color:var(--white); border:1px solid rgba(245,166,35,.22); }
.success-card-top{ padding:20px 20px 0; display:flex; align-items:center; gap:12px; }
.success-badge{ width:44px; height:44px; border-radius:var(--radius); background:rgba(245,166,35,.14); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.success-badge svg{ width:22px; height:22px; color:var(--color-orange); }
.success-card h3{ font-size:16px; }
.success-card .success-tag{ font-family:var(--f-mono); font-size:10.5px; color:var(--yellow-bright); text-transform:uppercase; letter-spacing:.05em; }
.success-card p{ padding:14px 20px 22px; font-size:13.5px; color:rgba(255,255,255,.72); line-height:1.6; }

/* Badges */
.badge-row{ display:flex; flex-wrap:wrap; gap:10px; }
.badge{ display:flex; align-items:center; gap:8px; background:var(--white); border:1px solid var(--line); border-radius:999px; padding:8px 14px 8px 8px; box-shadow:var(--shadow-sm); }
.badge.badge-dark{ background:var(--glass-bg); border-color:var(--glass-brd); backdrop-filter:blur(10px); }
.badge .badge-icon{ width:28px; height:28px; border-radius:50%; background:var(--yellow); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.badge .badge-icon svg{ width:15px; height:15px; color:var(--navy-deep); }
.badge b{ display:block; font-size:12.5px; text-transform:uppercase; font-family:var(--f-display); letter-spacing:.02em; color:var(--navy); }
.badge.badge-dark b{ color:var(--white); }
.badge span{ font-size:10.5px; color:var(--grey); }
.badge.badge-dark span{ color:rgba(255,255,255,.6); }

/* Location cards */
.location-card{ background:var(--white); border-radius:var(--radius-lg); border:1px solid var(--line); box-shadow:var(--shadow-sm); overflow:hidden; }
.location-map{ height:200px; }
.location-map iframe{ width:100%; height:100%; border:0; display:block; }
.location-html{ overflow-x: hidden; }
.location-body h3{ font-size:19px; margin-bottom:10px; }
.location-meta{ display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.location-meta div{ display:flex; gap:9px; font-size:13.5px; color:var(--grey); align-items:flex-start; }
.location-meta svg{ width:16px; height:16px; color:var(--color-orange); flex-shrink:0; margin-top:1px; }

/* Forms */
.form-panel{ background:var(--white); border-radius:var(--radius-lg); padding:26px; box-shadow:var(--shadow-md); border:1px solid var(--line); }
.form-panel h3{ font-size:20px; margin-bottom:6px; }
.form-panel .form-sub{ font-size:13.5px; color:var(--grey); margin-bottom:20px; text-transform:none; font-family:var(--f-body); }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:11.5px; font-family:var(--f-mono); letter-spacing:.05em; text-transform:uppercase; color:var(--navy); margin-bottom:6px; }
.field input,.field select,.field textarea{ width:100%; padding:13px 14px; border:1.5px solid var(--color-border); border-radius:var(--radius); font-family:var(--f-body); font-size:14.5px; background:var(--color-white); color:var(--color-text); transition:border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.field input:focus,.field select:focus,.field textarea:focus{ border-color:var(--color-orange); outline:none; background:var(--white); box-shadow:0 0 0 3px rgba(245,166,35,.16); }
.field-row{ display:grid; grid-template-columns:1fr; gap:16px; min-width:0; }
.field-row > *{ min-width:0; }
@media(min-width:560px){ .field-row{ grid-template-columns:1fr 1fr; } }
.form-note{ font-size:11.5px; color:var(--color-muted); margin-top:10px; line-height:1.5; }
.form-success{ display:none; text-align:center; padding:20px 6px; opacity:0; transform:translateY(8px); transition:opacity var(--transition-normal), transform var(--transition-normal); }
.form-success.show,.portal-auth-card.is-submitted .form-success{ display:block; opacity:1; transform:none; }
.form-success svg{ width:52px; height:52px; color:var(--color-orange); margin:0 auto 14px; }
.form-success h3{ margin-bottom:8px; }
.form-success p{ color:var(--grey); font-size:14px; line-height:1.6; }

/* Step wizard (registration/payment) */
.wizard-step{ flex:0 0 auto; display:flex; align-items:center; gap:8px; padding:9px 14px; border-radius:999px; background:var(--offwhite); border:1px solid var(--line); font-family:var(--f-mono); font-size:11px; letter-spacing:.03em; text-transform:uppercase; color:var(--grey); white-space:nowrap; }
.wizard-step.active{ background:var(--navy); color:var(--yellow-bright); border-color:var(--navy); }
.wizard-step .wz-n{ width:18px; height:18px; border-radius:50%; background:rgba(7,20,38,.08); display:flex; align-items:center; justify-content:center; font-size:10px; flex-shrink:0; }
.wizard-step.active .wz-n{ background:var(--yellow); color:var(--navy-deep); }

/* FAQ accordion */
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{ width:100%; min-height:52px; text-align:left; background:none; border:none; padding:18px 4px; display:grid; grid-template-columns:minmax(0,1fr) auto; justify-content:space-between; align-items:center; gap:16px; font-family:var(--f-display); font-size:15px; text-transform:none; letter-spacing:0; color:var(--navy); }
.faq-q{ transition:color var(--transition-fast), background var(--transition-fast); }
.faq-q:hover,.faq-q:focus-visible{ color:var(--color-orange); }
.faq-q svg{ width:18px; height:18px; flex-shrink:0; transition:transform var(--transition-normal); color:var(--color-orange); }
.faq-item.open .faq-q svg{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; opacity:0; transition:max-height var(--transition-normal), opacity var(--transition-fast); }
.faq-item.open .faq-a{ max-height:400px; }
.faq-item.open .faq-a{ opacity:1; }
.faq-a p{ padding:0 4px 18px; font-size:14.5px; color:var(--grey); line-height:1.65; }

/* Timeline */
.timeline{ position:relative; padding-left:26px; border-left:2px dashed var(--line); display:flex; flex-direction:column; gap:26px; }
.timeline-item{ position:relative; }
.timeline-item::before{ content:""; position:absolute; left:-32px; top:2px; width:12px; height:12px; border-radius:50%; background:var(--yellow); border:2px solid var(--navy); }
.timeline-item .t-label{ font-family:var(--f-mono); font-size:11px; letter-spacing:.07em; text-transform:uppercase; color:var(--color-orange); }
.timeline-item h4{ font-size:16px; margin:4px 0 6px; text-transform:none; letter-spacing:0; }
.timeline-item p{ font-size:14px; color:var(--grey); line-height:1.6; }

/* Core values */
.value-item{ display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
.value-item:last-child{ border-bottom:none; }
.value-num{ font-family:var(--f-display); font-size:22px; color:var(--yellow-deep); flex-shrink:0; width:42px; }
.value-item h4{ font-size:16px; text-transform:none; letter-spacing:0; margin-bottom:5px; }
.value-item p{ font-size:14px; color:var(--grey); line-height:1.6; }

/* Sticky mobile CTA */
.mobile-cta-bar{ position:fixed; left:0; right:0; bottom:0; z-index:300; background:rgba(7,20,38,0.94); backdrop-filter:blur(14px); border-top:1px solid rgba(245,166,35,.24); padding:10px 14px calc(10px + env(safe-area-inset-bottom)); display:flex; gap:10px; box-shadow:0 -8px 24px rgba(7,20,38,.25); }
.mobile-cta-bar a{ flex:1; }
.mobile-cta-bar .btn{ width:100%; padding:13px 10px; font-size:12.5px; }
.wa-btn{ background:var(--color-orange); color:var(--color-navy); }
.wa-btn:hover{ background:var(--color-orange); }
@media(min-width:1050px){ .mobile-cta-bar{ display:none; } }
body:has(.mobile-cta-bar){ padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
@media(min-width:1050px){ html, body { overflow-x: hidden; } body{ padding-bottom:0; } }

/* Footer */
.site-footer{ width:100%; box-sizing:border-box; background:var(--navy-deep); color:rgba(255,255,255,.75); padding:44px 0 22px; overflow:hidden; }
.footer-grid{ display:grid; grid-template-columns:1fr; gap:24px; align-items:start; }
@media(min-width:700px){ .footer-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 38px; } }
@media(min-width:1024px){ .footer-grid{ grid-template-columns:1.45fr repeat(3,minmax(0,1fr)); gap:36px; } }
.footer-brand{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.footer-brand img{ width:38px; height:38px; border-radius:50%; }
.footer-brand b{ font-family:var(--f-display); color:var(--white); text-transform:uppercase; font-size:15px; }
.site-footer h5{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--yellow-bright); margin-bottom:12px; }
.site-footer ul{ display:flex; flex-direction:column; gap:8px; }
.site-footer a{ display:inline-flex; max-width:100%; font-size:13.5px; line-height:1.35; color:rgba(255,255,255,.72); overflow-wrap:anywhere; transition:color var(--transition-fast), transform var(--transition-fast); }
.site-footer a:hover{ color:var(--yellow-bright); transform:translateX(2px); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); margin-top:28px; padding-top:16px; display:flex; flex-wrap:wrap; gap:10px; justify-content:space-between; font-size:12px; line-height:1.5; color:rgba(255,255,255,.5); }
.social-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.social-row a{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; transition:transform var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast); }
.social-row a:hover,.social-row a:focus-visible{ transform:translateY(-2px); border-color:rgba(245,166,35,.78); background:rgba(245,166,35,.10); color:var(--yellow-bright); }
.social-row svg{ width:16px; height:16px; }

/* Urgency / demo banners */
.urgency-band{ background:var(--color-orange); color:var(--color-navy); padding:11px 0; overflow:hidden; }
.urgency-band .container{ display:flex; align-items:center; gap:10px; font-family:var(--f-mono); font-size:11.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; }
.urgency-band svg{ width:15px; height:15px; flex-shrink:0; }
.demo-note{ background:var(--navy-deep); color:rgba(255,255,255,.75); font-family:var(--f-mono); font-size:11.5px; text-align:center; padding:10px 16px; letter-spacing:.02em; }
.demo-note b{ color:var(--yellow-bright); }
.demo-note a{ color:var(--yellow-bright); text-decoration:underline; }

/* Breadcrumb */
.breadcrumb{ font-family:var(--f-mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:rgba(255,255,255,.55); display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.breadcrumb a{ color:rgba(255,255,255,.55); }
.breadcrumb a:hover{ color:var(--yellow-bright); }
.breadcrumb span.sep{ opacity:.5; }
.breadcrumb .current{ color:var(--yellow-bright); }

/* misc */
.text-center{ text-align:center; }
.coming-soon-inner{ max-width:640px; margin:0 auto; }
.coming-soon-icon{ width:70px; height:70px; border-radius:50%; background:var(--color-orange); display:flex; align-items:center; justify-content:center; margin:0 auto 20px; color:var(--color-navy); }
.coming-soon-eyebrow{ justify-content:center; }
.coming-soon-title{ font-size:clamp(28px,6vw,44px); }
.coming-soon-copy{ margin-left:auto; margin-right:auto; }
.coming-soon-actions{ justify-content:center; }
.footer-mini-copy{ font-size:13.5px; line-height:1.7; max-width:34ch; }
.footer-directions-link{ font-size:13px; display:inline-block; margin-top:10px; }
.header-on-dark-link{ border-color:rgba(255,255,255,.3); color:var(--color-white); }
.small-caps-label{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-muted); }
.reveal,.motion-item{ opacity:1; transform:none; }
.js-motion body > main{ opacity:0; transform:translateY(12px) scale(.998); transition:opacity .44s var(--ease-emphasized), transform .44s var(--ease-emphasized); }
.js-motion.page-ready body > main{ opacity:1; transform:none; }
.js-motion .reveal,.js-motion .motion-item{ opacity:0; transform:translateY(16px); transition:opacity var(--transition-slow), transform var(--transition-slow), border-color var(--transition-normal), box-shadow var(--transition-normal); }
.js-motion .motion-left{ transform:translateX(-18px); }
.js-motion .motion-right{ transform:translateX(18px); }
.js-motion .motion-scale{ transform:scale(.985); }
.js-motion .motion-rotate{ transform:translateY(16px) rotate(.45deg); }
.js-motion .reveal.in,.js-motion .motion-item.in{ opacity:1; transform:none; }
.motion-stagger > *{ transition-delay:calc(var(--motion-index, 0) * 70ms); }
.section-head.motion-item.in h2::after,.section-head.reveal.in h2::after{ transform:scaleX(1); }
.section-head h2::after{ content:""; display:block; width:54px; height:3px; margin-top:14px; background:var(--color-orange); transform:scaleX(.28); transform-origin:left; transition:transform var(--transition-slow); }
.section-head.center h2::after{ margin-left:auto; margin-right:auto; transform-origin:center; }
.two-col-media{ display:grid; grid-template-columns:1fr; gap:32px; align-items:center; }
.ig-tile{ transition:transform .2s ease; }
.ig-tile:hover,.ig-tile:focus-within{ transform:translateY(-2px); }
.ig-tile-icon{ position:absolute; inset:0; background:rgba(7,20,38,0); display:flex; align-items:center; justify-content:center; color:transparent; font-size:26px; transition:all .2s ease; }
.ig-tile:hover .ig-tile-icon{ background:rgba(7,20,38,.45); color:var(--color-white); }
@media(min-width:900px){ .two-col-media{ grid-template-columns:1fr 1fr; gap:52px; } }
@media(max-width:900px){
  .js-motion .motion-left,.js-motion .motion-right,.js-motion .motion-rotate{ transform:translateY(16px); }
}
.media-frame{ position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); }
.media-frame img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; transition:transform 520ms var(--ease-emphasized); }
.media-frame:hover img,.media-frame:focus-within img{ transform:scale(1.035); }
.media-frame .frame-tag{ position:absolute; bottom:14px; left:14px; background:rgba(7,20,38,.82); backdrop-filter:blur(3px); color:var(--white); padding:8px 13px; border-radius:8px; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; display:flex; align-items:center; gap:7px; }
.media-frame .frame-tag svg{ width:13px; height:13px; color:var(--yellow-bright); }

.card,.program-card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card,.location-card,.coach-card,.testi-card,.success-card,.review-card,.fee-summary,.payment-box,.confirmation-card,.portal-panel,.portal-alert,.download-card,.admin-panel,.admin-stat-card,.admin-report-card,.admin-chart-card{ transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal), background var(--transition-normal); will-change:transform; }
.program-card img,.location-card img,.coach-card img,.testi-card img,.success-card img,.contact-location-card img{ transition:transform 520ms var(--ease-emphasized); }
.program-card:hover img,.program-card:focus-within img,.location-card:hover img,.location-card:focus-within img,.coach-card:hover img,.coach-card:focus-within img,.success-card:hover img,.success-card:focus-within img,.contact-location-card:hover img,.contact-location-card:focus-within img{ transform:scale(1.035); }
.card:hover .btn svg,.program-card:hover .btn svg,.program-feature-card:hover .btn svg,.program-index-card:hover .btn svg,.contact-location-card:hover .btn svg,.download-card:hover .btn svg{ transform:translateX(3px); }
.btn svg{ transition:transform var(--transition-fast); }
.portal-panel:hover,.portal-alert:hover,.download-card:hover,.admin-panel:hover{ box-shadow:var(--shadow-md); border-color:rgba(245,166,35,.34); }

/* Portal / Admin shell */
.portal-shell{ display:flex; min-height:100vh; background:var(--offwhite); }
.portal-sidebar{ width:250px; background:var(--navy-deep); color:var(--white); flex-shrink:0; display:none; flex-direction:column; padding:22px 16px; }
@media(min-width:900px){ .portal-sidebar{ display:flex; } }
.portal-sidebar .brand{ margin-bottom:30px; padding:0 6px; }
.portal-nav a{ display:flex; align-items:center; gap:11px; padding:11px 12px; border-radius:9px; font-size:13.5px; color:rgba(255,255,255,.68); margin-bottom:2px; }
.portal-nav a svg{ width:17px; height:17px; flex-shrink:0; }
.portal-nav a.active{ background:rgba(245,166,35,.14); color:var(--color-orange); }
.portal-nav a:hover:not(.active){ background:rgba(255,255,255,.06); color:var(--white); }
.portal-nav .nav-section-label{ font-family:var(--f-mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.35); padding:16px 12px 6px; }
.portal-main{ flex:1; min-width:0; }
.portal-topbar{ background:var(--white); border-bottom:1px solid var(--line); padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.portal-topbar h1{ font-size:19px; text-transform:none; letter-spacing:0; }
.portal-content{ padding:26px 24px 60px; }
.portal-mobile-nav{ display:flex; overflow-x:auto; gap:8px; background:var(--navy-deep); padding:12px 16px; }
@media(min-width:900px){ .portal-mobile-nav{ display:none; } }
.portal-mobile-nav a{ flex:0 0 auto; font-family:var(--f-mono); font-size:11px; text-transform:uppercase; color:rgba(255,255,255,.7); padding:7px 12px; border-radius:999px; background:rgba(255,255,255,.06); white-space:nowrap; }
.portal-mobile-nav a.active{ background:var(--yellow); color:var(--navy-deep); }

.kpi-card{ background:var(--white); border:1px solid var(--line); border-radius:14px; padding:20px; }
.kpi-card span.kpi-label{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--grey); }
.kpi-card b{ display:block; font-family:var(--f-display); font-size:28px; color:var(--navy); margin-top:6px; }
.kpi-card .kpi-icon{ width:38px; height:38px; border-radius:10px; background:var(--offwhite); display:flex; align-items:center; justify-content:center; margin-bottom:12px; }
.kpi-card .kpi-icon svg{ width:19px; height:19px; color:var(--color-orange); }

.login-shell{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--color-navy); padding:26px; position:relative; overflow:hidden; }
.login-star-deco{ position:absolute; top:50%; left:50%; width:520px; height:520px; transform:translate(-50%,-50%); opacity:.06; color:var(--yellow); pointer-events:none; }
.login-star-deco svg{ width:100%; height:100%; }
.login-card{ position:relative; z-index:2; width:100%; max-width:420px; background:rgba(255,255,255,.07); backdrop-filter:blur(20px); border:1px solid var(--glass-brd); border-radius:20px; padding:36px 30px; color:var(--white); }
.login-card .brand{ justify-content:center; margin-bottom:22px; }
.login-card h1{ font-size:24px; text-align:center; margin-bottom:6px; }
.login-card .login-sub{ text-align:center; font-size:13.5px; color:rgba(255,255,255,.65); margin-bottom:26px; text-transform:none; font-family:var(--f-body); }
.login-card .field label{ color:rgba(255,255,255,.75); }
.login-card .field input{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:var(--white); }
.login-card .field input::placeholder{ color:rgba(255,255,255,.4); }
.login-links{ display:flex; justify-content:space-between; font-size:12.5px; margin-top:14px; }
.login-links a{ color:var(--yellow-bright); }

/* Homepage redesign */
.home-page{ padding-bottom:0; }

/* Interactive player pathway (homepage) */
.home-pathway{ position:relative; overflow:hidden; }
.home-pathway .section-head{ position:relative; z-index:2; margin-bottom:30px; }
.home-pathway .section-head h2{ max-width:760px; margin:0 auto; }
.player-pathway{ position:relative; padding:6px 0 8px; }
.player-track{ position:relative; padding:28px 12px 22px; border-radius:26px; border:1px solid rgba(7,20,38,.08); background:linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(241,245,248,.96) 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.95), 0 18px 48px rgba(7,20,38,.06); overflow:hidden; isolation:isolate; }
.player-track__marker{ position:absolute; inset:auto auto -6px 50%; transform:translateX(-50%); font-family:var(--f-display); font-size:clamp(72px, 11vw, 120px); font-weight:800; letter-spacing:.22em; text-transform:uppercase; color:rgba(7,20,38,.06); pointer-events:none; user-select:none; white-space:nowrap; z-index:0; }
.player-track::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 12% 14%, rgba(245,166,35,.16), transparent 24%), linear-gradient(90deg, rgba(7,20,38,.03) 1px, transparent 1px), linear-gradient(180deg, rgba(7,20,38,.03) 1px, transparent 1px), linear-gradient(90deg, transparent 0%, rgba(255,255,255,.35) 50%, transparent 100%); background-size:100% 100%, 34px 34px, 34px 34px, 100% 100%; opacity:.7; pointer-events:none; }
.player-track::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(255,255,255,.2), transparent 22%, transparent 78%, rgba(255,255,255,.2)); opacity:.45; pointer-events:none; }
.player-path-svg{ position:absolute; left:0; top:120px; width:100%; height:172px; z-index:0; pointer-events:none; }
.player-path-base{ fill:none; stroke:rgba(7,20,38,.14); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.player-path-progress{ fill:none; stroke:rgba(245,166,35,.98); stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1000; stroke-dashoffset:1000; transition:stroke-dashoffset 1.4s cubic-bezier(.2,.8,.2,1); filter:drop-shadow(0 0 10px rgba(245,166,35,.16)); }
.player-stages{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:18px 16px; list-style:none; margin:0; padding:28px 24px 6px; position:relative; z-index:2; }
.player-stage{ position:relative; display:flex; flex-direction:column; align-items:center; gap:16px; padding:0; cursor:pointer; outline:none; opacity:0; transform:translateY(18px); transition:opacity .45s ease, transform .45s ease, filter .25s ease; }
.player-stage.is-revealed{ opacity:1; transform:none; }
.player-stage:nth-child(2){ transition-delay:120ms; }
.player-stage:nth-child(3){ transition-delay:240ms; }
.player-stage:nth-child(4){ transition-delay:360ms; }
.player-stage__card{ width:100%; max-width:190px; padding:16px 16px 18px; border:1px solid rgba(7,20,38,.10); border-radius:16px; background:rgba(255,255,255,.86); box-shadow:0 14px 30px rgba(7,20,38,.05); backdrop-filter:blur(8px); transition:transform var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal), background var(--transition-normal); }
.player-stage:nth-child(odd) .player-stage__card{ margin-top:64px; }
.player-stage:nth-child(even) .player-stage__card{ margin-top:0; transform:translateY(-10px); }
.player-stage .stage-kicker{ display:block; font-family:var(--f-mono); font-size:10px; line-height:1.4; letter-spacing:.14em; color:var(--color-orange); text-transform:uppercase; margin-bottom:7px; }
.player-stage .stage-badge{ display:inline-flex; align-items:center; gap:6px; margin:0 0 8px; padding:4px 8px; border-radius:999px; background:rgba(245,166,35,.10); color:var(--color-orange); font-family:var(--f-mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.player-stage .stage-title{ font-family:var(--f-display); font-size:17px; line-height:1.14; margin:0 0 8px; color:var(--color-navy); text-transform:none; }
.player-stage .stage-desc{ margin:0; color:var(--color-muted); font-size:13px; line-height:1.55; }
.stage-node{ position:relative; width:64px; height:64px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(242,246,251,.95)); border:1px solid rgba(7,20,38,.12); box-shadow:0 10px 22px rgba(7,20,38,.08); transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal), background var(--transition-normal); }
.stage-node::before{ content:""; position:absolute; inset:-8px; border-radius:50%; border:1px solid rgba(245,166,35,.18); opacity:0; transition:opacity var(--transition-normal); }
.stage-node svg{ width:26px; height:26px; color:var(--color-orange); }
.stage-node__ring{ position:absolute; inset:0; border-radius:50%; border:2px solid rgba(245,166,35,.32); box-shadow:inset 0 0 0 6px rgba(245,166,35,.04), 0 0 0 8px rgba(245,166,35,.02); transition:border-color var(--transition-normal), box-shadow var(--transition-normal); }
.player-stage.is-active .stage-node{ background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,253,.95)); transform:scale(1.04); box-shadow:0 16px 30px rgba(245,166,35,.14); }
.player-stage.is-active .stage-node::before{ opacity:1; }
.player-stage.is-active .stage-node__ring{ border-color:rgba(245,166,35,.72); box-shadow:inset 0 0 0 6px rgba(245,166,35,.06), 0 0 0 8px rgba(245,166,35,.06); }
.player-stage.is-active .player-stage__card{ border-color:rgba(245,166,35,.28); box-shadow:0 16px 34px rgba(7,20,38,.08); transform:translateY(-3px); }
.player-stage:hover .player-stage__card, .player-stage:focus-visible .player-stage__card{ transform:translateY(-4px); border-color:rgba(245,166,35,.28); box-shadow:0 16px 32px rgba(7,20,38,.10); }
.player-stage:hover .stage-node, .player-stage:focus-visible .stage-node{ transform:scale(1.05); box-shadow:0 16px 30px rgba(245,166,35,.14); }
.player-stage:focus-visible{ outline:none; }
.player-stage:focus-visible .stage-node{ outline:2px solid rgba(245,166,35,.24); outline-offset:5px; }
.player-stage--final .stage-node{ width:72px; height:72px; }
.player-stage--final .stage-node__ring{ border-color:rgba(245,166,35,.78); box-shadow:inset 0 0 0 6px rgba(245,166,35,.06), 0 0 0 8px rgba(245,166,35,.08); }
.player-stage--final .player-stage__card{ border-color:rgba(245,166,35,.26); }

@media(min-width:769px) and (max-width:1024px){
  .player-stages{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px 22px; padding:24px 18px 8px; }
  .player-stage:nth-child(odd) .player-stage__card{ margin-top:52px; }
  .player-stage:nth-child(even) .player-stage__card{ margin-top:0; transform:translateY(-8px); }
  .player-path-svg{ top:112px; height:176px; }
}

@media(max-width:768px){
  .player-track{ padding:18px 12px 20px; border-radius:24px; }
  .player-path-svg{ display:none; }
  .player-stages{ grid-template-columns:1fr; gap:14px; padding:0; }
  .player-stage{ flex-direction:row; align-items:flex-start; gap:14px; padding:0 2px 0 0; }
  .player-stage::before{ content:""; position:absolute; top:8px; left:27px; bottom:-12px; width:1px; background:linear-gradient(180deg, rgba(245,166,35,.20), rgba(7,20,38,.10)); }
  .player-stage:last-child::before{ display:none; }
  .player-stage.is-active::before{ background:linear-gradient(180deg, rgba(245,166,35,.52), rgba(245,166,35,.18)); }
  .player-stage:nth-child(odd) .player-stage__card, .player-stage:nth-child(even) .player-stage__card{ margin-top:0; transform:none; }
  .player-stage__card{ max-width:none; padding:14px 14px 16px; }
  .stage-node{ width:56px; height:56px; flex-shrink:0; }
  .player-stage .stage-title{ font-size:16px; }
  .player-stage .stage-desc{ font-size:13px; }
}

@media(prefers-reduced-motion: reduce){
  .player-path-progress{ transition:none !important; }
  .player-stage{ transition:none !important; transform:none !important; }
  .player-stage.is-revealed{ opacity:1; }
  .player-stage:hover .player-stage__card, .player-stage:focus-visible .player-stage__card{ transform:none; }
  .player-stage:hover .stage-node, .player-stage:focus-visible .stage-node{ transform:none; }
}
.home-header .btn-outline{ color:var(--color-white); border-color:rgba(255,255,255,.38); }
.home-header .mobile-nav a.active{ color:var(--color-orange); }
.home-hero{ position:relative; min-height:clamp(460px,45vw,560px); display:flex; align-items:center; overflow:hidden; color:var(--color-white); background:var(--color-navy); isolation:isolate; }
.home-hero-media{ position:absolute; inset:0; }
.home-hero-media img{ width:100%; height:100%; object-fit:cover; object-position:62% 48%; opacity:.72; }
.home-hero-media::before,.home-hero-media::after{ content:""; position:absolute; inset:0; pointer-events:none; }
.home-hero-media::before{ background:linear-gradient(90deg, rgba(4,18,35,.98) 0%, rgba(4,18,35,.84) 36%, rgba(4,18,35,.42) 68%, rgba(4,18,35,.14) 100%); }
/* subtle orange rim light on the right and soft vignette for depth */
.home-hero-media::after{ background: radial-gradient(1200px 420px at 82% 32%, rgba(245,130,30,0.12), rgba(245,130,30,0.06) 6%, rgba(4,18,35,0.16) 28%, rgba(4,18,35,0.18) 48%, rgba(4,18,35,0.12) 100%), linear-gradient(0deg, rgba(4,18,35,.72) 0%, rgba(4,18,35,.20) 32%, rgba(4,18,35,.12) 100%); }
  
/* add gentle image zoom and easing for cinematic feel */
.home-hero-media img{ transition:transform 6s ease-out; will-change:transform; transform-origin:50% 50%; }
.home-hero-media img.is-zoomed{ transform:scale(1.04); }
@keyframes heroSubtleZoom{ from{ transform:scale(1.02); } to{ transform:scale(1.04); } }
.home-hero-media img[data-zoom="auto"]{ animation: heroSubtleZoom 9s ease-out both; }
@media(prefers-reduced-motion: reduce){ .home-hero-media img[data-zoom="auto"]{ animation:none; transform:none; } }
  
.home-hero-shell{ position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,680px) minmax(260px,340px); align-items:center; justify-content:space-between; gap:42px; width:100%; padding-top:60px; padding-bottom:50px; }
.home-hero-inner{ max-width:680px; }
.home-hero .eyebrow{ margin-bottom:12px; }
.home-hero h1{ font-size:clamp(2.6rem,4.5vw,4.2rem); max-width:680px; line-height:1.02; letter-spacing:-.015em; text-wrap:balance; }
.home-hero-copy{ margin-top:18px; max-width:580px; color:rgba(255,255,255,.82); font-size:clamp(15px,1.35vw,17px); line-height:1.58; }
.home-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:24px; }
.home-hero .home-actions .btn{ min-width:156px; min-height:46px; }
.home-hero .btn-outline{ color:var(--color-white); border-color:rgba(255,255,255,.72); background:rgba(255,255,255,.08); backdrop-filter:blur(10px); }
.home-hero .btn-outline:hover,.home-hero .btn-outline:focus-visible{ color:var(--color-white); border-color:var(--color-orange); background:rgba(245,166,35,.16); transform:translateY(-2px); }
.home-hero-previews{ align-self:end; display:grid; gap:10px; margin:0 0 4px; }
.home-hero-preview{ display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:12px; min-height:62px; padding:12px 16px; border:1px solid rgba(255,255,255,.18); border-radius:var(--radius); background:rgba(7,20,38,.44); color:var(--color-white); box-shadow:0 14px 34px rgba(0,0,0,.16); transition:transform var(--transition-normal), border-color var(--transition-normal), background var(--transition-normal), box-shadow var(--transition-normal); position:relative; overflow:hidden; }
.home-hero-preview::before{ content:""; position:absolute; inset:auto 0 0 0; height:2px; background:linear-gradient(90deg, rgba(245,130,30,.95), rgba(245,130,30,.2)); transform:scaleX(.3); transform-origin:left; transition:transform var(--transition-normal); }
.home-hero-preview span{ font-family:var(--f-mono); font-size:10px; letter-spacing:.12em; color:var(--color-orange); }
.home-hero-preview b{ font-family:var(--f-display); font-size:15px; text-transform:uppercase; line-height:1.15; overflow-wrap:normal; }
.home-hero-preview:hover,.home-hero-preview:focus-visible{ transform:translateY(-3px); border-color:rgba(245,166,35,.68); background:rgba(7,20,38,.62); box-shadow:0 22px 38px rgba(0,0,0,.24); }
.home-hero-preview:hover::before,.home-hero-preview:focus-visible::before{ transform:scaleX(1); }
.home-hero-preview:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(245,166,35,.24), 0 22px 38px rgba(0,0,0,.24); }
.home-intro{ background:var(--color-white); }
.home-intro-grid{ display:grid; gap:34px; align-items:end; }
.home-intro-copy{ max-width:580px; }
.home-intro-copy h2,.home-programs h2,.home-pathway h2,.home-final h2{ font-size:clamp(26px,4.2vw,42px); color:var(--color-navy); }
.home-intro-copy p:not(.eyebrow){ margin-top:14px; color:var(--color-muted); font-size:15.5px; line-height:1.7; }
.home-stat-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; background:var(--color-white); }
.home-stat-list div{ padding:18px; border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.home-stat-list div:nth-child(2n){ border-right:0; }
.home-stat-list div:last-child{ grid-column:1/-1; border-bottom:0; }
.home-stat-list dt{ margin:0; font-family:var(--f-display); font-size:clamp(23px,3vw,34px); line-height:1; color:var(--color-navy); }
.home-stat-list dd{ margin:8px 0 0; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-muted); }
.home-program-list{ display:grid; grid-template-columns:1fr; border-top:1px solid var(--color-border); }
.home-program-link{ display:grid; grid-template-columns:auto 1fr; gap:6px 18px; padding:20px 0; border-bottom:1px solid var(--color-border); transition:color .18s ease, transform .18s ease; }
.home-program-link span{ grid-row:span 2; font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; color:var(--color-orange); padding-top:4px; }
.home-program-link strong{ font-family:var(--f-display); font-size:21px; text-transform:uppercase; color:var(--color-navy); }
.home-program-link p{ color:var(--color-muted); font-size:14px; line-height:1.55; }
.home-program-link:hover,.home-program-link:focus-visible{ transform:translateX(3px); }
.home-program-link:hover strong,.home-program-link:focus-visible strong{ color:var(--color-orange); }
.home-section-action{ margin-top:24px; }
.home-pathway-track{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; padding:10px 0 20px; margin:0; list-style:none; }
.home-pathway-track li{ position:relative; padding:38px 16px 16px; min-height:104px; border-top:2px solid var(--color-border); color:var(--color-navy); transition:transform .18s ease, border-color .18s ease; }
.home-pathway-track li::before{ content:""; position:absolute; top:-7px; left:16px; width:12px; height:12px; border-radius:50%; background:var(--color-white); border:2px solid var(--color-orange); }
.home-pathway-track li:hover,.home-pathway-track li:focus-visible{ transform:translateY(-2px); border-color:var(--color-orange); outline:none; }
.home-pathway-track span{ display:block; font-family:var(--f-mono); font-size:10px; letter-spacing:.12em; color:var(--color-orange); margin-bottom:6px; }
.home-pathway-track strong{ display:block; font-size:15px; line-height:1.35; }
.home-final{ padding:54px 0; }
.home-final-grid{ display:grid; gap:34px; align-items:center; }
.home-final h2{ color:var(--color-white); max-width:12ch; }
.home-trust-list{ display:grid; grid-template-columns:1fr; gap:10px; margin:0; padding:0; }
.home-trust-list li{ display:flex; align-items:center; gap:10px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.14); color:var(--color-on-dark-muted); font-weight:700; }
.home-trust-list li::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--color-orange); flex:0 0 auto; }
.footer-summary{ font-size:13.5px; line-height:1.7; max-width:34ch; }

@media(min-width:760px){
  .home-intro-grid{ grid-template-columns:minmax(0, .9fr) minmax(420px, 1.1fr); }
  .home-stat-list{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .home-stat-list div,.home-stat-list div:nth-child(2n){ border-right:1px solid var(--color-border); border-bottom:0; }
  .home-stat-list div:last-child{ grid-column:auto; border-right:0; }
  .home-program-list{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 36px; }
  .home-final-grid{ grid-template-columns:minmax(0,1fr) minmax(320px,.72fr); }
  .home-trust-list{ grid-template-columns:1fr 1fr; gap:0 24px; }
}

/* New stat card styles for homepage */
.home-stats-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:stretch; position:relative; z-index:2; }
.home-stats-grid .stat-card{ background:linear-gradient(180deg, rgba(255,255,255,0.99), rgba(247,248,251,0.97)); border:1px solid rgba(7,20,38,.1); border-radius:14px; padding:20px; box-shadow:0 12px 34px rgba(7,20,38,.06); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:6px; position:relative; overflow:hidden; isolation:isolate; transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal); }
.home-stats-grid .stat-card::before{ content:''; position:absolute; left:0; right:0; top:0; height:4px; background:linear-gradient(90deg, var(--color-orange), rgba(245,166,35,.7)); transform:scaleX(.55); transform-origin:left; transition:transform var(--transition-normal); }
.home-stats-grid .stat-card::after{ content:''; position:absolute; inset:auto 12px 12px auto; width:44px; height:44px; border-radius:14px; background:radial-gradient(circle, rgba(245,130,30,.18), rgba(245,130,30,0)); opacity:.9; pointer-events:none; }
.home-stats-grid .stat-card:hover::before{ transform:scaleX(1); }
.home-stats-grid .stat-number{ font-family:var(--f-display); font-size:clamp(28px,4.2vw,36px); color:var(--color-navy); line-height:1; font-weight:700; }
.home-stats-grid .stat-number[data-count="AFC &amp; AIFF"]{ font-family:var(--f-mono); font-size:13px; color:var(--color-navy); text-transform:none; }
.home-stats-grid .stat-label{ font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-muted); }
.home-stats-grid .stat-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px rgba(7,20,38,.09); border-color:rgba(245,166,35,.28); }
.home-stats-grid .stat-card:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(245,166,35,.2), 0 18px 40px rgba(7,20,38,.09); }
.home-intro{ position:relative; overflow:hidden; background:linear-gradient(180deg, #fdfdfd 0%, #f1f3f7 100%); }
.home-intro::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 18% 18%, rgba(7,20,38,.08), transparent 34%), radial-gradient(circle at 93% 12%, rgba(245,130,30,.08), transparent 28%); pointer-events:none; }
.home-intro__decor{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.home-intro__decor::before{ content:''; position:absolute; inset:-8% 6% auto auto; width:280px; height:280px; border-radius:50%; border:1px solid rgba(7,20,38,.05); transform:rotate(18deg); opacity:.75; }
.home-intro__decor::after{ content:''; position:absolute; left:-12%; bottom:-12%; width:320px; height:180px; border:1px solid rgba(7,20,38,.05); border-radius:50% 50% 0 0; opacity:.3; transform:rotate(-10deg); }
.home-intro__decor .pitch-line,.home-intro__decor .pitch-line-2{ display:none; }
.home-intro-copy{ position:relative; z-index:2; }
.home-intro-copy h2{ position:relative; z-index:2; max-width:14ch; }
.home-intro-copy h2::before{ content:'2019'; position:absolute; left:-4px; top:8px; font-family:var(--f-display); font-size:clamp(86px,12vw,130px); line-height:1; color:rgba(7,20,38,.06); letter-spacing:.04em; z-index:-1; pointer-events:none; }
.home-intro-copy p:not(.eyebrow){ position:relative; z-index:2; }
.home-intro-grid{ position:relative; z-index:2; display:grid; gap:34px; align-items:end; }
.home-stats-grid .stat-card:nth-child(2), .home-stats-grid .stat-card:nth-child(4){ margin-top:14px; }
.reveal.is-visible .home-stats-grid .stat-card{ animation:statCardReveal .42s var(--ease-emphasized) both; }
.reveal.is-visible .home-stats-grid .stat-card:nth-child(2){ animation-delay:70ms; }
.reveal.is-visible .home-stats-grid .stat-card:nth-child(3){ animation-delay:140ms; }
.reveal.is-visible .home-stats-grid .stat-card:nth-child(4){ animation-delay:210ms; }
@keyframes statCardReveal{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }

@media(min-width:760px){ .home-stats-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:560px){ .home-stats-grid{ grid-template-columns:repeat(1,minmax(0,1fr)); } .home-stats-grid .stat-card{ padding:16px; } .home-stats-grid .stat-card:nth-child(2), .home-stats-grid .stat-card:nth-child(4){ margin-top:0; } .reveal.is-visible .home-stats-grid .stat-card{ animation:none; } }

@media(max-width:1024px){
  .home-hero{ min-height:clamp(440px,58vw,540px); }
  .home-hero-shell{ grid-template-columns:minmax(0,680px); padding-top:54px; padding-bottom:44px; }
  .home-hero-previews{ grid-template-columns:repeat(3,minmax(0,1fr)); align-self:auto; max-width:720px; }
  .home-hero-preview{ min-height:56px; }
}

@media(max-width:560px){
  .section{ padding-top:44px; padding-bottom:44px; }
  .section-head{ margin-bottom:22px; }
  .section-head h2{ font-size:clamp(26px,9vw,36px); }
  .grid,.grid-2,.grid-3,.grid-4{ gap:16px; }
  .card,.program-feature-card,.program-index-card,.contact-info-card,.contact-location-card{ padding:18px; }
  .hero,.hero-compact{ min-height:clamp(300px,92vw,380px); }
  .hero-bg img{ opacity:.58; object-position:56% 50%; }
  .hero-bg::before{ background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.84) 62%, rgba(4,18,35,.55) 100%); }
  .hero-inner{ padding-top:44px; padding-bottom:30px; }
  .hero h1{ max-width:14ch; font-size:clamp(32px,9vw,42px); }
  .hero-sub{ margin-top:12px; margin-bottom:18px; font-size:15px; line-height:1.48; }
  .hero-ctas{ gap:10px; }
  .hero-ctas .btn{ flex:1 1 145px; min-height:42px; padding:11px 12px; }
  .home-actions .btn{ width:100%; }
  .home-hero{ min-height:0; }
  .home-hero-media img{ object-position:58% 50%; opacity:.56; }
  .home-hero-media::before{ background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.82) 58%, rgba(4,18,35,.50) 100%); }
  .home-hero-shell{ padding-top:66px; padding-bottom:42px; gap:24px; }
  .home-hero h1{ max-width:12ch; font-size:clamp(40px,13vw,56px); letter-spacing:-.01em; }
  .home-hero-copy{ margin-top:18px; line-height:1.55; }
  .home-actions{ gap:10px; margin-top:24px; }
  .home-hero-previews{ display:none; }
  .home-stat-list{ grid-template-columns:1fr; }
  .home-stat-list div,.home-stat-list div:nth-child(2n){ border-right:0; }
  .home-stat-list div:last-child{ grid-column:auto; }
}

/* Programs and trials pages */
.program-page{ padding-bottom:0; }
.home-programs{ position:relative; overflow:hidden; background:linear-gradient(180deg, #f3f4f7 0%, #f7f8fb 100%); }
.home-programs::before{ content:''; position:absolute; inset:0; background:radial-gradient(circle at 8% 6%, rgba(7,20,38,.06), transparent 28%), linear-gradient(120deg, rgba(7,20,38,.04) 0%, rgba(7,20,38,0) 38%, rgba(7,20,38,.04) 100%); pointer-events:none; }
.home-programs__decor{ position:absolute; inset:0; pointer-events:none; overflow:hidden; }
.home-programs__decor::before{ content:''; position:absolute; inset:-12% -8% auto auto; width:320px; height:320px; border-radius:50%; border:1px solid rgba(7,20,38,.06); transform:rotate(18deg); opacity:.7; }
.home-programs__decor::after{ content:''; position:absolute; left:-10%; bottom:-16%; width:360px; height:200px; border-radius:0 0 46% 46%; border:1px solid rgba(245,166,35,.14); transform:rotate(-8deg); opacity:.8; }
.home-programs .container{ position:relative; z-index:2; }
.home-programs .section-head{ position:relative; z-index:2; }
.home-programs .section-head h2{ position:relative; }
.home-programs .section-head h2::before{ content:'PROGRAMS'; position:absolute; left:0; top:-8px; font-family:var(--f-display); font-size:clamp(80px,12vw,132px); letter-spacing:.08em; color:rgba(7,20,38,.05); z-index:-1; pointer-events:none; }
.home-programs .program-card{ position:relative; overflow:hidden; box-shadow:0 16px 42px rgba(7,20,38,.08); border:1px solid rgba(7,20,38,.08); }
.home-programs .program-card::before{ background:linear-gradient(180deg, rgba(7,20,38,.12) 0%, rgba(7,20,38,.3) 62%, rgba(7,20,38,.48) 100%); }
.home-programs .program-card::after{ background:linear-gradient(135deg, rgba(245,130,30,.14), rgba(245,130,30,.02)); }
.home-programs .program-card:hover{ transform:translateY(-4px); box-shadow:0 22px 50px rgba(7,20,38,.12); }
.home-programs .program-card:hover .program-media{ transform:scale(1.05); }
.home-programs .home-section-action{ position:relative; z-index:2; }
.home-programs .home-section-action .btn{ box-shadow:0 10px 24px rgba(7,20,38,.12); }
.home-programs .home-section-action .btn:hover{ transform:translateY(-2px); }

@media(max-width:560px){ .home-programs{ padding-top:44px; padding-bottom:44px; } .home-programs__decor::before{ width:280px; height:280px; inset:-12% -12% auto auto; } .home-programs__decor::after{ width:280px; height:180px; left:-20%; bottom:-18%; } }
.program-section-hero{ position:relative; min-height:clamp(420px,34vw,520px); display:flex; align-items:center; color:var(--color-white); background:var(--color-navy); overflow:hidden; isolation:isolate; }
.program-cta{ display:inline-flex; align-items:center; gap:10px; font-weight:700; color:var(--color-orange); font-family:var(--f-display); letter-spacing:.02em; }
.program-cta .arrow{ display:inline-block; transform:translateX(0); transition:transform var(--transition-normal); }
.program-card:hover .program-cta .arrow, .program-card:focus-within .program-cta .arrow{ transform:translateX(6px); }
.program-cta-section{ width:100%; box-sizing:border-box; background:var(--color-navy); color:var(--color-white); padding:54px 0; }
.program-cta-section .container{ width:100%; box-sizing:border-box; display:grid; gap:24px; align-items:center; }
.program-cta-section h2{ max-width:14ch; font-size:clamp(28px,4.8vw,46px); color:var(--color-white); }
.program-cta-section p{ margin-top:12px; color:var(--color-on-dark-muted); line-height:1.65; max-width:56ch; }
.program-section-hero img{ position:absolute; inset:0; z-index:-3; width:100%; height:100%; object-fit:cover; object-position:58% 48%; opacity:.70; animation:heroSettle .74s var(--ease-emphasized) both; will-change:transform; }
.program-section-hero::before,.program-section-hero::after{ content:""; position:absolute; inset:0; pointer-events:none; }
.program-section-hero::before{ z-index:-2; background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.78) 44%, rgba(4,18,35,.35) 76%, rgba(4,18,35,.16) 100%); }
.program-section-hero::after{ z-index:-1; background:linear-gradient(0deg, rgba(4,18,35,.70) 0%, rgba(4,18,35,.16) 42%, rgba(4,18,35,.16) 100%); }
.program-section-hero .container{ position:relative; z-index:1; padding-top:82px; padding-bottom:62px; }
.program-section-hero h1{ max-width:680px; font-size:clamp(3rem,5.2vw,4.65rem); line-height:.98; letter-spacing:-.015em; text-wrap:balance; }
.program-section-hero p:not(.eyebrow){ max-width:580px; margin-top:20px; color:rgba(255,255,255,.82); font-size:clamp(16px,1.45vw,18px); line-height:1.62; }
.program-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:28px; }
.program-actions .btn{ min-height:46px; }
.program-actions .btn.btn-outline{ min-width:170px; }
.program-shell{ background:var(--color-white); }
.program-overview-grid{ display:grid; gap:32px; align-items:start; }
.program-lede h2,.program-page .section-head h2{ font-size:clamp(27px,4.4vw,44px); color:var(--color-navy); }
.program-lede p{ margin-top:16px; color:var(--color-muted); line-height:1.75; font-size:16px; max-width:62ch; }
.program-highlight-list{ display:grid; grid-template-columns:1fr; gap:0; border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; }
.program-highlight-list div{ padding:18px; border-bottom:1px solid var(--color-border); background:var(--color-white); }
.program-highlight-list div:last-child{ border-bottom:0; }
.program-highlight-list dt{ margin:0; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--color-orange); }
.program-highlight-list dd{ margin:8px 0 0; color:var(--color-navy); font-weight:800; line-height:1.35; }
.program-card-grid{ display:grid; grid-template-columns:1fr; gap:18px; }
.program-feature-card{ position:relative; overflow:hidden; padding:22px 24px 24px; border:1px solid rgba(7,20,38,.08); border-radius:var(--radius-lg); background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,250,252,.98)); box-shadow:0 18px 44px rgba(7,20,38,.06); transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease; }
.program-feature-card::before{ content:''; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg, var(--color-orange), rgba(245,166,35,.7)); }
.program-feature-card:hover,.program-feature-card:focus-within{ transform:translateY(-3px); box-shadow:0 22px 54px rgba(7,20,38,.10); border-color:rgba(245,166,35,.25); }
.program-feature-card span{ display:inline-flex; width:42px; height:42px; align-items:center; justify-content:center; border-radius:14px; background:rgba(245,166,35,.14); color:var(--color-orange); font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; margin:0 0 14px; }
.program-feature-card h3{ font-size:20px; color:var(--color-navy); margin:0 0 8px; }
.program-feature-card p{ margin:0; color:var(--color-muted); line-height:1.6; font-size:15px; }
.program-eligibility{ display:grid; grid-template-columns:1fr; gap:14px; }
.program-eligibility li{ padding:16px 0; border-bottom:1px solid var(--color-border); color:var(--color-muted); }
.program-eligibility strong{ display:block; margin-bottom:5px; color:var(--color-navy); font-family:var(--f-display); font-size:18px; text-transform:uppercase; }
.program-index-grid{ display:grid; grid-template-columns:1fr; gap:18px; }
.program-index-card{ position:relative; display:flex; flex-direction:column; gap:0; min-height:240px; padding:var(--card-padding-y) var(--card-padding-x); border:1px solid rgba(7,20,38,.08); border-radius:var(--radius-lg); background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,250,252,.98)); box-shadow:0 18px 44px rgba(7,20,38,.06); transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease; }
.program-index-card::before{ content:''; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg, var(--color-orange), rgba(245,166,35,.7)); }
.program-index-card:hover,.program-index-card:focus-within{ transform:translateY(-3px); box-shadow:0 22px 54px rgba(7,20,38,.10); border-color:rgba(245,166,35,.25); }
.program-index-card span{ display:inline-flex; align-items:center; justify-content:center; min-width:42px; min-height:42px; border-radius:14px; background:rgba(245,166,35,.12); color:var(--color-orange); font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:0 12px; }
.program-index-card h2{ font-size:clamp(24px,3vw,32px); color:var(--color-navy); margin:0; }
.program-index-card p{ color:var(--color-muted); line-height:1.7; margin:0; }
.program-index-card .btn{ margin-top:auto; align-self:flex-start; }
.program-whatsapp{ position:fixed; right:18px; bottom:calc(18px + env(safe-area-inset-bottom)); z-index:320; max-width:calc(100vw - 36px); animation:whatsappIn .32s var(--ease-emphasized) both; }
.program-whatsapp .btn{ box-shadow:var(--shadow-orange); }
.program-whatsapp:hover .btn,.program-whatsapp:focus-visible .btn{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(245,166,35,.30); }
@keyframes whatsappIn{ from{ opacity:0; transform:translateY(10px) scale(.98); } to{ opacity:1; transform:none; } }
.trial-info-grid{ display:grid; grid-template-columns:1fr; gap:18px; }
.trial-process{ counter-reset:trial-process; display:grid; grid-template-columns:1fr; gap:12px; }
.trial-process li{ counter-increment:trial-process; position:relative; display:grid; grid-template-columns:auto 1fr; gap:14px; padding:22px 18px 20px 18px; border:1px solid rgba(7,20,38,.08); border-radius:16px; background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,250,252,.98)); box-shadow:0 18px 44px rgba(7,20,38,.06); }
.trial-process li::before{ content:counter(trial-process, decimal-leading-zero); font-family:var(--f-mono); color:var(--color-orange); font-size:15px; letter-spacing:.1em; width:34px; height:34px; display:grid; place-items:center; background:rgba(245,166,35,.08); border-radius:50%; }
.trial-process li strong{ display:block; color:var(--color-navy); margin-bottom:6px; }
.trial-process p{ color:var(--color-muted); line-height:1.6; font-size:15px; margin:0; }
.trial-wizard{ border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:24px; background:var(--color-white); box-shadow:var(--shadow-sm); }
.trial-step-list{ display:flex; gap:8px; overflow-x:auto; padding-bottom:12px; margin-bottom:20px; }
.trial-step-indicator{ flex:0 0 auto; border:1px solid var(--color-border); border-radius:999px; padding:8px 12px; font-family:var(--f-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-muted); background:var(--color-white); transition:background var(--transition-normal), border-color var(--transition-normal), color var(--transition-normal), transform var(--transition-fast); }
.trial-step-indicator.active{ border-color:var(--color-orange); color:var(--color-navy); background:rgba(245,166,35,.16); transform:translateY(-1px); }
.trial-step{ min-height:245px; margin:0; padding:0; border:0; }
.trial-step:not([hidden]){ animation:stepIn .24s var(--ease-standard) both; }
@keyframes stepIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.trial-step legend{ padding:0; }
.trial-step h3{ margin-bottom:16px; font-size:22px; color:var(--color-navy); }
.trial-controls{ display:flex; justify-content:space-between; gap:12px; margin-top:20px; }
.trial-controls .btn[hidden]{ display:none; }
.trial-confirmation{ border:1px solid rgba(245,166,35,.34); border-radius:var(--radius-lg); padding:22px; background:rgba(245,166,35,.10); }
.trial-confirmation p{ color:var(--color-muted); line-height:1.6; }
.trial-wizard.is-confirmed .trial-confirmation{ background:var(--color-white); border-color:var(--color-orange); }

@media(min-width:760px){
  .program-overview-grid{ grid-template-columns:minmax(0, .95fr) minmax(360px, .7fr); }
  .program-highlight-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .program-highlight-list div{ border-right:1px solid var(--color-border); }
  .program-highlight-list div:nth-child(2n){ border-right:0; }
  .program-card-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .program-eligibility{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .program-cta-section .container{ grid-template-columns:1fr auto; }
  .program-index-grid{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .trial-info-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trial-process{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:620px){
  .program-section-hero{ min-height:clamp(300px,82vw,360px); }
  .program-section-hero img{ object-position:56% 50%; opacity:.58; }
  .program-section-hero::before{ background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.84) 62%, rgba(4,18,35,.55) 100%); }
  .program-section-hero .container{ padding-top:44px; padding-bottom:30px; }
  .program-section-hero h1{ max-width:14ch; font-size:clamp(32px,9vw,42px); }
  .program-section-hero p:not(.eyebrow){ margin-top:12px; font-size:15px; line-height:1.48; }
  .program-actions{ gap:10px; margin-top:22px; }
  .program-highlight-list{ grid-template-columns:1fr; }
  .program-highlight-list div,.program-highlight-list div:nth-child(2n){ border-right:0; }
  .program-card-grid{ grid-template-columns:1fr; }
  .trial-wizard{ padding:18px; }
  .trial-step{ min-height:auto; }
  .program-actions .btn,.program-cta .btn,.trial-controls .btn{ width:100%; min-height:46px; padding:13px 16px; }
  .program-section-hero .program-actions .btn{ width:auto; flex:1 1 145px; min-height:42px; padding:11px 12px; }
  .trial-controls{ flex-direction:column-reverse; }
  .program-whatsapp{ left:14px; right:14px; bottom:calc(14px + env(safe-area-inset-bottom)); }
  .program-whatsapp .btn{ width:100%; }
}

/* Contact page redesign */
.contact-page{ padding-bottom:72px; }
.contact-page .mobile-nav a.active{ color:var(--color-orange); }
.contact-hero{ position:relative; min-height:clamp(420px,34vw,520px); display:flex; align-items:center; overflow:hidden; color:var(--color-white); background:var(--color-navy); isolation:isolate; }
.contact-hero-media{ position:absolute; inset:0; }
.contact-hero-media img{ width:100%; height:100%; object-fit:cover; object-position:60% 50%; opacity:.70; animation:heroSettle .74s var(--ease-emphasized) both; will-change:transform; }
.contact-hero-media::before,.contact-hero-media::after{ content:""; position:absolute; inset:0; pointer-events:none; }
.contact-hero-media::before{ background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.78) 44%, rgba(4,18,35,.35) 76%, rgba(4,18,35,.16) 100%); }
.contact-hero-media::after{ background:linear-gradient(0deg, rgba(4,18,35,.70) 0%, rgba(4,18,35,.16) 42%, rgba(4,18,35,.16) 100%); }
.contact-hero-inner{ position:relative; z-index:1; max-width:680px; padding-top:82px; padding-bottom:62px; }
.contact-hero h1{ max-width:680px; font-size:clamp(3rem,5.2vw,4.65rem); line-height:.98; letter-spacing:-.015em; color:var(--color-white); text-wrap:balance; }
.contact-hero p:not(.eyebrow){ max-width:580px; margin-top:20px; color:rgba(255,255,255,.82); font-size:clamp(16px,1.45vw,18px); line-height:1.62; }
.contact-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.contact-card-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.contact-info-card{ min-height:100%; padding:var(--card-padding-y) var(--card-padding-x); }
.contact-info-card p{ max-width:28ch; }
.contact-location-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.contact-location-card{ display:flex; flex-direction:column; min-height:100%; padding:var(--card-padding-y) var(--card-padding-x); border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.contact-location-card:hover,.contact-location-card:focus-within{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:rgba(245,166,35,.42); }
.contact-location-card span{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--color-orange); }
.contact-location-card h3{ font-size:24px; color:var(--color-navy); }
.contact-location-card p{ color:var(--color-muted); line-height:1.65; }
.contact-location-card dl{ margin:0; padding:0; }
.contact-location-card dt{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-orange); }
.contact-location-card dd{ margin:6px 0 0; color:var(--color-navy); font-weight:800; }
.contact-location-card .btn{ margin-top:auto; align-self:flex-start; }
.contact-form-grid{ display:grid; grid-template-columns:minmax(0,.82fr) minmax(380px,1fr); gap:44px; align-items:start; }
.contact-form-copy{ position:sticky; top:112px; }
.contact-form-copy h2,.contact-final h2{ font-size:clamp(28px,4.6vw,48px); color:var(--color-navy); }
.contact-form-copy p:not(.eyebrow){ margin-top:16px; max-width:48ch; color:var(--color-muted); line-height:1.75; }
.contact-form-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.contact-form-actions .btn{ flex:1 1 180px; }
.contact-faq-grid{ display:grid; grid-template-columns:minmax(0,.72fr) minmax(360px,1fr); gap:38px; align-items:start; }
.contact-faq-list{ border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); padding:4px 18px; box-shadow:var(--shadow-sm); }
.contact-faq-list .faq-item:last-child{ border-bottom:0; }
.contact-final{ padding:58px 0; }
.contact-final-inner{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 28px; align-items:center; }
.contact-final-inner .eyebrow{ grid-column:1/-1; margin-bottom:0; }
.contact-final h2{ max-width:13ch; color:var(--color-white); }
.contact-final .contact-actions{ margin-top:0; justify-content:flex-end; }
.contact-page .mobile-cta-bar{ color:var(--color-white); }

@media(max-width:980px){
  .contact-card-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-form-grid,.contact-faq-grid{ grid-template-columns:1fr; }
  .contact-form-copy{ position:static; }
}

@media(max-width:680px){
  .contact-page{ padding-bottom:86px; }
  .contact-hero{ min-height:clamp(300px,82vw,360px); }
  .contact-hero-media img{ opacity:.58; object-position:56% 50%; }
  .contact-hero-media::before{ background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.84) 62%, rgba(4,18,35,.55) 100%); }
  .contact-hero-inner{ padding-top:44px; padding-bottom:30px; }
  .contact-hero h1{ font-size:clamp(32px,9vw,42px); }
  .contact-hero p:not(.eyebrow){ margin-top:12px; font-size:15px; line-height:1.48; }
  .contact-actions{ gap:10px; }
  .contact-actions .btn{ flex:1 1 145px; min-height:42px; padding:11px 12px; }
  .contact-form-actions .btn{ width:100%; flex-basis:100%; min-height:46px; padding:13px 16px; }
  .contact-card-grid,.contact-location-grid{ grid-template-columns:1fr; }
  .contact-info-card{ padding:22px; }
  .contact-final-inner{ display:block; }
  .contact-final-inner .eyebrow{ margin-bottom:10px; }
  .contact-final .contact-actions{ margin-top:24px; }
}

/* Player Portal frontend */
.player-portal{ background:var(--color-surface); padding-bottom:0; }
.player-portal .demo-note,.portal-auth .demo-note{ position:relative; z-index:30; background:var(--color-orange); color:var(--color-navy); font-weight:700; }
.player-portal .portal-shell{ min-height:calc(100vh - 35px); background:var(--navy-50); }
.player-portal .portal-sidebar{ position:sticky; top:0; height:100vh; width:286px; display:flex; padding:20px 14px; background:var(--color-navy); box-shadow:8px 0 30px rgba(7,20,38,.12); overflow-y:auto; flex-direction:column; }
.player-portal .portal-sidebar .brand{ margin-bottom:16px; padding:4px 8px 16px; border-bottom:1px solid rgba(255,255,255,.12); }
.portal-sidebar-user{ display:flex; align-items:center; gap:12px; padding:10px 12px; margin-bottom:18px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius); color:var(--color-white); }
.portal-avatar-sm{ width:34px; height:34px; border-radius:50%; background:var(--color-orange); color:var(--color-navy); font-family:var(--f-display); font-weight:700; display:flex; align-items:center; justify-content:center; font-size:13px; flex-shrink:0; }
.portal-sidebar-user b{ display:block; font-size:13.5px; line-height:1.2; color:var(--color-white); }
.portal-sidebar-user span{ display:block; font-size:11px; color:rgba(255,255,255,.6); font-family:var(--f-mono); margin-top:2px; }
.player-portal .portal-nav{ display:flex; flex-direction:column; gap:3px; }
.player-portal .portal-nav a{ min-height:42px; color:rgba(255,255,255,.78); border-radius:var(--radius); padding:8px 12px; font-size:14px; display:flex; align-items:center; gap:10px; transition:background .18s ease, color .18s ease, transform .18s ease; }
.player-portal .portal-nav a svg{ width:18px; height:18px; opacity:.85; flex-shrink:0; }
.player-portal .portal-nav a:hover,.player-portal .portal-nav a:focus-visible{ transform:translateX(3px); color:var(--color-white); background:rgba(255,255,255,.08); }
.player-portal .portal-nav a.active{ background:rgba(242,84,14,.18); color:var(--color-orange); border-left:3px solid var(--color-orange); font-weight:700; }
.player-portal .portal-nav a.active svg{ opacity:1; color:var(--color-orange); }
.portal-logout-link{ margin-top:auto; color:rgba(255,255,255,.6) !important; }
.portal-logout-link:hover{ color:var(--color-orange) !important; }
.player-portal .portal-main{ min-width:0; flex:1; }
.player-portal .portal-topbar{ position:sticky; top:0; z-index:20; min-height:78px; padding:16px 28px; border-bottom:1px solid var(--color-border); background:rgba(255,255,255,.94); backdrop-filter:blur(18px); display:flex; align-items:center; justify-content:space-between; gap:16px; }
.player-portal .portal-topbar h1{ font-family:var(--f-display); font-size:24px; color:var(--color-navy); text-transform:uppercase; letter-spacing:.02em; }
.player-portal .portal-topbar .eyebrow{ margin-bottom:3px; font-size:10px; color:var(--color-orange); font-weight:700; }
.portal-menu-btn,.portal-icon-btn{ width:42px; height:42px; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-white); color:var(--color-navy); display:none; align-items:center; justify-content:center; position:relative; transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.portal-icon-btn{ display:flex; }
.portal-menu-btn:hover,.portal-icon-btn:hover{ transform:translateY(-2px); border-color:var(--color-orange); box-shadow:var(--shadow-sm); }
.portal-notif-dot{ position:absolute; top:8px; right:8px; width:8px; height:8px; border-radius:50%; background:var(--color-orange); border:2px solid var(--color-white); }
.portal-user-actions{ display:flex; align-items:center; gap:12px; min-width:0; }
.portal-avatar{ width:42px; height:42px; border-radius:50%; background:var(--color-navy); color:var(--color-orange); display:flex; align-items:center; justify-content:center; font-family:var(--f-display); font-size:15px; font-weight:700; letter-spacing:.04em; flex:0 0 auto; border:2px solid rgba(242,84,14,.3); }
.portal-user-text{ min-width:0; }
.portal-user-text b,.portal-user-text span{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.portal-user-text b{ color:var(--color-navy); font-size:13.5px; }
.portal-user-text span{ color:var(--color-muted); font-size:11.5px; font-family:var(--f-mono); }
.player-portal .portal-mobile-nav{ display:none; background:var(--color-white); border-bottom:1px solid var(--color-border); padding:8px 16px; overflow-x:auto; gap:8px; }
.player-portal .portal-mobile-nav a{ padding:6px 12px; border-radius:999px; font-size:12.5px; font-weight:600; white-space:nowrap; color:var(--color-navy); background:var(--navy-100); }
.player-portal .portal-mobile-nav a.active{ background:var(--color-orange); color:var(--color-navy); }
.player-portal .portal-content{ padding:28px; max-width:1440px; margin:0 auto; }

/* Dashboard Pro Hero Banner */
.portal-dashboard-hero{ display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,360px); gap:20px; margin-bottom:24px; }
.portal-hero-main{ padding:30px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:linear-gradient(135deg, var(--color-navy) 0%, #0d2144 100%); color:var(--color-white); box-shadow:var(--shadow-md); position:relative; overflow:hidden; }
.portal-hero-main::before{ content:""; position:absolute; right:-40px; bottom:-40px; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, rgba(242,84,14,.2), transparent 70%); pointer-events:none; }
.portal-hero-badge{ display:flex; align-items:center; gap:10px; margin-bottom:14px; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--color-orange); }
.portal-hero-id{ padding:3px 8px; border-radius:4px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); color:var(--color-white); font-weight:700; }
.portal-hero-main h2{ font-size:clamp(26px,3.5vw,38px); color:var(--color-white); line-height:1.1; }
.portal-hero-main p{ margin-top:10px; color:rgba(255,255,255,.78); font-size:14.5px; line-height:1.5; }
.portal-quick-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.portal-hero-card{ padding:24px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); display:flex; flex-direction:column; justify-content:space-between; }
.portal-hero-card span{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.12em; color:var(--color-orange); text-transform:uppercase; font-weight:700; }
.portal-hero-card h3{ font-size:22px; color:var(--color-navy); margin-top:8px; }
.portal-hero-card p{ margin-top:6px; color:var(--color-navy); font-weight:700; font-size:14.5px; }
.portal-hero-card small{ color:var(--color-muted); font-size:13px; margin-bottom:16px; display:block; }

/* Toast Notifications */
.portal-toast{ position:fixed; bottom:24px; right:24px; z-index:999; padding:14px 20px; background:var(--color-navy); color:var(--color-white); border:1px solid var(--color-orange); border-radius:var(--radius); font-size:14px; font-weight:600; box-shadow:0 14px 34px rgba(0,0,0,.28); transform:translateY(20px); opacity:0; transition:transform .25s ease, opacity .25s ease; }
.portal-toast.show{ transform:none; opacity:1; }

/* Progress bar & filters */
.portal-progress{ height:6px; width:100%; border-radius:999px; background:var(--navy-100); margin-top:12px; overflow:hidden; }
.portal-progress-bar{ height:100%; border-radius:999px; background:var(--color-orange); transition:width .4s ease; }
.portal-filter-bar{ display:flex; align-items:center; gap:10px; margin-bottom:20px; flex-wrap:wrap; }
.filter-label{ font-family:var(--f-mono); font-size:11px; text-transform:uppercase; color:var(--color-muted); font-weight:700; }
.portal-filter-btn{ padding:6px 14px; border:1px solid var(--color-border); border-radius:999px; background:var(--color-white); color:var(--color-navy); font-size:13px; font-weight:600; cursor:pointer; transition:border-color .18s ease, background .18s ease; }
.portal-filter-btn:hover,.portal-filter-btn.active{ border-color:var(--color-orange); background:rgba(242,84,14,.08); color:var(--color-orange); }

.portal-page-hero{ display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:center; margin-bottom:24px; padding:24px 28px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); animation:portalFadeUp .38s ease both; }
.portal-page-hero h2{ font-size:clamp(24px,3.2vw,36px); color:var(--color-navy); }
.portal-page-hero p:not(.eyebrow){ max-width:68ch; margin-top:8px; color:var(--color-muted); line-height:1.6; font-size:15px; }

.portal-stat-grid{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; margin-bottom:24px; }
.portal-stat-grid.compact{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.portal-stat-card{ min-height:140px; padding:var(--card-padding-y) var(--card-padding-x); border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.portal-stat-card:hover,.portal-stat-card:focus-within{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:rgba(242,84,14,.42); }
.portal-stat-card svg{ width:22px; height:22px; color:var(--color-orange); margin:0; }
.portal-stat-card span{ display:block; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-muted); }
.portal-stat-card b{ display:block; margin-top:0; font-family:var(--f-display); font-size:clamp(20px,1.8vw,28px); line-height:1.1; color:var(--color-navy); overflow-wrap:anywhere; }
.portal-two-col{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
.portal-panel,.portal-alert,.download-card{ border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); }
.portal-panel{ padding:22px; margin-bottom:20px; }
.portal-panel-head{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; }
.portal-panel-head h2,.download-card h3,.week-card h3,.announcement-list h3{ font-size:18px; color:var(--color-navy); }
.portal-link-sm{ font-size:13px; font-weight:700; color:var(--color-orange); }
.portal-link-sm:hover{ text-decoration:underline; }

.status-chip.ok{ background:rgba(39,174,96,.12); color:#1e824c; border:1px solid rgba(39,174,96,.28); }
.status-chip.pending{ background:rgba(242,84,14,.12); color:var(--color-orange); border:1px solid rgba(242,84,14,.28); }
.status-chip.info{ background:rgba(10,24,48,.08); color:var(--color-navy); border:1px solid rgba(10,24,48,.18); }
.responsive-table{ width:100%; overflow-x:auto; border-radius:var(--radius-lg); }
.player-portal .data-table{ min-width:680px; box-shadow:none; }
.session-list{ display:grid; gap:12px; }
.session-list article{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; padding:14px; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-surface); }
.session-list span,.week-card span,.portal-alert span{ font-family:var(--f-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-orange); }
.session-list b{ display:block; font-family:var(--f-display); font-size:22px; color:var(--color-navy); }
.session-list h3{ font-size:16px; color:var(--color-navy); }
.session-list p,.download-card p,.announcement-list p,.profile-photo-panel p{ margin-top:4px; color:var(--color-muted); line-height:1.55; font-size:14px; }
.session-list time{ font-weight:800; color:var(--color-navy); white-space:nowrap; }
.portal-timeline{ margin:0; padding:0; list-style:none; display:grid; gap:0; }
.portal-timeline li{ position:relative; padding:0 0 18px 24px; border-left:1px solid var(--color-border); }
.portal-timeline li::before{ content:""; position:absolute; left:-6px; top:2px; width:11px; height:11px; border-radius:50%; background:var(--color-orange); }
.portal-timeline b,.portal-timeline span{ display:block; }
.portal-timeline b{ color:var(--color-navy); }
.portal-timeline span{ margin-top:4px; color:var(--color-muted); font-size:13px; }
.attendance-calendar{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:10px; }
.attendance-day{ min-height:100px; padding:13px; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-surface); }
.attendance-day.present{ border-color:rgba(7,20,38,.24); }
.attendance-day.absent{ border-color:rgba(245,166,35,.55); background:rgba(245,166,35,.10); }
.attendance-day span,.attendance-day small{ display:block; color:var(--color-muted); font-size:12px; text-transform:capitalize; }
.attendance-day b{ display:block; margin:8px 0; font-family:var(--f-display); font-size:24px; color:var(--color-navy); }
.portal-detail-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0; padding:0; border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; }
.portal-detail-list div{ padding:16px; border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); background:var(--color-white); }
.portal-detail-list div:nth-child(2n){ border-right:0; }
.portal-detail-list dt{ margin:0; font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-orange); }
.portal-detail-list dd{ margin:7px 0 0; color:var(--color-navy); font-weight:800; overflow-wrap:anywhere; }
.week-grid{ display:grid; grid-template-columns:repeat(7,minmax(170px,1fr)); gap:12px; overflow-x:auto; padding-bottom:6px; }
.week-card{ min-height:160px; padding:18px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-surface); }
.week-card h3{ margin-top:16px; }
.week-card p,.week-card small{ display:block; margin-top:8px; color:var(--color-muted); }
.portal-alert{ margin-bottom:20px; padding:24px; border-color:rgba(245,166,35,.48); background:rgba(245,166,35,.10); }
.portal-alert h2{ margin-top:8px; font-size:24px; color:var(--color-navy); }
.portal-alert p{ margin-top:8px; color:var(--color-muted); line-height:1.65; }
.portal-alert small,.download-card small{ display:block; margin-top:14px; color:var(--color-muted); }
.announcement-list{ display:grid; gap:12px; }
.announcement-list article{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; padding:16px 0; border-bottom:1px solid var(--color-border); }
.announcement-list article:last-child{ border-bottom:0; }
.announcement-list time{ color:var(--color-muted); font-size:13px; white-space:nowrap; }
.portal-card-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.download-card{ display:flex; flex-direction:column; align-items:flex-start; min-height:220px; padding:var(--card-padding-y) var(--card-padding-x); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.download-card:hover,.download-card:focus-within{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:rgba(245,166,35,.42); }
.download-card > svg{ width:26px; height:26px; color:var(--color-orange); margin:0; }
.download-card .btn{ margin-top:auto; }
.profile-grid{ display:grid; grid-template-columns:minmax(260px,.55fr) minmax(0,1fr) minmax(0,1fr); gap:20px; align-items:start; }
.profile-photo-panel{ text-align:center; }
.portal-profile-photo{ width:120px; height:120px; border-radius:50%; margin:0 auto 18px; display:flex; align-items:center; justify-content:center; background:var(--color-navy); color:var(--color-orange); font-family:var(--f-display); font-size:32px; }
.profile-photo-panel h2{ font-size:24px; color:var(--color-navy); }
.profile-photo-panel .btn{ margin-top:20px; }
.portal-backdrop{ display:none; }
@keyframes portalFadeUp{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
@keyframes portalSkeleton{ 0%{ background-position:0 0; } 100%{ background-position:-220% 0; } }
@keyframes overlayIn{ from{ opacity:0; } to{ opacity:1; } }

.portal-auth{ min-height:100vh; background:var(--color-navy); color:var(--color-white); padding-bottom:0; }
.portal-auth-shell{ min-height:calc(100vh - 35px); display:grid; place-items:center; padding:34px 18px; }
.portal-auth-card{ width:100%; max-width:430px; padding:30px; border:1px solid var(--glass-brd); border-radius:var(--radius-lg); background:rgba(255,255,255,.08); box-shadow:0 24px 60px rgba(7,20,38,.3); }
.portal-auth-card .brand{ justify-content:flex-start; margin-bottom:24px; }
.portal-auth-card h1{ font-size:30px; color:var(--color-white); }
.portal-auth-card p{ margin-top:8px; color:var(--color-on-dark-muted); line-height:1.6; }
.portal-auth-card form{ margin-top:24px; }
.portal-auth-card .field label{ color:rgba(255,255,255,.78); }
.portal-auth-card .field input{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:var(--color-white); }
.portal-auth-card .field input::placeholder{ color:rgba(255,255,255,.42); }
.portal-auth-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin:2px 0 18px; color:rgba(255,255,255,.75); font-size:13px; }
.portal-auth-row label{ display:flex; align-items:center; gap:8px; }
.portal-auth-row a,.portal-auth-alt{ color:var(--color-orange); }
.portal-auth-actions{ display:grid; gap:10px; }
.portal-auth-card .form-success{ color:var(--color-white); }
.portal-auth-card.is-submitted form,.portal-auth-card.is-submitted .player-login-secure{ display:none; }
.portal-auth-card.is-submitted .form-success{ display:block; opacity:1; transform:none; }

.player-login-shell{ position:relative; grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr); align-items:stretch; place-items:stretch; min-height:calc(100vh - 35px); padding:0; overflow:hidden; background:var(--color-navy); }
.player-login-shell::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 74% 22%, rgba(245,166,35,.18), transparent 30%), radial-gradient(circle at 20% 82%, rgba(255,255,255,.08), transparent 28%); pointer-events:none; }
.player-login-visual{ position:relative; min-height:calc(100vh - 35px); display:flex; flex-direction:column; justify-content:space-between; padding:54px clamp(28px,5vw,72px); overflow:hidden; isolation:isolate; }
.player-login-bg{ position:absolute; inset:0; z-index:-3; width:100%; height:100%; object-fit:cover; object-position:center; opacity:.66; }
.player-login-visual::before,.player-login-visual::after{ content:""; position:absolute; inset:0; pointer-events:none; }
.player-login-visual::before{ z-index:-2; background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.80) 50%, rgba(4,18,35,.52) 100%); }
.player-login-visual::after{ z-index:-1; background:linear-gradient(0deg, rgba(4,18,35,.78) 0%, rgba(4,18,35,.20) 48%, rgba(4,18,35,.34) 100%); }
.player-login-watermark{ position:absolute; right:clamp(20px,5vw,70px); bottom:clamp(60px,10vw,120px); width:clamp(190px,26vw,360px); height:auto; border-radius:50%; opacity:.055; filter:grayscale(1); pointer-events:none; }
.player-login-visual-content{ max-width:680px; margin-top:auto; margin-bottom:auto; }
.player-login-brand{ display:inline-flex; align-items:center; gap:14px; margin-bottom:52px; color:var(--color-white); }
.player-login-brand img,.player-login-card-logo img{ border-radius:50%; box-shadow:0 14px 36px rgba(0,0,0,.28); }
.player-login-brand b{ display:block; font-family:var(--f-display); font-size:22px; text-transform:uppercase; letter-spacing:.03em; line-height:1; }
.player-login-brand small{ display:block; margin-top:5px; font-family:var(--f-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--color-orange); }
.player-login-visual h2{ max-width:9ch; font-size:clamp(56px,7vw,104px); line-height:.92; letter-spacing:-.018em; color:var(--color-white); }
.player-login-visual-content > p:not(.eyebrow){ max-width:58ch; margin-top:24px; color:rgba(255,255,255,.80); font-size:clamp(16px,1.35vw,19px); line-height:1.72; }
.player-login-ground-card{ width:min(460px,100%); display:grid; gap:6px; padding:18px 20px; border:1px solid rgba(255,255,255,.18); border-radius:22px; background:rgba(7,20,38,.42); backdrop-filter:blur(16px); box-shadow:0 24px 56px rgba(0,0,0,.24); }
.player-login-ground-card span{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--color-orange); }
.player-login-ground-card b{ font-family:var(--f-display); font-size:24px; text-transform:uppercase; line-height:1.1; }
.player-login-card{ align-self:center; justify-self:center; position:relative; z-index:1; width:min(560px,calc(100% - 48px)); max-width:560px; margin:34px 0; padding:40px; border-radius:24px; border:1px solid rgba(255,255,255,.20); background:linear-gradient(145deg, rgba(255,255,255,.15), rgba(255,255,255,.07)); backdrop-filter:blur(22px); box-shadow:0 30px 80px rgba(0,0,0,.30); }
.player-login-card-head{ text-align:center; }
.player-login-card-logo{ display:inline-flex; margin:0 auto 18px; }
.player-login-card h1{ font-size:clamp(34px,4vw,46px); line-height:1; letter-spacing:.02em; }
.player-login-divider{ display:block; width:58px; height:3px; margin:15px auto 0; border-radius:999px; background:var(--color-orange); box-shadow:0 0 24px rgba(245,166,35,.55); }
.player-login-card-head p{ max-width:36ch; margin:14px auto 0; color:rgba(255,255,255,.70); }
.player-login-card form{ display:grid; gap:18px; margin-top:30px; }
.player-login-field{ position:relative; margin:0; }
.player-login-field label{ margin-bottom:8px; color:rgba(255,255,255,.82); }
.player-login-field input{ min-height:58px; padding:16px 54px 16px 50px; border-radius:16px; border-color:rgba(255,255,255,.20); background:rgba(4,18,35,.42); color:var(--color-white); font-weight:700; box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
.player-login-field input::placeholder{ color:rgba(255,255,255,.40); transition:opacity var(--transition-fast), transform var(--transition-fast); }
.player-login-field input:focus::placeholder{ opacity:.72; transform:translateX(3px); }
.player-login-field input:hover{ border-color:rgba(255,255,255,.34); }
.player-login-field input:focus{ border-color:var(--color-orange); box-shadow:0 0 0 4px rgba(245,166,35,.16), inset 0 1px 0 rgba(255,255,255,.05); }
.player-login-input-icon{ position:absolute; left:18px; bottom:17px; width:22px; height:22px; color:rgba(255,255,255,.58); pointer-events:none; transition:color var(--transition-fast), transform var(--transition-fast); }
.player-login-input-icon svg,.player-login-password-toggle svg,.player-login-secure svg{ width:100%; height:100%; }
.player-login-field:focus-within .player-login-input-icon{ color:var(--color-orange); transform:translateY(-1px); }
.player-login-password-toggle{ position:absolute; right:12px; bottom:10px; width:38px; height:38px; display:grid; place-items:center; border:1px solid transparent; border-radius:12px; background:transparent; color:rgba(255,255,255,.58); transition:color var(--transition-fast), background var(--transition-fast), transform var(--transition-fast); }
.player-login-password-toggle:hover,.player-login-password-toggle:focus-visible{ color:var(--color-orange); background:rgba(255,255,255,.08); transform:translateY(-1px); }
.player-login-row{ margin:0 0 2px; }
.player-login-row a{ color:var(--color-orange); font-weight:800; text-decoration:underline; text-decoration-color:rgba(245,166,35,.45); text-underline-offset:3px; }
.player-login-check{ min-height:44px; display:inline-flex; align-items:center; gap:10px; cursor:pointer; }
.player-login-check input{ position:absolute; opacity:0; pointer-events:none; }
.player-login-check span{ width:22px; height:22px; display:grid; place-items:center; border:1.5px solid rgba(255,255,255,.34); border-radius:7px; background:rgba(4,18,35,.34); transition:background var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast); }
.player-login-check span::after{ content:""; width:10px; height:6px; border-left:2px solid var(--color-navy); border-bottom:2px solid var(--color-navy); transform:rotate(-45deg) scale(.6); opacity:0; transition:opacity var(--transition-fast), transform var(--transition-fast); }
.player-login-check input:checked + span{ background:var(--color-orange); border-color:var(--color-orange); transform:scale(1.04); }
.player-login-check input:checked + span::after{ opacity:1; transform:rotate(-45deg) scale(1); }
.player-login-check input:focus-visible + span{ outline:3px solid var(--color-orange); outline-offset:3px; }
.player-login-actions{ gap:12px; }
.player-login-actions .btn{ min-height:58px; border-radius:16px; font-size:15.5px; }
.player-login-actions .btn-yellow:hover{ box-shadow:0 18px 36px rgba(245,166,35,.34); }
.player-login-actions .btn-outline{ color:var(--color-white); border-color:rgba(255,255,255,.36); background:rgba(255,255,255,.04); }
.player-login-actions .btn-outline:hover,.player-login-actions .btn-outline:focus-visible{ color:var(--color-white); border-color:var(--color-orange); background:rgba(245,166,35,.12); transform:translateY(-2px); }
.player-login-secure{ display:flex; align-items:center; justify-content:center; gap:10px; margin-top:24px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.62); font-size:13px; text-align:center; }
.player-login-secure svg{ width:20px; height:20px; color:var(--color-orange); flex:0 0 auto; }
.js-motion .player-login-card form > *,.js-motion .player-login-secure{ opacity:0; transform:translateY(10px); transition:opacity var(--transition-slow), transform var(--transition-slow); }
.js-motion.page-ready .player-login-card.in form > *,.js-motion.page-ready .player-login-card.in .player-login-secure{ opacity:1; transform:none; }
.js-motion.page-ready .player-login-card.in form > *:nth-child(1){ transition-delay:80ms; }
.js-motion.page-ready .player-login-card.in form > *:nth-child(2){ transition-delay:140ms; }
.js-motion.page-ready .player-login-card.in form > *:nth-child(3){ transition-delay:200ms; }
.js-motion.page-ready .player-login-card.in form > *:nth-child(4){ transition-delay:260ms; }
.js-motion.page-ready .player-login-card.in .player-login-secure{ transition-delay:320ms; }

@media(max-width:1220px){
  .player-login-shell{ grid-template-columns:minmax(0,.88fr) minmax(390px,1fr); }
  .player-login-visual{ padding:46px 34px; }
  .player-login-visual h2{ font-size:clamp(48px,6vw,76px); }
  .portal-stat-grid,.portal-stat-grid.compact{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .portal-card-grid,.profile-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .profile-photo-panel{ grid-column:1/-1; }
}

@media(max-width:899px){
  .player-login-shell{ display:grid; grid-template-columns:1fr; align-items:start; min-height:calc(100vh - 35px); padding:0 18px 30px; place-items:stretch center; background:linear-gradient(rgba(4,18,35,.78), rgba(4,18,35,.88)), url("https://images.unsplash.com/photo-1431324155629-1a6deb1dec8d?auto=format&fit=crop&w=1400&q=80") center/cover; }
  .player-login-visual{ width:calc(100% + 36px); min-height:280px; margin:0 -18px 28px; padding:32px 36px; justify-content:center; }
  .player-login-brand{ margin-bottom:28px; }
  .player-login-visual h2{ max-width:none; font-size:clamp(42px,8vw,64px); }
  .player-login-visual-content > p:not(.eyebrow){ max-width:64ch; margin-top:14px; }
  .player-login-ground-card{ display:none; }
  .player-login-card{ width:min(560px,100%); margin:0; }
  .player-portal .portal-shell{ display:block; }
  .player-portal .portal-sidebar{ position:fixed; inset:0 auto 0 0; z-index:60; width:min(286px,86vw); height:100dvh; padding-bottom:calc(18px + env(safe-area-inset-bottom)); transform:translateX(-102%); transition:transform .22s ease; }
  .player-portal .portal-shell.sidebar-open .portal-sidebar{ transform:none; }
  .player-portal .portal-shell.sidebar-open .portal-backdrop{ display:block; position:fixed; inset:0; z-index:50; background:rgba(7,20,38,.48); animation:overlayIn var(--transition-normal) both; }
  .portal-menu-btn{ display:flex; flex:0 0 auto; }
  .player-portal .portal-topbar{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; }
  .portal-user-actions{ gap:8px; }
  .player-portal .portal-mobile-nav{ display:flex; overflow-x:auto; gap:8px; padding:12px 18px; }
  .player-portal .portal-mobile-nav a{ color:var(--color-muted); border:1px solid var(--color-border); background:var(--color-white); }
  .player-portal .portal-mobile-nav a.active{ color:var(--color-navy); background:rgba(245,166,35,.18); border-color:rgba(245,166,35,.55); }
  .portal-user-text,.portal-user-actions .btn{ display:none; }
  .portal-page-hero,.portal-two-col{ grid-template-columns:1fr; }
}

@media(max-width:680px){
  .player-login-shell{ padding:24px 14px; align-items:start; }
  .player-login-visual{ display:none; }
  .player-login-card{ padding:24px 20px; border-radius:22px; }
  .player-login-card-logo img{ width:62px; height:62px; }
  .player-login-field input{ min-height:54px; border-radius:14px; }
  .player-login-actions .btn{ min-height:54px; }
  .player-login-card form{ gap:14px; margin-top:22px; }
  .player-login-card-head p{ margin-top:10px; }
  .player-login-secure{ margin-top:18px; padding-top:16px; }
  .player-portal .portal-content{ padding:16px; }
  .player-portal .portal-topbar{ padding:14px 16px; }
  .player-portal .portal-topbar h1{ font-size:20px; }
  .portal-page-hero,.portal-panel,.portal-alert,.download-card{ padding:18px; }
  .portal-page-hero h2{ font-size:clamp(26px,10vw,38px); }
  .skeleton-stack{ display:none; }
  .portal-stat-grid,.portal-stat-grid.compact,.portal-card-grid,.profile-grid{ grid-template-columns:1fr; }
  .portal-stat-card{ min-height:128px; }
  .player-portal .data-table{ min-width:600px; }
  .attendance-calendar{ grid-template-columns:1fr; }
  .week-grid{ grid-template-columns:repeat(7,minmax(150px,1fr)); }
  .portal-auth-shell:not(.player-login-shell){ min-height:auto; padding:24px 14px; align-items:start; }
  .portal-auth-card:not(.player-login-card){ padding:24px 20px; }
  .portal-auth-row:not(.player-login-row){ align-items:flex-start; flex-direction:column; }
  .portal-detail-list{ grid-template-columns:1fr; }
  .portal-detail-list div,.portal-detail-list div:nth-child(2n){ border-right:0; }
  .session-list article,.announcement-list article{ grid-template-columns:1fr; }
  .session-list time,.announcement-list time{ white-space:normal; }
}

/* Player registration and payment frontend */
.registration-page{ background:var(--color-surface); padding-bottom:0; }
.registration-header .main-nav{ flex:1; justify-content:center; }
.registration-intro{ position:relative; min-height:clamp(380px,32vw,480px); display:flex; align-items:center; padding:0; background:var(--color-navy); color:var(--color-white); overflow:hidden; isolation:isolate; }
.registration-intro::before,.registration-intro::after{ content:""; position:absolute; inset:0; pointer-events:none; }
.registration-intro::before{ z-index:-2; background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.78) 44%, rgba(4,18,35,.35) 76%, rgba(4,18,35,.16) 100%), url("https://images.unsplash.com/photo-1551958219-acbc608c6377?auto=format&fit=crop&w=1500&q=80") center/cover; animation:heroSettle .74s var(--ease-emphasized) both; transform-origin:center; }
.registration-intro::after{ z-index:-1; background:linear-gradient(0deg, rgba(4,18,35,.70) 0%, rgba(4,18,35,.16) 42%, rgba(4,18,35,.16) 100%); }
.registration-intro .container{ padding-top:78px; padding-bottom:58px; }
.registration-intro h1{ max-width:680px; margin-top:12px; font-size:clamp(3rem,5.2vw,4.65rem); line-height:.98; letter-spacing:-.015em; color:var(--color-white); text-wrap:balance; }
.registration-intro p{ max-width:580px; margin-top:18px; color:rgba(255,255,255,.82); font-size:clamp(16px,1.45vw,18px); line-height:1.62; }
.registration-section{ padding:34px 0 64px; }
.registration-shell{ display:grid; grid-template-columns:300px minmax(0,1fr); gap:24px; align-items:start; }
.registration-progress{ position:sticky; top:94px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); padding:18px; }
.registration-progress ol{ margin:0; padding:0; list-style:none; display:grid; gap:4px; }
.registration-progress button{ width:100%; display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; align-items:center; min-height:42px; padding:9px; border:0; border-radius:var(--radius); background:transparent; color:var(--color-muted); text-align:left; transition:background .18s ease, color .18s ease; }
.registration-progress button:hover,.registration-progress button:focus-visible{ background:var(--color-surface); color:var(--color-navy); }
.registration-progress span{ width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--color-surface); color:var(--color-muted); font-family:var(--f-mono); font-size:10px; }
.registration-progress b{ font-size:12px; color:inherit; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.registration-progress li.complete span,.registration-progress li.active span{ background:var(--color-orange); color:var(--color-navy); }
.registration-progress li.complete button,.registration-progress li.active button{ color:var(--color-navy); }
.registration-progress li.active button{ background:rgba(245,166,35,.15); }
.registration-progress-mobile{ display:none; }
.registration-card{ max-width:940px; margin:0 auto; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-md); padding:28px; animation:portalFadeUp .28s var(--ease-emphasized) both; }
.registration-card.is-processing{ cursor:progress; }
.registration-card.is-processing::after{ content:"Processing"; display:block; margin-top:14px; font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-orange); }
.review-card.is-edit-target{ border-color:var(--color-orange); box-shadow:0 0 0 3px rgba(245,166,35,.14), var(--shadow-sm); }
.registration-step-head{ margin-bottom:24px; }
.registration-step-head h2{ font-size:clamp(26px,4vw,40px); color:var(--color-navy); }
.registration-step-head p:not(.eyebrow){ max-width:66ch; margin-top:10px; color:var(--color-muted); line-height:1.65; }
.registration-field-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.registration-field-grid .field:has(textarea),.registration-field-grid .field:has(input[type="file"]){ grid-column:span 2; }
.registration-note{ margin:0 0 18px; padding:14px 16px; border:1px solid rgba(245,166,35,.34); border-radius:var(--radius); background:rgba(245,166,35,.10); color:var(--color-muted); line-height:1.55; }
.registration-check{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:9px; align-items:start; margin:12px 0; color:var(--color-navy); }
.registration-check input{ margin-top:3px; }
.registration-check label{ line-height:1.45; }
.registration-check a{ color:var(--color-navy); text-decoration:underline; text-decoration-color:var(--color-orange); }
.registration-consents{ margin-top:20px; border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:18px; }
.registration-consents legend,.payment-methods legend{ padding:0 8px; font-family:var(--f-display); color:var(--color-navy); text-transform:uppercase; }
.registration-controls{ position:sticky; bottom:0; z-index:10; display:flex; justify-content:space-between; gap:12px; margin:28px -28px -28px; padding:16px 28px; border-top:1px solid var(--color-border); background:rgba(255,255,255,.94); backdrop-filter:blur(12px); }
.registration-controls.inline{ position:static; margin:22px 0 0; padding:0; border:0; background:transparent; flex-wrap:wrap; justify-content:flex-start; }
.review-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.review-card,.fee-summary,.payment-box,.confirmation-card{ border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); padding:20px; box-shadow:var(--shadow-sm); }
.review-card{ position:relative; }
.review-card button{ position:absolute; top:14px; right:14px; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-white); color:var(--color-navy); padding:6px 10px; font-family:var(--f-mono); font-size:10px; text-transform:uppercase; }
.review-card h3,.fee-summary h3,.payment-box h3,.confirmation-card h3{ padding-right:46px; font-size:20px; color:var(--color-navy); }
.review-card dl,.fee-summary dl{ margin:14px 0 0; display:grid; gap:10px; }
.review-card dl div,.fee-summary dl div{ display:grid; grid-template-columns:minmax(120px,.45fr) minmax(0,1fr); gap:12px; border-bottom:1px solid var(--color-border); padding-bottom:10px; }
.review-card dt,.fee-summary dt,.payment-summary span{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-orange); }
.review-card dd,.fee-summary dd{ margin:0; color:var(--color-navy); font-weight:800; overflow-wrap:anywhere; }
.fee-summary{ margin-top:18px; }
.empty-state{ margin-top:14px; color:var(--color-muted); }
.payment-summary{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:18px; }
.payment-summary div{ border:1px solid var(--color-border); border-radius:var(--radius); padding:14px; background:var(--color-surface); }
.payment-summary b{ display:block; margin-top:6px; color:var(--color-navy); overflow-wrap:anywhere; }
.payment-methods{ margin-top:20px; border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:18px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.payment-methods label{ display:flex; align-items:center; gap:10px; min-height:54px; border:1px solid var(--color-border); border-radius:var(--radius); padding:14px; color:var(--color-navy); cursor:pointer; }
.payment-methods label:has(input:checked){ border-color:var(--color-orange); background:rgba(245,166,35,.10); }
.payment-methods .field-error{ grid-column:1/-1; }
.confirmation-card{ text-align:left; border-color:rgba(245,166,35,.44); background:rgba(245,166,35,.08); animation:confirmIn .3s var(--ease-emphasized) both; }
.confirmation-card.failure{ background:var(--color-white); }
.confirmation-card h3{ font-size:clamp(26px,4vw,40px); }
@keyframes confirmIn{ from{ opacity:0; transform:translateY(10px) scale(.99); } to{ opacity:1; transform:none; } }
.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; }

@media(max-width:980px){
  .registration-shell{ grid-template-columns:1fr; }
  .registration-progress{ position:static; }
  .registration-progress ol{ display:none; }
  .registration-progress-mobile{ display:block; }
  .registration-progress-mobile span,.registration-progress-mobile b{ display:block; width:auto; height:auto; background:transparent; color:var(--color-navy); justify-content:flex-start; }
  .registration-progress-mobile span{ font-family:var(--f-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-orange); }
  .registration-progress-mobile b{ margin-top:5px; font-family:var(--f-display); font-size:22px; text-transform:uppercase; }
  .registration-progress-bar{ margin-top:12px; height:8px; border-radius:999px; background:var(--color-surface); overflow:hidden; }
  .registration-progress-bar i{ display:block; height:100%; border-radius:inherit; background:var(--color-orange); transition:width .22s ease; }
}

@media(max-width:680px){
  .registration-intro{ min-height:clamp(300px,82vw,360px); }
  .registration-intro::before{ background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.84) 62%, rgba(4,18,35,.55) 100%), url("https://images.unsplash.com/photo-1551958219-acbc608c6377?auto=format&fit=crop&w=1200&q=80") center/cover; }
  .registration-intro .container{ padding-top:44px; padding-bottom:30px; }
  .registration-intro h1{ font-size:clamp(32px,9vw,42px); }
  .registration-intro p{ margin-top:12px; font-size:15px; line-height:1.48; }
  .registration-section{ padding:22px 0 46px; }
  .registration-card{ padding:22px; }
  .registration-field-grid,.review-grid,.payment-summary,.payment-methods{ grid-template-columns:1fr; }
  .registration-field-grid .field:has(textarea),.registration-field-grid .field:has(input[type="file"]){ grid-column:auto; }
  .registration-controls{ position:static; margin:24px -22px -22px; padding:14px 18px; flex-wrap:wrap; }
  .registration-controls .btn{ flex:1 1 150px; min-width:0; padding-left:14px; padding-right:14px; }
  .review-card button{ position:static; margin-bottom:12px; }
  .review-card h3,.fee-summary h3,.payment-box h3,.confirmation-card h3{ padding-right:0; }
  .review-card dl div,.fee-summary dl div{ grid-template-columns:1fr; gap:4px; }
}

@media(max-width:380px){
  .player-login-card{ padding:22px 16px; }
  .player-login-card h1{ font-size:32px; }
  .player-login-row{ align-items:flex-start; flex-direction:column; }
  .player-login-field input{ min-height:52px; padding-top:13px; padding-bottom:13px; }
  .player-login-actions .btn{ min-height:52px; }
  .registration-card{ padding:18px; }
  .registration-controls{ margin:20px -18px -18px; padding:14px; flex-direction:column-reverse; }
  .registration-controls .btn{ width:100%; }
}

/* Admin Portal frontend */
.admin-portal{ background:var(--color-surface); padding-bottom:0; overflow-x:hidden; }
.admin-portal .demo-note{ background:var(--color-orange); color:var(--color-navy); }
.admin-shell{ display:flex; min-height:calc(100vh - 35px); background:var(--color-surface); }
.admin-sidebar{ position:sticky; top:0; width:294px; height:100vh; flex:0 0 auto; display:flex; flex-direction:column; padding:18px 14px; overflow-y:auto; background:var(--color-navy); color:var(--color-white); box-shadow:8px 0 30px rgba(7,20,38,.12); }
.admin-sidebar .brand{ padding:4px 8px 16px; margin-bottom:14px; border-bottom:1px solid rgba(255,255,255,.12); }
.admin-nav{ display:flex; flex-direction:column; gap:3px; }
.admin-nav a{ display:flex; align-items:center; gap:11px; min-height:40px; padding:9px 11px; border-radius:var(--radius); color:rgba(255,255,255,.74); font-size:13px; transition:background .18s ease, color .18s ease, transform .18s ease; }
.admin-nav a:hover,.admin-nav a:focus-visible{ transform:translateX(3px); color:var(--color-white); background:rgba(255,255,255,.08); }
.admin-nav a.active{ background:rgba(245,166,35,.16); color:var(--color-orange); }
.admin-nav svg{ width:18px; height:18px; }
.admin-main{ flex:1; min-width:0; }
.admin-topbar{ position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:12px; min-height:76px; padding:16px 24px; background:rgba(255,255,255,.94); backdrop-filter:blur(16px); border-bottom:1px solid var(--color-border); }
.admin-menu-btn,.admin-icon-btn{ width:42px; height:42px; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-white); color:var(--color-navy); display:flex; align-items:center; justify-content:center; transition:transform .18s ease, border-color .18s ease; }
.admin-menu-btn{ display:none; }
.admin-menu-btn:hover,.admin-icon-btn:hover{ transform:translateY(-2px); border-color:var(--color-orange); }
.admin-search{ flex:1; min-width:120px; }
.admin-search input{ width:100%; min-height:42px; border:1px solid var(--color-border); border-radius:var(--radius); padding:0 14px; font-family:var(--f-body); color:var(--color-navy); background:var(--color-white); }
.admin-search input.is-searching{ border-color:rgba(245,166,35,.55); box-shadow:0 0 0 3px rgba(245,166,35,.12); }
.admin-profile{ min-width:0; }
.admin-profile b,.admin-profile span{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.admin-profile b{ color:var(--color-navy); font-size:13px; }
.admin-profile span{ color:var(--color-muted); font-size:12px; }
.admin-content{ max-width:1500px; margin:0 auto; padding:26px; }
.admin-page-head{ display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.28fr); gap:24px; align-items:center; margin-bottom:22px; padding:26px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); animation:portalFadeUp .32s ease both; }
.admin-page-head h1{ font-size:clamp(28px,4vw,46px); color:var(--color-navy); }
.admin-page-head p:not(.eyebrow){ max-width:70ch; margin-top:10px; color:var(--color-muted); line-height:1.65; }
.admin-stat-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:22px; }
.admin-stat-card,.admin-panel,.admin-report-card,.admin-chart-card{ border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); }
.admin-stat-card{ min-height:126px; padding:var(--card-padding-y) var(--card-padding-x); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.admin-stat-card:hover,.admin-stat-card:focus-within,.admin-report-card:hover,.admin-report-card:focus-within,.admin-chart-card:hover,.admin-chart-card:focus-within{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:rgba(245,166,35,.42); }
.admin-stat-card span{ font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--color-muted); }
.admin-stat-card b{ display:block; margin-top:0; font-family:var(--f-display); font-size:clamp(24px,3vw,34px); color:var(--color-navy); }
.admin-panel{ padding:20px; margin-bottom:20px; }
.admin-panel-head{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:16px; }
.admin-panel-head h2,.admin-report-card h2,.admin-chart-card h2{ font-size:20px; color:var(--color-navy); }
.admin-action-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.admin-dashboard-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.admin-dashboard-grid > *,.admin-card-grid > *,.admin-stat-grid > *,.admin-action-grid > *{ min-width:0; }
.admin-table-wrap{ width:100%; overflow-x:auto; border-radius:var(--radius-lg); }
.admin-panel{ min-width:0; }
.admin-portal .data-table{ min-width:720px; box-shadow:none; }
.admin-avatar{ width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:var(--color-navy); color:var(--color-orange); font-family:var(--f-display); }
.admin-link-btn{ border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-white); color:var(--color-navy); padding:7px 10px; font-family:var(--f-mono); font-size:10.5px; text-transform:uppercase; }
.admin-filters{ display:flex; align-items:end; gap:12px; flex-wrap:wrap; margin-bottom:18px; padding:16px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); }
.admin-filters label{ display:grid; gap:6px; min-width:190px; color:var(--color-muted); font-family:var(--f-mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.admin-filters input,.admin-filters select,.admin-form input,.admin-form select,.admin-form textarea{ width:100%; border:1px solid var(--color-border); border-radius:var(--radius); padding:12px 13px; font-family:var(--f-body); color:var(--color-navy); background:var(--color-white); }
.admin-calendar{ display:grid; grid-template-columns:repeat(7,minmax(120px,1fr)); gap:10px; overflow-x:auto; }
.admin-calendar div{ min-height:100px; border:1px solid var(--color-border); border-radius:var(--radius); padding:13px; background:var(--color-surface); }
.admin-calendar span,.admin-calendar small{ display:block; color:var(--color-muted); }
.admin-calendar b{ display:block; margin:8px 0; font-family:var(--f-display); font-size:24px; color:var(--color-navy); }
.admin-gallery{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.admin-gallery article{ border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:12px; background:var(--color-white); }
.admin-gallery article div{ min-height:150px; display:grid; place-items:center; border-radius:var(--radius); background:var(--color-surface); color:var(--color-muted); font-family:var(--f-mono); font-size:11px; text-transform:uppercase; }
.admin-gallery h3{ margin:12px 0 8px; font-size:17px; color:var(--color-navy); }
.admin-card-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.admin-report-card,.admin-chart-card{ min-height:220px; padding:var(--card-padding-y) var(--card-padding-x); display:flex; flex-direction:column; align-items:flex-start; transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.admin-report-card p,.admin-chart-card p{ margin:0; color:var(--color-muted); }
.admin-report-card .btn{ margin-top:auto; }
.admin-bars{ height:120px; width:100%; display:flex; align-items:end; gap:8px; margin-top:auto; }
.admin-bars i{ flex:1; min-height:8px; border-radius:999px 999px 0 0; background:var(--color-orange); opacity:.9; }
.js-motion .admin-chart-card.in .admin-bars i{ animation:barRise .42s var(--ease-emphasized) both; transform-origin:bottom; }
.js-motion .admin-chart-card.in .admin-bars i:nth-child(2){ animation-delay:50ms; }
.js-motion .admin-chart-card.in .admin-bars i:nth-child(3){ animation-delay:100ms; }
.js-motion .admin-chart-card.in .admin-bars i:nth-child(4){ animation-delay:150ms; }
@keyframes barRise{ from{ transform:scaleY(.18); opacity:.55; } to{ transform:scaleY(1); opacity:.9; } }
.admin-form{ display:grid; gap:16px; max-width:680px; }
.permission-grid{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.permission-grid label{ border:1px solid var(--color-border); border-radius:var(--radius); padding:12px; color:var(--color-navy); }
.admin-modal-card h2{ margin-bottom:18px; color:var(--color-navy); }
.admin-backdrop{ display:none; }

@media(max-width:1220px){
  .admin-stat-grid,.admin-action-grid,.admin-gallery{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-card-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:920px){
  .admin-shell{ display:block; }
  .admin-sidebar{ position:fixed; inset:0 auto 0 0; z-index:70; width:min(294px,86vw); height:100dvh; padding-bottom:calc(18px + env(safe-area-inset-bottom)); transform:translateX(-102%); transition:transform .22s ease; }
  .admin-shell.sidebar-open .admin-sidebar{ transform:none; }
  .admin-shell.sidebar-open .admin-backdrop{ display:block; position:fixed; inset:0; z-index:60; background:rgba(7,20,38,.48); animation:overlayIn var(--transition-normal) both; }
  .admin-menu-btn{ display:flex; flex:0 0 auto; }
  .admin-page-head,.admin-dashboard-grid{ grid-template-columns:1fr; }
  .admin-profile{ display:none; }
}

@media(max-width:680px){
  .admin-content{ padding:16px; }
  .admin-topbar{ display:grid; grid-template-columns:auto minmax(0,1fr) auto; padding:12px 14px; }
  .admin-search{ grid-column:1/-1; order:5; min-width:0; }
  .admin-stat-grid,.admin-action-grid,.admin-gallery,.admin-card-grid,.permission-grid{ grid-template-columns:1fr; }
  .admin-page-head,.admin-panel,.admin-stat-card,.admin-report-card,.admin-chart-card{ padding:18px; }
  .admin-panel-head{ align-items:flex-start; flex-direction:column; }
  .admin-panel-head .btn{ width:100%; }
  .admin-portal .data-table{ min-width:640px; }
  .admin-calendar{ grid-template-columns:repeat(7,minmax(110px,1fr)); }
  .admin-bars{ height:96px; }
  .admin-filters{ align-items:stretch; }
  .admin-filters label,.admin-filters .btn{ width:100%; }
  .skeleton-stack{ display:none; }
}

@media(max-width:380px){
  .admin-topbar{ padding:10px 12px; }
  .admin-content{ padding:14px; }
  .admin-filters{ padding:14px; }
}

/* Policy pages */
.policy-page{ background:var(--color-white); color:var(--color-navy); }
.skip-link{ position:absolute; left:18px; top:10px; z-index:500; transform:translateY(-140%); background:var(--color-orange); color:var(--color-navy); padding:10px 12px; border-radius:var(--radius); font-weight:800; }
.skip-link:focus{ transform:none; }
.policy-hero{ position:relative; min-height:clamp(380px,32vw,480px); display:flex; align-items:center; padding:0; background:var(--color-navy); color:var(--color-white); overflow:hidden; isolation:isolate; }
.policy-hero::before,.policy-hero::after{ content:""; position:absolute; inset:0; pointer-events:none; }
.policy-hero::before{ z-index:-2; background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.78) 44%, rgba(4,18,35,.35) 76%, rgba(4,18,35,.16) 100%), url("https://images.unsplash.com/photo-1431324155629-1a6deb1dec8d?auto=format&fit=crop&w=1500&q=80") center/cover; animation:heroSettle .74s var(--ease-emphasized) both; transform-origin:center; }
.policy-hero::after{ z-index:-1; background:linear-gradient(0deg, rgba(4,18,35,.70) 0%, rgba(4,18,35,.16) 42%, rgba(4,18,35,.16) 100%); }
.policy-hero .container{ padding-top:78px; padding-bottom:58px; }
.policy-hero .eyebrow{ margin-top:0; }
.policy-hero h1{ max-width:680px; font-size:clamp(3rem,5.2vw,4.65rem); line-height:.98; letter-spacing:-.015em; color:var(--color-white); text-wrap:balance; }
.policy-hero p:not(.eyebrow){ max-width:580px; margin-top:18px; color:rgba(255,255,255,.82); font-size:clamp(16px,1.45vw,18px); line-height:1.62; }
.policy-updated{ font-family:var(--f-mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--color-orange) !important; }
.policy-section-wrap{ padding:46px 0 72px; }
.policy-layout{ display:grid; grid-template-columns:280px minmax(0,1fr); gap:34px; align-items:start; }
.policy-sidebar{ position:sticky; top:96px; max-height:calc(100vh - 116px); overflow:auto; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); padding:14px; }
.policy-toc-toggle{ display:none; width:100%; border:1px solid var(--color-border); border-radius:var(--radius); background:var(--color-white); color:var(--color-navy); padding:12px; font-family:var(--f-display); text-transform:uppercase; }
.policy-toc{ display:grid; gap:12px; }
.policy-toc-group{ display:grid; gap:2px; padding-bottom:12px; border-bottom:1px solid var(--color-border); }
.policy-toc-group:last-child{ padding-bottom:0; border-bottom:0; }
.policy-toc a{ display:block; border-radius:var(--radius); padding:8px 10px; color:var(--color-muted); font-size:13px; font-weight:800; line-height:1.35; transition:background .18s ease, color .18s ease; }
.policy-toc a.policy-toc-policy{ padding:10px 12px; color:var(--color-navy); font-family:var(--f-display); font-size:15px; text-transform:uppercase; letter-spacing:.01em; }
.policy-toc a:hover,.policy-toc a:focus-visible{ background:var(--color-surface); color:var(--color-navy); }
.policy-toc a.active{ background:rgba(245,166,35,.16); color:var(--color-orange); }
.policy-article{ min-width:0; max-width:920px; }
.policy-block{ scroll-margin-top:96px; margin-bottom:44px; padding-bottom:28px; border-bottom:1px solid var(--color-border); }
.policy-block > header{ margin-bottom:24px; }
.policy-marker{ display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:var(--color-orange); color:var(--color-navy); font-family:var(--f-mono); font-size:11px; font-weight:800; margin-bottom:14px; }
.policy-block h2{ font-size:clamp(27px,4vw,42px); color:var(--color-navy); }
.policy-block header p,.policy-contact-card p{ margin-top:12px; max-width:72ch; color:var(--color-muted); line-height:1.75; }
.policy-grid{ display:grid; gap:14px; }
.policy-grid section{ scroll-margin-top:96px; padding:20px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); box-shadow:var(--shadow-sm); }
.policy-grid h3{ font-family:var(--f-display); font-size:18px; color:var(--color-navy); text-transform:uppercase; letter-spacing:.01em; }
.policy-grid p{ margin-top:8px; color:var(--color-muted); line-height:1.75; font-size:15px; }
.policy-contact-card{ scroll-margin-top:96px; padding:24px; border:1px solid rgba(245,166,35,.36); border-radius:var(--radius-lg); background:rgba(245,166,35,.08); }
.policy-contact-card h2{ font-size:26px; color:var(--color-navy); }
.policy-cross-links{ display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.policy-cross-links a{ border:1px solid var(--color-border); border-radius:var(--radius); padding:10px 12px; background:var(--color-white); color:var(--color-navy); font-weight:800; }

@media(max-width:920px){
  .policy-layout{ grid-template-columns:1fr; }
  .policy-sidebar{ position:static; max-height:none; overflow:visible; }
  .policy-toc-toggle{ display:block; }
  .policy-toc{ display:none; max-height:60vh; overflow:auto; margin-top:10px; }
  .policy-toc.open{ display:grid; }
}

@media(max-width:620px){
  .policy-section-wrap{ padding:28px 0 54px; }
  .policy-hero{ min-height:clamp(300px,82vw,360px); }
  .policy-hero::before{ background:linear-gradient(90deg, rgba(4,18,35,.96) 0%, rgba(4,18,35,.84) 62%, rgba(4,18,35,.55) 100%), url("https://images.unsplash.com/photo-1431324155629-1a6deb1dec8d?auto=format&fit=crop&w=1200&q=80") center/cover; }
  .policy-hero .container{ padding-top:44px; padding-bottom:30px; }
  .policy-hero h1{ max-width:14ch; font-size:clamp(32px,9vw,42px); }
  .policy-hero p:not(.eyebrow){ margin-top:12px; font-size:15px; line-height:1.48; }
  .policy-toc{ max-height:56vh; }
  .policy-grid section,.policy-contact-card{ padding:18px; }
  .policy-grid h3{ font-size:17px; }
  .policy-grid p{ font-size:16px; }
  .policy-cross-links a{ width:100%; text-align:center; }
}

@media(max-width:680px){
  .site-footer{ padding:36px 0 20px; text-align:center; }
  .footer-grid{ gap:24px; }
  .footer-grid > *{ min-width:0; }
  .footer-grid > div:first-child{ display:flex; flex-direction:column; align-items:center; }
  .footer-brand{ justify-content:center; margin-bottom:10px; }
  .footer-summary,.footer-mini-copy{ max-width:32rem; margin-left:auto; margin-right:auto; text-align:center; }
  .site-footer h5{ margin-bottom:11px; text-align:center; }
  .site-footer ul{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; }
  .site-footer li{ min-width:0; }
  .site-footer a{ display:flex; justify-content:center; text-align:center; }
  .site-footer a:hover{ transform:translateY(-1px); }
  .social-row{ justify-content:center; margin-top:12px; }
  .footer-bottom{ justify-content:center; align-items:center; flex-direction:column; gap:5px; margin-top:24px; padding-top:14px; text-align:center; }
  .footer-bottom span{ width:100%; }
}

@media(max-width:430px){
  .section{ padding:44px 0; }
  .card,.card-glass,.program-feature-card,.program-index-card,.contact-location-card{ padding:20px; }
  .site-footer{ padding:34px 0 20px; }
  .footer-grid{ gap:22px; }
  .footer-bottom{ align-items:center; flex-direction:column; gap:5px; }
  .footer-brand{ align-items:center; justify-content:center; }
  .footer-summary,.footer-mini-copy{ max-width:100%; }
  .social-row a{ width:34px; height:34px; }
}

@media(hover:none){
  .btn:hover,.card:hover,.program-card:hover,.program-feature-card:hover,.program-index-card:hover,.contact-location-card:hover,.location-card:hover,.coach-card:hover,.testi-card:hover,.success-card:hover,.portal-stat-card:hover,.portal-panel:hover,.portal-alert:hover,.download-card:hover,.admin-stat-card:hover,.admin-report-card:hover,.admin-chart-card:hover{ transform:none; }
  .media-frame:hover img,.program-card:hover img,.location-card:hover img,.coach-card:hover img,.success-card:hover img,.contact-location-card:hover img{ transform:none; }
}

/* WCAG AA contrast: on white/light surfaces, orange is used as an accent while
   readable text remains navy. Orange text is retained on dark navy surfaces. */
p a:hover,.policy-article a:hover,.form-note a:hover,.registration-check a:hover{ color:var(--color-navy); text-decoration-color:var(--color-orange); }
.btn-outline:hover,.btn-text:hover{ color:var(--color-navy); border-color:var(--color-orange); }
.faq-q:hover,.faq-q:focus-visible{ color:var(--color-navy); }
.coach-info .coach-role,.timeline-item .t-label,.value-num,.home-program-link span,.home-pathway-track span,.program-highlight-list dt,.program-index-card span,.trial-process li::before,.contact-location-card span,.contact-location-card dt,.session-list span,.week-card span,.portal-alert span,.portal-detail-list dt,.review-card dt,.fee-summary dt,.payment-summary span,.registration-progress-mobile span,.admin-stat-card span,.policy-toc a.active{ color:var(--color-navy); }
.policy-toc a.active{ border-left:3px solid var(--color-orange); }

/* ============================================================
   PHASE 4 — PROGRAM · TRIAL · REGISTRATION · CONTACT
   ============================================================ */

/* ------ Compact Program Hero (no image) ------ */
.program-hero-compact{position:relative;background:var(--color-navy);min-height:clamp(260px,24vw,340px);display:flex;align-items:center;overflow:hidden;isolation:isolate;}
.program-hero-compact::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 110% 50%, rgba(242,84,14,.10) 0%, transparent 68%);pointer-events:none;}
.program-hero-compact .container{position:relative;z-index:1;padding-top:80px;padding-bottom:52px;}
.program-hero-compact h1{color:var(--color-white);font-size:clamp(2.6rem,4.8vw,4.1rem);line-height:.96;letter-spacing:-.018em;text-wrap:balance;max-width:680px;margin-top:12px;}
.program-hero-compact p{color:rgba(255,255,255,.76);font-size:clamp(15px,1.4vw,17px);line-height:1.6;max-width:560px;margin-top:14px;}
/* ------ Program Meta Bar ------ */
.program-meta-bar{display:flex;flex-wrap:wrap;gap:0;margin-top:28px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);overflow:hidden;width:fit-content;}
.program-meta-bar .meta-item{display:flex;flex-direction:column;padding:10px 24px;border-right:1px solid rgba(255,255,255,.12);gap:2px;}
.program-meta-bar .meta-item:last-child{border-right:none;}
.program-meta-bar .meta-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.50);}
.program-meta-bar .meta-value{font-family:var(--font-display);font-size:13px;font-weight:600;color:var(--color-white);letter-spacing:.02em;}
/* ------ Benefits card grid ------ */
.program-benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px;}
.benefit-card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius);padding:28px 24px;transition:box-shadow var(--transition),transform var(--transition);}
.benefit-card:hover{box-shadow:var(--shadow-card);transform:translateY(-3px);}
.benefit-card .benefit-num{font-family:var(--font-display);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-orange);margin-bottom:12px;display:block;}
.benefit-card h3{font-size:clamp(15px,1.3vw,17px);font-weight:700;line-height:1.2;margin-bottom:8px;color:var(--color-navy);}
.benefit-card p{font-size:14px;color:var(--color-text-muted);line-height:1.5;}
/* ------ Training Highlights ------ */
.training-highlights-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px;}
.highlight-card{background:var(--color-navy);border-radius:var(--radius);padding:32px 24px;text-align:center;}
.highlight-card .hl-icon{width:48px;height:48px;background:rgba(242,84,14,.12);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
.highlight-card .hl-icon svg{width:24px;height:24px;stroke:var(--color-orange);}
.highlight-card h3{font-family:var(--font-display);font-size:clamp(26px,3vw,34px);color:var(--color-white);line-height:1;margin-bottom:6px;}
.highlight-card p{font-size:13px;color:rgba(255,255,255,.62);line-height:1.5;}
/* ------ Program Pathway Timeline ------ */
.program-pathway-timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:36px;position:relative;}
.program-pathway-timeline::before{content:"";position:absolute;top:20px;left:calc(12.5% + 4px);right:calc(12.5% + 4px);height:2px;background:linear-gradient(90deg,var(--color-orange) 0%,rgba(242,84,14,.25) 100%);z-index:0;}
.pathway-step{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 12px;position:relative;z-index:1;}
.pathway-step .ps-dot{width:40px;height:40px;background:var(--color-navy);border:2px solid var(--color-orange);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--color-orange);flex-shrink:0;}
.pathway-step h4{font-size:13px;font-weight:700;color:var(--color-navy);margin-top:12px;line-height:1.2;}
.pathway-step p{font-size:12px;color:var(--color-text-muted);margin-top:5px;line-height:1.4;}
/* ------ Eligibility Pills ------ */
.eligibility-pill-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;}
.eligibility-pill{display:flex;align-items:center;gap:8px;background:var(--color-white);border:1px solid var(--color-border);border-radius:99px;padding:10px 20px;font-size:14px;font-weight:600;color:var(--color-navy);transition:border-color var(--transition),box-shadow var(--transition);}
.eligibility-pill:hover{border-color:var(--color-orange);box-shadow:0 0 0 3px rgba(242,84,14,.08);}
.eligibility-pill svg{width:16px;height:16px;stroke:var(--color-orange);flex-shrink:0;}
.eligibility-pill small{font-size:12px;color:var(--color-text-muted);font-weight:400;}
/* ------ Spain 3-phase grid ------ */
.spain-phase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px;}
.spain-phase-card{background:var(--color-white);border:1px solid var(--color-border);border-top:3px solid var(--color-orange);border-radius:var(--radius);padding:28px 22px;transition:box-shadow var(--transition),transform var(--transition);}
.spain-phase-card:hover{box-shadow:var(--shadow-card);transform:translateY(-3px);}
.spain-phase-card .phase-num{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-orange);display:block;margin-bottom:10px;}
.spain-phase-card h3{font-size:16px;font-weight:700;color:var(--color-navy);margin-bottom:8px;}
.spain-phase-card p{font-size:13px;color:var(--color-text-muted);line-height:1.55;}
/* ------ Trial City Selector ------ */
.trial-city-selector{display:flex;gap:8px;margin-top:28px;}
.trial-city-btn{padding:10px 28px;border-radius:99px;font-size:14px;font-weight:600;font-family:var(--font-body);border:1.5px solid var(--color-border);background:var(--color-white);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);}
.trial-city-btn:hover{background:rgba(6,13,29,.06);border-color:var(--color-navy);color:var(--color-navy);}
.trial-city-btn.active{background:var(--color-orange);border-color:var(--color-orange);color:var(--color-white);}
/* ------ Trial Date Cards ------ */
.trial-date-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:24px;}
.trial-date-card{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:12px;transition:box-shadow var(--transition),transform var(--transition);}
.trial-date-card:hover{box-shadow:var(--shadow-card);transform:translateY(-2px);}
.trial-date-card[hidden]{display:none;}
.trial-date-header{display:flex;justify-content:space-between;align-items:flex-start;}
.trial-date-header h4{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--color-navy);line-height:1.1;}
.trial-seats-badge{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:99px;background:rgba(242,84,14,.10);color:var(--color-orange);white-space:nowrap;}
.trial-seats-badge.full{background:rgba(100,100,100,.08);color:var(--color-text-muted);}
.trial-date-meta{display:flex;flex-direction:column;gap:4px;}
.trial-date-meta span{font-size:13px;color:var(--color-text-muted);display:flex;align-items:center;gap:6px;}
.trial-date-meta svg{width:13px;height:13px;stroke:var(--color-orange);}
.trial-date-card .btn{margin-top:4px;font-size:13px;padding:10px 18px;align-self:flex-start;}
/* ------ Trial Process Timeline ------ */
.trial-process-timeline{display:flex;flex-direction:column;gap:0;margin-top:32px;position:relative;}
.trial-process-timeline::before{content:"";position:absolute;left:19px;top:20px;bottom:20px;width:2px;background:var(--color-border);z-index:0;}
.tpt-step{display:flex;gap:20px;align-items:flex-start;padding:20px 0;position:relative;z-index:1;}
.tpt-step:first-child{padding-top:0;}
.tpt-step:last-child{padding-bottom:0;}
.tpt-dot{width:40px;height:40px;flex-shrink:0;background:var(--color-navy);border:2px solid var(--color-orange);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--color-orange);}
.tpt-body h4{font-size:16px;font-weight:700;color:var(--color-navy);padding-top:8px;}
.tpt-body p{font-size:14px;color:var(--color-text-muted);line-height:1.55;margin-top:4px;}
/* ------ Trial Wizard upgraded step dots ------ */
.trial-step-dots{display:flex;align-items:center;margin-bottom:32px;}
.trial-step-dot{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;position:relative;}
.trial-step-dot::before{content:"";position:absolute;top:13px;left:calc(50% + 14px);right:calc(-50% + 14px);height:2px;background:var(--color-border);}
.trial-step-dot:last-child::before{display:none;}
.trial-step-dot.done::before{background:var(--color-orange);}
.tsd-circle{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;font-weight:700;background:var(--color-offwhite);border:2px solid var(--color-border);color:var(--color-text-muted);position:relative;z-index:1;transition:all var(--transition);}
.trial-step-dot.active .tsd-circle{background:var(--color-orange);border-color:var(--color-orange);color:var(--color-white);}
.trial-step-dot.done .tsd-circle{background:var(--color-navy);border-color:var(--color-navy);color:var(--color-white);}
.tsd-label{font-size:11px;font-weight:600;color:var(--color-text-muted);text-align:center;line-height:1.2;white-space:nowrap;}
.trial-step-dot.active .tsd-label{color:var(--color-navy);}
/* ------ Registration Phase Bar ------ */
.registration-phase-bar{background:var(--color-white);border-bottom:1px solid var(--color-border);padding:14px 0;}
.registration-phase-inner{display:flex;align-items:center;justify-content:center;}
.reg-phase{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1;max-width:140px;position:relative;}
.reg-phase::after{content:"";position:absolute;top:11px;left:calc(50% + 13px);right:calc(-50% + 13px);height:2px;background:var(--color-border);transition:background var(--transition);}
.reg-phase:last-child::after{display:none;}
.reg-phase.done::after{background:var(--color-orange);}
.reg-phase-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-offwhite);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--color-text-muted);position:relative;z-index:1;transition:all var(--transition);}
.reg-phase.active .reg-phase-dot{background:var(--color-orange);border-color:var(--color-orange);color:var(--color-white);}
.reg-phase.done .reg-phase-dot{background:var(--color-navy);border-color:var(--color-navy);color:var(--color-white);}
.reg-phase-label{font-size:11px;font-weight:600;color:var(--color-text-muted);text-align:center;white-space:nowrap;transition:color var(--transition);}
.reg-phase.active .reg-phase-label{color:var(--color-navy);}
/* ------ Contact compact hero ------ */
.contact-hero-compact{background:var(--color-navy);padding:clamp(82px,8vw,112px) 0 clamp(52px,5vw,70px);position:relative;overflow:hidden;}
.contact-hero-compact::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 105% 40%,rgba(242,84,14,.09) 0%,transparent 66%);pointer-events:none;}
.contact-hero-compact .container{position:relative;z-index:1;}
.contact-hero-compact h1{color:var(--color-white);font-size:clamp(2.4rem,4.4vw,3.8rem);line-height:.96;letter-spacing:-.018em;margin-top:12px;max-width:640px;text-wrap:balance;}
.contact-hero-compact p{color:rgba(255,255,255,.72);font-size:clamp(15px,1.35vw,17px);line-height:1.58;max-width:520px;margin-top:14px;}
.contact-meta-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
.contact-meta-badge{display:flex;align-items:center;gap:7px;padding:8px 16px;border-radius:99px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);font-size:13px;font-weight:500;color:rgba(255,255,255,.80);transition:background var(--transition),color var(--transition);text-decoration:none;}
.contact-meta-badge:hover{background:rgba(255,255,255,.14);color:var(--color-white);}
.contact-meta-badge svg{width:14px;height:14px;stroke:var(--color-orange);}
/* ------ Contact card upgrades ------ */
.contact-info-card a{color:inherit;text-decoration:none;display:block;}
.contact-info-card a:hover{color:var(--color-orange);}
.contact-info-card .ci-sub{font-size:11px;font-family:var(--font-mono);color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;display:block;margin-bottom:6px;}
/* ------ FAQ 2-col grid ------ */
.faq-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;margin-top:8px;align-items:start;}
.faq-grid-2col .faq-item{border-top:1px solid var(--color-border);}
/* ------ Active social links ------ */
.social-link-active{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);color:var(--color-text-muted);transition:all var(--transition);text-decoration:none;}
.social-link-active:hover{border-color:var(--color-orange);color:var(--color-orange);background:rgba(242,84,14,.06);}
.social-link-active svg{width:18px;height:18px;}
/* ------ Phase 4 responsive ------ */
@media(max-width:900px){.program-benefits-grid{grid-template-columns:repeat(2,1fr);}.program-pathway-timeline{grid-template-columns:repeat(2,1fr);row-gap:24px;}.program-pathway-timeline::before{display:none;}.spain-phase-grid{grid-template-columns:1fr 1fr;}.faq-grid-2col{grid-template-columns:1fr;gap:0;}.reg-phase-label{display:none;}}
@media(max-width:640px){.program-benefits-grid{grid-template-columns:1fr;}.training-highlights-row{grid-template-columns:1fr;}.program-meta-bar{flex-direction:column;width:100%;}.program-meta-bar .meta-item{border-right:none;border-bottom:1px solid rgba(255,255,255,.12);padding:10px 16px;}.program-meta-bar .meta-item:last-child{border-bottom:none;}.trial-date-grid{grid-template-columns:1fr;}.tsd-label{display:none;}.contact-meta-badges{gap:8px;}.contact-meta-badge{font-size:12px;padding:7px 12px;}.spain-phase-grid{grid-template-columns:1fr;}}



/* ---- A11Y & FOCUS STATES ---- */
:focus-visible {
  outline: 2px solid var(--color-orange);
  outline-offset: 3px;
  border-radius: 4px;
}
@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;
  }
}
/* Ensure min touch target sizes for mobile */
@media (max-width: 640px) {
  button, a.btn, .social-link-active, .contact-meta-badge, input, select, textarea {
    min-height: 44px;
    min-width: 44px;
  }
}
