/* =====================================================================
   Fix Master — main stylesheet
   Dark theme · teal accent #08B1B8 · Satoshi · 2026 minimal
   ===================================================================== */

/* ---------- Design tokens ---------- */
:root {
	--fm-bg:           #14100c;
	--fm-bg-2:         #1a1410;
	--fm-bg-3:         #1f1814;
	--fm-bg-4:         #261c16;
	--fm-section-dark: linear-gradient(180deg, #14100c 0%, #1f1814 100%);
	--fm-line:         #25252c;
	--fm-line-2:       #2f2f37;
	--fm-text:         #f2f2f4;
	--fm-text-mute:    #a4a4ad;
	--fm-text-dim:     #646567;
	--fm-accent:       #08B1B8;
	--fm-accent-2:     #2dd4dc;
	--fm-accent-dark:  #067880;
	--fm-accent-rgb:   8, 177, 184;
	--fm-success:      #4ade80;
	--fm-danger:       #ef4444;

	--fm-radius:       4px;     /* rectangular look */
	--fm-radius-lg:    6px;
	--fm-shadow:       0 8px 30px rgba(0,0,0,.4);
	--fm-shadow-lg:    0 18px 60px rgba(0,0,0,.5);

	--fm-container:    1280px;
	--fm-gutter:       clamp(16px, 4vw, 32px);

	--fm-font:         'Satoshi', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
	--fm-ease:         cubic-bezier(.2, .7, .25, 1);
}

/* ---------- Variant: orange accent (used on /v2 for comparison) --------- */
.fm-variant-orange {
	--fm-accent:       #F4902E;
	--fm-accent-2:     #ffae5c;
	--fm-accent-dark:  #c66f1c;
	--fm-accent-rgb:   244, 144, 46;
}
/* Replace teal rgba() values that are baked into specific rules with orange. */
.fm-variant-orange .fm-eyebrow__dot { box-shadow: 0 0 0 4px rgba(244,144,46,.18); }
.fm-variant-orange .fm-btn--primary { box-shadow: 0 8px 24px -8px rgba(244,144,46,.55); }
.fm-variant-orange .fm-btn--phone {
	background: var(--fm-accent) !important;
	border: 1px solid var(--fm-accent) !important;
	color: #1a0d00 !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	box-shadow: 0 8px 24px -8px rgba(244,144,46,.6);
}
.fm-variant-orange .fm-btn--phone:hover {
	background: var(--fm-accent-2) !important;
	border-color: var(--fm-accent-2) !important;
	color: #1a0d00 !important;
	box-shadow: 0 12px 30px -8px rgba(244,144,46,.7);
}
.fm-variant-orange .fm-btn--phone::before { display: none; }
.fm-variant-orange .fm-btn--phone .fm-btn__label,
.fm-variant-orange .fm-btn--phone .fm-btn__icon { color: #1a0d00; }
.fm-variant-orange .fm-btn--phone:hover .fm-btn__icon,
.fm-variant-orange .fm-btn--phone:focus-visible .fm-btn__icon { color: #1a0d00 !important; }
.fm-variant-orange .fm-hero__bg {
	background:
		radial-gradient(circle at 80% 20%, rgba(244,144,46,.20), transparent 50%),
		radial-gradient(circle at 10% 80%, rgba(244,144,46,.08), transparent 45%),
		linear-gradient(180deg, var(--fm-bg) 0%, var(--fm-bg-2) 100%);
}
.fm-variant-orange .fm-why__icon {
	background: linear-gradient(135deg, rgba(244,144,46,.20) 0%, rgba(244,144,46,.06) 100%);
}
.fm-variant-orange .fm-why__card:hover .fm-why__icon {
	background: linear-gradient(135deg, rgba(244,144,46,.32) 0%, rgba(244,144,46,.10) 100%);
}
.fm-variant-orange .fm-why__card::before {
	-webkit-text-stroke-color: rgba(244,144,46,.16);
}
.fm-variant-orange .fm-why__card:hover { box-shadow: 0 22px 50px -22px rgba(244,144,46,.35); }
.fm-variant-orange .fm-why__card:hover::before { -webkit-text-stroke-color: rgba(244,144,46,.42); }
.fm-variant-orange .fm-how__grid::before { background-image: linear-gradient(to right, rgba(244,144,46,.7) 50%, transparent 50%); }
.fm-variant-orange .fm-services__cats .fm-cat-btn:hover { box-shadow: 0 12px 24px -10px rgba(244,144,46,.35); }
.fm-variant-orange .fm-brands__item:hover { box-shadow: none; }
.fm-variant-orange .fm-seo__index { background: rgba(244,144,46,.12); }
.fm-variant-orange .fm-seo__summary:hover { background: rgba(244,144,46, .08); }
.fm-variant-orange .fm-final {
	background:
		linear-gradient(160deg, rgba(244,144,46,.15) 0%, transparent 50%),
		var(--fm-bg);
}
.fm-variant-orange .fm-trustbar__list { /* keep dark */ }
/* Page-level scrollbar (html element) */
html.fm-variant-orange,
.fm-variant-orange,
.fm-variant-orange * {
	scrollbar-color: rgba(244,144,46, 0.45) transparent;
}
html.fm-variant-orange::-webkit-scrollbar-thumb,
.fm-variant-orange::-webkit-scrollbar-thumb,
.fm-variant-orange *::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, rgba(244,144,46, 0.65) 0%, rgba(244,144,46, 0.4) 100%);
}
html.fm-variant-orange::-webkit-scrollbar-thumb:hover,
.fm-variant-orange::-webkit-scrollbar-thumb:hover,
.fm-variant-orange *::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, rgba(244,144,46, 0.9) 0%, rgba(244,144,46, 0.65) 100%);
}
/* Override the locations list scrollbar (it has its own teal-hardcoded rules) */
.fm-variant-orange .fm-areas__list {
	scrollbar-color: rgba(244,144,46, 0.55) rgba(255,255,255, 0.04);
}
.fm-variant-orange .fm-areas__list::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, var(--fm-accent) 0%, rgba(244,144,46, 0.6) 100%);
}
.fm-variant-orange .fm-areas__list::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, var(--fm-accent-2) 0%, var(--fm-accent) 100%);
}
/* ===== Orange variant — header reshape + hero background image ===== */

/* Floating black pill header — fully filled, semi-transparent, rounded all corners. */
.fm-variant-orange .fm-header {
	background: rgba(0, 0, 0, 0.78) !important;
	backdrop-filter: saturate(160%) blur(22px) !important;
	-webkit-backdrop-filter: saturate(160%) blur(22px) !important;
	border: 1px solid transparent !important;
	border-radius: 22px !important;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.10),
		inset 0 -1px 0 rgba(0,0,0,.35),
		0 10px 30px -12px rgba(0,0,0,.55);
}
.fm-header::before,
.fm-variant-orange .fm-header::before { content: none; }
/* WP admin bar offset so the fixed header sits below it when logged in */
.admin-bar .fm-header { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .fm-header { top: 46px; }
}

/* Hero extends behind the transparent header — kitchen bg fills full viewport top */
.fm-variant-orange.home .fm-main,
.fm-variant-orange.front-page .fm-main { padding-top: 0; }
.fm-variant-orange .fm-hero {
	padding-top: calc(84px + clamp(24px, 5vw, 56px));
	min-height: 100svh;
	max-height: none;
}
@media (max-width: 900px) {
	.fm-variant-orange .fm-hero { padding-top: calc(72px + 24px); }
}

/* Hero — replace right-side photo with a full-bleed kitchen background + dark gradient overlay */
.fm-variant-orange .fm-hero__bg {
	background:
		linear-gradient(180deg,
			rgba(10,10,12, 0)   0px,
			rgba(10,10,12, 0)   100px,
			rgba(10,10,12, .35) 180px,
			rgba(10,10,12, .55) 100%
		),
		linear-gradient(90deg,
			rgba(10,10,12, .92) 0%,
			rgba(10,10,12, .85) 25%,
			rgba(10,10,12, .7)  38%,
			rgba(10,10,12, .35) 50%,
			rgba(10,10,12, 0)   68%
		),
		url('/wp-content/uploads/2026/05/kittchen6.png') center / cover no-repeat;
}
.fm-variant-orange .fm-hero__media { display: none; }
@media (max-width: 900px) {
	.fm-variant-orange .fm-hero__bg {
		background:
			linear-gradient(180deg,
				rgba(10,10,12, .55) 0%,
				rgba(10,10,12, .75) 60%,
				rgba(10,10,12, .92) 100%
			),
			url('/wp-content/uploads/2026/05/hero-mobile-bg.webp') center / cover no-repeat;
	}
}
/* Compact ratings strip — mobile-only (display set in @media). */
.fm-hero__ratings {
	display: none;
	list-style: none;
	padding: 0;
	margin: 0 0 64px;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}
.fm-hero__rating {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(255,255,255,0.12);
	border-radius: 999px;
	backdrop-filter: blur(6px);
}
.fm-hero__rating-logo { display: inline-flex; align-items: center; height: 14px; }
.fm-hero__rating-logo svg,
.fm-hero__rating-logo img { height: 100%; width: auto; display: block; }
.fm-hero__rating.is-bbb .fm-hero__rating-logo { height: 18px; }
.fm-hero__rating-val {
	font-family: 'Satoshi', sans-serif;
	font-weight: 800;
	font-size: 13px;
	color: #fff;
	line-height: 1;
}
.fm-hero__rating-stars {
	color: #ffb400;
	font-size: 11px;
	letter-spacing: 1px;
	line-height: 1;
}

/* Let .fm-container handle width + centering, like every other section. */
.fm-variant-orange .fm-hero__inner {
	grid-template-columns: 1fr;
	text-align: left;
}
.fm-variant-orange .fm-hero__content {
	max-width: 720px;
	padding-left: 0;
}
.fm-variant-orange .fm-hero__heading,
.fm-variant-orange .fm-hero__usps li { color: #ffffff; }

/* Orange variant — hero "Same-Day" solid orange, no background */
.fm-variant-orange .fm-hero__heading-accent {
	background: none;
	border: none;
	padding: 0;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	-webkit-text-fill-color: var(--fm-accent);
	color: var(--fm-accent);
}

/* White border on the secondary "Book Online" CTA, readable over the kitchen bg */
.fm-variant-orange .fm-btn--ghost {
	color: #ffffff;
	border-color: rgba(255, 255, 255, 0.7);
}
.fm-variant-orange .fm-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: #ffffff;
	color: #ffffff;
}

/* Pull the trust bar up so the 4 review-platform cards sit at the bottom of the hero */
.fm-variant-orange .fm-trustbar {
	position: relative;
	z-index: 5;
	margin-top: -120px;
	background: transparent;
	border-top: none;
	border-bottom: none;
	padding: 0px 0 4px;
}
.fm-variant-orange .fm-trustbar__card {
	background: transparent;
	border: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	padding: 12px 16px;
}
.fm-variant-orange .fm-trustbar__card:hover {
	background: transparent;
	border: none;
	box-shadow: none;
	transform: translateY(-2px);
}
.fm-variant-orange .fm-trustbar__card::before { display: none; }
.fm-variant-orange .fm-trustbar__card::after  { display: none; }

/* BBB card hosts the official seal image instead of icon+text */
.fm-trustbar__seal {
	display: block;
	width: auto;
	height: 48px;
	max-width: 100%;
	object-fit: contain;
	transition: transform .25s var(--fm-ease);
}
.fm-trustbar__card.is-bbb:hover .fm-trustbar__seal { transform: scale(1.04); }
.fm-variant-orange .fm-trustbar__rating { color: #ffffff; }
.fm-variant-orange .fm-trustbar__name { color: rgba(255,255,255,.75); }
.fm-variant-orange .fm-trustbar__name {
	color: rgba(255, 255, 255, 0.85);
}
.fm-variant-orange .fm-hero { padding-bottom: 160px; }
@media (max-width: 900px) {
	.fm-variant-orange .fm-trustbar { margin-top: -75px; }
	.fm-variant-orange .fm-hero { padding-bottom: 60px; }
}

/* Orange variant — dark cards in Why Us */
.fm-variant-orange .fm-why__card {
	background: linear-gradient(180deg, #1a1c23 0%, #14161c 100%);
	border-color: #2b2e36;
}
.fm-variant-orange .fm-why__title { color: #f2f2f4; }
.fm-variant-orange .fm-why__num   { color: var(--fm-accent); }
.fm-variant-orange .fm-why__num::before { background: var(--fm-accent); }
.fm-variant-orange .fm-why__card::before {
	-webkit-text-stroke-color: rgba(244,144,46,.28);
}
.fm-variant-orange .fm-why__card:hover {
	border-color: var(--fm-accent);
	box-shadow: 0 22px 50px -22px rgba(244,144,46,.45);
}
.fm-variant-orange .fm-why__card:hover::before {
	-webkit-text-stroke-color: rgba(244,144,46,.55);
}
.fm-variant-orange .fm-why__arrow { color: #6e6e78; }
.fm-variant-orange .fm-why__card:hover .fm-why__arrow { color: var(--fm-accent); }

/* ---------- Light theme scope (applied per-section) --------- */
.fm-theme-light {
	--fm-bg:           #f7f8fa;
	--fm-bg-2:         #ffffff;
	--fm-bg-3:         #f1f3f6;
	--fm-bg-4:         #e7eaef;
	--fm-line:         #e2e5ea;
	--fm-line-2:       #cfd3db;
	--fm-text:         #0a0a0c;
	--fm-text-mute:    #4f5159;
	--fm-text-dim:     #797b85;
	background: var(--fm-bg);
	color: var(--fm-text);
}
.fm-theme-light .fm-eyebrow { color: var(--fm-accent-dark); }
.fm-theme-light .fm-eyebrow__dot { background-color: var(--fm-accent-dark); }
.fm-theme-light a:not(.fm-btn):not(.fm-cat-btn):not(.fm-mega__item):hover { color: var(--fm-accent-dark); }
/* Inputs on light theme need readable text/border */
.fm-theme-light .fm-form__field input,
.fm-theme-light .fm-form__field select,
.fm-theme-light .fm-form__field textarea {
	background: #fff;
	color: var(--fm-text);
	border-color: var(--fm-line-2);
}
.fm-theme-light .fm-form__field input:focus,
.fm-theme-light .fm-form__field select:focus,
.fm-theme-light .fm-form__field textarea:focus {
	background: var(--fm-bg-3);
}
.fm-theme-light .fm-form__field { color: var(--fm-text-mute); }
/* Cards/dividers shadow tweaks for light bg */
.fm-theme-light .fm-why__card,
.fm-theme-light .fm-faq__details,
.fm-theme-light .fm-seo__details,
.fm-theme-light .fm-reviews__badge,
.fm-theme-light .fm-reviews__placeholder {
	box-shadow: 0 2px 8px -4px rgba(20,25,40,.08);
}

/* ---------- Custom scrollbar (global) ---------- */
* {
	scrollbar-width: thin;
	scrollbar-color: rgba(8,177,184, 0.35) transparent;
}
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-track {
	background: rgba(255,255,255, 0.02);
	border-radius: 8px;
}
*::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, rgba(8,177,184, 0.55) 0%, rgba(8,177,184, 0.35) 100%);
	border-radius: 8px;
	border: 1px solid transparent;
	background-clip: padding-box;
	transition: background .2s ease;
}
*::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, rgba(8,177,184, 0.85) 0%, rgba(8,177,184, 0.6) 100%);
	background-clip: padding-box;
}
*::-webkit-scrollbar-corner { background: transparent; }

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
/* Offset in-page anchor targets below the sticky header. */
section[id], [id].fm-anchor { scroll-margin-top: 92px; }
body { margin: 0; }
img, svg, video { max-width: 100%; display: block; }
button { font: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; padding: 0; margin: 0; }

.screen-reader-text {
	position: absolute !important; clip: rect(1px,1px,1px,1px);
	width:1px; height:1px; overflow:hidden;
}

/* ---------- Base ---------- */
body {
	font-family: var(--fm-font);
	font-weight: 400;
	font-size: 16px;            /* never below 16 */
	line-height: 1.6;
	color: var(--fm-text);
	background: var(--fm-section-dark);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	min-height: 100vh;
	overflow-x: hidden;
}

.fm-container {
	width: 100%;
	max-width: var(--fm-container);
	margin: 0 auto;
	padding-left: var(--fm-gutter);
	padding-right: var(--fm-gutter);
}

.fm-main {
	padding-top: 140px;          /* offset for sticky header */
}

@media (max-width: 900px) {
	.fm-main { padding-top: 120px; }
}

/* ---------- Typography ---------- */
h1, h2, h3, h4 { margin: 0; font-weight: 700; line-height: 1.15; letter-spacing: -0.01em; }
p { margin: 0 0 1em; }

.fm-h2 {
	font-size: clamp(28px, 4.5vw, 48px);
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
}
.fm-h3 {
	font-size: clamp(20px, 2.5vw, 26px);
	font-weight: 700;
	margin: 0 0 12px;
}

.fm-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	margin: 0 0 18px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--fm-accent);
}
.fm-eyebrow__dot {
	width: 16px; height: 16px;
	background-color: var(--fm-accent);
	border-radius: 0;
	box-shadow: none;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.fm-section-head {
	max-width: 760px;
	margin: 0 0 48px;
}
.fm-section-head__sub {
	color: var(--fm-text-mute);
	font-size: 18px;
	margin-top: 4px;
}

/* ---------- Buttons ---------- */
.fm-btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 12px 22px;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 0.01em;
	border: 1px solid transparent;
	border-radius: var(--fm-radius);
	transition: background .25s var(--fm-ease), color .25s var(--fm-ease), border-color .25s var(--fm-ease), transform .15s var(--fm-ease), box-shadow .25s var(--fm-ease);
	white-space: nowrap;
	user-select: none;
}
.fm-btn:hover  { transform: translateY(-1px); }
.fm-btn:active { transform: translateY(0); }

.fm-btn--primary {
	background: var(--fm-accent);
	color: #001a1c;
	border-color: var(--fm-accent);
	box-shadow: 0 8px 24px -8px rgba(8,177,184,.55);
}
.fm-btn--primary:hover { background: var(--fm-accent-2); border-color: var(--fm-accent-2); }

/* --- Phone CTA: glassmorphism pill with an animated teal arc around the border --- */
@property --fm-angle {
	syntax: '<angle>';
	initial-value: 0deg;
	inherits: false;
}

.fm-btn--phone {
	position: relative;
	overflow: visible;
	gap: 10px;
	padding: 12px 22px;
	background: rgba(8,177,184, 0.10) !important;
	color: var(--fm-text);
	border: 1px solid rgba(8,177,184, 0.30) !important;
	backdrop-filter: blur(18px) saturate(160%);
	-webkit-backdrop-filter: blur(18px) saturate(160%);
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.08),
		0 6px 24px -10px rgba(8,177,184,.45);
	filter: none;
	isolation: isolate;
	transition: background .25s var(--fm-ease), color .25s var(--fm-ease), box-shadow .25s var(--fm-ease);
}
.fm-btn--phone:hover {
	background: rgba(8,177,184, 0.18) !important;
	color: #ffffff;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.14),
		0 10px 30px -8px rgba(8,177,184,.6);
}

/* Animated conic-gradient border */
.fm-btn--phone::before {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1.5px;
	background: conic-gradient(from var(--fm-angle),
		transparent 0deg,
		transparent 90deg,
		var(--fm-accent-2) 150deg,
		var(--fm-accent)   180deg,
		var(--fm-accent-2) 210deg,
		transparent 270deg,
		transparent 360deg
	);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	        mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	        mask-composite: exclude;
	animation: fmConic 5s linear infinite;
	pointer-events: none;
	z-index: 1;
}
@keyframes fmConic {
	to { --fm-angle: 360deg; }
}
@media (prefers-reduced-motion: reduce) {
	.fm-btn--phone::before { animation: none; }
}

/* Reset inner spans to inline content (no panel styling) */
.fm-btn--phone .fm-btn__label {
	background: none;
	color: inherit;
	clip-path: none;
	padding: 0;
	font-weight: 600;
}
.fm-btn--phone .fm-btn__icon {
	background: none !important;
	color: var(--fm-accent);
	clip-path: none;
	box-shadow: none;
	padding: 0;
	width: auto;
	transition: color .25s var(--fm-ease), transform .25s var(--fm-ease);
}
.fm-btn--phone:hover .fm-btn__icon { color: var(--fm-accent-2); transform: rotate(-10deg); }
.fm-btn--phone .fm-btn__icon svg { width: 18px; height: 18px; }

.fm-btn--large.fm-btn--phone { padding: 14px 28px; }
.fm-btn--large.fm-btn--phone .fm-btn__icon svg { width: 22px; height: 22px; }

.fm-btn--ghost {
	background: transparent;
	color: var(--fm-text);
	border-color: var(--fm-line-2);
}
.fm-btn--ghost:hover { background: var(--fm-bg-3); border-color: var(--fm-accent); color: var(--fm-accent); }

.fm-btn--large { min-height: 58px; padding: 14px 28px; font-size: 17px; }
.fm-btn--block { width: 100%; }

/* ---------- Header ---------- */
.fm-header {
	position: fixed; top: 14px; left: 16px; right: 16px;
	z-index: 100;
	background: rgba(20,16,12,.82);
	backdrop-filter: saturate(160%) blur(22px);
	-webkit-backdrop-filter: saturate(160%) blur(22px);
	border: 1px solid transparent;
	border-radius: 22px;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.10),
		inset 0 -1px 0 rgba(0,0,0,.35),
		0 10px 30px -12px rgba(0,0,0,.55);
	transition: top .35s var(--fm-ease), left .35s var(--fm-ease), right .35s var(--fm-ease),
	            width .35s var(--fm-ease), transform .35s var(--fm-ease),
	            border-radius .35s var(--fm-ease), background .3s var(--fm-ease),
	            border-color .3s var(--fm-ease), box-shadow .3s var(--fm-ease);
}
.fm-header.is-scrolled { /* no style change on scroll */ }
.fm-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	gap: 24px;
	height: 84px;
}
@media (max-width: 900px) { .fm-header__inner { height: 72px; } }

.fm-header__logo {
	display: flex; align-items: center;
	margin: 0; padding: 0;
	flex-shrink: 0;
}
.fm-header__logo .custom-logo-link,
.fm-header__logo a {
	display: inline-flex; align-items: center;
	line-height: 0;
	text-decoration: none;
}
.fm-header__logo img,
.fm-header__logo .custom-logo {
	display: block;
	height: 64px; width: auto; max-width: none;
	margin: 0;
}
@media (max-width: 900px) {
	.fm-header__logo img,
	.fm-header__logo .custom-logo { height: 52px; }
}
.fm-logo-text {
	font-weight: 900; font-size: 22px; letter-spacing: -0.02em;
	color: var(--fm-text);
	line-height: 1;
}
.fm-logo-text span { color: var(--fm-accent); }

/* ---------- Primary nav ---------- */
.fm-nav {
	display: flex; align-items: center; gap: 24px;
}
.fm-nav__list {
	display: flex; align-items: center; gap: 4px;
}
.fm-nav__link {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 14px;
	font-size: 16px; font-weight: 500;
	color: var(--fm-text-mute);
	border-radius: var(--fm-radius);
	transition: color .2s var(--fm-ease), background .2s var(--fm-ease);
}
.fm-nav__link:hover { color: var(--fm-text); }
.fm-nav__caret { transition: transform .2s var(--fm-ease); }
.fm-nav__item--has-mega:hover .fm-nav__caret,
.fm-nav__item--has-mega:focus-within .fm-nav__caret { transform: rotate(180deg); }

.fm-header__cta {
	margin-left: 8px;
}

/* Mega dropdown */
.fm-mega {
	position: absolute; left: 0; right: 0; top: 100%;
	background: var(--fm-bg-2);
	border-top: 1px solid var(--fm-line);
	border-bottom: 1px solid var(--fm-line);
	opacity: 0; pointer-events: none;
	transition: opacity .2s var(--fm-ease);
	z-index: 99;
}
/* Invisible bridge that keeps :hover continuous between the link
   and the dropdown panel — without it the cursor briefly leaves the LI
   when crossing the seam and the dropdown vanishes. */
.fm-mega::before {
	content: '';
	position: absolute;
	left: 0; right: 0;
	top: -12px;
	height: 12px;
}
.fm-nav__item--has-mega { position: static; }
.fm-nav__item--has-mega:hover .fm-mega,
.fm-nav__item--has-mega:focus-within .fm-mega,
.fm-mega:hover {
	opacity: 1; pointer-events: auto;
}
.fm-mega__inner {
	max-width: var(--fm-container);
	margin: 0 auto;
	padding: 24px var(--fm-gutter);
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 32px;
	min-height: 360px;
}

/* Left pane — parent category list */
.fm-mega__cats {
	display: flex; flex-direction: column;
	gap: 2px;
	border-right: 1px solid var(--fm-line);
	padding-right: 24px;
}
.fm-mega__cat {
	display: flex; align-items: center; justify-content: space-between;
	gap: 12px;
	padding: 14px 16px;
	border-radius: var(--fm-radius);
	font-size: 15px; font-weight: 600;
	color: var(--fm-text-mute);
	transition: background .2s var(--fm-ease), color .2s var(--fm-ease);
}
.fm-mega__cat:hover,
.fm-mega__cat.is-active {
	background: var(--fm-bg-3);
	color: var(--fm-text);
}
.fm-mega__cat.is-active { color: var(--fm-accent); }
.fm-mega__cat-caret {
	flex-shrink: 0;
	opacity: 0;
	transform: translateX(-4px);
	transition: opacity .2s var(--fm-ease), transform .2s var(--fm-ease);
}
.fm-mega__cat:hover .fm-mega__cat-caret,
.fm-mega__cat.is-active .fm-mega__cat-caret {
	opacity: 1; transform: translateX(0);
}

/* Right pane — service cards for the active category */
.fm-mega__panels { position: relative; min-width: 0; }
.fm-mega__panel {
	display: none;
	animation: fmFade .25s var(--fm-ease);
}
.fm-mega__panel.is-active { display: block; }
@keyframes fmFade {
	from { opacity: 0; transform: translateY(4px); }
	to   { opacity: 1; transform: none; }
}

.fm-mega__items {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 12px;
}
.fm-mega__item {
	display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
	text-align: center;
	gap: 12px;
	padding: 18px 12px 14px;
	min-height: 150px;
	border-radius: var(--fm-radius);
	color: var(--fm-text-mute);
	font-size: 14px;
	background: var(--fm-bg-3);
	border: 1px solid var(--fm-line);
	transition: background .2s var(--fm-ease), border-color .2s var(--fm-ease), color .2s var(--fm-ease), transform .2s var(--fm-ease);
}
.fm-mega__item:hover {
	background: var(--fm-bg-4);
	border-color: var(--fm-accent);
	color: var(--fm-text);
	transform: translateY(-2px);
}
.fm-mega__thumb {
	flex-shrink: 0;
	width: 80px; height: 80px;
	display: flex; align-items: center; justify-content: center;
	background: var(--fm-bg-2);
	border-radius: var(--fm-radius);
	overflow: hidden;
	transition: background .2s var(--fm-ease);
}
.fm-mega__item:hover .fm-mega__thumb { background: var(--fm-bg); }
.fm-mega__img {
	width: 64px; height: 64px; object-fit: contain;
	transition: transform .25s var(--fm-ease);
}
.fm-mega__item:hover .fm-mega__img { transform: scale(1.06); }
.fm-mega__title {
	font-weight: 500;
	line-height: 1.3;
}

@media (max-width: 1100px) {
	.fm-mega__inner { grid-template-columns: 240px 1fr; gap: 20px; }
	.fm-mega__items { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
}

/* ---------- "Repair" nav dropdown ---------- */
.fm-nav__item--has-dropdown { position: relative; }
.fm-nav__link-wrap { display: inline-flex; align-items: center; gap: 2px; }
.fm-nav__caret-btn {
	display: inline-flex; align-items: center; justify-content: center;
	background: transparent; border: 0; padding: 8px 6px;
	color: var(--fm-text-mute); cursor: pointer; border-radius: var(--fm-radius);
	transition: color .2s var(--fm-ease);
}
.fm-nav__caret-btn:hover { color: var(--fm-text); }
.fm-nav__item--has-dropdown:hover .fm-nav__caret,
.fm-nav__item--has-dropdown:focus-within .fm-nav__caret { transform: rotate(180deg); }

.fm-dropdown {
	position: absolute; top: 100%; left: 0;
	width: 460px; max-width: 80vw;
	margin-top: 28px;
	background: var(--fm-bg-2);
	border: 1px solid var(--fm-line);
	border-radius: 18px;
	padding: 12px;
	opacity: 0; pointer-events: none;
	transform: translateY(8px);
	transition: opacity .2s var(--fm-ease), transform .2s var(--fm-ease);
	z-index: 99;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.06),
		0 24px 60px -24px rgba(0,0,0,.7);
}
/* Invisible hover bridge across the gap between the link and the panel. */
.fm-dropdown::before { content: ''; position: absolute; left: 0; right: 0; top: -32px; height: 32px; }
.fm-nav__item--has-dropdown:hover .fm-dropdown,
.fm-nav__item--has-dropdown:focus-within .fm-dropdown,
.fm-dropdown:hover {
	opacity: 1; pointer-events: auto; transform: translateY(0);
}
.fm-dropdown__items {
	display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
	margin: 0; padding: 0; list-style: none;
}
.fm-dropdown__item {
	display: flex; align-items: center; gap: 12px;
	padding: 9px 12px; border-radius: 12px;
	color: var(--fm-text-mute); font-size: 14px; font-weight: 500; line-height: 1.25;
	transition: background .2s var(--fm-ease), color .2s var(--fm-ease);
}
.fm-dropdown__item:hover { background: var(--fm-bg-3); color: var(--fm-text); }
.fm-dropdown__thumb {
	flex-shrink: 0; width: 44px; height: 56px;
	display: flex; align-items: center; justify-content: center;
	background: var(--fm-bg-3); border-radius: 10px; overflow: hidden;
	transition: background .2s var(--fm-ease);
}
.fm-dropdown__item:hover .fm-dropdown__thumb { background: var(--fm-bg); }
.fm-dropdown__img { width: 100%; height: 100%; object-fit: contain; }
.fm-dropdown__title { min-width: 0; }

/* Brands / Locations dropdowns — multi-column text list */
.fm-nav__dropdown-btn {
	background: none; border: 0; cursor: pointer;
	font-family: inherit;
	display: inline-flex; align-items: center; gap: 5px;
}
.fm-dropdown--cols { width: 360px; }
.fm-dropdown--cols.fm-dropdown--locs { width: 560px; }
/* Locations sits at the right end of the nav — anchor its wide dropdown to the
   right edge so it opens leftward and never runs off the right of the screen. */
.fm-dropdown--locs { left: auto; right: 0; }
.fm-dropdown__list { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 6px; }
.fm-dropdown--locs .fm-dropdown__list { columns: 3; }
.fm-dropdown__link {
	display: block; padding: 8px 12px; border-radius: 10px;
	color: rgba(244,245,247,.78); text-decoration: none;
	font-size: 14px; font-weight: 600; break-inside: avoid;
	transition: background .18s var(--fm-ease), color .18s var(--fm-ease);
}
.fm-dropdown__link:hover { background: var(--fm-bg-3); color: var(--fm-text); }
/* Click-to-open also works on desktop (JS toggles .is-open on the caret/label). */
@media (min-width: 1025px) {
	.fm-nav__item--has-dropdown.is-open .fm-dropdown { opacity: 1; pointer-events: auto; transform: translateY(0); }
}

@media (max-width: 1024px) {
	.fm-dropdown__list { columns: 1; }
	/* Locations list is long — keep it in 2 columns inside the burger menu. */
	.fm-dropdown--locs .fm-dropdown__list { columns: 2; column-gap: 8px; }
	.fm-dropdown__link { padding: 11px 10px; font-size: 16px; }
	/* Brands/Locations toggle: caret pushed to the right edge of the row. */
	.fm-nav__item--has-dropdown .fm-nav__dropdown-btn { width: 100%; justify-content: space-between; }
	/* Full-width row: label on the left, arrow tappable on the right. */
	.fm-nav__item--has-dropdown .fm-nav__link-wrap {
		display: flex; align-items: center; justify-content: space-between; width: 100%;
	}
	.fm-nav__item--has-dropdown .fm-nav__link { flex: 1; }
	.fm-nav__caret-btn { padding: 14px 12px; }
	/* Collapse the panel inline; the arrow toggles .is-open (set in JS). */
	.fm-dropdown,
	.fm-dropdown--cols,
	.fm-dropdown--cols.fm-dropdown--locs {
		position: static; width: auto; max-width: none; margin: 0;
		opacity: 1; pointer-events: auto; transform: none;
		background: transparent; border: 0; box-shadow: none; padding: 0 0 0 8px;
		max-height: 0; overflow: hidden;
		transition: max-height .3s var(--fm-ease);
	}
	.fm-nav__item--has-dropdown.is-open .fm-dropdown { max-height: 1400px; }
	.fm-nav__item--has-dropdown.is-open .fm-nav__caret { transform: rotate(180deg); }
	.fm-dropdown__items { grid-template-columns: 1fr; gap: 0; }
	.fm-dropdown__item { padding: 11px 10px; font-size: 16px; }
}

/* Burger / mobile nav */
.fm-header__toggle {
	display: none;
	background: transparent; border: 1px solid var(--fm-line);
	width: 44px; height: 44px; border-radius: var(--fm-radius);
	color: var(--fm-text);
	align-items: center; justify-content: center;
	position: relative;
	z-index: 120;
}
.fm-burger { display: inline-block; width: 22px; height: 16px; position: relative; }
.fm-burger span {
	position: absolute; left: 0; right: 0; height: 2px; background: currentColor;
	border-radius: 1px;
	transition: transform .25s var(--fm-ease), opacity .15s var(--fm-ease), top .25s var(--fm-ease);
}
.fm-burger span:nth-child(1) { top: 0; }
.fm-burger span:nth-child(2) { top: 7px; }
.fm-burger span:nth-child(3) { top: 14px; }
.fm-header__toggle[aria-expanded="true"] .fm-burger span:nth-child(1) { top: 7px; transform: rotate(45deg); }
.fm-header__toggle[aria-expanded="true"] .fm-burger span:nth-child(2) { opacity: 0; }
.fm-header__toggle[aria-expanded="true"] .fm-burger span:nth-child(3) { top: 7px; transform: rotate(-45deg); }

@media (max-width: 1024px) {
	.fm-header__toggle { display: inline-flex; }
	.fm-nav {
		position: fixed;
		top: 79px;
		left: 0 !important;
		right: 0 !important;
		border-radius: 0;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		box-sizing: border-box;
		/* Reaches to 20px above the viewport bottom (79px top + 20px gap), never
		   the full height; scrolls internally when the content is taller. */
		max-height: calc(100vh - 99px);   /* fallback for browsers without svh */
		max-height: calc(100svh - 99px);
		background: rgba(0,0,0,.95);
		backdrop-filter: saturate(160%) blur(22px);
		-webkit-backdrop-filter: saturate(160%) blur(22px);
		border: 1px solid transparent;
		border-radius: 22px;
		box-shadow:
			inset 0 1px 0 rgba(255,255,255,.10),
			inset 0 -1px 0 rgba(0,0,0,.35),
			0 10px 30px -12px rgba(0,0,0,.55);
		flex-direction: column; align-items: stretch; justify-content: flex-start;
		gap: 0;
		/* Extra bottom padding (plus the home-indicator safe area) gives ~100px of
		   scroll room so the last item / CTA is fully reachable past the viewport. */
		padding: 18px 20px calc(124px + env(safe-area-inset-bottom));
		overflow-y: auto;
		overflow-x: hidden;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		transform: translateX(120%);
		transition: transform .35s var(--fm-ease);
		z-index: 110;
	}
	.fm-nav.is-open {
		transform: translateX(0);
		height: max-content;
	}
	.fm-nav__list { flex-direction: column; align-items: stretch; gap: 4px; width: 100%; }
	.fm-nav__link { padding: 14px 12px; font-size: 18px; }
	.fm-mega { position: static; opacity: 1; pointer-events: auto; transform: none; border: none; background: transparent; }
	.fm-mega__inner { padding: 8px 0 16px; grid-template-columns: 1fr; gap: 0; min-height: 0; }
	/* On mobile, show full list (no flyout) — collapse left pane, show every panel. */
	.fm-mega__cats { display: none; }
	.fm-mega__panel { display: block !important; animation: none; margin-bottom: 16px; }
	.fm-mega__panel::before {
		content: attr(data-panel);
		display: block;
		padding: 8px 0;
		font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
		color: var(--fm-accent);
		text-transform: uppercase;
	}
	.fm-mega__items { grid-template-columns: 1fr 1fr; }
	.fm-header__cta { width: 100%; margin: 16px 0 0; }
}

/* ---------- HERO ---------- */
.fm-hero {
	position: relative;
	/* Never taller than the viewport (header is 84px fixed; account for it). */
	min-height: calc(100svh - 84px);
	max-height: calc(100vh - 84px);
	display: flex;
	align-items: center;
	padding: clamp(32px, 5vw, 64px) 0;
	overflow: hidden;
}
.fm-hero__bg {
	position: absolute; inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 80% 20%, rgba(8,177,184,.20), transparent 50%),
		radial-gradient(circle at 10% 80%, rgba(8,177,184,.08), transparent 45%),
		linear-gradient(180deg, var(--fm-bg) 0%, var(--fm-bg-2) 100%);
}
.fm-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: clamp(32px, 6vw, 64px);
	align-items: center;
	width: 100%;
}
.fm-hero__heading {
	font-size: clamp(32px, 5vw, 56px);
	letter-spacing: -0.025em;
	margin: 0 0 24px;
}
.fm-hero__heading-accent {
	display: inline-block;
	white-space: nowrap;
	background: linear-gradient(120deg, var(--fm-accent) 0%, var(--fm-accent-2) 60%, #6df1f6 100%);
	background-clip: text;
	-webkit-background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}
.fm-hero__subheading {
	font-size: 17px;
	line-height: 1.5;
	color: var(--fm-text-mute);
	margin: 0 0 14px;
	max-width: 560px;
}
.fm-hero__appliances {
	font-size: 15px;
	line-height: 1.55;
	color: var(--fm-text-mute);
	margin: 0 0 32px;
	max-width: 560px;
	letter-spacing: 0.005em;
}
.fm-hero__appliances-item {
	color: var(--fm-text);
	font-weight: 500;
	display: inline-block;
	white-space: nowrap;
}
.fm-hero__appliances-item::before {
	content: "•";
	color: var(--fm-accent);
	margin: 0 6px 0 4px;
	font-weight: 700;
}
.fm-hero__usps {
	display: flex; flex-direction: column; gap: 14px;
	margin: 0 0 28px;
}
.fm-hero__usps li {
	display: flex; align-items: center; gap: 16px;
	font-size: 16px; color: var(--fm-text);
	line-height: 1.3;
}
.fm-hero__usp-icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 28px; height: 28px;
	flex-shrink: 0;
	color: var(--fm-accent);
	transition: transform .25s var(--fm-ease);
}
.fm-hero__usps li:hover .fm-hero__usp-icon { transform: rotate(-6deg) scale(1.08); }
.fm-hero__usps svg { color: inherit; flex-shrink: 0; }

.fm-hero__cta {
	display: flex; flex-wrap: wrap; gap: 12px;
	margin-bottom: 20px;
}
.fm-hero__badges {
	display: flex; flex-wrap: wrap; gap: 10px;
}
.fm-badge {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 8px 14px;
	font-size: 13px; font-weight: 500;
	color: var(--fm-text-mute);
	background: var(--fm-bg-3);
	border: 1px solid var(--fm-line);
	border-radius: var(--fm-radius);
}
.fm-badge strong { color: var(--fm-text); }

.fm-hero__media {
	position: relative;
	max-height: 100%;
	display: flex; align-items: center; justify-content: center;
}
.fm-hero__img {
	width: 100%; height: auto;
	max-height: calc(100vh - 180px);
	object-fit: contain;
	border-radius: var(--fm-radius-lg);
	border: 1px solid var(--fm-line);
}
.fm-hero__placeholder {
	aspect-ratio: 1;
	display: flex; align-items: center; justify-content: center;
	text-align: center;
	color: var(--fm-text-dim);
	background:
		repeating-linear-gradient(45deg, var(--fm-bg-3) 0 12px, var(--fm-bg-4) 12px 24px);
	border: 1px dashed var(--fm-line-2);
	border-radius: var(--fm-radius-lg);
	font-size: 14px;
}

@media (max-width: 900px) {
	/* On mobile, let hero grow with its (now stacked) content. */
	.fm-hero {
		min-height: 0;
		max-height: none;
		padding: 8px 0 28px;
	}
	.fm-hero__inner {
		display: flex;
		flex-direction: column;
		gap: 0;
	}
	/* Let children of .fm-hero__content participate in the flex order
	   directly so we can interleave the photo between text and CTAs. */
	.fm-hero__content { display: contents; }
	/* display:contents removes the box, so IntersectionObserver can't fire
	   .is-in on it — force the reveal-animated children visible. */
	.fm-hero__content .fm-eyebrow,
	.fm-hero__content .fm-hero__heading,
	.fm-hero__content .fm-hero__subheading,
	.fm-hero__content .fm-hero__appliances,
	.fm-hero__content .fm-hero__ratings,
	.fm-hero__content .fm-hero__usps li,
	.fm-hero__content .fm-hero__cta {
		opacity: 1 !important;
		transform: none !important;
		transition: none;
	}
	.fm-hero__eyebrow, .fm-eyebrow            { order: 1; margin: 0 0 8px; }
	.fm-hero__heading                         { order: 2; font-size: clamp(26px, 7vw, 36px); margin: 0 0 8px; line-height: 1.15; }
	.fm-hero__appliances                      { order: 3; font-size: 13px; margin: 0 0 12px; max-width: none; }
	.fm-hero__ratings                         { order: 4; display: flex; }
	.fm-hero__subheading                      { order: 5; font-size: 14px; margin: 0 0 12px; max-width: none; }
	.fm-hero__media                           { order: 6; max-width: 320px; margin: 4px auto 14px; }
	.fm-hero__usps                            { order: 7; gap: 10px; margin: 0 0 16px; align-self: stretch; align-items: flex-start; padding-left: 0; text-align: left; }
	.fm-hero__usps li                         { justify-content: flex-start; text-align: left; }
	.fm-hero__cta                             { order: 8; display: flex; flex-direction: column; gap: 10px; width: 100%; }
	.fm-hero__cta .fm-btn                     { width: 100%; justify-content: center; }
	.fm-hero__media                           {
		max-width: 100%;
		background-image: var(--fm-hero-mobile-bg, url('/wp-content/uploads/2026/05/hero-mobile-bg.webp'));
		background-position: center;
		background-size: cover;
		background-repeat: no-repeat;
		border-radius: 16px;
		aspect-ratio: 3 / 4;
		overflow: hidden;
	}
	.fm-hero__img,
	.fm-hero__placeholder                     { display: none !important; }
	.fm-hero__usps li                         { font-size: 15px; gap: 12px; }
	.fm-hero__appliances-item::before         { margin: 0 4px 0 2px; }
}
@media (max-width: 400px) {
	.fm-hero__heading                         { font-size: 23px; margin: 0 0 6px; }
	.fm-hero__appliances                      { font-size: 12px; margin: 0 0 10px; }
	.fm-hero__subheading                      { font-size: 13px; margin: 0 0 10px; }
	.fm-hero__usps li                         { font-size: 13px; gap: 10px; }
	.fm-hero__usp-icon                        { width: 22px; height: 22px; }
	.fm-hero__usp-icon svg                    { width: 18px; height: 18px; }
	.fm-hero .fm-eyebrow                      { font-size: 11px; margin: 0 0 8px; }
	.fm-hero__cta .fm-btn                     { font-size: 14px; padding: 12px 16px; }
}

/* ---------- TRUST BAR — review platforms ---------- */
.fm-trustbar {
	position: relative;
	border-top: 1px solid var(--fm-line);
	border-bottom: 1px solid var(--fm-line);
	background: var(--fm-bg-2);
	padding: 22px 0;
}
.fm-trustbar::before {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 90px;
	background: linear-gradient(180deg, rgba(15, 10, 7, 0) 0%, #14100C 80%);
	pointer-events: none;
	z-index: 0;
}
.fm-trustbar > * { position: relative; z-index: 1; }
.fm-trustbar__list {
	display: grid;
	grid-template-columns: repeat(4, max-content);
	gap: 0;
	justify-content: start;
}
.fm-trustbar__item { display: block; }
.fm-trustbar__card {
	position: relative;
	display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
	text-align: left;
	gap: 10px;
	padding: 18px 16px;
	min-height: 110px;
	background: var(--fm-bg-3);
	border: 1px solid var(--fm-line);
	border-radius: 14px;
	color: var(--fm-text);
	overflow: hidden;
	isolation: isolate;
	transition: border-color .3s var(--fm-ease), background .3s var(--fm-ease), transform .3s var(--fm-ease), box-shadow .3s var(--fm-ease);
}
/* Soft brand-color radial glow behind the icon, expands on hover */
.fm-trustbar__card::before {
	content: '';
	position: absolute;
	left: -10%; top: -50%;
	width: 60%; height: 200%;
	background: radial-gradient(circle at center, var(--brand-rgba), transparent 60%);
	opacity: .6;
	transition: opacity .35s var(--fm-ease), transform .4s var(--fm-ease);
	pointer-events: none;
	z-index: 0;
}
.fm-trustbar__card:hover::before { opacity: 1; transform: scale(1.15); }
.fm-trustbar__card.is-google    { --brand-rgba: rgba(66,133,244,.18); }
.fm-trustbar__card.is-yelp      { --brand-rgba: rgba(211,35,35,.18); }
.fm-trustbar__card.is-thumbtack { --brand-rgba: rgba(0,159,217,.18); }
.fm-trustbar__card.is-bbb       { --brand-rgba: rgba(0,90,140,.20); }
/* Soft sheen — appears on hover only */
.fm-trustbar__card::after {
	content: '';
	position: absolute;
	inset: -1px;
	background: linear-gradient(135deg, rgba(255,255,255,.12) 0%, transparent 45%);
	opacity: 0;
	transition: opacity .3s var(--fm-ease);
	pointer-events: none;
	z-index: 0;
}
.fm-trustbar__card:hover {
	border-color: var(--fm-accent);
	transform: translateY(-3px);
	box-shadow: 0 14px 30px -16px rgba(8,177,184,.45);
}
.fm-trustbar__card:hover::after { opacity: 1; }
.fm-trustbar__icon {
	flex-shrink: 0;
	display: inline-flex; align-items: center; justify-content: center;
	height: 32px;
	position: relative; z-index: 1;
	transition: transform .3s var(--fm-ease);
}
.fm-trustbar__card:hover .fm-trustbar__icon { transform: scale(1.04); }
.fm-trustbar__icon svg { height: 100%; width: auto; }
/* Thumbtack still uses a circular icon — give it a fixed square */
/* For cards that already show a full wordmark, hide the redundant text label */
.fm-trustbar__card.is-google .fm-trustbar__name,
.fm-trustbar__card.is-yelp   .fm-trustbar__name,
.fm-trustbar__card.is-thumbtack .fm-trustbar__name { display: none; }
/* Tighter packing of icon ↔ rating */
.fm-trustbar__card.is-google,
.fm-trustbar__card.is-yelp,
.fm-trustbar__card.is-thumbtack { gap: 12px; }

.fm-trustbar__body {
	display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
	min-width: 0;
	position: relative; z-index: 1;
}
.fm-trustbar__name {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--fm-text-mute);
	line-height: 1;
}
.fm-trustbar__rating-line {
	display: inline-flex; align-items: center; justify-content: flex-start; gap: 8px;
}
.fm-trustbar__rating {
	font-family: 'Satoshi', sans-serif;
	font-size: 22px;
	font-weight: 900;
	color: var(--fm-text);
	line-height: 1;
	letter-spacing: -0.02em;
}
.fm-trustbar__stars {
	font-size: 12px;
	letter-spacing: 1.5px;
	color: #ffb400;
	line-height: 1;
}
.fm-trustbar__arrow {
	flex-shrink: 0;
	color: var(--fm-text-dim);
	transition: transform .25s var(--fm-ease), color .25s var(--fm-ease);
	z-index: 1;
}
.fm-trustbar__card:hover .fm-trustbar__arrow {
	color: var(--fm-accent);
	transform: translate(3px, -3px);
}
@media (max-width: 900px) {
	.fm-trustbar { display: none; }
	.fm-trustbar__list {
		grid-template-columns: 1fr;
		gap: 8px;
	}
	.fm-trustbar__card {
		flex-direction: row;
		align-items: center;
		gap: 12px;
		padding: 12px 14px;
		min-height: 0;
		border-radius: 12px;
	}
	.fm-trustbar__icon { height: 28px; }
	.fm-trustbar__rating { font-size: 18px; }
	.fm-trustbar__name { font-size: 10px; }
	.fm-trustbar__stars { font-size: 11px; }
	.fm-trustbar__arrow { margin-left: auto; }
}

/* ---------- SERVICES GRID ---------- */
.fm-services {
	position: relative;
	padding: clamp(94px, 9vw, 120px) 0;
	overflow: hidden;
	background: var(--fm-section-dark);
}
.fm-services::before,
.fm-services::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	filter: blur(110px);
	pointer-events: none;
	z-index: 0;
}
.fm-services::before {
	top: -5%; left: -160px;
	width: 620px; height: 620px;
	background: radial-gradient(closest-side, rgba(244,144,46,.22), rgba(244,144,46,0) 70%);
}
.fm-services::after {
	bottom: -200px; right: -180px;
	width: 680px; height: 680px;
	background: radial-gradient(closest-side, rgba(244,144,46,.20), rgba(244,144,46,0) 70%);
}
@media (max-width: 900px) {
	.fm-services {
		margin-top: -60px;
		padding-top: 120px;
		position: relative;
		z-index: 2;
	}
	.fm-services::before,
	.fm-services::after { filter: blur(70px); }
	.fm-services::before {
		top: 20px; left: -80px;
		width: 280px; height: 280px;
	}
	.fm-services::after {
		bottom: -100px; right: -90px;
		width: 320px; height: 320px;
	}
}
.fm-services > * { position: relative; z-index: 1; }
.fm-services__fade { display: none; }

/* --- Full-width slider with side fades + side arrow buttons --- */
.fm-services__slider {
	position: relative;
	margin: 0 0 64px;
	/* Shared edge value — matches the page container alignment. */
	--fm-slider-edge: max(var(--fm-gutter), calc((100vw - var(--fm-container)) / 2 + var(--fm-gutter)));
}
.fm-services__fade {
	position: absolute;
	top: 0; bottom: 0;
	/* Cover only the area up to where the first card starts — never the card itself. */
	width: var(--fm-slider-edge);
	pointer-events: none;
	z-index: 3;
}
.fm-services__fade--left {
	left: 0;
	background: linear-gradient(to right, var(--fm-bg) 0%, rgba(10,10,12,0) 100%);
}
.fm-services__fade--right {
	right: 0;
	background: linear-gradient(to left, var(--fm-bg) 0%, rgba(10,10,12,0) 100%);
}
.fm-slider__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 52px; height: 52px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--fm-bg-2);
	color: var(--fm-text);
	border: 1px solid var(--fm-line);
	border-radius: 50%;
	cursor: pointer;
	z-index: 4;
	transition: background .2s var(--fm-ease), border-color .2s var(--fm-ease), color .2s var(--fm-ease), opacity .25s var(--fm-ease);
	box-shadow: 0 8px 24px -10px rgba(0,0,0,.55);
}
.fm-slider__btn:hover {
	background: var(--fm-bg-3);
	border-color: var(--fm-accent);
	color: var(--fm-accent);
}
.fm-slider__btn[disabled] { opacity: 0; pointer-events: none; }
.fm-slider__btn--prev { left: clamp(8px, 2.5vw, 32px); }
.fm-slider__btn--next { right: clamp(8px, 2.5vw, 32px); }
@media (max-width: 600px) {
	.fm-slider__btn { width: 42px; height: 42px; }
}
.fm-slider__track {
	display: flex !important;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
	scroll-padding-left: calc(var(--fm-slider-edge) + 12px);
	padding-top: 4px;
	padding-bottom: 8px;
	padding-left: calc(var(--fm-slider-edge) + 12px);
	padding-right: var(--fm-slider-edge);
	padding-left: 6%;
}
@media (max-width: 700px) {
	.fm-slider__track {
		padding-left: calc(var(--fm-slider-edge) + 8px);
		scroll-padding-left: calc(var(--fm-slider-edge) + 8px);
	}
}
.fm-slider__track::-webkit-scrollbar { display: none; }
.fm-slider__track > .fm-service-card {
	flex: 0 0 240px;
	scroll-snap-align: start;
}

.fm-services__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 18px;
}
.fm-service-card {
	border: 1px solid var(--fm-line);
	border-radius: var(--fm-radius-lg);
	background: var(--fm-bg-2);
	overflow: hidden;
	transition: border-color .3s var(--fm-ease), transform .3s var(--fm-ease), background .3s var(--fm-ease);
}
.fm-service-card:hover {
	border-color: var(--fm-accent);
	background: var(--fm-bg-3);
	transform: translateY(-4px);
}
.fm-service-card__link {
	display: flex; flex-direction: column; height: 100%;
}
.fm-service-card__media {
	display: block; aspect-ratio: 5 / 6;
	background:
		radial-gradient(70% 60% at 50% 55%, rgba(244,144,46,.22) 0%, rgba(244,144,46,0) 70%),
		linear-gradient(180deg, #f6e9d8 0%, #efd9bb 100%);
	overflow: hidden;
	position: relative;
}
.fm-service-card__img {
	width: 100%; height: 100%; object-fit: cover;
	padding: 0;
	transition: transform .4s var(--fm-ease);
	position: relative;
	z-index: 1;
	display: block;
}
.fm-service-card:hover .fm-service-card__img { transform: scale(1.04); }
.fm-service-card__placeholder {
	display: block; width: 100%; height: 100%;
	background: repeating-linear-gradient(45deg, #bcc1cb 0 8px, #a6aab5 8px 16px);
}
.fm-service-card__body {
	padding: 20px 22px 22px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	background: linear-gradient(180deg, #D9CABB 0%, #6b4a2a 18%, var(--fm-bg-2) 55%, var(--fm-bg-2) 100%);
	/* margin-top: -20px; */
}
.fm-service-card__title {
	font-size: 18px; font-weight: 600; color: var(--fm-text);
}
.fm-service-card__cta {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 14px; font-weight: 500;
	color: var(--fm-accent);
}

/* Category CTA row below the services grid */
.fm-services__cats {
	margin-top: 56px;
	display: flex; flex-wrap: wrap; gap: 12px;
	justify-content: center;
}
.fm-cat-btn {
	display: inline-flex; align-items: center; justify-content: space-between;
	gap: 14px;
	min-height: 56px;
	padding: 14px 22px;
	min-width: 220px;
	background: var(--fm-bg-2);
	border: 1px solid var(--fm-line);
	border-radius: var(--fm-radius);
	color: var(--fm-text);
	font-size: 16px; font-weight: 600;
	transition: border-color .25s var(--fm-ease), background .25s var(--fm-ease), transform .15s var(--fm-ease), color .25s var(--fm-ease);
}
.fm-cat-btn:hover {
	border-color: var(--fm-accent);
	background: var(--fm-bg-3);
	transform: translateY(-2px);
}
.fm-cat-btn__arrow {
	color: var(--fm-accent);
	transition: transform .25s var(--fm-ease);
}
.fm-cat-btn:hover .fm-cat-btn__arrow { transform: translateX(4px); }
@media (max-width: 700px) {
	.fm-cat-btn { width: 100%; min-width: 0; }
}

/* ---------- WHY US ---------- */
/* ---------- WHY CHOOSE — bento grid ---------- */
.fm-why {
	padding: clamp(72px, 10vw, 140px) 0;
	background: linear-gradient(180deg, #fbf3ea 0%, #f8ece0 100%);
}
.fm-why__head { text-align: center; margin-bottom: clamp(36px, 5vw, 56px); }
.fm-why__head .fm-eyebrow { justify-content: center; }
.fm-why .fm-h2 {
	font-size: clamp(34px, 4.6vw, 56px);
	line-height: 1.05;
	letter-spacing: -0.025em;
	margin: 14px auto 16px;
	max-width: 720px;
}
.fm-why__lead {
	font-size: clamp(16px, 1.3vw, 19px);
	line-height: 1.55;
	color: var(--fm-text-dim);
	max-width: 620px;
	margin: 0 auto;
}

.fm-bento {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-auto-rows: minmax(180px, auto);
	gap: 14px;
}
.fm-bento__tile {
	position: relative;
	display: flex; flex-direction: column; justify-content: space-between;
	padding: 24px;
	background: #ffffff;
	border: 1px solid #e6e8ec;
	border-radius: 20px;
	overflow: hidden;
	isolation: isolate;
	transition: transform .35s var(--fm-ease), box-shadow .35s var(--fm-ease), border-color .35s var(--fm-ease);
	opacity: 0;
	transform: translateY(24px);
}
.fm-bento.is-in .fm-bento__tile {
	animation: fm-bento-rise .7s var(--fm-ease) forwards;
}
.fm-bento.is-in .fm-bento__tile:nth-child(1) { animation-delay:  80ms; }
.fm-bento.is-in .fm-bento__tile:nth-child(2) { animation-delay: 160ms; }
.fm-bento.is-in .fm-bento__tile:nth-child(3) { animation-delay: 240ms; }
.fm-bento.is-in .fm-bento__tile:nth-child(4) { animation-delay: 320ms; }
.fm-bento.is-in .fm-bento__tile:nth-child(5) { animation-delay: 400ms; }
.fm-bento.is-in .fm-bento__tile:nth-child(6) { animation-delay: 480ms; }
.fm-bento.is-in .fm-bento__tile:nth-child(7) { animation-delay: 560ms; }
.fm-bento.is-in .fm-bento__tile:nth-child(8) { animation-delay: 640ms; }
@keyframes fm-bento-rise {
	to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
	.fm-bento__tile { opacity: 1; transform: none; animation: none !important; }
}
.fm-bento__tile:hover {
	transform: translateY(-3px);
	border-color: #d4d8df;
	box-shadow: 0 18px 40px -20px rgba(20,20,30,.18);
}
.fm-bento__title {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.25;
	color: var(--fm-text);
	margin: 0;
}
.fm-bento__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 52px; height: 52px;
	border-radius: 14px;
	background: #f1f3f6;
	color: var(--fm-text);
	transition: background .3s var(--fm-ease), color .3s var(--fm-ease), transform .3s var(--fm-ease);
}
.fm-bento__tile:hover .fm-bento__icon {
	background: var(--fm-accent);
	color: #fff;
	transform: rotate(-6deg) scale(1.04);
}
.fm-bento__kicker {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px; font-weight: 600;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--fm-accent);
	margin: 0 0 14px;
}

/* HERO TILE — Same-Day */
.fm-bento__tile--hero {
	grid-column: span 2;
	grid-row: span 2;
	min-height: 380px;
	padding: 36px;
	color: #f4f5f7;
	background:
		radial-gradient(120% 80% at 100% 0%, rgba(var(--fm-accent-rgb,8,177,184), .35) 0%, transparent 55%),
		linear-gradient(180deg, #14161b 0%, #0a0b0e 100%);
	border-color: #1d1f25;
}
.fm-bento__hero-bg {
	position: absolute; inset: 0; z-index: 0;
	background:
		radial-gradient(60% 60% at 90% 90%, rgba(var(--fm-accent-rgb,8,177,184), .18) 0%, transparent 70%);
	pointer-events: none;
}
.fm-bento__tile--hero::after {
	/* Diagonal sheen */
	content: '';
	position: absolute; inset: -2px;
	background: linear-gradient(120deg, transparent 35%, rgba(255,255,255,.06) 50%, transparent 65%);
	transform: translateX(-100%);
	transition: transform 1.2s var(--fm-ease);
	pointer-events: none;
	z-index: 2;
}
.fm-bento__tile--hero:hover::after { transform: translateX(100%); }
.fm-bento__bolt {
	position: absolute; top: 28px; right: 28px; z-index: 3;
	display: inline-flex; align-items: center; justify-content: center;
	width: 72px; height: 72px;
	border-radius: 50%;
	background: var(--fm-accent);
	color: #1a0d00;
	box-shadow: 0 12px 36px -8px rgba(var(--fm-accent-rgb,8,177,184), .65);
}
.fm-bento__pulse {
	position: absolute; inset: 0; border-radius: 50%;
	border: 2px solid var(--fm-accent);
	animation: fm-bolt-pulse 2.4s var(--fm-ease) infinite;
}
@keyframes fm-bolt-pulse {
	0%   { transform: scale(1);   opacity: .8; }
	100% { transform: scale(1.7); opacity: 0;  }
}
.fm-bento__hero-body { position: relative; z-index: 3; margin-top: auto; }
.fm-bento__hero-title {
	font-size: clamp(32px, 3.6vw, 48px);
	line-height: 1.02;
	letter-spacing: -0.03em;
	font-weight: 700;
	margin: 0 0 14px;
	color: #ffffff;
}
.fm-bento__hero-desc {
	font-size: 15px;
	line-height: 1.55;
	color: rgba(255,255,255,.7);
	max-width: 380px;
	margin: 0;
}

/* FREE — accent tint */
.fm-bento__tile--free {
	background: linear-gradient(160deg, #fff4ea 0%, #ffffff 70%);
	border-color: #f3dcc1;
}
.fm-bento__tile--free .fm-bento__icon {
	background: rgba(var(--fm-accent-rgb,8,177,184), .18);
	color: var(--fm-accent);
}
.fm-bento__tag {
	align-self: flex-start;
	display: inline-flex;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.12em; text-transform: uppercase;
	padding: 6px 10px;
	background: var(--fm-accent); color: #1a0d00;
	border-radius: 999px;
}

/* WARRANTY — big stat */
.fm-bento__tile--warranty {
	background: linear-gradient(180deg, #f9fafc 0%, #eef1f5 100%);
}
.fm-bento__stat {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 72px;
	font-weight: 700;
	letter-spacing: -0.05em;
	line-height: .95;
	color: var(--fm-text);
}
.fm-bento__stat span {
	font-size: 28px;
	color: var(--fm-accent);
	margin-left: 4px;
}

/* EPA — eco green */
.fm-bento__tile--epa {
	background: linear-gradient(160deg, #eef9f1 0%, #ffffff 70%);
	border-color: #cfe9d6;
}
.fm-bento__tile--epa .fm-bento__icon { background: #d8eede; color: #1f7a3a; }
.fm-bento__tile--epa:hover .fm-bento__icon { background: #1f7a3a; color: #fff; }

/* SATURDAY */
.fm-bento__tile--saturday .fm-bento__icon { background: #eef0fb; color: #3a4cc2; }
.fm-bento__tile--saturday:hover .fm-bento__icon { background: #3a4cc2; }

/* HONEST */
.fm-bento__tile--honest .fm-bento__icon--pill {
	background: #f1f3f6;
	color: #2a8957;
}
.fm-bento__tile--honest:hover .fm-bento__icon--pill { background: #2a8957; color: #fff; }

/* REVIEWS — dark wide */
.fm-bento__tile--reviews {
	grid-column: span 2;
	color: #f4f5f7;
	background:
		radial-gradient(120% 100% at 0% 100%, rgba(var(--fm-accent-rgb,8,177,184), .25) 0%, transparent 55%),
		linear-gradient(180deg, #14161b 0%, #0a0b0e 100%);
	border-color: #1d1f25;
	justify-content: center;
	gap: 12px;
}
.fm-bento__stars {
	font-size: 36px;
	letter-spacing: 4px;
	color: #ffc24a;
	line-height: 1;
}
.fm-bento__count {
	font-size: 20px;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: #fff;
}
.fm-bento__count strong { color: var(--fm-accent); font-weight: 700; }
.fm-bento__platforms {
	display: flex; flex-wrap: wrap; gap: 8px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
	color: rgba(255,255,255,.55);
}

/* Responsive */
@media (max-width: 980px) {
	.fm-bento { grid-template-columns: repeat(2, 1fr); }
	.fm-bento__tile--hero { grid-column: span 2; grid-row: span 1; min-height: 320px; }
	.fm-bento__tile--reviews { grid-column: span 2; }
}
@media (max-width: 560px) {
	.fm-bento { grid-template-columns: 1fr; }
	.fm-bento__tile--hero, .fm-bento__tile--reviews { grid-column: span 1; }
	.fm-bento__hero-title { font-size: 32px; }
	.fm-bento__stat { font-size: 56px; }
}
@media (prefers-reduced-motion: reduce) {
	.fm-bento__pulse, .fm-bento__tile--hero::after { animation: none; transition: none; }
}

/* ---------- WHY US — horizontal slider of hero-style cards ---------- */
.fm-why__slider {
	position: relative;
	margin: 0;
	--fm-slider-edge: max(var(--fm-gutter), calc((100vw - var(--fm-container)) / 2 + var(--fm-gutter)));
}
.fm-why__track {
	display: flex !important;
	gap: 18px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
	scroll-padding-left: calc(var(--fm-slider-edge) + 12px);
	padding: 4px 6% 8px;
	list-style: none;
	margin: 0;
}
.fm-why__track::-webkit-scrollbar { display: none; }
.fm-why-card {
	flex: 0 0 240px;
	scroll-snap-align: start;
	position: relative;
	display: flex; flex-direction: column; justify-content: space-between;
	min-height: 220px;
	padding: 22px;
	border-radius: 18px;
	overflow: hidden;
	isolation: isolate;
	color: #f4f5f7;
	background:
		radial-gradient(120% 80% at 100% 0%, rgba(244,144,46,.35) 0%, transparent 55%),
		linear-gradient(180deg, #14161b 0%, #0a0b0e 100%);
	border: 1px solid transparent;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.12),
		inset 0 -1px 0 rgba(0,0,0,.35);
	transition: transform .35s var(--fm-ease), box-shadow .35s var(--fm-ease);
}
/* Silver gradient border via masked overlay — premium metallic edge. */
.fm-why-card::before {
	content: "";
	position: absolute; inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg,
		rgba(255,255,255,.55) 0%,
		rgba(200,205,215,.25) 25%,
		rgba(140,145,155,.15) 50%,
		rgba(220,225,235,.40) 78%,
		rgba(255,255,255,.55) 100%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	        mask-composite: exclude;
	pointer-events: none;
	z-index: 4;
	transition: background .35s var(--fm-ease), opacity .35s var(--fm-ease);
}
.fm-why-card:hover {
	transform: translateY(-4px);
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.18),
		inset 0 -1px 0 rgba(0,0,0,.45),
		0 22px 50px -22px rgba(244,144,46,.45);
}
.fm-why-card:hover::before {
	background: linear-gradient(135deg,
		rgba(255,255,255,.75) 0%,
		rgba(244,144,46,.35) 30%,
		rgba(255,200,140,.45) 55%,
		rgba(244,144,46,.35) 75%,
		rgba(255,255,255,.75) 100%);
}
.fm-why-card__bg {
	position: absolute; inset: 0; z-index: 0;
	background: radial-gradient(60% 60% at 90% 90%, rgba(244,144,46,.18) 0%, transparent 70%);
	pointer-events: none;
}
.fm-why-card::after {
	content: '';
	position: absolute; inset: -2px;
	background: linear-gradient(120deg, transparent 35%, rgba(255,255,255,.06) 50%, transparent 65%);
	transform: translateX(-100%);
	transition: transform 1.2s var(--fm-ease);
	pointer-events: none;
	z-index: 2;
}
.fm-why-card:hover::after { transform: translateX(100%); }
.fm-why-card__bolt {
	position: absolute; top: 20px; right: 20px; z-index: 3;
	display: inline-flex; align-items: center; justify-content: center;
	width: 52px; height: 52px;
	border-radius: 50%;
	background: var(--fm-accent, #F4902E);
	color: #1a0d00;
	box-shadow: 0 10px 28px -8px rgba(244,144,46,.65);
}
.fm-why-card__bolt svg { width: 26px; height: 26px; }
.fm-why-card__pulse {
	position: absolute; inset: 0; border-radius: 50%;
	border: 2px solid var(--fm-accent, #F4902E);
	animation: fm-bolt-pulse 2.4s var(--fm-ease) infinite;
}
.fm-why-card__body { position: relative; z-index: 3; margin-top: auto; }
.fm-why-card__kicker {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px; font-weight: 600;
	letter-spacing: 0.22em; text-transform: uppercase;
	color: var(--fm-accent, #F4902E);
	margin: 0 0 12px;
}
.fm-why-card__title {
	font-size: clamp(18px, 1.6vw, 22px);
	line-height: 1.15;
	letter-spacing: -0.02em;
	font-weight: 700;
	margin: 0;
	color: #ffffff;
}
@media (max-width: 700px) {
	.fm-why__track {
		gap: 12px;
		padding: 4px 16px 8px;
		scroll-padding-left: 16px;
	}
	.fm-why-card {
		flex: 0 0 200px;
		min-height: 130px;
		padding: 12px;
	}
	.fm-why-card__bolt { width: 34px; height: 34px; top: 10px; right: 10px; }
	.fm-why-card__bolt svg { width: 16px; height: 16px; }
	.fm-why-card__title { font-size: 18px; line-height: 1.2; }
	.fm-why-card__kicker { font-size: 9px; margin: 0 0 8px; letter-spacing: 0.18em; }
	.fm-slider__btn { display: none !important; }
}
.fm-slider__dots {
	display: none;
	list-style: none;
	margin: 14px 0 0;
	padding: 0;
	justify-content: center;
	gap: 8px;
}
.fm-slider__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: rgba(20, 22, 27, 0.22);
	cursor: pointer;
	transition: background .25s var(--fm-ease), width .25s var(--fm-ease);
}
.fm-slider__dot.is-active {
	background: var(--fm-accent, #F4902E);
	width: 20px;
	border-radius: 4px;
}
@media (max-width: 700px) {
	.fm-slider__dots { display: flex; }
}
@media (prefers-reduced-motion: reduce) {
	.fm-why-card__pulse, .fm-why-card::after { animation: none; transition: none; }
}

/* ---------- HOW IT WORKS — connected step graph ---------- */
.fm-how { padding: clamp(94px, 9vw, 120px) 0; background: #1f1814; }
.fm-how__grid {
	--fm-node: 64px;
	--fm-how-step: 600ms;        /* time between reveals */
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	position: relative;
	list-style: none;
}

/* Two independent dashed segments: 1↔2 and 2↔3 */
.fm-how__line {
	position: absolute;
	top: calc(var(--fm-node) / 2);
	height: 2px;
	background-image: linear-gradient(to right, var(--fm-accent) 50%, transparent 50%);
	background-size: 14px 2px;
	background-repeat: repeat-x;
	z-index: 0;
	transform-origin: left center;
	transform: scaleX(0);
}
.fm-how__line--1 { left: calc(100% / 6);              right: 50%; }
.fm-how__line--2 { left: 50%;              right: calc(100% / 6); }

.fm-how__step {
	position: relative;
	z-index: 1;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
	text-align: center;
	opacity: 0;
	transform: translateY(16px);
}

/* Sequence on viewport entry */
.fm-how__grid.is-in .fm-how__step {
	animation: fmHowStepIn .55s var(--fm-ease) forwards;
	animation-delay: calc(var(--fm-i, 0) * (var(--fm-how-step) + 250ms));
}
.fm-how__grid.is-in .fm-how__line {
	animation: fmHowLineGrow .5s var(--fm-ease) forwards, fmHowDash 1.4s linear infinite 600ms;
}
.fm-how__grid.is-in .fm-how__line--1 { animation-delay: calc(var(--fm-how-step) - 50ms), calc(var(--fm-how-step) + 500ms); }
.fm-how__grid.is-in .fm-how__line--2 { animation-delay: calc(var(--fm-how-step) * 2 + 200ms), calc(var(--fm-how-step) * 2 + 750ms); }

@keyframes fmHowStepIn {
	to { opacity: 1; transform: translateY(0); }
}
@keyframes fmHowLineGrow {
	to { transform: scaleX(1); }
}
@keyframes fmHowDash {
	from { background-position-x: 0; }
	to   { background-position-x: 14px; }
}
@media (prefers-reduced-motion: reduce) {
	.fm-how__step { opacity: 1; transform: none; animation: none !important; }
	.fm-how__line { transform: scaleX(1); animation: none !important; }
}

.fm-how__num {
	display: inline-flex; align-items: center; justify-content: center;
	width: var(--fm-node); height: var(--fm-node);
	margin: 0 auto 24px;
	font-size: 22px; font-weight: 700;
	color: var(--fm-accent);
	background: var(--fm-bg);
	border: 2px solid var(--fm-accent);
	border-radius: 50%;
	/* box-shadow: 0 0 0 6px var(--fm-bg); */
	transition: background .25s var(--fm-ease), color .25s var(--fm-ease), transform .25s var(--fm-ease);
}
.fm-how__step:hover .fm-how__num {
	background: var(--fm-accent);
	color: #001a1c;
	transform: scale(1.05);
}
.fm-how__title {
	font-size: 19px;
	font-weight: 700;
	margin: 0 0 8px;
	color: var(--fm-text);
}
.fm-how__desc {
	color: var(--fm-text-mute);
	margin: 0;
	font-size: 16px;
	line-height: 1.55;
	max-width: 320px;
	margin-left: auto;
	margin-right: auto;
}
@media (max-width: 800px) {
	.fm-how__grid {
		grid-template-columns: 1fr;
		gap: 98px;
		justify-items: stretch;
	}
	.fm-how__line {
		left: calc(var(--fm-node) / 2) !important;
		right: auto !important;
		top: calc(var(--fm-node) / 2) !important;
		bottom: calc(var(--fm-node) / 2);
		height: auto !important;
		width: 2px;
		background-image: linear-gradient(to bottom, var(--fm-accent) 50%, transparent 50%);
		background-size: 2px 14px;
		background-repeat: repeat-y;
		transform: translateX(-50%) scaleY(0);
		transform-origin: center top;
	}
	.fm-how__line--2 { display: none; }
	.fm-how__grid.is-in .fm-how__line--1 {
		animation: fmHowLineGrowY 1.6s var(--fm-ease) forwards, fmHowDashY 1.4s linear infinite 1.6s;
		animation-delay: calc(var(--fm-how-step) - 50ms), calc(var(--fm-how-step) + 1.6s);
	}
	@keyframes fmHowLineGrowY {
		to { transform: translateX(-50%) scaleY(1); }
	}
	@keyframes fmHowDashY {
		from { background-position-y: 0; }
		to   { background-position-y: 14px; }
	}
	.fm-how__step {
		display: grid;
		grid-template-columns: auto 1fr;
		grid-template-rows: auto auto;
		column-gap: 18px;
		row-gap: 4px;
		align-items: start;
		text-align: left;
	}
	.fm-how__num {
		grid-row: 1 / span 2;
		grid-column: 1;
		margin: 0;
		align-self: start;
		box-shadow: none;
		flex-shrink: 0;
	}
	.fm-how__title {
		grid-row: 1;
		grid-column: 2;
		margin: 0;
		align-self: center;
	}
	.fm-how__desc {
		grid-row: 2;
		grid-column: 2;
		max-width: none;
		margin: 0;
	}
}

/* ---------- QUOTE FORM ---------- */
/* ---------- QUOTE — full-bleed bg + centered card ---------- */
.fm-quote {
	position: relative;
	padding: clamp(80px, 12vw, 160px) 0;
	overflow: visible;
	isolation: isolate;
	background: var(--fm-section-dark);
}
.fm-quote__bg, .fm-quote__overlay { /* keep absolute bg layers clipped via section bounds */ }
.fm-quote__bg {
	position: absolute; inset: 0; z-index: -2;
	background: url('/wp-content/uploads/2026/05/kittchen6.webp') center / cover no-repeat;
}
.fm-quote__overlay {
	position: absolute; inset: 0; z-index: -1;
	background:
		radial-gradient(80% 70% at 50% 35%, rgba(10,11,14,.25) 0%, rgba(10,11,14,.6) 100%),
		linear-gradient(180deg, rgba(10,11,14,.2) 0%, rgba(10,11,14,.5) 100%);
}
.fm-quote__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: clamp(20px, 3vw, 36px);
	align-items: start;
	max-width: 1180px;
	margin: 0 auto;
}
@media (max-width: 960px) {
	.fm-quote__layout { grid-template-columns: 1fr; }
	.fm-quote__contact { position: static; top: auto; }
}
.fm-quote__mobile-cta,
.fm-quote__modal-backdrop,
.fm-quote__close { display: none; }
@media (max-width: 768px) {
	.fm-quote.is-open { z-index: 1100; }
	/* Closed on mobile: the booking card is hidden; it's only reachable via the
	   full-screen popup. The Workiz iframe is loaded on open (window.fmLoadWorkiz),
	   so it always initialises at the correct full-screen width — no desktop fallback. */
	.fm-quote__card,
	.fm-quote__card.is-in { display: none; }
	.fm-quote.is-open .fm-quote__card {
		display: block;
		position: fixed;
		top: 0; left: 0; right: 0; bottom: 0;
		width: 100%;
		max-width: none;
		margin: 0;
		z-index: 1000;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 56px 16px 24px;
		border-radius: 0;
	}
	/* Let the Workiz iframe fill the popup on mobile. */
	.fm-quote.is-open .fm-quote__card .workiz-wrap,
	.fm-quote.is-open .fm-quote__card .workiz-frame,
	.fm-quote.is-open .fm-quote__card .workiz-frame iframe {
		width: 100%;
		min-height: 75vh;
	}
	.fm-quote.is-open .fm-quote__card .fm-quote__content { display: none; }
	.fm-quote__modal-backdrop {
		position: fixed;
		inset: 0;
		background: rgba(8, 6, 4, 0.72);
		backdrop-filter: blur(4px);
		z-index: 999;
		opacity: 0;
		pointer-events: none;
		transition: opacity .25s var(--fm-ease);
	}
	.fm-quote.is-open .fm-quote__modal-backdrop {
		display: block;
		opacity: 1;
		pointer-events: auto;
	}
	.fm-quote__close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		position: absolute;
		top: 12px;
		right: 12px;
		width: 36px;
		height: 36px;
		background: rgba(255,255,255,.08);
		border: 1px solid rgba(255,255,255,.15);
		color: #fff;
		border-radius: 50%;
		cursor: pointer;
		z-index: 5;
	}
	body.fm-quote-open { overflow: hidden; }
}
.fm-quote__card {
	position: relative;
	max-width: none;
	margin: 0;
	background:
		radial-gradient(120% 80% at 100% 0%, rgba(244,144,46,.10) 0%, transparent 55%),
		linear-gradient(180deg, rgba(22,24,29,.96) 0%, rgba(14,15,19,.96) 100%);
	border: 1px solid transparent;
	border-radius: 24px;
	padding: clamp(28px, 3.5vw, 44px);
	color: #f4f5f7;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.10),
		inset 0 -1px 0 rgba(0,0,0,.45),
		0 30px 80px -30px rgba(0,0,0,.6);
	isolation: isolate;
}
.fm-quote__card::before {
	content: "";
	position: absolute; inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg,
		rgba(255,255,255,.40) 0%,
		rgba(180,185,195,.18) 30%,
		rgba(140,145,155,.12) 55%,
		rgba(220,225,235,.30) 80%,
		rgba(255,255,255,.40) 100%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	        mask-composite: exclude;
	pointer-events: none;
	z-index: 2;
}
.fm-quote__content { text-align: left; margin-bottom: 28px; }
.fm-quote__content .fm-eyebrow { justify-content: flex-start; color: var(--fm-accent); }
.fm-quote__content .fm-h2 {
	font-size: clamp(26px, 2.8vw, 34px);
	line-height: 1.1;
	color: #fff;
	margin: 12px 0 12px;
	letter-spacing: -0.02em;
}
.fm-quote__text {
	color: rgba(255,255,255,.7);
	font-size: 15px;
	line-height: 1.55;
	margin: 0;
	max-width: none;
}

/* Form inputs in dark card */
.fm-quote .fm-form__field { color: rgba(255,255,255,.7); }
.fm-quote .fm-form__field input,
.fm-quote .fm-form__field select,
.fm-quote .fm-form__field textarea {
	background: rgba(255,255,255,.06);
	border-color: rgba(255,255,255,.12);
	color: #fff;
}
.fm-quote .fm-form__field input::placeholder,
.fm-quote .fm-form__field textarea::placeholder { color: rgba(255,255,255,.4); }
.fm-quote .fm-form__field input:focus,
.fm-quote .fm-form__field select:focus,
.fm-quote .fm-form__field textarea:focus {
	background: rgba(255,255,255,.1);
	border-color: var(--fm-accent);
}

/* Workiz embed: just normalize border/width; let the iframe set its own height */
.fm-quote__card iframe { display: block; width: 100%; border: 0; }

/* Contact sidebar in quote section */
.fm-quote__contact {
	position: sticky;
	top: 110px;
	color: #f4f5f7;
	background:
		radial-gradient(120% 80% at 100% 0%, rgba(244,144,46,.16) 0%, transparent 55%),
		linear-gradient(180deg, rgba(22,24,29,.92) 0%, rgba(14,15,19,.92) 100%);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid transparent;
	border-radius: 24px;
	padding: clamp(24px, 3vw, 36px);
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.10),
		inset 0 -1px 0 rgba(0,0,0,.45),
		0 30px 80px -30px rgba(0,0,0,.6);
	isolation: isolate;
	overflow: hidden;
}
.fm-quote__contact::before {
	content: "";
	position: absolute; inset: 0;
	border-radius: inherit;
	padding: 1px;
	background: linear-gradient(135deg,
		rgba(255,255,255,.45) 0%,
		rgba(244,144,46,.22) 30%,
		rgba(140,145,155,.12) 55%,
		rgba(244,144,46,.22) 80%,
		rgba(255,255,255,.45) 100%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	        mask-composite: exclude;
	pointer-events: none;
	z-index: 2;
}
.fm-quote__contact > * { position: relative; z-index: 1; }
.fm-quote__contact-title {
	font-size: clamp(22px, 2.4vw, 28px);
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0 0 8px;
	color: #fff;
}
.fm-quote__contact-lead {
	color: rgba(255,255,255,.65);
	font-size: 15px;
	line-height: 1.55;
	margin: 0 0 24px;
}
.fm-quote__contact-list {
	list-style: none;
	padding: 0;
	margin: 0 0 22px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.fm-quote__contact-item {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 14px 0;
	border-bottom: 1px solid rgba(255,255,255,.06);
}
.fm-quote__contact-item:last-child { border-bottom: none; }
.fm-quote__contact-icon {
	display: inline-flex;
	align-items: center; justify-content: center;
	width: 44px; height: 44px;
	border-radius: 12px;
	background: rgba(244,144,46,.14);
	color: var(--fm-accent, #F4902E);
	flex-shrink: 0;
}
.fm-quote__contact-body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.fm-quote__contact-label {
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255,255,255,.5);
}
.fm-quote__contact-value {
	font-size: 17px;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
	letter-spacing: -0.01em;
	transition: color .2s var(--fm-ease);
}
.fm-quote__contact-value:hover { color: var(--fm-accent, #F4902E); }
.fm-quote__contact-hours {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 14px;
	color: rgba(255,255,255,.78);
	line-height: 1.5;
}
.fm-quote__contact-hours strong {
	display: inline-block;
	min-width: 78px;
	color: #fff;
	font-weight: 600;
}
.fm-quote__contact-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	background: rgba(244,144,46,.12);
	border: 1px solid rgba(244,144,46,.28);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	color: var(--fm-accent, #F4902E);
}
.fm-quote__contact-badge-dot {
	width: 8px; height: 8px;
	background: var(--fm-accent, #F4902E);
	border-radius: 50%;
	box-shadow: 0 0 0 4px rgba(244,144,46,.2);
	animation: fm-bolt-pulse 2.4s var(--fm-ease) infinite;
}

.fm-form { display: flex; flex-direction: column; gap: 14px; }
.fm-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fm-form__field { display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: var(--fm-text-mute); }
.fm-form__field input,
.fm-form__field select,
.fm-form__field textarea {
	width: 100%;
	padding: 12px 14px;
	font: inherit; font-size: 16px; color: var(--fm-text);
	background: var(--fm-bg);
	border: 1px solid var(--fm-line-2);
	border-radius: var(--fm-radius);
	transition: border-color .2s var(--fm-ease), background .2s var(--fm-ease);
}
.fm-form__field input:focus,
.fm-form__field select:focus,
.fm-form__field textarea:focus {
	outline: none;
	border-color: var(--fm-accent);
	background: var(--fm-bg-3);
}
.fm-form__note { font-size: 13px; color: var(--fm-text-dim); margin: 6px 0 0; }

@media (max-width: 900px) {
	.fm-quote__inner { grid-template-columns: 1fr; }
	.fm-form__row { grid-template-columns: 1fr; }
}

/* ---------- PROBLEMS ---------- */
.fm-problems {
	position: relative;
	overflow: hidden;
	padding: clamp(94px, 9vw, 120px) 0;
	background: var(--fm-section-dark);
}
.fm-problems::before {
	content: "";
	position: absolute;
	top: -180px; right: -160px;
	width: 620px; height: 620px;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(244,144,46,.18), rgba(244,144,46,0) 70%);
	filter: blur(110px);
	pointer-events: none;
	z-index: 0;
}
.fm-problems > * { position: relative; z-index: 1; }
.fm-problems__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 32px;
	opacity: 1 !important;
	transform: none !important;
}
.fm-problems__item {
	display: flex; align-items: flex-start; gap: 14px;
	padding: 18px 22px;
	background: linear-gradient(135deg, #ffc488 0%, #f4902e 50%, #ffc488 100%);
	border: 0;
	border-radius: var(--fm-radius);
	color: #1a0f04;
	font-size: 23px;
	line-height: 1.4;
	font-weight: 600;
	box-shadow:
		0 10px 28px -16px rgba(244,144,46,.55),
		inset 0 1px 0 rgba(255,255,255,.18),
		inset 30px 0 40px -30px rgba(0,0,0,.35),
		inset -30px 0 40px -30px rgba(0,0,0,.35);
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .55s var(--fm-ease), transform .55s var(--fm-ease), box-shadow .25s var(--fm-ease), transform .25s var(--fm-ease);
}
.fm-problems__item:hover {
	box-shadow:
		0 18px 38px -14px rgba(244,144,46,.75),
		inset 0 1px 0 rgba(255,255,255,.25),
		inset 36px 0 48px -32px rgba(0,0,0,.45),
		inset -36px 0 48px -32px rgba(0,0,0,.45);
}
.fm-problems__item svg { color: #1a0f04; }
.fm-problems__list.is-in .fm-problems__item { opacity: 1; transform: none; }
.fm-problems__list.is-in .fm-problems__item:nth-child(1)  { transition-delay:   40ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(2)  { transition-delay:  110ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(3)  { transition-delay:  180ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(4)  { transition-delay:  250ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(5)  { transition-delay:  320ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(6)  { transition-delay:  390ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(7)  { transition-delay:  460ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(8)  { transition-delay:  530ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(9)  { transition-delay:  600ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(10) { transition-delay:  670ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(11) { transition-delay:  740ms; }
.fm-problems__list.is-in .fm-problems__item:nth-child(12) { transition-delay:  810ms; }
.fm-problems__item svg { color: #1a0f04; flex-shrink: 0; margin-top: 2px; }
@media (max-width: 768px) {
	.fm-problems__list { grid-template-columns: 1fr; }
	.fm-problems__item {
		font-size: 17px;
		padding: 14px 18px;
		gap: 12px;
		box-shadow:
			0 8px 22px -14px rgba(244,144,46,.5),
			inset 0 1px 0 rgba(255,255,255,.18),
			inset 18px 0 26px -20px rgba(0,0,0,.35),
			inset -18px 0 26px -20px rgba(0,0,0,.35);
	}
	.fm-problems__item svg { width: 18px; height: 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.fm-problems__item { opacity: 1; transform: none; transition: none; }
}

/* ---------- REVIEWS ---------- */
.fm-reviews {
	padding: clamp(94px, 9vw, 120px) 0;
	background: linear-gradient(180deg,
		#f8ece0 0%,
		#ffffff 20%,
		#ffffff 100%);
}
.fm-reviews__badge {
	display: inline-flex; align-items: center; gap: 10px;
	margin-top: 12px;
	padding: 10px 16px;
	background: var(--fm-bg-3);
	border: 1px solid var(--fm-line);
	border-radius: var(--fm-radius);
	font-size: 15px;
}
.fm-reviews__stars { color: var(--fm-accent); letter-spacing: 2px; }
.fm-reviews__placeholder {
	padding: 32px;
	background: var(--fm-bg-3);
	border: 1px dashed var(--fm-line-2);
	border-radius: var(--fm-radius-lg);
	color: var(--fm-text-mute);
	text-align: center;
}

/* ---------- BRANDS ---------- */
.fm-brands { padding: clamp(94px, 9vw, 120px) 0; background: var(--fm-section-dark); }
/* Marquee strip — full-width, right-to-left infinite loop, paused on hover */
.fm-brands__marquee {
	position: relative;
	width: 100%;
	overflow: hidden;
	padding: 4px 0;
}
/* The marquee is a continuously-animating strip — never let the scroll-reveal
   observer leave it stuck at opacity:0 / mid-fade (notably on mobile, where the
   address-bar resize re-fires the observer). Keep it always visible. */
.fm-brands__marquee[data-fm-reveal] { opacity: 1; transform: none; transition: none; }
.fm-brands__fade {
	position: absolute;
	top: 0; bottom: 0;
	width: clamp(80px, 12vw, 180px);
	pointer-events: none;
	z-index: 3;
}
.fm-brands__fade--left {
	left: 0;
	background: linear-gradient(to right, var(--fm-bg) 0%, rgba(10,10,12,0) 100%);
}
.fm-brands__fade--right {
	right: 0;
	background: linear-gradient(to left, var(--fm-bg) 0%, rgba(10,10,12,0) 100%);
}
.fm-brands__grid {
	display: flex;
	flex-wrap: nowrap;
	gap: 16px;
	width: max-content;
	animation: fmMarquee 38s linear infinite;
}
.fm-brands__marquee:hover .fm-brands__grid { animation-play-state: paused; }
@keyframes fmMarquee {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.fm-brands__grid { animation: none; }
}
.fm-brands__item {
	flex: 0 0 180px;
	display: flex; align-items: center; justify-content: center;
	padding: 8px 20px;
	/* min-height: 60px; */
	background: #dddee1;
	border: 1px solid rgba(255,255,255,.08);
	border-radius: var(--fm-radius);
	box-shadow: 0 6px 18px -10px rgba(0,0,0,.6);
	transition: transform .25s var(--fm-ease), background .25s var(--fm-ease);
}
.fm-brands__item:hover {
	background: #ffffff;
	transform: translateY(-2px);
}
.fm-brands__logo {
	max-width: 100%; max-height: 50px; width: auto; height: auto; object-fit: contain;
	filter: none;
	mix-blend-mode: normal;
	opacity: 1;
	transition: transform .25s var(--fm-ease);
}
.fm-brands__item:hover .fm-brands__logo { transform: scale(1.04); }
@media (max-width: 700px) {
	.fm-brands__item { flex: 0 0 150px; padding: 16px 14px; min-height: 80px; }
	/* Narrower edge fades so more logos stay visible on small screens. */
	.fm-brands__fade { width: 40px; }
}
.fm-brands__textlogo {
	font-size: 16px; font-weight: 600; color: var(--fm-text-mute);
}

/* ---------- AREAS ---------- */
.fm-areas {
	position: relative;
	padding: clamp(94px, 9vw, 120px) 0;
	background: var(--fm-section-dark);
	overflow: hidden;
	isolation: isolate;
}
.fm-areas::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	transform: translateX(-50%);
	width: min(70%, 720px);
	height: 1px;
	background: linear-gradient(90deg,
		rgba(244,144,46,0) 0%,
		rgba(244,144,46,.10) 25%,
		rgba(244,144,46,.55) 50%,
		rgba(244,144,46,.10) 75%,
		rgba(244,144,46,0) 100%);
	pointer-events: none;
	z-index: 1;
}
.fm-areas > .fm-container { position: relative; z-index: 1; }
.fm-areas__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(16px, 2.5vw, 32px);
	align-items: stretch;
}
.fm-areas__grid-boxes {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
	gap: 12px;
}
.fm-areas__box { display: block; }
.fm-areas__box-link {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	min-height: 0;
	border-radius: 12px;
	color: #1a0f04;
	font-size: 14px; font-weight: 700;
	letter-spacing: -0.015em;
	text-decoration: none;
	overflow: hidden;
	isolation: isolate;
	background: linear-gradient(135deg, #ffc488 0%, #f4902e 50%, #ffc488 100%);
	border: 0;
	box-shadow:
		0 10px 28px -16px rgba(244,144,46,.55),
		inset 0 1px 0 rgba(255,255,255,.18),
		inset 30px 0 40px -30px rgba(0,0,0,.35),
		inset -30px 0 40px -30px rgba(0,0,0,.35);
	transition: transform .3s var(--fm-ease), box-shadow .3s var(--fm-ease);
}
.fm-areas__box-link::before,
.fm-areas__box-link::after { content: none; }
.fm-areas__box-link:hover {
	transform: translateY(-4px);
	box-shadow:
		0 18px 38px -14px rgba(244,144,46,.75),
		inset 0 1px 0 rgba(255,255,255,.25),
		inset 36px 0 48px -32px rgba(0,0,0,.45),
		inset -36px 0 48px -32px rgba(0,0,0,.45);
}
.fm-areas__box-pin {
	display: inline-flex; align-items: center; justify-content: center;
	width: 18px; height: 18px;
	background: transparent;
	color: #1a0f04;
	flex-shrink: 0;
	position: relative; z-index: 1;
	transition: transform .3s var(--fm-ease);
}
.fm-areas__box-pin svg { width: 14px; height: 14px; }
.fm-areas__box-link:hover .fm-areas__box-pin {
	transform: translateY(-1px);
}
.fm-areas__box-title {
	flex: 1;
	line-height: 1.2;
	position: relative;
	z-index: 1;
	color: #1a0f04;
}
.fm-areas__box-arrow {
	position: static;
	margin-left: auto;
	color: rgba(26,15,4,.55);
	transition: transform .3s var(--fm-ease);
	z-index: 1;
	flex-shrink: 0;
}
.fm-areas__box-arrow { width: 14px; height: 14px; }
.fm-areas__box-link:hover .fm-areas__box-arrow {
	transform: translateX(4px);
}
.fm-areas__map {
	border-radius: var(--fm-radius-lg);
	overflow: hidden;
	border: 1px solid var(--fm-line);
	background: var(--fm-bg-3);
	height: 100%;
	min-height: 480px;
	display: flex;
}
.fm-areas__map iframe { display: block; width: 100%; height: 100%; min-height: 480px; flex: 1; }
.fm-areas__map-placeholder {
	padding: 80px 24px; text-align: center;
	color: var(--fm-text-dim);
}
.fm-areas__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px 16px;
	max-height: 480px;
	overflow-y: auto;
	padding: 16px 12px 16px 16px;
	background: var(--fm-bg-3);
	border: 1px solid var(--fm-line);
	border-radius: var(--fm-radius-lg);
	/* Slightly stronger scrollbar contrast inside this panel */
	scrollbar-color: rgba(8,177,184, 0.5) rgba(255,255,255, 0.03);
}
.fm-areas__list::-webkit-scrollbar { width: 8px; }
.fm-areas__list::-webkit-scrollbar-track {
	background: rgba(255,255,255, 0.04);
	border-radius: 8px;
	margin: 8px 0;
}
.fm-areas__list::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, var(--fm-accent) 0%, rgba(8,177,184, 0.6) 100%);
	border-radius: 8px;
}
.fm-areas__list::-webkit-scrollbar-thumb:hover {
	background: linear-gradient(180deg, var(--fm-accent-2) 0%, var(--fm-accent) 100%);
}
.fm-areas__list a {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 8px;
	font-size: 15px; color: var(--fm-text-mute);
	border-radius: var(--fm-radius);
	transition: color .2s var(--fm-ease), background .2s var(--fm-ease);
}
.fm-areas__list a:hover { color: var(--fm-accent); background: var(--fm-bg-4); }
.fm-areas__list svg { color: var(--fm-accent); flex-shrink: 0; }

@media (max-width: 900px) {
	.fm-areas__grid { grid-template-columns: 1fr; }
	.fm-areas__list { max-height: none; }
	.fm-areas__map { min-height: 320px; }
	.fm-areas__map iframe { min-height: 320px; }
}
@media (max-width: 600px) {
	.fm-areas__map,
	.fm-areas__map iframe { min-height: 260px; }
	.fm-areas__grid-boxes { grid-template-columns: 1fr 1fr; gap: 8px; }
}
@media (max-width: 480px) {
	.fm-areas__list { grid-template-columns: 1fr; }
}
.fm-areas__more { display: none; }
@media (max-width: 768px) {
	.fm-areas__grid-boxes {
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}
	.fm-areas__grid-boxes:not(.is-expanded) .fm-areas__box--extra { display: none; }
	.fm-areas__more {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: fit-content;
		margin: 14px auto 0;
		padding: 10px 18px;
		background: transparent;
		border: 1px solid rgba(244,144,46,.55);
		border-radius: 999px;
		color: var(--fm-accent, #F4902E);
		font-size: 13px;
		font-weight: 600;
		letter-spacing: 0.02em;
		cursor: pointer;
		transition: background .2s var(--fm-ease);
	}
	.fm-areas__more svg { transition: transform .25s var(--fm-ease); }
	.fm-areas__more[aria-expanded="true"] svg { transform: rotate(180deg); }
	.fm-areas__more:hover { background: rgba(244,144,46,.1); }
	.fm-areas__box-link {
		padding: 10px 12px;
		font-size: 13px;
		gap: 8px;
		border-radius: 10px;
		box-shadow:
			0 8px 22px -14px rgba(244,144,46,.5),
			inset 0 1px 0 rgba(255,255,255,.18),
			inset 18px 0 26px -20px rgba(0,0,0,.35),
			inset -18px 0 26px -20px rgba(0,0,0,.35);
	}
	.fm-areas__box-pin { width: 14px; height: 14px; }
	.fm-areas__box-pin svg { width: 12px; height: 12px; }
	.fm-areas__box-arrow { width: 12px; height: 12px; }
}

/* ---------- SEO CONTENT ---------- */
.fm-seo { padding: clamp(94px, 9vw, 120px) 0; }
.fm-seo__inner { max-width: 980px; margin: 0 auto; }

/* Collapsible long-form SEO copy */
.fm-seo { position: relative; }
.fm-seo__body { position: relative; }
.fm-seo__body--collapsed {
	max-height: 360px;
	overflow: hidden;
}
/* Old inline fade — now hidden in favor of full-width section fade. */
.fm-seo__fade { display: none; }
/* Full-width fade that extends to the section edges + down to its bottom. */
.fm-seo__edge-fade {
	display: none;
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 380px;
	background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.85) 55%, #ffffff 100%);
	pointer-events: none;
	z-index: 2;
}
.fm-seo:has(.fm-seo__body--collapsed) .fm-seo__edge-fade { display: block; }
/* Toggle button must remain interactive above the fade. */
.fm-seo__toggle-wrap { position: relative; z-index: 3; }
.fm-seo__toggle-wrap {
	display: flex; justify-content: center;
	margin-top: 24px;
}
.fm-seo__toggle {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 12px 22px;
	font-family: inherit;
	font-size: 14px; font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--fm-accent, #F4902E);
	background: rgba(244,144,46,.08);
	border: 1px solid rgba(244,144,46,.32);
	border-radius: 999px;
	cursor: pointer;
	transition: background .25s var(--fm-ease), color .25s var(--fm-ease), border-color .25s var(--fm-ease);
}
.fm-seo__toggle:hover {
	background: var(--fm-accent, #F4902E);
	color: #1a0d00;
	border-color: var(--fm-accent, #F4902E);
}
.fm-seo__toggle svg { transition: transform .3s var(--fm-ease); }
.fm-seo__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.fm-seo .fm-section-head { text-align: center; margin: 0 auto 36px; }
.fm-seo .fm-section-head .fm-eyebrow { justify-content: center; }
.fm-seo .fm-h2 { font-size: clamp(28px, 4vw, 44px); }

.fm-seo__details {
	background: transparent;
	border: none;
	border-radius: 0;
}
.fm-seo__summary {
	list-style: none;
	display: inline-flex; align-items: center; gap: 10px;
	margin: 0 auto 24px;
	padding: 10px 18px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
	color: var(--fm-accent);
	background: transparent;
	border: 1px solid var(--fm-line-2);
	border-radius: 999px;
	cursor: pointer;
	user-select: none;
	transition: background .2s var(--fm-ease), border-color .2s var(--fm-ease);
}
.fm-seo__summary:hover { background: rgba(8,177,184, .08); border-color: var(--fm-accent); }
.fm-seo__summary::-webkit-details-marker { display: none; }
.fm-seo__summary svg { transition: transform .25s var(--fm-ease); }
.fm-seo__details[open] .fm-seo__summary svg { transform: rotate(180deg); }

.fm-seo__body {
	display: flex;
	flex-direction: column;
	gap: 56px;
	padding: 32px 0 0;
	border-top: 1px solid var(--fm-line);
	margin-top: 16px;
}

.fm-seo__block {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
}
.fm-seo__heading {
	display: flex; align-items: baseline; gap: 14px;
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 700;
	letter-spacing: -0.015em;
	color: var(--fm-text);
	margin: 0;
}
.fm-seo__index {
	flex-shrink: 0;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 14px;
	font-weight: 600;
	color: var(--fm-accent);
	background: rgba(8,177,184, .12);
	padding: 4px 10px;
	border-radius: 4px;
	letter-spacing: 0.04em;
}
.fm-seo__prose {
	color: var(--fm-text-mute);
	font-size: 17px;
	line-height: 1.7;
	max-width: 75ch;
}
.fm-seo__prose > * + * { margin-top: 14px; }
.fm-seo__prose p { margin: 0; }
.fm-seo__prose strong { color: var(--fm-text); font-weight: 600; }
.fm-seo__prose ul, .fm-seo__prose ol {
	padding-left: 0;
	margin: 0;
	display: flex; flex-direction: column;
	gap: 10px;
}
.fm-seo__prose ul li, .fm-seo__prose ol li {
	position: relative;
	padding-left: 28px;
	list-style: none;
}
.fm-seo__prose ul li::before {
	content: '';
	position: absolute;
	left: 4px; top: 0.7em;
	width: 12px; height: 2px;
	background: var(--fm-accent);
}
.fm-seo__prose ol {
	counter-reset: seo-li;
}
.fm-seo__prose ol li {
	counter-increment: seo-li;
}
.fm-seo__prose ol li::before {
	content: counter(seo-li, decimal-leading-zero);
	position: absolute;
	left: 0; top: 0;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 13px; font-weight: 700;
	color: var(--fm-accent);
}

/* ---------- FAQ ---------- */
.fm-faq {
	padding: clamp(94px, 9vw, 120px) 0;
	background: linear-gradient(180deg, #fbf3ea 0%, #f8ece0 100%);
}
.fm-faq__list {
	display: flex; flex-direction: column; gap: 12px;
	max-width: 920px; margin: 0 auto;
	list-style: none; padding: 0;
}
/* Desktop: two independent columns (multi-column, not grid) so a longer
   answer never stretches or misaligns the item beside it. */
@media (min-width: 768px) {
	.fm-faq__list {
		display: block; gap: 0;
		max-width: 980px;
		column-count: 2; column-gap: 14px;
	}
	.fm-faq__item {
		break-inside: avoid; -webkit-column-break-inside: avoid;
		/* margin-bottom: 14px; */
	}
}
.fm-faq__details {
	position: relative;
	background: #ffffff;
	border: 1px solid rgba(166,80,20,.10);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(166,80,20,.06);
	transition: border-color .35s var(--fm-ease), box-shadow .35s var(--fm-ease), background .35s var(--fm-ease), transform .35s var(--fm-ease);
}
/* Subtle warm-cream wash that appears on hover/open. */
.fm-faq__details::before {
	content: "";
	position: absolute; inset: 0;
	border-radius: inherit;
	background: linear-gradient(135deg, rgba(244,144,46,.06) 0%, rgba(244,144,46,0) 60%);
	opacity: 0;
	transition: opacity .35s var(--fm-ease);
	pointer-events: none;
	z-index: 0;
}
.fm-faq__details:hover {
	border-color: rgba(166,80,20,.30);
	box-shadow: 0 18px 40px -22px rgba(166,80,20,.32);
	transform: translateY(-2px);
}
.fm-faq__details:hover::before { opacity: 1; }
.fm-faq__details[open] {
	background: #ffffff;
	border-color: rgba(166,80,20,.40);
	box-shadow: 0 22px 50px -22px rgba(166,80,20,.38);
}
.fm-faq__details[open]::before { opacity: 1; }

.fm-faq__q {
	position: relative;
	z-index: 1;
	list-style: none;
	display: flex; align-items: center; justify-content: space-between; gap: 20px;
	padding: 24px 26px;
	font-size: 18px; font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.35;
	color: #2a1a0d;
	cursor: pointer;
	transition: color .25s var(--fm-ease);
}
.fm-faq__details:hover .fm-faq__q,
.fm-faq__details[open] .fm-faq__q { color: #1a0d00; }
.fm-faq__q::-webkit-details-marker { display: none; }
.fm-faq__q > span { flex: 1; }

/* Outlined plus chip that morphs to a filled X on open. */
.fm-faq__q svg {
	flex-shrink: 0;
	width: 40px; height: 40px;
	padding: 11px;
	color: var(--fm-accent, #F4902E);
	background: transparent;
	border: 1.5px solid rgba(244,144,46,.30);
	border-radius: 50%;
	box-sizing: border-box;
	transition: transform .4s var(--fm-ease), background .3s var(--fm-ease), color .3s var(--fm-ease), border-color .3s var(--fm-ease);
}
.fm-faq__details:hover .fm-faq__q svg {
	background: rgba(244,144,46,.10);
	border-color: rgba(244,144,46,.55);
}
.fm-faq__details[open] .fm-faq__q svg {
	transform: rotate(135deg);
	background: var(--fm-accent, #F4902E);
	color: #1a0d00;
	border-color: var(--fm-accent, #F4902E);
}
.fm-faq__a {
	position: relative; z-index: 1;
	padding: 0 26px 26px;
	color: var(--fm-text-mute, #5b6171);
	font-size: 16px;
	line-height: 1.7;
}
/* Thin gradient separator between question and answer */
.fm-faq__a::before {
	content: "";
	display: block;
	height: 1px;
	margin: 0 0 18px;
	background: linear-gradient(90deg, rgba(244,144,46,.35), rgba(244,144,46,0));
}
.fm-faq__a p:first-of-type { margin-top: 0; }
.fm-faq__a p:last-child { margin-bottom: 0; }

/* ---------- FINAL CTA ---------- */
.fm-final {
	--fm-final-bg: url('../img/cta-bg.png');
	padding: clamp(94px, 9vw, 120px) 0;
	background: var(--fm-bg);
	border-top: 1px solid var(--fm-line);
	text-align: center;
	position: relative;
	overflow: hidden;
}
.fm-final::before {
	content: ''; position: absolute; inset: 0;
	background: var(--fm-final-bg) center / cover no-repeat;
	opacity: .55;
}
.fm-final::after {
	content: ''; position: absolute; inset: 0;
	background:
		radial-gradient(70% 80% at 50% 50%, rgba(10,8,6,.25) 0%, rgba(10,8,6,.78) 100%),
		linear-gradient(180deg, rgba(10,8,6,.45) 0%, rgba(10,8,6,.65) 100%);
	pointer-events: none;
}
.fm-final__inner { position: relative; z-index: 1; max-width: 760px; margin: 0 auto; }
.fm-final__heading {
	font-size: clamp(32px, 5.5vw, 56px);
	letter-spacing: -0.02em;
	margin: 0 0 18px;
}
.fm-final__body {
	font-size: 19px; color: var(--fm-text-mute);
	margin: 0 0 32px;
}
.fm-final__cta {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 12px;
}

/* Variant 2 — split layout: image on the left, content on the right, accent-tinted card */
.fm-final--v2 {
	padding: clamp(80px, 8vw, 110px) 0;
	background: linear-gradient(180deg, #1f1814 0%, #14100c 100%);
	border-top: 0;
	text-align: left;
}
.fm-final--v2::before,
.fm-final--v2::after { content: none; }
.fm-final--v2 .fm-final__inner {
	max-width: 1100px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
	padding: clamp(28px, 4vw, 48px);
	border-radius: 24px;
	background:
		radial-gradient(120% 80% at 100% 0%, rgba(244,144,46,.18) 0%, transparent 55%),
		linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.02) 100%);
	border: 1px solid rgba(244,144,46,.25);
	box-shadow: 0 30px 60px -28px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.06);
}
.fm-final--v2 .fm-final__media {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 18px;
	overflow: hidden;
	background: var(--fm-final-bg) center / cover no-repeat;
	box-shadow: 0 22px 50px -20px rgba(0,0,0,.5);
}
.fm-final--v2 .fm-final__media::after {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(10,8,6,.05) 0%, rgba(10,8,6,.35) 100%);
}
.fm-final--v2 .fm-final__body-wrap {
	display: flex; flex-direction: column; align-items: flex-start; gap: 18px;
}
.fm-final--v2 .fm-final__eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--fm-accent, #F4902E);
	font-size: 12px; font-weight: 700;
	letter-spacing: 0.18em; text-transform: uppercase;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	margin: 0;
}
.fm-final--v2 .fm-final__eyebrow::before {
	content: '';
	width: 6px; height: 6px; border-radius: 50%;
	background: var(--fm-accent, #F4902E);
}
.fm-final--v2 .fm-final__heading {
	font-size: clamp(28px, 4vw, 44px);
	line-height: 1.1;
	margin: 0;
}
.fm-final--v2 .fm-final__body {
	font-size: 16px; line-height: 1.6;
	margin: 0;
	color: rgba(244,245,247,.78);
}
.fm-final--v2 .fm-final__cta { justify-content: flex-start; }
@media (max-width: 768px) {
	.fm-final.fm-final--v2 {
		padding-left: 16px;
		padding-right: 16px;
	}
	.fm-final--v2 .fm-final__inner {
		grid-template-columns: 1fr;
	}
	.fm-final--v2 .fm-final__media { aspect-ratio: 16 / 10; }
	.fm-final--v2 .fm-final__cta { width: 100%; }
	.fm-final--v2 .fm-final__cta .fm-btn { flex: 1 1 100%; }
}

/* ---------- FOOTER ---------- */
.fm-footer {
	background: var(--fm-bg-2);
	border-top: 1px solid var(--fm-line);
	padding: clamp(40px, 6vw, 64px) 0 0;
	margin-bottom: 0;
}
.fm-footer__inner {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 40px;
}
.fm-footer__logo { display: flex; align-items: center; line-height: 0; }
.fm-footer__logo .custom-logo-link,
.fm-footer__logo a { display: inline-flex; align-items: center; line-height: 0; }
.fm-footer__logo img,
.fm-footer__logo .custom-logo { display: block; height: 56px; width: auto; max-width: none; margin: 0; }
.fm-footer__tag { color: var(--fm-text-mute); margin: 16px 0 0; max-width: 360px; }
.fm-footer h4 {
	font-size: 13px; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase;
	color: var(--fm-text-dim);
	margin: 0 0 16px;
}
.fm-footer__nav li { margin-bottom: 8px; }
.fm-footer__nav a, .fm-footer__contact a {
	color: var(--fm-text-mute); font-size: 16px;
	transition: color .2s var(--fm-ease);
}
.fm-footer__nav a:hover, .fm-footer__contact a:hover { color: var(--fm-accent); }
.fm-footer__contact p { margin: 0 0 8px; }
.fm-footer__social {
	list-style: none;
	margin: 14px 0 0;
	padding: 0;
	display: flex;
	gap: 10px;
}
.fm-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255,255,255,.06);
	border: 1px solid rgba(255,255,255,.12);
	color: #f4f5f7;
	transition: background .2s var(--fm-ease), color .2s var(--fm-ease), border-color .2s var(--fm-ease), transform .2s var(--fm-ease);
}
.fm-footer__social a:hover {
	background: var(--fm-accent, #F4902E);
	color: #1a0f04;
	border-color: var(--fm-accent, #F4902E);
	transform: translateY(-2px);
}
.fm-footer__bottom {
	border-top: 1px solid var(--fm-line);
	padding: 18px 0;
	color: var(--fm-text-dim);
	font-size: 14px;
}
.fm-footer__bottom-inner {
	display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px;
}
.fm-footer__bottom a { color: var(--fm-text-mute); }
.fm-footer__bottom a:hover { color: var(--fm-accent); }
@media (max-width: 768px) {
	.fm-footer__inner { grid-template-columns: 1fr; gap: 32px; }
	.fm-footer__bottom-inner { justify-content: center; text-align: center; }
}

/* ---------- REVEAL ANIMATION ---------- */
[data-fm-reveal] {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .7s var(--fm-ease), transform .7s var(--fm-ease);
	transition-delay: calc(var(--fm-reveal-delay, 0) * 1ms);
}
[data-fm-reveal].is-in {
	opacity: 1;
	transform: none;
}

/* Hero sequenced reveal: eyebrow → H1 → subhead → USPs → CTA */
.fm-hero__content[data-fm-reveal] { opacity: 1; transform: none; }
.fm-hero__content .fm-eyebrow,
.fm-hero__content .fm-hero__heading,
.fm-hero__content .fm-hero__subheading,
.fm-hero__content .fm-hero__usps li,
.fm-hero__content .fm-hero__cta {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .7s var(--fm-ease), transform .7s var(--fm-ease);
}
.fm-hero__content .fm-eyebrow         { transition-delay:    0ms; }
.fm-hero__content .fm-hero__heading   { transition-delay:  150ms; }
.fm-hero__content .fm-hero__subheading{ transition-delay:  400ms; }
.fm-hero__content .fm-hero__usps li:nth-child(1) { transition-delay: 600ms; }
.fm-hero__content .fm-hero__usps li:nth-child(2) { transition-delay: 700ms; }
.fm-hero__content .fm-hero__usps li:nth-child(3) { transition-delay: 800ms; }
.fm-hero__content .fm-hero__cta       { transition-delay: 1000ms; }
.fm-hero__content.is-in .fm-eyebrow,
.fm-hero__content.is-in .fm-hero__heading,
.fm-hero__content.is-in .fm-hero__subheading,
.fm-hero__content.is-in .fm-hero__usps li,
.fm-hero__content.is-in .fm-hero__cta {
	opacity: 1; transform: none;
}
@media (prefers-reduced-motion: reduce) {
	.fm-hero__content .fm-eyebrow,
	.fm-hero__content .fm-hero__heading,
	.fm-hero__content .fm-hero__subheading,
	.fm-hero__content .fm-hero__usps li,
	.fm-hero__content .fm-hero__cta { opacity: 1; transform: none; transition: none; }
}

/* Service-page hero sequenced reveal: eyebrow → heading → subheading → CTA */
.fm-cat-hero__inner[data-fm-reveal] { opacity: 1; transform: none; }
.fm-cat-hero__inner .fm-eyebrow,
.fm-cat-hero__inner .fm-hero__heading,
.fm-cat-hero__inner .fm-hero__subheading,
.fm-cat-hero__inner .fm-hero__cta {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .7s var(--fm-ease), transform .7s var(--fm-ease);
}
.fm-cat-hero__inner .fm-eyebrow          { transition-delay:   0ms; }
.fm-cat-hero__inner .fm-hero__heading    { transition-delay: 150ms; }
.fm-cat-hero__inner .fm-hero__subheading { transition-delay: 400ms; }
.fm-cat-hero__inner .fm-hero__cta        { transition-delay: 650ms; }
.fm-cat-hero__inner.is-in .fm-eyebrow,
.fm-cat-hero__inner.is-in .fm-hero__heading,
.fm-cat-hero__inner.is-in .fm-hero__subheading,
.fm-cat-hero__inner.is-in .fm-hero__cta {
	opacity: 1;
	transform: none;
	color: white;
	font-weight: 800;
}
@media (prefers-reduced-motion: reduce) {
	.fm-cat-hero__inner .fm-eyebrow,
	.fm-cat-hero__inner .fm-hero__heading,
	.fm-cat-hero__inner .fm-hero__subheading,
	.fm-cat-hero__inner .fm-hero__cta { opacity: 1; transform: none; transition: none; }
}

/* Sequenced reveal for any section title wrapper: eyebrow → title → subtitle/lead */
.fm-section-head,
.fm-why__head,
.fm-quote__content { isolation: isolate; }

.fm-section-head .fm-eyebrow,
.fm-section-head > h1, .fm-section-head > h2, .fm-section-head > h3,
.fm-section-head .fm-h2, .fm-section-head .fm-h1,
.fm-section-head__sub,
.fm-why__head .fm-eyebrow,
.fm-why__head > h1, .fm-why__head > h2, .fm-why__head .fm-h2,
.fm-why__lead,
.fm-quote__content .fm-eyebrow,
.fm-quote__content > h2, .fm-quote__content .fm-h2,
.fm-quote__text {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .7s var(--fm-ease), transform .7s var(--fm-ease);
}

.fm-section-head .fm-eyebrow,
.fm-why__head .fm-eyebrow,
.fm-quote__content .fm-eyebrow                   { transition-delay: 0ms; }

.fm-section-head > h1, .fm-section-head > h2, .fm-section-head > h3,
.fm-section-head .fm-h2, .fm-section-head .fm-h1,
.fm-why__head > h1, .fm-why__head > h2, .fm-why__head .fm-h2,
.fm-quote__content > h2, .fm-quote__content .fm-h2 { transition-delay: 200ms; }

.fm-section-head__sub,
.fm-why__lead,
.fm-quote__text                                   { transition-delay: 500ms; }

.fm-section-head.is-in .fm-eyebrow,
.fm-section-head.is-in > h1, .fm-section-head.is-in > h2, .fm-section-head.is-in > h3,
.fm-section-head.is-in .fm-h2, .fm-section-head.is-in .fm-h1,
.fm-section-head.is-in .fm-section-head__sub,
.fm-why__head.is-in .fm-eyebrow,
.fm-why__head.is-in > h1, .fm-why__head.is-in > h2, .fm-why__head.is-in .fm-h2,
.fm-why__head.is-in .fm-why__lead,
.fm-quote__content.is-in .fm-eyebrow,
.fm-quote__content.is-in > h2, .fm-quote__content.is-in .fm-h2,
.fm-quote__content.is-in .fm-quote__text {
	opacity: 1;
	transform: none;
}
/* Wrappers themselves shouldn't fade as a single block — only their children */
.fm-section-head[data-fm-reveal],
.fm-why__head[data-fm-reveal],
.fm-quote__content[data-fm-reveal] {
	opacity: 1;
	transform: none;
}

/* Service-cards & why-cards stagger reveal */
.fm-services__grid .fm-service-card,
.fm-why__track .fm-why-card {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .6s var(--fm-ease), transform .6s var(--fm-ease);
}
.fm-services__grid.is-in .fm-service-card,
.fm-why__track.is-in .fm-why-card { opacity: 1; transform: none; }
.fm-why__track.is-in .fm-why-card:nth-child(1)  { transition-delay:   60ms; }
.fm-why__track.is-in .fm-why-card:nth-child(2)  { transition-delay:  140ms; }
.fm-why__track.is-in .fm-why-card:nth-child(3)  { transition-delay:  220ms; }
.fm-why__track.is-in .fm-why-card:nth-child(4)  { transition-delay:  300ms; }
.fm-why__track.is-in .fm-why-card:nth-child(5)  { transition-delay:  380ms; }
.fm-why__track.is-in .fm-why-card:nth-child(6)  { transition-delay:  460ms; }
.fm-why__track.is-in .fm-why-card:nth-child(7)  { transition-delay:  540ms; }
.fm-why__track.is-in .fm-why-card:nth-child(8)  { transition-delay:  620ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(1)  { transition-delay:   60ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(2)  { transition-delay:  140ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(3)  { transition-delay:  220ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(4)  { transition-delay:  300ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(5)  { transition-delay:  380ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(6)  { transition-delay:  460ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(7)  { transition-delay:  540ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(8)  { transition-delay:  620ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(9)  { transition-delay:  700ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(10) { transition-delay:  780ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(11) { transition-delay:  860ms; }
.fm-services__grid.is-in .fm-service-card:nth-child(12) { transition-delay:  940ms; }

@media (prefers-reduced-motion: reduce) {
	[data-fm-reveal] { opacity: 1; transform: none; transition: none; }
	.fm-section-head *, .fm-why__head *, .fm-quote__content *,
	.fm-services__grid .fm-service-card { opacity: 1; transform: none; transition: none; }
	html { scroll-behavior: auto; }
}

/* ---------- Floating FAB stack (Book + Call) ---------- */
.fm-fab-stack {
	position: fixed;
	right: clamp(16px, 3vw, 28px);
	bottom: clamp(16px, 3vw, 28px);
	z-index: 60;
	display: flex; flex-direction: column; gap: 14px;
	opacity: 0;
	transform: translateY(20px) scale(.92);
	pointer-events: none;
	transition: opacity .35s var(--fm-ease), transform .45s var(--fm-ease);
}
.fm-fab-stack.is-visible {
	opacity: 1;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}
.fm-fab {
	position: relative;
	display: inline-flex; align-items: center; justify-content: center;
	width: 60px; height: 60px;
	border-radius: 50%;
	text-decoration: none;
	transition: transform .25s var(--fm-ease), box-shadow .25s var(--fm-ease);
}
.fm-fab--book {
	background: #ffffff;
	color: #1a0d00;
	border: 2px solid #1a0d00;
	box-shadow: 0 14px 30px -12px rgba(0,0,0,.4),
	            0 4px 10px -6px rgba(0,0,0,.3);
}
.fm-fab--call {
	background: var(--fm-accent);
	color: #1a0d00;
	box-shadow: 0 18px 40px -14px rgba(var(--fm-accent-rgb, 8,177,184), .65),
	            0 6px 16px -8px rgba(0,0,0,.4);
}
.fm-fab:hover { transform: translateY(-2px) scale(1.05); }
.fm-fab--book:hover {
	background: var(--fm-accent);
	color: #1a0d00;
	box-shadow: 0 20px 40px -14px rgba(var(--fm-accent-rgb, 8,177,184), .55);
}
.fm-fab__icon {
	display: inline-flex; align-items: center; justify-content: center;
	transition: transform .3s var(--fm-ease);
}
.fm-fab--call:hover .fm-fab__icon { transform: rotate(-12deg) scale(1.1); }
.fm-fab--book:hover .fm-fab__icon { transform: translateY(-1px); }
.fm-fab__tip {
	position: absolute;
	right: calc(100% + 12px);
	top: 50%;
	transform: translateY(-50%) translateX(6px);
	background: var(--fm-section-dark);
	color: #fff;
	font-size: 12px; font-weight: 600;
	letter-spacing: 0.04em;
	padding: 6px 10px;
	border-radius: 6px;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity .2s var(--fm-ease), transform .2s var(--fm-ease);
}
.fm-fab__tip::after {
	content: '';
	position: absolute;
	right: -4px; top: 50%;
	width: 8px; height: 8px;
	margin-top: -4px;
	background: var(--fm-section-dark);
	transform: rotate(45deg);
}
.fm-fab:hover .fm-fab__tip {
	opacity: 1;
	transform: translateY(-50%) translateX(0);
}
.fm-fab__pulse {
	position: absolute; inset: 0;
	border-radius: 50%;
	border: 2px solid var(--fm-accent);
	pointer-events: none;
	animation: fmFabPulse 2s var(--fm-ease) infinite;
}
@keyframes fmFabPulse {
	0%   { transform: scale(1);   opacity: .7; }
	100% { transform: scale(1.8); opacity: 0;  }
}
@media (max-width: 480px) {
	.fm-fab { width: 54px; height: 54px; }
}
@media (prefers-reduced-motion: reduce) {
	.fm-fab__pulse { animation: none; }
	.fm-fab-stack { transition: opacity .2s ease; transform: none !important; }
}

/* ---------- Custom logo defaults (overridden in header/footer scopes) ---------- */
.custom-logo-link { display: inline-block; line-height: 0; }

/* ---------- SERVICE CATEGORY PAGE ---------- */
.fm-cat-hero {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: center;
	padding: clamp(120px, 16vw, 200px) 0 clamp(60px, 8vw, 100px);
	background: linear-gradient(180deg, #0a0b0e 0%, #14161b 100%);
	overflow: hidden;
	isolation: isolate;
}
.fm-cat-hero > .fm-container { width: 100%; }
.fm-cat-hero__bg {
	position: absolute; inset: 0; z-index: -2;
	background:
		radial-gradient(60% 50% at 80% 20%, rgba(244,144,46,.18) 0%, transparent 60%),
		radial-gradient(50% 60% at 10% 90%, rgba(244,144,46,.08) 0%, transparent 60%);
}
.fm-cat-hero__overlay { display: none; }
.fm-cat-hero--photo .fm-cat-hero__bg {
	background: var(--fm-cat-hero-bg) center / cover no-repeat;
}
.fm-cat-hero--photo .fm-cat-hero__overlay {
	display: block;
	position: absolute; inset: 0; z-index: -1;
	background: rgba(10, 11, 14, .3);
}
/* All photo heroes share the same overlay as the /contact page (the base
   .fm-cat-hero--photo rule above) for a consistent look site-wide. */
.fm-cat-hero__inner {
	max-width: 880px;
	text-align: center;
}
.fm-cat-hero__inner .fm-eyebrow { justify-content: center; }
.fm-cat-hero__inner .fm-hero__heading {
	font-size: clamp(38px, 6vw, 72px);
	margin: 8px 0 18px;
}
.fm-cat-hero__inner .fm-hero__subheading {
	max-width: 520px;
	margin: 0 auto 28px;
	color: rgba(244,245,247,.78);
	font-size: clamp(16px, 1.6vw, 19px);
	line-height: 1.55;
}
.fm-cat-hero__inner .fm-hero__cta {
	display: flex; flex-wrap: wrap; gap: 14px; justify-content: center;
}
/* Single service pages: left-aligned and pushed further toward the left edge. */
.single-fm_service .fm-cat-hero__inner {
	/* Same centered 1280px container as the sections below, so the left-aligned
	   text starts at the exact same left edge as their titles. */
	max-width: var(--fm-container);
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	margin-top: 80px;
}

/* Service pages: the cities / brands / "Best Services" sections stack together,
   so give them ONE flat dark background instead of the per-section gradient
   (which resets and bands at every seam). A subtle inset top line separates them. */
.single-fm_service .fm-areas,
.single-fm_service .fm-brands,
.single-fm_service .fm-services,
.tax-fm_service_cat .fm-areas,
.tax-fm_service_cat .fm-brands,
.tax-fm_service_cat .fm-services {
	background: #17120d;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
}
.single-fm_service .fm-cat-hero__inner .fm-eyebrow { justify-content: flex-start; }
.single-fm_service .fm-cat-hero__inner .fm-hero__heading { max-width: 760px; }
.single-fm_service .fm-cat-hero__inner .fm-hero__subheading { margin-left: 0; margin-right: 0; }
.single-fm_service .fm-cat-hero__inner .fm-hero__cta { justify-content: flex-start; }

.fm-cat-about {
	padding: clamp(80px, 10vw, 120px) 0;
	background: #fff;
	color: #1a0f04;
}
.fm-cat-about__inner {
	/* Match the standard .fm-container width/behaviour (it already carries the
	   .fm-container class) instead of the old narrow 820px reading column. */
	max-width: var(--fm-container);
	text-align: left;
}
.fm-cat-about__inner .fm-eyebrow { justify-content: center; color: var(--fm-accent, #F4902E); }
.fm-cat-about__inner .fm-h2 { color: #1a0f04; margin: 8px 0 24px; }
.fm-cat-about__body p {
	margin: 0 0 16px;
	font-size: 16px; line-height: 1.65;
	color: #3a2d20;
}
.fm-cat-about__inner .fm-btn { margin-top: 14px; }

/* About hero: hide the CTA buttons on mobile. */
@media (max-width: 768px) {
	.fm-cat-hero--about .fm-hero__cta { display: none; }
}

/* Brand / location pages — services grid, area chips */
.fm-loc-svcs { padding: clamp(64px, 8vw, 100px) 0; }
.fm-loc-areas { padding: clamp(56px, 7vw, 90px) 0; background: var(--fm-bg-2, #121317); }
.fm-loc-svcs__grid {
	list-style: none; margin: clamp(28px, 4vw, 44px) 0 0; padding: 0;
	display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px;
}
.fm-loc-svc {
	display: flex; align-items: center; gap: 14px;
	padding: 16px 18px; border-radius: 16px;
	background: var(--fm-bg-2, #15161b); border: 1px solid var(--fm-line);
	color: var(--fm-text); text-decoration: none;
	transition: transform .25s var(--fm-ease), border-color .25s var(--fm-ease), box-shadow .25s var(--fm-ease);
}
.fm-loc-svc:hover { transform: translateY(-3px); border-color: rgba(244,144,46,.4); box-shadow: 0 18px 40px -24px rgba(0,0,0,.6); }
.fm-loc-svc__img { width: 52px; height: 52px; object-fit: contain; flex: 0 0 auto; }
.fm-loc-svc__title { flex: 1; font-size: 16px; font-weight: 600; }
.fm-loc-svc__arrow { color: var(--fm-accent, #F4902E); display: inline-flex; transition: transform .25s var(--fm-ease); }
.fm-loc-svc:hover .fm-loc-svc__arrow { transform: translateX(3px); }
.fm-loc-chips { list-style: none; margin: clamp(24px, 3vw, 36px) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.fm-loc-chips a {
	display: inline-flex; align-items: center;
	padding: 9px 16px; border-radius: 999px;
	background: var(--fm-bg, #0f0f12); border: 1px solid var(--fm-line);
	color: rgba(244,245,247,.82); text-decoration: none;
	font-size: 14px; font-weight: 600;
	transition: border-color .2s var(--fm-ease), color .2s var(--fm-ease), background .2s var(--fm-ease);
}
.fm-loc-chips a:hover { border-color: rgba(244,144,46,.5); color: var(--fm-text); }
.fm-loc-chips a[aria-current="page"] { background: var(--fm-accent, #F4902E); color: #1a0f04; border-color: var(--fm-accent, #F4902E); }

/* Contact page — contact-detail cards */
.fm-contact-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
	margin-top: clamp(32px, 4vw, 48px);
}
.fm-contact-card {
	position: relative; display: flex; flex-direction: column; align-items: flex-start;
	padding: 34px 30px; border-radius: 20px; overflow: hidden;
	background: var(--fm-bg-2, #15161b); border: 1px solid var(--fm-line);
	color: var(--fm-text); text-decoration: none;
	transition: transform .25s var(--fm-ease), border-color .25s var(--fm-ease), box-shadow .25s var(--fm-ease);
}
a.fm-contact-card:hover { transform: translateY(-4px); border-color: rgba(244,144,46,.4); box-shadow: 0 22px 50px -24px rgba(0,0,0,.6); }
.fm-contact-card__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 56px; height: 56px; border-radius: 16px;
	background: linear-gradient(135deg, var(--fm-accent, #F4902E), var(--fm-accent-2, #ffae5c));
	color: #1a0f04; margin-bottom: 20px;
	box-shadow: 0 12px 22px -10px rgba(244,144,46,.55);
}
.fm-contact-card__label { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--fm-accent, #F4902E); margin-bottom: 8px; }
.fm-contact-card__value { font-size: clamp(18px, 2vw, 22px); font-weight: 700; line-height: 1.3; color: var(--fm-text); word-break: break-word; }
.fm-contact-card__note { margin-top: 6px; font-size: 14px; color: rgba(244,245,247,.6); }
.fm-contact-card__arrow { position: absolute; top: 30px; right: 28px; display: inline-flex; color: rgba(244,245,247,.32); transition: color .25s var(--fm-ease), transform .25s var(--fm-ease); }
a.fm-contact-card:hover .fm-contact-card__arrow { color: var(--fm-accent, #F4902E); transform: translateX(3px); }
@media (max-width: 860px) { .fm-contact-grid { grid-template-columns: 1fr; } }

/* Reviews CTA — dark on-brand card; orange used only as an accent */
.fm-cta-v2 { padding: clamp(56px, 8vw, 100px) 0; }
.fm-cta-v2__card {
	position: relative; overflow: hidden;
	max-width: 980px; margin: 0 auto;
	padding: clamp(44px, 6vw, 80px) clamp(24px, 5vw, 64px);
	border-radius: 28px; text-align: center;
	border: 1px solid transparent;
	/* Subtle accent gradient border over a dark fill. */
	background:
		linear-gradient(160deg, #211a15 0%, #14100c 100%) padding-box,
		linear-gradient(140deg, rgba(244,144,46,.55) 0%, rgba(244,144,46,.04) 50%, rgba(244,144,46,.38) 100%) border-box;
	box-shadow: 0 34px 70px -36px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.05);
}
.fm-cta-v2__glow {
	position: absolute; top: -40%; right: -8%;
	width: 380px; height: 380px; border-radius: 50%;
	background: radial-gradient(circle, rgba(244,144,46,.22), transparent 68%);
	pointer-events: none;
}
.fm-cta-v2__glow--2 {
	top: auto; right: auto; bottom: -38%; left: -10%;
	width: 320px; height: 320px;
	background: radial-gradient(circle, rgba(244,144,46,.12), transparent 70%);
}
.fm-cta-v2__badge {
	position: relative; display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 16px; border-radius: 999px;
	background: rgba(244,144,46,.10); border: 1px solid rgba(244,144,46,.28);
	font-size: 14px; font-weight: 600; color: rgba(244,245,247,.85);
	margin-bottom: 18px;
}
.fm-cta-v2__badge strong { color: var(--fm-text, #f4f5f7); }
.fm-cta-v2__stars { color: var(--fm-accent, #F4902E); font-size: 15px; letter-spacing: 2px; }
.fm-cta-v2__heading { position: relative; margin: 0 0 14px; font-size: clamp(28px, 4vw, 46px); font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; color: var(--fm-text, #f4f5f7); }
.fm-cta-v2__body { position: relative; max-width: 620px; margin: 0 auto 30px; font-size: clamp(16px, 1.5vw, 18px); line-height: 1.6; color: rgba(244,245,247,.72); }
.fm-cta-v2__actions { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 480px; margin: 0 auto; }
.fm-cta-v2__btn { width: 100%; }
.fm-cta-v2__btn--solid { background: var(--fm-accent, #F4902E); color: #1a0f04; box-shadow: 0 14px 30px -12px rgba(244,144,46,.6); }
.fm-cta-v2__btn--solid:hover { background: var(--fm-accent-2, #ffae5c); transform: translateY(-2px); }
.fm-cta-v2__btn--ghost { background: rgba(255,255,255,.04); color: var(--fm-text, #f4f5f7); border: 1px solid rgba(255,255,255,.18); }
.fm-cta-v2__btn--ghost:hover { background: rgba(255,255,255,.08); border-color: rgba(244,144,46,.5); }
/* Mobile: taller card padding, single-column equal-width buttons. */
@media (max-width: 768px) {
	.fm-cta-v2__card { padding: clamp(74px, 6vw, 80px) clamp(24px, 5vw, 64px); }
	.fm-cta-v2__actions { grid-template-columns: 1fr; }
}

/* About page — dark prose variant + commitment checklist */
.fm-cat-about--dark { background: linear-gradient(180deg, #fbf3ea 0%, #f8ece0 100%); }
.fm-cat-about--dark .fm-h2 { color: #1a0f04; }
.fm-cat-about--dark .fm-cat-about__body p { color: #3a2d20; }

/* Brand pages: bookend alignment — centered hero + CTA, left-aligned content
   sections (About + services grid) between them. */
.single-fm_brand .fm-cat-about__inner {
	max-width: var(--fm-container);
	text-align: left;
}
/* Brand pages: the About block (and extra SEO sections) share the same
   transparent container + dark page background as the services section below,
   instead of the standalone beige panel. */
.single-fm_brand .fm-cat-about--dark { background: transparent; }
.single-fm_brand .fm-cat-about--dark .fm-h2 { color: var(--fm-text); }
.single-fm_brand .fm-cat-about--dark .fm-cat-about__body p { color: rgba(244,245,247,.78); }

/* Collapsible "Read more" for the brand/location About + SEO block.
   Reuses .fm-seo__body--collapsed (max-height clamp) + .fm-seo__toggle button. */
.fm-cat-about__inner .fm-about-more__fade { display: none; }
.fm-cat-about:has(.fm-seo__body--collapsed) .fm-about-more__fade {
	display: block;
	position: relative;
	height: 150px;
	margin-top: -150px;
	pointer-events: none;
	z-index: 2;
}
/* Location About sits on the beige panel → fade to beige. */
.fm-cat-about--dark .fm-about-more__fade {
	background: linear-gradient(180deg, rgba(248,236,224,0) 0%, #f8ece0 92%);
}
/* Brand About sits on the dark page background → fade to it. */
.single-fm_brand .fm-cat-about--dark .fm-about-more__fade {
	background: linear-gradient(180deg, rgba(20,16,12,0) 0%, var(--fm-bg, #14100c) 92%);
}

/* SEO content blocks (brand/location) — semantic H2 → H3 → text outline. */
.fm-cat-about__inner > [data-fm-seo-body] > .fm-loc-seo,
.fm-cat-about__inner > .fm-loc-seo { margin-top: clamp(30px, 4vw, 48px); }
.fm-loc-seo__block { margin-bottom: clamp(30px, 4vw, 48px); }
.fm-loc-seo__block:last-child { margin-bottom: 0; }
.fm-loc-seo .fm-loc-seo__block > .fm-h2 { margin: 0 0 16px; }
.fm-cat-about__body .fm-loc-seo__subhead {
	font-size: clamp(1.05rem, 1.5vw, 1.3rem);
	font-weight: 700;
	line-height: 1.3;
	margin: 22px 0 6px;
	color: #1a0f04;
}
.fm-cat-about__body .fm-loc-seo__subhead:first-child { margin-top: 0; }
.single-fm_brand .fm-cat-about__body .fm-loc-seo__subhead { color: var(--fm-text); }
.fm-loc-seo__list {
	list-style: disc;
	padding-left: 1.3em;
	margin: 10px 0 0;
	display: grid;
	gap: 6px;
}
.fm-loc-seo__list li { color: #3a2d20; line-height: 1.55; }
.single-fm_brand .fm-loc-seo__list li { color: rgba(244,245,247,.78); }

/* About page — editorial zig-zag story blocks */
.fm-about-story { padding: clamp(72px, 9vw, 120px) 0; background: var(--fm-bg); }
.fm-about-story__row {
	display: grid;
	grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
	gap: clamp(28px, 5vw, 80px);
	align-items: start;
}
.fm-about-story__row + .fm-about-story__row { margin-top: clamp(56px, 8vw, 110px); }
.fm-about-story__row--reverse .fm-about-story__head { order: 2; }
.fm-about-story__row--reverse .fm-about-story__body { order: 1; }
.fm-about-story__head { position: sticky; top: 110px; }
.fm-about-story__num {
	display: block;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-size: clamp(56px, 8vw, 104px); font-weight: 700; line-height: 1;
	color: transparent; -webkit-text-stroke: 1.5px rgba(244,144,46,.55);
}
.fm-about-story__title {
	margin: 20px 0 0;
	font-size: clamp(28px, 3.4vw, 42px); font-weight: 700;
	letter-spacing: -0.02em; line-height: 1.1; color: var(--fm-text);
}
.fm-about-story__rule { display: block; width: 64px; height: 4px; border-radius: 2px; margin-top: 20px; background: var(--fm-accent, #F4902E); }
.fm-about-story__body p {
	margin: 0 0 18px;
	font-size: clamp(16px, 1.4vw, 18px); line-height: 1.75;
	color: rgba(244,245,247,.78);
}
.fm-about-story__body p:last-child { margin-bottom: 0; }
.fm-about-story__body p strong { color: var(--fm-text); font-weight: 700; }
@media (max-width: 820px) {
	.fm-about-story__row,
	.fm-about-story__row--reverse { grid-template-columns: 1fr; gap: 18px; }
	.fm-about-story__row--reverse .fm-about-story__head { order: 0; }
	.fm-about-story__row--reverse .fm-about-story__body { order: 0; }
	.fm-about-story__head { position: static; }
	.fm-about-story__num { font-size: 52px; }
}
.fm-about-commit { margin-top: 32px; }
.fm-about-commit__label { margin: 0 0 24px; font-size: 16px; color: #3a2d20; }
.fm-commit-grid {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px;
	max-width: 760px; margin: 0 auto; text-align: left;
}
/* About → "Our Commitment": center all text in the block. */
.fm-cat-about--commit .fm-cat-about__inner { text-align: center; }
.fm-cat-about--commit .fm-commit-grid { text-align: center; }
.fm-cat-about--commit .fm-commit-item { justify-content: center; }
.fm-commit-item {
	display: flex; align-items: center; gap: 16px;
	padding: 20px 22px; border-radius: 16px;
	background: rgba(26,15,4,.025); border: 1px solid rgba(26,15,4,.12);
	transition: transform .25s var(--fm-ease), border-color .25s var(--fm-ease), background .25s var(--fm-ease);
}
.fm-commit-item:hover { transform: translateY(-3px); border-color: rgba(244,144,46,.55); background: rgba(244,144,46,.08); }
.fm-commit-item__check {
	flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 50%;
	background: rgba(244,144,46,.14); color: var(--fm-accent, #F4902E);
}
.fm-commit-item__text { font-size: 16px; font-weight: 600; color: #1a0f04; }
.fm-about-close { margin: 32px 0 0; font-size: clamp(19px, 2.2vw, 24px); font-weight: 700; line-height: 1.4; color: #1a0f04; }
.fm-about-close strong { color: var(--fm-accent, #F4902E); }
@media (max-width: 640px) { .fm-commit-grid { grid-template-columns: 1fr; } }
/* Hairline between stacked dark prose sections so they read as separate. */
.fm-cat-about--dark + .fm-cat-about--dark { border-top: 1px solid rgba(26,15,4,.08); }

/* About — "Why Choose" benefit cards (dark base; also used on location pages) */
.fm-about-why { padding: clamp(72px, 9vw, 110px) 0; }
.fm-about-cards {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
	margin-top: clamp(32px, 4vw, 48px);
}
.fm-about-card {
	position: relative; padding: 32px 28px; border-radius: 20px;
	background: var(--fm-bg-2, #15161b);
	border: 1px solid var(--fm-line);
	transition: transform .25s var(--fm-ease), border-color .25s var(--fm-ease), box-shadow .25s var(--fm-ease);
}
.fm-about-card:hover {
	transform: translateY(-4px);
	border-color: rgba(244,144,46,.40);
	box-shadow: 0 22px 50px -24px rgba(0,0,0,.6);
}
.fm-about-card__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 54px; height: 54px; border-radius: 14px;
	background: rgba(244,144,46,.12); color: var(--fm-accent, #F4902E);
	margin-bottom: 18px;
}
.fm-about-card__title { margin: 0 0 10px; font-size: 20px; font-weight: 700; color: var(--fm-text); }
.fm-about-card__desc { margin: 0; font-size: 15px; line-height: 1.6; color: rgba(244,245,247,.72); }
@media (max-width: 860px) { .fm-about-cards { grid-template-columns: 1fr; } }

/* About — "Why Choose" on the beige secondary background (light theme) */
.fm-about-why.fm-theme-light { background: linear-gradient(180deg, #fbf3ea 0%, #f8ece0 100%); }
.fm-theme-light .fm-about-card {
	border: 2px solid transparent;
	border-radius: 20px;
	/* Creative gradient border: white fill (padding-box) over an accent gradient (border-box). */
	background:
		linear-gradient(#fff, #fff) padding-box,
		linear-gradient(140deg, rgba(244,144,46,.55) 0%, rgba(255,174,92,.12) 55%, rgba(244,144,46,.32) 100%) border-box;
	box-shadow: 0 12px 32px -22px rgba(26,15,4,.45);
	padding: 36px 30px;
}
.fm-theme-light .fm-about-card:hover {
	/* No hover effect — card stays static. */
	transform: none;
	box-shadow: 0 12px 32px -22px rgba(26,15,4,.45);
}
.fm-theme-light .fm-about-card__icon {
	width: 60px; height: 60px; border-radius: 16px;
	background: linear-gradient(135deg, var(--fm-accent, #F4902E), var(--fm-accent-2, #ffae5c));
	color: #fff;
	box-shadow: 0 12px 22px -10px rgba(244,144,46,.6);
	margin-bottom: 22px;
}
.fm-theme-light .fm-about-card__title { color: #1a0f04; font-size: 21px; }
.fm-theme-light .fm-about-card__title::after {
	content: ''; display: block;
	width: 34px; height: 3px; border-radius: 2px;
	background: var(--fm-accent, #F4902E); margin-top: 12px;
}
.fm-theme-light .fm-about-card__desc { color: #5b4a3a; font-size: 17px; line-height: 1.7; }

@media (max-width: 768px) {
	.fm-cat-hero { padding-top: clamp(100px, 22vw, 140px); }
	.fm-cat-hero__inner .fm-hero__heading { font-size: clamp(32px, 9vw, 44px); }
	.fm-cat-hero__inner .fm-hero__cta .fm-btn { width: 100%; }
	/* Service pages (and pages opting in via --svc-layout): left-align the hero
	   text and push the CTA buttons down on mobile, matching the service layout. */
	.fm-cat-hero--svc-layout .fm-cat-hero__inner {
		text-align: left;
		max-width: var(--fm-container);
	}
	.fm-cat-hero--svc-layout .fm-cat-hero__inner .fm-eyebrow,
	.fm-cat-hero--svc-layout .fm-cat-hero__inner .fm-hero__cta { justify-content: flex-start; }
	.single-fm_service .fm-cat-hero__inner .fm-hero__cta,
	.fm-cat-hero--svc-layout .fm-cat-hero__inner .fm-hero__cta { margin-top: 100px; }
	/* Use the mobile hero image when one is provided; otherwise keep the desktop image. */
	.fm-cat-hero--photo .fm-cat-hero__bg {
		background-image: var(--fm-cat-hero-bg-mobile, var(--fm-cat-hero-bg));
	}
}

/* Larger phones (> 393px wide): widen the hero text-to-CTA gap to 150px. */
@media (min-width: 394px) and (max-width: 768px) {
	.single-fm_service .fm-cat-hero__inner .fm-hero__cta,
	.fm-cat-hero--svc-layout .fm-cat-hero__inner .fm-hero__cta { margin-top: 150px; }
}

/* Balanced multi-line headings — even line lengths instead of forced breaks. */
.fm-h2--balance { text-wrap: balance; }
@media (max-width: 768px) {
	/* On mobile the desktop break is hidden, so the whole heading wraps naturally. */
	.fm-h2--balance .fm-br--desktop { display: none; }
}

/* Responsive line breaks in headings: desktop break by default, mobile break < 769px. */
.fm-br--mobile { display: none; }
@media (max-width: 768px) {
	.fm-br--mobile { display: inline; }
	.fm-br--desktop { display: none; }
}

/* ---------- SERVICE PAGE — Common Problems grid ---------- */
.fm-svc-problems {
	padding: clamp(80px, 9vw, 120px) 0;
	background: linear-gradient(180deg, #14100c 0%, #1f1814 100%);
	color: #f4f5f7;
}
.fm-svc-problems .fm-section-head {
	margin-bottom: clamp(28px, 4vw, 44px);
	text-align: left;
	/* Let the H1-style heading use the full width so "Common … Problems" stays on
	   one line and the desktop break gives exactly two lines ("… Problems" / "We Fix"). */
	max-width: none;
}
.fm-svc-problems .fm-section-head .fm-eyebrow { justify-content: flex-start; display: inline-flex; }
.fm-svc-problems .fm-section-head .fm-h2 { text-align: left; line-height: 1.2; }
.fm-svc-problems__lead {
	max-width: 880px;
	margin: clamp(36px, 5vw, 56px) auto 0;
	text-align: center;
	color: rgba(244,245,247,.72);
	font-size: clamp(16px, 1.6vw, 18px);
	line-height: 1.65;
}
.fm-svc-problems__grid {
	list-style: none;
	/* Constrained to the page container width (not full-bleed) and centered. */
	max-width: var(--fm-container);
	margin: 0 auto;
	padding: 0 clamp(16px, 3vw, 32px);
	/* Flex so an incomplete last row stays centered (cards keep a consistent size). */
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
	counter-reset: fm-problem;
}
.fm-svc-problems__item {
	flex: 1 1 200px;
	max-width: 250px;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 14px;
	padding: 34px 22px 26px;
	border-radius: 20px;
	background: transparent;
	border: 1px dashed rgba(244,144,46,.28);
	overflow: visible;
	isolation: isolate;
	transition: transform .35s var(--fm-ease), border-color .35s var(--fm-ease);
	counter-increment: fm-problem;
}
.fm-svc-problems__item::before {
	content: counter(fm-problem, decimal-leading-zero);
	position: absolute;
	top: 14px; left: 18px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1;
	color: rgba(244,144,46,.7);
}
.fm-svc-problems__item::after {
	content: '';
	position: absolute;
	right: 18px; top: 22px;
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--fm-accent, #F4902E);
	box-shadow: 0 0 0 4px rgba(244,144,46,.16);
	transition: transform .35s var(--fm-ease), box-shadow .35s var(--fm-ease);
}
.fm-svc-problems__item:hover {
	transform: translateY(-4px);
	border-color: rgba(244,144,46,.65);
	border-style: solid;
}
.fm-svc-problems__item:hover::after {
	transform: scale(1.4);
	box-shadow: 0 0 0 6px rgba(244,144,46,.28);
}
.fm-svc-problems__icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px; height: 48px;
	border-radius: 50%;
	background: radial-gradient(circle at 30% 30%, rgba(255,196,136,.9), rgba(244,144,46,.6) 60%, rgba(244,144,46,.18) 100%);
	color: #1a0f04;
	box-shadow:
		inset 0 1px 0 rgba(255,255,255,.4),
		inset 0 -6px 12px -6px rgba(0,0,0,.3);
	margin-top: 4px;
	transition: transform .4s var(--fm-ease);
}
.fm-svc-problems__icon svg { width: 22px; height: 22px; }
.fm-svc-problems__icon::before {
	content: '';
	position: absolute; inset: -6px;
	border-radius: 50%;
	border: 1px solid rgba(244,144,46,.4);
	opacity: 0;
	transform: scale(.9);
	transition: opacity .35s var(--fm-ease), transform .35s var(--fm-ease);
}
.fm-svc-problems__item:hover .fm-svc-problems__icon { transform: rotate(-6deg) scale(1.08); }
.fm-svc-problems__item:hover .fm-svc-problems__icon::before { opacity: 1; transform: scale(1.12); }
.fm-svc-problems__body { min-width: 0; }
.fm-svc-problems__title {
	margin: 0 0 6px;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: #ffffff;
}
.fm-svc-problems__desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: rgba(244,245,247,.65);
}
.fm-svc-problems__grid[data-fm-reveal] .fm-svc-problems__item {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .5s var(--fm-ease), transform .5s var(--fm-ease);
	transition-delay: calc(var(--fm-i, 0) * 70ms + 60ms);
}
.fm-svc-problems__grid.is-in .fm-svc-problems__item {
	opacity: 1;
	transform: none;
}
@media (max-width: 600px) {
	.fm-svc-problems__item { flex-basis: 100%; max-width: none; padding: 18px; }
}

/* ---------- FAQ — Variant 2 (numbered card grid, dark on light) ---------- */
.fm-faq--v2 .fm-section-head { text-align: left; }
.fm-faq--v2 .fm-section-head .fm-eyebrow { justify-content: flex-start; }
.fm-faq--v2 .fm-section-head .fm-h2 { text-align: left; }
.fm-faq--v2 .fm-faq__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
	gap: 14px;
	counter-reset: fm-faqv2;
	padding: 0;
	list-style: none;
}
.fm-faq--v2 .fm-faq__item { counter-increment: fm-faqv2; }
.fm-faq--v2 .fm-faq__details {
	position: relative;
	padding: 20px 22px 20px 76px;
	background: #fff;
	border: 1px solid rgba(26,15,4,.08);
	border-radius: 16px;
	box-shadow: 0 8px 24px -18px rgba(26,15,4,.25);
	transition: border-color .3s var(--fm-ease), box-shadow .3s var(--fm-ease), transform .3s var(--fm-ease);
}
.fm-faq--v2 .fm-faq__details::before {
	content: counter(fm-faqv2, decimal-leading-zero);
	position: absolute;
	top: 18px; left: 20px;
	display: inline-flex;
	align-items: center; justify-content: center;
	width: 40px; height: 40px;
	font-family: 'JetBrains Mono', ui-monospace, monospace;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--fm-accent, #F4902E);
	background: linear-gradient(135deg, rgba(244,144,46,.18), rgba(244,144,46,.04));
	border: 1px solid rgba(244,144,46,.32);
	border-radius: 10px;
	opacity: 1;
	transition: background .3s var(--fm-ease), color .3s var(--fm-ease), border-color .3s var(--fm-ease);
}
.fm-faq--v2 .fm-faq__details:hover {
	border-color: rgba(244,144,46,.35);
	transform: translateY(-2px);
	box-shadow: 0 14px 30px -18px rgba(244,144,46,.45);
}
.fm-faq--v2 .fm-faq__details[open] {
	background: linear-gradient(180deg, #fff 0%, #fff8f1 100%);
	border-color: rgba(244,144,46,.45);
}
.fm-faq--v2 .fm-faq__details[open]::before {
	background: var(--fm-accent, #F4902E);
	color: #1a0f04;
	border-color: var(--fm-accent, #F4902E);
}
.fm-faq--v2 .fm-faq__q {
	padding: 0;
	background: transparent;
	border: 0;
	font-size: 19px;
	font-weight: 700;
	color: #1a0f04;
	letter-spacing: -0.005em;
	line-height: 1.35;
	display: flex;
	align-items: flex-start;
	gap: 14px;
	cursor: pointer;
}
.fm-faq--v2 .fm-faq__q > span { flex: 1; padding-top: 2px; }
.fm-faq--v2 .fm-faq__q svg {
	flex-shrink: 0;
	width: 28px; height: 28px;
	padding: 5px;
	color: #1a0f04;
	background: transparent;
	border: 1px solid rgba(26,15,4,.18);
	border-radius: 50%;
	transition: transform .35s var(--fm-ease), background .25s var(--fm-ease), color .25s var(--fm-ease), border-color .25s var(--fm-ease);
}
.fm-faq--v2 .fm-faq__details:hover .fm-faq__q svg {
	background: transparent;
	border-color: rgba(244,144,46,.5);
	color: var(--fm-accent, #F4902E);
}
.fm-faq--v2 .fm-faq__details[open] .fm-faq__q svg {
	background: var(--fm-accent, #F4902E);
	border-color: var(--fm-accent, #F4902E);
	color: #1a0f04;
	transform: rotate(135deg);
}
.fm-faq--v2 .fm-faq__a {
	padding: 14px 0 4px;
	color: rgba(26,15,4,.78);
	font-size: 17px;
	line-height: 1.65;
}
.fm-faq--v2 .fm-faq__a::before { content: none; }
@media (max-width: 700px) {
	.fm-faq--v2 .fm-faq__list { grid-template-columns: 1fr; }
	.fm-faq--v2 .fm-faq__details { padding: 18px 18px 18px 66px; }
	.fm-faq--v2 .fm-faq__details::before { width: 34px; height: 34px; font-size: 12px; top: 16px; left: 16px; }
}

/* ============================================================
   Brand hero — monogram badge + per-brand accent glow
   (--fm-brand is set inline per brand by single-fm_brand.php)
   ============================================================ */
.fm-brand-hero {
	background: linear-gradient(180deg, #07080a 0%, #111319 100%);
}
/* Strip layout: text top-left, full-width auto-scrolling photo row at the bottom. */
.fm-brand-hero--strip {
	flex-direction: column;
	align-items: stretch;
	justify-content: space-between;
	gap: clamp(40px, 7vh, 80px);
	padding-bottom: clamp(40px, 6vw, 72px);
}
.fm-brand-hero--strip .fm-brand-hero__copy {
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.fm-brand-hero--strip .fm-hero__cta { justify-content: center; }
/* Mobile: pack the copy and the photo strip together instead of pushing them to
   the top/bottom edges (space-between left a big empty gap between them). */
/* Desktop keeps the buttons in the copy; the mobile duplicate is hidden. */
.fm-brand-hero__cta-mobile { display: none; }
@media (max-width: 760px) {
	.fm-brand-hero--strip {
		justify-content: center;
		gap: clamp(56px, 14vw, 84px);
	}
	/* Mobile only: the CTA sits below the photo slider. */
	.fm-brand-hero--strip .fm-brand-hero__copy .fm-hero__cta { display: none; }
	.fm-brand-hero--strip .fm-brand-hero__cta-mobile { display: block; }
}
.fm-brand-hero__glow {
	position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(46% 40% at 50% 8%, color-mix(in srgb, var(--fm-brand) 55%, transparent) 0%, transparent 62%),
		radial-gradient(70% 60% at 80% 100%, color-mix(in srgb, var(--fm-brand) 22%, transparent) 0%, transparent 60%);
	opacity: .9;
}
.fm-brand-badge {
	display: inline-flex; align-items: center; justify-content: center;
	width: clamp(72px, 13vw, 96px); height: clamp(72px, 13vw, 96px);
	margin: 0 auto clamp(18px, 3vw, 28px);
	border-radius: 22px;
	font-weight: 800;
	font-size: clamp(1.7rem, 4.4vw, 2.4rem);
	letter-spacing: .04em;
	color: #fff;
	background:
		linear-gradient(160deg, color-mix(in srgb, var(--fm-brand) 92%, #fff 8%) 0%, color-mix(in srgb, var(--fm-brand) 70%, #000 18%) 100%);
	border: 1px solid color-mix(in srgb, var(--fm-brand) 60%, #fff 40%);
	box-shadow:
		0 18px 40px -12px color-mix(in srgb, var(--fm-brand) 70%, transparent),
		inset 0 1px 0 rgba(255,255,255,.35);
	text-shadow: 0 1px 2px rgba(0,0,0,.25);
}
/* Fallback for browsers without color-mix(): solid brand fill stays readable. */
@supports not (color: color-mix(in srgb, red, blue)) {
	.fm-brand-badge { background: var(--fm-brand); border-color: rgba(255,255,255,.5); }
	.fm-brand-hero__glow { background: radial-gradient(46% 40% at 50% 8%, var(--fm-brand) 0%, transparent 62%); opacity: .35; }
}

/* ---- Brand hero: split variant (text + product photo) ---- */
.fm-brand-hero--split { overflow: hidden; }
.fm-brand-hero__split {
	width: 100%;
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	align-items: center;
	gap: clamp(32px, 5vw, 72px);
}
.fm-brand-hero__copy { text-align: left; max-width: 620px; }
.fm-brand-hero__copy .fm-hero__cta { justify-content: flex-start; }
.fm-brand-hero__media {
	position: relative;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: clamp(280px, 38vw, 460px);
}
.fm-brand-hero__media-glow {
	position: absolute; inset: 6% 8%;
	z-index: 0;
	border-radius: 28px;
	background:
		radial-gradient(60% 60% at 50% 45%, color-mix(in srgb, var(--fm-brand) 60%, transparent) 0%, transparent 70%);
	filter: blur(28px);
	opacity: .85;
}
.fm-brand-hero__media img {
	position: relative; z-index: 1;
	max-width: 100%;
	max-height: clamp(300px, 40vw, 480px);
	width: auto; height: auto;
	object-fit: contain;
	border-radius: 22px;
	filter: drop-shadow(0 30px 50px rgba(0,0,0,.45));
}
@supports not (color: color-mix(in srgb, red, blue)) {
	.fm-brand-hero__media-glow { background: radial-gradient(60% 60% at 50% 45%, var(--fm-brand) 0%, transparent 70%); opacity: .4; }
}

/* Continuous leftward marquee of commercial-service images (brand hero). */
.fm-brand-slider {
	position: relative; z-index: 1;
	width: 100%;
	overflow: hidden;
	/* Fade the strip in/out at both edges. */
	-webkit-mask: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
	        mask: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%);
}
.fm-brand-slider__track {
	display: flex;
	width: max-content;
	gap: clamp(14px, 1.6vw, 22px);
	animation: fm-marquee 34s linear infinite;
}
.fm-brand-slider:hover .fm-brand-slider__track { animation-play-state: paused; }
.fm-brand-slider__track .fm-brand-slider__slide {
	display: block;
	flex: 0 0 auto;
	height: clamp(168px, 20vw, 260px);
	aspect-ratio: 3 / 4;
	width: auto;
	max-width: none; max-height: none;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 18px 34px -14px rgba(0,0,0,.5);
	transition: transform .25s ease, box-shadow .25s ease;
}
.fm-brand-slider__track .fm-brand-slider__slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.fm-brand-slider__track a.fm-brand-slider__slide:hover {
	transform: translateY(-4px);
	box-shadow: 0 22px 40px -12px rgba(0,0,0,.6);
}
/* Travels exactly one full set (half the duplicated track) for a seamless loop. */
@keyframes fm-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(calc(-50% - clamp(14px, 1.6vw, 22px) / 2)); }
}
@media (prefers-reduced-motion: reduce) {
	.fm-brand-slider__track { animation: none; }
}
@media (max-width: 860px) {
	.fm-brand-hero--split { text-align: center; }
	.fm-brand-hero__split { grid-template-columns: 1fr; gap: clamp(26px, 7vw, 40px); }
	/* Image follows the copy on mobile. */
	.fm-brand-hero__copy { order: 1; max-width: none; text-align: center; }
	.fm-brand-hero__copy .fm-hero__cta { justify-content: center; }
	.fm-brand-hero__media { order: 2; min-height: 0; }
	.fm-brand-hero__media-glow { inset: 10% 14%; filter: blur(34px); }
	.fm-brand-hero__media img { max-height: clamp(220px, 56vw, 320px); }
}
