/* Hampa identity: navy structure, forest actions, warm canvas, restrained brass. */
:root {
  --navy: #0B1F2A;
  --forest: #1F4A3C;
  --brass: #B49A62;
  --paper: #F3F1EA;
  --ink: var(--navy);
  --green: var(--forest);
  --white: #FFFFFF;
  --muted: #53635E;
  --line: #D7DCD4;
  --soft: #E6ECE5;
  --lime: #E3ECE4;
  --on-dark: #F3F1EA;
  --on-dark-muted: #CBD7CF;
  --forest-hover: #153A2E;
  --forest-active: #102F26;
  --control-line: #829088;
  --focus: #1F4A3C;
  --premium-bg: #EAE1CE;
  --shadow: 0 10px 30px #0B1F2A08;
}
body { background:var(--paper); color:var(--ink); }
::selection { background:var(--forest); color:var(--white); }
button,.button { background:var(--forest); border-color:var(--forest); color:var(--white); }
button:hover,.button:hover { background:var(--forest-hover); color:var(--white); }
button:active,.button:active { background:var(--forest-active); }
button:disabled,.button[aria-disabled=true] { opacity:1; color:#5B6660; background:#E1E5DE; border-color:#ABB6AC; cursor:not-allowed; }
.secondary { background:transparent; color:var(--ink); border-color:var(--control-line); }
.secondary:hover { background:var(--soft); color:var(--forest); }
.lime { background:var(--forest); color:var(--white); border-color:#789487; }
.lime:hover { background:var(--forest-hover); color:var(--white); }
.text-link,.text-link:hover { background:transparent; color:var(--forest); }
:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
input,select,textarea { accent-color:var(--forest); border-color:var(--control-line); background:#FFF; }
input:focus,select:focus,textarea:focus { border-color:var(--forest); }
input[readonly] { background:var(--soft); color:var(--muted); }
.tag:not(.pending):not(.processing):not(.revision):not(.paid):not(.approved):not(.passed):not(.submitted):not(.failed):not(.rejected):not(.expired),.chips span { background:var(--soft); color:var(--forest); }
.tag.premium,.premium-badge { color:var(--navy); background:var(--premium-bg); border:1px solid var(--brass); }
th,.league-panel th { background:#E8ECE5; color:var(--navy); }
.league-panel tr:nth-child(even) { background:#F7F8F3; }
.league-panel th,.league-panel td { border-color:var(--line); }
.league-panel tr.league-winner { background:#E4EEE4; }
.round-link,.learning-note,.sidebar-note,.avatar,.chips span,.invoice-stamp,.course-glyph,.purchase-assurance,.league-team-split>div,.league-rewards { background:var(--soft); border-color:var(--line); color:var(--forest); }
.editorial-index,.process-list>div>span,.visual-caption,.nav-label,.stats small,.reading p,.league-source,.league-home-foot,.league-name small,.league-team-split small,.league-empty { color:var(--muted); }
.sidebar nav a { color:var(--muted); }
.sidebar nav a>span,.greeting-dot,.league-card-head .eyebrow,.league-team-split b,.league-team-split p span,.league-source a,.league-standings li>strong,.league-home-panel li>strong { color:var(--forest); }
.sidebar nav a:hover { background:var(--soft); }
.sidebar nav a[aria-current] { background:var(--forest); color:var(--white); }
.sidebar nav a[aria-current]>span { color:var(--on-dark-muted); }
.lesson-nav>a[aria-current],.choice:has(input:checked),.entry-choices label:has(input:checked),.gateway-card.selected { background:#EAF0E8; border-color:var(--forest); color:var(--navy); box-shadow:none; }
.entry-choices label:has(input[value=vip]) { border-inline-start:3px solid var(--brass); }
.lesson-nav>a>span,.trustline span:before { color:var(--forest); }
progress,progress::-webkit-progress-bar { background:var(--soft); }
progress::-webkit-progress-value { background:var(--forest); }
progress::-moz-progress-bar { background:var(--forest); }
.score-ring { border-color:var(--forest); }
.demo-strip { background:#E4E8DF; color:var(--navy); }
.topbar,.footer,.mobile-nav,.academy-hero,.auth-intro,.welcome-banner,.exam-toolbar,.entry-event,.intro-film,.league-promo,.community-wide,.province-top,.league-page-head,.entry-prices .featured { background:var(--navy); color:var(--on-dark); }
.topbar { border-color:#31443F; gap:22px; justify-content:flex-start; }
.topbar .brand { font-size:clamp(23px,1.6vw,30px); }
.brand-24 { color:var(--brass); }
.brand-small { color:var(--on-dark-muted); }
.topbar a:hover,.footer a:hover,.mobile-nav a:hover { color:#E5D6B8; }
.topbar .text-link,.footer p { color:var(--on-dark-muted); }
.topbar .button { background:var(--forest); border-color:#729182; color:var(--white); }
.topbar .button:hover { background:var(--forest-hover); }
.topbar .menu-toggle { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:48px; height:48px; padding:6px; min-width:44px; min-height:44px; color:var(--on-dark); border:0; border-radius:0; box-shadow:none; background:transparent; }
.topbar .menu-toggle svg { width:36px; height:36px; flex-shrink:0; }
.topbar .menu-toggle:hover,.topbar .menu-toggle:active { background:transparent; color:var(--on-dark); }
.topbar :focus-visible,.footer :focus-visible,.mobile-nav :focus-visible,.entry-event :focus-visible,.academy-hero :focus-visible,.auth-intro :focus-visible,.league-page-head :focus-visible,.request-story :focus-visible { outline-color:var(--on-dark); }
.topbar .desktop-nav { display:none; }
.header-contact { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; min-height:44px; flex-shrink:0; margin-inline-start:auto; }
.header-contact>span { color:var(--on-dark-muted); font-size:10px; font-weight:400; }
.header-contact bdi { font-size:15px; font-weight:750; letter-spacing:.4px; }
.mobile-nav .text-link { color:var(--on-dark); }
.mobile-nav a { text-align:start; min-height:44px; padding-block:12px; }
.footer-logo { width:58px; height:72px; object-fit:contain; border-radius:4px; }
.footer .brand { color:var(--on-dark); }
.hero-kicker,.academy-hero em,.auth-intro em,.auth-intro .eyebrow,.welcome-banner .eyebrow,.entry-event .eyebrow,.entry-event .event-price,.entry-prices .featured strong,.intro-film-copy .eyebrow,.intro-film-copy .text-link,.league-promo .eyebrow,.community-wide .eyebrow,.community-wide .text-link,.province-top .eyebrow,.league-page-head .eyebrow { color:var(--on-dark); }
.hero-kicker>span { background:var(--brass); box-shadow:0 0 0 5px #B49A621A; }
.hero-overline,.hero-description,.hero-bottom,.auth-intro p,.welcome-banner p,.entry-event>div>p,.entry-event .event-side p,.intro-film-copy p,.league-promo p,.community-wide p,.province-top .league-name small,.province-top .league-empty,.league-page-head p { color:var(--on-dark-muted); }
.academy-hero h2 { font-size:clamp(34px,3.3vw,62px); font-weight:850; line-height:1.4; letter-spacing:-1px; margin-bottom:18px; }
.academy-hero h2>span,.academy-hero h2>em { display:block; }
.hero-link { color:var(--on-dark); border-color:var(--brass); }
.hero-link:hover { color:#E8D8B6; }
.hero-bottom i { color:var(--brass); }
.welcome-art { color:var(--on-dark); background:var(--forest); border-color:#6B8A77; }
.enrolled-art,.purchase-photo,.photo-course,.about-photo { background:var(--navy); }
.invoice-sheet,.gateway-panel,.checkout-summary,.invoice-header,.purchase-card,.auth-form,.league-home-panel,.league-panel,.mission-card,.review-card,.entry-prices>div { border-color:var(--line); }
.invoice-lines .invoice-total { background:var(--soft); }
.checkout-summary .summary-icon,.purchase-steps .current i { background:var(--forest); color:var(--white); }
.entry-choices label { border-color:var(--control-line); }
.event-side { background:#FFFFFF06; border-color:#799185; }
.event-old,.event-countdown-status,.event-count small { color:var(--on-dark-muted); }
.event-count>span { background:#FFFFFF08; border-color:#6B8179; box-shadow:none; }
.event-count strong,.event-day { color:var(--on-dark); }
.event-price { letter-spacing:-.5px; }
.league-rank { background:var(--soft); color:var(--forest); }
.province-top { border-color:#40564F; }
.province-top .league-rank { background:#FFFFFF14; color:var(--on-dark); }
.province-top li>strong { color:var(--on-dark); }
.league-page-badge { border-color:var(--brass); }
.league-page-badge strong,.league-page-badge span { color:var(--on-dark); }
.league-division { color:var(--forest); border-color:var(--forest); }
.league-invite { border-color:var(--control-line); }
.league-home-panel li,.league-standings li { border-color:var(--line); }
.province-top li { border-color:#FFFFFF24; }
.objectives,.feedback { background:#EAF0E6; }
.photo-course .tag { background:#F3F1EAF2!important; color:var(--navy)!important; }

/* The two user journeys are the first content, independent of the course campaign. */
.start-paths { margin-block:4px clamp(25px,3vw,48px); }
.path-options { display:grid; gap:22px; }
.path-choice { position:relative; isolation:isolate; display:flex; align-items:center; min-height:330px; padding:clamp(28px,4vw,62px); border-radius:22px; overflow:hidden; color:var(--on-dark); border:1px solid #70877A; background:var(--navy); }
.path-photo { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:left 12%; filter:blur(2px); transform:scale(1.025); }
.path-choice:before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(to left,#0B1F2AF5 0%,#0B1F2AE6 36%,#0B1F2A75 62%,#0B1F2A05 100%); }
.path-choice.recruit { background:var(--forest); border-color:#819584; }
.path-choice.recruit:before { background:linear-gradient(to left,#153B30FA 0%,#153B30E8 36%,#153B3075 62%,#153B300A 100%); }
.path-copy { width:min(56%,660px); min-width:0; }
.path-copy h2 { color:var(--on-dark); font-size:clamp(26px,2.9vw,44px); line-height:1.5; margin:0 0 12px; }
.path-copy p { color:#E4E9E2; font-size:clamp(15px,1.4vw,19px); line-height:1.95; margin:0 0 28px; }
.path-copy .path-link { display:flex; justify-content:space-between; align-items:center; gap:18px; max-width:440px; min-height:60px; padding:14px 24px; border:1px solid #A0B0A7; color:var(--on-dark); background:#0B1F2A50; border-radius:12px; font-size:clamp(14px,1.3vw,18px); white-space:normal; line-height:1.7; }
.path-copy .path-action-icon { width:26px; height:26px; flex:none; }
.path-copy .path-link:hover { background:#0B1F2ABD; border-color:var(--on-dark); color:white; }
.path-choice.recruit .path-link:hover { background:#1F4A3CBD; }
.path-choice :focus-visible { outline:3px solid var(--on-dark); outline-offset:5px; }
.entry-event-copy h2 { line-height:1.45; max-width:19ch; }
.entry-event-copy p { font-size:clamp(15px,1.3vw,18px); }


.request-heading { max-width:860px; margin-block:12px 34px; }
.request-heading h1 { font-size:clamp(33px,4vw,60px); line-height:1.4; }
.request-heading .lead { font-size:clamp(15px,1.3vw,19px); }
.request-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(24px,3vw,48px); align-items:start; }
.request-story { background:var(--navy); color:var(--on-dark); border-radius:20px; overflow:hidden; }
.request-story-copy { padding:clamp(24px,3vw,40px); }
.request-story-copy p { color:var(--on-dark-muted); }
.request-story-copy h2 { font-size:clamp(24px,2vw,32px); }
.request-film { display:block; width:100%; aspect-ratio:16/9; height:auto; object-fit:contain; background:var(--navy); border-radius:0; }
.request-film-links { display:flex; flex-wrap:wrap; gap:12px 24px; margin:12px 0 0; }
.request-film-links a { min-height:44px; display:inline-flex; align-items:center; text-decoration:underline; color:var(--on-dark); font-size:13px; }
.request-steps { display:grid; gap:20px; padding:0; margin:24px 0 0; list-style:none; }
.request-steps li { margin:0; border-top:1px solid #FFFFFF25; padding-top:17px; }
.request-steps b { display:block; margin-bottom:5px; }
.request-steps p { font-size:13px; margin:0; }
.request-form .notice { margin-bottom:0; }
.request-login-actions { display:flex; flex-wrap:wrap; gap:12px; }
.request-policy { font-size:12px; }

@media(max-width:760px) {
  .topbar { flex-wrap:wrap; column-gap:16px; row-gap:10px; }
  .topbar .brand { font-size:25px; }
  .topbar .brand-small { display:none; }
  .header-actions>.button,.header-actions>.text-link { display:none; }
  .topbar .header-actions { display:none; }
  .header-contact { margin-inline-start:auto; }
  .header-contact bdi { font-size:14px; }
  .request-grid { grid-template-columns:1fr; }
  .path-options { gap:18px; }
  .path-choice { min-height:355px; padding:28px 22px; border-radius:18px; align-items:flex-end; }
  .path-photo { object-position:23% center; }
  .path-choice:before { background:linear-gradient(to bottom,#0B1F2A28 0%,#0B1F2ABA 32%,#0B1F2AF7 68%); }
  .path-choice.recruit:before { background:linear-gradient(to bottom,#153B3020 0%,#153B30B8 32%,#153B30FA 68%); }
  .path-copy { width:100%; padding-top:85px; }
  .path-copy h2 { font-size:clamp(25px,6.2vw,36px); margin-bottom:10px; }
  .path-copy p { font-size:15px; max-width:32ch; margin-bottom:22px; }
  .path-copy .path-link { width:100%; max-width:none; min-height:54px; padding:12px 15px; font-size:14px; }
  .wide-break { display:none; }
  .request-heading { margin-block:8px 25px; }
  .academy-hero h2 { font-size:clamp(30px,8.8vw,44px); }
}
@media(max-width:380px) {
  .topbar .brand { font-size:22px; }
  .topbar { column-gap:9px; }
  .header-contact bdi { font-size:12px; letter-spacing:0; }
  .path-choice { padding:24px 18px; }
  .path-copy h2 { font-size:25px; }
}
@media print { body { background:white; } .path-choice { break-inside:avoid; } }
