/* ════════════════════════════════════════════════════════════════════
 * APPLY PAGE - conversion-focused multi-step form
 * Reuses tokens.css + homepage.css (buttons, faq). Minimal chrome.
 * ════════════════════════════════════════════════════════════════════ */

/* ── Minimal header ── */
.apply-header{ position:sticky; top:0; z-index:var(--z-sticky); background:rgba(255,255,255,.9); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--border-subtle); }
.apply-header-inner{ display:flex; align-items:center; justify-content:space-between; padding-block:var(--space-4); }
.apply-back{ font-size:var(--text-body-sm); font-weight:var(--weight-medium); color:var(--text-secondary); text-decoration:none; }
.apply-back:hover{ color:var(--text-primary); }

/* ── Dark hero ── */
.apply-hero{ position:relative; background:var(--bg-dark); color:var(--text-on-dark); padding-block:var(--space-16); text-align:center; overflow:hidden; }
.apply-hero::before{ content:''; position:absolute; top:-40%; left:50%; width:760px; height:520px; transform:translateX(-50%); background:radial-gradient(ellipse, rgba(124,58,237,.26) 0%, transparent 68%); pointer-events:none; }
.apply-hero-inner{ position:relative; z-index:1; max-width:640px; margin-inline:auto; }
.apply-hero .eyebrow{ color:var(--brand-glow); }
.apply-hero h1{ color:var(--text-on-dark); font-size:clamp(34px,5vw,48px); letter-spacing:var(--tracking-tight); line-height:1.08; margin-bottom:var(--space-4); }
.apply-hero p{ color:var(--text-mid-dark); font-size:var(--text-body-lg); line-height:var(--leading-relaxed); max-width:520px; margin-inline:auto; }

/* ── Progress indicator (sticky) ── */
.progress{ position:sticky; top:65px; z-index:var(--z-sticky); background:var(--bg-subtle); border-bottom:1px solid var(--border-subtle); padding-block:var(--space-5); }
.progress-track{ max-width:720px; margin-inline:auto; display:flex; align-items:flex-start; justify-content:space-between; position:relative; }
.progress-line{ position:absolute; top:13px; left:7%; right:7%; height:2px; background:var(--border-default); z-index:0; }
.progress-line-fill{ position:absolute; top:13px; left:7%; height:2px; background:var(--brand-gradient); z-index:0; width:0; transition:width var(--duration-slow) var(--ease-out); }
.pstep{ position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:var(--space-2); flex:1; }
.pstep-dot{ width:28px; height:28px; border-radius:var(--radius-full); background:var(--bg); border:2px solid var(--border-default); display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:var(--text-body-sm); font-weight:var(--weight-bold); color:var(--text-tertiary); transition:all var(--duration-base) var(--ease-out); }
.pstep-label{ font-size:var(--text-caption); color:var(--text-tertiary); font-weight:var(--weight-medium); white-space:nowrap; }
@media (max-width:560px){ .pstep-label{ font-size:10px; } }
.pstep.is-current .pstep-dot{ border-color:var(--brand-purple); background:var(--brand-purple); color:#fff; box-shadow:0 0 0 4px var(--brand-purple-light); }
.pstep.is-current .pstep-label{ color:var(--brand-purple); font-weight:var(--weight-semibold); }
.pstep.is-done .pstep-dot{ border-color:var(--color-success); background:var(--color-success); color:#fff; }
.pstep.is-done .pstep-label{ color:var(--text-secondary); }

/* ── Form shell ── */
.form-wrap{ background:var(--bg); padding-block:var(--space-16) var(--space-20); }
.form-card{ max-width:720px; margin-inline:auto; }
.fstep{ display:none; }
.fstep.is-active{ display:block; animation:fstepIn var(--duration-base) var(--ease-out); }
@keyframes fstepIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.fstep-head{ margin-bottom:var(--space-8); }
.fstep-q{ font-family:var(--font-display); font-size:var(--text-h3); font-weight:var(--weight-bold); letter-spacing:var(--tracking-tight); margin-bottom:var(--space-2); }
.fstep-hint{ font-size:var(--text-body); color:var(--text-secondary); }

/* radio/checkbox option cards */
.opt-list{ display:flex; flex-direction:column; gap:var(--space-3); }
.opt{ position:relative; }
.opt input{ position:absolute; opacity:0; width:1px; height:1px; }
.opt label{ display:flex; align-items:center; gap:var(--space-3); min-height:56px; padding:var(--space-4) var(--space-5); border:1px solid var(--border-default); border-radius:var(--radius-lg); cursor:pointer; font-size:var(--text-body); font-weight:var(--weight-medium); color:var(--text-primary); transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out); }
.opt label .marker{ width:20px; height:20px; border-radius:var(--radius-full); border:2px solid var(--border-strong); flex:none; }
.opt.cb label .marker{ border-radius:var(--radius-sm); }
.opt label .note{ margin-left:auto; font-size:var(--text-caption); color:var(--text-tertiary); font-style:italic; font-weight:var(--weight-normal); text-align:right; }
.opt label:hover{ border-color:var(--brand-purple); background:var(--bg-subtle); }
.opt input:checked + label{ border-color:var(--brand-purple); background:var(--brand-purple-light); color:var(--brand-purple-hover); }
.opt input:checked + label .marker{ border-color:var(--brand-purple); background:var(--brand-purple); box-shadow:inset 0 0 0 3px var(--brand-purple-light); }
.opt input:focus-visible + label{ box-shadow:var(--shadow-focus-ring); }

/* form fields */
.field-grid{ display:grid; grid-template-columns:1fr; gap:var(--space-5); }
@media (min-width:560px){ .field-grid.two{ grid-template-columns:1fr 1fr; } }
.fld{ display:flex; flex-direction:column; gap:var(--space-2); }
.fld > label{ font-size:var(--text-body-sm); font-weight:var(--weight-semibold); color:var(--text-primary); }
.fld .opt-label{ font-size:var(--text-body-sm); font-weight:var(--weight-semibold); color:var(--text-primary); margin-bottom:var(--space-1); }
.fld .req{ color:var(--color-danger); }
.fld input, .fld select{ width:100%; font-family:var(--font-body); font-size:var(--text-body); color:var(--text-primary); background:var(--bg); border:1px solid var(--border-default); border-radius:var(--radius-md); padding:var(--space-3) var(--space-4); min-height:48px; transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out); }
.fld input::placeholder{ color:var(--text-tertiary); }
.fld input:focus, .fld select:focus{ outline:none; border-color:var(--brand-blue); box-shadow:var(--shadow-focus-ring); }
.opt-row{ display:flex; flex-wrap:wrap; gap:var(--space-3); }
.opt-row .opt{ flex:1; min-width:120px; }
.opt-row .opt label{ justify-content:center; min-height:48px; padding:var(--space-3); }

/* soft reject */
.soft-reject{ display:none; margin-top:var(--space-5); background:var(--color-warning-bg); border:1px solid #FDE68A; border-left:4px solid var(--color-warning); border-radius:var(--radius-md); padding:var(--space-4) var(--space-5); }
.soft-reject.is-shown{ display:block; }
.soft-reject p{ margin:0; font-size:var(--text-body-sm); color:#854D0E; line-height:var(--leading-relaxed); }
.soft-reject a{ font-weight:var(--weight-semibold); }

/* other-text reveal */
.other-text{ display:none; margin-top:var(--space-3); }
.other-text.is-shown{ display:block; }

/* nav */
.fnav{ display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); margin-top:var(--space-10); }
.fback{ background:transparent; border:0; color:var(--text-tertiary); font-size:var(--text-body-sm); font-weight:var(--weight-semibold); cursor:pointer; padding:var(--space-2); min-height:44px; }
.fback:hover{ color:var(--text-secondary); }
.fback[hidden]{ visibility:hidden; }
.fnav .spacer{ flex:1; }
.fcontinue:disabled{ opacity:.45; cursor:not-allowed; }

/* schedule */
.sched{ background:var(--bg-subtle); border:1px dashed var(--border-default); border-radius:var(--radius-lg); padding:var(--space-8); text-align:center; }
.sched-cal{ display:grid; grid-template-columns:repeat(7,1fr); gap:var(--space-2); margin:var(--space-6) 0; }
.sched-day{ border:1px solid var(--border-subtle); border-radius:var(--radius-md); background:var(--bg); padding:var(--space-3) var(--space-1); text-align:center; cursor:pointer; }
.sched-day:hover{ border-color:var(--brand-purple); }
.sched-day .d{ font-family:var(--font-mono); font-size:10px; color:var(--text-tertiary); text-transform:uppercase; }
.sched-day .n{ font-family:var(--font-display); font-size:var(--text-h4); font-weight:var(--weight-bold); }
.sched-skip{ display:inline-block; margin-top:var(--space-2); font-size:var(--text-body-sm); color:var(--text-secondary); text-decoration:underline; }

/* done */
.done-card{ max-width:600px; margin-inline:auto; text-align:center; }
.done-check{ width:72px; height:72px; border-radius:var(--radius-full); background:var(--color-success-bg); display:flex; align-items:center; justify-content:center; margin:0 auto var(--space-6); }
.done-check svg{ width:36px; height:36px; color:var(--color-success-text); }
.done-card h2{ font-size:var(--text-h2); letter-spacing:var(--tracking-tight); margin-bottom:var(--space-4); }
.done-card > p{ font-size:var(--text-body-lg); color:var(--text-secondary); line-height:var(--leading-relaxed); margin-bottom:var(--space-3); }
.done-sub{ font-size:var(--text-body-sm); color:var(--text-tertiary); margin-bottom:var(--space-8); }
.done-links{ display:grid; grid-template-columns:1fr; gap:var(--space-3); max-width:420px; margin-inline:auto; }
.done-link{ display:flex; align-items:center; justify-content:space-between; padding:var(--space-4) var(--space-5); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); background:var(--bg-card); font-size:var(--text-body-sm); font-weight:var(--weight-semibold); color:var(--text-primary); text-decoration:none; }
.done-link:hover{ border-color:var(--brand-blue); background:var(--bg-subtle); text-decoration:none; color:var(--text-primary); }
.done-link span:last-child{ color:var(--brand-blue); }

/* ── Minimal footer ── */
.apply-footer{ background:var(--bg); border-top:1px solid var(--border-subtle); padding-block:var(--space-10); }
.apply-footer-inner{ max-width:var(--container-xl); margin-inline:auto; padding-inline:var(--space-5); display:flex; flex-direction:column; gap:var(--space-4); align-items:center; text-align:center; }
@media (min-width:768px){ .apply-footer-inner{ flex-direction:row; justify-content:space-between; text-align:left; padding-inline:var(--space-8); } }
.apply-footer .footer-tagline{ margin-top:var(--space-2); }
.apply-footer-legal{ display:flex; flex-wrap:wrap; gap:var(--space-4); justify-content:center; }
.apply-footer-legal a{ font-size:var(--text-caption); color:var(--text-tertiary); text-decoration:none; }
.apply-footer-legal a:hover{ color:var(--text-secondary); }
.apply-copy{ font-size:var(--text-caption); color:var(--text-tertiary); }
