/* FBA Support theme. FBA Design System v1.1 with fbasupport.com overrides:
   square corners, no link underlines, italic serif numerals, unboxed line icons,
   editorial tabs, scroll-driven motion with a reduced-motion off switch. */

:root {
	--fba-forest: #105048; --fba-deep: #0B3A34; --fba-emerald: #2A8071; --fba-mint: #CFE0DA; --fba-mint-soft: #F4F8F6;
	--fba-mint-hover: #E6F1EE; --fba-paper: #F7F6F2; --fba-stone: #EFEEE8; --fba-line: #E0DED6; --fba-line-strong: #CFCCC1;
	--fba-ink: #45443F; --fba-muted: #6F6E68; --fba-daybreak: #DBCF39; --fba-white: #FFFFFF;
	--fba-display: "richmond-display", "richmond-text", Georgia, serif;
	--fba-serif: "richmond-text", Georgia, serif;
	--fba-sans: "inter-18pt", "Inter", system-ui, sans-serif;
	--fba-ease: cubic-bezier(.22, .61, .36, 1);
	--fba-gutter: 20px; --fba-pad: 56px;
}
@media (min-width: 782px) { :root { --fba-gutter: 40px; --fba-pad: 96px; } }

/* ---------- base ---------- */
body { margin: 0; background: var(--fba-white); color: var(--fba-ink); font-family: var(--fba-serif); -webkit-font-smoothing: antialiased; }
*, *::before, *::after { box-sizing: border-box; }
a { color: var(--fba-forest); font-weight: 700; text-decoration: none; }
a:hover { color: var(--fba-emerald); text-decoration: none; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(48, 145, 127, .55); }
img { max-width: 100%; height: auto; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.entry-content > * + *, .wp-block-post-content > * + * { margin-block-start: 0; }
.fba-section p, .fba-section h1, .fba-section h2, .fba-section h3, .fba-section ul, .fba-section ol { margin-top: 0; }
.fba-section h1, .fba-section h2, .fba-section h3 { font-family: var(--fba-display); color: var(--fba-deep); font-weight: 700; letter-spacing: -0.015em; }
.fba-section h1 { font-size: clamp(40px, 5vw, 60px); line-height: 1.06; margin-bottom: 0; }
.fba-section h2 { font-size: clamp(30px, 3.2vw, 40px); line-height: 1.12; margin-bottom: 0; }
.fba-section h3 { font-size: 22px; line-height: 1.2; margin-bottom: 0; letter-spacing: -0.005em; }
.fba-section p { font-size: 17px; line-height: 1.6; margin-bottom: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ---------- sections and surfaces ---------- */
.fba-section { padding: var(--fba-pad) var(--fba-gutter); margin: 0; }
.fba-container { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 32px; }
@media (min-width: 782px) { .fba-container { gap: 40px; } }
.fba-bg-white { background: var(--fba-white); }
.fba-bg-paper { background: var(--fba-paper); }
.fba-bg-emerald { background: var(--fba-emerald); }
.fba-bg-forest { background: var(--fba-forest); }
.fba-bg-emerald, .fba-bg-forest { color: var(--fba-white); }
.fba-bg-emerald :is(h1, h2, h3, p, li), .fba-bg-forest :is(h1, h2, h3) { color: var(--fba-white); }
.fba-bg-forest :is(p, li) { color: var(--fba-mint); }
.fba-bg-emerald a:not(.wp-block-button__link), .fba-bg-forest a:not(.wp-block-button__link) { color: var(--fba-white); }
.fba-bg-forest a:not(.wp-block-button__link):hover, .fba-bg-emerald a:not(.wp-block-button__link):hover { color: var(--fba-daybreak); }

/* ---------- type pieces ---------- */
.fba-eyebrow { display: flex; align-items: center; gap: 14px; font-family: var(--fba-sans) !important; font-size: 12px !important; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--fba-emerald); line-height: 1.3 !important; }
@media (min-width: 782px) { .fba-eyebrow { font-size: 13px !important; letter-spacing: .34em; } }
.fba-eyebrow::before { content: ""; display: block; width: 32px; height: 1px; background: currentColor; flex-shrink: 0; transform-origin: left center; }
.fba-bg-paper .fba-eyebrow { color: var(--fba-forest); }
.fba-bg-emerald .fba-eyebrow { color: var(--fba-white); }
.fba-bg-forest .fba-eyebrow { color: var(--fba-daybreak); }
.fba-head { display: flex; flex-direction: column; gap: 14px; max-width: 760px; }
.fba-lead { font-size: 17px !important; line-height: 1.55 !important; }
@media (min-width: 782px) { .fba-hero .fba-lead { font-size: 19px !important; } }
.fba-trust { font-family: var(--fba-sans); font-size: 12px !important; letter-spacing: .12em; text-transform: uppercase; line-height: 1.7 !important; }
.fba-kicker { font-family: var(--fba-sans); font-size: 11px !important; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--fba-emerald); line-height: 1.4 !important; }
.fba-bg-emerald .fba-kicker, .fba-bg-forest .fba-kicker { color: var(--fba-white); }
.fba-note { font-family: var(--fba-sans); font-size: 13px !important; color: var(--fba-muted); line-height: 1.5 !important; }
.fba-bg-forest .fba-note, .fba-bg-emerald .fba-note { color: var(--fba-mint); }
.fba-num { font-family: var(--fba-serif); font-style: italic; font-weight: 400; font-size: 44px !important; line-height: 1 !important; letter-spacing: -0.01em; color: var(--fba-emerald); }
.fba-num-lg { font-size: 56px !important; } .fba-num-xl { font-size: 64px !important; }
.fba-bg-forest .fba-num { color: var(--fba-daybreak); }
.fba-bg-emerald .fba-num { color: var(--fba-white); }
.fba-textlink a { font-family: var(--fba-sans); font-size: 15px; font-weight: 700; color: var(--fba-emerald); }
.fba-textlink a:hover { color: var(--fba-forest); }
.fba-source { font-family: var(--fba-sans); font-size: 13px !important; }
.fba-tbc { font-family: var(--fba-sans); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--fba-deep); background: var(--fba-daybreak); padding: 2px 7px; }

/* ---------- buttons ---------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-button__link, .fba-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 12px 20px; border-radius: 0 !important; font-family: var(--fba-sans); font-size: 15px; font-weight: 700; line-height: 1; text-decoration: none; border: 1px solid transparent; background: var(--fba-emerald); color: var(--fba-white); cursor: pointer; transition: background .24s var(--fba-ease), color .24s var(--fba-ease), box-shadow .24s var(--fba-ease); }
.wp-block-button__link:hover { background: var(--fba-forest); color: var(--fba-white); box-shadow: 0 6px 18px rgba(16, 80, 72, .22); }
.is-style-outline .wp-block-button__link, .fba-btn-outline { background: transparent; color: var(--fba-forest); border: 1px solid var(--fba-emerald); padding: 12px 20px; }
.is-style-outline .wp-block-button__link:hover, .fba-btn-outline:hover { background: var(--fba-mint-hover); color: var(--fba-forest); box-shadow: none; }
.is-style-white .wp-block-button__link { background: var(--fba-white); color: var(--fba-forest); }
.is-style-white .wp-block-button__link:hover { background: #E7EFEA; color: var(--fba-forest); box-shadow: 0 6px 18px rgba(0, 0, 0, .18); }
.is-style-white-outline .wp-block-button__link { background: transparent; color: var(--fba-white); border-color: var(--fba-white); }
.is-style-white-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, .1); color: var(--fba-white); box-shadow: none; }
@media (max-width: 781px) { .fba-section .wp-block-buttons { flex-direction: column; align-items: stretch; } .fba-section .wp-block-button, .fba-section .wp-block-button__link { width: 100%; } }

/* ---------- layout primitives ---------- */
.fba-grid { display: grid; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 782px) {
	.fba-grid { gap: 24px; }
	.fba-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fba-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.fba-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fba-grid-7 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1100px) { .fba-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .fba-grid-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); } }
.fba-stats.fba-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.fba-stats.fba-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fba-split { display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1000px) { .fba-split { grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; } .fba-split-faq { grid-template-columns: 1fr 1.6fr; gap: 48px; align-items: start; } .fba-split-form { grid-template-columns: .9fr 1.1fr; align-items: start; } .fba-split-center { align-items: center; } }
.fba-stack { display: flex; flex-direction: column; gap: 24px; }
.fba-head-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 32px; }
.fba-head-row-sm { align-items: baseline; }

/* ---------- hero ---------- */
.fba-hero { padding-top: 48px; padding-bottom: 56px; }
@media (min-width: 782px) { .fba-hero { padding-top: 96px; padding-bottom: 88px; } }
.fba-hero-short { padding-bottom: 48px; }
.fba-hero-grid { display: grid; gap: 40px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .fba-hero-grid { grid-template-columns: 1.1fr .9fr; gap: 72px; align-items: end; } .fba-hero-home .fba-hero-grid, .fba-hero-form .fba-hero-grid { align-items: start; } }
.fba-hero-copy { display: flex; flex-direction: column; gap: 20px; max-width: 640px; }
.fba-hero-copy > :nth-child(1) { animation: fba-rise .9s .05s var(--fba-ease) both; }
.fba-hero-copy > :nth-child(2) { animation: fba-rise .9s .15s var(--fba-ease) both; }
.fba-hero-copy > :nth-child(3) { animation: fba-rise .9s .27s var(--fba-ease) both; }
.fba-hero-copy > :nth-child(4) { animation: fba-rise .9s .38s var(--fba-ease) both; }
.fba-hero-grid > :nth-child(2) { animation: fba-slidein 1.1s .35s var(--fba-ease) both; }
.fba-hero .fba-eyebrow::before { animation: fba-draw 1.2s .25s var(--fba-ease) both; }
.fba-jumps, .fba-clock, .fba-contact-lines { display: flex; flex-direction: column; border-bottom: 1px solid rgba(255, 255, 255, .28); }
.fba-jumps > .fba-kicker { padding-bottom: 12px; }
.fba-jump { margin: 0; border-top: 1px solid rgba(255, 255, 255, .28); }
.fba-jump a { display: flex; align-items: baseline; gap: 18px; padding: 14px 0; font-family: var(--fba-serif); font-weight: 400; font-size: 20px; color: var(--fba-white); transition: padding .24s var(--fba-ease); }
.fba-jump a:hover { padding-left: 6px; color: var(--fba-white); }
.fba-jump .fba-num { font-size: 30px !important; width: 44px; color: var(--fba-white); }
.fba-clock > .fba-kicker { padding-bottom: 12px; }
.fba-checks { display: flex; flex-direction: column; }
.fba-check { display: flex; gap: 14px; align-items: flex-start; padding: 16px 0; border-top: 1px solid rgba(255, 255, 255, .28); }
.fba-check p { font-size: 18px !important; line-height: 1.4 !important; }
.fba-contact-line { display: flex; gap: 16px; align-items: flex-start; padding: 16px 0; border-top: 1px solid rgba(255, 255, 255, .28); }
.fba-contact-line .fba-icon { width: 22px; height: 22px; background-color: var(--fba-white); margin-top: 3px; }
.fba-contact-line p:not(.fba-kicker) { font-size: 18px !important; }

/* ---------- cards ---------- */
.fba-card { background: var(--fba-white); border: 1px solid var(--fba-line); padding: 24px 20px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 4px 14px rgba(16, 80, 72, .08); color: var(--fba-ink); }
@media (min-width: 782px) { .fba-card { padding: 28px; } }
.fba-card > .wp-block-buttons { margin-top: auto; }
.fba-card-dark { background: var(--fba-forest); border-color: var(--fba-forest); }
.fba-card-dark :is(p, li) { color: var(--fba-white); }
.fba-card-dark .fba-kicker { color: var(--fba-mint); }
.fba-card-dark .fba-price { color: var(--fba-white); }
.fba-bg-forest .fba-card :is(p, li), .fba-bg-emerald .fba-card :is(p, li) { color: var(--fba-ink); }
.fba-bg-forest .fba-card h3, .fba-bg-emerald .fba-card h3 { color: var(--fba-deep); }
.fba-bg-forest .fba-card .fba-kicker, .fba-bg-emerald .fba-card .fba-kicker { color: var(--fba-emerald); }
.fba-lift { transition: transform .2s var(--fba-ease), box-shadow .2s var(--fba-ease); }
.fba-lift:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(16, 80, 72, .10); }
.fba-card-flush { padding: 0; gap: 0; overflow: hidden; }
.fba-card-body { padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.fba-price { font-family: var(--fba-display); font-weight: 700; font-size: 48px !important; line-height: 1 !important; color: var(--fba-emerald); }
.fba-form-card { padding: 28px 24px; box-shadow: 0 10px 28px rgba(16, 80, 72, .18); border: 0; }
.fba-bg-emerald .fba-form-card :is(h3) { color: var(--fba-deep); }
.fba-callout { font-family: var(--fba-sans); font-size: 14px !important; background: var(--fba-mint-soft); border: 1px solid var(--fba-mint); padding: 16px 18px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.fba-callout p { font-size: 15px !important; }
p.fba-callout { display: block; }

/* ---------- icons (unboxed line icons, CSS masks) ---------- */
.fba-icon { width: 40px; height: 40px; background-color: var(--fba-emerald); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; flex-shrink: 0; }
.fba-check .fba-icon { width: 22px; height: 22px; background-color: var(--fba-white); margin-top: 2px; }
.fba-icon-compass { --i: url(../icons/compass.svg); } .fba-icon-refresh { --i: url(../icons/refresh.svg); } .fba-icon-lifebuoy { --i: url(../icons/lifebuoy.svg); }
.fba-icon-server { --i: url(../icons/server.svg); } .fba-icon-globe { --i: url(../icons/globe.svg); } .fba-icon-phone { --i: url(../icons/phone.svg); }
.fba-icon-search { --i: url(../icons/search.svg); } .fba-icon-chart { --i: url(../icons/chart.svg); } .fba-icon-mail { --i: url(../icons/mail.svg); }
.fba-icon-key { --i: url(../icons/key.svg); } .fba-icon-pen { --i: url(../icons/pen.svg); } .fba-icon-calendar { --i: url(../icons/calendar.svg); }
.fba-icon-help { --i: url(../icons/help.svg); } .fba-icon-check { --i: url(../icons/check.svg); } .fba-icon-clock { --i: url(../icons/clock.svg); } .fba-icon-pin { --i: url(../icons/pin.svg); }

/* ---------- stats ---------- */
.fba-stat { border-top: 1px solid var(--fba-line); padding-top: 20px; display: flex; flex-direction: column; gap: 10px; }
.fba-bg-forest .fba-stat, .fba-bg-emerald .fba-stat { border-top-color: rgba(255, 255, 255, .28); }
.fba-stat-value { font-family: var(--fba-display); font-weight: 700; font-size: clamp(32px, 4vw, 48px) !important; line-height: 1 !important; letter-spacing: -0.02em; color: var(--fba-emerald); }
.fba-bg-forest .fba-stat-value, .fba-bg-emerald .fba-stat-value { color: var(--fba-white); }
.fba-stat-label { font-family: var(--fba-sans); font-size: 11px !important; letter-spacing: .2em; text-transform: uppercase; color: var(--fba-muted); line-height: 1.3 !important; }
.fba-bg-forest .fba-stat-label, .fba-bg-emerald .fba-stat-label { color: var(--fba-mint); }
.fba-bg-emerald .fba-stat-label { color: var(--fba-white); }
.fba-proof-copy { display: flex; flex-direction: column; gap: 16px; }

/* ---------- steps, rows, lists ---------- */
.fba-step { border-top: 1px solid var(--fba-line); padding-top: 20px; display: flex; flex-direction: column; gap: 12px; }
.fba-bg-forest .fba-step { border-top-color: rgba(255, 255, 255, .18); }
.fba-step p:not(.fba-num) { font-size: 15px !important; line-height: 1.55 !important; }
.fba-step h3 { font-size: 20px !important; }
.fba-steps-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 8px; }
.fba-steps-foot .fba-note { max-width: 720px; font-family: var(--fba-serif); font-size: 15px !important; }
.fba-rows { display: flex; flex-direction: column; border-bottom: 1px solid var(--fba-line); }
.fba-row { display: grid; grid-template-columns: 56px 1fr; gap: 12px 20px; align-items: center; padding: 22px 0; border-top: 1px solid var(--fba-line); }
.fba-row .fba-num { font-size: 32px !important; }
.fba-row > .wp-block-buttons { grid-column: 1 / -1; }
@media (min-width: 782px) { .fba-row { grid-template-columns: 72px 1fr auto; } .fba-row > .wp-block-buttons { grid-column: auto; } }
.fba-row-text { display: flex; flex-direction: column; gap: 4px; }
.fba-row-text h3 { font-size: 20px !important; }
.fba-row-text p { font-size: 15px !important; }
.fba-ticks { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--fba-line); }
.fba-ticks li { display: flex; gap: 10px; padding: 9px 0; border-top: 1px solid var(--fba-line); font-size: 15px; line-height: 1.5; }
.fba-ticks li::before { content: "·"; color: var(--fba-emerald); }
.fba-card-dark .fba-ticks, .fba-card-dark .fba-ticks li { border-color: rgba(255, 255, 255, .22); }
.fba-card-dark .fba-ticks li::before { color: var(--fba-daybreak); }
.fba-linklist { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--fba-line); }
.fba-linklist li { padding: 12px 0; border-top: 1px solid var(--fba-line); }
.fba-linklist a { font-family: var(--fba-serif); font-size: 18px; }
.fba-numlist { display: flex; flex-direction: column; }
.fba-numlist .fba-step { display: grid; grid-template-columns: 44px 1fr; gap: 4px 16px; padding: 18px 0 0; }
.fba-numlist .fba-step .fba-num { font-size: 30px !important; grid-row: span 2; }
.fba-numlist .fba-step h3 { font-size: 18px !important; }
.fba-prep { display: flex; flex-direction: column; gap: 16px; }
.fba-minis .fba-mini { border-top: 1px solid var(--fba-line); padding-top: 16px; display: flex; flex-direction: column; gap: 12px; }
.fba-mini .fba-num { font-size: 36px !important; }
.fba-mini-title { font-family: var(--fba-sans); font-size: 15px !important; font-weight: 700; color: var(--fba-deep); line-height: 1.35 !important; }
.fba-feature { border-top: 1px solid var(--fba-line); padding-top: 20px; display: flex; flex-direction: column; gap: 12px; }
.fba-feature h3 { font-size: 20px !important; }
.fba-feature p { font-size: 15px !important; }
.fba-meta { border-top: 1px solid var(--fba-line); padding-top: 12px; display: flex; flex-direction: column; gap: 4px; }
.fba-meta-label { font-family: var(--fba-sans); font-size: 10.5px !important; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--fba-muted); }
.fba-meta-value { font-family: var(--fba-display); font-weight: 700; font-size: 18px !important; color: var(--fba-deep); line-height: 1.3 !important; }
.fba-meta + .fba-meta { margin: 0; }
.fba-note-rows { display: flex; flex-direction: column; border-top: 1px solid var(--fba-line); }
.fba-note-row { padding: 18px 0; border-bottom: 1px solid var(--fba-line); display: flex; flex-direction: column; gap: 6px; }
.fba-note-row .fba-kicker { color: var(--fba-muted); }

/* ---------- services / process / cases ---------- */
.fba-services, .fba-cases, .fba-process { display: flex; flex-direction: column; border-bottom: 1px solid var(--fba-line); }
.fba-service { display: grid; gap: 28px; padding: 36px 0; border-top: 1px solid var(--fba-line); }
@media (min-width: 1000px) { .fba-service { grid-template-columns: 1fr 1fr; gap: 72px; padding: 56px 0; } }
.fba-service-main, .fba-service-side { display: flex; flex-direction: column; gap: 14px; }
.fba-service h3 { font-size: clamp(26px, 3vw, 32px) !important; }
.fba-process-row { display: grid; gap: 12px; padding: 28px 0; border-top: 1px solid var(--fba-line); }
@media (min-width: 1000px) { .fba-process-row { grid-template-columns: 120px 1fr 240px; gap: 32px; padding: 36px 0; align-items: start; } .fba-process-action { display: flex; justify-content: flex-end; padding-top: 8px; } }
.fba-process-text { display: flex; flex-direction: column; gap: 12px; max-width: 640px; }
.fba-process-text h3 { font-size: 26px !important; }
.fba-case { display: grid; gap: 24px; padding: 36px 0; border-top: 1px solid var(--fba-line); }
@media (min-width: 1000px) { .fba-case { grid-template-columns: 1.25fr 1fr; gap: 64px; align-items: center; padding: 56px 0; } .fba-case-flip { grid-template-columns: 1fr 1.25fr; } .fba-case-flip .fba-browser { order: 2; } }
.fba-case-text { display: flex; flex-direction: column; gap: 14px; }
.fba-case-text h3 { font-size: clamp(26px, 3vw, 34px) !important; }
.fba-browser { border: 1px solid var(--fba-line); background: var(--fba-stone); box-shadow: 0 10px 28px rgba(16, 80, 72, .10); overflow: hidden; }
.fba-browser-bar { display: flex; align-items: center; gap: 6px; height: 28px; margin: 0; padding: 0 12px 0 48px; background: var(--fba-line); font-family: var(--fba-sans); font-size: 11px !important; color: var(--fba-muted); position: relative; }
.fba-browser-bar::before { content: ""; position: absolute; left: 12px; top: 10px; width: 9px; height: 9px; background: #fff; box-shadow: 15px 0 #fff, 30px 0 #fff; }
.fba-browser .wp-block-image { margin: 0; }
.fba-browser img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top center; transition: transform 1.2s var(--fba-ease); }
.fba-lift:hover .fba-browser img, .fba-case:hover .fba-browser img { transform: scale(1.02); }
.fba-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.fba-tag { font-family: var(--fba-sans); font-size: 12px !important; font-weight: 700; color: var(--fba-forest); padding: 6px 10px; border: 1px solid var(--fba-mint); background: var(--fba-mint-soft); line-height: 1.2 !important; }
.fba-work-grid { display: grid; gap: 24px; }
@media (min-width: 1000px) { .fba-work-grid { grid-template-columns: 1.2fr 1fr; } }

/* ---------- tabs (built by theme.js from .fba-tabpanel groups) ---------- */
.fba-tablist { display: flex; gap: 32px; overflow-x: auto; border-bottom: 1px solid var(--fba-line); scrollbar-width: none; margin-bottom: 8px; }
.fba-tablist::-webkit-scrollbar { display: none; }
.fba-tab { flex-shrink: 0; min-height: 48px; padding: 0 0 12px; margin-bottom: -1px; border: 0; border-bottom: 2px solid transparent; background: none; cursor: pointer; white-space: nowrap; font-family: var(--fba-serif); font-size: 19px; color: var(--fba-muted); transition: color .2s, border-color .2s; }
.fba-tab[aria-selected="true"] { color: var(--fba-deep); font-weight: 700; border-bottom-color: var(--fba-forest); }
.fba-tabs-dark .fba-tablist { border-bottom-color: rgba(255, 255, 255, .22); }
.fba-tabs-dark .fba-tab { color: var(--fba-mint); }
.fba-tabs-dark .fba-tab[aria-selected="true"] { color: var(--fba-white); border-bottom-color: var(--fba-daybreak); }
.fba-tab-label { display: none; }
.fba-tabs.is-ready .fba-tabpanel[hidden] { display: none; }
.fba-tabs.is-ready .fba-tabpanel { animation: fba-swap .5s var(--fba-ease) both; }
.fba-tabpanel { display: flex; flex-direction: column; gap: 16px; }
.fba-tabs:not(.is-ready) .fba-tabpanel + .fba-tabpanel { margin-top: 40px; }
.fba-tabs-card .fba-tablist { margin-bottom: 16px; }
.fba-hsform { min-height: 120px; }

/* ---------- HubSpot form styling ---------- */
.fba-hsform .hs-form-field { margin-bottom: 14px; }
.fba-hsform label { display: block; font-family: var(--fba-sans); font-size: 13px; font-weight: 700; color: var(--fba-deep); margin-bottom: 6px; }
.fba-hsform input[type=text], .fba-hsform input[type=email], .fba-hsform input[type=tel], .fba-hsform input[type=url], .fba-hsform select, .fba-hsform textarea { width: 100% !important; min-height: 44px; padding: 10px 12px; border: 1px solid var(--fba-line-strong); border-radius: 0; font-family: var(--fba-sans); font-size: 15px; color: var(--fba-deep); background: #fff; }
.fba-hsform textarea { min-height: 96px; }
.fba-hsform input:focus, .fba-hsform select:focus, .fba-hsform textarea:focus { outline: none; box-shadow: 0 0 0 3px rgba(48, 145, 127, .55); border-color: var(--fba-emerald); }
.fba-hsform .hs-button { width: 100%; min-height: 48px; border: 0; border-radius: 0; background: var(--fba-emerald); color: #fff; font-family: var(--fba-sans); font-size: 15px; font-weight: 700; cursor: pointer; }
.fba-hsform .hs-button:hover { background: var(--fba-forest); }
.fba-hsform .hs-error-msgs { list-style: none; margin: 6px 0 0; padding: 0; font-family: var(--fba-sans); font-size: 13px; color: #A3321F; }
.fba-hsform .hs-form-booleancheckbox-display { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.fba-hsform .hs-richtext, .fba-hsform .legal-consent-container { font-family: var(--fba-sans); font-size: 13px; color: var(--fba-muted); }
.fba-hsform .submitted-message { font-family: var(--fba-serif); font-size: 17px; color: var(--fba-deep); }
.fba-hsform fieldset { max-width: none !important; }
.fba-meetings { min-height: 640px; }

/* ---------- FAQ (core Details blocks) ---------- */
.fba-faq { display: flex; flex-direction: column; border-top: 1px solid var(--fba-line); }
.fba-qa { border-bottom: 1px solid var(--fba-line); margin: 0 !important; }
.fba-qa summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 44px; padding: 18px 0; cursor: pointer; font-family: var(--fba-serif); font-size: 19px; color: var(--fba-deep); }
.fba-qa summary::-webkit-details-marker { display: none; }
.fba-qa summary::after { content: "+"; font-family: var(--fba-sans); font-size: 22px; color: var(--fba-emerald); width: 20px; text-align: center; flex-shrink: 0; }
.fba-qa[open] summary::after { content: "\2212"; }
.fba-qa > p { padding: 0 44px 22px 0; animation: fba-swap .35s var(--fba-ease) both; }
@media (max-width: 781px) { .fba-qa > p { padding-right: 8px; } .fba-qa summary { font-size: 18px; } }
.fba-faq-page { display: flex; flex-direction: column; gap: 48px; max-width: 900px; }
.fba-topic { display: flex; flex-direction: column; gap: 16px; scroll-margin-top: 24px; }
.fba-topic-title { font-size: 28px !important; }
.fba-topic.is-hidden, .fba-qa.is-hidden { display: none; }
.fba-faq-search { display: flex; flex-direction: column; gap: 10px; }
.fba-faq-search label { font-family: var(--fba-sans); font-size: 11px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--fba-white); }
.fba-faq-search input { width: 100%; height: 56px; padding: 0 16px 0 50px; border: 1px solid #fff; border-radius: 0; background: #fff url(../icons/search-dark.svg) 16px center / 22px no-repeat; font-family: var(--fba-sans); font-size: 16px; color: var(--fba-deep); }
.fba-faq-search input:focus-visible { outline: 2px solid var(--fba-daybreak); outline-offset: 2px; box-shadow: none; }
.fba-faq-result { font-family: var(--fba-sans); font-size: 13px !important; min-height: 20px; color: #fff; }
.fba-faq-empty { padding: 24px 0; border-bottom: 1px solid var(--fba-line); }

/* ---------- testimonials ---------- */
.fba-quotes { position: relative; }
.fba-quote { display: grid; gap: 28px; }
@media (min-width: 1000px) { .fba-quote { grid-template-columns: .8fr 1.2fr; gap: 72px; align-items: center; } }
.fba-quotes.is-ready .fba-quote[hidden] { display: none; }
.fba-quotes.is-ready .fba-quote { animation: fba-swap .5s var(--fba-ease) both; }
.fba-quotes:not(.is-ready) .fba-quote + .fba-quote { margin-top: 48px; }
.fba-portrait { position: relative; aspect-ratio: 4 / 5; background: var(--fba-stone); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.fba-portrait::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(16, 80, 72, .18); pointer-events: none; }
.fba-portrait .wp-block-image, .fba-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; }
.fba-portrait-label { font-style: italic; color: var(--fba-muted); }
.fba-quote-body { display: flex; flex-direction: column; gap: 20px; }
.fba-quote-mark { font-style: italic; font-size: 112px !important; line-height: .6 !important; height: 48px; color: var(--fba-emerald); }
.fba-quote-text { font-style: italic; font-size: clamp(22px, 2.6vw, 32px) !important; line-height: 1.4 !important; color: var(--fba-deep); }
.fba-quote-name { font-family: var(--fba-sans); font-size: 16px !important; font-weight: 700; color: var(--fba-deep); }
.fba-quote-role { font-family: var(--fba-sans); font-size: 11px !important; letter-spacing: .2em; text-transform: uppercase; color: var(--fba-muted); margin-top: -14px !important; }
.fba-pager { display: flex; align-items: center; gap: 24px; margin-top: 36px; }
.fba-pager-count { display: flex; align-items: baseline; gap: 8px; min-width: 96px; font-family: var(--fba-serif); font-style: italic; }
.fba-pager-count b { font-weight: 400; font-size: 40px; line-height: 1; color: var(--fba-forest); }
.fba-pager-count span { font-size: 15px; color: var(--fba-muted); }
.fba-pager-rail { flex-grow: 1; display: flex; gap: 6px; }
.fba-pager-rail button { flex: 1 1 0; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; display: flex; align-items: center; }
.fba-pager-rail button::before { content: ""; display: block; width: 100%; height: 1px; background: var(--fba-line-strong); transition: height .3s var(--fba-ease), background .3s var(--fba-ease); }
.fba-pager-rail button[aria-current="true"]::before { height: 2px; background: var(--fba-forest); }
.fba-pager-nav { display: flex; align-items: center; gap: 4px; }
.fba-pager-nav button { min-height: 44px; padding: 0 14px; border: 0; background: none; cursor: pointer; font-family: var(--fba-serif); font-style: italic; font-size: 18px; color: var(--fba-forest); }
.fba-pager-nav button:hover { color: var(--fba-emerald); }
.fba-pager-nav i { width: 1px; height: 18px; background: var(--fba-line-strong); }

/* ---------- member directory and marquee ---------- */
.fba-directory-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
@media (min-width: 782px) { .fba-directory-list { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; } }
@media (min-width: 1100px) { .fba-directory-list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fba-directory-list li { min-width: 0; }
.fba-directory-list a { display: flex; flex-direction: column; gap: 3px; padding: 14px 0; border-top: 1px solid var(--fba-line); font-weight: 400; transition: translate .24s var(--fba-ease); }
.fba-directory-list a:hover { translate: 4px 0; }
.fba-directory-name { font-family: var(--fba-display); font-weight: 700; font-size: 17px; line-height: 1.25; color: var(--fba-deep); }
.fba-directory-list a:hover .fba-directory-name { color: var(--fba-emerald); }
.fba-directory-domain { font-family: var(--fba-sans); font-size: 12px; color: var(--fba-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fba-directory.is-collapsed .is-extra { display: none; }
.fba-directory-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 32px; }
.fba-marquee-wrap { display: flex; flex-direction: column; gap: 16px; border-top: 1px solid var(--fba-line); padding-top: 24px; }
.fba-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.fba-marquee-track { display: flex; width: max-content; animation: fba-mq 260s linear infinite; }
.fba-marquee:hover .fba-marquee-track { animation-play-state: paused; }
.fba-marquee ul { display: flex; margin: 0; padding: 0; list-style: none; }
.fba-marquee li { display: inline-flex; align-items: center; gap: 28px; padding-right: 28px; white-space: nowrap; font-family: var(--fba-serif); font-style: italic; font-size: 20px; color: var(--fba-deep); }
.fba-marquee li::after { content: ""; width: 5px; height: 5px; background: var(--fba-emerald); }

/* ---------- CTA tiles ---------- */
.fba-choice { background: #164F47; border: 1px solid #2A6B60; padding: 22px; min-height: 120px; display: flex; flex-direction: column; gap: 16px; transition: background .2s var(--fba-ease); position: relative; }
.fba-choice:hover { background: var(--fba-emerald); }
.fba-choice .fba-num { font-size: 32px !important; }
.fba-choice:hover .fba-num { color: var(--fba-white); }
.fba-choice-link a { font-family: var(--fba-sans); font-size: 17px; font-weight: 700; color: var(--fba-white) !important; }
.fba-choice-link a::after { content: ""; position: absolute; inset: 0; }

/* ---------- legal ---------- */
.fba-legal { display: grid; gap: 24px; }
@media (min-width: 1000px) { .fba-legal { grid-template-columns: 280px 1fr; gap: 80px; align-items: start; } .fba-toc-wrap { position: sticky; top: 24px; } }
.fba-toc { list-style: none; counter-reset: toc; margin: 0; padding: 0; border-top: 1px solid var(--fba-line); }
.fba-toc li { counter-increment: toc; border-bottom: 1px solid var(--fba-line); }
.fba-toc a { display: flex; gap: 10px; padding: 10px 0; font-family: var(--fba-serif); font-weight: 400; font-size: 16px; line-height: 1.35; color: var(--fba-ink); }
.fba-toc a::before { content: counter(toc, decimal-leading-zero); font-style: italic; color: var(--fba-emerald); width: 28px; flex-shrink: 0; }
.fba-toc-wrap .fba-kicker { color: var(--fba-muted); padding-bottom: 8px; }
.fba-prose { max-width: 760px; display: flex; flex-direction: column; gap: 14px; counter-reset: sec; }
.fba-prose h2 { font-size: clamp(22px, 2.4vw, 26px) !important; line-height: 1.25 !important; padding-top: 32px; border-top: 1px solid var(--fba-line); margin-top: 20px !important; scroll-margin-top: 24px; counter-increment: sec; }
.fba-prose h2::before { content: counter(sec, decimal-leading-zero) "  "; font-family: var(--fba-serif); font-style: italic; font-weight: 400; color: var(--fba-emerald); white-space: pre; }
.fba-prose h2:first-child { margin-top: 0 !important; }
.fba-prose p, .fba-prose li { font-size: 17px; line-height: 1.7; }
.fba-prose ul { margin: 0; padding-left: 20px; }
.fba-prose li + li { margin-top: 6px; }
@media (max-width: 999px) { .fba-toc-wrap { border: 1px solid var(--fba-line); padding: 16px; } }

/* ---------- header and footer ---------- */
.fba-header { position: sticky; top: 0; z-index: 50; background: rgba(247, 246, 242, .92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--fba-line); padding: 0 var(--fba-gutter); }
.admin-bar .fba-header { top: var(--wp-admin--admin-bar--height, 32px); }
.fba-header-inner { max-width: 1200px; margin: 0 auto; min-height: 64px; display: flex; align-items: center; gap: 24px; }
@media (min-width: 782px) { .fba-header-inner { min-height: 76px; gap: 32px; } }
.fba-header .wp-block-site-logo { margin-right: auto; display: flex; align-items: center; line-height: 0; } .fba-header .wp-block-site-logo img { height: 44px; width: auto; max-height: none; }
@media (min-width: 782px) { .fba-header .wp-block-site-logo img { height: 56px; } }
.fba-header .wp-block-site-title { margin: 0 auto 0 0; font-family: var(--fba-display); font-size: 20px; } .fba-header .wp-block-site-title a { color: var(--fba-deep); }
.fba-header .wp-block-navigation { font-family: var(--fba-sans); font-size: 15px; }
.fba-header .wp-block-navigation a { font-weight: 400; color: var(--fba-deep); }
.fba-header .wp-block-navigation a:hover, .fba-header .wp-block-navigation .current-menu-item > a { color: var(--fba-emerald); }
.fba-header .wp-block-navigation .current-menu-item > a { font-weight: 700; }
.fba-header .wp-block-navigation__container { gap: 28px; }
.fba-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--fba-paper); padding: 24px; }
.fba-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 4px; }
.fba-header .wp-block-navigation__responsive-container.is-menu-open a { font-family: var(--fba-serif); font-size: 24px; padding: 10px 0; }
@media (max-width: 999px) { .fba-header .fba-header-cta { display: none; } }
.fba-footer { background: var(--fba-forest); color: var(--fba-mint); padding: 48px var(--fba-gutter) 32px; border-top: 1px solid rgba(255, 255, 255, .12); }
.fba-footer-inner { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 32px; }
.fba-footer-cols { display: grid; gap: 32px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .fba-footer-cols { grid-template-columns: 1.6fr 1fr 1fr 1fr; } }
.fba-footer-brand { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 12px; }
@media (min-width: 900px) { .fba-footer-brand { grid-column: auto; } }
.fba-footer .wp-block-site-logo { line-height: 0; } .fba-footer .wp-block-site-logo img { height: 56px; width: auto; max-height: none; filter: brightness(0) invert(1); }
.fba-footer p, .fba-footer li { font-family: var(--fba-sans); font-size: 14px; line-height: 1.6; color: var(--fba-mint); margin: 0; }
.fba-footer a { color: var(--fba-mint); font-weight: 400; }
.fba-footer a:hover { color: var(--fba-white); }
.fba-footer .fba-footer-email a { color: var(--fba-white); font-weight: 700; }
.fba-footer-title { font-size: 11px !important; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--fba-daybreak) !important; margin-bottom: 8px !important; }
.fba-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.fba-footer-legal { border-top: 1px solid rgba(255, 255, 255, .12); padding-top: 20px; font-size: 12px !important; }


/* Layout containers use gap for spacing: cancel WordPress flow-layout margins on their children. */
html :is(.fba-container, .fba-grid, .fba-split, .fba-hero-grid, .fba-hero-copy, .fba-header-inner, .fba-row, .fba-row-text, .fba-footer-inner, .fba-footer-cols, .fba-footer-brand,
	.fba-case, .fba-case-text, .fba-cases, .fba-service, .fba-service-main, .fba-service-side, .fba-services, .fba-process, .fba-process-row, .fba-process-text,
	.fba-work-grid, .fba-stack, .fba-tags, .fba-contact-line, .fba-contact-lines, .fba-check, .fba-checks, .fba-head, .fba-head-row, .fba-quote, .fba-quote-body, .fba-quotes,
	.fba-legal, .fba-prose, .fba-steps-foot, .fba-card, .fba-card-body, .fba-jumps, .fba-clock, .fba-rows, .fba-faq, .fba-step, .fba-stat, .fba-feature, .fba-meta,
	.fba-mini, .fba-note-rows, .fba-note-row, .fba-proof-copy, .fba-tabpanel, .fba-topic, .fba-faq-page, .fba-prep, .fba-numlist, .fba-marquee-wrap, .fba-callout,
	.fba-browser, .fba-portrait, .fba-tabs, .fba-choice) > * { margin-block: 0; }
html .fba-tabs:not(.is-ready) > .fba-tabpanel + .fba-tabpanel { margin-top: 40px; }
html .fba-quotes:not(.is-ready) > .fba-quote + .fba-quote { margin-top: 48px; }
html .fba-footer-title { margin-bottom: 8px; }
html .fba-prose > h2 { margin-top: 20px; } html .fba-prose > h2:first-child { margin-top: 0; }
html .fba-quote-role { margin-top: -14px; }


/* ---------- Cookie Notice plugin (main site only; theme styling, plugin settings untouched) ---------- */
#cookie-notice { background: var(--fba-forest) !important; font-family: var(--fba-sans) !important; border-top: 1px solid rgba(255, 255, 255, .18); box-shadow: 0 -6px 24px rgba(0, 0, 0, .12); }
#cookie-notice .cookie-notice-container, #cookie-notice .cookie-revoke-container { max-width: 1200px; margin: 0 auto; padding: 16px var(--fba-gutter); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; text-align: left; }
#cookie-notice #cn-notice-text, #cookie-notice .cn-text-container { margin: 0; font-family: var(--fba-sans) !important; font-size: 14px !important; line-height: 1.5; color: var(--fba-white) !important; }
#cookie-notice #cn-notice-text a, #cookie-notice #cn-more-info { color: var(--fba-white) !important; font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(255, 255, 255, .5); }
#cookie-notice #cn-notice-buttons, #cookie-notice .cn-buttons-container { display: flex; gap: 10px; margin: 0; }
#cookie-notice .cn-button, #cookie-notice .cn-button:not(.cn-button-custom) { display: inline-flex !important; align-items: center; justify-content: center; margin: 0 !important; min-height: 40px; padding: 10px 18px !important; border-radius: 0 !important; border: 1px solid var(--fba-white) !important; background: var(--fba-white) !important; color: var(--fba-forest) !important; font-family: var(--fba-sans) !important; font-size: 14px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important; line-height: 1 !important; box-shadow: none !important; }
#cookie-notice .cn-button:hover { background: #E7EFEA !important; color: var(--fba-forest) !important; }
#cookie-notice #cn-refuse-cookie, #cookie-notice #cn-more-info.cn-button { background: transparent !important; color: var(--fba-white) !important; }
#cookie-notice #cn-refuse-cookie:hover { background: rgba(255, 255, 255, .1) !important; }
#cookie-notice #cn-close-notice, #cookie-notice .cn-close-icon { opacity: 1; }
#cookie-notice .cn-close-icon::before, #cookie-notice .cn-close-icon::after { background-color: var(--fba-white) !important; }
@media (max-width: 781px) { #cookie-notice .cookie-notice-container { padding-right: 44px; } #cookie-notice #cn-notice-buttons { width: 100%; } #cookie-notice .cn-button { flex: 1 1 0; } }

/* ---------- motion ---------- */
@keyframes fba-rise { from { opacity: 0; translate: 0 18px; } to { opacity: 1; translate: 0 0; } }
@keyframes fba-slidein { from { opacity: 0; translate: 28px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes fba-swap { from { opacity: 0; translate: 0 8px; } to { opacity: 1; translate: 0 0; } }
@keyframes fba-draw { from { scale: 0 1; } to { scale: 1 1; } }
@keyframes fba-mq { to { translate: -50% 0; } }
@supports (animation-timeline: view()) {
	.fba-section:not(.fba-hero) .fba-head { animation: fba-rise linear both; animation-timeline: view(); animation-range: entry 5% cover 28%; }
	.fba-section:not(.fba-hero) .fba-eyebrow::before { animation: fba-draw linear both; animation-timeline: view(); animation-range: entry 10% cover 32%; }
	.fba-grid > *, .fba-rows > *, .fba-cases > *, .fba-services > *, .fba-process > * { animation: fba-rise linear both; animation-timeline: view(); animation-range: entry 0% cover 24%; }
	.fba-grid > *:nth-child(2) { animation-range: entry 6% cover 30%; }
	.fba-grid > *:nth-child(3) { animation-range: entry 12% cover 36%; }
	.fba-grid > *:nth-child(4) { animation-range: entry 18% cover 42%; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* editor: show every tab panel and quote */
.editor-styles-wrapper .fba-tab-label { display: block; font-family: var(--fba-sans); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--fba-daybreak); }
.editor-styles-wrapper .fba-marquee-track { animation: none; }
