/* ==========================================================================
   FuzeBuyer design system 1.3.0 ("Clean Trust", see /DESIGN.md)
   Layer 1: brand tokens --fz-* emitted per site from fzb_palette (inc/options.php).
   Layer 2: neutrals + semantic tokens below (the ONLY hex in this file).
   Layer 3: components reference tokens only.
   ========================================================================== */

/* ---------- self-hosted fonts (latin, variable weight) ---------- */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url("fonts/inter-latin-var.woff2") format("woff2"); }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 200 800; font-display: swap; src: url("fonts/manrope-latin-var.woff2") format("woff2"); }
@font-face { font-family: "Sora"; font-style: normal; font-weight: 100 800; font-display: swap; src: url("fonts/sora-latin-var.woff2") format("woff2"); }

:root {
	/* brand fallbacks = palette a; the inline html:root palette block wins */
	--fz-deep: #0B1F3F;
	--fz-deep-rgb: 11, 31, 63;
	--fz-mid: #12305C;
	--fz-accent: #7CC4F2;
	--fz-accent-rgb: 124, 196, 242;
	--fz-accent-h: #A5D8F7;
	--fz-on-accent: #0B1F3F;
	--fz-ink-accent: #1C6BA6;
	--fz-soft: #EAF5FD;
	--fz-soft-line: #CBE6F8;
	--fz-hi: #7CC4F2;
	--fz-heading: #0B1F3F;

	/* backgrounds */
	--bg: #FFFFFF;
	--surface: #FFFFFF;
	--surface-alt: #F5F7FA;
	--surface-hover: #F9FAFB;
	--ink-deep: #05080E;            /* darkest hero base, mixed with --fz-deep */

	/* borders */
	--border: #E4E8EE;
	--border-hover: #CBD3DD;

	/* text */
	--text: #101828;
	--text-secondary: #475467;
	--text-tertiary: #5D6B7E;
	--placeholder: #6B7685;

	/* on dark */
	--on-dark: #FFFFFF;
	--on-dark-2: rgba(255, 255, 255, .80);
	--on-dark-3: rgba(255, 255, 255, .68);
	--line-on-dark: rgba(255, 255, 255, .12);
	--line-on-dark-strong: rgba(255, 255, 255, .40);
	--fill-on-dark: rgba(255, 255, 255, .08);

	/* accent roles */
	--accent: var(--fz-accent);
	--accent-hover: var(--fz-accent-h);
	--accent-ink: var(--fz-ink-accent);
	--focus: var(--fz-ink-accent);

	/* rgb helpers */
	--bg-rgb: 255, 255, 255;
	--ink-rgb: 16, 24, 40;
	--accent-rgb: var(--fz-accent-rgb);

	/* semantic */
	--success: #1E9E4A;
	--error: #C0392B;
	--error-soft: #FBE9E7;
	--warning: #B7791F;
	--star: #F5A623;

	/* legacy aliases (survey.css, editor previews, pasted content) */
	--ink: var(--text);
	--slate: var(--text-secondary);
	--mist: var(--surface-alt);
	--line: var(--border);
	--good: var(--success);
	--bad: var(--error);
	--gold: var(--star);

	/* radius: one per role */
	--r-sm: 8px;
	--r: 10px;
	--r-lg: 14px;
	--r-xl: 18px;
	--radius: var(--r);
	--radius-lg: var(--r-lg);

	/* elevation: one recipe per level */
	--e1: 0 1px 2px rgba(var(--ink-rgb), .06);
	--e2: 0 8px 24px -8px rgba(var(--ink-rgb), .18);
	--e3: 0 24px 56px -20px rgba(var(--ink-rgb), .45);
	--e1-dark: 0 1px 0 rgba(0, 0, 0, .25);
	--e-head: 0 1px 0 rgba(var(--ink-rgb), .08), 0 8px 16px -12px rgba(var(--ink-rgb), .45);
	--shadow: var(--e2);
	--shadow-lg: var(--e3);

	/* motion */
	--ease: cubic-bezier(.16, 1, .3, 1);
	--ease-std: cubic-bezier(.4, 0, .2, 1);

	/* type pairing (fzb_font): defaults = inter */
	--sans-fallback: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	--head-font: Inter, var(--sans-fallback);
	--body-font: Inter, var(--sans-fallback);
	--head-weight: 700;
	--h3-weight: 650;
	--btn-weight: 600;
	--head-track: -0.025em;
	--head-lh: 1.12;

	/* rhythm + widths */
	--pad: clamp(16px, 4vw, 32px);
	--wrap: calc(1180px + 2 * var(--pad));
	--sec: clamp(56px, 2.75rem + 4vw, 104px);
	--sec-sm: clamp(48px, 2.4rem + 3vw, 88px);
	--stack: clamp(28px, 1.4rem + 1.2vw, 48px);
	--gap: clamp(16px, .9rem + .8vw, 28px);
	--card-pad: clamp(20px, 1.1rem + .9vw, 32px);
	--w-narrow: 760px;
	--w-regular: 1040px;
	--w-wide: 1180px;
}

.fzb-font-inter { --head-font: Inter, var(--sans-fallback); --body-font: Inter, var(--sans-fallback); --head-weight: 700; --h3-weight: 650; --head-track: -0.025em; }
.fzb-font-manrope { --head-font: Manrope, var(--sans-fallback); --body-font: Manrope, var(--sans-fallback); --head-weight: 700; --h3-weight: 700; --head-track: -0.015em; --btn-weight: 700; }
.fzb-font-sora { --head-font: Sora, var(--sans-fallback); --body-font: Inter, var(--sans-fallback); --head-weight: 600; --h3-weight: 600; --head-track: -0.03em; }

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.fzb-lock, html.fzb-lock body { overflow: hidden; }
[id] { scroll-margin-top: 88px; }

body {
	margin: 0;
	font-family: var(--body-font);
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--text);
	background: var(--bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	/* clip, not hidden: hidden turns body into a scroll container whenever html
	   is overflow:hidden (menu lock), which unpins the sticky header. */
	overflow-x: hidden;
	overflow-x: clip;
}

h1, h2, h3, h4, h5 {
	font-family: var(--head-font);
	font-weight: var(--head-weight);
	line-height: var(--head-lh);
	color: var(--fz-heading);
	margin: 0 0 .5em;
	letter-spacing: var(--head-track);
	overflow-wrap: break-word;
	text-wrap: balance;
}
h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); line-height: 1.1; }
h2 { font-size: clamp(1.75rem, 1.35rem + 1.6vw, 2.5rem); line-height: 1.15; }
h3 { font-size: clamp(1.1875rem, 1.1rem + .4vw, 1.375rem); font-weight: var(--h3-weight); line-height: 1.3; letter-spacing: -0.01em; }
h4 { font-size: 1.125rem; font-weight: var(--h3-weight); letter-spacing: -0.01em; }
p { margin: 0 0 1.1em; }
strong, b { font-weight: 650; }
a {
	color: var(--accent-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
	text-decoration-color: color-mix(in srgb, currentColor 35%, transparent);
	transition: color .15s var(--ease-std), text-decoration-color .15s var(--ease-std);
}
a:hover { color: var(--fz-heading); text-decoration-color: currentColor; }
img { max-width: 100%; height: auto; display: block; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
code, kbd { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .875em; }
::selection { background: color-mix(in srgb, var(--accent-ink) 18%, transparent); }

/* ---------- containers + sections ---------- */
.fzb-wrap { max-width: calc(var(--w-wide) + 2 * var(--pad)); margin-inline: auto; padding-inline: var(--pad); }
.fzb-narrow { max-width: var(--w-narrow); margin-inline: auto; }
.fzb-wrap.fzb-narrow, .fzb-wrap--narrow { max-width: calc(var(--w-narrow) + 2 * var(--pad)); }
.fzb-wrap--regular { max-width: calc(var(--w-regular) + 2 * var(--pad)); }
.fzb-section { padding-block: var(--sec); }
/* same-tone neighbours share one gap instead of stacking two paddings */
.fzb-section--white + .fzb-section--white,
.fzb-section--mist + .fzb-section--mist,
.fzb-section--soft + .fzb-section--soft { padding-top: 0; }
/* section prose: centered section title, readable left-aligned body */
.fzb-section .fzb-wrap > h2:first-child,
.fzb-section .fzb-wrap > .fzb-eyebrow:first-child,
.fzb-section .fzb-wrap > .fzb-eyebrow:first-child + h2 { text-align: center; }
.fzb-section .fzb-wrap > h2:first-child { margin-bottom: .7em; }
.fzb-section .fzb-wrap > h2:not(:first-child) { margin-top: 1.8em; }
.fzb-section .fzb-wrap > h3:not(:first-child) { margin-top: 1.6em; margin-bottom: .45em; }
.fzb-section .fzb-wrap > p:last-child, .fzb-section .fzb-wrap > ul:last-child, .fzb-section .fzb-wrap > ol:last-child { margin-bottom: 0; }
.fzb-section .fzb-wrap > .wp-block-list { padding-left: 1.3em; margin: 0 0 1.2em; }
.fzb-section .fzb-wrap > .wp-block-list li { margin-bottom: .5em; padding-left: .25em; }
.fzb-section .fzb-wrap > .wp-block-list li::marker { color: var(--accent-ink); font-weight: 600; }
.fzb-section .fzb-wrap > ul.wp-block-list { list-style: none; padding-left: 0; }
.fzb-section .fzb-wrap > ul.wp-block-list li { position: relative; padding-left: 26px; }
.fzb-section .fzb-wrap > ul.wp-block-list li::before {
	content: ""; position: absolute; left: 4px; top: .68em; width: 7px; height: 7px; border-radius: 50%; background: var(--accent-ink);
}
.fzb-section--mist { background: var(--surface-alt); }
.fzb-section--soft { background: var(--fz-soft); }
.fzb-section--brand { background: var(--fz-deep); color: var(--on-dark-2); --focus: var(--fz-hi); }
.fzb-section--brand h2, .fzb-section--brand h3 { color: var(--on-dark); }
.fzb-section--brand a { color: var(--fz-hi); }
.fzb-eyebrow {
	font-family: var(--head-font); font-weight: 600; font-size: .75rem; line-height: 1.3;
	letter-spacing: .08em; text-transform: uppercase; color: var(--accent-ink); margin-bottom: .75rem;
}
.fzb-section--brand .fzb-eyebrow { color: var(--fz-hi); }
.fzb-center { text-align: center; }
.fzb-lead { font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); line-height: 1.6; color: var(--text-secondary); text-wrap: pretty; }
.fzb-section--brand .fzb-lead { color: var(--on-dark-2); }
h2.fzb-center { margin-bottom: .45em; }
h2.fzb-center + .fzb-lead { margin-bottom: 0; }

/* core tables placed in page content get the system skin */
.fzb-section .wp-block-table { margin: 1.6em 0; overflow-x: auto; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.fzb-section .wp-block-table thead, .fzb-section .wp-block-table tfoot { border: 0; }
.fzb-section .wp-block-table table { width: 100%; border: 0; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.fzb-section .wp-block-table th, .fzb-section .wp-block-table td { border: 0; border-bottom: 1px solid var(--border); padding: 13px 16px; text-align: left; vertical-align: top; }
.fzb-section .wp-block-table thead th, .fzb-section .wp-block-table thead td { background: var(--surface-alt); color: var(--text); font-family: var(--head-font); font-weight: 600; border-bottom: 1px solid var(--border); }
.fzb-section .wp-block-table tbody tr:last-child td, .fzb-section .wp-block-table tbody tr:last-child th { border-bottom: 0; }
.fzb-section .wp-block-table tbody td:first-child { font-weight: 600; color: var(--fz-heading); }
.fzb-section .wp-block-table figcaption { font-size: .8125rem; color: var(--text-tertiary); padding: 10px 16px; }
@media (max-width: 640px) { .fzb-section .wp-block-table th, .fzb-section .wp-block-table td { padding: 11px 12px; font-size: .875rem; } }

/* ---------- buttons ---------- */
.fzb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	min-height: 48px; padding: 0 22px; border-radius: var(--r); border: 1px solid transparent;
	font-family: var(--head-font); font-weight: var(--btn-weight); font-size: 1rem; line-height: 1.2;
	letter-spacing: 0; text-transform: none; text-align: center; text-decoration: none;
	cursor: pointer; -webkit-tap-highlight-color: transparent;
	transition: background-color .18s var(--ease-std), color .18s var(--ease-std), border-color .18s var(--ease-std), box-shadow .18s var(--ease-std), transform .18s var(--ease);
}
.fzb-btn:hover { text-decoration: none; }
.fzb-btn:active { transform: translateY(0) scale(.98); box-shadow: none; }
.fzb-btn:disabled, .fzb-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; box-shadow: none; }
.fzb-btn .fzb-arrow, .fzb-btn > span[aria-hidden="true"] { display: inline-block; transition: transform .2s var(--ease); }
.fzb-btn:hover .fzb-arrow, .fzb-btn:hover > span[aria-hidden="true"] { transform: translateX(3px); }
.fzb-btn--accent { background: var(--accent); color: var(--fz-on-accent); box-shadow: var(--e1); }
.fzb-btn--accent:hover { background: var(--accent-hover); color: var(--fz-on-accent); transform: translateY(-1px); box-shadow: var(--e2); }
/* palette a: light blue on a light surface has no edge; use the deep accent ink with white text (5.7:1) */
.fzb-pal-a .fzb-card:not(.fzb-card--dark) .fzb-btn--accent,
.fzb-pal-a .fzb-section:not(.fzb-section--brand) .fzb-btn--accent,
.fzb-pal-a .fzb-survey__step .fzb-btn--accent { background: var(--fz-ink-accent); color: var(--on-dark); }
.fzb-pal-a .fzb-card:not(.fzb-card--dark) .fzb-btn--accent:hover,
.fzb-pal-a .fzb-section:not(.fzb-section--brand) .fzb-btn--accent:hover,
.fzb-pal-a .fzb-survey__step .fzb-btn--accent:hover { background: color-mix(in srgb, var(--fz-ink-accent) 86%, var(--fz-deep)); color: var(--on-dark); }
.fzb-btn--ghost { background: transparent; color: var(--on-dark); border-color: var(--line-on-dark-strong); }
.fzb-btn--ghost:hover { background: var(--fill-on-dark); color: var(--on-dark); border-color: var(--on-dark); }
.fzb-btn--dark { background: var(--fz-deep); color: var(--on-dark); }
.fzb-btn--dark:hover { background: var(--fz-mid); color: var(--on-dark); }
.fzb-btn--band { background: var(--fz-band-btn, var(--fz-deep)); color: var(--fz-band-btn-fg, var(--on-dark)); box-shadow: var(--e1); }
.fzb-btn--band:hover { color: var(--fz-band-btn-fg, var(--on-dark)); transform: translateY(-1px); box-shadow: var(--e2); }
.fzb-btn--bandghost { background: transparent; color: var(--fz-band-ghost, var(--on-dark)); border-color: color-mix(in srgb, currentColor 55%, transparent); }
.fzb-btn--bandghost:hover { color: var(--fz-band-ghost, var(--on-dark)); border-color: currentColor; background: color-mix(in srgb, currentColor 8%, transparent); }
.fzb-btn--lg { min-height: 56px; padding: 0 28px; font-size: 1.0625rem; }
.fzb-btn--block { width: 100%; }
@media (max-width: 420px) { .fzb-btn--lg { padding: 0 20px; } }

/* fzb_cta_xl: bigger target, same shape, same single shadow */
.fzb-ctaxl .fzb-btn--primary { min-height: 64px; padding: 10px 32px; font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); font-weight: calc(var(--btn-weight) + 50); white-space: normal; }
.fzb-ctaxl .fzb-card .fzb-btn--primary { width: 100%; }
.fzb-ctaxl .fzb-steps__cta .fzb-btn--primary, .fzb-ctaxl .fzb-ctaband .fzb-btn--primary { min-width: min(100%, 340px); }
.fzb-ctaxl .fzb-header__cta .fzb-header__offer { min-height: 46px; padding: 0 22px; font-size: 1rem; }
.fzb-ctaxl .fzb-mobilebar__offer { font-size: 1.0625rem !important; }
@media (max-width: 420px) { .fzb-ctaxl .fzb-btn--primary { padding: 10px 18px; } }

/* ---------- header (sticky; behaviour unchanged from 1.2.0) ---------- */
/* The template part wrapper only wraps the header, which made position:sticky
   a no-op (sticky is bounded by its parent). display:contents lets the header
   stick to the viewport for the whole page. */
.wp-site-blocks > .wp-block-template-part:has(> .fzb-header) { display: contents; }
.fzb-header {
	--fzb-head-h: 64px;
	--focus: var(--fz-head-hover);
	background-color: var(--fz-head-bg, var(--fz-deep)); color: var(--fz-head-fg, var(--on-dark));
	border-bottom: 1px solid var(--fz-head-line, transparent);
	position: sticky; top: 0; z-index: 1000;
	padding-top: env(safe-area-inset-top);
	transition: box-shadow .2s var(--ease-std);
}
.fzb-header.is-scrolled, .fzb-header.is-open { box-shadow: var(--e-head); }
.admin-bar .fzb-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .fzb-header { top: 0; } }
@media (min-width: 561px) { .fzb-header { --fzb-head-h: 72px; } }
.fzb-header__bar {
	max-width: var(--wrap); margin-inline: auto;
	padding: 0 max(var(--pad), env(safe-area-inset-right)) 0 max(var(--pad), env(safe-area-inset-left));
	display: flex; align-items: center; gap: 24px; height: var(--fzb-head-h);
}
.fzb-logo { flex: 0 1 auto; min-width: 0; display: flex; align-items: center; height: 100%; text-decoration: none; color: var(--fz-head-fg, var(--on-dark)); }
.fzb-logo img, .fzb-logo .fzb-logo__img {
	display: block; height: 38px; width: auto; max-width: min(260px, 100%);
	object-fit: contain; object-position: left center; background: none;
}
.fzb-wordmark { display: inline-flex; align-items: center; gap: 9px; color: inherit; min-width: 0; }
.fzb-wordmark__mark {
	width: 26px; height: 26px; flex: 0 0 auto; fill: none; stroke: var(--fz-hi); stroke-width: 2;
	stroke-linecap: round; stroke-linejoin: round;
}
.fzb-pal-b .fzb-header .fzb-wordmark__mark { stroke: var(--fz-accent); }
.fzb-wordmark__txt {
	font-family: var(--head-font); font-weight: var(--head-weight); font-size: 1.15rem; letter-spacing: -.015em;
	line-height: 1.1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fzb-nav { margin-left: auto; display: flex; align-items: center; gap: 28px; }
.fzb-nav a {
	position: relative; color: var(--fz-head-fg, var(--on-dark)); text-decoration: none; font-weight: 500; font-size: .9375rem;
	white-space: nowrap; padding: 8px 0;
}
.fzb-nav > a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 2px; border-radius: 2px;
	background: var(--fz-head-hover); transform: scaleX(0); transform-origin: left; transition: transform .2s var(--ease);
}
.fzb-nav > a:hover { color: var(--fz-head-fg, var(--on-dark)); }
.fzb-nav > a:hover::after, .fzb-nav > a[aria-current="page"]::after { transform: scaleX(1); }
.fzb-nav a:focus-visible { outline: 2px solid var(--fz-head-hover); outline-offset: 4px; border-radius: 2px; }
.fzb-nav__extra { display: none; }
.fzb-header__cta { display: flex; align-items: center; gap: 16px; flex: 0 0 auto; margin-left: auto; }
.fzb-nav + .fzb-header__cta { margin-left: 0; }
.fzb-header__cta .fzb-btn { min-height: 44px; padding: 0 18px; font-size: .9375rem; }
.fzb-header__phone {
	display: inline-flex; align-items: center; gap: 8px; color: var(--fz-head-fg, var(--on-dark));
	font-family: var(--head-font); font-weight: var(--btn-weight); font-size: 1rem; text-decoration: none; white-space: nowrap;
}
.fzb-header__phone:hover { color: var(--fz-head-hover); }
.fzb-header__phone svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linejoin: round; }

/* Hamburger: a 44px tap target with a soft palette-tinted fill. */
.fzb-burger {
	display: none; flex: 0 0 auto; position: relative; width: 44px; height: 44px; padding: 0; margin: 0;
	border-radius: var(--r); cursor: pointer; color: var(--fz-head-fg, var(--on-dark));
	background: color-mix(in srgb, var(--fz-head-fg, var(--on-dark)) 6%, transparent);
	border: 1px solid color-mix(in srgb, var(--fz-head-fg, var(--on-dark)) 18%, transparent);
	transition: background-color .15s var(--ease-std), border-color .15s var(--ease-std);
	-webkit-tap-highlight-color: transparent;
}
.fzb-burger:hover, .fzb-header.is-open .fzb-burger {
	background: color-mix(in srgb, var(--fz-head-fg, var(--on-dark)) 12%, transparent);
	border-color: color-mix(in srgb, var(--fz-head-fg, var(--on-dark)) 30%, transparent);
}
.fzb-burger:focus-visible { outline: 2px solid var(--fz-head-hover); outline-offset: 2px; }
.fzb-burger span {
	position: absolute; left: 12px; width: 18px; height: 2px; margin: 0; background: currentColor; border-radius: 2px;
	transition: transform .22s var(--ease), opacity .15s var(--ease-std);
}
.fzb-burger span:nth-child(1) { top: 15px; }
.fzb-burger span:nth-child(2) { top: 20px; }
.fzb-burger span:nth-child(3) { top: 25px; }
.fzb-header.is-open .fzb-burger span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.fzb-header.is-open .fzb-burger span:nth-child(2) { opacity: 0; }
.fzb-header.is-open .fzb-burger span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

.fzb-scrim { display: none; }

@media (max-width: 1080px) {
	.fzb-burger { display: block; }
	.fzb-header__cta, .fzb-nav + .fzb-header__cta { margin-left: auto; }
	/* Mobile menu: an OPAQUE sheet hanging under the sticky header. Hidden with
	   visibility (not just opacity) so it can never ghost over the page. */
	.fzb-nav {
		position: absolute; top: 100%; left: 0; right: 0; margin: 0;
		flex-direction: column; align-items: stretch; gap: 0;
		background-color: var(--fz-head-menu, var(--fz-mid));
		padding: 4px max(var(--pad), env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(var(--pad), env(safe-area-inset-left));
		border-top: 1px solid color-mix(in srgb, var(--fz-head-fg, var(--on-dark)) 12%, transparent);
		box-shadow: var(--e3);
		max-height: calc(100vh - var(--fzb-head-h)); max-height: calc(100dvh - var(--fzb-head-h) - env(safe-area-inset-top));
		overflow-y: auto; overscroll-behavior: contain;
		visibility: hidden; opacity: 0; transform: translateY(-6px); pointer-events: none;
		transition: opacity .18s var(--ease-std), transform .22s var(--ease), visibility 0s linear .22s;
	}
	.fzb-header.is-open .fzb-nav {
		visibility: visible; opacity: 1; transform: none; pointer-events: auto;
		transition: opacity .18s var(--ease-std), transform .22s var(--ease), visibility 0s;
	}
	.fzb-nav > a::after { display: none; }
	.fzb-nav a {
		display: flex; align-items: center; min-height: 52px; padding: 12px 2px; font-size: 1.0625rem; font-weight: 500;
		border-bottom: 1px solid color-mix(in srgb, var(--fz-head-fg, var(--on-dark)) 12%, transparent);
	}
	.fzb-nav > a:hover, .fzb-nav > a[aria-current="page"] { color: var(--fz-head-hover); }
	.fzb-nav__extra { display: grid; gap: 12px; padding-top: 20px; }
	.fzb-nav__extra .fzb-nav__offer { width: 100%; min-height: 52px; font-size: 1rem; }
	.fzb-nav .fzb-nav__phone {
		justify-content: center; min-height: 52px;
		border: 1px solid color-mix(in srgb, var(--fz-head-fg, var(--on-dark)) 30%, transparent); border-radius: var(--r);
		text-align: center; padding: 12px 16px; font-family: var(--head-font); font-weight: var(--btn-weight); font-size: 1rem;
	}
	.fzb-scrim {
		display: block; position: fixed; inset: 0; z-index: 999; background: rgba(var(--fz-deep-rgb), .55);
		visibility: hidden; opacity: 0; transition: opacity .2s var(--ease-std), visibility 0s linear .2s;
	}
	html.fzb-navopen .fzb-scrim { visibility: visible; opacity: 1; transition: opacity .2s var(--ease-std), visibility 0s; }
	html.fzb-navopen { overflow: hidden; }
}
@media (max-width: 780px) {
	.fzb-header__offer { display: none; }
	/* The sticky bottom bar would sit over the open sheet; the sheet carries its own CTA. */
	.fzb-mobilebar { transition: transform .2s var(--ease-std); }
	html.fzb-navopen .fzb-mobilebar { transform: translateY(110%); }
}
@media (min-width: 781px) and (max-width: 1080px) {
	.fzb-header__cta .fzb-header__offer { padding: 0 16px; }
}
@media (max-width: 560px) {
	.fzb-header__bar { gap: 10px; }
	.fzb-logo img, .fzb-logo .fzb-logo__img { height: 30px; max-width: min(210px, 100%); }
	.fzb-wordmark__txt { font-size: 1.02rem; }
	.fzb-wordmark__mark { width: 22px; height: 22px; }
	.fzb-header__cta { gap: 8px; }
	.fzb-header__phone span { display: none; }
	.fzb-header__phone {
		width: 44px; height: 44px; justify-content: center; border-radius: var(--r);
		border: 1px solid color-mix(in srgb, var(--fz-head-fg, var(--on-dark)) 18%, transparent);
		background: color-mix(in srgb, var(--fz-head-fg, var(--on-dark)) 6%, transparent);
	}
}
.fzb-header--lp .fzb-header__phone--lp { margin-left: auto; }
.fzb-header--lp .fzb-header__phone--lp span { display: inline; }
@media (max-width: 560px) {
	.fzb-header--lp .fzb-header__phone--lp { width: auto; height: auto; border: 0; border-radius: 0; background: none; font-size: .95rem; }
}

/* ---------- hero (shared) ---------- */
.fzb-hero {
	position: relative; overflow: hidden; isolation: isolate; color: var(--on-dark-2); --focus: var(--fz-hi);
	background-color: var(--fz-deep);
	background-image: linear-gradient(160deg, var(--fz-deep) 0%, var(--fz-mid) 100%);
}
/* photo: always cover-cropped, never stretched */
.fzb-hero__bg { position: absolute; inset: 0; z-index: -2; object-fit: cover; object-position: center; width: 100%; height: 100%; max-width: none; }
.fzb-hero--img::after {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(100deg, rgba(var(--fz-deep-rgb), .94) 0%, rgba(var(--fz-deep-rgb), .86) 48%, rgba(var(--fz-deep-rgb), .72) 100%);
}
.fzb-hero__inner {
	position: relative; max-width: calc(var(--w-wide) + 2 * var(--pad)); margin-inline: auto;
	padding: clamp(48px, 2rem + 5.5vw, 112px) var(--pad);
	display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 80px); align-items: center;
}
.fzb-hero__copy { color: var(--on-dark); min-width: 0; }
.fzb-hero__kicker {
	display: inline-block; font-family: var(--head-font); font-weight: 600; font-size: .75rem; letter-spacing: .08em;
	text-transform: uppercase; color: var(--fz-hi); margin-bottom: 1rem;
}
.fzb-hero__stars {
	display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; margin: 0 0 1.25rem;
	font-size: .9375rem; font-weight: 500; color: var(--on-dark-2); line-height: 1.3;
}
.fzb-hero__stars .fzb-stars { margin: 0; font-size: 1rem; letter-spacing: 1px; }
.fzb-hero h1 { color: var(--on-dark); margin-bottom: .5em; line-height: 1.08; }
.fzb-hero h1 em { font-style: normal; color: var(--fz-hi); display: block; }
.fzb-hero__sub { font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem); line-height: 1.6; color: var(--on-dark-2); margin-bottom: 1.75rem; max-width: 34em; text-wrap: pretty; }
.fzb-hero__ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.fzb-hero__ticks li { display: flex; gap: .7rem; align-items: flex-start; color: var(--on-dark); font-size: 1.0625rem; font-weight: 500; line-height: 1.5; }
.fzb-hero__ticks svg { flex: 0 0 auto; margin-top: 3px; }
.fzb-ico-check circle { fill: color-mix(in srgb, var(--fz-hi) 22%, transparent); }
.fzb-ico-check path { stroke: var(--fz-hi); }
.fzb-hero__form { min-width: 0; }
/* ticks laid out as one centered row (centered styles) */
.fzb-hero__ticks--row { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 28px; margin-top: 1.75rem; }
.fzb-hero__ticks--row li { font-size: .9688rem; align-items: center; }
.fzb-hero__ticks--row svg { margin-top: 0; }
@media (max-width: 640px) {
	.fzb-hero__ticks--row { display: grid; justify-content: center; text-align: left; gap: 10px; }
}

@media (max-width: 900px) {
	.fzb-hero__inner { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- hero: split_dark (copy left, white card right) ---------- */
.fzb-hero--split-dark h1 { font-size: clamp(2.25rem, 1.35rem + 3.3vw, 3.875rem); }
.fzb-hero--split-dark .fzb-hero__card { box-shadow: var(--e3); }
.fzb-hero--split-dark .fzb-hero__card .fzb-card__title { font-size: clamp(1.375rem, 1.2rem + .5vw, 1.625rem); }

/* ---------- hero: centered layouts ---------- */
.fzb-hero__inner--center { display: block; text-align: center; max-width: calc(900px + 2 * var(--pad)); }
.fzb-hero__inner--center .fzb-hero__stars { justify-content: center; }
.fzb-hero__inner--center .fzb-hero__sub { margin-inline: auto; max-width: 38em; }
.fzb-hero__inner--center h1 { font-size: clamp(2.2rem, 1.3rem + 3.2vw, 3.75rem); }
.fzb-hero__inner--center .fzb-hero__card { max-width: 640px; margin: clamp(24px, 3vw, 36px) auto 0; text-align: left; }
.fzb-hero__inner--center .fzb-consent, .fzb-hero__inner--center .fzb-offer__call { text-align: center; }

/* centered_light: flat white hero, two-tone H1, inline address bar */
.fzb-hero--centered-light {
	color: var(--text-secondary); --focus: var(--fz-ink-accent);
	background-color: var(--bg); background-image: linear-gradient(180deg, var(--fz-soft) 0%, var(--bg) 72%);
	border-bottom: 1px solid var(--border);
}
.fzb-hero--centered-light .fzb-hero__bg { opacity: .06; filter: grayscale(1); }
.fzb-hero--centered-light.fzb-hero--img::after { background: linear-gradient(180deg, rgba(var(--bg-rgb), .3) 0%, rgba(var(--bg-rgb), .85) 70%, var(--bg) 100%); }
.fzb-hero--centered-light h1 { color: var(--fz-ink-accent); }
.fzb-hero--centered-light h1 em { color: var(--fz-heading); }
.fzb-hero--centered-light .fzb-hero__sub { color: var(--text-secondary); }
.fzb-hero--centered-light .fzb-hero__stars { color: var(--text-secondary); }
.fzb-hero--centered-light .fzb-hero__ticks li { color: var(--text); }
.fzb-hero--centered-light .fzb-ico-check circle { fill: var(--fz-soft); }
.fzb-hero--centered-light .fzb-ico-check path { stroke: var(--fz-ink-accent); }
.fzb-hero--centered-light .fzb-hero__card { max-width: 760px; border: 1px solid var(--border); box-shadow: var(--e2); }
.fzb-hero--centered-light .fzb-card__title { font-size: 1.0625rem; letter-spacing: 0; text-align: center; }
.fzb-hero--centered-light .fzb-card__sub { text-align: center; }

/* centered_dark: photo + one vertical overlay, underlined accent words, dark card */
.fzb-hero--centered-dark { background-color: color-mix(in srgb, var(--fz-deep) 55%, var(--ink-deep)); background-image: none; }
.fzb-hero--centered-dark.fzb-hero--img::after {
	background: linear-gradient(180deg, color-mix(in srgb, var(--ink-deep) 78%, transparent) 0%, color-mix(in srgb, color-mix(in srgb, var(--fz-deep) 55%, var(--ink-deep)) 92%, transparent) 100%);
}
.fzb-hero__brandline {
	display: inline-flex; align-items: center; gap: 10px; margin: 0 0 1.25rem; color: var(--on-dark-2);
	font-family: var(--head-font); font-weight: 600; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase;
}
.fzb-hero__brandicon { width: 32px; height: 32px; border-radius: var(--r-sm); display: grid; place-items: center; background: var(--fill-on-dark); border: 1px solid var(--line-on-dark); }
.fzb-hero__brandicon .fzb-glyph { width: 18px; height: 18px; fill: none; stroke: var(--fz-hi); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.fzb-hero--centered-dark h1 em {
	display: inline; color: var(--on-dark); text-decoration: underline; text-decoration-color: var(--fz-hi);
	text-decoration-thickness: .08em; text-underline-offset: .16em; text-decoration-skip-ink: none;
}
.fzb-hero--centered-dark .fzb-hero__card { max-width: 580px; }

/* ---------- 4-cell stat band under the centered_dark hero ---------- */
.fzb-statband { background: color-mix(in srgb, var(--fz-deep) 30%, var(--ink-deep)); border-top: 1px solid var(--line-on-dark); color: var(--on-dark); }
.fzb-statband__inner { max-width: calc(var(--w-wide) + 2 * var(--pad)); margin-inline: auto; padding-inline: var(--pad); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fzb-stat { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; padding: clamp(22px, 2.6vw, 32px) 12px; min-width: 0; }
.fzb-stat + .fzb-stat { border-left: 1px solid var(--line-on-dark); }
.fzb-stat .fzb-stars { margin: 0; font-size: 1rem; }
.fzb-stat strong { font-family: var(--head-font); font-weight: var(--h3-weight); font-size: clamp(.98rem, .92rem + .3vw, 1.125rem); line-height: 1.25; letter-spacing: -.01em; }
.fzb-stat small { font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--on-dark-3); }
.fzb-stat__icon .fzb-glyph { width: 26px; height: 26px; display: block; fill: none; stroke: var(--fz-hi); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 720px) {
	.fzb-statband__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fzb-stat:nth-child(3) { border-left: 0; }
	.fzb-stat:nth-child(n+3) { border-top: 1px solid var(--line-on-dark); }
}

/* a content trust bar right after the stat band reads as one continuous band, not a second stripe */
.fzb-statband + .fzb-trust { background: color-mix(in srgb, var(--fz-deep) 30%, var(--ink-deep)); border-top-color: var(--line-on-dark); }

/* ---------- offer card (form) ---------- */
.fzb-card {
	background: var(--surface); border-radius: var(--r-xl); box-shadow: var(--e2); border: 1px solid var(--border);
	padding: clamp(22px, 1.2rem + 1vw, 32px); color: var(--text); --focus: var(--fz-ink-accent);
}
.fzb-hero .fzb-card:not(.fzb-card--dark) { border-color: transparent; }
.fzb-card__title { font-family: var(--head-font); font-weight: var(--head-weight); letter-spacing: var(--head-track); font-size: 1.375rem; line-height: 1.2; color: var(--fz-heading); margin: 0 0 .35rem; }
.fzb-card__sub { color: var(--text-secondary); font-size: .9375rem; line-height: 1.5; margin: 0 0 1.1rem; }
.fzb-offer__row { display: grid; gap: 10px; }
.fzb-field { position: relative; margin-bottom: .85rem; min-width: 0; }
.fzb-offer__row .fzb-field { margin: 0; }
.fzb-field__icon {
	position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px;
	fill: none; stroke: var(--text-tertiary); stroke-width: 1.8; pointer-events: none;
}
.fzb-input {
	width: 100%; font: inherit; font-size: 1.0625rem; line-height: 1.3; padding: 14px 16px; min-height: 56px;
	border: 1px solid var(--border-hover); border-radius: var(--r); background: var(--surface); color: var(--text);
	transition: border-color .15s var(--ease-std), box-shadow .15s var(--ease-std);
}
.fzb-input--icon { padding-left: 46px; }
.fzb-input:hover { border-color: var(--text-tertiary); }
.fzb-input:focus { outline: 0; border-color: var(--accent-ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-ink) 22%, transparent); }
.fzb-input:disabled { background: var(--surface-alt); color: var(--text-tertiary); cursor: not-allowed; }
.fzb-input::placeholder { color: var(--placeholder); opacity: 1; }
/* inline layout: address + button in one row, stacked on small screens */
.fzb-offer--inline .fzb-offer__row { grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
.fzb-offer--inline .fzb-offer__row .fzb-btn { width: auto; white-space: nowrap; }
.fzb-ctaxl .fzb-offer--inline .fzb-offer__row .fzb-btn { width: auto; padding-inline: 28px; }
@media (max-width: 640px) {
	.fzb-offer--inline .fzb-offer__row { grid-template-columns: minmax(0, 1fr); }
	.fzb-offer--inline .fzb-offer__row .fzb-btn, .fzb-ctaxl .fzb-offer--inline .fzb-offer__row .fzb-btn { width: 100%; white-space: normal; }
}
/* consent microcopy: small, readable, directly under the button (5.4:1 on white) */
.fzb-microcopy { font-size: .75rem; line-height: 1.55; color: var(--text-tertiary); margin: .9rem 0 0; }
.fzb-microcopy a { color: inherit; text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: 2px; }
.fzb-microcopy a:hover { color: var(--fz-heading); }
.fzb-offer__call { margin: .8rem 0 0; font-size: .9375rem; color: var(--text-secondary); text-align: center; }
.fzb-offer__call a { font-weight: 600; color: var(--fz-heading); text-decoration: none; white-space: nowrap; }
.fzb-offer__call a:hover { text-decoration: underline; }
/* elevated dark card (centered_dark hero) */
.fzb-card--dark {
	background: color-mix(in srgb, var(--fz-deep) 70%, var(--ink-deep)); color: var(--on-dark);
	border: 1px solid var(--line-on-dark); box-shadow: var(--e3); --focus: var(--fz-hi);
}
.fzb-card--dark .fzb-card__title { color: var(--on-dark); }
.fzb-card--dark .fzb-card__sub { color: var(--on-dark-2); }
.fzb-card--dark .fzb-input { border-color: transparent; }
.fzb-card--dark .fzb-input:focus { border-color: var(--fz-hi); box-shadow: 0 0 0 3px color-mix(in srgb, var(--fz-hi) 35%, transparent); }
.fzb-card--dark .fzb-microcopy { color: var(--on-dark-3); }
.fzb-card--dark .fzb-microcopy a:hover { color: var(--on-dark); }
.fzb-card--dark .fzb-offer__call { color: var(--on-dark-2); }
.fzb-card--dark .fzb-offer__call a { color: var(--on-dark); }

/* ---------- trust bar ---------- */
.fzb-trust { background: var(--fz-mid); border-top: 1px solid var(--fz-line-dark, var(--line-on-dark)); }
.fzb-trust__inner {
	max-width: calc(var(--w-wide) + 2 * var(--pad)); margin-inline: auto;
	padding: clamp(24px, 3vw, 36px) var(--pad);
	display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: clamp(16px, 3vw, 40px);
}
.fzb-trust__item { display: flex; align-items: center; gap: 12px; color: var(--on-dark); min-width: 0; }
.fzb-trust__icon .fzb-glyph { width: 28px; height: 28px; display: block; fill: none; stroke: var(--fz-hi); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.fzb-trust__txt { min-width: 0; }
.fzb-trust__txt strong { display: block; font-family: var(--head-font); font-weight: var(--h3-weight); font-size: clamp(.98rem, .92rem + .3vw, 1.125rem); line-height: 1.25; letter-spacing: -.01em; }
.fzb-trust__txt small { display: block; font-size: .8125rem; color: var(--on-dark-3); margin-top: 3px; line-height: 1.4; }

@media (max-width: 560px) {
	.fzb-trust__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
	.fzb-trust__item { flex-direction: column; align-items: flex-start; text-align: left; gap: 8px; }
}

/* ---------- comparison table ---------- */
.fzb-compare-wrap > h2 + .fzb-compare, .fzb-compare-wrap > p + .fzb-compare { margin-top: var(--stack); }
.fzb-compare {
	width: 100%; border-collapse: separate; border-spacing: 0; background: var(--surface);
	border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; table-layout: fixed;
}
.fzb-compare th, .fzb-compare td { padding: 15px 18px; text-align: center; border-bottom: 1px solid var(--border); font-size: .9375rem; line-height: 1.45; overflow-wrap: anywhere; transition: background-color .15s var(--ease-std); }
.fzb-compare thead th:first-child { width: 44%; }
.fzb-compare thead th { background: var(--surface-alt); color: var(--text); font-family: var(--head-font); font-weight: 600; }
.fzb-compare thead th.fzb-compare__us { background: var(--fz-deep); color: var(--on-dark); }
.fzb-compare tbody th { text-align: left; font-weight: 500; color: var(--text); background: var(--surface); }
.fzb-compare tbody tr:last-child th, .fzb-compare tbody tr:last-child td { border-bottom: 0; }
.fzb-compare td.fzb-compare__us { background: var(--fz-soft); color: var(--fz-heading); }
.fzb-compare td.fzb-compare__us strong { font-weight: 600; }
.fzb-compare tbody tr:hover th, .fzb-compare tbody tr:hover td:not(.fzb-compare__us) { background: var(--surface-hover); }
.fzb-x, .fzb-check { display: inline-block; width: 24px; height: 24px; border-radius: 50%; position: relative; vertical-align: middle; }
.fzb-x { background: var(--error-soft); }
.fzb-x::before, .fzb-x::after { content: ""; position: absolute; left: 7px; top: 11px; width: 10px; height: 2px; background: var(--error); border-radius: 2px; transform: rotate(45deg); }
.fzb-x::after { transform: rotate(-45deg); }
.fzb-check { background: var(--success); }
.fzb-check::after { content: ""; position: absolute; left: 8.5px; top: 5px; width: 6px; height: 11px; border: solid var(--on-dark); border-width: 0 2.2px 2.2px 0; transform: rotate(45deg); }
@media (max-width: 560px) {
	.fzb-compare th, .fzb-compare td { padding: 12px 9px; font-size: .84rem; }
	.fzb-compare thead th:first-child { width: 40%; }
	.fzb-compare thead th { font-size: .8125rem; }
}

/* ---------- situations ---------- */
.fzb-sitcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); margin-top: var(--stack); }
@media (max-width: 980px) { .fzb-sitcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .fzb-sitcards { grid-template-columns: minmax(0, 1fr); } }
.fzb-sitcard {
	position: relative; isolation: isolate; overflow: hidden;
	display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg);
	padding: var(--card-pad); color: var(--text); text-decoration: none;
	transition: transform .2s var(--ease), box-shadow .2s var(--ease-std), border-color .2s var(--ease-std);
}
/* SpotlightCard: soft paper sheen following the pointer (vars set by fzb.js) */
a.fzb-sitcard::before {
	content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; pointer-events: none;
	background: radial-gradient(320px circle at var(--mx, 50%) var(--my, 0%), color-mix(in srgb, var(--fz-soft) 85%, transparent), transparent 70%);
	transition: opacity .25s var(--ease-std);
}
a.fzb-sitcard:hover { transform: translateY(-2px); box-shadow: var(--e2); border-color: var(--border-hover); color: var(--text); text-decoration: none; }
a.fzb-sitcard:hover::before { opacity: 1; }
a.fzb-sitcard:active { transform: translateY(0); box-shadow: var(--e1); }
a.fzb-sitcard:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.fzb-sitcard__icon {
	width: 44px; height: 44px; border-radius: var(--r-sm); background: var(--fz-soft); display: grid; place-items: center; margin-bottom: 16px;
}
.fzb-sitcard__icon .fzb-glyph { width: 22px; height: 22px; fill: none; stroke: var(--accent-ink); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.fzb-sitcard h3 { font-size: 1.125rem; margin-bottom: .4rem; }
.fzb-sitcard p { margin: 0; color: var(--text-secondary); font-size: .9688rem; line-height: 1.6; }
.fzb-sitcard__more { margin-top: auto; padding-top: 16px; font-weight: 600; font-size: .9375rem; color: var(--accent-ink); }
.fzb-sitcard__more .fzb-arrow { display: inline-block; transition: transform .2s var(--ease); }
a.fzb-sitcard:hover .fzb-sitcard__more .fzb-arrow { transform: translateX(3px); }
@media (max-width: 600px) {
	.fzb-sitcard { display: grid; grid-template-columns: 40px minmax(0, 1fr); column-gap: 14px; align-content: start; padding: 18px; }
	.fzb-sitcard__icon { width: 40px; height: 40px; margin: 0; grid-row: span 3; }
	.fzb-sitcard h3 { margin-top: 8px; }
	.fzb-sitcard__more { padding-top: 10px; }
}
.fzb-sitgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); margin-top: var(--stack); }
@media (max-width: 860px) { .fzb-sitgrid { grid-template-columns: minmax(0, 1fr); } }
.fzb-sitcol { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; }
.fzb-sitcol__head { background: var(--surface-alt); color: var(--fz-heading); border-bottom: 1px solid var(--border); font-family: var(--head-font); font-weight: var(--h3-weight); text-align: center; padding: 14px; font-size: 1.0625rem; }
.fzb-sitcol ul { list-style: none; margin: 0; padding: calc(var(--card-pad) * .8) var(--card-pad); }
.fzb-sitcol li { position: relative; padding-left: 20px; margin-bottom: .55rem; font-size: .9375rem; }
.fzb-sitcol li::before { content: ""; position: absolute; left: 0; top: .66em; width: 6px; height: 6px; border-radius: 50%; background: var(--accent-ink); }

/* ---------- steps ---------- */
.fzb-steps {
	list-style: none; margin: var(--stack) 0 0; padding: 0; counter-reset: none; position: relative;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: clamp(28px, 3vw, 48px);
}
.fzb-step { text-align: center; position: relative; }
.fzb-step__num {
	position: relative; z-index: 1;
	width: 44px; height: 44px; border-radius: 50%; background: var(--fz-soft); color: var(--accent-ink);
	border: 1px solid var(--fz-soft-line);
	display: grid; place-items: center; font-family: var(--head-font); font-weight: var(--head-weight);
	font-size: 1.125rem; margin: 0 auto 1.1rem;
}
/* dashed connector between numerals (3-across desktop only) */
@media (min-width: 900px) {
	.fzb-steps:not(.fzb-steps--list) .fzb-step + .fzb-step::before {
		content: ""; position: absolute; top: 22px; right: calc(50% + 34px); width: calc(100% + clamp(28px, 3vw, 48px) - 68px);
		border-top: 1px dashed var(--border-hover);
	}
}
.fzb-step h3 { margin-bottom: .4em; }
.fzb-section--brand .fzb-step__num { background: var(--fill-on-dark); border-color: var(--line-on-dark); color: var(--fz-hi); }
.fzb-step p { color: var(--text-secondary); margin-bottom: 0; max-width: 34em; margin-inline: auto; }
.fzb-section--brand .fzb-step p { color: var(--on-dark-2); }
.fzb-steps__cta { margin: var(--stack) 0 0; }
/* front page with fzb_body_img_id: image beside a vertical step list */
.fzb-steps__split {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px);
	align-items: center; margin-top: var(--stack);
}
.fzb-steps__media { margin: 0; }
.fzb-steps__img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); }
.fzb-steps--list { margin: 0; grid-template-columns: minmax(0, 1fr); gap: 0; }
.fzb-steps--list .fzb-step { display: flex; gap: 18px; align-items: flex-start; text-align: left; padding: clamp(16px, 1.6vw, 22px) 0; border-bottom: 1px solid var(--border); }
.fzb-steps--list .fzb-step:first-child { padding-top: 0; }
.fzb-steps--list .fzb-step:last-child { border-bottom: 0; padding-bottom: 0; }
.fzb-steps--list .fzb-step__num { flex: 0 0 auto; margin: 0; }
.fzb-steps--list .fzb-step h3 { margin-top: 8px; }
.fzb-steps--list .fzb-step p { margin-inline: 0; }
@media (max-width: 900px) {
	.fzb-steps__split { grid-template-columns: minmax(0, 1fr); }
	.fzb-steps__img { aspect-ratio: 16 / 10; }
}

/* ---------- generic grid ---------- */
.fzb-grid { display: grid; gap: var(--gap); }
.fzb-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fzb-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 980px) { .fzb-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .fzb-grid--2, .fzb-grid--3 { grid-template-columns: minmax(0, 1fr); } }

/* ---------- reviews ---------- */
.fzb-reviews .fzb-grid { margin-top: var(--stack); }
.fzb-review { margin: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--card-pad); display: flex; flex-direction: column; min-width: 0; }
.fzb-stars { color: var(--star); letter-spacing: 2px; font-size: 1rem; margin-bottom: .5rem; line-height: 1; }
.fzb-review .fzb-stars { display: block; margin-bottom: .9rem; }
.fzb-review blockquote { margin: 0 0 20px; }
.fzb-review blockquote p { font-size: 1rem; line-height: 1.65; color: var(--text); margin: 0; }
.fzb-review figcaption { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--border); font-weight: 600; color: var(--fz-heading); font-size: .9375rem; }
.fzb-review figcaption span { display: block; font-weight: 400; font-size: .8125rem; color: var(--text-tertiary); margin-top: 2px; }
.fzb-reviews__src { margin: var(--stack) 0 0; font-weight: 600; }
/* skin-aware: tinted and dark sections */
.fzb-section--soft .fzb-review { border-color: var(--fz-soft-line); }
.fzb-section--brand .fzb-review { background: var(--fill-on-dark); border-color: var(--line-on-dark); }
.fzb-section--brand .fzb-review blockquote p { color: var(--on-dark); }
.fzb-section--brand .fzb-review figcaption { color: var(--on-dark); border-top-color: var(--line-on-dark); }
.fzb-section--brand .fzb-review figcaption span { color: var(--on-dark-3); }

/* ---------- areas ---------- */
.fzb-areas__list { list-style: none; margin: var(--stack) 0 0; padding: 0; }
.fzb-areas__list--chips { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.fzb-areas__list--chips a, .fzb-areas__list--chips .fzb-areas__plain {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; background: var(--surface);
	border: 1px solid var(--border); color: var(--text); text-decoration: none;
	font-size: .9375rem; font-weight: 500; transition: background-color .15s var(--ease-std), color .15s var(--ease-std), border-color .15s var(--ease-std);
}
.fzb-areas__list--chips a:hover { background: var(--fz-soft); color: var(--accent-ink); border-color: var(--accent-ink); }
.fzb-areas__list--cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.fzb-areas__list--cards a, .fzb-areas__list--cards .fzb-areas__plain {
	display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 13px 16px; background: var(--surface);
	border: 1px solid var(--border); border-radius: var(--r); color: var(--text); text-decoration: none;
	font-weight: 500; font-size: .9688rem; line-height: 1.3;
	transition: border-color .15s var(--ease-std), box-shadow .2s var(--ease-std), transform .2s var(--ease), color .15s var(--ease-std);
}
.fzb-areas__list--cards a:hover { border-color: var(--border-hover); box-shadow: var(--e2); transform: translateY(-2px); color: var(--fz-heading); }
.fzb-areas__list--cards a:active { transform: translateY(0); box-shadow: var(--e1); }
.fzb-areas__list--cards .fzb-glyph { width: 18px; height: 18px; flex: 0 0 auto; fill: none; stroke: var(--accent-ink); stroke-width: 1.8; }
@media (max-width: 480px) { .fzb-areas__list--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .fzb-areas__list--cards a { padding: 12px; font-size: .9rem; } }

/* ---------- CTA band ---------- */
.fzb-ctaband { background: var(--fz-band-bg, var(--fz-accent)); color: var(--fz-band-fg, var(--on-dark)); text-align: center; padding: var(--sec-sm) var(--pad); }
.fzb-ctaband__inner { max-width: 760px; margin-inline: auto; }
.fzb-ctaband h2 { color: var(--fz-band-fg, var(--on-dark)); }
.fzb-ctaband p { color: var(--fz-band-sub, var(--on-dark)); font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); margin-bottom: 0; }
.fzb-ctaband__btns { margin-top: 28px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.fzb-ctaband .fzb-btn:focus-visible { outline-color: var(--fz-band-fg, var(--on-dark)); }
@media (max-width: 480px) { .fzb-ctaband__btns .fzb-btn { width: 100%; } }

/* ---------- FAQ ---------- */
.fzb-faq { border-top: 1px solid var(--border); margin-top: var(--stack); }
.fzb-faq details { border-bottom: 1px solid var(--border); }
.fzb-faq summary {
	cursor: pointer; padding: 18px 52px 18px 0; min-height: 56px; position: relative; list-style: none;
	font-family: var(--head-font); font-weight: 600; font-size: 1.0625rem; color: var(--fz-heading); line-height: 1.45; letter-spacing: -.005em;
	transition: color .15s var(--ease-std);
}
.fzb-faq summary::-webkit-details-marker { display: none; }
.fzb-faq summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 4px; }
/* plus/minus: two bars inside a hairline circle (no dash glyphs in the stylesheet) */
.fzb-faq summary::before, .fzb-faq summary::after {
	content: ""; position: absolute; right: 13px; top: 50%; width: 12px; height: 2px; margin-top: -1px; border-radius: 2px;
	background: var(--accent-ink); transition: transform .25s var(--ease);
}
.fzb-faq summary::after { transform: rotate(90deg); }
.fzb-faq details > summary { background-image: radial-gradient(circle at calc(100% - 19px) 50%, transparent 13px, var(--border) 13.5px, var(--border) 14px, transparent 14.5px); }
.fzb-faq details[open] summary::after { transform: rotate(0deg); }
.fzb-faq details[open] summary, .fzb-faq summary:hover { color: var(--accent-ink); }
.fzb-faq details > div { padding: 0 52px 22px 0; color: var(--text-secondary); }
.fzb-faq details[open] > div { animation: fzbFade .3s var(--ease) both; }
.fzb-faq details > div p:last-child { margin-bottom: 0; }
@media (max-width: 560px) { .fzb-faq details > div { padding-right: 0; } }

/* ---------- prose (blog / page body) ---------- */
.fzb-prose { max-width: 760px; }
.fzb-prose h2 { margin-top: 2em; }
.fzb-prose h3 { margin-top: 1.6em; }
.fzb-prose ul, .fzb-prose ol { padding-left: 1.3em; margin-bottom: 1.2em; }
.fzb-prose li { margin-bottom: .5em; }
.fzb-prose ul { list-style: none; padding-left: 0; }
.fzb-prose ul li { position: relative; padding-left: 26px; }
.fzb-prose ul li::before {
	content: ""; position: absolute; left: 4px; top: .68em; width: 7px; height: 7px;
	border-radius: 50%; background: var(--accent-ink);
}
.fzb-prose ol li::marker { color: var(--accent-ink); font-weight: 600; }
.fzb-prose blockquote { margin: 1.6em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--accent-ink); color: var(--fz-heading); font-size: 1.0625rem; }
.fzb-prose table { width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: .9375rem; display: block; overflow-x: auto; }
.fzb-prose th, .fzb-prose td { border: 1px solid var(--border); padding: 11px 14px; text-align: left; }
.fzb-prose thead th { background: var(--surface-alt); color: var(--fz-heading); font-family: var(--head-font); font-weight: 600; }
.fzb-prose__cover { margin: 0 0 2em; }
.fzb-prose__cover img { width: 100%; border-radius: var(--r-lg); aspect-ratio: 16/9; object-fit: cover; }
.fzb-prose figure.wp-block-image { margin: 2em 0; }
.fzb-prose figure.wp-block-image img { width: 100%; border-radius: var(--r-lg); }
.fzb-prose figure.wp-block-image figcaption { font-size: .8125rem; color: var(--text-tertiary); text-align: center; margin-top: .7rem; }

/* ---------- page hero (interior) ---------- */
.fzb-pagehero {
	background: var(--fz-deep); color: var(--on-dark); padding: clamp(44px, 5.5vw, 88px) var(--pad); --focus: var(--fz-hi);
	border-bottom: 1px solid var(--line-on-dark);
}
.fzb-pagehero__inner { max-width: var(--w-wide); margin-inline: auto; }
.fzb-pagehero h1 { color: var(--on-dark); max-width: 900px; margin-bottom: .35em; }
.fzb-pagehero p { color: var(--on-dark-2); max-width: 720px; font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); line-height: 1.6; margin-bottom: 0; }
.fzb-pagehero p.fzb-pagehero__meta { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: .875rem; line-height: 1.5; color: var(--on-dark-3); margin-top: 1rem; }
.fzb-pagehero__meta span + span::before { content: "\00B7"; margin: 0 10px; color: var(--line-on-dark-strong); }
.fzb-pagehero__meta a { color: var(--on-dark-2); text-decoration: underline; text-underline-offset: 2px; }
.fzb-pagehero__meta a:hover { color: var(--on-dark); }
.fzb-crumbs { font-size: .8125rem; margin-bottom: 1rem; }
.fzb-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; }
.fzb-crumbs li { color: var(--on-dark-3); }
.fzb-crumbs li + li::before { content: "/"; margin: 0 8px; color: var(--line-on-dark-strong); }
.fzb-crumbs a { color: var(--on-dark-2); text-decoration: none; }
.fzb-crumbs a:hover { color: var(--on-dark); text-decoration: underline; }

/* ---------- footer ---------- */
.fzb-footer { background: var(--fz-deep); color: var(--on-dark-2); padding-top: clamp(48px, 5.5vw, 80px); font-size: .9375rem; --focus: var(--fz-hi); }
.fzb-footer__grid {
	max-width: var(--wrap); margin-inline: auto; padding-inline: var(--pad);
	display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: 40px;
}
.fzb-footer__grid--noareas { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
@media (max-width: 860px) { .fzb-footer__grid, .fzb-footer__grid--noareas { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .fzb-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .fzb-footer__grid, .fzb-footer__grid--noareas { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
.fzb-footer__brand p { max-width: 34em; }
.fzb-footer__h { color: var(--on-dark-3); font-family: var(--head-font); font-weight: 600; font-size: .75rem; line-height: 1.3; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 1rem; }
.fzb-footer ul { list-style: none; margin: 0; padding: 0; }
.fzb-footer li { margin-bottom: .55rem; }
.fzb-footer a { color: var(--on-dark-2); text-decoration: none; }
.fzb-footer a:hover { color: var(--on-dark); text-decoration: underline; text-decoration-color: currentColor; }
.fzb-footer .fzb-btn--accent, .fzb-footer .fzb-btn--accent:hover { color: var(--fz-on-accent); text-decoration: none; }
.fzb-footer__areas ul { columns: 2; column-gap: 24px; }
.fzb-footer__areas li { break-inside: avoid; }
.fzb-footer__logo { display: inline-flex; color: var(--on-dark); text-decoration: none; margin-bottom: 1rem; }
.fzb-footer__logo:hover { text-decoration: none; }
.fzb-footer__logo img, .fzb-footer__logo .fzb-logo__img { height: 40px; width: auto; max-width: 220px; object-fit: contain; }
.fzb-footer .fzb-wordmark__mark { stroke: var(--fz-hi); }
.fzb-footer__phone { font-family: var(--head-font); font-weight: var(--head-weight); font-size: 1.3rem; color: var(--on-dark) !important; display: inline-block; margin-bottom: .8rem; }
.fzb-footer__disc { max-width: var(--wrap); margin: clamp(32px, 4vw, 48px) auto 0; padding: 0 var(--pad); font-size: .8125rem; color: var(--on-dark-3); line-height: 1.65; }
.fzb-footer__disc p { margin: 0; }
.fzb-footer__bottom { margin-top: 24px; border-top: 1px solid var(--fz-line-dark, var(--line-on-dark)); padding: 20px 0; font-size: .8125rem; color: var(--on-dark-3); }
.fzb-footer__bottom .fzb-wrap { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; }
.fzb-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.fzb-footer__credit { text-decoration: underline !important; text-underline-offset: 2px; text-decoration-color: var(--line-on-dark-strong) !important; }

/* ---------- sticky mobile bar ---------- */
.fzb-mobilebar { display: none; }
@media (max-width: 780px) {
	.fzb-mobilebar {
		display: grid; grid-template-columns: 1fr 1fr; gap: 8px; position: fixed; inset: auto 0 0 0;
		z-index: 200; box-shadow: 0 -1px 0 var(--line-on-dark), var(--e2);
		padding: 8px max(10px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
		background: var(--fz-deep);
	}
	.fzb-mobilebar--single { grid-template-columns: 1fr; }
	.fzb-mobilebar a, .fzb-mobilebar button {
		display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 8px; border-radius: var(--r);
		text-align: center; font-family: var(--head-font); font-weight: var(--btn-weight);
		font-size: 1rem; text-decoration: none; text-transform: none; letter-spacing: 0;
		border: 1px solid transparent; cursor: pointer; line-height: 1.2; -webkit-tap-highlight-color: transparent;
	}
	.fzb-mobilebar a:focus-visible, .fzb-mobilebar button:focus-visible { outline: 3px solid var(--fz-hi); outline-offset: 2px; }
	.fzb-mobilebar__call { background: transparent; color: var(--on-dark); border-color: var(--line-on-dark-strong) !important; }
	.fzb-mobilebar__offer { background: var(--fz-accent); color: var(--fz-on-accent); }
	.fzb-mobilebar__offer:active, .fzb-mobilebar__call:active { transform: scale(.98); }
	body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
}

/* ---------- split section: copy beside the offer card ---------- */
.fzb-split {
	display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	gap: clamp(32px, 4.5vw, 64px); align-items: start;
}
.fzb-split > * { min-width: 0; }
.fzb-split .fzb-prose { max-width: none; }
.fzb-split .fzb-offer { position: sticky; top: 96px; }
@media (max-width: 900px) {
	.fzb-split { grid-template-columns: minmax(0, 1fr); }
	.fzb-split .fzb-offer { position: static; }
}

/* ---------- post cards ---------- */
.fzb-tile { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); transition: box-shadow .2s var(--ease-std), border-color .2s var(--ease-std), transform .2s var(--ease); }
.fzb-tile:hover { box-shadow: var(--e2); border-color: var(--border-hover); transform: translateY(-2px); }
.fzb-tile--post { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.fzb-tile--post .wp-block-post-featured-image { margin: 0; aspect-ratio: 16/9; overflow: hidden; background: var(--surface-alt); }
.fzb-tile--post .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; }
.fzb-tile__body { padding: 22px 24px 26px; }
.fzb-tile--post h3 { font-size: 1.125rem; margin-bottom: .4rem; line-height: 1.35; }
.fzb-tile--post h3 a { color: var(--fz-heading); text-decoration: none; }
.fzb-tile--post h3 a:hover { color: var(--accent-ink); }
.fzb-tile__date { font-size: .8125rem; color: var(--text-tertiary); margin-bottom: .5rem; }
.fzb-tile--post p { font-size: .9375rem; color: var(--text-secondary); margin: 0; }
.wp-block-post-template.fzb-grid { list-style: none; padding: 0; margin: 0; }
.wp-block-query-pagination { margin-top: 40px; display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; font-weight: 600; }

/* ---------- utilities ---------- */
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px,1px,1px,1px); white-space: nowrap;
}
.fzb-skip { position: absolute; left: -9999px; top: 0; background: var(--surface); color: var(--fz-heading); padding: 12px 20px; z-index: 1001; border-radius: var(--r); box-shadow: var(--e2); }
.fzb-skip:focus { left: 8px; top: 8px; }

/* Core block rhythm would insert space between every top-level block; the
   design system owns vertical spacing via .fzb-section. */
:where(.wp-site-blocks) > *,
.wp-site-blocks > * { margin-block-start: 0; margin-block-end: 0; }
.wp-site-blocks { display: block; }
main.wp-block-group > * + * { margin-block-start: 0; }

/* ---------- motion (L1; see DESIGN.md section 7) ---------- */
@keyframes fzbRise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes fzbFade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
/* hero: the offer card and ticks rise once; the H1 (LCP) never animates */
.fzb-hero .fzb-hero__card { animation: fzbRise .6s var(--ease) .08s both; }
.fzb-hero .fzb-hero__ticks li { animation: fzbRise .5s var(--ease) both; }
.fzb-hero .fzb-hero__ticks li:nth-child(2) { animation-delay: .06s; }
.fzb-hero .fzb-hero__ticks li:nth-child(3) { animation-delay: .12s; }
.fzb-hero .fzb-hero__ticks li:nth-child(n+4) { animation-delay: .18s; }
/* scroll reveal: fzb.js only tags elements that start below the fold */
.fzb-rv { opacity: 0; transform: translateY(16px); transition: opacity .6s var(--ease) var(--rv-d, 0ms), transform .6s var(--ease) var(--rv-d, 0ms); }
.fzb-rv.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.fzb-rv { opacity: 1 !important; transform: none !important; }
	a.fzb-sitcard::before { display: none; }
	.fzb-nav, .fzb-scrim, .fzb-burger span, .fzb-mobilebar { transition: none !important; }
}
