/* FA Global Visa Navigator
   Scoped entirely under .favg-app so it cannot leak into the host theme.
   Tokens are set inline by the plugin from the brand settings. */

.favg-app{
	--favg-primary:#0A3D62;
	--favg-primary-deep:#07293f;
	--favg-accent:#245897;
	--favg-highlight:#0E7490;
	--favg-ink:#101a24;
	--favg-ink-2:#54606d;
	--favg-ink-3:#7d8894;
	--favg-line:#e3e9f0;
	--favg-line-2:#eff3f8;
	--favg-bg:#ffffff;
	--favg-bg-2:#f7f9fc;
	--favg-bg-3:#eaf1f8;
	--favg-good:#0a7d33;
	--favg-warn:#b45309;
	--favg-bad:#a83434;
	--favg-radius:14px;
	--favg-radius-sm:10px;
	--favg-shadow-1:0 1px 2px rgba(10,35,60,.05);
	--favg-shadow-2:0 2px 4px rgba(10,35,60,.05),0 12px 28px -10px rgba(10,35,60,.16);
	--favg-shadow-3:0 4px 8px rgba(10,35,60,.07),0 22px 48px -16px rgba(10,35,60,.24);
	--favg-shadow:var(--favg-shadow-2);
	--favg-max:1180px;

	box-sizing:border-box;
	max-width:var(--favg-max);
	margin:0 auto;
	padding:0 20px 72px;
	color:var(--favg-ink);
	font-size:17px;
	line-height:1.65;
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
	text-rendering:optimizeLegibility;
}
.favg-app *,.favg-app *::before,.favg-app *::after{box-sizing:border-box}
.favg-app img,.favg-app svg{max-width:100%}
/* Underlines belong in running prose, not on cards, chips, tabs, nav or data
   rows. A link that IS the whole list item needs no underline to be legible;
   one sitting mid-sentence does. The doubled .favg-app outranks a host theme's
   `.entry-content a` rule, which is what forced underlines back on before. */
.favg-app.favg-app a{color:var(--favg-accent);text-decoration:none;transition:color .15s ease}
.favg-app.favg-app :is(p,dd,figcaption,blockquote,.favg-prose)>a:not([class]){
	text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em;
	text-decoration-color:color-mix(in srgb,var(--favg-accent) 38%,transparent);
}
.favg-app.favg-app a:hover{color:var(--favg-primary)}
.favg-app.favg-app :is(p,dd,figcaption,blockquote,.favg-prose)>a:not([class]):hover{text-decoration-color:currentColor}
.favg-app a:focus-visible{outline:2px solid var(--favg-highlight);outline-offset:3px;border-radius:3px}
.favg-app h1,.favg-app h2,.favg-app h3,.favg-app h4{
	color:var(--favg-primary);line-height:1.22;margin:0 0 .5em;font-weight:700;letter-spacing:-.011em;
}
.favg-app h1{font-size:clamp(2.1rem,1.25rem + 2.6vw,3.15rem);margin-top:.1em;letter-spacing:-.022em;line-height:1.12}
.favg-app h2{font-size:clamp(1.45rem,1.08rem + 1.3vw,2.05rem);margin-top:0;letter-spacing:-.018em}
.favg-app h3{font-size:1.18rem;margin-top:1.5em;letter-spacing:-.012em}
.favg-app p{margin:0 0 1em}
.favg-app ul,.favg-app ol{margin:0 0 1.1em;padding-left:1.25em}
.favg-app li{margin:.35em 0}
.favg-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}

/* ---------------------------------------------------------------- chrome */
.favg-crumbs{font-size:.82rem;margin:1.4em 0 .6em;color:var(--favg-ink-2)}
.favg-crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4em}
.favg-crumbs li+li::before{content:"/";margin-right:.4em;color:var(--favg-line)}
.favg-crumbs a{text-decoration:none}

.favg-toolbar{margin:1.2em 0 2.4em;border-bottom:1px solid var(--favg-line);overflow-x:auto;scrollbar-width:thin}
.favg-toolbar ul{list-style:none;margin:0;padding:0;display:flex;gap:.15em;min-width:max-content}
.favg-toolbar a{
	display:block;padding:.78em 1.05em;font-size:.9rem;font-weight:600;
	color:var(--favg-ink-2);border-bottom:2.5px solid transparent;white-space:nowrap;
	transition:color .15s ease,border-color .15s ease,background .15s ease;
}
.favg-toolbar a:hover{color:var(--favg-primary);background:var(--favg-bg-2)}
.favg-toolbar a.is-active{color:var(--favg-primary);border-bottom-color:var(--favg-highlight)}

/* ------------------------------------------------------------------ hero */
.favg-hero{
	position:relative;isolation:isolate;overflow:hidden;
	padding:2.9em 2.4em 2.5em;margin:0 0 3em;border-radius:var(--favg-radius);
	background:
		radial-gradient(120% 150% at 100% 0%,rgba(36,88,151,.10),transparent 58%),
		linear-gradient(168deg,#fbfcfe 0%,var(--favg-bg-2) 55%,#eef3f9 100%);
	border:1px solid var(--favg-line);
	box-shadow:var(--favg-shadow-1);
}
/* A quiet band of brand colour anchors the panel to the site. */
.favg-hero::before{
	content:"";position:absolute;inset:0 0 auto 0;height:4px;z-index:-1;
	background:linear-gradient(90deg,var(--favg-primary),var(--favg-accent) 45%,var(--favg-highlight));
}
.favg-hero h1{max-width:19ch}
.favg-eyebrow{
	display:inline-flex;align-items:center;gap:.5em;font-size:.72rem;font-weight:700;
	letter-spacing:.1em;text-transform:uppercase;color:var(--favg-highlight);margin:0 0 .9em;
}
.favg-eyebrow::before{content:"";width:1.6em;height:2px;background:currentColor;border-radius:2px}
.favg-lede{font-size:1.16rem;line-height:1.6;color:var(--favg-ink-2);max-width:62ch}
.favg-tagline{font-size:1.06rem;color:var(--favg-ink-2);font-style:italic;max-width:62ch;margin-top:-.2em}

/* Stat blocks: the numbers are the point, so they lead. */
.favg-hero-stats{
	display:flex;flex-wrap:wrap;gap:0;margin:2em 0 0;padding:0;
	border-top:1px solid var(--favg-line);
}
.favg-hero-stats>*{max-width:15em;
	padding:1.15em 1.9em 0 0;margin-right:1.9em;font-size:.87rem;line-height:1.4;
	color:var(--favg-ink-2);border-right:1px solid var(--favg-line);
}
.favg-hero-stats>*:last-child{border-right:0;margin-right:0;padding-right:0}
.favg-hero-stats strong{
	color:var(--favg-primary);font-size:1.85rem;font-weight:800;display:block;
	line-height:1.05;letter-spacing:-.03em;margin-bottom:.15em;font-variant-numeric:tabular-nums;
}
.favg-hero-actions{display:flex;flex-wrap:wrap;gap:.7em;margin-top:2em}
.favg-page-head{padding:.4em 0 1.6em}

/* --------------------------------------------------------------- sections */
.favg-section{margin:3.4em 0}
.favg-section>h2{
	position:relative;padding-top:.85em;margin-bottom:.55em;
	border-top:1px solid var(--favg-line);
}
.favg-section>h2::before{
	content:"";position:absolute;top:-1px;left:0;width:44px;height:3px;border-radius:3px;
	background:var(--favg-highlight);
}
.favg-section-intro{color:var(--favg-ink-2);max-width:68ch;font-size:1.02rem}
.favg-summary{font-size:1.05rem;max-width:74ch}
.favg-advisory{background:#fdf3f3;border-left:4px solid var(--favg-bad);padding:1.05em 1.25em;border-radius:0 var(--favg-radius-sm) var(--favg-radius-sm) 0;font-size:.95rem}
.favg-callout{background:var(--favg-bg-3);border-left:4px solid var(--favg-accent);padding:1.05em 1.25em;border-radius:0 var(--favg-radius-sm) var(--favg-radius-sm) 0}

/* ---------------------------------------------------------------- buttons */
.favg-btn{
	display:inline-flex;align-items:center;gap:.5em;padding:.85em 1.5em;border-radius:var(--favg-radius-sm);
	font-size:.94rem;font-weight:650;border:1.5px solid transparent;cursor:pointer;line-height:1.25;
	font-family:inherit;letter-spacing:.002em;
	transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease,color .16s ease;
}
.favg-btn-primary{
	background:var(--favg-primary);color:#fff;border-color:var(--favg-primary);
	box-shadow:0 1px 2px rgba(10,61,98,.24),0 8px 18px -8px rgba(10,61,98,.5);
}
.favg-app.favg-app .favg-btn-primary{color:#fff}
.favg-btn-primary:hover{background:var(--favg-accent);border-color:var(--favg-accent);transform:translateY(-1px);
	box-shadow:0 2px 4px rgba(10,61,98,.22),0 14px 26px -10px rgba(10,61,98,.55)}
.favg-btn-ghost{background:var(--favg-bg);color:var(--favg-primary);border-color:var(--favg-line);box-shadow:var(--favg-shadow-1)}
.favg-btn-ghost:hover{border-color:var(--favg-accent);color:var(--favg-accent);transform:translateY(-1px);box-shadow:var(--favg-shadow-2)}
.favg-btn:active{transform:translateY(0)}
.favg-btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.favg-more{font-weight:650;font-size:.92rem;display:inline-flex;align-items:center;gap:.35em}
.favg-more::after{content:"\2192";transition:transform .16s ease}
.favg-more:hover::after{transform:translateX(3px)}
.favg-ext-i{width:.7em;height:.7em;margin-left:.3em;opacity:.55;vertical-align:baseline}

/* ------------------------------------------------------------------ cards */
.favg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:1.1em}
.favg-card{
	position:relative;display:block;padding:1.5em 1.45em;border:1px solid var(--favg-line);
	border-radius:var(--favg-radius);background:var(--favg-bg);color:inherit;overflow:hidden;
	box-shadow:var(--favg-shadow-1);
	transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
/* The accent rule wipes in on hover rather than sitting there permanently. */
.favg-card::before{
	content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--favg-highlight);
	transform:scaleX(0);transform-origin:left;transition:transform .22s ease;
}
.favg-card:hover{border-color:#cbd8e6;box-shadow:var(--favg-shadow-2);transform:translateY(-3px)}
.favg-card:hover::before{transform:scaleX(1)}
.favg-card h3{margin:0 0 .4em;font-size:1.06rem;color:var(--favg-primary)}
.favg-card p{margin:0;font-size:.93rem;line-height:1.55;color:var(--favg-ink-2)}
.favg-card:hover h3{color:var(--favg-accent)}

/* --------------------------------------------------------------- fact bar */
.favg-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--favg-line);
	border:1px solid var(--favg-line);border-radius:var(--favg-radius);overflow:hidden;margin:1.8em 0;
	box-shadow:var(--favg-shadow-1)}
.favg-fact{background:var(--favg-bg);padding:1.15em 1.25em;transition:background .15s ease}
.favg-fact:hover{background:var(--favg-bg-2)}
.favg-facts dt{font-size:.71rem;text-transform:uppercase;letter-spacing:.07em;color:var(--favg-ink-3);font-weight:700;margin-bottom:.35em}
.favg-facts dd{margin:0;font-size:1.06rem;font-weight:700;color:var(--favg-primary);line-height:1.32;letter-spacing:-.01em}

/* ------------------------------------------------------------- cartogram */
.favg-carto{margin:2.4em 0;padding:0}
.favg-carto-head{display:flex;flex-wrap:wrap;gap:1em;align-items:center;justify-content:space-between;margin-bottom:.9em}
.favg-carto-title{font-weight:700;color:var(--favg-primary);font-size:1.1rem}
.favg-carto-metric{
	font-family:inherit;font-size:.88rem;padding:.5em .8em;border:1px solid var(--favg-line);
	border-radius:8px;background:var(--favg-bg);color:var(--favg-ink);max-width:100%;
}
.favg-carto-canvas{position:relative;background:var(--favg-bg-2);border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:14px;overflow-x:auto}
.favg-carto-canvas svg{display:block;width:100%;height:auto;min-width:620px}
.favg-hex{cursor:pointer}
.favg-hex polygon{stroke:#fff;stroke-width:2;transition:.14s ease}
.favg-hex:hover polygon,.favg-hex:focus polygon{stroke:var(--favg-primary);stroke-width:3}
.favg-hex-label{font-size:12px;font-weight:700;fill:#fff;pointer-events:none;letter-spacing:.02em}
.favg-carto-tip{
	position:absolute;pointer-events:none;background:var(--favg-primary);color:#fff;padding:.55em .8em;
	border-radius:8px;font-size:.8rem;line-height:1.45;max-width:250px;z-index:5;box-shadow:var(--favg-shadow);
}
.favg-carto-tip strong{display:block;font-size:.92rem;margin-bottom:.15em}
.favg-carto-legend{display:flex;align-items:center;gap:.7em;margin-top:.8em;font-size:.78rem;color:var(--favg-ink-2)}
.favg-legend-ramp{flex:0 0 180px;height:9px;border-radius:5px;
	background:linear-gradient(90deg,#107a6a,#4a9b5c,#d6a82e,#c86c28,#a83434)}
.favg-carto-note{font-size:.83rem;color:var(--favg-ink-2);margin-top:.7em;max-width:70ch}

/* ------------------------------------------------------------ score bars */
.favg-scores{list-style:none;margin:0;padding:0}
.favg-scores li{display:grid;grid-template-columns:9.5em 1fr 2.4em;gap:.7em;align-items:center;margin:.5em 0;font-size:.88rem}
.favg-score-label{color:var(--favg-ink-2)}
.favg-score-track{height:9px;background:var(--favg-line-2);border-radius:5px;overflow:hidden}
.favg-score-fill{display:block;height:100%;border-radius:5px}
.favg-score-val{text-align:right;font-weight:700;color:var(--favg-primary);font-variant-numeric:tabular-nums}

/* ----------------------------------------------------------------- radar */
.favg-radar{margin:0}
.favg-radar svg{width:100%;height:auto;max-width:420px;margin:0 auto;display:block;overflow:visible}
.favg-radar-grid{fill:none;stroke:var(--favg-line);stroke-width:1}
.favg-radar-spoke{stroke:var(--favg-line);stroke-width:1}
.favg-radar-axis{font-size:11px;fill:var(--favg-ink-2)}
.favg-radar-shape{stroke-width:2}
.favg-radar-a{fill:rgba(36,88,151,.24);stroke:var(--favg-accent)}
.favg-radar-b{fill:rgba(180,83,9,.16);stroke:var(--favg-highlight)}
.favg-radar-key{font-size:.82rem;color:var(--favg-ink-2);text-align:center;margin-top:.6em}
.favg-key{display:inline-flex;align-items:center;gap:.35em;margin:0 .5em;font-weight:600}
.favg-key::before{content:"";width:11px;height:11px;border-radius:3px;display:inline-block}
.favg-key-a::before{background:var(--favg-accent)}
.favg-key-b::before{background:var(--favg-highlight)}
.favg-radar-note{display:block;margin-top:.6em;font-style:italic;font-weight:400;max-width:52ch;margin-inline:auto}

/* ----------------------------------------------------------- cost stack */
.favg-stack{margin:2.4em 0;border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.3em}
.favg-stack-head{display:flex;flex-wrap:wrap;gap:.6em;justify-content:space-between;align-items:baseline;margin-bottom:.9em}
.favg-stack-head strong{color:var(--favg-primary)}
.favg-stack-total{font-weight:700;color:var(--favg-highlight)}
.favg-stack-bar{display:flex;height:34px;border-radius:7px;overflow:hidden;background:var(--favg-line-2)}
.favg-stack-seg{display:block;height:100%;transition:.2s}
.favg-stack-key{list-style:none;margin:1em 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.4em .9em}
.favg-stack-key li{display:flex;align-items:center;gap:.5em;font-size:.85rem;margin:0}
.favg-swatch{width:12px;height:12px;border-radius:3px;flex:0 0 12px}
.favg-stack-label{flex:1;color:var(--favg-ink-2)}
.favg-stack-val{font-weight:700;font-variant-numeric:tabular-nums}

/* ---------------------------------------------------------------- ladder */
.favg-ladder{margin:2.6em 0;border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.4em}
.favg-ladder-head{margin-bottom:1em}
.favg-ladder-head strong{display:block;color:var(--favg-primary);font-size:1.12rem;margin-bottom:.3em}
.favg-ladder-sub{font-size:.9rem;color:var(--favg-ink-2);display:block;max-width:70ch}
.favg-ladder-input{display:flex;flex-wrap:wrap;align-items:center;gap:.7em;margin-bottom:1.2em;padding:.9em 1em;background:var(--favg-bg-2);border-radius:8px}
.favg-ladder-input label{font-size:.88rem;font-weight:600;color:var(--favg-ink-2)}
.favg-ladder-income{width:9em;padding:.5em .7em;border:1px solid var(--favg-line);border-radius:7px;font-family:inherit;font-size:.95rem}
.favg-ladder-count{font-size:.88rem;font-weight:700;color:var(--favg-good)}
.favg-ladder-rows{list-style:none;margin:0;padding:0}
.favg-ladder-row{display:grid;grid-template-columns:10em 1fr 5.2em;gap:.6em;align-items:center;padding:.38em 0;border-bottom:1px solid var(--favg-line-2);margin:0}
.favg-ladder-row .favg-ladder-prog{grid-column:2/4;font-size:.76rem;color:var(--favg-ink-2);margin-top:-.2em}
.favg-ladder-name{font-size:.9rem;font-weight:600;text-decoration:none}
.favg-ladder-track{height:11px;background:var(--favg-line-2);border-radius:6px;overflow:hidden}
.favg-ladder-fill{display:block;height:100%;background:var(--favg-accent);border-radius:6px;transition:.2s}
.favg-ladder-row.is-ok .favg-ladder-fill{background:var(--favg-good)}
.favg-ladder-row.is-ok .favg-ladder-name{color:var(--favg-good)}
.favg-ladder-row.is-out{opacity:.42}
.favg-ladder-val{text-align:right;font-weight:700;font-size:.86rem;font-variant-numeric:tabular-nums}
.favg-ladder-note{font-size:.83rem;color:var(--favg-ink-2);margin-top:1em;max-width:72ch}

/* -------------------------------------------------------------- timeline */
.favg-timeline{margin:2.6em 0;border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.4em}
.favg-timeline-head{margin-bottom:1.2em}
.favg-timeline-head strong{display:block;color:var(--favg-primary);font-size:1.1rem}
.favg-timeline-total{font-size:.88rem;color:var(--favg-highlight);font-weight:600}
.favg-timeline-rows{list-style:none;margin:0;padding:0;counter-reset:tl}
.favg-tl-row{display:grid;grid-template-columns:2em 1fr;gap:.8em;padding:.85em 0;border-bottom:1px solid var(--favg-line-2);margin:0}
.favg-tl-index{width:26px;height:26px;border-radius:50%;background:var(--favg-bg-3);color:var(--favg-primary);
	display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700}
.favg-tl-title{display:block;font-weight:650;color:var(--favg-primary);font-size:.98rem}
.favg-tl-track{display:block;position:relative;height:8px;background:var(--favg-line-2);border-radius:5px;margin:.45em 0}
.favg-tl-bar{position:absolute;top:0;height:100%;border-radius:5px;background:var(--favg-accent);min-width:6px}
.favg-tl-owner-us .favg-tl-bar{background:var(--favg-highlight)}
.favg-tl-owner-consulate .favg-tl-bar{background:#6a8caf}
.favg-tl-owner-us .favg-tl-index{background:#fdf1e3;color:var(--favg-highlight)}
.favg-tl-detail{display:block;font-size:.9rem;color:var(--favg-ink-2)}
.favg-tl-meta{display:block;font-size:.78rem;color:var(--favg-ink-2);opacity:.85;margin-top:.25em}
.favg-timeline-legend{display:flex;flex-wrap:wrap;gap:.4em 1.2em;align-items:center;font-size:.8rem;color:var(--favg-ink-2);margin-top:1em}
.favg-tl-swatch{width:14px;height:9px;border-radius:3px;display:inline-block;margin-right:.3em}
.favg-timeline-legend .favg-tl-owner-you{background:var(--favg-accent)}
.favg-timeline-legend .favg-tl-owner-us{background:var(--favg-highlight)}
.favg-timeline-legend .favg-tl-owner-consulate{background:#6a8caf}

/* -------------------------------------------------------------- pipeline */
.favg-pipeline{margin:2.6em 0;background:var(--favg-bg-2);border-radius:var(--favg-radius);padding:1.5em;border:1px solid var(--favg-line)}
.favg-pipeline-head{margin-bottom:1.2em}
.favg-pipeline-head strong{display:block;color:var(--favg-primary);font-size:1.12rem;margin-bottom:.35em}
.favg-pipeline-dest{font-size:.9rem;color:var(--favg-ink-2)}
.favg-badge{display:inline-block;padding:.18em .6em;border-radius:20px;font-size:.76rem;font-weight:700}
.favg-badge-good{background:#e6f4ea;color:var(--favg-good)}
.favg-badge-warn{background:#fdf1e3;color:var(--favg-warn)}
.favg-pipe{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6em}
.favg-pipe-step{background:var(--favg-bg);border:1px solid var(--favg-line);border-radius:9px;padding:.9em;position:relative;margin:0}
.favg-pipe-step.is-key{border-color:var(--favg-highlight);border-width:1.5px}
.favg-pipe-num{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;border-radius:50%;
	background:var(--favg-primary);color:#fff;font-size:.72rem;font-weight:700;margin-bottom:.45em}
.favg-pipe-step.is-key .favg-pipe-num{background:var(--favg-highlight)}
.favg-pipe-title{display:block;font-weight:700;font-size:.92rem;color:var(--favg-primary);margin-bottom:.3em}
.favg-pipe-detail{display:block;font-size:.83rem;color:var(--favg-ink-2);line-height:1.5}
.favg-pipe-flag{display:block;margin-top:.5em;font-size:.8rem;font-weight:600;color:var(--favg-highlight)}
.favg-pipeline-warn{margin:1.2em 0 0;padding:.85em 1em;background:#fdf1e3;border-radius:8px;font-size:.88rem;color:#7a3d0a}

/* --------------------------------------------------------------- runway */
.favg-runway{margin:2.6em 0;border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.5em}
.favg-runway-head h3{margin-top:0}
.favg-runway-head p{font-size:.92rem;color:var(--favg-ink-2);max-width:70ch}
.favg-runway-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,1.3fr);gap:1.8em;margin-top:1.2em}
.favg-slider{display:block;margin-bottom:1em}
.favg-slider-label{display:block;font-size:.83rem;font-weight:600;color:var(--favg-ink-2);margin-bottom:.3em}
.favg-slider-row{display:flex;align-items:center;gap:.7em}
.favg-slider input[type=range]{flex:1;accent-color:var(--favg-accent);min-width:0}
.favg-slider output{min-width:5.6em;text-align:right;font-weight:700;font-size:.9rem;color:var(--favg-primary);font-variant-numeric:tabular-nums}
.favg-runway-verdict{font-size:1.06rem;font-weight:650;color:var(--favg-primary);padding:.7em .9em;background:var(--favg-bg-3);border-radius:8px}
.favg-runway-chart svg{width:100%;height:auto}
.favg-line-axis{stroke:var(--favg-line);stroke-width:1}
.favg-line-area{fill:rgba(36,88,151,.12)}
.favg-line-path{fill:none;stroke:var(--favg-accent);stroke-width:2.5;stroke-linejoin:round}
.favg-line-tick{font-size:11px;fill:var(--favg-ink-2)}
.favg-line-zero{stroke:var(--favg-bad);stroke-width:1.5;stroke-dasharray:4 3}
.favg-runway-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6em;margin:1em 0 0}
.favg-runway-stats>div{background:var(--favg-bg-2);border-radius:8px;padding:.7em .8em}
.favg-runway-stats dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--favg-ink-2);font-weight:700}
.favg-runway-stats dd{margin:.2em 0 0;font-weight:700;color:var(--favg-primary);font-variant-numeric:tabular-nums}
.favg-runway-note{font-size:.83rem;color:var(--favg-ink-2);margin-top:1.2em;max-width:76ch}

/* ---------------------------------------------------------------- wizard */
.favg-wizard{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.6em;margin:1.6em 0}
.favg-wiz-steps{list-style:none;margin:0;padding:0}
.favg-wiz-step{display:none;margin:0}
.favg-wiz-step.is-active{display:block}
.favg-wiz-step h2{margin-top:0;font-size:1.3rem}
.favg-wiz-help{font-size:.9rem;color:var(--favg-ink-2);max-width:64ch}
.favg-choices{display:flex;flex-wrap:wrap;gap:.6em;margin:1em 0}
.favg-choices label{position:relative;cursor:pointer}
.favg-choices input{position:absolute;opacity:0;width:0;height:0}
.favg-choices span{display:block;padding:.65em 1.2em;border:1.5px solid var(--favg-line);border-radius:9px;font-size:.94rem;font-weight:600;transition:.14s}
.favg-choices input:checked+span{border-color:var(--favg-primary);background:var(--favg-primary);color:#fff}
.favg-choices input:focus-visible+span{outline:2px solid var(--favg-highlight);outline-offset:2px}
.favg-choices-multi span{font-weight:500;font-size:.88rem}
.favg-wiz-range{width:100%;max-width:460px;accent-color:var(--favg-accent);display:block;margin:1em 0 .3em}
.favg-wiz-out{font-size:1.5rem;font-weight:700;color:var(--favg-primary);font-variant-numeric:tabular-nums}
.favg-wiz-out-plain{font-size:1rem}
.favg-weights{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.9em 1.6em}
.favg-weight{display:block}
.favg-weight-label{display:block;font-size:.85rem;font-weight:600;color:var(--favg-ink-2)}
.favg-weight .favg-wiz-range{margin:.3em 0 0}
.favg-wiz-nav{display:flex;align-items:center;gap:.7em;margin-top:1.6em;padding-top:1.2em;border-top:1px solid var(--favg-line)}
.favg-wiz-progress{flex:1;font-size:.85rem;color:var(--favg-ink-2)}
.favg-wiz-results{margin-top:2em}
.favg-match{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.1em 1.2em;margin-bottom:.8em;display:grid;
	grid-template-columns:4.4em 1fr;gap:1em;align-items:start}
.favg-match.is-top{border-color:var(--favg-highlight);border-width:2px}
.favg-match-score{text-align:center}
.favg-match-score b{display:block;font-size:1.6rem;font-weight:800;color:var(--favg-primary);line-height:1}
.favg-match-score span{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--favg-ink-2);font-weight:700}
.favg-match h3{margin:0 0 .25em;font-size:1.12rem}
.favg-match-tag{font-size:.9rem;color:var(--favg-ink-2);margin:0 0 .5em}
.favg-match-notes{list-style:none;margin:.5em 0 0;padding:0;font-size:.86rem}
.favg-match-notes li{margin:.22em 0;padding-left:1.2em;position:relative}
.favg-match-notes li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--favg-accent)}
.favg-match-notes li.is-good::before{background:var(--favg-good)}
.favg-match-notes li.is-warn::before{background:var(--favg-warn)}
.favg-match-notes li.is-bad::before{background:var(--favg-bad)}
.favg-match-actions{margin-top:.7em;display:flex;flex-wrap:wrap;gap:.5em}
.favg-match-actions a{font-size:.85rem;font-weight:600;text-decoration:none;padding:.35em .8em;border:1px solid var(--favg-line);border-radius:7px}
.favg-match-actions a:hover{border-color:var(--favg-accent)}
.favg-excluded{margin-top:1.6em;font-size:.88rem;color:var(--favg-ink-2)}
.favg-excluded summary{cursor:pointer;font-weight:600;color:var(--favg-primary)}

/* --------------------------------------------------------- budget tool */
.favg-budget-tool{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.4em}
.favg-budget-controls{display:flex;flex-wrap:wrap;gap:1.4em;align-items:flex-end;margin-bottom:1.2em}
.favg-budget-controls .favg-slider{flex:1;min-width:250px;margin-bottom:0}
.favg-budget-out{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6em}
.favg-budget-row{border:1px solid var(--favg-line);border-radius:9px;padding:.8em .9em;font-size:.88rem}
.favg-budget-row.is-ok{border-color:var(--favg-good);background:#f4fbf6}
.favg-budget-row.is-tight{border-color:var(--favg-warn);background:#fffaf3}
.favg-budget-row.is-no{opacity:.6}
.favg-budget-row b{display:block;color:var(--favg-primary);font-size:.98rem}
.favg-budget-row span{color:var(--favg-ink-2)}

/* ------------------------------------------------------------ checklist */
.favg-checklist-tool{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.4em;margin:1.6em 0}
.favg-checklist-controls{display:flex;flex-wrap:wrap;gap:1.1em;align-items:flex-end;margin-bottom:1.4em}
.favg-checklist-controls label{display:block;font-size:.85rem;font-weight:600;color:var(--favg-ink-2)}
.favg-checklist-controls select{
	display:block;margin-top:.3em;padding:.55em .8em;border:1px solid var(--favg-line);border-radius:8px;
	font-family:inherit;font-size:.95rem;min-width:220px;max-width:100%;background:#fff;color:var(--favg-ink);
}
.favg-checklist{list-style:none;margin:1.2em 0 0;padding:0}
.favg-check-item{display:grid;grid-template-columns:1.6em 1fr;gap:.7em;padding:.85em 0;border-bottom:1px solid var(--favg-line-2);margin:0}
.favg-check-box{width:18px;height:18px;border:2px solid var(--favg-line);border-radius:4px;margin-top:.25em}
.favg-check-name{display:block;font-weight:650;color:var(--favg-primary)}
.favg-check-note{display:block;font-size:.87rem;color:var(--favg-ink-2);margin-top:.25em}
.favg-check-lead{display:block;font-size:.78rem;color:var(--favg-ink-2);opacity:.85;margin-top:.2em}
.favg-chip{display:inline-block;padding:.14em .55em;border-radius:20px;font-size:.72rem;font-weight:700;margin:.3em .3em 0 0}
.favg-chip-fed{background:#e7effa;color:var(--favg-primary)}
.favg-chip-state{background:#fdf1e3;color:var(--favg-highlight)}
.favg-chip-route{background:var(--favg-bg-3);color:var(--favg-ink-2)}
.favg-chip-none{background:var(--favg-line-2);color:var(--favg-ink-2)}
.favg-check-summary{background:var(--favg-bg-2);border-radius:9px;padding:1em 1.1em;font-size:.92rem;margin-bottom:1em}
.favg-check-summary strong{color:var(--favg-primary)}
.favg-checklist-actions{margin-top:1.2em}

/* --------------------------------------------------------------- tables */
.favg-table-wrap{overflow-x:auto;border:1px solid var(--favg-line);border-radius:var(--favg-radius)}
.favg-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:640px;background:var(--favg-bg)}
.favg-table th,.favg-table td{padding:.65em .85em;text-align:left;border-bottom:1px solid var(--favg-line-2);vertical-align:top}
.favg-table thead th{background:var(--favg-bg-3);color:var(--favg-primary);font-weight:700;font-size:.8rem;
	text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;white-space:nowrap}
.favg-table tbody th{font-weight:650;color:var(--favg-primary)}
.favg-table tbody tr:hover{background:var(--favg-bg-2)}
.favg-sortable thead th[data-sort]{cursor:pointer;user-select:none}
.favg-sortable thead th[data-sort]:hover{background:var(--favg-line-2)}
.favg-sortable thead th.is-sorted::after{content:" \2193";opacity:.7}
.favg-sortable thead th.is-sorted.is-asc::after{content:" \2191"}
.favg-table-note{font-size:.82rem;color:var(--favg-ink-2);margin-top:.8em;max-width:76ch}
.favg-dots{display:inline-flex;gap:2px}
.favg-dot{width:7px;height:7px;border-radius:50%;background:var(--favg-line);display:inline-block}
.favg-dot.is-on{background:var(--favg-accent)}

/* ----------------------------------------------------------- misc lists */
.favg-twocol{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.6em}
.favg-section-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2em;align-items:start}
.favg-list-good,.favg-list-warn{list-style:none;padding:0}
.favg-list-good li,.favg-list-warn li{position:relative;padding-left:1.6em;margin:.5em 0;font-size:.94rem}
.favg-list-good li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:50%;background:var(--favg-good)}
.favg-list-warn li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:50%;background:var(--favg-warn)}
.favg-country-grid{list-style:none;margin:.6em 0 2em;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:.7em}
.favg-country-tile{margin:0}
.favg-country-tile a{display:block;padding:1em;border:1px solid var(--favg-line);border-radius:var(--favg-radius);
	text-decoration:none;color:inherit;transition:.14s;height:100%}
.favg-country-tile a:hover{border-color:var(--favg-accent);box-shadow:var(--favg-shadow)}
.favg-country-tile.is-advisory a{border-left:4px solid var(--favg-bad)}
.favg-tile-iso{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.08em;color:#fff;background:var(--favg-primary);
	padding:.15em .45em;border-radius:4px;margin-bottom:.4em}
.favg-tile-name{display:block;font-weight:700;color:var(--favg-primary);font-size:1.02rem}
.favg-tile-tag{display:block;font-size:.83rem;color:var(--favg-ink-2);margin:.3em 0}
.favg-tile-meta{display:block;font-size:.78rem;color:var(--favg-ink-2);opacity:.9}
.favg-region{margin-top:1.8em;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--favg-highlight)}
.favg-hubs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.1em}
.favg-hub{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.1em}
.favg-hub h3{margin-top:0;font-size:1.05rem}
.favg-hub-who{font-size:.85rem;color:var(--favg-highlight);font-weight:600}
.favg-hub p{font-size:.9rem}
.favg-hub-cost{font-size:.87rem;color:var(--favg-ink-2);margin-bottom:0}
.favg-communities,.favg-official{list-style:none;padding:0}
.favg-communities li,.favg-official li{padding:.6em 0;border-bottom:1px solid var(--favg-line-2);font-size:.92rem;margin:0}
.favg-comm-type{display:inline-block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;
	background:var(--favg-bg-3);color:var(--favg-ink-2);padding:.12em .5em;border-radius:4px;margin-right:.5em}
.favg-comm-note,.favg-official-what{display:block;font-size:.85rem;color:var(--favg-ink-2);margin-top:.15em}
.favg-visa-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.1em}
.favg-visa-card{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.2em}
.favg-visa-card h3{margin-top:0;font-size:1.05rem}
.favg-visa-best{font-size:.88rem;color:var(--favg-ink-2)}
.favg-visa-facts{margin:.9em 0;display:grid;gap:.35em}
.favg-visa-facts div{display:grid;grid-template-columns:9.5em 1fr;gap:.5em;font-size:.85rem}
.favg-visa-facts dt{color:var(--favg-ink-2);font-weight:600}
.favg-visa-facts dd{margin:0;font-weight:600;color:var(--favg-primary)}
.favg-deflist div{display:grid;grid-template-columns:13em 1fr;gap:1em;padding:.6em 0;border-bottom:1px solid var(--favg-line-2)}
.favg-deflist dt{font-weight:700;color:var(--favg-primary);font-size:.9rem}
.favg-deflist dd{margin:0;font-size:.93rem}
.favg-budget-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1em;margin:1.4em 0}
.favg-tier{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.1em}
.favg-tier h3{margin-top:0}
.favg-tier dl{margin:0}
.favg-tier div{display:flex;justify-content:space-between;padding:.35em 0;border-bottom:1px solid var(--favg-line-2);font-size:.92rem}
.favg-tier dt{color:var(--favg-ink-2)}
.favg-tier dd{margin:0;font-weight:700;color:var(--favg-primary)}
.favg-doclist{display:grid;gap:.5em}
.favg-doc{border:1px solid var(--favg-line);border-radius:9px;padding:.85em 1em}
.favg-doc summary{cursor:pointer;font-weight:650;color:var(--favg-primary);list-style:none}
.favg-doc summary::-webkit-details-marker{display:none}
.favg-doc summary::before{content:"+ ";color:var(--favg-highlight);font-weight:800}
.favg-doc[open] summary::before{content:"\2212 "}
.favg-doc-name{margin-right:.5em}
.favg-doc-body{margin-top:.8em;font-size:.9rem}
.favg-doc-body p{margin:.5em 0}
.favg-faq{display:grid;gap:.5em}
.favg-faq-item{border:1px solid var(--favg-line);border-radius:9px;padding:.9em 1.1em}
.favg-faq-item summary{cursor:pointer;font-weight:650;color:var(--favg-primary);list-style:none}
.favg-faq-item summary::-webkit-details-marker{display:none}
.favg-faq-item summary::before{content:"+ ";color:var(--favg-highlight);font-weight:800}
.favg-faq-item[open] summary::before{content:"\2212 "}
.favg-faq-a{margin-top:.6em;font-size:.94rem}
.favg-faq-a p{margin:.5em 0}
.favg-glossary{margin:1.4em 0}
.favg-gloss-search input{width:100%;max-width:420px;padding:.65em .9em;border:1px solid var(--favg-line);border-radius:9px;font-family:inherit;font-size:1rem}
.favg-gloss-list{margin:1.4em 0 0}
.favg-gloss-item{padding:.75em 0;border-bottom:1px solid var(--favg-line-2)}
.favg-gloss-item dt{font-weight:700;color:var(--favg-primary)}
.favg-gloss-item dd{margin:.2em 0 0;font-size:.94rem;color:var(--favg-ink-2)}
.favg-gloss-item[hidden]{display:none}
.favg-vs-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.4em}
.favg-vs-list a{display:block;padding:.6em .8em;border:1px solid var(--favg-line);border-radius:8px;text-decoration:none;font-size:.9rem}
.favg-vs-list a:hover{border-color:var(--favg-accent)}
.favg-related-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.5em}
.favg-related-list li{display:flex;flex-direction:column;padding:.7em .9em;border:1px solid var(--favg-line);border-radius:8px;margin:0}
.favg-vs{font-size:.78rem;color:var(--favg-ink-2)}
.favg-diffs{list-style:none;padding:0}
.favg-diffs li{padding:.7em .9em;background:var(--favg-bg-2);border-radius:8px;margin:.4em 0;font-size:.94rem}
.favg-compare-form{display:flex;flex-wrap:wrap;gap:1em;align-items:flex-end}
.favg-compare-form label{display:block;font-size:.85rem;font-weight:600;color:var(--favg-ink-2)}
.favg-compare-form select{display:block;margin-top:.3em;padding:.55em .8em;border:1px solid var(--favg-line);border-radius:8px;font-family:inherit;font-size:.95rem;min-width:200px;background:#fff}
.favg-usfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2em}
.favg-usfact{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.2em}
.favg-usfact h3{margin-top:0;font-size:1.04rem}
.favg-usfact ul{font-size:.9rem;padding-left:1.1em}
.favg-links{font-size:.86rem}
.favg-prose p{max-width:76ch}
.favg-longform p{font-size:1.03rem;max-width:70ch}
.favg-subnav{margin:1.4em 0;overflow-x:auto}
.favg-subnav ul{list-style:none;margin:0;padding:0;display:flex;gap:.4em;min-width:max-content}
.favg-subnav a{display:block;padding:.45em .9em;font-size:.86rem;font-weight:600;text-decoration:none;color:var(--favg-ink-2);
	border:1px solid var(--favg-line);border-radius:20px;white-space:nowrap}
.favg-subnav a:hover,.favg-subnav a.is-active{background:var(--favg-primary);color:#fff;border-color:var(--favg-primary)}

/* ------------------------------------------------------------ freshness */
.favg-fresh{display:flex;flex-wrap:wrap;align-items:center;gap:.5em;font-size:.83rem;color:var(--favg-ink-2);
	padding:.7em .9em;background:var(--favg-bg-2);border-radius:8px;margin:1.6em 0}
.favg-fresh-dot{width:9px;height:9px;border-radius:50%;background:var(--favg-good);flex:0 0 9px}
.favg-fresh-aging .favg-fresh-dot{background:var(--favg-warn)}
.favg-fresh-stale .favg-fresh-dot,.favg-fresh-unknown .favg-fresh-dot{background:var(--favg-bad)}
.favg-fresh-text{font-weight:700;color:var(--favg-primary)}
.favg-fresh-warn{color:var(--favg-bad);font-weight:600}
.favg-fresh-src{opacity:.85}

/* --------------------------------------------------------- ask and lead */
.favg-ask,.favg-lead{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.4em;margin:2.2em 0;background:var(--favg-bg-2)}
.favg-ask h3,.favg-lead h3{margin-top:0}
.favg-ask-intro,.favg-lead p{font-size:.9rem;color:var(--favg-ink-2);max-width:70ch}
.favg-ask-form,.favg-lead-form{display:flex;flex-wrap:wrap;gap:.6em;margin-top:.9em}
.favg-ask-input,.favg-lead-email{flex:1;min-width:230px;padding:.7em .9em;border:1px solid var(--favg-line);
	border-radius:9px;font-family:inherit;font-size:.98rem;background:#fff;color:var(--favg-ink)}
.favg-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.favg-ask-out{margin-top:1em;font-size:.95rem}
.favg-ask-answer{background:#fff;border-left:4px solid var(--favg-accent);padding:.9em 1.1em;border-radius:0 8px 8px 0}
.favg-ask-answer p{margin:.4em 0}
.favg-ask-err{color:var(--favg-bad);font-weight:600}
.favg-lead-out{margin:.7em 0 0;font-size:.9rem;font-weight:600}
.favg-lead-out.is-ok{color:var(--favg-good)}
.favg-lead-out.is-err{color:var(--favg-bad)}

/* ------------------------------------------------------------------ cta */
.favg-cta{margin:2.8em 0 1.6em;background:var(--favg-primary);color:#fff;border-radius:var(--favg-radius);padding:1.8em}
.favg-cta h3{color:#fff;margin-top:0;font-size:1.24rem}
.favg-cta p{color:rgba(255,255,255,.9);font-size:.95rem;max-width:72ch}
.favg-cta em{color:#fff;font-style:normal;font-weight:700;text-decoration:underline}
.favg-cta-stat{background:rgba(255,255,255,.12);padding:.7em .9em;border-radius:8px}
.favg-cta-stat strong{color:#fff}
.favg-cta-actions{display:flex;flex-wrap:wrap;gap:.6em;margin:1.2em 0 0}
.favg-cta .favg-btn-primary{background:#fff;color:var(--favg-primary);border-color:#fff}
.favg-cta .favg-btn-primary:hover{background:var(--favg-bg-3);color:var(--favg-primary)}
.favg-cta .favg-btn-ghost{color:#fff;border-color:rgba(255,255,255,.45)}
.favg-cta .favg-btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#fff}

.favg-disclaimer{font-size:.8rem;color:var(--favg-ink-2);line-height:1.6;padding:1.2em;background:var(--favg-bg-2);
	border-radius:8px;margin-top:2em;max-width:none}
.favg-notice{padding:1em;background:var(--favg-bg-2);border-radius:8px;font-size:.92rem}
.favg-embed{padding-bottom:0}

/* --------------------------------------------------------------- mobile */
@media (max-width:820px){
	.favg-app{font-size:16px;padding:0 15px 48px}
	.favg-runway-grid{grid-template-columns:1fr}
	.favg-ladder-row{grid-template-columns:8em 1fr 4.6em}
	.favg-scores li{grid-template-columns:7.6em 1fr 2.2em;font-size:.84rem}
	.favg-visa-facts div{grid-template-columns:8em 1fr}
	.favg-deflist div{grid-template-columns:1fr;gap:.2em}
	.favg-match{grid-template-columns:1fr}
	.favg-match-score{text-align:left;display:flex;align-items:baseline;gap:.5em}
	.favg-carto-canvas svg{min-width:560px}
}
@media (max-width:520px){
	.favg-hero-stats{gap:1em}
	.favg-ladder-row{grid-template-columns:1fr;gap:.2em}
	.favg-ladder-row .favg-ladder-prog{grid-column:1}
	.favg-ladder-val{text-align:left}
	.favg-cta{padding:1.3em}
}

/* ---------------------------------------------------------------- print */
@media print{
	.favg-toolbar,.favg-subnav,.favg-crumbs,.favg-ask,.favg-lead,.favg-cta,.favg-carto-controls,
	.favg-wiz-nav,.favg-checklist-actions,.favg-runway-controls,.favg-ladder-input{display:none!important}
	.favg-app{max-width:none;padding:0;font-size:11pt;color:#000}
	.favg-app h1,.favg-app h2,.favg-app h3{color:#000}
	.favg-check-item{break-inside:avoid;page-break-inside:avoid}
	.favg-check-box{border-color:#000}
	.favg-doc,.favg-faq-item{break-inside:avoid}
	.favg-faq-item .favg-faq-a,.favg-doc .favg-doc-body{display:block!important}
	.favg-table{font-size:9pt}
	.favg-app a{color:#000;text-decoration:none}
	.favg-app a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#555;word-break:break-all}
}

/* --------------------------------------------------- reduced motion, dark */
@media (prefers-reduced-motion:reduce){
	.favg-app *{transition:none!important;animation:none!important}
}

/* ===================================================== Visa Navigator only */

/* entry-requirement map */
.favg-map{margin:2.4em 0}
.favg-map-head{margin-bottom:.9em}
.favg-map-title{display:block;font-weight:700;color:var(--favg-primary);font-size:1.12rem}
.favg-map-sub{display:block;font-size:.87rem;color:var(--favg-ink-2)}
.favg-map-filters{display:flex;flex-wrap:wrap;gap:.4em;margin-bottom:.9em}
.favg-chip{
	--chip:var(--favg-primary);
	display:inline-flex;align-items:center;gap:.4em;padding:.4em .8em;border-radius:20px;
	border:1.5px solid var(--favg-line);background:var(--favg-bg);color:var(--favg-ink-2);
	font-family:inherit;font-size:.82rem;font-weight:650;cursor:pointer;transition:.14s;
}
.favg-chip span{
	display:inline-block;min-width:1.6em;padding:0 .35em;border-radius:10px;
	background:var(--favg-line-2);font-size:.72rem;font-weight:700;text-align:center;
}
.favg-chip::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--chip)}
.favg-chip[data-filter="all"]::before{display:none}
.favg-chip:hover{border-color:var(--chip)}
.favg-chip.is-on{background:var(--favg-primary);color:#fff;border-color:var(--favg-primary)}
.favg-chip.is-on span{background:rgba(255,255,255,.22);color:#fff}
.favg-map-canvas{position:relative;background:var(--favg-bg-2);border:1px solid var(--favg-line);
	border-radius:var(--favg-radius);padding:14px;overflow-x:auto}
.favg-map-canvas svg{display:block;width:100%;height:auto;min-width:640px}
.favg-hex{cursor:pointer}
.favg-hex polygon{stroke:#fff;stroke-width:2;transition:.14s}
.favg-hex:hover polygon,.favg-hex:focus polygon{stroke:var(--favg-primary);stroke-width:3}
.favg-hex.is-dim{opacity:.16}
.favg-hex-label{font-size:12px;font-weight:700;fill:#fff;pointer-events:none}
.favg-map-tip{position:absolute;pointer-events:none;background:var(--favg-primary);color:#fff;
	padding:.55em .8em;border-radius:8px;font-size:.8rem;line-height:1.45;max-width:260px;z-index:5;
	box-shadow:var(--favg-shadow)}
.favg-map-tip strong{display:block;font-size:.92rem;margin-bottom:.15em}
.favg-map-legend{list-style:none;margin:1em 0 0;padding:0;display:grid;gap:.4em}
.favg-map-legend li{display:flex;gap:.6em;align-items:flex-start;font-size:.85rem;color:var(--favg-ink-2);margin:0}
.favg-swatch{width:13px;height:13px;border-radius:3px;flex:0 0 13px;margin-top:.25em}
.favg-map-note{font-size:.83rem;color:var(--favg-ink-2);margin-top:.8em;max-width:74ch}

/* decision flowchart */
.favg-flow{margin:2.6em 0;border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.4em}
.favg-flow figcaption{margin-bottom:1em;color:var(--favg-primary);font-size:1.1rem}
.favg-flow-svg{width:100%;height:auto;color:var(--favg-ink-2);overflow:visible}
.favg-flow-node rect{stroke-width:1.5}
.favg-flow-q rect{fill:var(--favg-bg-3);stroke:var(--favg-accent)}
.favg-flow-a rect{fill:#fdf7ee;stroke:var(--favg-highlight)}
.favg-flow-ok rect{fill:#e9f6ee;stroke:var(--favg-good)}
.favg-flow-node text{font-size:14px;font-weight:650;fill:var(--favg-primary);text-anchor:middle}
.favg-flow-node .favg-flow-small{font-size:11.5px;font-weight:400;fill:var(--favg-ink-2)}
.favg-flow-note{font-size:.88rem;color:var(--favg-ink-2);margin-top:1em;max-width:76ch}

/* status pills and lines */
.favg-status-line{display:flex;align-items:center;gap:.6em;font-size:1.05rem;margin-top:.4em}
.favg-status-dot{width:13px;height:13px;border-radius:50%;background:var(--s,var(--favg-primary));flex:0 0 13px}
.favg-pill{display:inline-block;padding:.18em .65em;border-radius:20px;font-size:.76rem;font-weight:700;
	color:#fff;background:var(--s,var(--favg-primary));white-space:nowrap}
.favg-tile-status{display:inline-block;margin:.3em 0;padding:.12em .5em;border-radius:12px;
	font-size:.7rem;font-weight:700;color:#fff;background:var(--s,var(--favg-primary))}

/* type cards */
.favg-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:1em}
.favg-type-card{display:block;padding:1.2em;border:1px solid var(--favg-line);border-radius:var(--favg-radius);
	text-decoration:none;color:inherit;transition:.14s;background:var(--favg-bg)}
.favg-type-card:hover{border-color:var(--favg-accent);box-shadow:var(--favg-shadow);transform:translateY(-1px)}
.favg-type-card h3{margin-top:0;font-size:1.06rem}
.favg-type-card p{font-size:.9rem;color:var(--favg-ink-2);margin:0 0 .4em}
.favg-type-aka{font-size:.78rem;font-style:italic;opacity:.85}
.favg-aka{font-size:.9rem;color:var(--favg-ink-2);font-style:italic}

/* finder */
.favg-finder{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.5em;margin:1.6em 0}
.favg-finder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1em}
.favg-field{display:block}
.favg-field span{display:block;font-size:.85rem;font-weight:650;color:var(--favg-ink-2);margin-bottom:.35em}
.favg-field select{width:100%;padding:.6em .8em;border:1px solid var(--favg-line);border-radius:9px;
	font-family:inherit;font-size:.96rem;background:#fff;color:var(--favg-ink)}
.favg-finder-out{margin-top:1.6em}
.favg-finder-actions{margin-top:1.2em}
.favg-result-head{background:var(--favg-bg-3);border-radius:10px;padding:1.1em 1.2em;margin-bottom:1.2em}
.favg-result-head h3{margin:0 0 .3em;font-size:1.15rem}
.favg-result-verdict{font-size:1rem;font-weight:650}
.favg-result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.6em;margin:1em 0}
.favg-result-cell{border:1px solid var(--favg-line);border-radius:9px;padding:.8em .9em}
.favg-result-cell b{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;
	color:var(--favg-ink-2)}
.favg-result-cell span{display:block;font-weight:650;color:var(--favg-primary);margin-top:.2em}

/* schengen */
.favg-schengen{border:1px solid var(--favg-line);border-radius:var(--favg-radius);padding:1.6em;margin:1.6em 0}
.favg-schengen-head h2{margin-top:0}
.favg-schengen-grid{display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,1.15fr);gap:2em;margin-top:1.4em}
.favg-trips{display:grid;gap:.6em;margin:1em 0}
.favg-trip{display:grid;grid-template-columns:1fr 1fr auto;gap:.5em;align-items:end}
.favg-trip label{display:block;font-size:.78rem;font-weight:650;color:var(--favg-ink-2)}
.favg-trip input{width:100%;padding:.5em .6em;border:1px solid var(--favg-line);border-radius:8px;
	font-family:inherit;font-size:.9rem}
.favg-trip button{border:1px solid var(--favg-line);background:var(--favg-bg);border-radius:8px;
	padding:.5em .7em;cursor:pointer;font-family:inherit;color:var(--favg-bad);font-weight:700;line-height:1}
.favg-asof{display:block;margin-top:1em;font-size:.85rem;font-weight:650;color:var(--favg-ink-2)}
.favg-asof input{display:block;margin-top:.3em;padding:.5em .7em;border:1px solid var(--favg-line);
	border-radius:8px;font-family:inherit}
.favg-schengen-verdict{padding:1em 1.1em;border-radius:10px;background:var(--favg-bg-3);
	font-size:1.02rem;line-height:1.5}
.favg-schengen-verdict.is-ok{background:#e9f6ee;border-left:4px solid var(--favg-good)}
.favg-schengen-verdict.is-warn{background:#fdf7ee;border-left:4px solid var(--favg-warn)}
.favg-schengen-verdict.is-over{background:#fdf2f2;border-left:4px solid var(--favg-bad)}
.favg-window{display:flex;gap:1px;height:38px;margin:1.1em 0 .5em;border-radius:6px;overflow:hidden;
	background:var(--favg-line-2)}
.favg-window i{flex:1;display:block;background:var(--favg-line-2)}
.favg-window i.is-in{background:var(--favg-accent)}
.favg-window-key{font-size:.8rem;color:var(--favg-ink-2);display:flex;gap:1.2em;align-items:center}
.favg-wk{display:inline-block;width:13px;height:9px;border-radius:2px;margin-right:.35em}
.favg-wk-in{background:var(--favg-accent)}
.favg-wk-out{background:var(--favg-line-2)}
.favg-schengen-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6em;margin:1.2em 0 0}
.favg-schengen-stats>div{background:var(--favg-bg-2);border-radius:8px;padding:.7em .8em}
.favg-schengen-stats dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;
	color:var(--favg-ink-2);font-weight:700}
.favg-schengen-stats dd{margin:.2em 0 0;font-weight:700;color:var(--favg-primary);font-variant-numeric:tabular-nums}
.favg-schengen-rules{margin-top:2em;padding-top:1.6em;border-top:1px solid var(--favg-line)}
.favg-members{font-size:.88rem;color:var(--favg-ink-2)}
.favg-disclaimer-inline{font-size:.83rem;color:var(--favg-ink-2);margin-top:1.4em;
	padding:.8em 1em;background:var(--favg-bg-2);border-radius:8px}

/* apostille route columns */
.favg-route-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.6em}
.favg-route-list{list-style:none;padding:0;columns:2;column-gap:1.2em;font-size:.9rem}
.favg-route-list li{margin:.25em 0;break-inside:avoid}
.favg-route-warn li a{color:var(--favg-warn);font-weight:600}
.favg-doc-legend{display:flex;flex-wrap:wrap;gap:.5em;margin-bottom:1em}

/* misc */
.favg-reasons{padding-left:1.3em}
.favg-reasons li{margin:.6em 0;font-size:.94rem}
.favg-warn-box{padding:.9em 1.1em;background:#fdf7ee;border-left:4px solid var(--favg-warn);
	border-radius:0 8px 8px 0;font-size:.94rem}
.favg-local{background:var(--favg-bg-2);border-radius:var(--favg-radius);padding:1.4em;border:1px solid var(--favg-line)}
.favg-local-note{font-size:1.02rem;font-weight:600;color:var(--favg-primary)}
.favg-help{font-size:.87rem;color:var(--favg-ink-2);max-width:70ch}
.favg-apostille-note{background:var(--favg-bg-2);border-radius:var(--favg-radius);padding:1.4em}

@media (max-width:820px){
	.favg-schengen-grid{grid-template-columns:1fr}
	.favg-route-list{columns:1}
	.favg-trip{grid-template-columns:1fr 1fr auto}
}
@media print{
	.favg-map-filters,.favg-finder-grid,.favg-trips,.favg-schengen-input{display:none!important}
}


/* ---------------------------------------- on-this-page nav + related grid */
.favg-toc{margin:1.6em 0;padding:1em 1.2em;background:var(--favg-bg-2);border-radius:var(--favg-radius);
	border:1px solid var(--favg-line)}
.favg-toc-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;
	color:var(--favg-ink-2);margin-bottom:.5em}
.favg-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35em .5em}
.favg-toc li{margin:0}
.favg-toc a{display:inline-block;padding:.32em .75em;border:1px solid var(--favg-line);border-radius:20px;
	font-size:.84rem;font-weight:600;text-decoration:none;background:var(--favg-bg);color:var(--favg-ink-2)}
.favg-toc a:hover{border-color:var(--favg-accent);color:var(--favg-primary)}
.favg-related-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.6em}
.favg-related-cols h3{margin-top:0;font-size:.98rem}
.favg-related-cols .favg-related-list{display:block}
.favg-related-cols .favg-related-list li{border:0;padding:.25em 0;background:none}
.favg-app :target{scroll-margin-top:80px}
@media print{.favg-toc{display:none!important}}


/* ============================================================================
   PANELS
   Every interactive block (cartogram, ladder, runway, timeline, pipeline,
   wizard, budget tool) reads as the same object: a raised white surface on the
   page. Defining that once here keeps them consistent as blocks are added.
   ========================================================================= */
.favg-map-canvas,
.favg-carto-canvas,
.favg-stack,
.favg-ladder,
.favg-timeline,
.favg-pipeline,
.favg-runway,
.favg-wizard,
.favg-budget-tool,
.favg-schengen,
.favg-finder{
	border:1px solid var(--favg-line);
	border-radius:var(--favg-radius);
	background:var(--favg-bg);
	box-shadow:var(--favg-shadow-1);
	padding:1.6em;
}
.favg-map-canvas,.favg-carto-canvas{
	padding:1.5em 1.3em 1.2em;
	background:
		radial-gradient(90% 120% at 50% 0%,#fbfcfe,transparent 70%),
		linear-gradient(180deg,var(--favg-bg-2),#f2f6fb);
}
.favg-pipeline{background:linear-gradient(180deg,var(--favg-bg-2),#f2f6fb)}

/* Panel headings share one voice. */
.favg-carto-title,
.favg-stack-head strong,
.favg-ladder-head strong,
.favg-timeline-head strong,
.favg-pipeline-head strong{
	font-size:1.14rem;font-weight:700;color:var(--favg-primary);letter-spacing:-.014em;
}

/* --------------------------------------------------------------- controls */
.favg-carto-metric,
.favg-ladder-income,
.favg-app select,
.favg-app input[type=text],
.favg-app input[type=number],
.favg-app input[type=email]{
	font-family:inherit;font-size:.92rem;padding:.62em .85em;color:var(--favg-ink);
	border:1.5px solid var(--favg-line);border-radius:var(--favg-radius-sm);
	background:var(--favg-bg);transition:border-color .15s ease,box-shadow .15s ease;
}
.favg-carto-metric:focus,
.favg-ladder-income:focus,
.favg-app select:focus,
.favg-app input[type=text]:focus,
.favg-app input[type=number]:focus,
.favg-app input[type=email]:focus{
	outline:none;border-color:var(--favg-accent);
	box-shadow:0 0 0 3px color-mix(in srgb,var(--favg-accent) 16%,transparent);
}

/* Hexagons get a soft lift so the map reads as interactive. */
.favg-hex polygon{stroke:#fff;stroke-width:2.5;transition:transform .14s ease,filter .14s ease}
.favg-hex{transform-box:fill-box;transform-origin:center}
.favg-hex:hover{filter:drop-shadow(0 4px 10px rgba(10,35,60,.28))}
.favg-hex:hover polygon,.favg-hex:focus polygon{stroke:var(--favg-primary);stroke-width:3}
.favg-carto-legend{margin-top:1.1em;font-size:.79rem}
.favg-legend-ramp{height:10px;border-radius:6px}

/* ------------------------------------------------------------ sister tool */
.favg-sister{
	margin-top:3.4em;padding:1.7em 1.8em;border-radius:var(--favg-radius);
	background:linear-gradient(135deg,var(--favg-primary),var(--favg-primary-deep));
	border:0;box-shadow:var(--favg-shadow-2);
}
.favg-app.favg-app .favg-sister h2{color:#fff;border-top:0;padding-top:0;margin:0 0 .5em;font-size:1.3rem}
.favg-app.favg-app .favg-sister h2::before{display:none}
.favg-app.favg-app .favg-sister p{color:rgba(255,255,255,.82);max-width:64ch;margin-bottom:1.1em}
.favg-app.favg-app .favg-sister .favg-related-list{display:flex;flex-wrap:wrap;gap:.6em;list-style:none;padding:0;margin:0}
.favg-app.favg-app .favg-sister .favg-related-list li{margin:0}
.favg-app.favg-app .favg-sister a{
	display:inline-block;padding:.6em 1.1em;border-radius:100px;font-size:.9rem;font-weight:600;
	color:#fff;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);
	text-decoration:none;transition:background .16s ease,border-color .16s ease;
}
.favg-app.favg-app .favg-sister a:hover{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.45)}

/* ============================================================================
   HOST-THEME DEDUPLICATION
   Many WordPress themes print the page title twice: once in the hero banner
   and again above the content. On our own generated pages that leaves three
   near-identical headings stacked before any content, so we hide the
   in-content copy and keep the banner.

   These match the theme's *classed* title only. Our own H1 carries no class,
   so it can never be caught by this, and the rules are scoped to the body
   class the router sets, so no other page on the site is touched.
   ========================================================================= */
body.favg-page :is(h1,h2,h3).page-title,
body.favg-page :is(h1,h2,h3).entry-title,
body.favg-page :is(h1,h2,h3).post-title,
body.favg-page :is(main,.main,.site-main,article,.content-area)>header.entry-header,
body.favg-page :is(main,.main,.site-main,article,.content-area)>.page-header{display:none}

/* ------------------------------------------------------------- responsive */
@media (max-width:820px){
	.favg-app{font-size:16px;padding-bottom:56px}
	.favg-hero{padding:2em 1.4em 1.9em;margin-bottom:2.2em}
	.favg-hero-stats>*{max-width:15em;padding-right:1.2em;margin-right:1.2em}
	.favg-hero-stats strong{font-size:1.5rem}
	.favg-section{margin:2.6em 0}
	.favg-map-canvas,
.favg-carto-canvas,.favg-stack,.favg-ladder,.favg-timeline,
	.favg-pipeline,.favg-runway,.favg-wizard,.favg-budget-tool,
.favg-schengen,
.favg-finder{padding:1.15em}
	.favg-sister{padding:1.4em 1.3em}
}
@media (max-width:560px){
	.favg-hero-stats{flex-direction:column;gap:0}
	.favg-hero-stats>*{max-width:15em;border-right:0;border-bottom:1px solid var(--favg-line);
		padding:.85em 0;margin:0;width:100%}
	.favg-hero-stats>*:last-child{border-bottom:0}
	.favg-hero-actions .favg-btn{width:100%;justify-content:center}
}

/* Respect a reader who has asked the OS for less movement. */
@media (prefers-reduced-motion:reduce){
	.favg-app *,.favg-app *::before,.favg-app *::after{
		transition-duration:.01ms !important;animation-duration:.01ms !important;
	}
	.favg-card:hover,.favg-btn:hover{transform:none}
}

/* ============================================================================
   TOUCH AND SMALL SCREENS
   Most of this traffic arrives on a phone, so the rules below are corrections
   for real handheld failures rather than cosmetic tweaks.
   ========================================================================= */

/* iOS zooms the whole page when a focused field is under 16px. Any control a
   reader can type into therefore has to hit 16px on a touch device, whatever
   the desktop scale says. */
@media (pointer:coarse){
	.favg-app input,
	.favg-app select,
	.favg-app textarea,
	.favg-app input[type=email],
	.favg-app input[type=text],
	.favg-app input[type=number],
	.favg-app .favg-lead-email,
	.favg-app .favg-ask-input,
	.favg-carto-metric,
	.favg-ladder-income,
	.favg-map-metric{font-size:16px}

	/* Standalone links - resource lists, "read more", data rows - are tap
	   targets, not words in a sentence, so give them a finger-sized box. */
	.favg-app li>a,
	.favg-more,
	.favg-ext,
	.favg-ladder-name,
	.favg-match-actions a,
	.favg-toolbar a{
		display:inline-flex;align-items:center;min-height:40px;
	}
	/* Breadcrumbs keep a smaller target: the row has to stay on one baseline
	   with the plain-text current page, and it sits inside the tap-safe
	   heading area anyway. */
	.favg-crumbs ol{align-items:center}
	.favg-crumbs a{display:inline-flex;align-items:center;min-height:32px}
	.favg-app :not(.favg-toolbar):not(.favg-crumbs)>ul>li>a,
	.favg-app :not(.favg-toolbar):not(.favg-crumbs)>ol>li>a{padding:.15em 0}
	.favg-app .favg-toolbar a{min-height:46px;padding:.78em 1.05em}
	/* A card's heading is the card's tap target. */
	.favg-app :is(h2,h3,h4)>a{display:inline-flex;align-items:center;min-height:40px}

	/* Hover lifts do nothing on a touch screen and leave stuck states behind. */
	.favg-card:hover,.favg-btn:hover{transform:none}

	/* Sliders need a bigger thumb to be usable with a thumb. */
	.favg-app input[type=range]{height:30px}
}

@media (max-width:820px){
	/* 11px uppercase is legible on a desktop monitor and not on a phone. */
	.favg-facts dt,
	.favg-runway-stats dt,
	.favg-eyebrow{font-size:12px}
	.favg-carto-note,.favg-ladder-note,.favg-runway-note{font-size:.88rem}
	/* SVG labels are drawn at roughly 1:1 on a phone, so 11px really is 11px. */
	.favg-radar-axis,.favg-line-tick,.favg-axis-label{font-size:13px}

	/* Anything that cannot reflow scrolls inside its own box rather than
	   pushing the page sideways. */
	.favg-app table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
	.favg-app pre,.favg-app code{overflow-x:auto;max-width:100%}

	/* Two-column tool layouts become one column. */
	.favg-runway-grid,
	.favg-schengen-grid,
	.favg-finder-grid,
	.favg-weights{grid-template-columns:1fr}

	/* Full-bleed panels read better than 12px side gutters on a narrow screen. */
	.favg-cards{grid-template-columns:1fr}
}

@media (max-width:400px){
	.favg-app{padding-left:14px;padding-right:14px}
	.favg-hero{padding:1.6em 1.15em 1.5em;border-radius:12px}
	.favg-app h1{font-size:1.85rem}
	.favg-toolbar a{padding-left:.75em;padding-right:.75em}
}

/* A phone in landscape, or any short viewport, should not get desktop margins. */
@media (max-height:520px) and (orientation:landscape){
	.favg-section{margin:2em 0}
	.favg-hero{padding-top:1.6em;padding-bottom:1.4em}
}
