/* Linebound Aviation — Pilot Career Change Calculator
   Page-scoped. Inherits the site tokens from /styles.css; adds only what this page needs.
   Conventions followed from the parent stylesheet: 3px radii, 1px var(--line) borders,
   48px minimum control height, uppercase tracked micro-labels, gold focus ring,
   tabular numerals on every figure. */

.cc-root{--cc-pos:#1F5136; --cc-neg:#8E2F2F; --cc-rule:#F0EEE8}

/* ---------- hero ---------- */
.cc-hero{background:var(--navy); color:#fff; padding:56px 0 52px}
.cc-hero h1{font-size:clamp(1.95rem,4.4vw,2.9rem); max-width:20ch}
.cc-breadcrumb{font-size:13px; color:rgba(255,255,255,.62); margin-bottom:22px}
.cc-breadcrumb a{color:rgba(255,255,255,.82)}
.cc-hero-deck{margin-top:22px; font-size:clamp(1.02rem,2vw,1.18rem); color:rgba(255,255,255,.78); max-width:62ch}
.cc-app-section{padding-top:52px}

.cc-noscript{background:#EFEDE6; border:1px solid var(--line); border-left:4px solid var(--gold); padding:24px 26px; border-radius:3px}
.cc-noscript p+p{margin-top:14px}

/* ---------- shared blocks ---------- */
.cc-root h2,.cc-root h3,.cc-root h4{color:var(--navy)}
.cc-eyebrow{font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--slate)}
.cc-step-h{font-size:clamp(1.4rem,3vw,1.85rem)}
.cc-step-h::after{content:""; display:block; width:42px; height:2px; background:var(--gold); margin-top:14px}
.cc-step-lede{margin-top:18px; color:var(--slate); max-width:70ch}
.cc-section-lede{margin-top:14px; color:var(--slate); max-width:74ch; font-size:15.5px}
.cc-sub-h{font-size:1.1rem}
.cc-micro-h{font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); margin:22px 0 8px}
.cc-block{margin-top:28px}
.cc-note{margin-top:14px; font-size:13.5px; color:var(--slate); line-height:1.6}
.cc-footnote{margin-top:18px; font-size:13px; color:var(--slate); max-width:78ch}
.cc-help{margin-top:7px; font-size:13px; color:var(--slate); line-height:1.55}
.cc-disclaimer{margin-top:36px; padding-top:20px; border-top:1px solid var(--line); font-size:12.5px; color:var(--slate); line-height:1.6}
.cc-privacy{margin-top:26px; font-size:13.5px; color:var(--charcoal)}

.cc-two-col{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:26px}
.cc-grid-2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 24px; margin-top:26px}
.cc-review-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:26px}

/* ---------- intro ---------- */
.cc-intro{background:var(--white); border:1px solid var(--line); border-radius:3px; padding:38px 36px}
.cc-intro-h{font-size:clamp(1.5rem,3.2vw,2rem)}
.cc-intro-h::after{content:""; display:block; width:56px; height:3px; background:var(--gold); margin-top:20px}
.cc-intro-lede{margin-top:22px; color:var(--slate); max-width:72ch; font-size:1.02rem}
.cc-intro-list{margin-top:22px; display:flex; flex-direction:column; gap:11px}
.cc-intro-list li{position:relative; padding-left:20px; font-size:15.5px}
.cc-intro-list li::before{content:""; position:absolute; left:0; top:9px; width:8px; height:8px; background:var(--gold)}
.cc-intro-actions{display:flex; flex-wrap:wrap; gap:14px; margin-top:30px}

/* ---------- progress ---------- */
.cc-progress{margin-bottom:32px}
.cc-progress-compact{display:none; font-size:11.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--slate)}
.cc-progress-list{
  display:flex;
  flex-wrap:wrap;
  gap:2px;
  border-bottom:1px solid var(--line);
  margin:0;
  padding:0;
  list-style:none !important;
}

.cc-progress-list > li{
  list-style:none !important;
}

.cc-progress-list > li::marker{
  content:none;
}
.cc-progress-btn{display:flex; align-items:center; gap:9px; background:none; border:0; border-bottom:2px solid transparent; padding:10px 14px 12px; font:inherit; font-size:13px; font-weight:600; color:var(--slate); cursor:pointer}
.cc-progress-btn:hover{color:var(--navy)}
.cc-progress-btn.is-current{color:var(--navy); border-bottom-color:var(--gold)}
.cc-progress-n{display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border:1px solid var(--line); border-radius:50%; font-size:11.5px; font-variant-numeric:tabular-nums}
.cc-progress-btn.is-current .cc-progress-n{background:var(--navy); border-color:var(--navy); color:#fff}

/* ---------- form controls ---------- */
.cc-field{min-width:0}
.cc-label{display:block; font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); margin-bottom:9px}
.cc-input-wrap{display:flex; align-items:stretch; border:1px solid var(--line); border-radius:3px; background:var(--white); overflow:hidden}
.cc-input-wrap:focus-within{border-color:var(--navy)}
.cc-affix{display:flex; align-items:center; padding:0 0 0 14px; color:var(--slate); font-size:15px; font-weight:600}
.cc-affix-end{padding:0 14px 0 0}
.cc-input{flex:1; min-width:0; min-height:48px; border:0; background:none; padding:12px 14px; font:inherit; font-size:16px; color:var(--charcoal); font-variant-numeric:tabular-nums}
.cc-input:focus{outline:none}
.cc-input-wrap:has(.cc-input.is-invalid){border-color:var(--cc-neg)}
.cc-error{margin-top:7px; font-size:13px; font-weight:600; color:var(--cc-neg); line-height:1.5}
.cc-error::before{content:"! "; font-weight:700}

.cc-fieldset{border:0; padding:0; margin:0; min-width:0}
.cc-legend-label{padding:0; font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--slate); margin-bottom:9px}
.cc-segmented{display:flex; flex-wrap:wrap; gap:8px}
.cc-seg-choice{position:relative}
.cc-seg-input{position:absolute; opacity:0; width:1px; height:1px}
.cc-seg-label-btn{display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:11px 18px; border:1px solid var(--line); border-radius:3px; background:var(--white); font-size:14px; font-weight:600; color:var(--navy); cursor:pointer}
.cc-seg-label-btn:hover{border-color:var(--navy)}
.cc-seg-input:checked + .cc-seg-label-btn{background:var(--navy); border-color:var(--navy); color:#fff}
.cc-seg-input:focus-visible + .cc-seg-label-btn{outline:2px solid var(--gold); outline-offset:3px}

.cc-check{display:flex; align-items:center; gap:11px; min-height:48px; font-size:15.5px; font-weight:600; color:var(--navy); cursor:pointer}
.cc-checkbox{width:20px; height:20px; accent-color:var(--navy); flex:none; cursor:pointer}

.cc-disclosure{margin-top:20px; border-top:1px solid var(--line); padding-top:16px}
.cc-disclosure-btn{background:none; border:0; padding:6px 0; font:inherit; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); cursor:pointer}
.cc-disclosure-btn:hover{color:var(--navy)}
.cc-disclosure-body{margin-top:6px}

/* ---------- path cards ---------- */
.cc-path-card{background:var(--white); border:1px solid var(--line); border-radius:3px; padding:26px 24px; min-width:0}
.cc-path-head{display:flex; align-items:center; gap:12px}
.cc-path-badge{display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; background:var(--navy); color:#fff; font-size:12px; font-weight:700; flex:none}
.cc-path-name{font-size:1.15rem}
.cc-path-blurb{margin-top:12px; font-size:14px; color:var(--slate); line-height:1.6}
.cc-path-body{margin-top:20px; display:flex; flex-direction:column; gap:20px}
.cc-path-body .cc-grid-2{margin-top:0}

/* ---------- funding ---------- */
.cc-funding-cost{font-size:14px; color:var(--slate)}
.cc-funding-cost strong{color:var(--navy); font-variant-numeric:tabular-nums}
.cc-fin-body{display:flex; flex-direction:column; gap:20px; padding:20px; background:var(--off-white); border:1px solid var(--line); border-radius:3px}
.cc-fin-body .cc-grid-2{margin-top:0; gap:16px}

.cc-derived{border:1px solid var(--line); background:var(--white); border-radius:3px; padding:14px 16px; display:flex; flex-direction:column; gap:8px}
.cc-derived-row{display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:13.5px; color:var(--slate)}
.cc-derived-v{font-variant-numeric:tabular-nums; font-weight:600; color:var(--charcoal)}
.cc-derived-strong{border-top:1px solid var(--line); padding-top:9px; color:var(--charcoal); font-weight:700}
.cc-derived-strong .cc-derived-v{color:var(--navy); font-weight:700}

.cc-split{border-top:1px solid var(--line); padding-top:18px; margin-top:4px}
.cc-split-title{display:block; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--slate)}
.cc-split-bar{display:flex; height:12px; margin-top:11px; border-radius:2px; overflow:hidden; background:#E6E3DC}
.cc-split-seg{flex-basis:0; flex-shrink:1}
.cc-split-ext{background:var(--gold)}
.cc-split-fin{background:var(--slate)}
.cc-split-self{background:var(--navy)}
.cc-split-legend{margin-top:13px; display:flex; flex-direction:column; gap:8px; font-size:13px}
.cc-split-legend li{display:flex; align-items:center; gap:10px}
.cc-swatch{width:10px; height:10px; flex:none}
.cc-split-name{flex:1}
.cc-split-v{font-variant-numeric:tabular-nums; font-weight:600}
.cc-trans-note{margin-top:11px}

/* ---------- review ---------- */
.cc-review-group{background:var(--white); border:1px solid var(--line); border-radius:3px; padding:24px 22px}
.cc-review-head{display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:14px}
.cc-link-btn{background:none; border:0; padding:4px 0; font:inherit; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); cursor:pointer; text-align:left}
.cc-link-btn:hover{color:var(--navy)}
.cc-example-banner{margin-top:24px; background:#EFEDE6; border:1px solid var(--line); border-left:4px solid var(--gold); padding:20px 22px; border-radius:3px}
.cc-example-banner p{font-size:14.5px; line-height:1.6}
.cc-example-banner .cc-link-btn{margin-top:10px}
.cc-summary-errors{margin-top:26px; background:var(--white); border:1px solid var(--cc-neg); border-left:4px solid var(--cc-neg); padding:20px 22px; border-radius:3px}
.cc-summary-errors-title{font-weight:700; color:var(--cc-neg); font-size:15px}
.cc-summary-errors ul{margin-top:12px; display:flex; flex-direction:column; gap:9px}
.cc-summary-errors .cc-link-btn{color:var(--charcoal); text-transform:none; letter-spacing:0; font-weight:500; font-size:13.5px; text-decoration:underline; text-underline-offset:3px}

/* ---------- rows ---------- */
.cc-rows{display:flex; flex-direction:column}
.cc-row{display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:9px 0; border-bottom:1px solid var(--cc-rule); font-size:13.5px; color:var(--slate)}
.cc-row:last-child{border-bottom:0}
.cc-row-k{min-width:0}
.cc-row-v{font-variant-numeric:tabular-nums; font-weight:600; color:var(--charcoal); text-align:right; white-space:nowrap}
.cc-row-strong{border-bottom-color:var(--line)}
.cc-row-strong .cc-row-k{color:var(--charcoal); font-weight:700}
.cc-row-strong .cc-row-v{font-weight:700; color:var(--navy)}
.cc-tone-pos{color:var(--cc-pos) !important}
.cc-tone-neg{color:var(--cc-neg) !important}
.cc-delta{display:block; font-size:12px; font-weight:500; color:var(--slate); margin-top:2px}

/* ---------- nav ---------- */
.cc-nav{display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; padding-top:26px; border-top:1px solid var(--line)}
.cc-nav .btn-primary{margin-left:auto}

/* ---------- results ---------- */
.cc-results-head{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding-bottom:20px; border-bottom:1px solid var(--line)}
.cc-results-actions{display:flex; flex-wrap:wrap; gap:10px}
.cc-result-section{margin-top:48px}
.cc-result-h{font-size:clamp(1.3rem,2.6vw,1.7rem)}
.cc-result-h::after{content:""; display:block; width:42px; height:2px; background:var(--gold); margin-top:14px}
.cc-headline{margin-top:20px; font-size:clamp(1.1rem,2.2vw,1.32rem); font-weight:600; color:var(--navy); line-height:1.45; max-width:60ch}
.cc-headline-sub{margin-top:16px; font-size:14.5px; color:var(--slate); line-height:1.65; max-width:76ch}

.cc-notices{margin-top:24px; display:flex; flex-direction:column; gap:14px}
.cc-notice{background:#EFEDE6; border:1px solid var(--line); border-left:4px solid var(--gold); padding:18px 20px; border-radius:3px}
.cc-notice-title{font-weight:700; color:var(--navy); font-size:15px}
.cc-notice-body{margin-top:8px; font-size:14px; color:var(--slate); line-height:1.6}

.cc-context{margin-top:28px; display:grid; grid-template-columns:minmax(180px,auto) 1fr; gap:0 26px; border-top:1px solid var(--line)}
.cc-context dt{padding:12px 0 4px; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--slate); border-top:1px solid var(--cc-rule)}
.cc-context dt:first-of-type{border-top:0}
.cc-context dd{margin:0; padding:12px 0 4px; font-size:14px; color:var(--charcoal); line-height:1.6; border-top:1px solid var(--cc-rule)}
.cc-context dd:first-of-type{border-top:0}

.cc-figure{margin:26px 0 0}
.cc-chart{background:var(--white); border:1px solid var(--line); border-radius:3px; padding:16px 12px 8px}
.cc-chart-svg{display:block; width:100%; height:auto}
.cc-figcaption{margin-top:12px; font-size:12.5px; color:var(--slate)}
.cc-legend{margin-top:18px; display:flex; flex-wrap:wrap; gap:10px 28px}
.cc-legend li{display:flex; align-items:center; gap:9px; font-size:13.5px}
.cc-legend-swatch{width:14px; height:3px; flex:none}
.cc-legend-name{color:var(--slate)}
.cc-legend-val{font-variant-numeric:tabular-nums; font-weight:700; color:var(--navy)}

.cc-details{margin-top:18px; border:1px solid var(--line); border-radius:3px; background:var(--white); padding:14px 18px}
.cc-details summary{cursor:pointer; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gold)}
.cc-details summary:hover{color:var(--navy)}
.cc-plain-list{margin-top:14px; display:flex; flex-direction:column; gap:9px; font-size:13.5px; color:var(--charcoal); line-height:1.6}

.cc-table-wrap{margin-top:26px; overflow-x:auto; border:1px solid var(--line); border-radius:3px; -webkit-overflow-scrolling:touch}
.cc-table{width:100%; min-width:460px; border-collapse:collapse; font-size:14.5px}
.cc-table th,.cc-table td{padding:13px 16px; text-align:left; border-bottom:1px solid var(--line); font-variant-numeric:tabular-nums}
.cc-table thead th{background:var(--navy); color:#fff; font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap}
.cc-table tbody th{font-weight:700; color:var(--navy); white-space:nowrap}
.cc-table tbody tr:last-child th,.cc-table tbody tr:last-child td{border-bottom:0}
.cc-table td{font-weight:600}

/* ---------- timeline ---------- */
.cc-timeline-card,.cc-household-card,.cc-scenario-card{background:var(--white); border:1px solid var(--line); border-radius:3px; padding:24px 22px; min-width:0}
.cc-clock-note{margin-top:10px; font-size:13px; color:var(--slate)}
.cc-timeline{margin-top:18px}
.cc-timeline-bars{display:flex; gap:2px; align-items:stretch}
.cc-seg{display:flex; flex-direction:column; justify-content:center; gap:3px; min-width:0; min-height:62px; padding:10px 12px; border-radius:2px; overflow:hidden}
.cc-seg-training{background:var(--navy); color:#fff}
.cc-seg-hours{background:var(--slate); color:#fff}
.cc-seg-wait{background:#EFEDE6; color:var(--charcoal); background-image:repeating-linear-gradient(135deg,#D8BC85 0 6px,#EFEDE6 6px 12px)}
.cc-seg-label{font-size:11.5px; font-weight:600; line-height:1.3; overflow-wrap:anywhere}
.cc-seg-months{font-size:11px; opacity:.85; font-variant-numeric:tabular-nums}
.cc-timeline-cap{display:flex; align-items:center; gap:10px; margin-top:12px}
.cc-cap-rule{width:3px; height:20px; background:var(--gold); flex:none}
.cc-cap-label{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--navy)}

/* ---------- household ---------- */
.cc-household-head{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap}
.cc-status{font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:5px 10px; border-radius:2px}
.cc-status-gap{background:#F6ECEC; color:var(--cc-neg)}
.cc-status-ok{background:#ECF2EE; color:var(--cc-pos)}

/* ---------- sensitivity ---------- */
.cc-robustness{margin-top:20px; font-size:1.02rem; color:var(--navy); font-weight:600; line-height:1.6; max-width:74ch}
.cc-chips{display:flex; flex-wrap:wrap; gap:9px; margin-top:24px}
.cc-chip{min-height:44px; padding:10px 16px; border:1px solid var(--line); border-radius:3px; background:transparent; font:inherit; font-size:13.5px; font-weight:600; color:var(--navy); cursor:pointer}
.cc-chip:hover:not(:disabled){border-color:var(--navy)}
.cc-chip.is-active{background:var(--navy); border-color:var(--navy); color:#fff}
.cc-chip:disabled{opacity:.45; cursor:not-allowed}
.cc-scenario-note{margin-top:14px; font-size:13.5px; color:var(--slate)}

.cc-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}

/* ---------- focus ---------- */
.cc-root button:focus-visible,.cc-root input:focus-visible,.cc-root summary:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:2px}
.cc-input:focus-visible{outline-offset:-2px}
.cc-step-h:focus,.cc-intro-h:focus,.cc-eyebrow:focus{outline:none}

@media (prefers-reduced-motion: reduce){
  .cc-root *{transition:none !important; animation:none !important}
}

/* ---------- mobile: a different rhythm, not stacked desktop ---------- */
@media (max-width:900px){
  .cc-hero{padding:44px 0 40px}
  .cc-app-section{padding-top:40px}
  .cc-intro{padding:28px 22px}
  .cc-two-col,.cc-grid-2,.cc-review-grid{grid-template-columns:1fr; gap:18px}
  .cc-context{grid-template-columns:1fr; gap:0}
  .cc-context dt{border-top:1px solid var(--cc-rule); padding-bottom:0}
  .cc-context dd{border-top:0; padding-top:5px; padding-bottom:12px}

  /* One question group per screen: the numbered rail collapses to a compact counter. */
  .cc-progress-list{display:none}
  .cc-progress-compact{display:block; padding-bottom:12px; border-bottom:1px solid var(--line)}

  .cc-path-card{padding:22px 18px}
  .cc-fin-body{padding:16px 14px}
  .cc-review-group{padding:20px 18px}
  .cc-input{font-size:16px}                 /* keeps iOS from zooming on focus */
  .cc-seg-label-btn{flex:1; min-width:0; padding:11px 12px; font-size:13.5px}
  .cc-segmented{gap:6px}

  .cc-nav{gap:10px}
  .cc-nav .btn{width:100%}
  .cc-nav .btn-primary{margin-left:0; order:-1}   /* primary action first under the thumb */

  .cc-results-head{flex-direction:column; align-items:flex-start}
  .cc-results-actions{width:100%}
  .cc-results-actions .btn{flex:1}
  .cc-result-section{margin-top:38px}
  .cc-chart{padding:12px 6px 4px}

  .cc-table{min-width:0}
  .cc-table th,.cc-table td{padding:11px 12px; font-size:13.5px}
  .cc-table tbody th{position:sticky; left:0; background:var(--white)}   /* year column pinned */

  .cc-chips{flex-direction:column}
  .cc-chip{width:100%}                       /* full-width chips */
  .cc-seg{min-height:56px; padding:8px 9px}
  .cc-seg-label{font-size:10.5px}
  .cc-row{font-size:13px}
}

/* ---------- print ---------- */
@media print{
  .site-header,.site-footer,.skip-link,.cc-hero,.cc-reading,.cc-noscript,
  .cc-results-actions,.cc-chips,.cc-nav,.cc-progress,.cc-details{display:none !important}
  body{background:#fff; font-size:11pt}
  .section{padding:0 !important}
  .wrap{max-width:none; padding:0}
  .cc-result-section{margin-top:22px; break-inside:avoid}
  .cc-result-h{font-size:15pt}
  .cc-headline{font-size:13pt}
  .cc-two-col,.cc-grid-2,.cc-review-grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px}
  .cc-chart,.cc-path-card,.cc-household-card,.cc-timeline-card,.cc-scenario-card,
  .cc-review-group,.cc-notice,.cc-table-wrap{border-color:#999; break-inside:avoid}
  .cc-figure,.cc-table-wrap,.cc-notices{break-inside:avoid}
  .cc-scenario-note,.cc-robustness{color:#000}
  a{text-decoration:none; color:#000}
}
