/* =========================================================================
   FA Fingerprinting Finder
   Scoped under .fafp-app so nothing in the host theme is disturbed.

   Generic element defaults are written as `.fafp-app :where(p)`, which keeps
   the element's specificity at zero. That matters: on the last tool built for
   this theme a plain `.fafp-app a{color:...}` rule outranked every button
   class and painted the calls to action navy on navy. :where() cannot do
   that, because any component class now wins outright.
   ========================================================================= */

.fafp-app{
	--fa-navy:#0a3d62; --fa-navy-deep:#072c48; --fa-gold:#b8860b;
	--fa-ink:#12263a; --fa-ink-2:#4a5b6b; --fa-ink-3:#6b7b8c;
	--fa-line:#dfe6ec; --fa-line-2:#eef2f6; --fa-bg-2:#f6f9fc;
	--fa-warn-bg:#fff8e8; --fa-good:#167a4d;
	--fa-r:10px; --fa-rs:6px;
	--fa-ui: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
		"Helvetica Neue", Arial, sans-serif;
	--fa-serif: Georgia, 'Times New Roman', serif;

	color:var(--fa-ink); font-size:17px; line-height:1.62;
	width:100%; max-width:900px; margin:0 auto; box-sizing:border-box;
}
.fafp-app *,.fafp-app *::before,.fafp-app *::after{box-sizing:inherit}

/* Generic defaults, deliberately at zero element specificity. */
.fafp-app :where(p){margin:0 0 1em}
.fafp-app :where(h2,h3,h4){font-family:var(--fa-serif);color:var(--fa-navy);line-height:1.3;margin:0 0 .5em}
.fafp-app :where(h2){font-size:1.62rem;letter-spacing:-.01em}
.fafp-app :where(h3){font-size:1.2rem}
.fafp-app :where(h4){font-size:1.02rem}
.fafp-app :where(a){color:var(--fa-navy)}
.fafp-app :where(ul,ol){margin:0 0 1em;padding-left:1.25em}
.fafp-app :where(li){margin:0 0 .45em}

/* ------------------------------------------------------------------ hero */
.fafp-hero{margin:0 0 2em}
.fafp-lede{font-size:1.2rem;line-height:1.55}
.fafp-note{
	font-size:.97rem;color:var(--fa-ink-2);background:var(--fa-bg-2);
	border-left:3px solid var(--fa-gold);border-radius:0 var(--fa-rs) var(--fa-rs) 0;
	padding:.9em 1.1em;margin:0;
}

/* -------------------------------------------------------------- sections */
.fafp-section{margin:0 0 2.6em;scroll-margin-top:110px}
.fafp-section > h2{position:relative;padding-bottom:.55em;margin-bottom:.7em}
.fafp-section > h2::after{
	content:"";position:absolute;left:0;bottom:0;width:2.6em;height:3px;
	border-radius:2px;background:var(--fa-gold);
}
.fafp-section-intro{color:var(--fa-ink-2)}
.fafp-sub{margin-top:1.8em}
.fafp-hint{font-size:.9rem;color:var(--fa-ink-3)}

/* ------------------------------------------------------------------ form */
.fafp-form{
	background:var(--fa-bg-2);border:1px solid var(--fa-line);
	border-radius:var(--fa-r);padding:1.5em 1.6em 1.3em;
}
.fafp-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.1em}
.fafp-field{display:block;margin:0 0 1.05em}
.fafp-field > span{
	display:block;font-family:var(--fa-ui);font-size:.86rem;font-weight:600;
	color:var(--fa-ink-2);margin-bottom:.3em;
}
.fafp-field > span em{font-style:normal;color:var(--fa-ink-3);font-weight:500}
.fafp-field input,.fafp-field select{
	width:100%;padding:.72em .85em;border:1.5px solid var(--fa-line);border-radius:var(--fa-rs);
	background:#fff;color:var(--fa-ink);font-size:16px;font-family:inherit;line-height:1.4;
}
.fafp-field input:focus,.fafp-field select:focus{
	outline:none;border-color:var(--fa-navy);box-shadow:0 0 0 3px rgba(10,61,98,.12);
}
.fafp-when{border:0;padding:0;margin:0 0 1em}
.fafp-when legend{
	font-family:var(--fa-ui);font-size:.86rem;font-weight:600;color:var(--fa-ink-2);
	padding:0;margin-bottom:.4em;
}
.fafp-when label,.fafp-check{
	display:inline-flex;align-items:flex-start;gap:.45em;font-size:.95rem;
	margin:0 1.2em .4em 0;cursor:pointer;
}
.fafp-check{display:flex;margin:0 0 1.2em;font-size:.93rem;color:var(--fa-ink-2)}
.fafp-actions{display:flex;align-items:center;gap:1em;flex-wrap:wrap;margin:0 0 .6em}
.fafp-privacy{font-size:.84rem;color:var(--fa-ink-3);margin:0}
.fafp-status{font-family:var(--fa-ui);font-size:.88rem;color:var(--fa-ink-2)}
.fafp-status.is-bad{color:#a4322b;font-weight:600}

/* Honeypot. Positioned away rather than display:none, because some bots skip
   anything explicitly hidden and we want them to find it. */
.fafp-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* --------------------------------------------------------------- buttons */
.fafp-btn-primary,.fafp-btn-quiet{
	display:inline-flex;align-items:center;justify-content:center;min-height:48px;
	padding:.78em 1.5em;border-radius:var(--fa-rs);border:1.5px solid var(--fa-navy);
	font-family:var(--fa-ui);font-size:.98rem;font-weight:650;text-decoration:none;cursor:pointer;
}
.fafp-btn-primary{background:var(--fa-navy);color:#fff}
.fafp-btn-primary:hover:not(:disabled){background:var(--fa-navy-deep);color:#fff}
.fafp-btn-primary:disabled{opacity:.45;cursor:not-allowed}
.fafp-btn-quiet{background:transparent;color:var(--fa-navy)}
.fafp-btn-quiet:hover{background:var(--fa-line-2);color:var(--fa-navy)}
.fafp-btn-sm{min-height:38px;padding:.45em 1em;font-size:.86rem}
.fafp-cta-row{display:flex;gap:.7em;flex-wrap:wrap;align-items:center}

/* ---------------------------------------------------------------- result */
.fafp-result{
	border:1px solid var(--fa-line);border-radius:var(--fa-r);
	padding:1.6em 1.7em;background:#fff;
}
.fafp-reco{
	background:var(--fa-bg-2);border:1px solid var(--fa-line);
	border-radius:var(--fa-rs);padding:1.2em 1.3em;margin:0 0 1.4em;
}
.fafp-reco-label{
	font-family:var(--fa-ui);font-size:.72rem;font-weight:700;text-transform:uppercase;
	letter-spacing:.09em;color:var(--fa-gold);margin:0 0 .25em;
}
.fafp-reco h3{margin:0 0 .4em}
.fafp-facts{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
	gap:.6em;margin:1em 0 .9em;
}
.fafp-facts > div{background:#fff;border:1px solid var(--fa-line);border-radius:var(--fa-rs);padding:.7em .9em}
.fafp-facts dt{
	font-family:var(--fa-ui);font-size:.72rem;font-weight:700;text-transform:uppercase;
	letter-spacing:.06em;color:var(--fa-ink-3);margin-bottom:.15em;
}
.fafp-facts dd{margin:0;font-size:.95rem}
.fafp-watch{
	background:var(--fa-warn-bg);border-left:3px solid var(--fa-gold);
	border-radius:0 var(--fa-rs) var(--fa-rs) 0;padding:.8em 1em;font-size:.94rem;margin:0;
}
.fafp-providers{display:grid;gap:.8em;margin:1em 0 0}
.fafp-provider{border:1px solid var(--fa-line);border-radius:var(--fa-rs);padding:1em 1.15em}
.fafp-provider h4{margin:0 0 .3em}
.fafp-kind{
	font-family:var(--fa-ui);font-size:.74rem;font-weight:600;text-transform:uppercase;
	letter-spacing:.05em;color:var(--fa-ink-3);margin-left:.5em;
}
.fafp-provider p{font-size:.95rem;margin:0 0 .7em}
.fafp-links{display:flex;gap:.5em;flex-wrap:wrap;margin:0}
.fafp-next{
	margin:1.6em 0 0;padding:1.3em 1.4em;background:var(--fa-navy);
	border-radius:var(--fa-rs);color:#fff;
}
.fafp-next h3{color:#fff;margin:0 0 .4em}
.fafp-next p{color:#e8eef4}
.fafp-next .fafp-btn-primary{background:#fff;color:var(--fa-navy);border-color:#fff}
.fafp-next .fafp-btn-primary:hover{background:#eef2f6;color:var(--fa-navy)}
.fafp-next p:last-child{margin:0}
.fafp-ok{
	background:#eef8f2;border-left:3px solid var(--fa-good);border-radius:0 var(--fa-rs) var(--fa-rs) 0;
	padding:.85em 1.05em;font-size:.95rem;margin:1.3em 0 0;
}
.fafp-warn-box{
	background:var(--fa-warn-bg);border-left:3px solid var(--fa-gold);
	border-radius:0 var(--fa-rs) var(--fa-rs) 0;padding:.85em 1.05em;font-size:.95rem;margin:1.3em 0 0;
}

/* ---------------------------------------------------------------- routes */
.fafp-routes{display:grid;gap:1em}
.fafp-route{border:1px solid var(--fa-line);border-radius:var(--fa-r);padding:1.2em 1.3em}
.fafp-route h3{margin:0 0 .5em}
.fafp-route dl{display:grid;grid-template-columns:auto 1fr;gap:.2em .9em;margin:0 0 .8em}
.fafp-route dt{
	font-family:var(--fa-ui);font-size:.74rem;font-weight:700;text-transform:uppercase;
	letter-spacing:.05em;color:var(--fa-ink-3);align-self:center;
}
.fafp-route dd{margin:0;font-size:.95rem}
.fafp-route p{font-size:.96rem}
.fafp-prep{list-style:none;padding:0;margin:0}
.fafp-prep li{
	padding:.8em 0 .8em 1.6em;border-bottom:1px solid var(--fa-line);position:relative;margin:0;
}
.fafp-prep li:last-child{border-bottom:0}
.fafp-prep li::before{
	content:"";position:absolute;left:.3em;top:1.35em;width:7px;height:7px;
	border-radius:50%;background:var(--fa-gold);
}
.fafp-disclosure{
	font-size:.84rem;line-height:1.55;color:var(--fa-ink-3);
	border-top:1px solid var(--fa-line);padding-top:1.1em;margin:2.4em 0 0;
}

@media (max-width:620px){
	.fafp-grid{grid-template-columns:1fr}
	.fafp-app{font-size:16px}
	.fafp-section > h2{font-size:1.38rem}
	.fafp-lede{font-size:1.08rem}
	.fafp-form,.fafp-result{padding:1.1em 1.15em}
	.fafp-route dl{grid-template-columns:1fr}
	.fafp-route dt{margin-top:.5em}
}

/* =========================================================================
   THEME DEFENCE - keep last.

   The egovt theme hangs decorative ::before bars on content headings,
   capitalises them, restyles links and puts its own markers on lists. These
   reset ONLY those properties. Sizing, margin and colour stay with the
   component rules above, because a doubled rule here would flatten them.
   ========================================================================= */
.fafp-app.fafp-app :where(h2,h3,h4)::before,
.fafp-app.fafp-app :where(h2,h3,h4)::after,
.fafp-app.fafp-app :where(legend)::before{content:none;display:none}
.fafp-app.fafp-app .fafp-section > h2::after{content:"";display:block}

.fafp-app.fafp-app :where(h2,h3,h4,legend,th,label,button){
	text-transform:none;letter-spacing:normal;font-style:normal;
}
.fafp-app.fafp-app :where(a){text-decoration:none;box-shadow:none;border-bottom:0}
.fafp-app.fafp-app :where(p) > a:not([class]){text-decoration:underline;text-underline-offset:.18em}
.fafp-app.fafp-app :where(ul,ol):not([class]){list-style-position:outside}
.fafp-app.fafp-app .fafp-prep{list-style:none;padding-left:0}
.fafp-app.fafp-app :where(input,select,textarea){
	font-family:inherit;font-size:16px;line-height:1.4;max-width:100%;
	text-transform:none;letter-spacing:normal;
}
.fafp-app.fafp-app :where(button){font-family:var(--fa-ui)}
.fafp-app.fafp-app :where(fieldset){border:0;margin:0;padding:0}
