/* Scoped lifestyle planner: no changes to shared calculators. */
.life-page { --life-ink:#102b3a; --life-teal:#317879; --life-paper:#f5f2ec; background:var(--life-paper); }
.life-hero { padding:70px 0 48px; background:var(--life-ink); color:#fff; overflow:hidden; }
.life-hero .container { max-width:1200px; }
.life-kicker { display:block; color:#acd9d2; text-transform:uppercase; letter-spacing:.16em; font-size:12px; font-weight:700; margin:20px 0; }
.life-hero h1 { max-width:870px; font-size:clamp(38px,5vw,68px); line-height:1.08; color:#fff; margin:0 0 25px; }
.life-hero h1 em { color:#a9d8ce; font-style:normal; }
.life-hero p { max-width:720px; font-size:18px; color:#d4dfe3; line-height:1.7; }
.life-hero .breadcrumb { font-size:12px; color:#becfd4; margin:0; }
.life-hero .breadcrumb a { color:inherit; }
.life-steps { display:flex; gap:24px; flex-wrap:wrap; margin-top:32px; font-size:13px; color:#d7e4e6; }
.life-steps b { display:inline-grid; place-items:center; border:1px solid #719491; border-radius:50%; width:26px; height:26px; margin-right:8px; color:#c3e6dc; }
.life-workspace { max-width:1200px; margin:auto; padding:40px 24px 64px; }
.life-intro { display:flex; justify-content:space-between; align-items:start; gap:24px; margin-bottom:26px; }
.life-intro p { max-width:750px; margin:0; font-size:14px; line-height:1.7; color:#455b64; }
.life-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:28px; align-items:start; }
.life-form { min-width:0; }
.life-layout > div { min-width:0; }
.life-group { background:#fff; padding:25px; border:1px solid #dce4e3; border-radius:16px; margin-bottom:18px; }
.life-group h2 { font-size:26px; margin:0 0 8px; }
.life-group > p, .life-group > small { font-size:13px; color:#526871; line-height:1.65; display:block; margin-bottom:20px; }
.life-group legend { font-size:22px; font-family:var(--font-heading); padding:0 6px; }
.life-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px 16px; }
.life-field { min-width:0; }
.life-field label { display:block; font-size:13px; font-weight:700; margin-bottom:8px; color:var(--life-ink); }
.life-field small { display:block; margin-top:7px; line-height:1.5; font-size:11px; color:#526871; }
.life-input { display:flex; align-items:center; border:1px solid #b3c7c9; border-radius:8px; background:#fbfcfc; overflow:hidden; }
.life-input span { padding-left:12px; font-size:12px; color:#526871; }
.life-input input { width:100%; min-width:0; padding:12px 10px; border:0; border-radius:0; font:600 17px var(--font-body, sans-serif); background:transparent; color:var(--life-ink); }
.life-field select { width:100%; padding:12px; border:1px solid #b3c7c9; border-radius:8px; font:inherit; color:var(--life-ink); background:white; }
.life-input:focus-within { outline:3px solid #367f83; outline-offset:3px; }
.life-input input:focus { outline:none; }
.life-page button:focus-visible,.life-page a:focus-visible,.life-page select:focus-visible,.life-page summary:focus-visible { outline:3px solid #39888c; outline-offset:4px; }
.life-field [aria-invalid="true"] { background:#fff0ec; }
.life-error { color:#9e3323; font-size:12px; line-height:1.5; margin:5px 0 0; }
.life-error:empty { display:none; }
.life-assumptions summary { font-weight:700; cursor:pointer; color:var(--life-ink); }
.life-assumptions[open] summary { margin-bottom:22px; }
.life-actions { display:flex; gap:12px; flex-wrap:wrap; margin:20px 0; }
.life-secondary { background:white; color:var(--life-ink); border:1px solid #8faeaf; border-radius:8px; padding:12px 16px; font-size:13px; font-weight:600; cursor:pointer; }
.life-secondary:disabled { opacity:.5; cursor:not-allowed; }
.life-status { font-size:13px; line-height:1.6; color:#753d2d; min-height:22px; }
.life-results { min-width:0; position:sticky; top:110px; }
.life-results[hidden], .life-page [hidden] { display:none!important; }
.life-empty { border:1px dashed #9dafb3; border-radius:16px; padding:40px; color:#435d65; line-height:1.7; }
.life-salary { padding:32px; border-radius:18px; background:var(--life-ink); color:#fff; position:relative; overflow:hidden; }
.life-salary:before { content:""; position:absolute; width:180px; height:180px; right:-70px; top:-80px; border:30px solid #8cc7bd15; border-radius:50%; pointer-events:none; }
.life-salary h2 { color:#c3dfda; font-size:12px; text-transform:uppercase; letter-spacing:.13em; margin:0 0 18px; font-family:var(--font-body,sans-serif); }
.life-range { display:block; font:600 clamp(26px,2.7vw,37px)/1.25 var(--font-heading); color:#fff; font-variant-numeric:tabular-nums; }
.life-unit { display:block; color:#c0d2d6; font-size:13px; margin-top:8px; }
.life-range-note { color:#d6e4e6; font-size:13px; line-height:1.7; margin:20px 0; }
.life-range-note strong { color:white; }
.life-range-ends { display:grid; grid-template-columns:1fr 1fr; gap:14px; border-top:1px solid #46606a; padding-top:20px; }
.life-range-ends small { display:block; color:#c0d2d6; font-size:11px; line-height:1.6; }
.life-range-ends strong { display:block; font-size:20px; margin:3px 0; color:white; }
.life-salary .life-assumption-line { color:#b9cdd1; font-size:11px; line-height:1.7; margin:20px 0 0; }
.life-breakdown { background:white; border:1px solid #dce4e3; border-radius:16px; padding:28px; margin-top:18px; }
.life-breakdown h3 { font-size:25px; margin:0 0 10px; }
.life-breakdown p { font-size:13px; line-height:1.65; color:#526871; }
.life-stack { display:flex; height:14px; gap:3px; border-radius:5px; overflow:hidden; margin:22px 0; }
.life-stack span { flex-basis:0; min-width:0; }
.life-waterfall { margin:0; }
.life-waterfall div { display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid #e7eceb; font-size:13px; }
.life-waterfall dt { color:#526871; }
.life-waterfall dd { margin:0; white-space:nowrap; font-weight:700; color:#173847; font-variant-numeric:tabular-nums; }
.life-waterfall .life-total { border-top:1px solid #89aba7; border-bottom:0; margin-top:7px; padding-top:17px; }
.life-total dd { color:#236764; font-size:20px; }
.life-tax-details { margin:15px 0; font-size:12px; color:#526871; }
.life-tax-details summary { cursor:pointer; padding:5px 0; }
.life-budget-row { display:grid; grid-template-columns:1fr auto; gap:5px 12px; margin:16px 0; font-size:12px; }
.life-budget-row strong { color:#173847; font-variant-numeric:tabular-nums; }
.life-bar-track { grid-column:1/-1; background:#edf1ef; height:5px; border-radius:5px; overflow:hidden; }
.life-bar-track span { display:block; height:100%; border-radius:5px; transition:width .25s ease; }
.life-brazil { padding:24px; margin-top:18px; border-radius:16px; background:#e6eee7; border:1px solid #c9d8cc; }
.life-brazil h3 { font-size:24px; margin:0 0 14px; color:#234b41; }
.life-brazil p { font-size:14px; line-height:1.75; color:#34584f; margin:8px 0; }
.life-brazil small { font-size:11px; line-height:1.6; display:block; color:#4d675e; margin-top:14px; }
.life-offer { padding:22px; border:1px solid #a6c7bf; border-radius:12px; background:#f0f6f1; margin-top:20px; }
.life-offer[data-state="short"] { border-color:#d8ae9f; background:#fcf2ec; }
.life-offer h3 { font-size:21px; margin:0 0 10px; }
.life-offer p { font-size:13px; line-height:1.6; }
.life-offer strong { font-size:19px; color:#173847; }
.life-method { max-width:1200px; margin:0 auto 64px; padding:0 24px; }
.life-method > div { border-top:1px solid #bbc9c7; padding-top:35px; max-width:860px; }
.life-method h2 { font-size:32px; margin-bottom:20px; }
.life-method h3 { font-size:21px; margin:25px 0 12px; }
.life-method p,.life-method li { font-size:14px; color:#455d66; line-height:1.85; }
.life-method ul { padding-left:20px; }
.life-method a { color:#296e71; text-decoration:underline; }
@media(max-width:980px) {
  .life-layout { grid-template-columns:1fr; }
  .life-results { position:static; }
  .life-range { font-size:36px; }
  .life-hero { padding-top:40px; }
}
@media(max-width:520px) {
  .life-workspace { padding:28px 18px 40px; }
  .life-fields { gap:18px 12px; }
  .life-group { padding:20px 16px; }
  .life-intro { display:block; }
  .life-intro a { display:inline-block; margin-top:15px; }
  .life-salary,.life-breakdown { padding:24px 20px; }
  .life-range { font-size:28px; }
  .life-steps { gap:12px; font-size:11px; }
  .life-hero h1 { font-size:39px; }
  .life-hero p { font-size:16px; }
  .life-range-ends strong { font-size:18px; }
}
@media(prefers-reduced-motion:reduce) { .life-bar-track span { transition:none; } }
/* Lifestyle chooser: native radio controls, original CSS illustrations, no media dependency. */
.life-choice-group { border:0; padding:0; margin:0 0 32px; min-width:0; }
.life-choice-group legend { padding:0; max-width:100%; white-space:normal; font:600 25px/1.3 var(--font-heading); color:var(--life-ink); }
.life-choice-group > p { color:#526871; font-size:13px; line-height:1.65; margin:10px 0 16px; }
.life-choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
#life-areas .life-choice-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
.life-choice { cursor:pointer; position:relative; display:flex; min-width:0; }
.life-choice input { position:absolute; opacity:0; width:1px; height:1px; }
.life-choice-card { width:100%; padding:20px 16px; border:1px solid #b6c8c7; border-radius:12px; background:#fff; position:relative; transition:background .15s,border-color .15s; }
.life-choice-card strong { display:block; font-size:14px; line-height:1.4; padding-right:14px; color:#183645; }
.life-choice-card small { display:block; font-size:11px; line-height:1.5; color:#526871; margin-top:7px; }
.life-choice-icon { display:block; font-size:25px; line-height:1; color:#387677; margin-bottom:18px; min-height:25px; }
.life-choice-icon:empty { display:none; }
#life-areas .life-choice-icon { font-size:12px; letter-spacing:.15em; font-weight:700; }
.life-choice input:checked + .life-choice-card { background:#e7f0eb; border:2px solid #397c76; padding:19px 15px; }
.life-choice input:checked + .life-choice-card:after { content:'✓'; position:absolute; top:14px; right:12px; color:#22615d; font-weight:bold; font-size:14px; }
.life-choice input:focus-visible + .life-choice-card { outline:3px solid #347f86; outline-offset:4px; }
.life-choice:hover .life-choice-card { border-color:#397c76; }
.life-coverage { font-size:12px; line-height:1.6; color:#526871; margin:-12px 0 36px; }
.life-estimate-note { background:#e7ede6; padding:20px; border-radius:12px; margin:0 0 24px; }
.life-estimate-note p { font-size:12px; line-height:1.7; color:#354f4a; }
.life-estimate-note button { font-size:12px; }
.life-postcard { padding:28px; border-radius:18px; background:#e2eae2; border:1px solid #c6d7d0; margin-bottom:18px; overflow:hidden; }
.life-postcard .life-kicker { color:#3c716b; font-size:10px; }
.life-postcard h2 { font-size:32px; margin:0 0 10px; color:#183c3a; }
.life-postcard p { font-size:13px; line-height:1.6; color:#405e57; }
.life-postcard > strong { display:block; font:600 32px/1.3 var(--font-heading); color:#143b36; margin-top:22px; }
.life-postcard > small { font-size:11px; color:#476359; }
.life-evidence { border-top:1px solid #b6ccc1; padding-top:14px; margin-top:22px; }
.life-evidence span { display:block; font-size:10px; line-height:1.8; color:#426358; }
.life-postcard .life-postcard-caveat { font-size:11px; }
.life-city-art { height:120px; display:flex; gap:10px; align-items:end; position:relative; border-bottom:2px solid #4e8277; padding:0 30px; }
.life-city-art span { background:repeating-linear-gradient(0deg,transparent 0 15px,#e2eae2 15px 18px),repeating-linear-gradient(90deg,#558b7e 0 14px,#e2eae2 14px 20px); width:55px; height:76px; border:5px solid #558b7e; z-index:1; }
.life-city-art span:nth-child(2) { height:110px; width:65px; }
.life-city-art span:nth-child(3) { height:60px; width:80px; background:#8baea0; border-color:#8baea0; border-radius:28px 28px 0 0; }
.life-city-art span:nth-child(4) { height:90px; }
.life-city-art i { position:absolute; width:60px; height:60px; border-radius:50%; background:#d9bc7b; right:28px; top:0; }
.life-postcard[data-home="three"] .life-city-art span:nth-child(3) { width:120px; }
.life-postcard[data-home="shared"] .life-city-art span:nth-child(2) { background-color:#b8c9b0; }
.life-postcard[data-area="boston"] .life-city-art span { border-color:#88695d; }
.life-postcard[data-area="newark"] .life-city-art span:nth-child(4) { height:115px; }
.life-results { position:static; scroll-margin-top:110px; }
.life-mobile-summary { position:fixed; bottom:12px; left:16px; right:16px; z-index:20; background:#102b3a; color:#fff; box-shadow:0 6px 28px #102b3a30; border:1px solid #53726e; border-radius:12px; max-width:650px; margin:0 auto; padding:16px 20px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.life-page { padding-bottom:100px; scroll-padding-bottom:110px; }
.life-page input,.life-page button,.life-page summary { scroll-margin-bottom:120px; }
.life-choice-card em { display:block; font-style:normal; font-size:12px; color:#28685d; margin-top:12px; font-weight:600; }
.life-location-photo { display:block; width:100%; height:130px; object-fit:cover; border-radius:7px; margin-bottom:16px; background:#d8e2df; }
.life-postcard-photo { display:block; width:100%; height:225px; object-fit:cover; border-radius:10px; background:#d8e2df; }
#life-areas .life-choice input:checked + .life-choice-card:after { background:#e7f0eb; border-radius:50%; width:23px; height:23px; text-align:center; top:24px; right:22px; }
.life-photo-credits { margin:-20px 0 32px; font-size:11px; line-height:1.7; color:#526871; }
.life-photo-credits summary { cursor:pointer; padding:8px 0; }
.life-photo-credits p { max-width:800px; }
.life-photo-credits ul { padding-left:20px; }
.life-photo-credits a { text-decoration:underline; color:#28685d; }
.life-mobile-summary small { display:block; color:#c7dbd7; font-size:11px; }
.life-mobile-summary strong { display:block; font-size:17px; margin-top:5px; }
.life-mobile-summary button { border:1px solid #90bcb1; border-radius:7px; color:#102b3a; background:#cee4d9; padding:12px; white-space:nowrap; font-size:12px; font-weight:700; cursor:pointer; }
@media(max-width:980px) { #life-areas .life-choice-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .life-result-column { margin-top:12px; } }
@media(max-width:520px) {
  #life-areas .life-choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #life-areas .life-choice:last-child:nth-child(odd) { grid-column:1/-1; }
  .life-choice-card { padding:16px 12px; }
  .life-choice input:checked + .life-choice-card { padding:15px 11px; }
  .life-choice-card strong { font-size:13px; }
  .life-location-photo { height:105px; }
  .life-postcard-photo { height:180px; }
  .life-choice-group legend { font-size:23px; }
  .life-postcard { padding:24px 20px; }
  .life-mobile-summary { bottom:8px; left:8px; right:8px; margin:0 auto; padding:12px; gap:8px; }
  .life-mobile-summary strong { font-size:13px; }
  .life-mobile-summary button { font-size:11px; padding:12px 8px; }
}
@media(prefers-reduced-motion:reduce) { .life-choice-card { transition:none; } }
@media print {
  #life-areas,#life-choices,.life-estimate-note,.life-mobile-summary,.life-coverage { display:none!important; }
  .site-header,.site-footer,.newsletter-section,.life-actions,.life-intro,.life-steps,.life-status { display:none!important; }
  .life-layout { display:block; }
  .life-results { position:static; }
  .life-group,.life-breakdown,.life-salary,.life-brazil { break-inside:avoid; }
  .life-hero,.life-salary { background:white; color:#102b3a; padding:20px; border:1px solid #ccc; }
  .life-hero *, .life-salary * { color:#102b3a!important; }
  .life-range { font-size:30px; }
  .life-workspace { padding:20px 0; }
}
