/* Strike 1 — load new font families via @import so they reach all 6,521
   pages that already link this CSS, without touching their HTML. The OLD
   <link rel="preload"> tags in deploy/*.html still load DM Sans + Libre
   Baskerville for now (harmless — just unused bytes; will be cleaned up
   when pages are regenerated using the updated canonical-css.js). */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* Colors */
  --ink:#0C2E2B;
  --primary:#1A5C50;
  --primary-60:#267A6B;
  --primary-30:#D0E8E3;
  --primary-10:#EDF5F3;
  --accent:#C45D2C;
  --accent-hover:#9C4720;
  --accent-light:#FDF0EA;
  --accent-10:rgba(196,93,44,0.10);
  --accent-20:rgba(196,93,44,0.20);
  --move:#0F6B3A;
  --move-bg:#E7F5ED;
  --move-border:#B7E1C7;
  --delay:#9A6700;
  --delay-bg:#FEF6E0;
  --delay-border:#F5D982;
  --avoid:#B42318;
  --avoid-bg:#FEF0EF;
  --avoid-border:#F5B8B4;
  /* Semantic */
  --pass:#10B981;
  --pass-bg:#ECFDF5;
  --warning:#F59E0B;
  --warning-bg:#FFFBEB;
  --fail:#EF4444;
  --fail-bg:#FEF2F2;
  --grey-900:#1A1F2B;
  --grey-700:#3D4451;
  --grey-500:#6B7280;
  --grey-300:#C8CCD2;
  --grey-100:#F2F3F5;
  --surface:#FAFAF8;
  --paper:#FFFFFF;
  --paper-warm:#F5F1E8;
  --paper-deep:oklch(97% 0.008 80);
  --cream:#F5F1E8;

  /* Typography */
  --font-display:'Fraunces',Georgia,serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  --font-data:'JetBrains Mono',ui-monospace,monospace;

  /* Spacing */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;
  --sp-6:24px;--sp-8:32px;--sp-12:48px;--sp-16:64px;
  --sp-24:96px;--sp-32:128px;

  /* Layout */
  --max-width:1120px;
  --max-width-narrow:720px;
  --gutter:24px;
  --radius:8px;
  --radius-lg:12px;
  --radius-xl:16px;
  --radius-pill:999px;

  /* Shadows */
  --shadow-xs:0 1px 2px rgba(0,0,0,0.04);
  --shadow-sm:0 1px 4px rgba(0,0,0,0.06);
  --shadow-md:0 4px 12px rgba(0,0,0,0.06);
  --shadow-lg:0 8px 24px rgba(0,0,0,0.08);
  --shadow-xl:0 16px 48px rgba(0,0,0,0.1);

  /* Motion */
  --ease-out:cubic-bezier(0.4,0,0.2,1);
  --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  --ease:cubic-bezier(0.4,0,0.2,1);
  --duration-fast:150ms;
  --duration-normal:200ms;
  --duration-slow:300ms;
  --duration-reveal:500ms;
}
html{font-size:16px;-webkit-font-smoothing:antialiased;scroll-behavior:smooth}
body{font-family:var(--font-body);color:var(--grey-900);background:var(--surface);font-size:16px;font-weight:400;line-height:1.65;font-feature-settings:"ss01","ss02"}
/* D022 — Lead paragraph utility */
.lead,p.lead{font-size:18px;line-height:1.5;font-weight:400;max-width:680px;margin-left:auto;margin-right:auto;color:var(--grey-700)}
@media(max-width:640px){.lead,p.lead{font-size:17px}}
/* D031 — CTA microcopy utility (mono, low contrast, one-line) */
.cta-meta{display:block;margin-top:10px;font:500 12px/1.4 var(--font-data,'JetBrains Mono',monospace);color:var(--grey-500);letter-spacing:0.02em;text-align:center}
/* D052 — Sitewide consistent hover for cards + tier CTAs */
.tier__cta:not(.is-disabled),.card,.feature-card{transition:transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out)}
.card:hover,.feature-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(12,46,43,0.08);border-color:rgba(196,93,44,0.20)}
.site-footer__col a{transition:color .15s ease}
.site-footer__col a:hover{color:var(--accent) !important}
a{color:var(--primary);text-decoration:none;transition:color var(--duration-normal) var(--ease-out)}
a:hover{color:var(--primary-60)}
h1,h2,h3{font-family:var(--font-display);font-weight:500;color:var(--grey-900);line-height:1.08;letter-spacing:-0.022em;font-variation-settings:"opsz" 96}
h1{font-size:48px}
h2{font-size:28px;line-height:1.3}
h3{font-size:22px;line-height:1.3}
h4{font-family:var(--font-body);font-weight:600;font-size:18px;line-height:1.3;letter-spacing:-0.01em}
p{margin-bottom:1em;line-height:1.65}p:last-child{margin-bottom:0}
@media(max-width:768px){h1{font-size:32px}h2{font-size:24px}}
@media(max-width:480px){h1{font-size:28px;line-height:1.2}h2{font-size:20px;line-height:1.3}h3{font-size:18px}}

.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--gutter)}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:rgba(250,250,248,0.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,0.06);transition:transform var(--duration-slow) var(--ease-out)}
.site-header.nav-hidden{transform:translateY(-100%)}
.nav,.site-nav{display:flex;align-items:center;justify-content:space-between;height:64px;max-width:1200px;margin:0 auto;padding:0 var(--gutter)}
.nav__logo{display:flex;align-items:center;gap:0;font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--ink);letter-spacing:-0.01em}
.nav__logo .word-where{color:var(--ink)}
.nav__logo .word-to{background:var(--primary);color:var(--paper);padding:2px 6px;border-radius:4px;margin:0 1px;font-size:17px;letter-spacing:0.02em}
.nav__logo .word-emigrate{color:var(--ink)}
.nav__logo .io{font-family:var(--font-body);font-weight:500;color:var(--grey-500);font-size:16px;margin-left:1px}
.nav__links{display:flex;align-items:center;gap:18px;list-style:none}
.nav__links a{font:500 14px/1 var(--font-body);color:var(--grey-700);letter-spacing:0.01em;transition:color var(--duration-normal) var(--ease-out);min-height:44px;display:inline-flex;align-items:center}
.nav__links a:hover,.nav__links a.active{color:var(--ink)}
.nav__cta{display:inline-flex;align-items:center;padding:14px 22px;background:var(--accent);color:var(--paper) !important;border-radius:var(--radius);font:600 14px/1 var(--font-body) !important;transition:background var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out);min-height:52px}
.nav__cta:hover{background:var(--accent-hover);color:var(--paper) !important;transform:translateY(-1px);box-shadow:0 4px 16px rgba(196,93,44,0.25)}
.nav__toggle{display:none;background:none;border:none;cursor:pointer;padding:8px}
.nav__toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;transition:all var(--duration-normal) var(--ease-out)}
@media(max-width:768px){
  .nav__toggle{display:block}
  .nav__links{display:none;position:absolute;top:64px;left:0;right:0;background:var(--surface);flex-direction:column;padding:24px;gap:16px;border-bottom:1px solid rgba(0,0,0,0.06);box-shadow:var(--shadow-lg);z-index:999}
  .nav__links.open{display:flex}
  .nav__links a{min-height:48px}
}

/* CTA Buttons */
.cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 32px;min-height:52px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font:600 16px/1 var(--font-body);letter-spacing:0.01em;cursor:pointer;transition:background var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out);text-decoration:none}
.cta:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 16px rgba(196,93,44,0.25);color:#fff}
.cta:active{transform:translateY(0)}
.cta--secondary{background:var(--primary)}
.cta--secondary:hover{background:var(--primary-60);box-shadow:0 4px 16px rgba(26,92,80,0.2)}
.cta--ghost{background:transparent;color:var(--primary);border:2px solid var(--primary)}
.cta--ghost:hover{background:var(--primary-10);color:var(--primary);transform:translateY(-2px);box-shadow:none}
.cta--lg{padding:18px 36px;font-size:16px;border-radius:var(--radius-lg);min-height:56px}

/* Legacy btn classes mapped to cta system */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 32px;border:none;border-radius:var(--radius);font:600 16px/1 var(--font-body);letter-spacing:0.01em;cursor:pointer;transition:all var(--duration-normal) var(--ease-out);text-decoration:none;min-height:52px}
.btn--primary{background:var(--accent);color:#fff;border:2px solid transparent}
.btn--primary:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 4px 16px rgba(196,93,44,0.25);color:#fff}
.btn--outline{border:2px solid var(--primary);background:transparent;color:var(--primary)}
.btn--outline:hover{background:var(--primary-10);transform:translateY(-2px)}
.btn--large{padding:18px 36px;font-size:16px;border-radius:var(--radius-lg);min-height:56px}
.btn:active,.option:active,.chip:active{transform:scale(0.97);transition:transform 0.1s}

/* Sections */
.section{padding:var(--sp-24) 0}
.section--mist{background:var(--primary-10)}
.section--dark{background:var(--ink);color:#fff}
.section--dark h2{color:#fff}
.section__header{text-align:center;max-width:640px;margin:0 auto var(--sp-16)}
.section__header p{margin-top:var(--sp-4);color:var(--grey-700);font-size:16px;line-height:1.65}

/* Grid */
.grid{display:grid;gap:var(--sp-6)}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:768px){.grid--2,.grid--3{grid-template-columns:1fr}}

/* Cards */
.card{background:var(--paper);border:1px solid rgba(0,0,0,0.06);border-radius:var(--radius-lg);padding:var(--sp-8);transition:box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}
@media(max-width:480px){.card{padding:var(--sp-4)}}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card__icon{width:48px;height:48px;background:var(--primary-10);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-4);color:var(--primary)}
.card__title{font:700 18px/1.3 var(--font-display);margin-bottom:var(--sp-2);color:var(--grey-900)}
.card__text{font-size:15px;color:var(--grey-700);line-height:1.65}

/* Verdict Badges */
.verdict{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;font:700 13px/1 var(--font-body);letter-spacing:0.04em;text-transform:uppercase}
.verdict--move{background:var(--move-bg);color:var(--move);border:1px solid var(--move-border)}
.verdict--delay{background:var(--delay-bg);color:var(--delay);border:1px solid var(--delay-border)}
.verdict--avoid{background:var(--avoid-bg);color:var(--avoid);border:1px solid var(--avoid-border)}

/* Trust badges */
.trust-badges{display:flex;align-items:center;justify-content:center;gap:16px;margin:16px 0 8px;flex-wrap:wrap}
.trust-badges__item{display:flex;align-items:center;gap:6px;font:500 12px/1 var(--font-body);color:rgba(255,255,255,0.85)}
.trust-badges__item svg{width:16px;height:16px;color:var(--primary-30);flex-shrink:0}

/* Hero */
.hero{min-height:calc(100vh - 64px);display:flex;align-items:center;padding:var(--sp-24) 0 var(--sp-16);text-align:center;position:relative;overflow:hidden;background:linear-gradient(160deg,var(--ink) 0%,#0F3B36 40%,var(--primary) 100%)}
.hero::before{content:'';position:absolute;top:-60px;left:50%;transform:translateX(-50%);width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(26,92,80,0.2) 0%,rgba(26,92,80,0.08) 40%,transparent 70%);pointer-events:none;animation:heroPulse 6s ease-in-out infinite}
@media(max-width:640px){.hero::before{display:none}}
.hero::after{content:'';position:absolute;top:20px;left:50%;transform:translateX(-50%);width:500px;height:500px;border-radius:50%;border:1px solid rgba(208,232,227,0.1);pointer-events:none;animation:heroRotate 30s linear infinite}
@keyframes heroPulse{0%,100%{opacity:0.6;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.08)}}
@keyframes heroRotate{from{transform:translateX(-50%) rotate(0deg)}to{transform:translateX(-50%) rotate(360deg)}}
.hero__globe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:520px;height:520px;opacity:0.15;pointer-events:none;z-index:0}
.hero .container{position:relative;z-index:1}
.hero h1{max-width:740px;margin:0 auto var(--sp-6);color:#fff}
.hero__subtitle{max-width:680px;margin:0 auto var(--sp-8);font-size:18px;line-height:1.7;color:rgba(255,255,255,0.75)}
.hero__subtitle strong{color:#fff;font-weight:600}
.hero__ctas{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:var(--sp-6)}
@media(max-width:640px){.hero::after{display:none}.hero__globe{width:320px;height:320px}.hero{min-height:auto;padding:var(--sp-16) 0 var(--sp-12)}}

/* Verdict cards in hero */
.verdict-cards{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;max-width:1000px;margin:var(--sp-8) auto 0}
.verdict-card{flex:1;min-width:280px;max-width:320px;background:var(--paper);border:1px solid rgba(0,0,0,0.08);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--shadow-lg);text-align:left;transition:transform var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}
.verdict-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-xl)}
.verdict-card:nth-child(1){animation:fadeUp var(--duration-reveal) var(--ease-out) both}
.verdict-card:nth-child(2){animation:fadeUp var(--duration-reveal) var(--ease-out) 80ms both}
.verdict-card:nth-child(3){animation:fadeUp var(--duration-reveal) var(--ease-out) 160ms both}
.verdict-card__label{font:500 11px/1 var(--font-body);color:var(--grey-500);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:10px}
.verdict-card__head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.verdict-card__country{font:700 20px/1.2 var(--font-display);color:var(--grey-900)}
.verdict-card__meta{font:400 13px/1 var(--font-body);color:var(--grey-500);margin-bottom:12px}
.verdict-card__detail{display:flex;align-items:center;gap:8px;font:400 13px/1.4 var(--font-body);color:var(--grey-900);padding:3px 0}
.verdict-card__detail--warn{color:var(--delay)}
.verdict-card__detail--danger{color:var(--avoid)}

/* Stats bar */
.stats-bar{padding:var(--sp-6) 0;background:var(--ink);border-bottom:1px solid rgba(255,255,255,0.06)}
.stats-bar__inner{display:flex;align-items:center;justify-content:center;gap:var(--sp-8);flex-wrap:wrap}
.stat{text-align:center}
.stat__number{font:700 28px/1 var(--font-data);color:var(--primary-30);letter-spacing:-0.02em}
.stat__label{font:500 12px/1.3 var(--font-body);color:rgba(255,255,255,0.75);margin-top:6px;text-transform:uppercase;letter-spacing:0.04em}
.stat__divider{width:1px;height:40px;background:rgba(255,255,255,0.1)}

/* How it works */
.step-number{font:700 48px/1 var(--font-data);color:var(--primary-30);letter-spacing:-0.02em;margin-bottom:var(--sp-4)}
.steps-connector{position:relative}
.steps-connector::before{content:'';position:absolute;top:40px;left:50%;transform:translateX(-50%);width:calc(100% - 200px);height:2px;background:linear-gradient(90deg,var(--primary-30),var(--primary),var(--primary-30));z-index:0;opacity:0.4}
@media(max-width:768px){.steps-connector::before{display:none}}

/* Checklist */
.checklist{list-style:none;padding:0}
.checklist li{position:relative;padding:10px 0 10px 32px;font:400 15px/1.65 var(--font-body);color:var(--grey-900);border-bottom:1px solid rgba(0,0,0,0.04)}
.checklist li::before{content:'';position:absolute;left:0;top:14px;width:20px;height:20px;background:var(--primary-10);border-radius:50%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%231A5C50'%3E%3Cpath d='M8.5 13.3 5.2 10l1.1-1.1 2.2 2.2 4.8-4.8 1.1 1.1z'/%3E%3C/svg%3E")}
.checklist li:last-child{border-bottom:none}
.checklist li em{font-style:normal;color:var(--grey-500);font-size:13px}

/* Trust cards */
.trust-card{background:var(--paper);border:1px solid rgba(0,0,0,0.06);border-radius:var(--radius-lg);padding:var(--sp-8);transition:box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}
.trust-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.trust-card__title{font:700 20px/1.3 var(--font-display);color:var(--grey-900);margin-bottom:var(--sp-2)}
.trust-card__text{font:400 15px/1.65 var(--font-body);color:var(--grey-700)}

/* Pricing */
.pricing-card{padding:var(--sp-6);background:var(--paper);border-radius:var(--radius-lg);border:1px solid rgba(0,0,0,0.08);text-align:center;transition:box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}
.pricing-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.pricing-card--featured{border:2px solid var(--primary);background:var(--primary-10);position:relative}
.pricing-card--featured::before{content:'Recommended';position:absolute;top:-12px;left:50%;transform:translateX(-50%);padding:4px 14px;background:var(--primary);color:#fff;border-radius:var(--radius-pill);font:600 11px/1.4 var(--font-body);letter-spacing:0.02em;white-space:nowrap}
.pricing-card__tier{font:600 12px/1 var(--font-body);text-transform:uppercase;letter-spacing:0.06em;color:var(--grey-500);margin:0 0 var(--sp-2)}
.pricing-card__price{font:700 28px/1 var(--font-data);color:var(--grey-900);margin:0 0 var(--sp-4)}
.pricing-card__list{list-style:none;text-align:left;font:400 14px/1.6 var(--font-body);color:var(--grey-700);margin:0 0 20px;padding:0}
.pricing-card__list li{padding:6px 0;border-bottom:1px solid rgba(0,0,0,0.04)}
.pricing-card__list li:last-child{border-bottom:none}
.pricing-card--featured .pricing-card__tier{color:var(--primary)}
.pricing-card--featured .pricing-card__list li{border-color:rgba(26,92,80,0.1)}

/* FAQ */
.faq-item{border-bottom:1px solid rgba(0,0,0,0.06);padding:var(--sp-6) 0}
.faq-item:last-child{border-bottom:none}
.faq-question{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;text-align:left;font:700 16px/1.4 var(--font-display);color:var(--grey-900);padding:0;gap:var(--sp-4);min-height:48px}
.faq-question svg{flex-shrink:0;width:20px;height:20px;color:var(--grey-500);transition:transform var(--duration-normal) var(--ease-out)}
.faq-item.open .faq-question svg{transform:rotate(180deg)}
.faq-answer{max-height:0;overflow:hidden;transition:max-height 0.4s ease,padding 0.3s ease}
.faq-item.open .faq-answer{max-height:600px;padding-top:var(--sp-4)}
.faq-answer p{font-size:15px;line-height:1.65;color:var(--grey-700)}

/* Footer */
.nav__search{background:none;border:none;font-size:18px;cursor:pointer;padding:4px 8px;color:var(--ink);opacity:0.7}
.nav__search:hover{opacity:1}
.site-footer{background:var(--ink);color:rgba(255,255,255,0.78);padding:var(--sp-16) 0 var(--sp-8)}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:40px;margin-bottom:var(--sp-16)}
@media(max-width:768px){.footer__grid{grid-template-columns:1fr 1fr;gap:var(--sp-6)}}
@media(max-width:480px){.footer__grid{grid-template-columns:1fr}}
.footer__brand{font-family:var(--font-display);font-weight:700;font-size:18px;color:#fff;margin-bottom:var(--sp-4)}
.footer__desc{font-size:14px;line-height:1.65;max-width:300px}
.footer__heading{font:600 13px/1 var(--font-body);color:#fff;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:var(--sp-4)}
.footer__links{list-style:none}
.footer__links li{margin-bottom:var(--sp-2)}
.footer__links a{font-size:14px;color:rgba(255,255,255,0.85);transition:color var(--duration-normal) var(--ease-out)}
.footer__links a:hover{color:#fff}
.footer__bottom{border-top:1px solid rgba(255,255,255,0.1);padding-top:var(--sp-8);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-4)}
.footer__copy,.footer__legal{font-size:13px}

/* Animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.reveal{animation:fadeUp var(--duration-reveal) var(--ease-out) both}
.reveal:nth-child(2){animation-delay:80ms}
.reveal:nth-child(3){animation-delay:160ms}
.reveal:nth-child(4){animation-delay:240ms}
.animate{animation:fadeUp 0.6s var(--ease-out) forwards}
.animate:nth-child(2){animation-delay:0.1s}
.animate:nth-child(3){animation-delay:0.2s}
.animate:nth-child(4){animation-delay:0.3s}
.text-center{text-align:center}

:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.skip-link{position:absolute;top:-40px;left:0;background:var(--primary);color:#fff;padding:8px 16px;z-index:1000;font:600 14px/1 var(--font-body);border-radius:0 0 var(--radius) 0;transition:top 0.2s}
.skip-link:focus{top:0}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}
.nav__mode{display:flex;background:var(--grey-100);border-radius:20px;padding:2px;gap:0;margin-left:16px}
.nav__mode-opt{display:inline-flex;align-items:center;padding:8px 14px;min-height:44px;border-radius:18px;font:500 12px/1 var(--font-body);color:var(--grey-700);text-decoration:none;transition:all var(--duration-normal) var(--ease-out)}
.nav__mode-opt--active{background:var(--primary);color:#fff}
.nav__mode-opt:hover:not(.nav__mode-opt--active){color:var(--ink)}
@media(max-width:768px){.nav__mode{margin-left:auto;margin-right:12px}}
.ai-summary{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Problem section */
.problem-section{background:var(--ink);padding:var(--sp-12) 0}
.problem-card{padding:var(--sp-4) var(--sp-6);text-align:center}
.problem-card__title{font:600 15px/1.3 var(--font-body);color:var(--accent-light);margin-bottom:var(--sp-1)}
.problem-card__text{font:400 13px/1.5 var(--font-body);color:rgba(255,255,255,0.78)}

/* Popular destinations */
.dest-card{display:block;padding:20px 24px;background:var(--paper);border:1px solid rgba(0,0,0,0.06);border-radius:var(--radius-lg);text-decoration:none;transition:box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}
.dest-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.dest-card__flag{font-size:24px;margin-right:8px}
.dest-card__name{font:600 15px/1.3 var(--font-body);color:var(--grey-900)}
.dest-card__sub{display:block;margin-top:6px;font:400 13px/1.4 var(--font-body);color:var(--grey-500)}

/* Newsletter */
.nl-section{padding:var(--sp-12) 0;background:var(--surface)}

/* === GLOBAL BODY === */
body{font-family:var(--font-body) !important;color:var(--grey-900) !important;background:var(--surface) !important;line-height:1.65 !important}
h1,h2,h3{font-family:var(--font-display) !important;color:var(--grey-900)}
h1{font-size:36px !important;line-height:1.2 !important;letter-spacing:-0.02em !important}
h2{font-size:28px !important;line-height:1.3 !important;letter-spacing:-0.01em !important}
h3{font-size:22px !important;line-height:1.3 !important}
p{line-height:1.65 !important}
.nav__links .nav__cta,.nav__links .nav__cta:hover,a.nav__cta,a.nav__cta:hover{color:#fff !important;background:var(--accent) !important}
@media(max-width:768px){h1{font-size:28px !important}h2{font-size:22px !important}}
@media(max-width:480px){h1{font-size:24px !important;line-height:1.2 !important}h2{font-size:19px !important;line-height:1.3 !important}}

/* === ARTICLE/CONTENT === */
.article-cta{background:linear-gradient(135deg,var(--ink),var(--primary)) !important}
.article-cta h3{color:#fff !important}
.article-cta p{color:rgba(255,255,255,0.85) !important}
.article-cta .btn{background:var(--accent) !important;color:#fff !important}
.article-cta .btn:hover{background:var(--accent-hover) !important;color:#fff !important}
.authority-strip{background:var(--primary-10) !important}

/* Article headers (country pages, blog) */
.article-header{padding:48px 0 40px !important}

/* General page backgrounds */
.section--mist{background:var(--primary-10) !important}

/* Cards everywhere */
.card{background:var(--paper) !important;border:1px solid rgba(0,0,0,0.06) !important;border-radius:var(--radius-lg) !important}

/* Breadcrumbs */
.breadcrumb{font-family:var(--font-body) !important;color:var(--grey-500) !important}
.breadcrumb a{color:var(--grey-500) !important}
.breadcrumb a:hover{color:var(--primary) !important}

/* Blog hero */

/* Generic page headers without hero class */

/* Key takeaway on dark backgrounds */

/* Article header (emigrate-to, blog posts) */


/* === BUTTON TEXT FIX — force white text on ALL colored buttons === */
.btn--primary,.btn--accent,.cta,.cta--secondary,
.guide-ctas .btn,.guide-ctas a,
a[style*="background:var(--primary)"],
a[style*="background:#1B6B5A"],
a[style*="background:#1A5C50"],
button[style*="background:var(--primary)"],
button[style*="background:#1B6B5A"],
button[style*="background:#1A5C50"] {
  color: #fff !important;
}
.btn--primary:hover,.cta:hover,.cta--secondary:hover {
  color: #fff !important;
}

/* Help button fix */
#helpBtn,button[id="helpBtn"] {
  background: var(--accent, #B5521F) !important;
  color: #fff !important;
}

/* === SEARCH BOX — consistent size across all pages === */
.nav__links input[type="search"],
.nav__links input[type="text"],
.nav__links li input {
  width: 140px !important;
  padding: 8px 12px !important;
  border: 1px solid rgba(0,0,0,0.12) !important;
  border-radius: 8px !important;
  font: 400 13px/1 'DM Sans', system-ui, sans-serif !important;
  background: #F2F3F5 !important;
  /* outline:none removed — was blocking the global :focus-visible rule
     (line ~266) so keyboard users had no focus indicator on nav search.
     The browser default ring only shows on keyboard focus anyway, and
     :focus-visible overrides it with our brand green outline. */
  min-height: 40px !important;
  box-sizing: border-box !important;
  color: #1A1F2B !important;
  transition: width 0.3s, border-color 0.3s !important;
}
.nav__links input[type="search"]:focus,
.nav__links input[type="text"]:focus,
.nav__links li input:focus {
  width: 200px !important;
  border-color: #1A5C50 !important;
}
.nav__links input::placeholder {
  color: #6B7280 !important;
}

/* Links — but NOT buttons */
a:not(.nav__cta):not(.btn):not(.btn--primary):not(.cta):not(.site-header__cta):not(.site-footer__cta):not(.tier__cta):not(.fvp__cta):not(.bundle-hint__a):not([style*="background"]) {
  color: var(--primary);
}
a:not(.nav__cta):not(.btn):not(.btn--primary):not(.cta):not(.site-header__cta):not(.site-footer__cta):not(.tier__cta):not(.fvp__cta):not(.bundle-hint__a):not([style*="background"]):hover {
  color: var(--primary-60);
}
.skip-link{position:absolute;top:-40px;left:0;padding:8px 16px;background:#1A5C50;color:#fff;z-index:1000;font:600 14px/1 'DM Sans',sans-serif;text-decoration:none;border-radius:0 0 8px 0}.skip-link:focus{top:0}
.faq-item summary{cursor:pointer}

/* iPhone-with-notch safe area for sticky bottom CTAs.
 * The .mobile-sticky-cta sits at bottom:0 and was missing safe-area-inset
 * padding — content was clipped behind the home indicator on iPhone X+.
 * Use max() so devices without an inset (Android, desktop emulators) still
 * get the original 12px padding. */
.mobile-sticky-cta{padding-bottom:max(12px,env(safe-area-inset-bottom,12px))}


/* === ABOUT — Story section (B-054) === */
.about-story{padding:var(--sp-16) 0 var(--sp-24);background:var(--paper)}
.about-story__inner{max-width:var(--max-width-narrow);margin:0 auto;padding:0 var(--gutter)}
.about-story__lede{font:400 22px/1.55 var(--font-display);color:var(--ink);margin:0 0 var(--sp-12);letter-spacing:-0.01em}
.about-story__dropcap{float:left;font:700 64px/0.9 var(--font-display);color:var(--primary);margin:6px 12px 0 0}
.about-story__h{font:700 22px/1.3 var(--font-display);color:var(--grey-900);margin:var(--sp-12) 0 var(--sp-3);letter-spacing:-0.01em}
.about-story p{font:400 17px/1.75 var(--font-body);color:var(--grey-700);margin:0 0 var(--sp-3)}
.about-story__quote{margin:var(--sp-8) 0;padding:var(--sp-4) 0 var(--sp-4) var(--sp-6);border-left:3px solid var(--primary);position:relative}
.about-story__quote p{font:400 24px/1.4 var(--font-display);color:var(--ink);font-style:italic;margin:0}
.about-story__quote::before{content:'"';position:absolute;top:-12px;left:8px;font:700 56px/1 var(--font-display);color:var(--primary-30);pointer-events:none}

/* Boards — credential strip */
.about-boards{list-style:none;padding:0;margin:var(--sp-6) 0 var(--sp-8);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4)}
.about-boards__card{background:var(--surface);border:1px solid rgba(0,0,0,0.06);border-radius:var(--radius-lg);padding:var(--sp-6);transition:box-shadow var(--duration-normal) var(--ease-out),transform var(--duration-normal) var(--ease-out)}
.about-boards__card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.about-boards__org{font:700 18px/1.25 var(--font-display);color:var(--ink);margin:0 0 var(--sp-1);letter-spacing:-0.01em}
.about-boards__role{font:400 14px/1.5 var(--font-body);color:var(--grey-700);margin:0 0 var(--sp-3)}
.about-boards__tag{font:500 11px/1 var(--font-data);color:var(--primary);text-transform:uppercase;letter-spacing:0.08em;margin:0}
@media(max-width:768px){
  .about-boards{grid-template-columns:1fr;gap:var(--sp-3)}
  .about-story__lede{font-size:19px}
  .about-story__quote p{font-size:20px}
  .about-story__dropcap{font-size:52px}
}
@media(max-width:480px){
  .about-story{padding:var(--sp-12) 0 var(--sp-16)}
  .about-story__lede{font-size:18px}
}

/* === ABOUT — Section rhythm system (B-054) === */
.about-section{padding:var(--sp-24) 0}
.about-section--tight{padding:var(--sp-16) 0}
.about-section--mist{background:var(--primary-10)}
.about-section--paper{background:var(--paper)}
.about-section--ink{background:var(--ink);color:#fff}
.about-section--ink h2,.about-section--ink .about-section__title{color:#fff}
.about-section--ink p,.about-section--ink .about-section__sub{color:rgba(255,255,255,0.85)}
.about-section--narrow .container{max-width:var(--max-width-narrow)}

.about-section__head{text-align:center;max-width:640px;margin:0 auto var(--sp-12)}
.about-section__title{font:700 32px/1.2 var(--font-display);color:var(--grey-900);letter-spacing:-0.02em;margin:0 0 var(--sp-3)}
.about-section__sub{font:400 17px/1.65 var(--font-body);color:var(--grey-700);margin:0}

@media(max-width:768px){
  .about-section{padding:var(--sp-16) 0}
  .about-section--tight{padding:var(--sp-12) 0}
  .about-section__title{font-size:26px}
  .about-section__sub{font-size:16px}
}
@media(max-width:480px){
  .about-section{padding:var(--sp-12) 0}
  .about-section--tight{padding:var(--sp-8) 0}
  .about-section__title{font-size:22px}
}

/* About hero — quiet upgrade (paired with story fix) */
.about-hero{padding:var(--sp-24) 0 var(--sp-16);text-align:center;background:var(--surface)}
.about-hero h1{font:700 48px/1.15 var(--font-display);color:var(--ink);letter-spacing:-0.02em;max-width:680px;margin:0 auto var(--sp-3)}
.about-hero__sub{font:400 18px/1.5 var(--font-body);color:var(--grey-500);margin:0 auto var(--sp-4);max-width:520px}
.about-hero__credential{display:inline-flex;align-items:center;gap:8px;font:500 13px/1 var(--font-data);color:var(--primary);text-transform:uppercase;letter-spacing:0.08em;padding:8px 16px;background:var(--primary-10);border-radius:var(--radius-pill)}
@media(max-width:768px){
  .about-hero{padding:var(--sp-16) 0 var(--sp-12)}
  .about-hero h1{font-size:34px}
  .about-hero__sub{font-size:16px}
}
@media(max-width:480px){.about-hero h1{font-size:28px}}

/* === ABOUT — Compare table (B-054) === */
/* NOTE: --ink-10 not in canonical tokens; using literal rgba(12,46,43,0.1) */
.about-compare__scroll{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -8px;padding:0 8px}
.about-compare{width:100%;min-width:720px;border-collapse:collapse;font:400 14px/1.5 var(--font-body);color:var(--grey-700)}
.about-compare thead th{text-align:left;font:600 12px/1.3 var(--font-data);color:var(--grey-700);text-transform:uppercase;letter-spacing:0.06em;padding:var(--sp-3) var(--sp-4);background:var(--paper);border-bottom:2px solid rgba(12,46,43,0.1)}
.about-compare__us{color:var(--primary)!important;background:var(--primary-10)!important}
.about-compare tbody th{text-align:left;font:600 14px/1.4 var(--font-body);color:var(--ink);padding:var(--sp-4);background:var(--surface);border-bottom:1px solid rgba(12,46,43,0.1);white-space:nowrap;vertical-align:top}
.about-compare__cell{padding:var(--sp-4);vertical-align:top;border-bottom:1px solid rgba(12,46,43,0.1);border-left:3px solid transparent}
.about-compare__cell--move{border-left-color:var(--move);background:rgba(15,122,93,0.04)}
.about-compare__cell--delay{border-left-color:var(--delay);background:rgba(212,165,40,0.04)}
.about-compare__cell--avoid{border-left-color:var(--avoid);background:rgba(193,90,75,0.04)}
.about-compare__mark{display:inline-block;margin-right:6px;font-size:12px;line-height:1}
.about-compare__cell--move .about-compare__mark{color:var(--move)}
.about-compare__cell--delay .about-compare__mark{color:var(--delay)}
.about-compare__cell--avoid .about-compare__mark{color:var(--avoid)}
.about-compare__num{font:600 15px/1 var(--font-data);color:var(--ink);letter-spacing:-0.01em;display:inline-block;margin-right:4px}
.about-compare__cell--move .about-compare__num{color:var(--move)}
.about-compare__cell--avoid .about-compare__num{color:var(--avoid)}
.about-compare__hint{display:none;position:absolute;right:12px;top:8px;font:500 11px/1 var(--font-data);color:var(--grey-500);text-transform:uppercase;letter-spacing:0.08em;background:var(--surface);padding:6px 10px;border-radius:var(--radius-pill);box-shadow:var(--shadow-sm);pointer-events:none}
@media(max-width:768px){
  .about-compare__scroll::after{content:"";position:absolute;top:0;right:0;bottom:0;width:32px;background:linear-gradient(to right,transparent,var(--surface));pointer-events:none}
  .about-compare__hint{display:inline-block}
}

/* === ABOUT — Color drift cleanup (B-054) === */
.linkedin-link{display:inline-flex;align-items:center;gap:8px;color:#0A66C2;text-decoration:none;font:500 14px/1 var(--font-body);transition:opacity var(--duration-fast) var(--ease-out)}
.linkedin-link:hover{opacity:0.75}
.linkedin-link svg{width:18px;height:18px;flex-shrink:0}

.text-link{color:var(--primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color var(--duration-fast) var(--ease-out)}
.text-link:hover{color:var(--ink)}

/* === ABOUT — Hero signature row (B-054) === */
.about-hero__sig{margin:var(--sp-6) 0 0;font:400 14px/1 var(--font-body)}
.about-hero__credential svg{width:14px;height:14px;flex-shrink:0}
@media(max-width:480px){
  .about-hero__credential{font-size:11px;padding:6px 12px}
  .about-hero__sig{margin-top:var(--sp-4)}
}

/* === ABOUT — Sweep cleanup (B-054 P2/P3) === */
/* NOTE: --radius-md/--radius-sm not in canonical tokens; mapped to --radius and literal 4px */

/* B6 — body line-height normalization */
.about-section p,.about-story p,.about-hero p{line-height:1.65}
.about-story p,.about-section--narrow p{line-height:1.7}

/* C8 — legacy alias bridge (REMOVE after migration of 5,070 sitewide uses) */
:root{--primary-light:var(--primary-10)}

/* D3 — grid gap normalization */
.values__grid,.reach__grid{gap:var(--sp-6)}
@media(max-width:768px){.values__grid,.reach__grid{gap:var(--sp-4)}}

/* D4 — container variants (base .container already in canonical) */
.container--narrow{max-width:720px}
.container--reading{max-width:640px}

/* E4 — newsletter consent */
.newsletter__consent{font:400 12px/1.5 var(--font-body);color:var(--grey-500);margin:var(--sp-2) 0 0}

/* E5 — citation block */
.about-cite{background:var(--paper);border-left:3px solid var(--primary);padding:var(--sp-6);margin:var(--sp-12) auto;max-width:var(--max-width-narrow);border-radius:0 var(--radius) var(--radius) 0}
.about-cite__label{font:600 11px/1 var(--font-data);color:var(--primary);text-transform:uppercase;letter-spacing:0.1em;margin:0 0 var(--sp-3)}
.about-cite__code{font:400 13px/1.6 var(--font-data);color:var(--ink);background:var(--surface);padding:var(--sp-4);border-radius:4px;overflow-x:auto;white-space:pre-wrap;margin:0 0 var(--sp-3)}
.about-cite__copy{font:500 12px/1 var(--font-data);color:var(--primary);background:transparent;border:1px solid var(--primary);padding:8px 14px;border-radius:var(--radius-pill);cursor:pointer;text-transform:uppercase;letter-spacing:0.06em;transition:background var(--duration-fast) var(--ease-out)}
.about-cite__copy:hover{background:var(--primary-10)}

/* F3 — sr-only utility (canonical has no equivalent) */
.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}

/* F8 — focus visibility (augments existing :focus-visible rules) */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}
.btn:focus-visible{outline-offset:3px}

/* G4 — hero subtitle balance on small screens */
@media(max-width:480px){.about-hero__sub{max-width:300px;text-wrap:balance}}

/* G5 — denser tap targets on touch devices */
@media(hover:none){
  .about-story a,.about-section a:not(.btn):not(.linkedin-link):not(.text-link){padding:2px 0;display:inline-block}
}

/* G6 — iOS auto-zoom prevention */
.newsletter__form input[type="email"]{font-size:16px}

/* I1 — icon utility (anticipates future <use href> sprite refactor) */
.icon{width:1em;height:1em;display:inline-block;vertical-align:-0.125em;fill:currentColor}


/* === Strike 1 additions: editorial kicker + warm surfaces === */
.kick{
  font-family:var(--font-data);
  font-size:11px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--grey-500);
  font-weight:500;
}
.kick--primary{color:var(--primary)}
.kick--rust{color:var(--accent)}
.kick--rust::before{content:"● ";color:var(--accent)}

.surface--warm{background:var(--paper-warm)}
.surface--deep{background:var(--paper-deep)}


/* === Strike 2: site header === */
/* Full-bleed escape: some pages (legacy /blog/, /countries/) constrain
   body to 720px. Header + footer must break out to full viewport width
   regardless of parent constraint, otherwise the dark bar looks visually
   compressed and inconsistent across pages. */
.site-header,.site-footer{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw;box-sizing:border-box}
.site-header{background:var(--ink);color:#fff;position:sticky;top:0;z-index:100}
.site-header__top{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:10px 24px;font-family:var(--font-data);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.6)}
.site-header__live::before{content:"● ";color:#5BD394;animation:siteHeaderPulse 2s infinite}
@keyframes siteHeaderPulse{0%,100%{opacity:1}50%{opacity:0.4}}
.site-header__util{display:flex;gap:16px}
.site-header__util a{color:rgba(255,255,255,0.7);text-decoration:none}
.site-header__util a:hover{color:#fff}
.site-header__main{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;gap:32px;padding:14px 24px}
.site-header__brand,
.site-header__brand .brand-w,
.site-header__brand .brand-em{color:#fff}
.site-header__brand{display:flex;align-items:baseline;gap:3px;text-decoration:none;font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:-0.025em;font-variation-settings:"opsz" 144}
.site-header__brand .brand-to{font-style:italic;color:#FFB37A;font-weight:500;margin:0 2px}
.site-header__nav{display:flex;gap:24px;margin-left:24px;flex-wrap:nowrap;align-items:center}
/* Partners gets a subtle accent so it's visually distinct from primary nav links */
.site-header__nav a[data-nav="partners"]{color:#FFB37A !important;font-weight:600}
.site-header__nav a[data-nav="partners"]:hover{color:#FFC8A0 !important}
/* !important required: link override block at line ~400 has 6×:not() specificity
   that beats .site-header__nav a otherwise. Same defensive pattern as footer CTA. */
.site-header__nav a{font:500 14px/1 var(--font-body);color:rgba(255,255,255,0.85) !important;text-decoration:none}
.site-header__nav a:hover{color:#fff !important}
.site-header__nav a.is-active{color:#fff !important;font-weight:600}
.site-header__util a,.site-header__lang{color:rgba(255,255,255,0.7) !important}
.site-header__util a:hover{color:#fff !important}
.site-header__seg-opt{color:rgba(255,255,255,0.85) !important}
.site-header__seg-opt.is-active{color:var(--ink) !important}
.site-header__right{display:flex;align-items:center;gap:14px;margin-left:auto}
.site-header__seg{display:inline-flex;background:rgba(255,255,255,0.08);border-radius:6px;padding:2px}
.site-header__seg-opt{padding:5px 12px;font:500 12px/1 var(--font-body);color:rgba(255,255,255,0.85);text-decoration:none;border-radius:4px}
.site-header__seg-opt.is-active{background:#fff;color:var(--ink);font-weight:600}
.site-header__cta{display:inline-flex;align-items:center;padding:16px 24px;background:var(--accent);color:#fff;border-radius:8px;font:600 14px/1 var(--font-body);text-decoration:none;transition:background var(--duration-normal) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out);min-height:52px}
.site-header__cta:hover{background:var(--accent-hover);color:#fff}

/* Burger button — kill switch (was leaving an empty white square at certain
   viewport widths even with display:none). The visual artifact was reported
   2026-05-06; removing the burger entirely resolves it. Mobile UX restored
   to pre-existing "nav hidden on ≤900px" state — to be replaced with a
   non-burger pattern in a future iteration. */
.site-header__burger{display:none !important}

@media(max-width:900px){
  .site-header__nav{display:none}
  .site-header__main{gap:16px;padding:12px 20px}
  .site-header__seg{display:none}
}


/* === Strike 2: site footer === */
.site-footer{background:var(--paper-deep);color:var(--ink);padding:0;margin-top:0}
.site-footer__hero{max-width:var(--max-width);margin:0 auto;padding:48px 24px 32px;border-bottom:1px solid rgba(0,0,0,0.08);display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.site-footer__h{font-family:var(--font-display);font-weight:500;font-size:36px;line-height:1.05;letter-spacing:-0.022em;font-variation-settings:"opsz" 96;max-width:480px;color:var(--ink)}
.site-footer__h em{font-style:italic;color:var(--accent)}
.site-footer__hero-r{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.site-footer .site-footer__cta,
.site-footer .site-footer__cta:link,
.site-footer .site-footer__cta:visited{padding:14px 28px;background:var(--ink) !important;color:#fff !important;border:none;border-radius:6px;font:600 14px/1 var(--font-body);text-decoration:none}
.site-footer .site-footer__cta:hover{background:#000 !important;color:#fff !important}
.site-footer__hero-p{font-size:13px;color:var(--grey-700);margin:0}
.site-footer__cols{max-width:var(--max-width);margin:0 auto;padding:36px 24px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:32px}
.site-footer__brand{font-family:var(--font-display);font-weight:500;font-size:24px;letter-spacing:-0.02em;font-style:italic;margin-bottom:8px;color:var(--ink)}
.site-footer__brand .to{font-size:inherit;font-style:normal;color:var(--accent);font-weight:600;margin:0 2px}
.site-footer__brand .io{font-size:inherit;font-style:normal;font-family:var(--font-data);color:var(--grey-500);margin-left:0}
.site-footer__tag{font-size:13px;color:var(--grey-700);line-height:1.5;max-width:240px;margin-bottom:0}
.site-footer__col h4{font-family:var(--font-data);font-size:10px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:0.14em;margin-bottom:14px}
.site-footer__col h4::before{content:"● ";color:var(--accent)}
.site-footer__col ul{list-style:none;padding:0;margin:0}
.site-footer__col li{margin-bottom:8px}
.site-footer__col a{font-size:13px;color:var(--ink);text-decoration:none}
.site-footer__col a:hover{color:var(--accent)}
.site-footer__bottom{max-width:var(--max-width);margin:0 auto;padding:20px 24px 32px;border-top:1px solid rgba(0,0,0,0.08);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-family:var(--font-data);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--grey-500)}
.site-footer__bottom a{color:var(--grey-500);text-decoration:none}
.site-footer__bottom a:hover{color:var(--ink)}

@media(max-width:900px){
  .site-footer__hero{grid-template-columns:1fr;gap:24px;padding:48px 20px 32px}
  .site-footer__h{font-size:32px}
  .site-footer__cols{grid-template-columns:1fr 1fr;gap:24px;padding:32px 20px}
  .site-footer__brand-col{grid-column:1/-1}
  .site-footer__bottom{padding:16px 20px 24px;flex-direction:column;align-items:flex-start}
}
/* Hide Workers/Students segmented control (2026-05-06 — Students lane temporarily hidden) */
.site-header__seg{display:none !important}

/* NUCLEAR: hide anything inside .site-header except explicit children — kills any stray element rendering as a white square */
.site-header > *:not(.site-header__main):not(script){display:none !important}
.site-header__main > *:not(.site-header__brand):not(.site-header__nav):not(.site-header__right){display:none !important}
.site-header__nav > *:not(a){display:none !important}
.site-header__main::before,.site-header__main::after,.site-header__nav::before,.site-header__nav::after,.site-header__brand::before,.site-header__brand::after{display:none !important;content:none !important}

/* === BUTTON CONTRAST AUDIT 2026-05-06 === */
/* Force white text on all primary/accent buttons sitewide. Defeats any
   inherited color or specificity conflict that was producing dark text on
   orange/dark backgrounds (reported by user: orange CTA showing teal text). */
.cta,.cta-lg,.cta-lg:hover,.cta-lg:visited,
.btn--primary,.btn--primary:hover,.btn--primary:visited,
.site-header__cta,.site-header__cta:hover,.site-header__cta:visited,
a.site-header__cta,a.site-header__cta:hover,a.site-header__cta:visited,
.nav__cta,.nav__cta:hover,a.nav__cta,a.nav__cta:hover,
.h-stage-cta,.h-stage-cta:hover,a.h-stage-cta,
.cta--secondary,.cta--secondary:hover,
.btn-primary,.btn-primary:hover,
.faq__cta,.faq__cta:hover,
.hero__cta-row a,.hero__cta-row a:hover,.hero__cta-row a:visited
{color:#fff !important}

/* Outline / ghost variants explicitly stay dark text */
.cta--ghost,.cta--ghost:hover,.cta--ghost:visited,
.btn--outline,.btn--outline:hover,.btn--outline:visited
{color:var(--primary) !important}

/* Anchor tag inside any orange-bg element — universal contrast safety net */
[style*="background:#C45D2C"] a,[style*="background:#B5521F"] a,
[style*="background:var(--accent)"] a
{color:#fff !important}

/* === SITEWIDE BUTTON CONTRAST — comprehensive coverage 2026-05-06 === */
/* All known solid/accent button variants get forced white text. */
.cta,.cta-lg,.cta--secondary,.cta--lg,
.btn--primary,.btn-primary,
.site-header__cta,a.site-header__cta,
.nav__cta,a.nav__cta,
.h-stage-cta,a.h-stage-cta,
.faq__cta,
.compare__cta,.compare__cta--solid,
.fvp__cta,.fvp__cta--solid,
.sample__cta,.sample__cta--solid,.sample__cta-final,
.report-cta,
.article-cta .btn,.article-cta a.btn,
.guide-ctas .btn,.guide-ctas a,
.p-btn,.p-btn--lg,a.p-btn,
.p-card__cta,a.p-card__cta,
.p-models__cta,a.p-models__cta,
.p-viz__doc-cta,
.mobile-sticky-cta,
.cookie-banner__btn--accept,
.hero__cta-row > a,.hero__ctas > a,.p-hero__cta-row > a,
[class*="cta"]:not([class*="ghost"]):not([class*="outline"]):not([class*="link"]):not(.cta--ghost),
[class*="cta-row"] > a:first-child
{color:#fff !important}

/* Ghost/outline variants — always dark text */
.cta--ghost,a.cta--ghost,
.btn--outline,a.btn--outline,
.compare__cta--ghost,a.compare__cta--ghost,
.fvp__cta--ghost,a.fvp__cta--ghost,
.sample__cta--ghost,a.sample__cta--ghost,
.p-btn--ghost,a.p-btn--ghost
{color:var(--primary) !important;background:transparent !important}

/* === Filter pills active state — force white text on dark bg 2026-05-06 === */
.ctb__chip.is-active,
a.ctb__chip.is-active,
.ctb__chip.is-active:hover,
.ctb__chip.is-active:visited,
.filter-pill.is-active,
[class*="chip"].is-active
{color:#fff !important;background:var(--ink) !important;border-color:var(--ink) !important}

/* 2026-05-07 a11y fixes */
.site-footer__col-h{font-family:var(--font-body) !important;font-weight:600 !important;font-size:14px !important;line-height:1.3 !important;letter-spacing:0 !important;color:var(--ink) !important;margin:0 0 12px 0 !important;text-transform:none !important}
.site-header__cta{font-weight:700 !important}  /* contrast: bold qualifies as large text WCAG threshold */
.skip-link{position:absolute !important;top:-40px !important;left:8px !important;background:var(--ink) !important;color:#fff !important;padding:10px 18px !important;z-index:10000 !important;font:600 14px/1 var(--font-body) !important;border-radius:0 0 8px 8px !important;text-decoration:none !important;transition:top .15s ease !important;outline:0}
.skip-link:focus,.skip-link:focus-visible{top:0 !important;outline:2px solid var(--accent) !important;outline-offset:2px}

/* 2026-05-07 — iPhone-SE-class (320px) overflow safety net */
@media(max-width:380px){
  html,body{overflow-x:hidden !important;max-width:100% !important}
  * {max-width:100%}
  img,svg,table,iframe,video{max-width:100% !important;height:auto}
  pre,code{white-space:pre-wrap;word-break:break-word}
  .container,main,section,article,aside,header,footer,nav{max-width:100% !important;overflow-x:hidden}
}

/* 2026-05-07 BATCH 7 — color-contrast push to WCAG AA across all sampled pages */
:root{
  /* Darker accent for SMALL TEXT (kick labels, eyebrows, em emphasis) — passes AA on cream */
  --accent-text:#9C4720;
  /* Darker grey for muted text — passes 4.5+ AA on white */
  --grey-500-aa:#525964;
}
/* Apply darker accent to small-text elements that previously failed AA */
.kick, .bh__kick, .cw__kick, .p-card__eyebrow, .p-models__kicker, .p-final__kicker,
.sample__head h2 em, .hero h1 em, .p-hero__h1 em, .p-final__h em,
.p-problem__lede em, .h-stage__title em, .h-stage__kick{color:var(--accent-text) !important}
/* Fix grey-500 text on white — bump to grey-500-aa */
.tier__tag, .tier__price-unit, .tier__list .is-mute span, .bh__meta-row span,
.data-disclaimer, .site-footer__bottom span, .quiz__nav .btn--ghost,
.aff-disc {color:var(--grey-500-aa) !important}
/* Fix .aff-disc + quiz > p that had #c8ccd2 (very low contrast) */
.aff-disc{color:var(--grey-500-aa) !important;font-size:11px;line-height:1.5}
.quiz > p[style*="color:#c8ccd2"], .quiz > p:not([class]){color:var(--grey-500-aa) !important}
/* Site-header CTA: darken bg so white passes AA */
.site-header__cta{background:#9C4720 !important}
.site-header__cta:hover{background:#7E3815 !important}
/* Sample badge "Most pick this" — darken bg */
.sample__badge{background:#9C4720 !important}
/* Hero CTA on cream bg — keep terracotta but ensure text is heavier */
.cta-lg, .cw__teaser-cta, .p-btn{font-weight:700 !important}
