/* Shared theme; loaded last to preserve the existing calculators and city tools. */
:root { --ink:#0B131E;--ink-2:#1e293b;--paper:#F8F9FA;--white:#fff;--line:#E5E7EB;--muted:#64748b;--lime:#0D5C56;--lime-2:#083E3A;--sky:#E6F4F1;--radius:12px;--shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--surface:#fff;--sage:#E6F4F1;--accent:#0D5C56; }
body { font-family:var(--font-sans);color:var(--text-body); }
h1,h2,h3,h4 { color:var(--ink);letter-spacing:0; }
input,select,output,table,.metric-list,.result-main,.calc-output strong,.phase2-cash-results,.city-facts { font-variant-numeric:tabular-nums;font-feature-settings:"tnum"; }
button,input,select,textarea { border-radius:8px; }
input,select,textarea { background:var(--surface);color:var(--ink);border-color:var(--line); }
input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #5eead4;outline-offset:3px; }
.site-header { background:rgba(247,247,244,.96);border-color:var(--line); }
.brand-mark { background:#0f766e;color:white;border-radius:10px;box-shadow:none; }
.brand { color:var(--ink); }
.button,.nav-cta,.signup button { border-radius:8px;box-shadow:none;font-weight:600; }
.button-primary,.nav-links .nav-cta,.signup button { background:#0f766e;color:#fff;border:1px solid #0f766e; }
.button-primary:hover,.nav-links .nav-cta:hover,.signup button:hover { background:#065f58;color:white; }
.button-outline,.button-ghost { border:1px solid var(--line);background:var(--surface);color:var(--ink); }
.eyebrow,.scope-badge,.route-field label,.phase2-axis-number { color:#0f766e; }
.scope-badge { display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:9999px;background:#ecfdf5;border:1px solid #d1fae5;font-size:.75rem;font-weight:600;letter-spacing:0; }
.scope-badge::before { content:"";width:6px;height:6px;background:#65a30d;border-radius:50%; }
.hero { background:var(--paper);padding-top:70px; }
.hero h1 { font-size:clamp(2.6rem,4.6vw,4.5rem);line-height:1.08;max-width:780px; }
.hero-copy>p:not(.scope-badge) { color:var(--muted); }
.hero-phase-one .hero-grid { background:transparent;border-radius:0;border:0;box-shadow:none; }
.hero-phase-one .hero-copy { padding:0; }
.hero-phase-one .hero-copy h1 { color:var(--ink);font-size:clamp(2.6rem,4.6vw,4.5rem);line-height:1.08;margin:22px 0; }
.hero-phase-one .hero-copy>p { color:var(--muted); }
.hero-phase-one .scope-badge { background:#ecfdf5;color:#065f46;border:1px solid #d1fae5; }
.hero-phase-one .money-route-card { margin:24px 0 24px 25px; }
.hero-phase-one .hero-reassurance { color:var(--muted); }
.hero-phase-one { padding:64px 0 48px;background:var(--paper); }
.hero-phase-one .hero-copy>p:not(.scope-badge):not(.hero-reassurance) { color:var(--muted); }
.route-result-empty h3,.route-result-content h3 { color:var(--ink); }
.route-result-empty p:last-child,.route-issues,.route-issues li,.route-recommendations span { color:var(--muted); }
.route-recommendations a,.tool-stack>a:not(.button),.tool-stack .button { color:var(--ink);border-color:var(--line); }
.tool-stack small { color:var(--muted); }
.article-card.featured { background:var(--surface);color:var(--ink); }
.article-card.featured h3 { color:var(--ink); }
.article-card.featured p { color:var(--muted); }
.tool-hero,.compare-hero,.corridor-hero,.section-ink,.country-stamp,.diagnostic-result,.map-city-panel,.season-strip div,.corridor-aside { background:var(--surface);color:var(--ink);border-color:var(--line); }
.tool-hero h1,.tool-hero em,.compare-hero h1,.corridor-hero h1,.section-ink h2,.country-stamp strong,.diagnostic-result h2,.map-city-panel h3,.map-money-note strong,.map-disclaimer a,.season-strip strong { color:var(--ink); }
.tool-hero p,.compare-hero p,.corridor-hero p,.section-ink p,.country-stamp p,.diagnostic-result p,.map-city-panel p,.season-strip span { color:var(--muted); }
.tool-hero>.shell>p:not(.eyebrow),.compare-hero p:last-child,.corridor-hero .shell>p:last-child,.calc-output>p,.map-city-panel>p:not(.eyebrow):not(.map-disclaimer) { color:var(--muted); }
.metric-list span,.finding-list,.score-ring small,.climate-pair span { color:var(--muted); }
.map-city-buttons button[aria-pressed="true"] { background:#ecfdf5;color:#065f46;border-color:#a7f3d0; }
.blueprint-result .phase2-plan-section li,.blueprint-result .phase2-task,.blueprint-result.phase2-plan>p { color:var(--ink-2); }
.blueprint-result .phase2-red-flags h3 { color:#9a5700; }
.trust-page details { padding:16px 0;border-bottom:1px solid var(--line); }
.trust-page details summary { font-weight:600;cursor:pointer; }
.tool-tabs a,.calc-output .read-link,.blueprint-links a,.corridor-aside a { color:var(--accent);border-color:var(--line); }
.blueprint-result .phase2-review-link { color:var(--accent)!important;border-color:var(--line)!important; }
.blueprint-result .phase2-timeline-phase h4 { color:var(--ink); }
.compare-next,.resident-callout { background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px; }
.compare-next h2,.resident-callout h2,.compare-next .button,.resident-callout .button { color:var(--ink);border-color:var(--line); }
.field-help::after { background:#0f172a;color:white; }
.shortlist-drawer { background:#0f172a;color:white; }
.city-card.city-photo { background:#0f172a;border-radius:12px;box-shadow:var(--shadow); }
.city-card.city-photo .fit-label,.city-depth-hero .eyebrow,.city-depth-hero .city-facts strong { color:#99f6e4; }
.city-card.city-photo:hover { transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.08); }
.money-route-card,.route-result,.planner-result,.calc-output,.tool-stack,.phase2-verdict,.blueprint-result { background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px; }
.money-route-card { padding:30px; }
.money-route-row strong { color:var(--ink); }
.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; }
.netpay-form,.netpay-result { background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px; }
.netpay-result h2,.netpay-breakdown dd { color:var(--ink); }
.netpay-result>p:not(.eyebrow),.netpay-main-caption,.netpay-breakdown dt { color:var(--muted); }
.netpay-breakdown,.netpay-breakdown div,.netpay-warning { border-color:var(--line); }
.netpay-fields input,.netpay-fields select { border-radius:8px;background:var(--surface);color:var(--ink);border-color:var(--line); }
.netpay-method p,.netpay-method li { color:var(--ink-2); }
.money-route-card .eyebrow,.money-route-row span { color:#0f766e; }
.money-route-row { border-color:var(--line); }
.money-route-row span { background:#ecfdf5;border:1px solid #d1fae5; }
.money-route-row small,.money-route-note { color:var(--muted); }
.money-route-note,.trust-strip { border-color:var(--line); }
.trust-item strong { color:var(--ink); }
.destination-card,.article-card,.persona-paths>a,.lens-grid article,.route-starter-form,.phase2-axis,.phase2-cost-grid>*,.blueprint-step,.neighborhood-card,.city-fit-split>*,.city-surprises,.resident-panel,.guide-summary,.key-takeaways,.country-note,.planner-form,.calc-fields { border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow); }
.destination-card,.article-card,.persona-paths>a,.lens-grid article,.neighborhood-card { transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1); }
.destination-card:hover,.article-card:hover,.persona-paths>a:hover,.lens-grid article:hover,.neighborhood-card:hover { transform:translateY(-2px);box-shadow:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -2px rgba(0,0,0,.04); }
.destination-card { min-height:390px; }
.corridor-tags { display:flex;flex-wrap:wrap;gap:5px;margin-top:18px; }
.corridor-tags span { font-size:.67rem;line-height:1.5;font-weight:600;padding:4px 8px;border-radius:9999px;color:#065f46;background:rgba(236,253,245,.95);border:1px solid #d1fae5; }
.article-card,.persona-paths>a,.lens-grid article,.planner-form,.calc-fields { background:var(--surface); }
.article-body { font-family:var(--font-sans);font-size:15px;line-height:1.65;color:var(--text-body); }
.article-body,.guide-layout>* { min-width:0; }
.table-scroll { max-width:100%;overflow-x:auto; }
.article-body p { max-width:70ch; }
.article-body h2 { margin-top:2.3rem;font-size:1.5rem;line-height:1.3;scroll-margin-top:110px; }
.article-body h3 { font-family:inherit; }
.guide-hero { background:var(--paper); }
.guide-hero h1 { max-width:940px;font-size:clamp(2.3rem,4.7vw,4rem);line-height:1.12; }
.guide-summary,.key-takeaways,.callout,.checklist { background:var(--sage);border-color:#d1fae5;color:var(--ink-2); }
.key-takeaways strong { color:#065f46; }
.article-body .key-takeaways ul { margin-bottom:0; }
.guide-aside { position:static; }
.guide-sidebar { position:sticky;top:100px;align-self:start;min-width:0; }
.guide-layout { grid-template-columns:minmax(0,1fr) 300px;gap:50px; }
.guide-sidebar .ad-slot-container { position:sticky;top:90px; }
.guide-sidebar .article-toc { margin-top:0;padding:20px;max-height:55vh;overflow:auto;background:var(--surface);border-radius:12px;border:1px solid var(--line); }
.article-toc strong { font-size:.9rem; }
.article-toc li { font-size:.8rem;line-height:1.5;padding-bottom:7px; }
.article-toc a { text-decoration:none;color:var(--muted); }
.article-toc a:hover { color:var(--accent);text-decoration:underline; }
.related-guides { margin-top:40px;border-top:1px solid var(--line);padding-top:25px; }
.related-guides h2 { margin:0 0 18px; }
.related-guide-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px; }
.related-guide-grid a { display:flex;flex-direction:column;gap:10px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;text-decoration:none;font-size:.88rem;line-height:1.45; }
.related-guide-grid small { color:#0f766e; }
.data-table th { background:#ecfdf5;color:#0f172a; }
.data-table td { border-color:var(--line); }
.result-label,.result-caption,.calc-output p,.status,.planner-result .status,.result-card span,.blueprint-result p,.blueprint-result li { color:var(--muted); }
.result-main,.calc-output>strong,.metric-list strong,.result-card strong { color:var(--ink); }
.result-card,.status,.result-copy { border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px; }
.phase2-verdict-head h2,.phase2-warning strong { color:var(--ink); }
.phase2-verdict-grid article { background:var(--paper);border-color:var(--line); }
.phase2-verdict-grid article span,.phase2-score-pair b { color:#0f766e; }
.phase2-verdict-grid article p,.phase2-warning { color:var(--muted); }
.phase2-score-pair span { border-color:var(--line); }
.phase2-score-pair .save-city { color:var(--ink);border-color:var(--line); }
.phase2-cash-results article { background:var(--sage);border:1px solid #d1fae5; }
.blueprint-result h2,.blueprint-result h3,.blueprint-result strong { color:var(--ink); }
.blueprint-result .eyebrow,.blueprint-result .plan-section-title { color:#0f766e; }
.blueprint-result .plan-block,.blueprint-result .bp2-task,.blueprint-result .plan-readiness>div { background:var(--paper);border-color:var(--line);color:var(--ink); }
.blueprint-result a { color:#0f766e;border-color:var(--line); }
.newsletter,.plan-alerts { background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px; }
.newsletter h2 { color:var(--ink); }
.newsletter p { color:var(--muted); }
.site-footer { background:#f0f2ef;border-top:1px solid var(--line);color:var(--ink); }
.footer-grid { grid-template-columns:1.1fr 1fr;gap:50px; }
.footer-links { display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;align-content:start; }
.footer-links a,.footer-brand p,.footer-bottom { color:var(--muted); }
.footer-bottom { border-color:var(--line);font-size:.76rem; }
.lead-magnet { margin:26px 0 0;padding:20px;border:1px solid var(--line);border-radius:12px;background:var(--surface);max-width:620px;box-shadow:var(--shadow); }
.lead-magnet h2,.article-upgrade h2 { margin:0 0 8px;font-size:1.05rem;line-height:1.4;letter-spacing:0; }
.lead-magnet p,.article-upgrade p { margin:0 0 13px;color:var(--muted);font-size:.82rem;line-height:1.65; }
.capture-inline { display:flex;gap:8px; }
.capture-inline input { flex:1;min-width:0;padding:11px 12px;border:1px solid var(--line); }
.capture-inline button { white-space:nowrap;padding:10px 14px;background:#0f766e;border:1px solid #0f766e;color:white;cursor:pointer;font-size:.82rem; }
.capture-note { display:block;margin-top:9px;font-size:.7rem;color:var(--muted); }
.capture-status { font-size:.8rem;margin-top:10px;color:#065f46; }
.capture-status a { font-weight:600; }
.article-upgrade { margin:32px 0;padding:24px;border:1px solid #cce3db;background:#f2f8f5;border-radius:12px; }
.summary-export { border-top:1px solid var(--line);margin-top:20px;padding-top:16px; }
.summary-export button { padding:10px 13px;width:100%;border:1px solid var(--line);color:var(--ink);background:var(--surface);cursor:pointer;font-size:.83rem; }
.summary-export small { display:block;margin-top:8px;color:var(--muted);font-size:.7rem; }
.capture-modal { width:min(480px,calc(100% - 32px));border:1px solid var(--line);border-radius:12px;padding:28px;color:var(--ink);background:var(--surface); }
.capture-modal::backdrop { background:rgba(15,23,42,.45);backdrop-filter:blur(3px); }
.capture-modal h2 { font-size:1.4rem;margin:0 25px 12px 0; }
.capture-modal p { color:var(--muted);font-size:.85rem; }
.modal-close { position:absolute;top:14px;right:14px;border:0;background:transparent;cursor:pointer;padding:4px 9px;color:var(--ink);font-size:1.4rem; }
.capture-modal label { display:block;font-size:.85rem;margin-bottom:8px; }
.capture-modal .summary-download { display:none;margin-top:16px; }
.capture-modal .summary-download.is-ready { display:block; }
.theme-toggle { background:transparent;border:1px solid var(--line);color:var(--ink);font-size:.72rem;padding:6px 10px;cursor:pointer; }
[data-theme="dark"] { color-scheme:dark;--paper:#0a0f17;--surface:#111827;--white:#111827;--ink:#f1f5f9;--ink-2:#cbd5e1;--muted:#94a3b8;--line:#1f2937;--sage:#102c28;--sky:#102c28; }
[data-theme="dark"] { --lime:#5eead4;--lime-2:#a7f3d0;--accent:#5eead4; }
[data-theme="dark"] .nav-toggle { background:var(--surface);border-color:var(--line); }
[data-theme="dark"] .blueprint-progress-panel,[data-theme="dark"] .global-search-button { background:var(--surface); }
[data-theme="dark"] .nav-toggle::before,[data-theme="dark"] .nav-toggle::after,[data-theme="dark"] .nav-toggle span { background:#cbd5e1; }
[data-theme="dark"] .site-header { background:rgba(10,15,23,.96); }
[data-theme="dark"] .site-footer,[data-theme="dark"] .article-upgrade { background:#111827; }
[data-theme="dark"] .scope-badge,[data-theme="dark"] .data-table th { background:#102c28;color:#a7f3d0; }
[data-theme="dark"] .eyebrow,[data-theme="dark"] .capture-status,[data-theme="dark"] .money-route-card .eyebrow { color:#5eead4; }
[data-theme="dark"] .phase2-axis,[data-theme="dark"] .route-starter-form,[data-theme="dark"] .blueprint-step,[data-theme="dark"] .phase2-cost-grid>*,[data-theme="dark"] .city-tuesday article,[data-theme="dark"] .city-fit-split>*,[data-theme="dark"] .neighborhood-card,[data-theme="dark"] .resident-panel,[data-theme="dark"] .city-surprises { background:var(--surface);color:var(--ink-2); }
[data-theme="dark"] .np-output,[data-theme="dark"] .bp2-calculation { background:#102c28;color:var(--ink); }
[data-theme="dark"] .np-rows dd { color:var(--ink); }
@media(max-width:980px) { .guide-sidebar { position:static; }.guide-sidebar .article-toc { max-height:none; }.guide-layout { grid-template-columns:1fr; }.guide-sidebar { grid-row:1; }.guide-aside { display:none; } }
@media(max-width:700px) { .hero { padding-top:36px; }.hero h1 { font-size:2.6rem; }.related-guide-grid,.footer-grid,.footer-links { grid-template-columns:1fr; }.capture-inline { flex-direction:column; }.capture-inline button { width:100%; }.destination-card { min-height:350px; }.theme-toggle { margin-left:auto; }.guide-hero h1 { font-size:2.25rem; } }
@media(max-width:980px) { .hero-phase-one .hero-grid { grid-template-columns:1fr; }.hero-phase-one .money-route-card { margin:24px 0 0; }.hero-phase-one .hero-copy h1 { font-size:clamp(2.5rem,7vw,4rem); } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important;transition:none!important; } }
@media print { .site-header,.site-footer,.ad-slot-container,.lead-magnet,.article-upgrade,.capture-modal,.summary-export,.theme-toggle,.guide-sidebar { display:none!important; } body { background:white;color:#0f172a; }.guide-layout { display:block; }.article-body { font-size:10pt; } }
.toc-toggle { display:none; }
/* Keep search and appearance controls reachable on narrow 320px phones. */
@media(max-width:360px) {
  .site-header .nav { flex-wrap:wrap;gap:8px;padding-block:8px; }
  .site-header .brand { flex:1;min-width:0;font-size:1rem;gap:8px; }
  .site-header .global-search-button { order:5;flex-basis:100%;justify-content:center;margin:0; }
  .site-header .nav-toggle,.site-header .theme-toggle { flex-shrink:0;margin-left:0; }
  .site-header .nav-links { inset:calc(100% + 4px) 0 auto; }
}
@media(max-width:980px) {
  .article-toc>strong { display:none; }
  .toc-toggle { display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;padding:0; }
  .article-toc ol { display:none; }
  .article-toc.is-open ol { display:block;max-height:45vh;overflow:auto; }
}
