/* =========================================================
   ESTRELLA FOOTBALL ACADEMY — Premium Platform Rebuild
   Design tokens: Deep Navy / White / Estrella Gold
   ========================================================= */
:root{
  --brand-navy: #071426;
  --brand-white: #ffffff;
  --brand-accent: #d8a13a;
  --brand-accent-soft: rgba(216, 161, 58, 0.15);
  --brand-accent-border: rgba(216, 161, 58, 0.45);
  --brand-surface: #f5f6f8;
  --brand-text: #071426;
  --color-white: #ffffff;
  --color-navy: #071426;
  --color-orange: var(--brand-accent);
  --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(216,161,58,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(216,161,58,.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(216,161,58,.30); transform:translateY(-2px); }
.btn-ardor{ background:#a01e23; color:var(--color-white); box-shadow:0 10px 24px rgba(160,30,35,.26); }
.btn-ardor:hover,.btn-ardor:focus-visible{ background:#811a1d; color:var(--color-white); box-shadow:0 14px 30px rgba(160,30,35,.34); 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(216,161,58,.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(216,161,58,.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(145deg, rgba(255,255,255,.985), rgba(246,248,252,.97)); border:1px solid rgba(7,20,38,.08); border-radius:24px; box-shadow:0 18px 46px rgba(7,20,38,.06); gap:0; backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.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; inset:0 0 auto 0; height:5px; background:linear-gradient(90deg, var(--color-orange), rgba(216,161,58,.72)); transform:scaleX(.58); 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 -22px -28px auto; width:124px; height:124px; border-radius:50%; background:radial-gradient(circle, rgba(216,161,58,.18), rgba(216,161,58,0) 70%); pointer-events:none; z-index:0; opacity:.78; 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:1; }
.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 28px 60px rgba(7,20,38,.11); border-color:rgba(216,161,58,.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(216,161,58,.18); outline-offset:4px; }
.premium-card > *,
.card > *,
.program-feature-card > *,
.program-index-card > *,
.contact-info-card > *,
.contact-location-card > *,
.trial-process li > *{ position:relative; z-index:2; width:100%; }
.card-icon{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:16px; background:rgba(216,161,58,.10); color:var(--color-orange); border:1px solid rgba(216,161,58,.20); box-shadow:0 10px 24px rgba(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.18); box-shadow:0 10px 22px rgba(216,161,58,.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(216,161,58,.16); box-shadow:0 12px 28px rgba(216,161,58,.12); }
.program-index-card{ padding:28px 24px 30px; }
.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:18px; }
.premium-card--light{ background:linear-gradient(145deg, rgba(255,255,255,.985), rgba(247,249,252,.97)); }
.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:20px; min-height:140px; }
.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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.16); color:var(--color-navy); border-color:rgba(216,161,58,.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(216,161,58,.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(216,161,58,.34); background:rgba(216,161,58,.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(216,161,58,.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(216,161,58,.55); background:rgba(216,161,58,.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(216,161,58,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(216,161,58,.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{ position:relative; z-index:5; 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(216,161,58,.18), rgba(216,161,58,.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(216,161,58,.16); transform:translateY(-2px); }
.page-hero__side-cards{ position:relative; z-index:2; display:grid; gap:12px; align-self:end; margin:0; }
.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(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(216,161,58,.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(145deg, rgba(255,255,255,.985), rgba(247,249,252,.97)); border:1px solid rgba(7,20,38,.08); border-radius:24px; padding:24px; 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(216,161,58,.7)); transform:scaleX(.6); transform-origin:left; transition:transform var(--transition-normal); }
.card::after{ content:''; position:absolute; top:-10px; right:-10px; width:108px; height:108px; border-radius:0 0 0 26px; background:linear-gradient(135deg, rgba(216,161,58,.18), rgba(216,161,58,.02)); clip-path:polygon(100% 0, 100% 100%, 0 100%, 0 70%); opacity:.9; pointer-events:none; z-index:0; }
.card:hover,.card:focus-within{ transform:translateY(-3px); box-shadow:0 22px 54px rgba(7,20,38,.10); border-color:rgba(216,161,58,.25); }
.card:hover::before,.card:focus-within::before{ transform:scaleX(1); }
.card-icon{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:16px; background:rgba(216,161,58,.10); color:var(--color-orange); border:1px solid rgba(216,161,58,.20); box-shadow:0 10px 24px rgba(216,161,58,.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:24px; overflow:hidden; background:linear-gradient(145deg, #071426 0%, #10213a 55%, #152944 100%); border:1px solid rgba(216,161,58,.14); box-shadow:0 20px 44px rgba(7,20,38,.12); transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal); }
.home-programs .program-card{ background:linear-gradient(145deg, #071426 0%, #10213a 55%, #152944 100%); border-color:rgba(216,161,58,.14); box-shadow:0 18px 42px rgba(7,20,38,.18); }
.home-programs .program-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg, #d8a13a 0%, rgba(216,161,58,.72) 100%); z-index:2; pointer-events:none; }
.home-programs .program-card::after{ content:""; position:absolute; right:14px; bottom:14px; width:90px; height:90px; background:url('../images/estrella-logo.jpg') center/contain no-repeat; opacity:.045; filter:grayscale(1); pointer-events:none; z-index:1; border-radius:0; }
.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 6s ease-out, filter var(--transition-normal); will-change:transform; filter:saturate(1.02) contrast(1.05); }
.program-card__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(4,18,35,.06) 0%, rgba(4,18,35,.16) 34%, rgba(4,18,35,.74) 100%); }
.program-card__media--academy{ background-image:radial-gradient(circle at 18% 18%, rgba(255,255,255,.18), transparent 24%), linear-gradient(135deg, rgba(216,161,58,.26), rgba(7,20,38,.02) 40%, rgba(7,20,38,.84) 100%); }
.program-card__media--international{ background-image:radial-gradient(circle at 80% 24%, rgba(216,161,58,.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(216,161,58,.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,.18), rgba(7,20,38,.42)); pointer-events:none; }
.home-programs .program-card__media,
.home-programs .program-card__overlay{ display:none !important; }
.program-card__content{ position:relative; z-index:2; display:flex; flex-direction:column; min-height:100%; padding:24px 24px 24px; justify-content:flex-end; min-height:320px; gap:10px; }
.program-card__number{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; margin-bottom:2px; border:1px solid rgba(255,255,255,.2); border-radius:14px; background:rgba(255,255,255,.1); color:var(--color-orange); font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; }
.program-card__title{ margin:0; font-size:clamp(24px,2.3vw,30px); line-height:1.08; font-family:var(--f-display); letter-spacing:.01em; color:var(--white); transition:transform var(--transition-normal); }
.program-card__description{ margin:0; max-width:32ch; font-size:14px; line-height:1.7; color:rgba(255,255,255,.86); }
.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; padding-top:8px; }
.program-card__cta .arrow{ display:inline-block; transform:translateX(0); transition:transform var(--transition-normal); }
.home-page .program-card:hover, .home-page .program-card:focus-within{ transform:translateY(-6px); box-shadow:0 26px 56px rgba(7,20,38,.16); border-color:rgba(216,161,58,.34); }
.program-card:hover .program-card__media, .program-card:focus-within .program-card__media{ transform:scale(1.04); filter:saturate(1.08) contrast(1.08); }
.program-card:hover .program-card__title, .program-card:focus-within .program-card__title{ transform:translateY(-3px); }
.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(216,161,58,.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; padding:20px 18px 18px; } }
@media(max-width:520px){ .program-feature-card{ padding:18px 16px 20px; } .program-feature-card span{ width:40px; height:40px; font-size:10px; } .program-feature-card h3{ font-size:18px; } .program-feature-card p{ font-size:14px; } }
@media(max-width:380px){ .home-stats-grid{ grid-template-columns: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; } }


/* 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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.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; }
.mobile-cta-bar .btn-outline{ color:var(--color-navy); border-color:var(--color-orange); background:var(--color-orange); box-shadow:var(--shadow-orange); }
.mobile-cta-bar .btn-outline:hover,.mobile-cta-bar .btn-outline:focus-visible{ color:var(--color-navy); border-color:var(--color-orange); background:var(--color-orange); box-shadow:0 14px 30px rgba(216,161,58,.30); transform:translateY(-2px); }
.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(216,161,58,.78); background:rgba(216,161,58,.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(216,161,58,.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(216,161,58,.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; background:linear-gradient(180deg, rgba(241,244,248,.96), rgba(245,248,251,.94)); }
.home-pathway::before{ content:'PATHWAY'; position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); font-family:var(--f-display); font-size:clamp(120px,20vw,340px); font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:rgba(7,20,38,.024); pointer-events:none; user-select:none; white-space:nowrap; z-index:0; line-height:1; }
.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:32px 16px 26px; border-radius:30px; 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 24px 56px rgba(7,20,38,.08); 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(216,161,58,.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(216,161,58,.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(216,161,58,.16)); }
.player-stages{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:18px 16px; list-style:none; margin:0; padding:30px 24px 8px; 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:18px 18px 20px; border:1px solid rgba(7,20,38,.10); border-radius:22px; background:linear-gradient(145deg, rgba(255,255,255,.95), rgba(248,250,252,.94)); box-shadow:0 16px 34px rgba(7,20,38,.06); backdrop-filter:blur(10px); transition:transform var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal), background var(--transition-normal); position:relative; overflow:hidden; }
.player-stage__card::before{ content:''; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg, var(--color-orange), rgba(216,161,58,.7)); transform:scaleX(.55); transform-origin:left; transition:transform var(--transition-normal); }
.player-stage:nth-child(odd) .player-stage__card{ margin-top:68px; }
.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(216,161,58,.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(216,161,58,.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(216,161,58,.32); box-shadow:inset 0 0 0 6px rgba(216,161,58,.04), 0 0 0 8px rgba(216,161,58,.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(216,161,58,.14); }
.player-stage.is-active .stage-node::before{ opacity:1; }
.player-stage.is-active .stage-node__ring{ border-color:rgba(216,161,58,.72); box-shadow:inset 0 0 0 6px rgba(216,161,58,.06), 0 0 0 8px rgba(216,161,58,.06); }
.player-stage.is-active .player-stage__card{ border-color:rgba(216,161,58,.28); box-shadow:0 18px 38px rgba(7,20,38,.08); transform:translateY(-4px); }
.player-stage.is-active .player-stage__card::before{ transform:scaleX(1); }
.player-stage:hover .player-stage__card, .player-stage:focus-visible .player-stage__card{ transform:translateY(-5px); border-color:rgba(216,161,58,.28); box-shadow:0 20px 42px 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(216,161,58,.14); }
.player-stage:focus-visible{ outline:none; }
.player-stage:focus-visible .stage-node{ outline:2px solid rgba(216,161,58,.24); outline-offset:5px; }
.player-stage--final .stage-node{ width:72px; height:72px; }
.player-stage--final .stage-node__ring{ border-color:rgba(216,161,58,.78); box-shadow:inset 0 0 0 6px rgba(216,161,58,.06), 0 0 0 8px rgba(216,161,58,.08); }
.player-stage--final .player-stage__card{ border-color:rgba(216,161,58,.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(216,161,58,.20), rgba(7,20,38,.10)); }
  .player-stage:last-child::before{ display:none; }
  .player-stage.is-active::before{ background:linear-gradient(180deg, rgba(216,161,58,.52), rgba(216,161,58,.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; }
  .player-stage__card::before{ transform:none; }
  .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 accent rim light on the right and soft vignette for depth */
.home-hero-media::after{ background: radial-gradient(1200px 420px at 82% 32%, rgba(216,161,58,0.12), rgba(216,161,58,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-page .home-hero .btn-outline{ color:var(--color-white); border:1px solid rgba(255,255,255,.72); background:rgba(255,255,255,.08); backdrop-filter:blur(10px); transition:color var(--transition-normal), background var(--transition-normal), border-color var(--transition-normal), transform var(--transition-normal); }
.home-page .home-hero .btn-outline:hover,.home-page .home-hero .btn-outline:hover:not(:disabled),.home-page .home-hero .btn-outline:focus-visible{ color:var(--color-navy); border-color:var(--color-orange); background:var(--color-orange); 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(216,161,58,.95), rgba(216,161,58,.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(216,161,58,.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(216,161,58,.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{ 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; }
.timeline-desktop-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:16px; padding:10px 0 20px; margin:0; list-style:none; }
.timeline-desktop-grid 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; }
.timeline-desktop-grid 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); }
.timeline-desktop-grid li:hover,.timeline-desktop-grid li:focus-visible{ transform:translateY(-2px); border-color:var(--color-orange); outline:none; }
.timeline-desktop-grid span{ display:block; font-family:var(--f-mono); font-size:10px; letter-spacing:.12em; color:var(--color-orange); margin-bottom:6px; }
.timeline-desktop-grid strong{ display:block; font-size:15px; line-height:1.35; }

.timeline-desktop-grid{ display:grid; }
.timeline-mobile-carousel{ display:none; width:100%; }
.timeline-mobile-carousel::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-orange); }
.timeline-mobile-carousel::after{ content:'↔'; display:inline-block; margin-left:6px; color:var(--color-orange); font-size:12px; vertical-align:middle; }
.timeline-carousel-viewport{ width:100%; overflow:hidden; min-height:190px; position:relative; touch-action:pan-y; }
.timeline-carousel-track{ display:flex; flex-wrap:nowrap; width:100%; transition:transform 500ms ease; will-change:transform; }
.timeline-carousel-slide{ flex:0 0 100%; min-width:100%; max-width:100%; opacity:1; visibility:visible; position:relative; }
.timeline-carousel-slide.is-active{ opacity:1; visibility:visible; }
.timeline-carousel-slide .timeline-card{ display:block; width:100%; opacity:1; visibility:visible; transform:none; position:relative; z-index:2; }
.timeline-card{ position:relative; display:flex; flex-direction:column; justify-content:center; min-height:136px; padding:24px 20px 20px; margin:0; border-radius:18px; border:1px solid rgba(7,20,38,.10); background:linear-gradient(145deg, rgba(255,255,255,.98), rgba(247,249,252,.96)); box-shadow:0 16px 36px rgba(7,20,38,.08); overflow:hidden; isolation:isolate; }
.timeline-card::before{ content:''; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg, var(--color-orange), rgba(216,161,58,.72)); z-index:0; pointer-events:none; }
.timeline-card::after{ content:'ESTRELLA'; position:absolute; right:12px; top:10px; font-family:var(--f-display); font-size:clamp(28px, 5vw, 44px); letter-spacing:.08em; color:rgba(7,20,38,.05); pointer-events:none; user-select:none; white-space:nowrap; z-index:0; }
.timeline-card > *{ position:relative; z-index:1; }
.timeline-card span{ display:block; font-family:var(--f-mono); font-size:10px; letter-spacing:.12em; color:var(--color-orange); margin-bottom:6px; text-transform:uppercase; }
.timeline-card strong{ display:block; font-size:15px; line-height:1.35; color:var(--color-navy); }
.timeline-carousel-controls{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; }
.timeline-carousel-btn{ display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; border:1px solid rgba(7,20,38,.14); border-radius:999px; background:var(--color-white); color:var(--color-navy); box-shadow:0 8px 20px rgba(7,20,38,.08); }
.timeline-carousel-btn:hover,.timeline-carousel-btn:focus-visible{ border-color:rgba(216,161,58,.44); color:var(--color-orange); outline:none; }
.timeline-carousel-dots{ display:flex; align-items:center; gap:7px; flex:1; justify-content:center; }
.timeline-carousel-dot{ width:5px !important; min-width:5px !important; max-width:5px !important; height:5px !important; min-height:5px !important; max-height:5px !important; border-radius:50%; border:none; background:rgba(7,20,38,.26); padding:0 !important; flex:0 0 5px !important; box-shadow:none; }
.timeline-carousel-dot.is-active{ background:var(--color-orange); }
.timeline-carousel-dot:focus-visible{ outline:2px solid rgba(216,161,58,.5); outline-offset:2px; }
@media(max-width:767px){
  .timeline-desktop-grid.home-pathway-track{ display:none !important; }
  .timeline-mobile-carousel{ display:block; width:100%; }
  .timeline-carousel-slide{ padding-inline:0; }
  .timeline-card{ min-height:160px; padding:26px 20px 24px; }
}
@media(min-width:768px){
  .timeline-mobile-carousel{ display:none !important; }
}
@media(prefers-reduced-motion:reduce){
  .timeline-carousel-track{ transition:none !important; }
}

@media(min-width:768px){
  .timeline-mobile-carousel{ display:none !important; }
  .timeline-desktop-grid{ display:grid; }
}

@media(max-width:767px){
  .timeline-desktop-grid{ display:none !important; }
  .timeline-mobile-carousel{ display:block; width:100%; }
  .timeline-carousel-viewport{ padding-inline:0; touch-action:pan-y; }
  .timeline-carousel-slide{ padding-inline:0; }
  .timeline-carousel-item{ min-height:160px; padding:26px 20px 24px; }
}

@media(prefers-reduced-motion: reduce){
  .timeline-carousel-track{ transition:none !important; }
}
.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; }}

/* 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(145deg, rgba(255,255,255,.985), rgba(247,249,252,.97)); border:1px solid rgba(7,20,38,.10); border-radius:20px; padding:22px; box-shadow:0 14px 34px rgba(7,20,38,.06); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:8px; 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(216,161,58,.7)); transform:scaleX(.56); transform-origin:left; transition:transform var(--transition-normal); }
.home-stats-grid .stat-card::after{ content:''; position:absolute; inset:auto 12px 12px auto; width:46px; height:46px; border-radius:14px; background:radial-gradient(circle, rgba(216,161,58,.18), rgba(216,161,58,0)); opacity:.96; 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(30px,4.3vw,38px); 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 22px 44px rgba(7,20,38,.10); border-color:rgba(216,161,58,.28); }
.home-stats-grid .stat-card:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(216,161,58,.18), 0 22px 44px rgba(7,20,38,.10); }
.home-intro{ position:relative; overflow:hidden; background:linear-gradient(180deg, #fdfdfd 0%, #f1f3f7 100%); }
.home-intro::after{ content:'ESTRELLA'; position:absolute; inset:auto auto -8% 50%; transform:translateX(-50%); font-family:var(--f-display); font-size:clamp(100px,18vw,300px); font-weight:900; letter-spacing:.06em; text-transform:uppercase; color:rgba(7,20,38,.025); pointer-events:none; user-select:none; white-space:nowrap; z-index:0; line-height:1; }
.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(216,161,58,.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:18px; } .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%); padding:var(--section-space-lg) 0; }
.home-programs::before{ content:'PROGRAMS'; position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); font-family:var(--f-display); font-size:clamp(100px,18vw,300px); font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:rgba(7,20,38,.024); pointer-events:none; user-select:none; white-space:nowrap; z-index:0; line-height:1; }
.home-programs::after{ 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; z-index:1; }
.home-programs__decor{ position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:1; }
.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(216,161,58,.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: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:24px; background:linear-gradient(145deg, rgba(255,255,255,.988), rgba(248,250,253,.97)); box-shadow:0 16px 40px rgba(7,20,38,.06); transition:transform var(--transition-normal), box-shadow var(--transition-normal), border-color var(--transition-normal), background var(--transition-normal); isolation:isolate; }
.program-feature-card::before{ content:''; position:absolute; inset:0 0 auto 0; height:5px; background:linear-gradient(90deg, var(--color-orange), rgba(216,161,58,.65)); transform:scaleX(.58); transform-origin:left; transition:transform var(--transition-normal); z-index:1; }
.program-feature-card::after{ content:''; position:absolute; top:-8px; right:-8px; width:94px; height:94px; background:radial-gradient(circle, rgba(216,161,58,.14), rgba(216,161,58,0)); border-radius:50%; pointer-events:none; z-index:0; opacity:.8; }
.program-feature-card:hover::before,.program-feature-card:focus-within::before{ transform:scaleX(1); }
.program-feature-card:hover,.program-feature-card:focus-within{ transform:translateY(-4px); box-shadow:0 22px 48px rgba(7,20,38,.10); border-color:rgba(216,161,58,.26); }
.program-feature-card span{ position:relative; z-index:2; display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; border-radius:16px; background:rgba(216,161,58,.12); color:var(--color-orange); font-family:var(--f-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; margin:0 0 12px; border:1px solid rgba(216,161,58,.20); box-shadow:0 8px 18px rgba(216,161,58,.08); }
.program-feature-card h3{ position:relative; z-index:2; font-size:20px; color:var(--color-navy); margin:0 0 8px; font-weight:700; }
.program-feature-card p{ position:relative; z-index:2; 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(216,161,58,.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(216,161,58,.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(216,161,58,.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:max(18px, env(safe-area-inset-right, 18px)); bottom:max(18px, env(safe-area-inset-bottom, 18px)); z-index:320; display:inline-flex; max-width:calc(100vw - 36px); animation:whatsappIn .32s var(--ease-emphasized) both; }
.program-whatsapp .btn{ min-width:0; white-space:nowrap; box-shadow:var(--shadow-orange); }
.program-whatsapp:hover .btn,.program-whatsapp:focus-visible .btn{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(216,161,58,.30); }
.whatsapp-floating{ position:fixed; right:max(16px, env(safe-area-inset-right, 16px)); bottom:max(16px, env(safe-area-inset-bottom, 16px)); z-index:320; display:flex; align-items:center; justify-content:center; width:56px; height:56px; padding:0; border:0; border-radius:50%; background:#25d366; color:var(--color-white); box-shadow:0 4px 12px rgba(0,0,0,.15); cursor:pointer; transition:transform .22s ease, box-shadow .22s ease; }
.whatsapp-floating:hover{ transform:scale(1.1); box-shadow:0 6px 16px rgba(0,0,0,.2); }
.whatsapp-floating:focus-visible{ outline:2px solid #25d366; outline-offset:2px; }
.whatsapp-floating svg{ width:28px; height:28px; color:var(--color-white); }
.whatsapp-floating.hidden,body.player-portal .whatsapp-floating,body.admin-portal .whatsapp-floating{ display:none; }
@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(216,161,58,.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(216,161,58,.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(216,161,58,.34); border-radius:var(--radius-lg); padding:22px; background:rgba(216,161,58,.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:auto; right:max(14px, env(safe-area-inset-right, 14px)); bottom:max(18px, env(safe-area-inset-bottom, 18px)); max-width:calc(100vw - 28px); }
  .program-whatsapp .btn{ width:auto; min-height:44px; padding:12px 18px; }
}

/* 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(auto-fit,minmax(210px,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(auto-fit,minmax(260px,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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.12); color:var(--color-orange); border:1px solid rgba(216,161,58,.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(216,161,58,.55); background:rgba(216,161,58,.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(216,161,58,.48); background:rgba(216,161,58,.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(216,161,58,.42); }
.download-card > svg{ width:26px; height:26px; color:var(--color-orange); margin:0; }
.download-card .btn{ margin-top:auto; }
.portal-document-card{ gap:10px; }
.portal-document-card input[type="file"]{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.portal-document-card .status-chip{ align-self:flex-start; }
.portal-document-card h3{ display:flex; align-items:center; gap:8px; overflow-wrap:anywhere; }
.portal-document-card p{ overflow-wrap:anywhere; }
.portal-document-card label.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-create{ text-align:center; font-size:14px; }
.portal-auth-create a,.portal-auth-message{ color:var(--color-orange); font-weight:800; }
.portal-auth-message{ min-height:22px; margin-top:12px; }
.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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.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(216,161,58,.18); border-color:rgba(216,161,58,.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,.92) 0%, rgba(4,18,35,.74) 46%, rgba(4,18,35,.42) 74%, rgba(4,18,35,.30) 100%), url("../images/banner.jpeg") 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,.60) 0%, rgba(4,18,35,.14) 42%, rgba(4,18,35,.14) 100%); }
.registration-intro .container{ padding-top:78px; padding-bottom:58px; }

/* --- ARDOR FC TRIALS banner hero: shorter height, tighter content, reuses assets/images/banner.jpeg --- */
.registration-page .registration-intro{ min-height:clamp(220px,22vw,300px); }
.registration-page .registration-intro .container{ padding-top:clamp(40px,5vw,56px); padding-bottom:clamp(28px,3.5vw,40px); }
.registration-page .registration-intro h1{ font-size:clamp(2rem,4vw,3.2rem); line-height:1; margin-top:8px; }
.registration-page .registration-intro p:not(.eyebrow){ margin-top:10px; }
.registration-page .registration-intro .breadcrumb{ margin-bottom:2px; }

/* --- Banner-as-hero (Option B): banner fills the width (cover, centered), no dark overlay. --- */
.registration-page .registration-intro--banner{
  display:block;                /* banner fills the box; subtitle sits below */
  min-height:0;
  padding:0;
  background:#ffffff;
  /* Height follows the image's natural ratio (banner.jpeg is 2048x701 ~= 2.92:1) so the WHOLE
     image fits with no vertical crop. Capped so an ultra-wide viewport can't make it too tall. */
  width:100%;
  aspect-ratio:2048 / 701;
  max-height:360px;
}
/* Show the ENTIRE image (contain, not cover) so nothing is cropped — the players at the top and
   the full NEAT logo at the bottom stay visible. Centered; white letterbox matches the page. */
.registration-page .registration-intro--banner::before{
  background:url("../images/banner.jpeg") center center / contain no-repeat #ffffff;
}
/* Disable the secondary darkening layer for the banner hero. */
.registration-page .registration-intro--banner::after{ background:none; }
/* Slim, muted context line shown directly under the banner (not overlaid on it). */
.registration-page .registration-intro--banner + .registration-banner-caption{
  margin:0;
  padding:10px 20px 0;          /* small, consistent gap directly below the complete banner */
  text-align:center;
  color:var(--color-muted);
  /* Bold + larger so the description reads as a prominent lead-in: ~16px mobile up to ~21px desktop. */
  font-weight:600;
  font-size:clamp(16px,2vw,21px);
  line-height:1.4;
}
.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(216,161,58,.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(216,161,58,.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(216,161,58,.34); border-radius:var(--radius); background:rgba(216,161,58,.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(216,161,58,.10); }
.payment-methods .field-error{ grid-column:1/-1; }
.confirmation-card{ text-align:left; border-color:rgba(216,161,58,.44); background:rgba(216,161,58,.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(190px,46vw,240px); }
  .registration-intro::before{ background:linear-gradient(90deg, rgba(4,18,35,.90) 0%, rgba(4,18,35,.74) 60%, rgba(4,18,35,.5) 100%), url("../images/banner.jpeg") center/cover; }
  .registration-intro .container{ padding-top:30px; padding-bottom:22px; }
  .registration-intro h1{ font-size:clamp(26px,7.5vw,34px); }
  .registration-intro p{ margin-top:8px; font-size:15px; line-height:1.45; }
  .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(216,161,58,.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(216,161,58,.55); box-shadow:0 0 0 3px rgba(216,161,58,.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(216,161,58,.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-attendance-form{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; align-items:end; }
.admin-attendance-list{ display:grid; gap:12px; }
.admin-attendance-row{ display:grid; grid-template-columns:minmax(190px,1fr) minmax(360px,2fr); gap:16px; align-items:center; padding:14px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); }
.admin-attendance-row b,.admin-attendance-row span{ display:block; }
.admin-attendance-row > div span{ color:var(--color-muted); font-family:var(--f-mono); font-size:12px; }
.admin-attendance-row fieldset{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; border:0; padding:0; margin:0; }
.admin-attendance-row label{ min-height:44px; cursor:pointer; }
.admin-attendance-row input{ position:absolute; opacity:0; pointer-events:none; }
.admin-attendance-row label span{ min-height:44px; display:grid; place-items:center; border:1px solid var(--color-border); border-radius:var(--radius); color:var(--color-navy); font-weight:800; }
.admin-attendance-row input:checked + span{ background:var(--color-navy); border-color:var(--color-navy); color:var(--color-white); }
.admin-save-attendance{ margin-top:16px; min-height:46px; }
.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%; }
  .admin-attendance-form,.admin-attendance-row{ grid-template-columns:1fr; }
  .admin-attendance-row fieldset{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .skeleton-stack{ display:none; }
}

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

@media(max-width:560px){
  .admin-table-wrap{ overflow:visible; }
  .admin-portal .data-table{ min-width:0; border:0; background:transparent; }
  .admin-portal .data-table thead{ display:none; }
  .admin-portal .data-table,.admin-portal .data-table tbody,.admin-portal .data-table tr,.admin-portal .data-table td{ display:block; width:100%; }
  .admin-portal .data-table tr{ margin-bottom:12px; padding:12px; border:1px solid var(--color-border); border-radius:var(--radius-lg); background:var(--color-white); }
  .admin-portal .data-table td{ display:grid; grid-template-columns:minmax(104px,38%) 1fr; gap:10px; padding:8px 0; border:0; }
  .admin-portal .data-table td::before{ content:attr(data-label); color:var(--color-muted); font-family:var(--f-mono); font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
}

/* 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(216,161,58,.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(216,161,58,.36); border-radius:var(--radius-lg); background:rgba(216,161,58,.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, accent color is decorative 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(216,161,58,.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(216,161,58,.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;}
/* ------ 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(216,161,58,.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(216,161,58,.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 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(216,161,58,.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(216,161,58,.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);}.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;
  }
}

/* ============================================================
   PHASE 1 public refresh: shared color, hero, section, footer
   ============================================================ */
:root{
  --brand-navy: #071426;
  --brand-white: #ffffff;
  --brand-accent: #d8a13a;
  --brand-accent-soft: rgba(216, 161, 58, 0.15);
  --brand-accent-border: rgba(216, 161, 58, 0.45);
  --brand-surface: #f5f6f8;
  --brand-text: #071426;
--color-text-muted: var(--color-muted);
  --color-offwhite: var(--brand-surface);
  --shadow-card: var(--shadow-sm);
  --transition: var(--transition-normal);
}

.site-header{ min-height:var(--header-height); background:rgba(7,20,38,.92); border-bottom:1px solid rgba(216,161,58,.18); }
.header-inner{ min-height:var(--header-height); padding-top:10px; padding-bottom:10px; }
.brand img{ width:40px; height:40px; object-fit:cover; }
.main-nav{ gap:clamp(18px,2vw,28px); }
.main-nav a{ padding-bottom:14px; }
.main-nav a:hover,.main-nav a:focus-visible,.main-nav a.active{ color:var(--brand-accent); }
.main-nav .nav-underline{ bottom:7px; background:linear-gradient(90deg,var(--brand-accent),rgba(216,161,58,.68)); box-shadow:0 0 18px rgba(216,161,58,.22); }
.site-header .btn-yellow,.mobile-nav .btn-yellow{ background:var(--brand-accent); color:var(--brand-navy); box-shadow:0 10px 24px rgba(216,161,58,.20); }
.site-header.is-scrolled{ background:rgba(7,20,38,.90); border-bottom-color:rgba(216,161,58,.28); }
.menu-toggle:hover,.menu-toggle:focus-visible,.menu-toggle[aria-expanded="true"]{ border-color:var(--brand-accent); }
.mobile-nav a:hover,.mobile-nav a:focus-visible,.mobile-nav a.active{ color:var(--brand-accent); }

.page-hero,.program-section-hero,.contact-hero,.policy-hero,.registration-intro{ min-height:clamp(330px,31vw,460px); background:var(--brand-navy); }
.page-hero--home,.home-hero{ min-height:clamp(460px,45vw,560px); }
.page-hero__overlay{ background:linear-gradient(90deg,rgba(4,18,35,.96) 0%,rgba(4,18,35,.82) 40%,rgba(4,18,35,.44) 76%,rgba(4,18,35,.18) 100%), radial-gradient(ellipse at center,rgba(7,20,38,0) 40%,rgba(3,12,24,.56) 100%); }
.page-hero__accent,.home-hero-media::after{ background:radial-gradient(620px 280px at 82% 30%,rgba(216,161,58,.16),rgba(216,161,58,.05) 36%,transparent 72%), linear-gradient(0deg,rgba(4,18,35,.68) 0%,rgba(4,18,35,.10) 56%,rgba(4,18,35,.26) 100%); }
.page-hero__content,.program-section-hero .container,.contact-hero-inner,.policy-hero .container,.registration-intro .container{ max-width:760px; padding-top:clamp(74px,8vw,96px); padding-bottom:clamp(42px,6vw,64px); }
.page-hero__shell,.home-hero-shell{ padding-top:clamp(72px,8vw,94px); padding-bottom:clamp(42px,5vw,58px); align-items:center; }
.page-hero__eyebrow,.page-hero .eyebrow,.program-section-hero .eyebrow,.contact-hero .eyebrow,.policy-hero .eyebrow{ color:var(--brand-accent); }
.page-hero__title,.program-section-hero h1,.contact-hero h1,.policy-hero h1,.registration-intro h1{ max-width:760px; font-size:clamp(2.6rem,5vw,5.3rem); line-height:.96; letter-spacing:0; text-wrap:balance; overflow-wrap:normal; }
.home-hero h1{ max-width:760px; font-size:clamp(2.6rem,4.9vw,5rem); line-height:.98; letter-spacing:0; }
.page-hero__description,.program-section-hero p:not(.eyebrow),.contact-hero p:not(.eyebrow),.policy-hero p:not(.eyebrow),.registration-intro p:not(.eyebrow){ max-width:620px; line-height:1.6; margin-top:16px; }
.page-hero__actions,.program-actions,.contact-actions,.home-actions{ gap:12px 14px; margin-top:24px; }
.section:not(.section-navy),.program-shell,.policy-section-wrap{ position:relative; overflow:hidden; background:linear-gradient(180deg,var(--brand-white) 0%,var(--brand-surface) 100%); }
.section:not(.section-navy)::before,.program-shell::before,.policy-section-wrap::before{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(7,20,38,.028) 1px,transparent 1px), linear-gradient(180deg,rgba(7,20,38,.024) 1px,transparent 1px), radial-gradient(circle at 84% 12%,rgba(216,161,58,.10),transparent 28%); background-size:42px 42px,42px 42px,100% 100%; opacity:.72; }
.section:not(.section-navy)::after{ position:absolute; right:max(18px,6vw); top:12px; font-family:var(--f-display); font-size:clamp(58px,11vw,138px); line-height:.8; letter-spacing:.08em; color:rgba(7,20,38,.04); pointer-events:none; z-index:0; white-space:nowrap; }
.section > .container,.program-shell > .container,.policy-section-wrap > .container{ position:relative; z-index:1; }
.home-intro::after{ content:"DEVELOPMENT"; }
.home-programs::after{ content:"PROGRAMS"; }
.home-pathway::after{ content:"PATHWAY"; }
.program-shell::after{ content:"ESTRELLA"; position:absolute; right:max(18px,6vw); top:18px; font-family:var(--f-display); font-size:clamp(58px,11vw,138px); letter-spacing:.08em; color:rgba(7,20,38,.04); pointer-events:none; white-space:nowrap; }
.section{ padding-top:clamp(48px,7vw,78px); padding-bottom:clamp(48px,7vw,78px); }

.home-page .home-hero-preview::after,.home-page .stat-card::after{ content:""; position:absolute; right:-18px; bottom:-18px; width:120px; height:120px; background:url('../images/estrella-logo.jpg') center/contain no-repeat; opacity:.055; filter:grayscale(1); pointer-events:none; z-index:1; border-radius:50%; }
.home-page .home-hero-preview > *,.home-page .program-card > *,.home-page .stat-card > *{ position:relative; z-index:2; }

.js-motion .page-hero__eyebrow,.js-motion .page-hero__title,.js-motion .page-hero__description,.js-motion .page-hero__actions{ opacity:0; transform:translateY(14px); transition:opacity .5s var(--ease-emphasized), transform .5s var(--ease-emphasized); }
.js-motion.page-ready .page-hero__eyebrow,.js-motion.page-ready .page-hero__title,.js-motion.page-ready .page-hero__description,.js-motion.page-ready .page-hero__actions{ opacity:1; transform:none; }
.js-motion.page-ready .page-hero__title{ transition-delay:80ms; }
.js-motion.page-ready .page-hero__description{ transition-delay:150ms; }
.js-motion.page-ready .page-hero__actions{ transition-delay:220ms; }

.site-footer{ padding:34px 0 16px; background:var(--brand-navy); }
.footer-grid{ grid-template-columns:1fr; gap:22px; }
@media(min-width:760px){ .footer-grid{ grid-template-columns:1.35fr repeat(3,minmax(0,1fr)); gap:26px; } }
.footer-brand{ margin-bottom:10px; }
.footer-brand img{ width:36px; height:36px; object-fit:cover; }
.footer-summary{ max-width:32ch; }
.site-footer h5{ color:var(--brand-accent); margin-bottom:10px; }
.site-footer ul{ gap:7px; }
.site-footer a:hover,.site-footer a:focus-visible{ color:var(--brand-accent); }
.footer-bottom{ margin-top:22px; padding-top:14px; justify-content:center; text-align:center; border-top:1px solid rgba(216,161,58,.18); }
.footer-bottom span,.footer-bottom a{ width:auto; color:rgba(255,255,255,.56); }
.footer-phone{ display:none !important; }

@media(max-width:620px){
  .page-hero,.program-section-hero,.contact-hero,.policy-hero,.registration-intro{ min-height:clamp(300px,82vw,380px); }
  .page-hero__title,.program-section-hero h1,.contact-hero h1,.policy-hero h1,.registration-intro h1,.home-hero h1{ max-width:100%; font-size:clamp(2.25rem,11vw,3.3rem); line-height:1; }
  .page-hero__content,.program-section-hero .container,.contact-hero-inner,.policy-hero .container,.registration-intro .container{ padding-top:58px; padding-bottom:36px; }
  .page-hero__actions .btn,.program-section-hero .program-actions .btn,.contact-actions .btn{ flex:1 1 142px; padding-left:14px; padding-right:14px; }
  .section:not(.section-navy)::before,.program-shell::before,.policy-section-wrap::before{ background-size:58px 58px,58px 58px,100% 100%; opacity:.46; }
  .section:not(.section-navy)::after,.program-shell::after{ display:none; }
  .home-page .home-hero-preview::after,.home-page .stat-card::after{ width:86px; height:86px; opacity:.045; }
  .site-footer{ padding-top:30px; }
  .footer-grid{ gap:18px; }
  .footer-bottom{ margin-top:18px; }
}

/* Phase 2 visible implementation: premium public cards, textured sections, unified pathways */
:root{
  --phase2-accent:#d8a13a;
  --phase2-navy:#071426;
  --phase2-navy-2:#10223c;
  --phase2-gap:24px;
  --phase2-card-radius:16px;
  --phase2-pad:24px;
  --phase2-card-shadow:0 18px 40px rgba(7,20,38,.14), inset 0 1px 0 rgba(255,255,255,.72);
  --phase2-card-shadow-dark:0 18px 40px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.06);
  --phase2-card-shadow-hover:0 28px 58px rgba(7,20,38,.18), inset 0 1px 0 rgba(255,255,255,.78);
}

.grid,
.grid-2,
.grid-3,
.grid-4,
.program-card-grid,
.program-index-grid,
.trial-info-grid,
.home-stats-grid,
.contact-grid,
.contact-form-grid,
.contact-faq-grid,
.program-overview-grid,
.trial-date-grid,
.review-grid{
  gap:var(--phase2-gap) !important;
}

.program-highlight-list{
  gap:var(--phase2-gap) !important;
}

.home-program-list.programs-grid{
  display:grid !important;
  gap:var(--phase2-gap) !important;
}

.premium-card,
.card,
.program-feature-card,
.program-index-card,
.contact-info-card,
.contact-location-card,
.benefit-card,
.spain-phase-card,
.trial-date-card,
.trial-process li,
.program-highlight-list > div,
.home-pathway-track > li,
.review-card,
.fee-summary,
.payment-box,
.confirmation-card,
.contact-faq-list{
  position:relative !important;
  isolation:isolate !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:0 !important;
  padding:var(--phase2-pad) !important;
  border-radius:var(--phase2-card-radius) !important;
  border:1px solid rgba(7,20,38,.12) !important;
  background:
    linear-gradient(145deg, rgba(255,255,255,.99), rgba(244,246,249,.97)) !important;
  box-shadow:var(--phase2-card-shadow) !important;
  min-height:100% !important;
  transform:none;
  transition:transform 240ms var(--ease-emphasized), box-shadow 240ms var(--ease-emphasized), border-color 240ms ease, background 240ms ease !important;
}

.premium-card::before,
.card::before,
.program-feature-card::before,
.program-index-card::before,
.contact-info-card::before,
.contact-location-card::before,
.benefit-card::before,
.spain-phase-card::before,
.trial-date-card::before,
.trial-process li::after,
.program-highlight-list > div::before,
.home-pathway-track > li::before,
.review-card::before,
.fee-summary::before,
.payment-box::before,
.confirmation-card::before,
.contact-faq-list::before{
  content:"" !important;
  position:absolute !important;
  inset:0 auto auto 0 !important;
  width:46% !important;
  height:4px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg, var(--phase2-accent), rgba(216,161,58,.18)) !important;
  transform:scaleX(.62) !important;
  transform-origin:left !important;
  transition:transform 240ms var(--ease-emphasized), opacity 240ms ease !important;
  z-index:3 !important;
}

.premium-card::after,
.card::after,
.program-feature-card::after,
.program-index-card::after,
.contact-info-card::after,
.contact-location-card::after,
.benefit-card::after,
.spain-phase-card::after,
.trial-date-card::after,
.program-highlight-list > div::after,
.home-pathway-track > li::after,
.review-card::after,
.fee-summary::after,
.payment-box::after,
.confirmation-card::after{
  content:"" !important;
  position:absolute !important;
  right:-20px !important;
  bottom:-22px !important;
  width:116px !important;
  height:116px !important;
  background:url('../images/estrella-logo.jpg') center/contain no-repeat !important;
  opacity:.055 !important;
  filter:grayscale(1) contrast(1.05) !important;
  pointer-events:none !important;
  z-index:0 !important;
}

.premium-card > *,
.card > *,
.program-feature-card > *,
.program-index-card > *,
.contact-info-card > *,
.contact-location-card > *,
.benefit-card > *,
.spain-phase-card > *,
.trial-date-card > *,
.trial-process li > *,
.program-highlight-list > div > *,
.home-pathway-track > li > *,
.review-card > *,
.fee-summary > *,
.payment-box > *,
.confirmation-card > *,
.contact-faq-list > *{
  position:relative !important;
  z-index:2 !important;
}

.premium-card :where(h2,h3,h4),
.card :where(h2,h3,h4),
.program-feature-card :where(h2,h3,h4),
.program-index-card :where(h2,h3,h4),
.contact-info-card :where(h2,h3,h4),
.contact-location-card :where(h2,h3,h4),
.benefit-card :where(h2,h3,h4),
.spain-phase-card :where(h2,h3,h4),
.trial-date-card :where(h2,h3,h4),
.program-highlight-list dd,
.home-pathway-track strong{
  margin:0 0 10px !important;
  line-height:1.18 !important;
  color:var(--phase2-navy) !important;
}

.premium-card :where(p,small),
.card :where(p,small),
.program-feature-card p,
.program-index-card p,
.contact-info-card p,
.contact-location-card p,
.benefit-card p,
.spain-phase-card p,
.trial-date-card p,
.trial-process p,
.program-highlight-list dd,
.home-pathway-track strong{
  line-height:1.58 !important;
}

.premium-card > p,
.card > p,
.program-feature-card > p,
.program-index-card > p,
.contact-info-card > p,
.contact-location-card > p,
.benefit-card > p,
.spain-phase-card > p,
.trial-date-card > p {
  width: 100%;
  margin-top: 4px !important;
  padding: 11px 13px 11px 15px;
  border-left: 3px solid rgba(216,161,58,.72);
  border-radius: 0 12px 12px 0;
  background:
    linear-gradient(90deg, rgba(216,161,58,.13), rgba(216,161,58,.035) 62%, rgba(255,255,255,0));
  color: rgba(7,20,38,.78) !important;
  font-size: 14.5px;
  font-weight: 700;
  letter-spacing: .01em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}

.premium-card:hover > p,
.card:hover > p,
.program-feature-card:hover > p,
.program-index-card:hover > p,
.contact-info-card:hover > p,
.contact-location-card:hover > p,
.benefit-card:hover > p,
.spain-phase-card:hover > p,
.trial-date-card:hover > p {
  color: rgba(7,20,38,.92) !important;
  background:
    linear-gradient(90deg, rgba(216,161,58,.2), rgba(216,161,58,.06) 68%, rgba(255,255,255,0));
}

.section-navy .premium-card > p,
.section-navy .card > p,
.section-navy .program-feature-card > p,
.section-navy .program-index-card > p {
  background: linear-gradient(90deg, rgba(216,161,58,.18), rgba(255,255,255,.08));
  color: rgba(255,255,255,.82) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.card-icon,
.program-feature-card > span,
.program-index-card > span,
.benefit-num,
.program-highlight-list dt,
.home-pathway-track span,
.trial-process li::before{
  color:var(--phase2-accent) !important;
  border-color:rgba(216,161,58,.34) !important;
  background:rgba(216,161,58,.12) !important;
  box-shadow:0 10px 24px rgba(216,161,58,.10) !important;
  transition:transform 240ms var(--ease-emphasized), background 240ms ease, box-shadow 240ms ease !important;
}

@media(hover:hover) and (pointer:fine){
  .premium-card:hover,
  .premium-card:focus-within,
  .card:hover,
  .card:focus-within,
  .program-feature-card:hover,
  .program-feature-card:focus-within,
  .program-index-card:hover,
  .program-index-card:focus-within,
  .contact-info-card:hover,
  .contact-info-card:focus-within,
  .contact-location-card:hover,
  .contact-location-card:focus-within,
  .benefit-card:hover,
  .benefit-card:focus-within,
  .spain-phase-card:hover,
  .spain-phase-card:focus-within,
  .trial-date-card:hover,
  .trial-date-card:focus-within,
  .trial-process li:hover,
  .trial-process li:focus-within,
  .program-highlight-list > div:hover,
  .program-highlight-list > div:focus-within,
  .home-pathway-track > li:hover,
  .home-pathway-track > li:focus-within,
  .review-card:hover,
  .review-card:focus-within,
  .fee-summary:hover,
  .fee-summary:focus-within,
  .payment-box:hover,
  .payment-box:focus-within,
  .confirmation-card:hover,
  .confirmation-card:focus-within,
  .contact-faq-list:hover,
  .contact-faq-list:focus-within{
    transform:translateY(-6px) scale(1.01) !important;
    border-color:rgba(216,161,58,.62) !important;
    box-shadow:var(--phase2-card-shadow-hover) !important;
  }

  .premium-card:hover::before,
  .premium-card:focus-within::before,
  .card:hover::before,
  .card:focus-within::before,
  .program-feature-card:hover::before,
  .program-feature-card:focus-within::before,
  .program-index-card:hover::before,
  .program-index-card:focus-within::before,
  .contact-info-card:hover::before,
  .contact-info-card:focus-within::before,
  .contact-location-card:hover::before,
  .contact-location-card:focus-within::before,
  .benefit-card:hover::before,
  .benefit-card:focus-within::before,
  .spain-phase-card:hover::before,
  .spain-phase-card:focus-within::before,
  .trial-date-card:hover::before,
  .trial-date-card:focus-within::before,
  .program-highlight-list > div:hover::before,
  .program-highlight-list > div:focus-within::before,
  .home-pathway-track > li:hover::before,
  .home-pathway-track > li:focus-within::before,
  .review-card:hover::before,
  .review-card:focus-within::before,
  .fee-summary:hover::before,
  .fee-summary:focus-within::before,
  .payment-box:hover::before,
  .payment-box:focus-within::before,
  .confirmation-card:hover::before,
  .confirmation-card:focus-within::before{
    transform:scaleX(1) !important;
  }

  .premium-card:hover::after,
  .premium-card:focus-within::after,
  .card:hover::after,
  .card:focus-within::after,
  .program-feature-card:hover::after,
  .program-feature-card:focus-within::after,
  .program-index-card:hover::after,
  .program-index-card:focus-within::after,
  .contact-info-card:hover::after,
  .contact-info-card:focus-within::after,
  .contact-location-card:hover::after,
  .contact-location-card:focus-within::after{
    opacity:.075 !important;
  }

  .premium-card:hover .card-icon,
  .premium-card:focus-within .card-icon,
  .card:hover .card-icon,
  .card:focus-within .card-icon,
  .program-feature-card:hover > span,
  .program-feature-card:focus-within > span,
  .program-index-card:hover > span,
  .program-index-card:focus-within > span{
    transform:translateY(-3px) !important;
  }

  .program-card:hover .program-card__cta .arrow,
  .program-card:focus-within .program-card__cta .arrow,
  .program-index-card:hover .btn svg,
  .program-index-card:focus-within .btn svg{
    transform:translateX(4px) !important;
  }
}

.premium-card--dark,
.section-navy .premium-card,
.section-navy .card,
.section-navy .program-highlight-list > div,
.section-navy-grad .pathway-step{
  color:#fff !important;
  background:linear-gradient(145deg, rgba(7,20,38,.98), rgba(16,34,60,.96)) !important;
  border-color:rgba(216,161,58,.24) !important;
  box-shadow:var(--phase2-card-shadow-dark) !important;
}

.section-navy .premium-card :where(h2,h3,h4,p,dd),
.section-navy .card :where(h2,h3,h4,p,dd),
.section-navy .program-highlight-list dd,
.section-navy-grad .pathway-step :where(h4,p){
  color:#fff !important;
}

.section:not(.page-hero):not(.section-navy):not(.section-navy-grad),
.program-shell,
.section-offwhite,
.contact-faq-section{
  background:
    radial-gradient(620px 320px at 88% 18%, rgba(216,161,58,.11), transparent 58%),
    radial-gradient(520px 300px at 8% 92%, rgba(7,20,38,.075), transparent 62%),
    linear-gradient(90deg, rgba(7,20,38,.026) 1px, transparent 1px),
    linear-gradient(180deg, rgba(7,20,38,.022) 1px, transparent 1px),
    linear-gradient(180deg, #fff 0%, #f3f5f8 100%) !important;
  background-size:auto, auto, 46px 46px, 46px 46px, auto !important;
}

.section:not(.page-hero):not(.section-navy):not(.section-navy-grad)::before,
.program-shell::before,
.section-offwhite::before{
  background:
    radial-gradient(ellipse at 50% 50%, transparent 0 20%, rgba(7,20,38,.045) 20.5% 21.5%, transparent 22%),
    linear-gradient(135deg, transparent 0 46%, rgba(216,161,58,.065) 46.4% 47%, transparent 47.5%),
    radial-gradient(circle, rgba(7,20,38,.12) 1px, transparent 1.5px) !important;
  background-size:360px 220px, 520px 320px, 22px 22px !important;
  opacity:.42 !important;
}

.section:not(.page-hero):not(.section-navy):not(.section-navy-grad)::after{
  content:"ESTRELLA";
  color:rgba(7,20,38,.035) !important;
}

.home-programs::after{ content:"PROGRAMS" !important; }
.home-intro::after{ content:"DEVELOPMENT" !important; }
.home-pathway::after{ content:"PATHWAY" !important; }
.program-page .section-offwhite::after{ content:"ACADEMY" !important; }

.home-program-list.programs-grid{
  grid-template-columns:1fr !important;
  align-items:stretch !important;
}

.home-programs .program-card{
  min-height:0 !important;
  border-radius:18px !important;
  border:1px solid rgba(216,161,58,.28) !important;
  background:linear-gradient(145deg, rgba(7,20,38,.98), rgba(16,34,60,.96)) !important;
  box-shadow:var(--phase2-card-shadow-dark) !important;
  clip-path:polygon(0 0, calc(100% - 30px) 0, 100% 30px, 100% 100%, 0 100%) !important;
}

.home-programs .program-card__media{
  display:block !important;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(216,161,58,.20), transparent 22%),
    linear-gradient(120deg, rgba(255,255,255,.055) 0 1px, transparent 1px),
    linear-gradient(145deg, rgba(7,20,38,.98), rgba(16,34,60,.96)) !important;
  background-size:auto, 36px 36px, auto !important;
  filter:none !important;
}

.home-programs .program-card__overlay{
  background:
    linear-gradient(120deg, rgba(7,20,38,.18), rgba(7,20,38,.64)),
    radial-gradient(circle at 76% 70%, rgba(216,161,58,.15), transparent 38%) !important;
}

.home-programs .program-card__link{
  color:#fff !important;
}

.home-programs .program-card__link::after{
  content:"" !important;
  position:absolute !important;
  right:-24px !important;
  bottom:-22px !important;
  width:150px !important;
  height:150px !important;
  background:url('../images/estrella-logo.jpg') center/contain no-repeat !important;
  opacity:.06 !important;
  filter:grayscale(1) invert(1) contrast(1.1) !important;
  pointer-events:none !important;
  z-index:1 !important;
}

.home-programs .program-card__content{
  min-height:260px !important;
  padding:var(--phase2-pad) !important;
  justify-content:flex-start !important;
  gap:0 !important;
}

.home-programs .program-card--feature .program-card__content{
  min-height:500px !important;
}

.program-card__content::after{
  position:absolute;
  right:18px;
  top:12px;
  font-family:var(--f-display);
  font-size:clamp(74px,9vw,132px);
  line-height:1;
  color:rgba(216,161,58,.105);
  pointer-events:none;
  z-index:1;
}
.program-card:nth-child(1) .program-card__content::after{ content:"01"; }
.program-card:nth-child(2) .program-card__content::after{ content:"02"; }
.program-card:nth-child(3) .program-card__content::after{ content:"03"; }

.home-programs .program-card__number{
  width:52px !important;
  height:52px !important;
  margin:0 0 18px !important;
  border-radius:50% !important;
  border-color:rgba(216,161,58,.52) !important;
  background:rgba(216,161,58,.12) !important;
  color:var(--phase2-accent) !important;
  box-shadow:0 0 0 6px rgba(216,161,58,.055), 0 12px 30px rgba(216,161,58,.12) !important;
}

.home-programs .program-card__title{
  margin:0 0 10px !important;
  color:#fff !important;
}

.home-programs .program-card__description{
  max-width:34ch !important;
  color:rgba(255,255,255,.82) !important;
}

.home-programs .program-card__cta{
  margin-top:auto !important;
  color:var(--phase2-accent) !important;
}

@media(min-width:860px){
  .home-program-list.programs-grid{
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr) !important;
    grid-template-rows:repeat(2,minmax(238px,auto)) !important;
  }
  .home-programs .program-card--feature{
    grid-row:1 / span 2 !important;
  }
}

.home-stats-grid .stat-card{
  padding:24px !important;
}

.player-track,
.pathway,
.home-pathway-track,
.trial-process{
  position:relative !important;
  border-radius:18px !important;
}

.player-track{
  padding:24px !important;
  background:
    radial-gradient(circle at 90% 14%, rgba(216,161,58,.14), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(145deg, rgba(7,20,38,.98), rgba(16,34,60,.96)) !important;
  background-size:auto, 42px 42px, 42px 42px, auto !important;
  border:1px solid rgba(216,161,58,.22) !important;
  box-shadow:var(--phase2-card-shadow-dark) !important;
  overflow:hidden !important;
}

.player-stage__card{
  border-radius:16px !important;
  border-color:rgba(216,161,58,.22) !important;
  background:linear-gradient(145deg, rgba(7,20,38,.94), rgba(16,34,60,.91)) !important;
  box-shadow:0 16px 34px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.06) !important;
}

.player-stage .stage-title,
.player-stage .stage-desc{
  color:#fff !important;
}

.player-path-base{
  stroke:rgba(255,255,255,.18) !important;
}

.player-path-progress{
  stroke:var(--phase2-accent) !important;
  filter:drop-shadow(0 0 9px rgba(216,161,58,.55)) !important;
}

.stage-node{
  background:linear-gradient(145deg, rgba(7,20,38,1), rgba(16,34,60,.98)) !important;
  border-color:rgba(216,161,58,.44) !important;
  box-shadow:0 14px 32px rgba(0,0,0,.24), 0 0 0 7px rgba(216,161,58,.08) !important;
}

.pathway{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:20px !important;
  padding:28px 24px !important;
  background:
    radial-gradient(circle at 94% 8%, rgba(216,161,58,.16), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(145deg, rgba(7,20,38,.98), rgba(16,34,60,.96)) !important;
  background-size:auto, 44px 44px, 44px 44px, auto !important;
  border:1px solid rgba(216,161,58,.22) !important;
  box-shadow:var(--phase2-card-shadow-dark) !important;
  overflow:hidden !important;
  list-style:none !important;
  counter-reset:legacy-path !important;
}

.section-navy-grad{
  position:relative !important;
  overflow:hidden !important;
  background:
    radial-gradient(720px 360px at 86% 8%, rgba(216,161,58,.15), transparent 58%),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.028) 1px, transparent 1px),
    linear-gradient(145deg, #071426, #10223c) !important;
  background-size:auto, 44px 44px, 44px 44px, auto !important;
}

.section-navy-grad::after{
  content:"PATHWAY" !important;
  position:absolute !important;
  right:6vw !important;
  bottom:28px !important;
  font-family:var(--f-display) !important;
  font-size:clamp(70px,13vw,190px) !important;
  line-height:.8 !important;
  letter-spacing:.08em !important;
  color:rgba(255,255,255,.035) !important;
  pointer-events:none !important;
}

.section-navy-grad .container{
  position:relative !important;
  z-index:2 !important;
  width:min(100% - 32px, 1180px) !important;
  max-width:1180px !important;
}

.section-navy-grad .section-head h2,
.section-navy-grad .section-head .eyebrow{
  color:#fff !important;
}

.section-navy-grad .section-head h2::after{
  background:var(--phase2-accent) !important;
  transform:scaleX(1) !important;
}

.pathway::before{
  content:"" !important;
  position:absolute !important;
  left:8% !important;
  right:8% !important;
  top:88px !important;
  height:3px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg, rgba(216,161,58,.95), rgba(216,161,58,.72), rgba(216,161,58,.30)) !important;
  transform:scaleX(0) !important;
  transform-origin:left !important;
  transition:transform 900ms var(--ease-emphasized) 180ms !important;
  z-index:1 !important;
}

.pathway.is-pathway-visible::before{
  transform:scaleX(1) !important;
}

.pathway-step{
  position:relative !important;
  padding:76px 18px 18px !important;
  text-align:center !important;
  border:1px solid rgba(216,161,58,.18) !important;
  border-radius:16px !important;
  background:linear-gradient(145deg, rgba(7,20,38,.92), rgba(16,34,60,.88)) !important;
  box-shadow:0 14px 30px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.055) !important;
  opacity:0;
  transform:translateY(16px) scale(.96);
  transition:opacity 380ms ease, transform 380ms var(--ease-emphasized), border-color 220ms ease, box-shadow 220ms ease !important;
  z-index:2 !important;
}

.pathway.is-pathway-visible .pathway-step{
  opacity:1 !important;
  transform:none !important;
}

.pathway-step.is-revealed{
  opacity:1 !important;
  transform:none !important;
}

.pathway-step::before{
  left:50% !important;
  top:18px !important;
  width:44px !important;
  height:44px !important;
  transform:translateX(-50%) !important;
  background:linear-gradient(145deg, rgba(216,161,58,.22), rgba(216,161,58,.08)) !important;
  border:1px solid rgba(216,161,58,.62) !important;
  color:var(--phase2-accent) !important;
  box-shadow:0 0 0 7px rgba(216,161,58,.06), 0 12px 24px rgba(0,0,0,.18) !important;
  z-index:3 !important;
}

.pathway-step::after{
  display:none !important;
}

.pathway-step h4{
  color:#fff !important;
  margin:0 0 6px !important;
  font-size:13px !important;
  line-height:1.22 !important;
  overflow-wrap:normal !important;
  word-break:normal !important;
  hyphens:none !important;
}

.pathway-step p{
  min-height:1.2em !important;
  color:rgba(255,255,255,.66) !important;
}

.pathway-step:last-child{
  border-color:rgba(216,161,58,.48) !important;
  box-shadow:0 18px 38px rgba(0,0,0,.24), 0 0 32px rgba(216,161,58,.12) !important;
}

.pathway-step:nth-child(2){ transition-delay:70ms !important; }
.pathway-step:nth-child(3){ transition-delay:140ms !important; }
.pathway-step:nth-child(4){ transition-delay:210ms !important; }
.pathway-step:nth-child(5){ transition-delay:280ms !important; }
.pathway-step:nth-child(6){ transition-delay:350ms !important; }
.pathway-step:nth-child(7){ transition-delay:420ms !important; }
.pathway-step:nth-child(8){ transition-delay:490ms !important; }

.home-pathway-track{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr)) !important;
  gap:var(--phase2-gap) !important;
  padding:0 !important;
  border-radius:0 !important;
}

.home-pathway-track > li{
  border-top:0 !important;
  padding-top:54px !important;
}

.home-pathway-track > li::before{
  inset:18px auto auto 24px !important;
  width:28px !important;
  height:28px !important;
  border-radius:50% !important;
  border:1px solid rgba(216,161,58,.55) !important;
  background:linear-gradient(145deg, rgba(216,161,58,.22), rgba(216,161,58,.08)) !important;
}

.trial-process{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:var(--phase2-gap) !important;
  padding:0 !important;
  list-style:none !important;
  counter-reset:trial-process !important;
}

.trial-process li{
  counter-increment:trial-process !important;
  min-height:auto !important;
}

.trial-process li::before{
  content:counter(trial-process, decimal-leading-zero) !important;
  position:relative !important;
  inset:auto !important;
  width:44px !important;
  height:44px !important;
  margin:0 0 16px !important;
  border-radius:50% !important;
}

.timeline{
  padding:22px 22px 22px 34px !important;
  border-left:0 !important;
  border-radius:18px !important;
  background:
    radial-gradient(circle at 88% 12%, rgba(216,161,58,.11), transparent 32%),
    linear-gradient(145deg, rgba(255,255,255,.99), rgba(244,246,249,.97)) !important;
  border:1px solid rgba(7,20,38,.10) !important;
  box-shadow:var(--phase2-card-shadow) !important;
}

.timeline::before{
  content:"" !important;
  position:absolute !important;
  left:18px !important;
  top:28px !important;
  bottom:28px !important;
  width:2px !important;
  background:linear-gradient(180deg, var(--phase2-accent), rgba(216,161,58,.16)) !important;
  border-radius:999px !important;
}

.timeline-item::before{
  left:-22px !important;
  top:4px !important;
  width:14px !important;
  height:14px !important;
  background:var(--phase2-accent) !important;
  border:3px solid #fff !important;
  box-shadow:0 0 0 4px rgba(216,161,58,.12) !important;
}

@media(max-width:1024px){
  :root{ --phase2-gap:20px; --phase2-pad:20px; }
  .pathway{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .trial-process{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

@media(max-width:760px){
  :root{ --phase2-gap:16px; --phase2-pad:18px; }
  .grid,
  .grid-2,
  .grid-3,
  .grid-4,
  .program-card-grid,
  .program-index-grid,
  .trial-info-grid,
  .home-stats-grid,
  .contact-grid,
  .contact-form-grid,
  .contact-faq-grid,
  .program-overview-grid,
  .trial-process{
    grid-template-columns:1fr !important;
  }
  .home-programs .program-card__content,
  .home-programs .program-card--feature .program-card__content{
    min-height:260px !important;
  }
  .home-programs .program-card{
    clip-path:none !important;
  }
  .pathway{
    grid-template-columns:1fr !important;
    gap:16px !important;
    padding:18px !important;
  }
  .pathway::before{
    left:38px !important;
    right:auto !important;
    top:30px !important;
    bottom:30px !important;
    width:3px !important;
    height:auto !important;
    transform:scaleY(0) !important;
    transform-origin:top !important;
  }
  .pathway.is-pathway-visible::before{
    transform:scaleY(1) !important;
  }
  .pathway-step{
    text-align:left !important;
    padding:18px 18px 18px 78px !important;
  }
  .pathway-step::before{
    left:20px !important;
    top:18px !important;
    transform:none !important;
  }
  .player-track{
    padding:18px !important;
  }
  .player-stages{
    gap:16px !important;
  }
  .trial-process{
    gap:16px !important;
  }
  .contact-faq-grid{
    gap:20px !important;
  }
}

.program-index-grid--centered{
  grid-template-columns:repeat(2,minmax(220px,280px)) !important;
  justify-content:center;
  align-items:stretch;
}

.program-index-grid--centered .program-index-card{
  height:100%;
}

.program-index-grid--centered .program-index-card .btn{
  margin-top:auto;
  align-self:stretch;
}

@media(max-width:640px){
  .program-index-grid--centered{
    grid-template-columns:minmax(0,1fr) !important;
  }
}

@media(max-width:430px){
  .premium-card::after,
  .card::after,
  .program-feature-card::after,
  .program-index-card::after,
  .contact-info-card::after,
  .contact-location-card::after,
  .benefit-card::after,
  .spain-phase-card::after,
  .trial-date-card::after,
  .program-highlight-list > div::after,
  .home-pathway-track > li::after{
    width:86px !important;
    height:86px !important;
    opacity:.045 !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .pathway::before,
  .pathway-step,
  .premium-card,
  .card,
  .program-card,
  .program-feature-card,
  .program-index-card,
  .contact-info-card,
  .contact-location-card,
  .trial-process li{
    transition:none !important;
    transform:none !important;
  }
  .pathway::before{
    transform:none !important;
  }
  .pathway-step{
    opacity:1 !important;
  }
}

/* Corrected eight-step Development Pathway: one connected serpentine journey */
.section-navy-grad .serpentine-pathway-head{
  opacity:0;
  transform:translateY(14px);
  transition:opacity 520ms var(--ease-emphasized), transform 520ms var(--ease-emphasized);
}

.section-navy-grad.is-pathway-visible .serpentine-pathway-head{
  opacity:1;
  transform:none;
}

.serpentine-pathway{
  --route-progress:0;
  --route-dash:2420;
  position:relative;
  max-width:1180px;
  min-height:500px;
  margin:34px auto 0;
  padding:30px;
  overflow:hidden;
  isolation:isolate;
  border:1px solid rgba(216,161,58,.24);
  border-radius:22px;
  background:
    radial-gradient(520px 260px at 88% 20%, rgba(216,161,58,.16), transparent 58%),
    radial-gradient(500px 300px at 8% 86%, rgba(255,255,255,.06), transparent 62%),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(145deg, rgba(7,20,38,.98), rgba(16,34,60,.96));
  background-size:auto, auto, 44px 44px, 44px 44px, auto;
  box-shadow:0 24px 58px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.07);
}

.serpentine-pathway::before{
  content:"PATHWAY";
  position:absolute;
  right:18px;
  bottom:12px;
  font-family:var(--f-display);
  font-size:clamp(88px,14vw,180px);
  line-height:.8;
  letter-spacing:.08em;
  color:rgba(255,255,255,.04);
  pointer-events:none;
  z-index:0;
}

.serpentine-pathway::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse at 50% 50%, transparent 0 19%, rgba(255,255,255,.045) 19.4% 20.4%, transparent 21%),
    linear-gradient(135deg, transparent 0 46%, rgba(216,161,58,.07) 46.3% 46.8%, transparent 47.2%);
  background-size:390px 240px, 560px 340px;
  opacity:.42;
  pointer-events:none;
  z-index:0;
}

.serpentine-route{
  position:absolute;
  inset:76px 52px 66px;
  z-index:1;
  overflow:visible;
  pointer-events:none;
}

.serpentine-route-base,
.serpentine-route-progress{
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

.serpentine-route-base{
  stroke:rgba(255,255,255,.18);
  stroke-width:5;
}

.serpentine-route-progress{
  stroke:var(--phase2-accent);
  stroke-width:4;
  stroke-dasharray:var(--route-dash);
  stroke-dashoffset:var(--route-dash);
  filter:drop-shadow(0 0 10px rgba(216,161,58,.48));
  transition:stroke-dashoffset 1900ms cubic-bezier(.2,.8,.2,1) 220ms;
}

.serpentine-pathway.is-pathway-visible .serpentine-route-progress{
  stroke-dashoffset:0;
}

.serpentine-steps.pathway{
  position:relative !important;
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  grid-template-rows:repeat(2,178px) !important;
  gap:70px 24px !important;
  min-height:406px !important;
  padding:0 !important;
  margin:0 !important;
  list-style:none !important;
  background:none !important;
  border:0 !important;
  box-shadow:none !important;
  overflow:visible !important;
  z-index:2 !important;
  counter-reset:none !important;
}

.serpentine-steps.pathway::before,
.serpentine-steps.pathway::after{
  display:none !important;
}

.serpentine-step.pathway-step{
  position:relative !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  min-width:0 !important;
  width:auto !important;
  min-height:0 !important;
  padding:0 !important;
  text-align:center !important;
  background:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  opacity:0;
  transform:translateY(16px) scale(.97);
  transition:opacity 420ms ease, transform 420ms var(--ease-emphasized), filter 240ms ease !important;
}

.serpentine-step.pathway-step::before,
.serpentine-step.pathway-step::after{
  display:none !important;
}

.serpentine-step--1{ grid-column:1; grid-row:1; }
.serpentine-step--2{ grid-column:2; grid-row:1; }
.serpentine-step--3{ grid-column:3; grid-row:1; }
.serpentine-step--4{ grid-column:4; grid-row:1; }
.serpentine-step--5{ grid-column:4; grid-row:2; }
.serpentine-step--6{ grid-column:3; grid-row:2; }
.serpentine-step--7{ grid-column:2; grid-row:2; }
.serpentine-step--8{ grid-column:1; grid-row:2; }

.serpentine-step.is-revealed{
  opacity:1 !important;
  transform:none !important;
}

.serpentine-node{
  position:relative;
  z-index:3;
  width:72px;
  height:72px;
  margin:0 0 14px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:var(--phase2-accent);
  background:
    radial-gradient(circle at 35% 28%, rgba(255,255,255,.15), transparent 26%),
    linear-gradient(145deg, rgba(7,20,38,1), rgba(16,34,60,.98));
  border:1px solid rgba(216,161,58,.76);
  box-shadow:0 0 0 8px rgba(216,161,58,.07), 0 16px 32px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.09);
  transition:transform 240ms var(--ease-emphasized), box-shadow 240ms ease, border-color 240ms ease;
}

.serpentine-node span{
  position:absolute;
  top:13px;
  font-family:var(--f-mono);
  font-size:10px;
  letter-spacing:.12em;
  color:var(--phase2-accent);
}

.serpentine-node svg{
  width:23px;
  height:23px;
  margin-top:16px;
  transition:transform 240ms var(--ease-emphasized);
}

.serpentine-card{
  position:relative;
  z-index:2;
  width:min(100%,260px);
  min-height:0;
  padding:16px 18px 17px;
  overflow:hidden;
  border-radius:16px;
  border:1px solid rgba(216,161,58,.24);
  background:linear-gradient(145deg, rgba(7,20,38,.94), rgba(16,34,60,.90));
  box-shadow:0 16px 34px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.06);
  transition:transform 240ms var(--ease-emphasized), border-color 240ms ease, box-shadow 240ms ease;
}

.serpentine-card::after{
  content:"";
  position:absolute;
  right:-16px;
  bottom:-18px;
  width:92px;
  height:92px;
  background:url('../images/estrella-logo.jpg') center/contain no-repeat;
  opacity:.055;
  filter:grayscale(1) invert(1);
  pointer-events:none;
}

.serpentine-card h3{
  position:relative;
  z-index:2;
  margin:0 0 7px !important;
  color:#fff !important;
  font-size:14px !important;
  line-height:1.18 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
}

.serpentine-card p{
  position:relative;
  z-index:2;
  margin:0 !important;
  color:rgba(255,255,255,.72) !important;
  font-size:12.5px !important;
  line-height:1.45 !important;
}

.serpentine-step--final .serpentine-node{
  width:82px;
  height:82px;
  border-color:rgba(216,161,58,.95);
  box-shadow:0 0 0 10px rgba(216,161,58,.10), 0 0 34px rgba(216,161,58,.26), 0 18px 36px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.11);
}

.serpentine-step--final .serpentine-card{
  border-color:rgba(216,161,58,.52);
}

.serpentine-step.is-future{
  filter:saturate(.75) brightness(.82);
}

.serpentine-step:hover,
.serpentine-step:focus-visible,
.serpentine-step.is-active{
  outline:none;
}

.serpentine-step:hover .serpentine-node,
.serpentine-step:focus-visible .serpentine-node{
  transform:scale(1.055);
  border-color:var(--phase2-accent);
  box-shadow:0 0 0 10px rgba(216,161,58,.11), 0 0 34px rgba(216,161,58,.22), 0 18px 36px rgba(0,0,0,.30);
}

.serpentine-step:hover .serpentine-node svg,
.serpentine-step:focus-visible .serpentine-node svg{
  transform:translateY(-2px);
}

.serpentine-step:hover .serpentine-card,
.serpentine-step:focus-visible .serpentine-card{
  transform:translateY(-5px);
  border-color:rgba(216,161,58,.62);
  box-shadow:0 22px 42px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.07);
}

.serpentine-step:hover .serpentine-card::after,
.serpentine-step:focus-visible .serpentine-card::after{
  opacity:.08;
}

@media(min-width:769px){
  .serpentine-step--1,
  .serpentine-step--2,
  .serpentine-step--3,
  .serpentine-step--4{
    padding-top:2px !important;
  }

  .serpentine-step--5,
  .serpentine-step--6,
  .serpentine-step--7,
  .serpentine-step--8{
    flex-direction:column-reverse !important;
  }

  .serpentine-step--5 .serpentine-node,
  .serpentine-step--6 .serpentine-node,
  .serpentine-step--7 .serpentine-node,
  .serpentine-step--8 .serpentine-node{
    margin:14px 0 0;
  }
}

@media(max-width:1024px) and (min-width:769px){
  .serpentine-pathway{
    min-height:540px;
    padding:26px 22px;
  }

  .serpentine-route{
    inset:80px 40px 74px;
  }

  .serpentine-steps.pathway{
    grid-template-rows:repeat(2,198px) !important;
    gap:74px 18px !important;
    min-height:450px !important;
  }

  .serpentine-node{
    width:66px;
    height:66px;
  }

  .serpentine-card{
    padding:14px 14px 15px;
  }

  .serpentine-card h3{
    font-size:13px !important;
  }
}

@media(max-width:767px){
  .serpentine-pathway{
    min-height:0;
    padding:22px 16px;
    margin-top:26px;
    border-radius:18px;
  }

  .serpentine-route{
    display:none;
  }

  .serpentine-steps.pathway{
    display:flex !important;
    flex-direction:column !important;
    gap:18px !important;
    min-height:0 !important;
    padding:0 !important;
  }

  .serpentine-steps.pathway::before{
    display:block !important;
    content:"" !important;
    position:absolute !important;
    left:34px !important;
    top:30px !important;
    bottom:30px !important;
    width:3px !important;
    height:auto !important;
    border-radius:999px !important;
    background:linear-gradient(180deg, var(--phase2-accent), rgba(216,161,58,.18)) !important;
    transform:scaleY(0) !important;
    transform-origin:top !important;
    transition:transform 1800ms cubic-bezier(.2,.8,.2,1) 180ms !important;
    z-index:1 !important;
  }

  .serpentine-pathway.is-pathway-visible .serpentine-steps.pathway::before{
    transform:scaleY(1) !important;
  }

  .serpentine-step.pathway-step,
  .serpentine-step--5,
  .serpentine-step--6,
  .serpentine-step--7,
  .serpentine-step--8{
    display:grid !important;
    grid-template-columns:70px minmax(0,1fr) !important;
    gap:14px !important;
    align-items:start !important;
    text-align:left !important;
  }

  .serpentine-node,
  .serpentine-step--final .serpentine-node{
    grid-column:1;
    width:58px;
    height:58px;
    margin:0 !important;
  }

  .serpentine-node span{
    top:9px;
    font-size:9px;
  }

  .serpentine-node svg{
    width:19px;
    height:19px;
    margin-top:13px;
  }

  .serpentine-card{
    grid-column:2;
    width:100%;
    padding:15px 16px;
  }

  .serpentine-card h3{
    font-size:15px !important;
  }

  .serpentine-card p{
    font-size:13px !important;
  }
}

@media(max-width:360px){
  .serpentine-pathway{
    padding:18px 12px;
  }

  .serpentine-step.pathway-step,
  .serpentine-step--5,
  .serpentine-step--6,
  .serpentine-step--7,
  .serpentine-step--8{
    grid-template-columns:62px minmax(0,1fr) !important;
    gap:12px !important;
  }

  .serpentine-node,
  .serpentine-step--final .serpentine-node{
    width:54px;
    height:54px;
  }

  .serpentine-steps.pathway::before{
    left:29px !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .section-navy-grad .serpentine-pathway-head,
  .serpentine-route-progress,
  .serpentine-step,
  .serpentine-node,
  .serpentine-card,
  .serpentine-steps.pathway::before{
    transition:none !important;
    transform:none !important;
  }

  .section-navy-grad .serpentine-pathway-head,
  .serpentine-step{
    opacity:1 !important;
  }

  .serpentine-route-progress{
    stroke-dashoffset:0 !important;
  }

  .serpentine-steps.pathway::before{
    transform:none !important;
  }
}

/* Footer spacing and link visibility */
.program-cta-section {
  padding: clamp(34px, 4.6vw, 44px) 0 clamp(28px, 4vw, 38px) !important;
}

.program-cta-section .program-actions {
  justify-content: flex-start;
}

.program-cta-section .program-actions .btn-outline {
  color: #fff;
  border-color: rgba(255,255,255,.5);
  background: transparent;
}

.program-cta-section .program-actions .btn-outline:hover,
.program-cta-section .program-actions .btn-outline:focus-visible {
  color: #071426;
  border-color: #d8a13a;
  background: #d8a13a;
}

.site-footer {
  padding: 30px 0 12px !important;
}

.site-footer .footer-grid {
  gap: 20px 26px !important;
}

.site-footer ul {
  gap: 9px !important;
}

.site-footer a {
  overflow-wrap: normal;
  word-break: normal;
}

.site-footer a[href*="trial-programs"] {
  color: #fff;
  word-spacing: .12em;
}

.site-footer a[href*="trial-programs"]:hover,
.site-footer a[href*="trial-programs"]:focus-visible {
  color: #d8a13a;
}

.footer-bottom {
  margin-top: 18px !important;
  padding-top: 12px !important;
}

@media(max-width:620px) {
  .program-cta-section {
    padding: 30px 0 24px !important;
  }

  .site-footer {
    padding-top: 26px !important;
  }

  .site-footer .footer-grid {
    gap: 18px !important;
  }
}

/* About mobile card sliders */
@media(max-width:767px) {
  .about-page .about-mobile-slider {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 2px 0 14px;
  }

  .about-page .about-mobile-slider::-webkit-scrollbar {
    display: none;
  }

  .about-page .about-mobile-slider > * {
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    scroll-snap-align: start;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .about-page .about-mobile-slider > * + * {
    margin-left: 16px !important;
  }

  .about-page .about-mobile-slider .premium-card,
  .about-page .about-mobile-slider .program-feature-card,
  .about-page .about-mobile-slider.program-highlight-list > div {
    min-height: 230px;
  }

  .about-slider-dots {
    display: flex;
    justify-content: center;
    gap: 7px;
    margin: 2px 0 18px;
  }

  .about-slider-dots button {
    width: 5px !important;
    min-width: 5px;
    height: 5px !important;
    min-height: 5px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(7,20,38,.22);
    transition: width var(--transition-fast), background var(--transition-fast);
  }

  .about-slider-dots button.is-active {
    width: 14px !important;
    border-radius: 999px;
    background: #d8a13a;
  }

  .section-navy .about-slider-dots button {
    background: rgba(255,255,255,.28);
  }

  .section-navy .about-slider-dots button.is-active {
    background: #d8a13a;
  }
}

@media(min-width:768px) {
  .about-slider-dots {
    display: none;
  }
}

@media(max-width:767px) and (prefers-reduced-motion:reduce) {
  .about-page .about-mobile-slider {
    scroll-behavior: auto;
  }
}

/* Player Portal responsive UX refresh */
body.ui-scroll-locked {
  overflow: hidden;
  touch-action: none;
}

.player-portal,
.player-portal * {
  max-width: 100%;
}

.player-portal .portal-shell {
  overflow-x: hidden;
}

.player-portal .portal-topbar,
.player-portal .portal-topbar > div:first-of-type {
  min-width: 0;
}

.player-portal .portal-topbar h1,
.player-portal .portal-topbar .eyebrow {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.player-portal .portal-nav a,
.player-portal .portal-menu-btn,
.player-portal .portal-icon-btn,
.player-portal .portal-user-actions .btn,
.player-portal .portal-quick-actions .btn,
.player-portal .portal-more-menu summary,
.player-portal .portal-more-menu a,
.player-portal .portal-more-menu button {
  min-height: 48px;
}

.player-portal .portal-dashboard-hero {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  gap: 16px;
  margin-bottom: 16px;
}

.player-portal .portal-hero-main {
  min-height: auto;
  padding: 22px;
}

.player-portal .portal-hero-main h2 {
  max-width: 13ch;
  font-size: clamp(28px, 3vw, 40px);
}

.player-portal .portal-hero-badge {
  margin-bottom: 10px;
}

.player-portal .portal-quick-actions {
  margin-top: 18px;
  gap: 8px;
  align-items: center;
}

.player-portal .portal-more-menu {
  position: relative;
}

.player-portal .portal-more-menu summary {
  list-style: none;
  cursor: pointer;
}

.player-portal .portal-more-menu summary::-webkit-details-marker {
  display: none;
}

.player-portal .portal-more-menu > div {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 12;
  min-width: 190px;
  padding: 8px;
  border: 1px solid rgba(216,161,58,.34);
  border-radius: 10px;
  background: #ffffff;
  box-shadow: 0 18px 44px rgba(7,20,38,.18);
}

.player-portal .portal-more-menu:not([open]) > div {
  display: none;
}

.player-portal .portal-more-menu a,
.player-portal .portal-more-menu button {
  width: 100%;
  display: flex;
  align-items: center;
  padding: 10px 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #071426;
  font: inherit;
  font-weight: 700;
  text-align: left;
}

.player-portal .portal-more-menu a:hover,
.player-portal .portal-more-menu button:hover,
.player-portal .portal-more-menu a:focus-visible,
.player-portal .portal-more-menu button:focus-visible {
  background: rgba(216,161,58,.12);
  color: #071426;
}

.player-portal .portal-hero-card {
  min-height: auto;
  padding: 20px;
  gap: 8px;
}

.player-portal .portal-hero-card .status-chip {
  align-self: flex-start;
}

.player-portal .portal-today-panel {
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid rgba(7,20,38,.12);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(7,20,38,.06);
}

.player-portal .portal-today-panel .portal-panel-head {
  margin-bottom: 14px;
}

.player-portal .portal-today-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.player-portal .portal-today-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(7,20,38,.10);
  border-radius: 10px;
  background: linear-gradient(180deg, #ffffff, #f7f8fb);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.player-portal .portal-today-item:hover,
.player-portal .portal-today-item:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(216,161,58,.45);
  box-shadow: 0 14px 30px rgba(7,20,38,.08);
}

.player-portal .portal-today-item > svg {
  width: 22px;
  height: 22px;
  color: #d8a13a;
}

.player-portal .portal-today-item span:not(.status-chip) {
  display: block;
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(7,20,38,.62);
}

.player-portal .portal-today-item h3 {
  margin-top: 4px;
  font-size: 17px;
  color: #071426;
  overflow-wrap: break-word;
}

.player-portal .portal-today-item p {
  margin-top: 4px;
  color: rgba(7,20,38,.66);
  font-size: 13px;
  line-height: 1.45;
}

.player-portal .portal-today-item .status-chip {
  grid-column: 1 / -1;
  justify-self: start;
}

.player-portal .portal-stat-grid,
.player-portal .portal-stat-grid.compact,
.player-portal .portal-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
}

.player-portal .portal-stat-card {
  position: relative;
  min-height: 126px;
  height: auto;
  padding: 18px;
  gap: 8px;
  overflow: hidden;
}

.player-portal .portal-stat-card::after {
  content: "";
  position: absolute;
  right: -18px;
  bottom: -20px;
  width: 86px;
  height: 86px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(216,161,58,.18), transparent 68%);
  pointer-events: none;
}

.player-portal .portal-stat-card svg {
  width: 26px;
  height: 26px;
  color: #d8a13a;
}

.player-portal .portal-stat-card span {
  font-size: 10px;
}

.player-portal .portal-stat-card b {
  font-size: clamp(26px, 3vw, 34px);
  overflow-wrap: break-word;
  word-break: normal;
}

.player-portal .portal-stat-card:active,
.player-portal .portal-today-item:active,
.player-portal .download-card:active,
.player-portal .btn:active,
.player-portal .portal-nav a:active {
  transform: scale(.985);
}

.player-portal .portal-panel,
.player-portal .download-card {
  height: auto;
  min-width: 0;
}

@media (min-width: 768px) and (max-width: 1180px) {
  .player-portal .portal-stat-grid,
  .player-portal .portal-stat-grid.compact,
  .player-portal .portal-card-grid,
  .player-portal .portal-today-grid,
  .player-portal .portal-two-col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 768px) and (max-width: 899px) {
  .player-portal .portal-shell {
    display: flex;
  }

  .player-portal .portal-sidebar {
    position: sticky;
    inset: auto;
    top: 0;
    z-index: auto;
    width: 244px;
    height: 100vh;
    transform: none;
  }

  .player-portal .portal-shell.sidebar-open .portal-backdrop {
    display: none;
  }

  .player-portal .portal-menu-btn {
    display: none;
  }

  .player-portal .portal-mobile-nav {
    display: none;
  }

  .player-portal .portal-dashboard-hero {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .player-portal .portal-shell {
    display: block;
  }

  .player-portal .portal-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 70;
    width: min(304px, 86vw);
    height: 100dvh;
    padding: 18px 14px calc(18px + env(safe-area-inset-bottom));
    transform: translateX(-104%);
    transition: transform .24s ease;
    box-shadow: 14px 0 42px rgba(7,20,38,.28);
  }

  .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: 60;
    background: rgba(7,20,38,.58);
    animation: overlayIn .18s ease both;
  }

  .player-portal .portal-nav a {
    min-height: 48px;
    padding: 10px 12px;
  }

  .player-portal .portal-menu-btn {
    display: flex;
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
  }

  .player-portal .portal-icon-btn,
  .player-portal .portal-avatar {
    width: 40px;
    height: 40px;
  }

  .player-portal .portal-mobile-nav {
    display: none !important;
  }

  .player-portal .portal-topbar {
    position: sticky;
    top: 0;
    min-height: 64px;
    padding: 10px 12px;
    grid-template-columns: 48px minmax(0, 1fr) auto;
    gap: 10px;
  }

  .player-portal .portal-topbar h1 {
    font-size: clamp(18px, 5vw, 22px);
  }

  .player-portal .portal-topbar .eyebrow {
    font-size: 9px;
  }

  .player-portal .portal-user-text,
  .player-portal .portal-user-actions .btn {
    display: none;
  }

  .player-portal .portal-user-actions {
    gap: 6px;
  }

  .player-portal .portal-content {
    padding: 12px;
  }

  .player-portal .portal-dashboard-hero,
  .player-portal .portal-two-col,
  .player-portal .portal-today-grid,
  .player-portal .portal-stat-grid,
  .player-portal .portal-stat-grid.compact,
  .player-portal .portal-card-grid,
  .player-portal .profile-grid {
    grid-template-columns: 1fr;
  }

  .player-portal .portal-dashboard-hero {
    gap: 12px;
    margin-bottom: 12px;
  }

  .player-portal .portal-hero-main,
  .player-portal .portal-hero-card,
  .player-portal .portal-today-panel,
  .player-portal .portal-panel,
  .player-portal .portal-alert,
  .player-portal .download-card {
    padding: 14px;
    border-radius: 10px;
  }

  .player-portal .portal-hero-main h2 {
    max-width: 100%;
    font-size: clamp(26px, 8vw, 34px);
  }

  .player-portal .portal-quick-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .player-portal .portal-quick-actions .btn,
  .player-portal .portal-more-menu,
  .player-portal .portal-more-menu summary {
    width: 100%;
  }

  .player-portal .portal-more-menu > div {
    position: static;
    margin-top: 8px;
    min-width: 0;
  }

  .player-portal .portal-stat-card {
    min-height: 112px;
    padding: 16px;
  }

  .player-portal .portal-stat-card b {
    font-size: clamp(25px, 8vw, 32px);
  }

  .player-portal .session-list article,
  .player-portal .announcement-list article {
    grid-template-columns: 1fr;
  }

  .player-portal .session-list time,
  .player-portal .announcement-list time {
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .player-portal .portal-sidebar,
  .player-portal .portal-stat-card,
  .player-portal .portal-today-item,
  .player-portal .download-card,
  .player-portal .btn {
    transition: none !important;
    animation: none !important;
  }
}

/* Player Portal dashboard minimal redesign */
.player-portal .portal-sidebar {
  width: 248px;
  padding: 16px 12px;
}

.player-portal .portal-sidebar .brand {
  margin-bottom: 12px;
  padding-bottom: 12px;
}

.player-portal .portal-sidebar-user {
  margin-bottom: 12px;
  padding: 9px 10px;
}

.player-portal .portal-nav {
  gap: 2px;
}

.player-portal .portal-nav a {
  min-height: 44px;
  padding: 8px 10px;
  border-left: 0;
  font-size: 13px;
}

.player-portal .portal-nav a:hover,
.player-portal .portal-nav a:focus-visible {
  transform: none;
}

.player-portal .portal-nav a.active {
  border-left: 0;
  background: rgba(216,161,58,.16);
  box-shadow: inset 3px 0 0 #d8a13a;
}

.player-portal .portal-nav .nav-section-label {
  padding: 12px 10px 5px;
}

.player-portal .portal-content {
  padding: 20px;
}

.player-portal .portal-topbar {
  min-height: 64px;
  padding: 12px 20px;
}

.player-portal .portal-dashboard-mini {
  display: grid;
  gap: 16px;
}

.player-portal .portal-dashboard-title {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 2px 0;
}

.player-portal .portal-dashboard-title h2 {
  margin-top: 2px;
  color: #071426;
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1;
}

.player-portal .portal-dashboard-title > span {
  flex: 0 0 auto;
  color: rgba(7,20,38,.62);
  font-family: var(--f-mono);
  font-size: 11px;
}

.player-portal .portal-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.player-portal .portal-summary-card {
  position: relative;
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  min-height: 150px;
  padding: 18px;
  border: 1px solid rgba(7,20,38,.12);
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 10px 26px rgba(7,20,38,.06);
  overflow: hidden;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.player-portal .portal-summary-card:hover,
.player-portal .portal-summary-card:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(216,161,58,.48);
  box-shadow: 0 16px 34px rgba(7,20,38,.09);
}

.player-portal .portal-summary-card > svg {
  width: 22px;
  height: 22px;
  color: #d8a13a;
}

.player-portal .portal-summary-card .status-chip {
  position: absolute;
  top: 14px;
  right: 14px;
}

.player-portal .portal-summary-card b {
  margin-top: 8px;
  color: #071426;
  font-family: var(--f-display);
  font-size: clamp(28px, 3vw, 38px);
  line-height: 1;
  overflow-wrap: break-word;
}

.player-portal .portal-summary-card small {
  color: rgba(7,20,38,.58);
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.player-portal .portal-summary-card p {
  color: rgba(7,20,38,.68);
  font-size: 13px;
  line-height: 1.45;
}

.player-portal .portal-dashboard-panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.player-portal .portal-compact-panel {
  margin: 0;
  padding: 18px;
}

.player-portal .portal-compact-list {
  display: grid;
  gap: 10px;
}

.player-portal .portal-compact-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid rgba(7,20,38,.10);
}

.player-portal .portal-compact-list article:first-child {
  border-top: 0;
  padding-top: 0;
}

.player-portal .portal-compact-list h3 {
  margin-top: 7px;
  color: #071426;
  font-size: 17px;
  line-height: 1.15;
}

.player-portal .portal-compact-list p {
  display: -webkit-box;
  margin-top: 5px;
  color: rgba(7,20,38,.66);
  font-size: 13px;
  line-height: 1.45;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.player-portal .portal-compact-list time {
  color: rgba(7,20,38,.58);
  font-family: var(--f-mono);
  font-size: 11px;
  white-space: nowrap;
}

@media (min-width: 768px) {
  .player-portal .portal-shell {
    display: block;
  }

  .player-portal .portal-sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 30;
    height: 100vh;
    transform: none;
  }

  .player-portal .portal-main {
    margin-left: 248px;
  }

  .player-portal .portal-menu-btn,
  .player-portal .portal-backdrop {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .player-portal .portal-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .player-portal .portal-content {
    padding: 12px;
  }

  .player-portal .portal-sidebar {
    width: min(304px, 86vw);
    padding: 16px 12px calc(16px + env(safe-area-inset-bottom));
  }

  .player-portal .portal-dashboard-title {
    display: grid;
    align-items: start;
  }

  .player-portal .portal-dashboard-title h2 {
    font-size: clamp(25px, 8vw, 32px);
  }

  .player-portal .portal-dashboard-title > span {
    justify-self: start;
  }

  .player-portal .portal-summary-grid,
  .player-portal .portal-dashboard-panels {
    grid-template-columns: 1fr;
  }

  .player-portal .portal-summary-card {
    min-height: 132px;
    padding: 16px;
  }

  .player-portal .portal-summary-card b {
    font-size: clamp(27px, 9vw, 34px);
  }

  .player-portal .portal-compact-panel {
    padding: 14px;
  }

  .player-portal .portal-compact-list article {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .player-portal .portal-compact-list time {
    white-space: normal;
  }

  .player-portal .responsive-table {
    overflow: visible;
  }

  .player-portal .data-table {
    min-width: 0;
    width: 100%;
  }

  .player-portal .data-table thead {
    display: none;
  }

  .player-portal .data-table,
  .player-portal .data-table tbody,
  .player-portal .data-table tr,
  .player-portal .data-table td {
    display: block;
  }

  .player-portal .data-table tr {
    margin-bottom: 10px;
    padding: 12px;
    border: 1px solid rgba(7,20,38,.12);
    border-radius: 10px;
    background: #ffffff;
    box-shadow: 0 8px 20px rgba(7,20,38,.05);
  }

  .player-portal .data-table td {
    display: grid;
    grid-template-columns: minmax(96px, .42fr) minmax(0, 1fr);
    gap: 10px;
    padding: 8px 0;
    border: 0;
    color: #071426;
    overflow-wrap: break-word;
  }

  .player-portal .data-table td::before {
    content: attr(data-label);
    color: rgba(7,20,38,.58);
    font-family: var(--f-mono);
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
}

@media (prefers-reduced-motion: reduce) {
  .player-portal .portal-summary-card,
  .player-portal .portal-sidebar {
    transition: none !important;
  }
}
.about-page .page-hero__media img {
    object-position: center 42%;
}
