/* Final editorial typography layer: applies to the portal and portable views.
 * Body tracking is intentionally zero: the directive's legibility checklist
 * takes precedence over its conflicting -0.005em sample body declaration. */
:root {
  --font-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --font-mono:'JetBrains Mono',SFMono-Regular,Menlo,monospace;
  --text-main:#0F172A;--text-body:#1E293B;--text-muted:#475569;
  --text-subtle:#64748B;--border-subtle:#E2E8F0;
  --ink:var(--text-main);--ink-2:var(--text-body);--muted:var(--text-muted);
  --line:var(--border-subtle);--numeric:var(--font-sans);
}
[data-theme="dark"] {
  --text-main:#F1F5F9;--text-body:#CBD5E1;--text-muted:#B8C4D4;
  --text-subtle:#A6B4C7;--border-subtle:#334155;
  --ink:var(--text-main);--ink-2:var(--text-body);--muted:var(--text-muted);
  --line:var(--border-subtle);
}
body,button,input,select,textarea {font-family:var(--font-sans)}
body {color:var(--text-body);font-size:15px;line-height:1.65;font-weight:400;letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
p,li,td,dd,label,button,input,select,textarea {letter-spacing:0}
p {color:var(--text-body);font-size:15px;line-height:1.65;margin-bottom:1.25rem}
h1,h2,h3,h4,h5,h6 {color:var(--text-main);line-height:1.25;font-feature-settings:"cv02","cv03","cv04","cv11";font-synthesis:none}
h1 {font-size:2.75rem;font-weight:700;letter-spacing:-.025em}
h2 {font-size:1.85rem;font-weight:700;letter-spacing:-.015em}
h3 {font-size:1.25rem;font-weight:600;letter-spacing:0}
h4,h5,h6 {font-weight:600;letter-spacing:0}
strong,b {font-weight:600}
button,.button,.nav-cta,.signup button,.capture-inline button,.matcher-submit-btn,.banner-submit-btn {font-family:var(--font-sans);font-weight:600;letter-spacing:.01em}
input,select,textarea,.field-select,.field-input {font-family:var(--font-sans);font-size:.92rem;font-weight:400;color:var(--text-main);letter-spacing:0}
input,output,table,dd,.metric-list,.result-main,.calc-output strong,.netpay-main-number,.phase2-cash-results,.city-facts,.fx-value,.travel-stats dd,.matcher-surplus strong,.matcher-breakdown dd,.utility-result-total,[data-output],[data-match-output],.dest-stat-val,.ticker-rates,.calculator-result-num {font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";letter-spacing:0}
code,pre {font-family:var(--font-mono);letter-spacing:0}
.brand {font-weight:700;letter-spacing:-.01em}
.brand-mark {font-weight:600;letter-spacing:0}
.nav-links a,.global-search-button,.theme-toggle {font-weight:500;letter-spacing:0}
.nav-links .nav-cta {font-weight:600;letter-spacing:.01em}
.article-body,.article-body p,.article-body li,.trust-page p,.trust-page li {font-family:var(--font-sans);font-size:15px;line-height:1.65;color:var(--text-body);letter-spacing:0}
.article-body p {margin-bottom:1.25rem;max-width:70ch}
.article-body li {margin-bottom:.55rem}
.article-body h2 {font-size:1.85rem;line-height:1.25;font-weight:700;letter-spacing:-.015em;margin-top:2.6rem}
.article-body h3 {font-size:1.25rem;font-weight:600;line-height:1.25;letter-spacing:0}
.guide-hero h1,.tool-hero h1,.compare-hero h1,.corridor-hero h1,.utility-hero h1,.netpay-intro h1,.panel-hero h1 {font-size:clamp(2rem,3.8vw,2.75rem);font-weight:700;line-height:1.25;letter-spacing:-.025em}
.guide-dek,.guide-hero p,.utility-hero p {font-size:15px;line-height:1.65}
.guide-byline,.guide-byline span,.article-meta,.article-number,.guide-breadcrumb,.breadcrumbs {font-weight:500;letter-spacing:0;font-size:.8rem;color:var(--text-subtle)}
.guide-summary strong,.key-takeaways>strong,.article-toc>strong,.lead-resource-badge,.eyebrow,.fit-label,.scope-badge,.kicker,.guide-label span,.panel-badge,.phase2-axis-number,.phase2-plan-section h3,.phase4-article .provider-kicker,.example-label,.city-composite>span,.section-badge {font-family:var(--font-sans);font-weight:600;font-size:.72rem;letter-spacing:.04em;line-height:1.5}
.data-table,.comparison-table,.article-body table {font-size:.88rem;line-height:1.65;letter-spacing:0}
.data-table th,.comparison-table th,.article-body th {font-weight:600;letter-spacing:0}
.data-table td,.comparison-table td,.article-body td {font-weight:400;letter-spacing:0}
.data-table td strong,.comparison-table td strong {font-weight:600}
.table-note,.source-credit,.sources p,.sources li,.guide-byline,.sources li a {font-size:.8rem;line-height:1.6;letter-spacing:0}
.city-card.city-photo h3,.city-card.city-photo p,.city-card.city-photo li,.city-card-topline,.city-depth-hero h1 {text-shadow:none}
.city-card.city-photo p,.city-card.city-photo li {color:#F1F5F9}
.city-card h3,.article-card h3,.decision-card h3,.lead-story h3,.dest-country-title,.feature-title,.article-title,.travel-card-body h3 {font-weight:600;line-height:1.3;letter-spacing:-.01em}
.city-depth-hero h1 {font-size:clamp(3rem,8vw,6rem);font-weight:700;line-height:1.1;letter-spacing:-.025em;color:white}
.city-depth-heading h2 {font-weight:700;line-height:1.25;letter-spacing:-.015em}
.city-neighborhood-card button,.city-filter-buttons button,.map-city-buttons button,.field label,.range-label,.utility-fields label,.phase2-cost .field label,.phase2-cost-field>span,.phase2-dialog-body label {font-weight:600;letter-spacing:0}
.city-neighborhood-card dt,.city-card-topline,.city-metrics span {font-weight:500;font-size:.75rem;letter-spacing:.02em}
.travel-hero h1 {font-size:clamp(2.25rem,4.1vw,3.75rem);font-weight:700;line-height:1.2;letter-spacing:-.025em;color:white}
.travel-hero .scope-badge {font-size:.72rem;font-weight:600;letter-spacing:.04em;line-height:1.5}
.travel-hero .travel-hero-subhead {font-size:15px;line-height:1.65;color:#E2E8F0}
.travel-hero .button,.travel-hero .button-ghost {font-weight:600;letter-spacing:.01em}
.travel-card-body h3 {font-size:1.25rem}
.travel-card-cities,.dest-cities-sub,.feature-desc,.dest-stat-label {font-weight:400;color:var(--text-muted);font-size:.85rem;line-height:1.5;letter-spacing:0}
.travel-stats dt {font-size:.75rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--text-muted);line-height:1.5}
.travel-stats dd {font-size:.85rem;font-weight:600;line-height:1.5;color:var(--text-main);letter-spacing:0;min-height:3em}
.travel-card-pill,.travel-tax-tag,.dest-badge-top,.dest-badge-tax,.hero-badge-pill {font-family:var(--font-sans);font-size:.72rem;font-weight:600;line-height:1.5;letter-spacing:.04em;text-transform:uppercase}
.travel-card-footer {font-size:.85rem;font-weight:600;letter-spacing:.01em}
.travel-rules-note {font-size:.85rem;line-height:1.65;color:var(--text-muted)}
.travel-capabilities h3 {font-size:1rem;font-weight:600;line-height:1.3;letter-spacing:0}
.travel-capabilities p {font-size:.85rem;line-height:1.65;color:var(--text-muted)}
.travel-utility-bar {font-size:.75rem;color:#CBD5E1}
.travel-fx,.ticker-rates,.fx-value {font-family:var(--font-sans);font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums}
.travel-review {font-weight:400;color:#CBD5E1}
.fx-source {font-size:.7rem;letter-spacing:0;color:#CBD5E1}
.article-update-inner {min-height:48px;display:flex;align-items:center;gap:20px;padding-block:5px}
.article-update-label {flex-shrink:0;font-size:.75rem;font-weight:500;letter-spacing:0;color:#A6B4C7}
.article-update-links {flex:1;min-width:0}
.article-update-link {display:block;width:100%;font-size:.85rem;font-weight:500;line-height:1.5;color:#F1F5F9;text-decoration:none;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.article-update-link[hidden] {display:none}
.article-update-link:hover {text-decoration:underline;text-underline-offset:4px;color:white}
.article-update-link:focus-visible {outline:2px solid #6EE7B7;outline-offset:2px}
.matcher-tabs button {font-weight:600;font-size:.85rem;letter-spacing:0;line-height:1.5}
.matcher-form label {font-weight:500;font-size:.85rem;letter-spacing:0;line-height:1.5}
.matcher-form input,.matcher-form select {font-size:.92rem;font-weight:400;letter-spacing:0}
.matcher-form .button {font-size:.85rem;font-weight:600;letter-spacing:.01em}
.matcher-helper,.matcher-method {font-size:.85rem;line-height:1.65;font-weight:400;color:var(--text-muted)}
.matcher-breakdown dt {font-size:.8rem;font-weight:400;letter-spacing:0;color:var(--text-muted)}
.matcher-breakdown dd {font-size:1rem;font-weight:600;letter-spacing:0}
.matcher-surplus strong {font-family:var(--font-sans);font-weight:600;letter-spacing:0}
.matcher-surplus span {font-size:.8rem;line-height:1.5;color:var(--text-muted)}
.key-takeaways li {font-size:15px;line-height:1.65}
.article-toc a {font-size:.85rem;font-weight:400;line-height:1.6;letter-spacing:0}
.capture-note,.capture-status,.capture-status a,.signup-note,.footer-bottom {font-size:.8rem;font-weight:400;line-height:1.65;letter-spacing:0}
.result-main,.calc-output>strong,.netpay-main-number,.utility-result-total,.phase2-cash-results article>strong {font-weight:600;letter-spacing:0}
/* Preserve contrasting text on intentional dark/photo surfaces. */
.site-footer p,.site-footer .footer-bottom {color:var(--text-muted)}
[data-theme="dark"] .site-footer p,[data-theme="dark"] .site-footer .footer-bottom {color:var(--text-body)}
@media(max-width:1100px){.travel-review{font-size:.7rem}}
@media(max-width:980px){.matcher-tabs button{font-size:.78rem}.matcher-form .button{font-size:.85rem}}
@media(max-width:767px){
  .article-update-inner {gap:10px;min-height:58px;padding-block:5px}
  .article-update-label {display:none}
  .article-update-link {font-size:.8rem;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.5;max-height:3em}
  .article-update-link[hidden] {display:none}
  .travel-fx{font-size:.68rem;gap:8px;flex-wrap:wrap;justify-content:center}
  .travel-review{font-size:.68rem}.travel-hero .scope-badge{font-size:.68rem;letter-spacing:.025em}
  .travel-hero h1{font-size:clamp(2rem,7vw,3rem);line-height:1.2}
  .travel-hero .travel-hero-subhead{font-size:15px;line-height:1.65}
  .matcher-tabs button{font-size:.75rem;line-height:1.5;padding-block:15px}
  .matcher-helper,.matcher-method{font-size:.85rem;line-height:1.65}
  .matcher-result-head h2{font-size:1.2rem;line-height:1.3}
  .matcher-surplus strong{font-size:1.45rem}.travel-card-cities{font-size:.85rem;min-height:0}
  .travel-stats dt{font-size:.78rem}.travel-stats dd{font-size:.88rem;min-height:0}
}
@media(max-width:360px){
  .travel-fx{font-size:.65rem;gap:6px}.travel-review{font-size:.65rem}
  .matcher-tabs{gap:10px;padding-inline:12px}.matcher-tabs button{font-size:.7rem}
  .travel-hero .scope-badge{font-size:.65rem;max-width:100%;white-space:normal}
  html{scroll-padding-top:190px}
}
/* Evidence links: same treatment in portal guides and embedded reader views.
 * Emerald-hover #10B981 is too pale for paragraph text on white, so use
 * contrasting deep teal in light mode and mint on dark surfaces. */
:root {--editorial-link:#0D5C56;--editorial-link-hover:#083E3A}
[data-theme="dark"] {--editorial-link:#A7E5D3;--editorial-link-hover:#6EE7B7}
[data-theme="dark"] .sources a {color:var(--editorial-link)}
[data-theme="dark"] .sources a:hover {color:var(--editorial-link-hover)}
.article-lead a,.article-content p a,.article-content li a,
.article-body p a,.article-body li a,.corridor-body p a,.corridor-body li a {
  color:var(--editorial-link);text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1.5px;transition:color .15s ease;
}
.article-lead a:hover,.article-content p a:hover,.article-content li a:hover,
.article-body p a:hover,.article-body li a:hover,.corridor-body p a:hover,.corridor-body li a:hover {
  color:var(--editorial-link-hover);
}
.article-lead a:focus-visible,.article-content a:focus-visible,
.article-body p a:focus-visible,.article-body li a:focus-visible,.corridor-body a:focus-visible {
  outline:2px solid currentColor;outline-offset:3px;border-radius:2px;
}
@media(prefers-reduced-motion:reduce){
  .article-lead a,.article-content a,.article-body a,.corridor-body a{transition:none}
}
@media print{
  :root,[data-theme="dark"]{--text-main:#0F172A;--text-body:#1E293B;--text-muted:#475569;--text-subtle:#64748B}
  .article-body,.article-body p,.article-body li{font-size:10pt;line-height:1.65;color:#1E293B}
}
