/* =====================================================================
   Freebounds design system
   Loaded after each page's inline <style>, so it re-themes every page by
   redefining the variables those pages already use (--cream, --ink, --line...).
   Spacing: strict 4px scale. Neutrals + one accent (brand green).
   Light by default, dark via [data-theme="dark"] (set before paint in <head>).
   ===================================================================== */

:root{
  color-scheme: light;
  /* Neutrals */
  --fb-bg:#f7f3ea;             /* warm cream page */
  --fb-surface:#ffffff;
  --fb-surface-2:#fbf8f1;
  --fb-ink:#1f2d36;            /* headings, primary text */
  --fb-ink-2:#2c3d48;
  --fb-text-2:#4d5a62;         /* secondary text: 6.5:1 on cream */
  --fb-text-3:#5b6770;         /* captions: 5.2:1 on cream */
  --fb-border:#d9cfb8;         /* tan control borders */
  --fb-border-strong:#9a8d70;
  --fb-hairline:#e9e2d2;       /* card borders, dividers */
  /* Accent (brand) */
  --fb-accent:#1f7a5e;
  --fb-accent-hover:#155c46;
  --fb-accent-ink:#ffffff;
  --fb-accent-text:#16674e;    /* accent used as text: 6.0:1 on cream */
  --fb-accent-tint:#e8f2ed;
  --fb-gold:#c8962f;           /* secondary accent: gold buttons and highlights */
  --fb-gold-hover:#b5852a;
  --fb-gold-ink:#3a2a06;       /* text on gold: 6.1:1 */
  --fb-gold-text:#8a6417;      /* gold used as text: 5.1:1 on white */
  --fb-gold-tint:#f7ecd3;
  /* Semantic */
  --fb-warn-bg:#fdf5e9; --fb-warn-border:#ecd3ad; --fb-warn-text:#6e4510;
  --fb-ok-text:#16674e;
  --fb-err-text:#a32a1d;
  /* Shape, depth, type */
  --fb-radius-sm:6px;
  --fb-radius:8px;
  --fb-radius-lg:16px;
  --fb-control-h:36px;
  --fb-shadow:0 6px 16px rgba(31,60,55,.06);
  --fb-shadow-hover:0 12px 30px rgba(31,60,55,.11);
  --fb-ring:#1f7a5e;
  --fb-font:"Segoe UI Variable Text","Segoe UI",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Roboto,Arial,sans-serif;
  --fb-font-ar:"Segoe UI","Noto Sans Arabic","Geeza Pro",Tahoma,Arial,sans-serif;
  --fb-ease:cubic-bezier(.2,.7,.2,1);

  /* Map the variables every page already uses onto the system */
  --cream:var(--fb-bg);
  --cream2:var(--fb-surface-2);
  --white:var(--fb-surface);
  --ink:var(--fb-ink);
  --muted:var(--fb-text-2);
  --soft:var(--fb-text-3);
  --line:var(--fb-hairline);
  --green:var(--fb-accent);
  --green-d:var(--fb-accent-hover);
  --green-tint:var(--fb-accent-tint);
  --gold:var(--fb-gold);
  --gold-d:var(--fb-gold-text);
  --gold-tint:var(--fb-gold-tint);
  --shadow:var(--fb-shadow);
}

html[data-theme="dark"]{
  color-scheme: dark;
  --fb-bg:#111814;
  --fb-surface:#18211c;
  --fb-surface-2:#1f2a24;
  --fb-ink:#eef2ef;
  --fb-ink-2:#d6ded9;
  --fb-text-2:#b3c0b9;
  --fb-text-3:#9eaca5;
  --fb-border:#3c4a42;
  --fb-border-strong:#7f8f86;
  --fb-hairline:#2b3730;
  --fb-accent:#1d7a5b;
  --fb-accent-hover:#186a4f;
  --fb-accent-ink:#ffffff;
  --fb-accent-text:#6fd0ab;
  --fb-accent-tint:#173229;
  --fb-gold:#d4a446; --fb-gold-hover:#e0b45a; --fb-gold-ink:#2a1e03; --fb-gold-text:#e2c27a; --fb-gold-tint:#2e2716;
  --fb-warn-bg:#2a2216; --fb-warn-border:#5b4625; --fb-warn-text:#f0cf9a;
  --fb-ok-text:#6fd0ab;
  --fb-err-text:#ff9b8c;
  --fb-shadow:0 1px 0 rgba(255,255,255,.03) inset;
  --fb-shadow-hover:0 0 0 1px rgba(255,255,255,.06) inset;
  --fb-ring:#6fd0ab;
}

/* ---------- Base ---------- */
html{ -webkit-text-size-adjust:100%; }
body{ font-family:var(--fb-font); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body[dir="rtl"]{ font-family:var(--fb-font-ar); }
h1,h2,h3,h4{ letter-spacing:-.01em; }
body[dir="rtl"] h1,body[dir="rtl"] h2,body[dir="rtl"] h3{ letter-spacing:0; }
a{ text-underline-offset:3px; }
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--fb-ring); outline-offset:2px;
}
::selection{ background:var(--fb-accent-tint); color:var(--fb-ink); }

/* Cross-page transition (Chrome/Edge; other browsers simply navigate) */
@view-transition{ navigation:auto; }
::view-transition-old(root),::view-transition-new(root){ animation-duration:180ms; animation-timing-function:var(--fb-ease); }

/* ---------- Flags ---------- */
.fb-flag{
  display:inline-block; width:1.33em; height:1em; vertical-align:-.12em;
  object-fit:cover; border-radius:2px;
  box-shadow:0 0 0 1px rgba(20,25,28,.14);
}
html[data-theme="dark"] .fb-flag{ box-shadow:0 0 0 1px rgba(255,255,255,.18); }
.flag .fb-flag,.qf .fb-flag{ width:32px; height:24px; vertical-align:middle; }

/* ---------- Icons (Phosphor, MIT) ---------- */
.fb-ico{ display:inline-block; width:18px; height:18px; background:currentColor; vertical-align:middle;
  -webkit-mask:var(--i) center/contain no-repeat; mask:var(--i) center/contain no-repeat; }
.fb-ico-sun{ --i:url("/assets/icons/sun.svg"); }
.fb-ico-moon{ --i:url("/assets/icons/moon.svg"); }
.fb-ico-arrow{ --i:url("/assets/icons/arrow-right.svg"); }
.fb-ico-shield{ --i:url("/assets/icons/shield-check.svg"); }
.fb-ico-scales{ --i:url("/assets/icons/scales.svg"); }
.fb-ico-map{ --i:url("/assets/icons/map-trifold.svg"); }
.fb-ico-link{ --i:url("/assets/icons/link.svg"); }
.fb-ico-warn{ --i:url("/assets/icons/warning-circle.svg"); }
.fb-ico-check{ --i:url("/assets/icons/check-circle.svg"); }
body[dir="rtl"] .fb-ico-arrow{ transform:scaleX(-1); }

/* ---------- Theme toggle ---------- */
.fb-theme{
  display:inline-grid; place-items:center; width:36px; height:36px; flex:0 0 auto;
  border:1px solid var(--fb-border); border-radius:var(--fb-radius);
  background:var(--fb-surface); color:var(--fb-ink); cursor:pointer; padding:0;
  transition:border-color .12s var(--fb-ease), background-color .12s var(--fb-ease);
}
.fb-theme:hover{ border-color:var(--fb-border-strong); }
.fb-theme:active{ transform:translateY(1px); }
/* Over the homepage photo the toggle is glass */
.hero .fb-theme{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.5); color:#fff;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.hero .fb-theme:hover{ background:rgba(255,255,255,.24); }

/* ---------- Inner-page navigation ---------- */
body > nav,nav.top,header nav{ }
nav:not(.hero nav){
  background:color-mix(in srgb, var(--fb-surface) 88%, transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(12px); backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid var(--fb-hairline);
}
.nav .links a,.links a{ transition:color .12s var(--fb-ease); }
.nav .links a{ color:var(--fb-text-2); font-weight:500; }
.nav .links a:hover{ color:var(--fb-ink); }
.logo{ color:var(--fb-ink); }
.hero .logo{ color:#fff; }
.logo b{ letter-spacing:.02em; }
.logo .globe{ background:var(--fb-accent); }
.nav .cta,.cta-btn{ background:var(--fb-accent); color:var(--fb-accent-ink); border-radius:var(--fb-radius); box-shadow:none; white-space:nowrap; font-weight:600; }
.nav .cta:hover{ background:var(--fb-accent-hover); }
.nav .cta:active{ transform:translateY(1px); }
.langtog{ border:1px solid var(--fb-border); border-radius:var(--fb-radius); overflow:hidden; flex:0 0 auto; }
.langtog button{ background:var(--fb-surface); color:var(--fb-ink); font-weight:600; height:32px; padding:0 12px; border:0; cursor:pointer; }
.langtog button.on{ background:var(--fb-accent); color:#ffffff; }
@media (max-width:620px){
  nav .wrap{ padding:0 16px; }
  .nav{ gap:8px; }
  .logo{ font-size:16px; gap:8px; }
  .logo .globe{ width:24px; height:24px; font-size:13px; }
  .logo small{ display:none; }
  .langtog button{ padding:0 8px; }
  .nav .cta{ padding:8px 12px; font-size:13px; }
}

/* ---------- Buttons ---------- */
.btn-primary,.prof,.printbtn,.nbtn,.hs-go,.join,.sbtn,.go-btn,button.primary{
  background:var(--fb-accent); color:var(--fb-accent-ink); border:1px solid transparent;
  border-radius:var(--fb-radius); box-shadow:none; font-weight:600;
  transition:background-color .12s var(--fb-ease), transform .12s var(--fb-ease);
}
.btn-primary:hover,.prof:hover,.printbtn:hover,.nbtn:hover,.hs-go:hover,.join:hover,.sbtn:hover{ background:var(--fb-accent-hover); color:var(--fb-accent-ink); }
.btn-primary:active,.prof:active,.printbtn:active,.nbtn:active,.join:active,.sbtn:active{ transform:translateY(1px); }
button:disabled{ opacity:.6; cursor:progress; }

/* ---------- Filter panel and pills (/explore and pages that reuse .opt) ---------- */
.panel{ background:var(--fb-surface); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-lg); box-shadow:var(--fb-shadow); padding:8px 24px; }
.frow{ gap:8px; padding:12px 0; align-items:center; }
.frow + .frow{ border-top:1px solid var(--fb-hairline); }
.crow{ gap:8px; margin:8px 0; }
.flabel{ flex:0 0 120px; width:120px; font-size:12px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--fb-text-2); }

.opt,.opt.big,.tab,.simple-toggle,.cmp-chip,.fbar .chip{
  display:inline-flex; align-items:center; gap:8px; height:var(--fb-control-h); padding:0 14px;
  border:1px solid var(--fb-border); border-radius:999px;
  background:var(--fb-surface); color:var(--fb-ink);
  font-family:inherit; font-size:14px; font-weight:500; line-height:1; white-space:nowrap;
  box-shadow:none; cursor:pointer; user-select:none;
  transition:border-color .12s var(--fb-ease), background-color .12s var(--fb-ease), color .12s var(--fb-ease);
}
.opt:hover,.tab:hover,.simple-toggle:hover,.cmp-chip:hover,.fbar .chip:hover{ border-color:var(--fb-border-strong); color:var(--fb-ink); background:var(--fb-surface); }
.opt.on,.opt.cit.on,.tab.on,.cmp-chip.on,.fbar .chip.on{ background:var(--fb-accent); border-color:var(--fb-accent); color:#ffffff; }
.opt.on:hover,.tab.on:hover,.cmp-chip.on:hover,.fbar .chip.on:hover{ background:var(--fb-accent-hover); border-color:var(--fb-accent-hover); color:#ffffff; }
.opt:active,.tab:active,.simple-toggle:active,.cmp-chip:active{ background:var(--fb-surface-2); }
.opt.on:active,.tab.on:active,.cmp-chip.on:active{ background:var(--fb-accent-hover); }
.tabs{ gap:8px; margin:24px 0 8px; }
.simple-toggle{ margin-inline-start:auto; color:var(--fb-text-2); }

.search,#rankBy,#cityRank,#rankPersona,.frow select,.rank-head select,.crow select,.hs-f input,.hs-f select{
  height:var(--fb-control-h); padding:0 12px; border:1px solid var(--fb-border); border-radius:var(--fb-radius);
  background:var(--fb-surface); color:var(--fb-ink); font-family:inherit; font-size:14px; font-weight:500;
}
.search::placeholder{ color:var(--fb-text-3); }
.search:hover,#rankBy:hover,#cityRank:hover,.frow select:hover,.rank-head select:hover,.crow select:hover{ border-color:var(--fb-border-strong); }
.rank-head label,.cmp-pick label{ font-size:12px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--fb-text-2); }
.fsliders{ gap:24px; }
.fsl{ gap:8px; font-size:14px; font-weight:500; color:var(--fb-ink); }
.fsl .fv{ color:var(--fb-ink); font-weight:600; min-width:28px; }
.fsl input[type=range],.wrow input[type=range]{ accent-color:var(--fb-ink); height:20px; }
.citbar{ background:var(--fb-surface-2); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius); color:var(--fb-text-2); }
.citbar b{ color:var(--fb-ink); }
@media (max-width:620px){
  .panel{ padding:4px 16px; }
  .flabel{ flex-basis:100%; width:100%; }
  .search{ margin-inline-start:0; width:100%; min-width:0; }
}

/* ---------- Country cards (/explore) ---------- */
.grid{ gap:16px; }
.card{
  background:var(--fb-surface); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-lg);
  box-shadow:var(--fb-shadow); overflow:hidden;
  transition:border-color .16s var(--fb-ease), box-shadow .16s var(--fb-ease), transform .16s var(--fb-ease);
}
.card:hover{ transform:translateY(-2px); border-color:var(--fb-border); box-shadow:var(--fb-shadow-hover); }
.card:focus-within{ border-color:var(--fb-border-strong); }
.card .head h3:focus-visible{ outline:2px solid var(--fb-ring); outline-offset:4px; border-radius:4px; }
.card .head h3{ cursor:pointer; }
.card .head{ gap:12px; padding:20px 20px 12px; }
.card .head h3{ font-size:18px; font-weight:700; color:var(--fb-ink); line-height:1.25; }
.card .head .reg{ color:var(--fb-text-3); font-size:13px; font-weight:500; }
.flag{ width:52px; height:52px; border-radius:14px; background:var(--fb-accent-tint); border:0; }
.card:hover .flag .fb-flag{ transform:scale(1.04); }
.flag .fb-flag{ transition:transform .2s var(--fb-ease); }
.tagline{ padding:0 20px 4px; }
.ribbon,.rr,.ptag,.pin{
  display:inline-flex; align-items:center; gap:4px; height:24px; padding:0 10px;
  border-radius:999px; font-size:12px; font-weight:600; line-height:1; white-space:nowrap;
}
.rr{ background:var(--fb-accent-tint); color:var(--fb-accent-text); border:0; }
.ptag{ background:var(--fb-bg); border:1px solid var(--fb-hairline); color:var(--fb-text-2); font-weight:500; }
.pin{ background:var(--fb-accent-tint); color:var(--fb-accent-text); border:1px solid #cfe3d8; }
.r-main{ background:var(--fb-accent-tint); color:var(--fb-accent-text); border-color:transparent; }
.ptag{ margin:0 4px 4px 0; }
body[dir="rtl"] .ptag{ margin:0 0 4px 4px; }
.ptag.ar{ background:var(--fb-accent-tint); color:var(--fb-accent-text); border-color:transparent; }
.facts{ padding:8px 20px 4px; }
.fact{ padding:8px 0; border-bottom:1px solid var(--fb-hairline); }
.fact .k{ color:var(--fb-text-3); font-size:13px; }
.fact .v{ color:var(--fb-ink); font-size:14px; font-weight:600; }
.pers{ padding:12px 20px 0; }
.watch,.watchb{ background:var(--fb-warn-bg); border:1px solid var(--fb-warn-border); color:var(--fb-warn-text); border-radius:var(--fb-radius); }
.watch{ margin:12px 20px 12px; padding:8px 12px; font-size:13px; }
.watch b,.watchb b{ color:inherit; }
.ctrust{ color:var(--fb-text-3); font-size:12px; padding:0 20px 12px; }
.cardact{ border-top:1px solid var(--fb-hairline); }
.cardact a{ border-radius:var(--fb-radius-sm); }
.cardact a:hover{ background:var(--fb-surface-2); }
.rankbadge{ background:var(--fb-ink); color:var(--fb-surface); }
.urgent{ background:var(--fb-warn-bg); color:var(--fb-warn-text); border-bottom:1px solid var(--fb-warn-border); }
.empty{ background:var(--fb-surface); border:1px dashed var(--fb-border); border-radius:var(--fb-radius-lg); color:var(--fb-text-2); padding:32px; text-align:center; }

/* ---------- Country modal ---------- */
.ov{ background:rgba(10,14,16,.5); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.modal{ background:var(--fb-bg); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-lg); box-shadow:0 24px 48px -16px rgba(0,0,0,.35); }
.mhead .flag{ background:rgba(255,255,255,.18); }
.x:focus-visible{ outline-color:#ffffff; }
.sc,.res{ background:var(--fb-surface); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius); }
.sc .k{ color:var(--fb-text-3); text-transform:none; letter-spacing:0; font-size:12px; font-weight:600; }
.sc .v{ color:var(--fb-ink); }
.stand{ background:var(--fb-accent-tint); color:var(--fb-accent-text); border-radius:var(--fb-radius); }
.citpill{ background:var(--fb-surface-2); border:1px solid var(--fb-hairline); color:var(--fb-text-2); border-radius:var(--fb-radius); }
.res h4{ color:var(--fb-ink); }
.res .lk{ border-bottom:1px solid var(--fb-hairline); }
.mapk{ color:var(--fb-text-3); text-transform:none; letter-spacing:0; font-size:12px; }

/* ---------- Tables (rankings, visas, compare) ---------- */
.rtable,.vtable,.ctable{ background:var(--fb-surface); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-lg); }
.rtable th,.vtable th,.ctable th{ background:var(--fb-surface-2); color:var(--fb-text-2); font-weight:600; border-bottom:1px solid var(--fb-hairline); }
.rtable td,.vtable td,.ctable td{ border-bottom:1px solid var(--fb-hairline); color:var(--fb-ink); }
.rtable tr:hover td,.vtable tr:hover td{ background:var(--fb-surface-2); }

/* ---------- Quiz and shortlist ---------- */
.quiz{ background:var(--fb-surface); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-lg); box-shadow:var(--fb-shadow); }
.qopt{ background:var(--fb-surface); border:1px solid var(--fb-border); border-radius:var(--fb-radius); color:var(--fb-ink); font-weight:500;
  transition:border-color .12s var(--fb-ease), background-color .12s var(--fb-ease); }
.qopt:hover{ border-color:var(--fb-ink); background:var(--fb-surface-2); }
.qopt:active{ transform:translateY(1px); }
.qstep{ color:var(--fb-text-3); text-transform:none; letter-spacing:0; }
.qresult{ background:var(--fb-surface); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-lg); transition:border-color .12s var(--fb-ease); }
.qresult:hover{ border-color:var(--fb-border-strong); }
.qs{ color:var(--fb-accent-text); }
.fb-why{ list-style:none; margin:8px 0 0; padding:0; display:grid; gap:4px; font-size:13px; color:var(--fb-text-2); }
.fb-why li{ display:flex; gap:8px; align-items:flex-start; }
.fb-why .fb-ico{ width:16px; height:16px; margin-top:2px; flex:0 0 16px; color:var(--fb-ok-text); }
.fb-why li.fb-check .fb-ico{ color:var(--fb-warn-text); }
.fb-sl-actions{ display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.fb-sl-note{ font-size:12px; color:var(--fb-text-3); margin-top:12px; }

/* ---------- Source labels (profiles and modals) ---------- */
.fb-src{ display:inline-flex; align-items:center; height:20px; padding:0 6px; margin-inline-start:6px; border-radius:4px;
  font-size:11px; font-weight:600; line-height:1; vertical-align:2px; white-space:nowrap; }
.fb-src-official{ background:var(--fb-accent-tint); color:var(--fb-accent-text); }
.fb-src-third{ background:var(--fb-surface-2); color:var(--fb-text-2); border:1px solid var(--fb-hairline); }

/* ---------- Forms ---------- */
.fb-form-error{ flex-basis:100%; margin:8px 0 0; font-size:13px; font-weight:600; color:var(--fb-err-text); }
.news .fb-form-error{ color:#ffe1dc; }
input[type=email],input[type=text],textarea,select{ font-family:inherit; }

/* ---------- Footer ---------- */
footer{ border-top:1px solid var(--fb-hairline); }

/* ---------- Dark mode: surfaces that pages hard-code as white/cream ---------- */
html[data-theme="dark"] body{ background:var(--fb-bg); color:var(--fb-ink); }
html[data-theme="dark"] .card,html[data-theme="dark"] .box,html[data-theme="dark"] .pcard,
html[data-theme="dark"] .tile,html[data-theme="dark"] .item,html[data-theme="dark"] .prog,
html[data-theme="dark"] .job,html[data-theme="dark"] .post,html[data-theme="dark"] .gcard{
  background:var(--fb-surface); border-color:var(--fb-hairline); color:var(--fb-ink);
}

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
  ::view-transition-old(root),::view-transition-new(root){ animation:none; }
  .card:hover{ transform:none; }
}

/* =====================================================================
   Homepage (index.html). The hero photo and its overlays are untouched.
   ===================================================================== */
.fb-ico-list{ --i:url("/assets/icons/list-checks.svg"); }
.fb-ico-sunh{ --i:url("/assets/icons/sun-horizon.svg"); }
.fb-ico-coins{ --i:url("/assets/icons/hand-coins.svg"); }
.fb-ico-laptop{ --i:url("/assets/icons/laptop.svg"); }
.fb-ico-chart{ --i:url("/assets/icons/chart-line-up.svg"); }
.fb-ico-case{ --i:url("/assets/icons/briefcase.svg"); }

/* Hero text and actions (over the photo) */
.hero h1{ font-size:48px; line-height:1.08; font-weight:700; letter-spacing:-.02em; max-width:640px; }
.hero h1 span:empty{ display:none; }
.hero .sub{ font-size:17px; max-width:480px; margin:16px 0 24px; }
.hero .btn{ display:inline-flex; align-items:center; height:48px; padding:0 20px; border-radius:var(--fb-radius); font-size:15px; font-weight:600; }
.hero .btn-primary{ box-shadow:0 8px 20px -8px rgba(4,16,22,.6); }
.hero .btn-ghost{ background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.7); color:#fff;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
.hero .btn-ghost:hover{ background:#fff; color:#14191c; }
.hero .btn:active{ transform:translateY(1px); }
.hero .join{ background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.6); color:#fff; box-shadow:none; font-size:13px; font-weight:600;
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); height:36px; display:inline-flex; align-items:center; padding:0 12px; }
.hero .join:hover{ background:rgba(255,255,255,.26); color:#fff; }
.hero .links a{ font-size:14px; font-weight:500; letter-spacing:0; color:#fff; }
.hero .links a:hover{ color:#fff; }
.hero .tools{ gap:8px; }
.stats{ border-radius:var(--fb-radius-lg); box-shadow:none; border:1px solid rgba(255,255,255,.55); }
.stat{ padding:12px 16px; }
.stat b{ font-size:18px; font-weight:700; color:#0f3b2d; }
.stat span{ font-size:12px; font-weight:500; text-transform:none; letter-spacing:0; color:#2f3d38; }
@media (max-width:620px){
  .hero h1{ font-size:34px; }
  .hero .sub{ font-size:16px; }
  .hero .btn{ height:44px; }
}

/* Shared homepage section frame */
.fb-wrap{ max-width:1236px; margin:0 auto; padding:0 28px; }
@media (max-width:620px){ .fb-wrap{ padding:0 16px; } }

/* Goal cards */
.paths{ background:var(--fb-bg); padding:80px 28px 64px; }
.paths h2,.fb-how h2,.fb-trust h2{ color:var(--fb-ink); font-size:32px; line-height:1.15; font-weight:700; letter-spacing:-.02em; margin:0 0 8px; }
.paths .psub{ color:var(--fb-text-2); font-size:16px; margin-bottom:32px; max-width:65ch; }
.pgrid{ grid-template-columns:repeat(6,1fr); gap:16px; }
.pcard{ grid-column:span 2; background:var(--fb-surface); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-lg);
  box-shadow:var(--fb-shadow); padding:24px; display:flex; flex-direction:column; }
.pcard:nth-child(-n+2){ grid-column:span 3; }
.pcard:hover{ transform:translateY(-2px); border-color:var(--fb-border); box-shadow:var(--fb-shadow-hover); }
.pcard:active{ transform:translateY(0); }
.pcard .pi{ font-size:32px; line-height:1; }
.pcard b{ color:var(--fb-ink); font-size:18px; font-weight:700; margin:16px 0 8px; }
.pcard span{ color:var(--fb-text-2); font-size:14px; }
.pcard .go{ color:var(--fb-accent-text); font-weight:600; font-size:14px; margin-top:auto; padding-top:16px; }
@media (max-width:980px){ .pcard,.pcard:nth-child(-n+2){ grid-column:span 3; } }
@media (max-width:620px){ .paths{ padding:56px 16px 48px; } .pgrid{ grid-template-columns:1fr; } .pcard,.pcard:nth-child(-n+2){ grid-column:auto; } .paths h2,.fb-how h2,.fb-trust h2{ font-size:26px; } }

/* How it works: one row, divided by hairlines (not cards) */
.fb-how{ background:var(--fb-surface); border-top:1px solid var(--fb-hairline); border-bottom:1px solid var(--fb-hairline); padding:64px 0; }
.fb-steps{ list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); }
.fb-step{ padding:0 24px; border-inline-start:1px solid var(--fb-hairline); display:flex; flex-direction:column; gap:8px; }
.fb-step:first-child{ padding-inline-start:0; border-inline-start:0; }
.fb-step > .fb-ico{ width:24px; height:24px; color:var(--fb-accent-text); margin-bottom:8px; }
.fb-step h3{ font-size:18px; font-weight:700; color:var(--fb-ink); margin:0; }
.fb-step p{ font-size:15px; color:var(--fb-text-2); line-height:1.6; margin:0; flex:1; }
.fb-textlink{ display:inline-flex; align-items:center; gap:4px; margin-top:8px; color:var(--fb-accent-text); font-weight:600; font-size:14px; }
.fb-textlink .fb-ico{ width:16px; height:16px; transition:transform .15s var(--fb-ease); }
.fb-textlink:hover{ text-decoration:underline; }
.fb-textlink:hover .fb-ico{ transform:translateX(2px); }
body[dir="rtl"] .fb-textlink:hover .fb-ico{ transform:scaleX(-1) translateX(2px); }
@media (max-width:860px){
  .fb-steps{ grid-template-columns:1fr; gap:24px; }
  .fb-step,.fb-step:first-child{ padding:24px 0 0; border-inline-start:0; border-top:1px solid var(--fb-hairline); }
  .fb-step:first-child{ border-top:0; padding-top:0; }
}

/* Trust: split copy and checklist */
.fb-trust{ background:var(--fb-bg); padding:72px 0; }
.fb-trust-in{ display:grid; grid-template-columns:5fr 4fr; gap:48px; align-items:start; }
.fb-trust-copy p{ color:var(--fb-text-2); font-size:16px; line-height:1.65; max-width:60ch; margin:8px 0 0; }
.fb-trust-copy .fb-trust-note{ font-size:13px; color:var(--fb-text-3); margin-top:16px; }
.fb-trust-list{ list-style:none; margin:0; padding:8px 24px; background:var(--fb-surface); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-lg); }
.fb-trust-list li{ display:flex; gap:12px; align-items:flex-start; padding:16px 0; font-size:15px; color:var(--fb-ink); }
.fb-trust-list li + li{ border-top:1px solid var(--fb-hairline); }
.fb-trust-list .fb-ico{ width:20px; height:20px; flex:0 0 20px; color:var(--fb-accent-text); margin-top:1px; }
@media (max-width:860px){ .fb-trust-in{ grid-template-columns:1fr; gap:24px; } }

/* Newsletter + footer on the homepage */
.news{ background:var(--fb-accent); }
.news input[type=email]{ border:1px solid transparent; border-radius:var(--fb-radius); height:48px; padding:0 16px; }
.news .nbtn{ background:#0f1a1f; border-radius:var(--fb-radius); height:48px; padding:0 20px; }
.news .nbtn:hover{ background:#000d12; }

/* Country card actions: labelled, wrapping links instead of emoji-only buttons */
.cardact{ display:flex; flex-wrap:wrap; gap:8px; padding:12px 20px 16px; }
.cardact a.fb-act{ flex:0 0 auto; display:inline-flex; align-items:center; gap:4px; height:28px; padding:0 8px;
  font-size:12px; font-weight:500; color:var(--fb-text-2); background:var(--fb-surface); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-sm);
  transition:border-color .12s var(--fb-ease), color .12s var(--fb-ease); }
.cardact a.fb-act:hover{ border-color:var(--fb-border-strong); color:var(--fb-ink); background:var(--fb-surface); }
.cardact a.fb-act-main{ background:var(--fb-accent); color:#ffffff; border-color:var(--fb-accent); font-weight:600; }
.cardact a.fb-act-main:hover{ background:var(--fb-accent-hover); color:#ffffff; }
.cardact .fb-src{ height:16px; margin:0; font-size:10px; }
.rr b{ color:var(--fb-ink); font-weight:600; }
.grid > .card{ display:flex; flex-direction:column; }
.grid > .card .cardact{ margin-top:auto; }
.grid > .card .ctrust{ margin-top:auto; padding-top:8px; }
.grid > .card .ctrust + .cardact{ margin-top:0; }

/* ---------- Gold buttons (Ask a specialist, guide and band buttons) ---------- */
.abtn,.gold,.capture .sb,.cta-box a,.hs-go{
  background:var(--fb-gold); color:var(--fb-gold-ink) !important; border:1px solid transparent; border-radius:10px;
  font-weight:700; box-shadow:none; white-space:nowrap; cursor:pointer;
}
.abtn:hover,.gold:hover,.capture .sb:hover,.cta-box a:hover,.hs-go:hover{ background:var(--fb-gold-hover); color:var(--fb-gold-ink) !important; }
.obtn{ background:var(--fb-surface); border:1.5px solid var(--fb-accent); color:var(--fb-accent-text); border-radius:10px; font-weight:700; white-space:nowrap; }
.obtn:hover{ border-color:var(--fb-border-strong); }
.abtn:active,.obtn:active,.sb:active{ transform:translateY(1px); }
.cfoot{ flex-wrap:wrap; gap:8px; }

/* ---------- Page bands and callouts keep their original green gradients ---------- */
.capture,.gate,.cta-box{ border-radius:var(--fb-radius-lg); }

/* ---------- Dark mode: remaining hard-coded light surfaces, page by page ---------- */
html[data-theme="dark"] .fbar,html[data-theme="dark"] .pay,html[data-theme="dark"] .young,
html[data-theme="dark"] .free,html[data-theme="dark"] .bg,html[data-theme="dark"] .lib,html[data-theme="dark"] .okbanner,
html[data-theme="dark"] .tip,html[data-theme="dark"] .formcard,html[data-theme="dark"] .ok,html[data-theme="dark"] .side .card,
html[data-theme="dark"] .fact,html[data-theme="dark"] .cc,html[data-theme="dark"] .isl,html[data-theme="dark"] article,
html[data-theme="dark"] blockquote,html[data-theme="dark"] .post,html[data-theme="dark"] .tools .tg a,html[data-theme="dark"] .blog .capture{
  background:var(--fb-surface) !important; color:var(--fb-ink); border-color:var(--fb-hairline) !important;
}
html[data-theme="dark"] tr:nth-child(even) td{ background:var(--fb-surface-2) !important; }
html[data-theme="dark"] td,html[data-theme="dark"] th{ color:var(--fb-ink); border-color:var(--fb-hairline); }
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{
  background:var(--fb-surface-2); color:var(--fb-ink); border-color:var(--fb-border);
}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{ color:var(--fb-text-3); }
html[data-theme="dark"] .fbar{ border-bottom:1px solid var(--fb-hairline); }
.flab{ font-size:12px; font-weight:600; letter-spacing:0; text-transform:none; color:var(--fb-text-2); min-width:80px; }

/* ---------- Mobile menu (added by fb.js when a page hides its nav links) ---------- */
.fb-ico-list{ --i:url("/assets/icons/list.svg"); }
.fb-ico-x{ --i:url("/assets/icons/x.svg"); }
.fb-menu{ display:inline-grid; place-items:center; width:36px; height:36px; flex:0 0 auto; padding:0; cursor:pointer;
  border:1px solid var(--fb-border); border-radius:var(--fb-radius); background:var(--fb-surface); color:var(--fb-ink); }
.fb-menu[hidden]{ display:none; }
.fb-menu:hover{ border-color:var(--fb-border-strong); }
.hero .fb-menu{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.5); color:#fff; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }
nav{ position:relative; }
.fb-nav-open .links,.fb-nav-open .nlinks{
  display:flex !important; flex-direction:column; align-items:stretch; gap:0; position:absolute; top:100%; left:0; right:0; z-index:40;
  margin:0; padding:8px 16px 16px; background:var(--fb-surface); border-bottom:1px solid var(--fb-hairline); box-shadow:0 12px 24px -12px rgba(0,0,0,.25);
}
.fb-nav-open .links a,.fb-nav-open .nlinks a{ display:flex !important; align-items:center; min-height:44px; padding:0 4px; color:var(--fb-ink) !important;
  font-size:16px; font-weight:500; opacity:1; border-bottom:1px solid var(--fb-hairline); text-decoration:none; }
.fb-nav-open .links a:last-child,.fb-nav-open .nlinks a:last-child{ border-bottom:0; }
.fb-nav-open .nlinks a.cta{ justify-content:center; margin-top:12px; border-radius:var(--fb-radius); color:var(--fb-accent-ink) !important; border-bottom:0; }
.topbar .in{ display:flex; align-items:center; gap:8px; }
.topbar .fb-theme{ margin-inline-start:auto; background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.35); color:#fff; width:32px; height:32px; }
/* Phone header: the page's CTA moves into the menu so the bar fits on one line */
@media (max-width:480px){
  .nav .cta,.hero .join,.nav > .cta{ display:none !important; }
  .fb-nav-open .nlinks a.cta{ display:flex !important; }
}
.fb-back{ margin-inline-start:auto; display:inline-flex; align-items:center; gap:4px; height:32px; padding:0 12px; border-radius:var(--fb-radius);
  color:#fff; font-size:14px; font-weight:500; border:1px solid rgba(255,255,255,.35); }
.fb-back:hover{ background:rgba(255,255,255,.12); }
.fb-back .fb-ico{ width:16px; height:16px; transform:scaleX(-1); }
body[dir="rtl"] .fb-back .fb-ico{ transform:none; }
.topbar .fb-back + .fb-theme{ margin-inline-start:0; }

/* ---------- Accessibility fixes from the axe-core scan ---------- */
.ver{ color:var(--fb-text-3) !important; }
/* Text on the solid dark bands and callouts */
.band,.capture,.gate,.cta-box,.sam{ color:#ffffff; }
.capture p,.cta-box p,.gate p,.sam p,.band p,.capture .ds,.gate .ds{ color:#d9e8e1 !important; }
.capture b,.cta-box b,.gate b,.capture h2,.capture h3,.cta-box h3,.gate h2,.gate h3{ color:#ffffff !important; }
/* Links inside running text are underlined so they do not rely on colour alone */
p a:not([class]),li a:not([class]),td a:not([class]),article a:not([class]),blockquote a:not([class]){ text-decoration:underline; text-underline-offset:3px; }
/* Dark mode: inline white sections and gold-on-tint code tags */
html[data-theme="dark"] [style*="background:#fff"]{ background:var(--fb-surface) !important; }
html[data-theme="dark"] code{ color:var(--fb-warn-text); background:var(--fb-surface-2); }

/* ---------- Dark mode: pages use --green for both text and fills. Text gets the light green;
   every element that uses it as a fill keeps the darker button green with white text. ---------- */
html[data-theme="dark"]{ --green:#6fd0ab; --green-d:#8fdcbd; --gold:var(--fb-gold); --gold-d:var(--fb-gold-text); --gold-tint:var(--fb-gold-tint); }
html[data-theme="dark"] :is(.bp,.btn-primary,.capture button,.join,.nav .cta,.printbtn,.prof,.logo .g,.logo .globe,.ctable th,.rtable th,.vtable th,th,.nbtn,.sbtn){
  background:var(--fb-accent) !important; color:#ffffff !important;
}
html[data-theme="dark"] :is(.bp,.btn-primary,.join,.nav .cta,.printbtn,.prof,.nbtn):hover{ background:var(--fb-accent-hover) !important; }
html[data-theme="dark"] .obtn:hover{ background:var(--fb-surface-2) !important; color:var(--fb-ink) !important; }
html[data-theme="dark"] .news{ background:#13372c; }
html[data-theme="dark"] .news p{ color:#d9e8e1; }
html[data-theme="dark"] [style*="color:#155c46"]{ color:var(--fb-accent-text) !important; }
html[data-theme="dark"] [style*="color:#56616a"]{ color:var(--fb-text-3) !important; }
html[data-theme="dark"] [style*="background:#e8f2ed"]{ background:var(--fb-accent-tint) !important; border-color:var(--fb-hairline) !important; color:var(--fb-ink); }
html[data-theme="dark"] [style*="background:#e8f2ed"] *{ color:inherit; }

/* ---------- Paid move plan: homepage section ---------- */
.fb-plan{ background:var(--fb-surface); border-bottom:1px solid var(--fb-hairline); padding:64px 0; }
.fb-plan-in{ display:grid; grid-template-columns:7fr 5fr; gap:48px; align-items:center; }
.fb-plan h2{ color:var(--fb-ink); font-size:32px; line-height:1.15; font-weight:700; letter-spacing:-.02em; margin:0 0 12px; }
.fb-plan p{ color:var(--fb-text-2); font-size:16px; line-height:1.65; max-width:60ch; margin:0; }
.fb-plan-card{ background:var(--fb-bg); border:1px solid var(--fb-hairline); border-radius:var(--fb-radius-lg); padding:24px; }
.fb-plan-price{ font-size:36px; font-weight:700; color:var(--fb-ink); line-height:1; }
.fb-plan-card .fb-why{ margin:16px 0 20px; font-size:15px; color:var(--fb-ink); }
.fb-plan-cta{ display:flex; align-items:center; justify-content:center; height:48px; font-size:15px; }
.fb-plan-card .fb-plan-note{ font-size:13px; color:var(--fb-text-3); margin-top:12px; }
@media (max-width:860px){ .fb-plan-in{ grid-template-columns:1fr; gap:24px; } }
@media (max-width:620px){ .fb-plan h2{ font-size:26px; } }
/* Nav link to the plan, added by fb.js */
a.fb-planlink{ font-weight:600 !important; color:var(--fb-accent-text) !important; }
.hero a.fb-planlink{ color:#ffffff !important; text-decoration:underline; text-underline-offset:4px; }
.topbar a.fb-back.fb-planlink{ margin-inline-start:0; color:#ffffff !important; background:rgba(255,255,255,.12); }
.topbar a.fb-back + a.fb-planlink{ margin-inline-start:8px; }
@media (max-width:480px){ .topbar .fb-back:not(.fb-planlink) span:last-child{ display:none; } }

/* ---------- Warm theme contrast fixes ---------- */
.logo small{ color:var(--fb-gold-text) !important; }
.hero .logo small,.topbar .logo small{ color:#f3dca8 !important; }
.news p{ color:#f1f8f5 !important; }
/* The consult page's "Sam" box keeps its dark green background */
.card.sam{ background:linear-gradient(135deg,#0e3b2e,#155c46) !important; border-color:transparent; }
.card.sam a{ color:#f3cf7f; }
/* Blog sign-up boxes are light: dark text, not the white used on dark bands */
article .capture{ color:var(--fb-ink); }
article .capture b,article .capture h3{ color:var(--fb-accent-text) !important; }
article .capture p{ color:var(--fb-text-2) !important; }
html[data-theme="dark"] article .capture{ background:var(--fb-accent-tint) !important; }

/* =====================================================================
   Shared header + footer (markup from chrome.mjs, same on every page)
   Type: Cormorant Garamond for the wordmark and display, DM Sans for text.
   ===================================================================== */
:root{
  --fb-font:"DM Sans","Segoe UI Variable Text","Segoe UI",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --fb-serif:"Cormorant Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --fb-glass:rgba(247,243,234,.8);
  --fb-glass-edge:rgba(31,45,54,.1);
  --fb-footer:#1f2d36;
  --fb-cream-ink:#fffdf8;
  --fb-sand:#e9e2d4;
}
html[data-theme="dark"]{
  --fb-glass:rgba(17,24,20,.8);
  --fb-glass-edge:rgba(255,255,255,.08);
  --fb-footer:#0c1310;
  --fb-sand:#16241e;
}
/* Both languages are in the shared markup: show the one that matches <html lang> */
html:not([lang="ar"]) [data-l="ar"],html:not([lang="fr"]) [data-l="fr"],html:not([lang="pt"]) [data-l="pt"],
html[lang="ar"] [data-l="en"],html[lang="fr"] [data-l="en"],html[lang="pt"] [data-l="en"]{ display:none !important; }
.fb-legacy{ display:none !important; }
@view-transition{ navigation:auto; }
@media (prefers-reduced-motion:reduce){ @view-transition{ navigation:none; } }

header.fb-h{
  position:sticky; top:0; z-index:60; color:var(--fb-ink);
  background:var(--fb-glass); border-bottom:1px solid var(--fb-glass-edge);
  -webkit-backdrop-filter:saturate(1.4) blur(16px); backdrop-filter:saturate(1.4) blur(16px);
  transition:background-color .35s var(--fb-ease),color .35s var(--fb-ease),border-color .35s var(--fb-ease);
  font-family:var(--fb-font);
}
body[dir="rtl"] header.fb-h{ font-family:var(--fb-font-ar); }
header.fb-h--over{ position:fixed; inset-inline:0; background:transparent; border-color:transparent;
  -webkit-backdrop-filter:none; backdrop-filter:none; color:var(--fb-cream-ink); }
header.fb-h--over.is-solid,header.fb-h--over.is-open{ background:var(--fb-glass); border-color:var(--fb-glass-edge); color:var(--fb-ink);
  -webkit-backdrop-filter:saturate(1.4) blur(16px); backdrop-filter:saturate(1.4) blur(16px); }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  header.fb-h,header.fb-h--over.is-solid,header.fb-h--over.is-open{ background:var(--fb-bg); }
}
.fb-h-in{ max-width:1320px; margin:0 auto; height:64px; padding:0 32px; display:flex; align-items:center; gap:32px; }
.fb-h--over .fb-h-in{ height:72px; }
.fb-logo{ display:inline-flex; align-items:center; gap:8px; color:inherit !important; text-decoration:none !important;
  font-family:var(--fb-serif); font-size:24px; font-weight:600; letter-spacing:-.02em; line-height:1; white-space:nowrap; }
.fb-logo-mark{ width:28px; height:28px; flex:0 0 auto; transition:transform .6s var(--fb-ease); }
.fb-logo:hover .fb-logo-mark{ transform:rotate(45deg); }
.fb-logo-star{ fill:var(--fb-accent); }
.fb-logo-tip{ fill:var(--fb-gold); }
html[data-theme="dark"] .fb-logo-star{ fill:var(--fb-accent-text); }
.fb-h--over:not(.is-solid):not(.is-open) .fb-logo-star{ fill:var(--fb-cream-ink); }
.fb-h nav.fb-h-nav{ -webkit-backdrop-filter:none; backdrop-filter:none; position:static; display:flex; align-items:center; gap:28px; margin:0 auto; padding:0;
  background:none; border:0; box-shadow:none; height:auto; z-index:auto; font-size:14px; font-weight:500; }
.fb-h-nav a{ position:relative; color:inherit; text-decoration:none; opacity:.84; padding:8px 0; white-space:nowrap; transition:opacity .2s var(--fb-ease); }
.fb-h-nav a::after{ content:""; position:absolute; inset-inline:0; bottom:2px; height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:left; transition:transform .3s var(--fb-ease); }
body[dir="rtl"] .fb-h-nav a::after{ transform-origin:right; }
.fb-h-nav a:hover,.fb-h-nav a[aria-current]{ opacity:1; }
.fb-h-nav a:hover::after,.fb-h-nav a[aria-current]::after{ transform:scaleX(1); }
.fb-h-nav a:active{ opacity:.7; }
.fb-h-nav .fb-h-nav-plan{ display:none; }
.fb-h-act{ display:flex; align-items:center; gap:12px; }
.fb-ico-globe{ --i:url("/assets/icons/globe.svg"); }
.fb-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.fb-h-lang{ position:relative; display:inline-flex; align-items:center; height:36px; border:1px solid currentColor; border-radius:var(--fb-radius); opacity:.86; transition:opacity .2s var(--fb-ease),background-color .2s var(--fb-ease); }
.fb-h-lang:hover,.fb-h-lang:focus-within{ opacity:1; background:rgba(127,127,127,.12); }
.fb-h-lang .fb-ico{ position:absolute; inset-inline-start:10px; width:16px; height:16px; pointer-events:none; }
.fb-h-lang select{ appearance:none; -webkit-appearance:none; height:100%; padding:0 12px 0 32px; border:0; background:transparent; color:inherit; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
body[dir="rtl"] .fb-h-lang select{ padding:0 32px 0 12px; }
.fb-h-lang select:focus-visible{ outline:none; }
.fb-h-lang:focus-within{ outline:2px solid var(--fb-ring); outline-offset:2px; }
.fb-h-lang option{ color:#1f2d36; background:#fff; }
.fb-h .fb-theme{ background:transparent; border-color:currentColor; color:inherit; opacity:.86; }
.fb-h .fb-theme:hover{ opacity:1; background:rgba(127,127,127,.12); border-color:currentColor; }
.fb-h-cta{ display:inline-flex; align-items:center; gap:4px; height:36px; padding:0 16px; border:1px solid currentColor; border-radius:var(--fb-radius);
  color:inherit !important; text-decoration:none !important; font-size:13px; font-weight:600; white-space:nowrap;
  transition:background-color .2s var(--fb-ease),color .2s var(--fb-ease),border-color .2s var(--fb-ease); }
.fb-h-cta b{ font-weight:700; color:var(--fb-gold-text); transition:color .2s var(--fb-ease); }
.fb-h-cta:hover{ background:var(--fb-ink); border-color:var(--fb-ink); color:var(--fb-bg) !important; }
.fb-h-cta:hover b{ color:inherit; }
.fb-h-cta:active{ transform:translateY(1px); }
.fb-h--over:not(.is-solid):not(.is-open) .fb-h-cta b{ color:#f0dca4; }
.fb-h--over:not(.is-solid):not(.is-open) .fb-h-cta:hover{ background:var(--fb-cream-ink); border-color:var(--fb-cream-ink); color:#1f2d36 !important; }
.fb-h-menu{ display:none; place-items:center; width:40px; height:40px; padding:0; border:1px solid currentColor; border-radius:var(--fb-radius);
  background:transparent; color:inherit; cursor:pointer; opacity:.9; }
.fb-h-menu:hover{ opacity:1; background:rgba(127,127,127,.12); }
@media (max-width:1100px){ .fb-h nav.fb-h-nav{ gap:20px; } .fb-h-in{ gap:20px; padding:0 24px; } }
@media (max-width:1023px){
  .fb-h-in,.fb-h--over .fb-h-in{ height:64px; padding:0 16px; gap:12px; }
  .fb-h nav.fb-h-nav{ display:none; }
  .fb-h-act{ margin-inline-start:auto; }
  .fb-h-menu{ display:inline-grid; }
  .fb-h.is-open nav.fb-h-nav{ display:flex; position:absolute; top:100%; inset-inline:0; flex-direction:column; align-items:stretch; gap:0;
    padding:8px 16px 24px; background:var(--fb-bg); border-bottom:1px solid var(--fb-hairline); max-height:calc(100dvh - 64px); overflow:auto; }
  .fb-h.is-open .fb-h-nav a{ padding:16px 0; border-bottom:1px solid var(--fb-hairline); font-family:var(--fb-serif); font-size:24px; font-weight:500; opacity:1; color:var(--fb-ink); }
  body[dir="rtl"] .fb-h.is-open .fb-h-nav a{ font-family:var(--fb-font-ar); font-size:20px; }
  .fb-h.is-open .fb-h-nav a::after{ display:none; }
  .fb-h.is-open .fb-h-nav .fb-h-nav-plan{ display:block; color:var(--fb-accent-text); border-bottom:0; }
}
@media (max-width:560px){ .fb-h-cta{ display:none !important; } .fb-logo{ font-size:22px; } }
@media (prefers-reduced-motion:reduce){ header.fb-h,.fb-logo-mark,.fb-h-nav a::after{ transition:none; } }

/* Footer */
footer.fb-f{ background:var(--fb-footer); color:#f7f3ea; padding:80px 32px 24px; margin:0; font-size:14px; text-align:start; border:0; }
.fb-f-in{ max-width:1120px; margin:0 auto 64px; display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:40px; }
footer.fb-f .fb-logo{ color:#f7f3ea !important; }
footer.fb-f .fb-logo-star{ fill:#f7f3ea; }
.fb-f-brand p{ margin:20px 0 0; max-width:240px; font-family:var(--fb-serif); font-size:24px; line-height:1.15; color:rgba(247,243,234,.78); }
body[dir="rtl"] .fb-f-brand p{ font-family:var(--fb-font-ar); font-size:18px; line-height:1.6; }
.fb-f-col{ display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
footer.fb-f .fb-f-col h2{ margin:0 0 8px; font-family:var(--fb-serif); font-size:20px; font-weight:500; letter-spacing:0; color:#ecd9a2; }
body[dir="rtl"] footer.fb-f .fb-f-col h2{ font-family:var(--fb-font-ar); font-size:16px; font-weight:700; }
footer.fb-f .fb-f-col a{ color:rgba(247,243,234,.78); font-size:14px; text-decoration:none; transition:color .2s var(--fb-ease); }
footer.fb-f .fb-f-col a:hover{ color:#fff; text-decoration:underline; }
footer.fb-f .fb-f-legal{ max-width:1120px; margin:0 auto; padding-top:20px; border-top:1px solid rgba(247,243,234,.16); font-size:12px; color:rgba(247,243,234,.68); }
@media (max-width:760px){
  footer.fb-f{ padding:56px 16px 24px; }
  .fb-f-in{ grid-template-columns:1fr 1fr; gap:40px 20px; margin-bottom:48px; }
  .fb-f-brand{ grid-column:1 / -1; }
}

/* Scroll reveal (fb.js adds .fb-reveal-on only when motion is allowed) */
.fb-reveal-on [data-reveal]{ opacity:0; transform:translateY(16px); transition:opacity .7s var(--fb-ease),transform .7s var(--fb-ease); }
.fb-reveal-on [data-reveal].is-in{ opacity:1; transform:none; }
.fb-reveal-on [data-reveal="2"]{ transition-delay:.08s; }
.fb-reveal-on [data-reveal="3"]{ transition-delay:.16s; }
.fb-reveal-on [data-reveal="4"]{ transition-delay:.24s; }
/* Page-level link styles (profiles underline every link with a border) must not reach the shared chrome */
.fb-logo,.fb-h-nav a,footer.fb-f a{ border-bottom:0; }

/* ---------- Partner toolkit (assets/partners.js renders into [data-fb-partners]) ---------- */
.fb-pt{ max-width:1120px; margin:0 auto; padding:56px 32px; }
.fb-pt-wrap{ background:var(--fb-surface-2); border-top:1px solid var(--fb-hairline); }
.fb-pt-title{ margin:0; font-family:var(--fb-serif); font-size:34px; font-weight:500; letter-spacing:-.02em; line-height:1.1; color:var(--fb-ink); }
body[dir="rtl"] .fb-pt-title{ font-family:var(--fb-font-ar); font-weight:700; font-size:28px; }
.fb-pt-lead{ margin:8px 0 24px; max-width:60ch; font-size:15px; color:var(--fb-text-2); }
.fb-pt-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
.fb-pt-card{ display:flex; flex-direction:column; gap:4px; height:100%; padding:20px; border:1px solid var(--fb-hairline); border-radius:12px;
  background:var(--fb-surface); color:var(--fb-ink); text-decoration:none !important; border-bottom-width:1px;
  transition:transform .3s var(--fb-ease),border-color .3s var(--fb-ease),box-shadow .3s var(--fb-ease); }
.fb-pt-card:hover{ transform:translateY(-2px); border-color:var(--fb-border-strong); box-shadow:0 10px 24px -14px rgba(31,45,54,.35); }
.fb-pt-card:active{ transform:none; }
.fb-pt-cat{ font-size:12px; font-weight:600; color:var(--fb-accent-text); }
.fb-pt-name{ display:flex; align-items:center; gap:8px; font-size:18px; font-weight:600; }
.fb-pt-name .fb-ico{ width:14px; height:14px; opacity:.5; transition:transform .25s var(--fb-ease),opacity .2s; }
.fb-pt-card:hover .fb-pt-name .fb-ico{ opacity:1; transform:translateX(3px); }
.fb-pt-desc{ font-size:14px; line-height:1.5; color:var(--fb-text-2); }
.fb-pt-more{ display:inline-flex; align-items:center; gap:8px; margin-top:20px; font-size:14px; font-weight:600; color:var(--fb-accent-text) !important; }
.fb-pt-more .fb-ico{ width:14px; height:14px; }
.fb-pt-note{ margin:16px 0 0; max-width:80ch; font-size:12px; line-height:1.5; color:var(--fb-text-3); }
@media (max-width:760px){ .fb-pt{ padding:40px 16px; } .fb-pt-title{ font-size:28px; } }
@media (prefers-reduced-motion:reduce){ .fb-pt-card,.fb-pt-name .fb-ico{ transition:none; } .fb-pt-card:hover{ transform:none; } }

/* Brazil partner box (Ask Sam), injected by build.mjs on Brazil pages */
.fb-sam{ background:#0e3b30; color:#fbf8f1; }
.fb-sam-in{ max-width:1120px; margin:0 auto; padding:48px 32px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; }
.fb-sam-in > div{ max-width:62ch; min-width:0; }
.fb-sam-kicker{ margin:0 0 6px; font-size:13px; font-weight:600; color:#f0d79a; }
.fb-sam h2{ margin:0; font-family:var(--fb-serif); font-size:32px; font-weight:500; line-height:1.1; color:#fbf8f1; }
body[dir="rtl"] .fb-sam h2{ font-family:var(--fb-font-ar); font-weight:700; font-size:26px; line-height:1.4; }
.fb-sam p{ margin:10px 0 0; color:rgba(251,248,241,.86); }
.fb-sam-btn{ display:inline-flex; align-items:center; min-height:48px; padding:0 24px; border-radius:var(--fb-radius); background:#cf9f3d; color:#2a1e03 !important; font-weight:700; text-decoration:none !important; border-bottom:0 !important; transition:background-color .2s var(--fb-ease),transform .2s var(--fb-ease); }
.fb-sam-btn:hover{ background:#dcae4c; transform:translateY(-2px); }
@media (max-width:760px){ .fb-sam-in{ padding:40px 16px; } .fb-sam h2{ font-size:26px; } }
/* Full toolkit page: 9 partners in a clean 3 x 3 */
[data-fb-partners="full"] .fb-pt-grid{ grid-template-columns:repeat(3,1fr); }
@media (max-width:860px){ [data-fb-partners="full"] .fb-pt-grid{ grid-template-columns:1fr; } }
/* Homepage: header lines up with the hero text on wide screens */
@media (min-width:1024px){ .fb-h--over .fb-h-in{ max-width:none; padding-inline:6vw; } }

/* Rising-sun logo: the sun is always gold */
.fb-logo-star,html[data-theme="dark"] .fb-logo-star,.fb-h--over:not(.is-solid):not(.is-open) .fb-logo-star,footer.fb-f .fb-logo-star{ fill:#e0a93b; }
.fb-logo:hover .fb-logo-mark{ transform:translateY(-2px); }

/* Three-bird logo + "Bound for anywhere" (Oct 2026). Birds take the text colour, the lead bird is gold. */
.fb-logo{ gap:10px; font-size:20px; letter-spacing:-.01em; }
.fb-logo-mark{ width:52px; height:28px; }
.fb-logo-bird{ fill:currentColor; }
.fb-logo-gold{ fill:#e0a93b; }
.fb-h--over:not(.is-solid):not(.is-open) .fb-logo-gold{ fill:#f2c869; }
.fb-logo:hover .fb-logo-mark{ transform:translate(3px,-2px); }
.fb-logo-words{ display:flex; flex-direction:column; line-height:1; }
.fb-logo-tag{ margin-top:4px; font-family:var(--fb-font); font-size:9.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; opacity:.78; }
body[dir="rtl"] .fb-logo-tag{ font-family:var(--fb-font-ar); font-size:11px; letter-spacing:0; text-transform:none; }
footer.fb-f .fb-logo{ font-size:24px; }
footer.fb-f .fb-logo-mark{ width:60px; height:32px; }
@media (max-width:560px){ .fb-logo{ font-size:19px; gap:8px; } .fb-logo-mark{ width:46px; height:25px; } }
@media (max-width:359px){ .fb-logo-tag{ display:none; } }
@media (prefers-reduced-motion:reduce){ .fb-logo:hover .fb-logo-mark{ transform:none; } }

/* Rising name: letters climb, the birds take off from the last letter */
.fb-logo-name{ display:inline-flex; align-items:flex-start; direction:ltr; }
.fb-logo-name > span{ display:inline-block; }
.fb-logo-name .fb-logo-mark{ width:44px; height:24px; margin:-15px 0 0 2px; }
footer.fb-f .fb-logo-name .fb-logo-mark{ width:52px; height:28px; margin-top:-18px; }
.fb-logo:hover .fb-logo-name .fb-logo-mark{ transform:translate(4px,-3px); }
@media (max-width:560px){ .fb-logo-name .fb-logo-mark{ width:38px; height:21px; margin-top:-13px; } }
