/**
 * Flooring Source of Texas — brand tokens + homepage.
 */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap');

:root {
	/* Logo-sampled rust red + charcoal */
	--color-brand-primary: #a81000;
	--color-brand-primary-hover: #8b0d00;
	--color-brand-secondary: #1a1a1a;
	--color-brand-navy: #1a1a1a;
	--color-brand-soft: #f8ebe8;
	--color-brand-dark: #121212;
	--color-brand-light: #f4f1ee;
	--color-brand-warm: #f7f0ea;

	--color-surface: #f4f1ee;
	--color-surface-card: #ffffff;
	--color-ink: #141414;
	--color-muted: #5c5c5c;
	--color-border: #e4ddd6;

	/* Sans for titles and paragraphs */
	--fs-font-display: 'Outfit', ui-sans-serif, system-ui, sans-serif;
	--fs-font-body: 'Outfit', ui-sans-serif, system-ui, sans-serif;
	--fs-font-ui: 'Outfit', ui-sans-serif, system-ui, sans-serif;
	--fs-radius: 0.35rem;
	--fs-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

body.click-ai {
	font-family: var(--fs-font-body);
	background:
		radial-gradient(1200px 600px at 100% -10%, rgb(168 16 0 / 0.06), transparent 55%),
		radial-gradient(900px 500px at -10% 20%, rgb(26 26 26 / 0.04), transparent 50%),
		var(--color-surface);
}

h1, h2, h3, h4, h5, h6,
.fs-section__title,
.fs-hero__title,
.fs-floor-card__title,
.fs-services__title,
.fs-remodel__title,
.fs-remodel-card__name,
.fs-about__title,
.fs-areas__title,
.fs-cta-band__title,
.fs-strip__text,
.fs-stats strong {
	font-family: var(--fs-font-display);
}

p,
.fs-section__lede,
.fs-hero__lede,
.fs-floor-card__copy,
.fs-remodel-card__copy,
.fs-about__lede,
.fs-areas__lede,
.fs-local__prose p,
.fs-cta-band__copy {
	font-family: var(--fs-font-body);
}

/* —— Header: white floating bar (sticky on scroll) —— */
.fs-header.cai-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 50;
	background: transparent;
	border-bottom: 0;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	pointer-events: none;
	transition: padding 0.35s var(--fs-ease);
	--fs-header-inset: 0.85rem;
	padding: 0.65rem 0 0;
}

.fs-header.cai-header.is-scrolled {
	/* Keep the same side inset so the logo stays on the content edge. */
	--fs-header-inset: 0.85rem;
	padding: 0.9rem 0 0;
}

/* Interior pages: hero runs under fixed nav (no body offset) */
body.fs-site:not(.home) {
	padding-top: 0;
}

.fs-header__float {
	pointer-events: auto;
	margin-left: var(--fs-header-inset, 0.85rem);
	margin-right: var(--fs-header-inset, 0.85rem);
	background: #fff;
	border: 1px solid rgb(20 20 20 / 0.06);
	border-radius: 0.85rem;
	box-shadow: 0 8px 28px rgb(20 20 20 / 0.1);
	transition:
		border-radius 0.35s var(--fs-ease),
		box-shadow 0.35s var(--fs-ease),
		transform 0.35s var(--fs-ease);
}

.fs-header.cai-header.is-scrolled .fs-header__float {
	border-radius: 1.15rem;
	box-shadow:
		0 14px 40px rgb(20 20 20 / 0.14),
		0 2px 8px rgb(20 20 20 / 0.06);
}

/*
 * Desktop: the bar sits inside the inset pill, so cancel that inset and
 * center on the same 80rem track as body .container-brand. Logo, nav, and
 * page copy then share one left edge on wide screens.
 */
@media (min-width: 1024px) {
	.fs-header__float > .container-brand {
		width: min(80rem, calc(100% + var(--fs-header-inset, 0.85rem) * 2));
		max-width: none;
		margin-right: 0;
		margin-left: calc(
			var(--fs-header-inset, 0.85rem) * -1
			+ max(0px, (100% + var(--fs-header-inset, 0.85rem) * 2 - 80rem) / 2)
		);
	}
}

.fs-header__bar {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.75rem 1rem;
	min-height: 4rem;
	padding: 0.55rem 0;
}

.fs-header__brand {
	display: inline-flex;
	align-items: center;
	justify-self: start;
	z-index: 2;
}

.fs-header__logo,
.cai-header__logo {
	max-height: 2.55rem;
	width: auto;
	/* Keep live brand colors — do not invert/filter */
	filter: none;
}

.fs-header__nav-wrap {
	display: none;
	justify-content: center;
	min-width: 0;
}

@media (min-width: 1024px) {
	.fs-header__nav-wrap {
		display: flex;
	}
}

.fs-pill-nav {
	max-width: 100%;
}

.fs-pill-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: stretch;
	flex-wrap: nowrap;
	gap: 0.15rem;
	/* Plain text links — no rounded container */
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.fs-pill-nav__item {
	position: relative;
	display: flex;
	align-items: center;
}

.fs-pill-nav__link,
.fs-pill-nav__trigger {
	appearance: none;
	border: 0;
	background: transparent;
	color: var(--color-ink);
	font-family: var(--fs-font-ui);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 0.28rem;
	padding: 0.55rem 0.5rem;
	border-radius: 0;
	transition: color 0.2s ease;
	position: relative;
	z-index: 1;
}

.fs-pill-nav__item.has-children > .fs-pill-nav__link {
	padding-right: 0.2rem;
}

.fs-pill-nav__item.has-children > .fs-pill-nav__trigger {
	padding-left: 0.1rem;
	padding-right: 0.45rem;
}

@media (min-width: 1280px) {
	.fs-pill-nav__link,
	.fs-pill-nav__trigger {
		padding: 0.6rem 0.7rem;
		font-size: 0.86rem;
	}
}

@media (min-width: 1440px) {
	.fs-pill-nav__link,
	.fs-pill-nav__trigger {
		padding: 0.65rem 0.85rem;
		font-size: 0.92rem;
	}
}

.fs-pill-nav__link:hover,
.fs-pill-nav__trigger:hover,
.fs-pill-nav__item.is-open .fs-pill-nav__trigger,
.fs-pill-nav__item.is-open .fs-pill-nav__link {
	background: transparent;
	color: var(--color-brand-primary);
}

.fs-pill-nav__chevron {
	opacity: 0.7;
	transition: transform 0.2s ease;
	flex-shrink: 0;
}

.fs-pill-nav__item.is-open .fs-pill-nav__trigger .fs-pill-nav__chevron {
	transform: rotate(180deg);
}

.fs-pill-nav__panel {
	position: absolute;
	top: calc(100% + 0.65rem);
	left: 50%;
	transform: translateX(-50%);
	min-width: 13.5rem;
	padding: 0.45rem;
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--fs-radius);
	box-shadow: 0 18px 40px rgb(20 20 20 / 0.14);
	z-index: 60;
}

.fs-pill-nav__sub {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.1rem;
}

.fs-pill-nav__sub a {
	display: block;
	padding: 0.65rem 0.8rem;
	border-radius: var(--fs-radius);
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--color-ink);
	text-decoration: none;
	white-space: nowrap;
}

.fs-pill-nav__sub a:hover {
	background: var(--color-brand-soft);
	color: var(--color-brand-primary);
}

.fs-header__actions {
	display: none;
	align-items: center;
	justify-self: end;
	gap: 0.85rem;
	z-index: 2;
}

@media (min-width: 1024px) {
	.fs-header__actions {
		display: inline-flex;
	}
}

.fs-header__phone {
	display: none;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--color-ink);
	text-decoration: none;
	white-space: nowrap;
	text-shadow: none;
}

@media (min-width: 1440px) {
	.fs-header__phone {
		display: inline;
	}
}

.fs-header__phone:hover {
	color: var(--color-brand-primary);
}

/* Match hero CTA size + rounded rectangle */
.fs-header__cta.btn-primary,
a.fs-header__cta.btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.85rem;
	padding: 0.7rem 1.25rem;
	border-radius: 0.35rem;
	border: 1px solid var(--color-brand-primary);
	background: var(--color-brand-primary);
	color: #fff;
	font-family: var(--fs-font-ui);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: none;
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.fs-header__cta.btn-primary:hover,
a.fs-header__cta.btn-primary:hover {
	background: var(--color-brand-primary-hover);
	border-color: var(--color-brand-primary-hover);
	color: #fff;
	transform: translateY(-1px);
}

.fs-header__burger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	justify-self: end;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--fs-radius);
	border: 1px solid var(--color-border);
	background: #fff;
	color: var(--color-ink);
	cursor: pointer;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

@media (min-width: 1024px) {
	.fs-header__burger {
		display: none;
	}
}

/* Mobile drawer sits under the floating bar */
.fs-header__mobile {
	pointer-events: auto;
	margin: 0.45rem 0 0;
	border: 1px solid var(--color-border);
	border-radius: var(--fs-radius);
	background: #fff;
	box-shadow: 0 16px 36px rgb(20 20 20 / 0.12);
	overflow: hidden;
}

.fs-header__mobile-inner {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	max-height: min(78vh, 560px);
	overflow-y: auto;
	padding: 1rem 0 1.25rem;
}

.fs-mobile-nav__link {
	display: block;
	padding: 0.8rem 0.35rem;
	font-size: 0.95rem;
	font-weight: 550;
	color: var(--color-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--color-border);
}

.fs-mobile-nav__link:hover {
	color: var(--color-brand-primary);
}

.fs-mobile-nav__group {
	border-bottom: 1px solid var(--color-border);
}

.fs-mobile-nav__row {
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.fs-mobile-nav__link--parent {
	flex: 1 1 auto;
	border-bottom: 0;
	font-weight: 600;
	padding-right: 0.35rem;
}

.fs-mobile-nav__toggle {
	appearance: none;
	border: 0;
	background: transparent;
	color: var(--color-ink);
	width: 2.5rem;
	height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	flex-shrink: 0;
}

.fs-mobile-nav__toggle svg {
	transition: transform 0.2s ease;
}

.fs-mobile-nav__group.is-open .fs-mobile-nav__toggle svg {
	transform: rotate(180deg);
}

.fs-mobile-nav__sub {
	display: grid;
	padding: 0 0 0.55rem 0.75rem;
}

.fs-mobile-nav__sub .fs-mobile-nav__link {
	border-bottom: 0;
	font-weight: 500;
	color: var(--color-muted);
	padding: 0.55rem 0.35rem;
}

.fs-header__mobile-cta {
	padding-top: 0.85rem;
}

body.cai-nav-open {
	overflow: hidden;
}

/* —— Homepage —— */
.fs-home {
	overflow-x: clip;
}

.fs-eyebrow {
	margin: 0 0 0.75rem;
	font-family: var(--fs-font-ui);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-brand-primary);
}

.fs-eyebrow--on-dark {
	color: #ffb4a8;
}

.fs-section {
	padding: 4.5rem 0;
}

@media (min-width: 768px) {
	.fs-section {
		padding: 6rem 0;
	}
}

.fs-section__head {
	max-width: 40rem;
	margin-bottom: 2.5rem;
}

.fs-section__head--center {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.fs-section__title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: var(--color-ink);
	text-wrap: balance;
}

.fs-section__lede {
	margin: 1rem 0 0;
	font-size: 1.05rem;
	line-height: 1.65;
	color: var(--color-muted);
	text-wrap: pretty;
}

/* Hero — brand rust + charcoal (logo palette) */
.fs-hero {
	--fs-hero-accent: var(--color-brand-primary);
	--fs-hero-accent-hover: var(--color-brand-primary-hover);
	--fs-hero-veil: #121212;
	position: relative;
	isolation: isolate;
	min-height: min(94vh, 56rem);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	color: #fff;
	overflow: hidden;
}

.fs-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
	overflow: hidden;
}

.fs-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 40%;
	transform: scale(1.03);
	animation: fs-hero-ken 20s var(--fs-ease) forwards;
}

@keyframes fs-hero-ken {
	from { transform: scale(1.03); }
	to { transform: scale(1); }
}

.fs-hero__veil {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(100deg, rgb(18 18 18 / 0.9) 0%, rgb(18 18 18 / 0.64) 42%, rgb(18 18 18 / 0.3) 72%, rgb(18 18 18 / 0.18) 100%),
		linear-gradient(to top, rgb(18 18 18 / 0.94) 0%, rgb(18 18 18 / 0.55) 28%, transparent 58%),
		radial-gradient(900px 480px at 12% 78%, rgb(168 16 0 / 0.28), transparent 58%);
}

.fs-hero__body {
	position: relative;
	z-index: 1;
	flex: 1;
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	padding-top: 7.5rem;
	width: 100%;
}

/* Sits inside .container-brand — same left edge as the logo */
.fs-hero__inner {
	padding-top: 2rem;
	padding-bottom: 2.5rem;
	max-width: 40rem;
	margin: 0;
	text-align: left;
}

@media (min-width: 768px) {
	.fs-hero__inner {
		padding-top: 3rem;
		padding-bottom: 3.25rem;
	}
}

.fs-hero__eyebrow {
	margin: 0;
	font-family: var(--fs-font-ui);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #ffb4a8;
	text-align: left;
	opacity: 0;
	animation: fs-rise 0.8s var(--fs-ease) 0.08s forwards;
}

.fs-hero__title {
	margin: 0.85rem 0 0;
	font-family: var(--fs-font-display);
	font-size: clamp(2.2rem, 4.8vw, 3.75rem);
	font-weight: 600;
	letter-spacing: -0.03em;
	line-height: 1.08;
	color: #fff;
	text-align: left;
	text-wrap: balance;
	opacity: 0;
	animation: fs-rise 0.85s var(--fs-ease) 0.18s forwards;
}

.fs-hero__lede {
	margin: 1.15rem 0 0;
	max-width: 30rem;
	font-size: 1.02rem;
	line-height: 1.7;
	color: rgb(255 255 255 / 0.84);
	text-align: left;
	opacity: 0;
	animation: fs-rise 0.85s var(--fs-ease) 0.3s forwards;
}

.fs-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.75rem 0.9rem;
	margin-top: 1.75rem;
	opacity: 0;
	animation: fs-rise 0.85s var(--fs-ease) 0.42s forwards;
}

.fs-hero__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 2.85rem;
	padding: 0.7rem 1.25rem;
	border-radius: 0.35rem;
	font-family: var(--fs-font-ui);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.fs-hero__btn--primary {
	background: var(--fs-hero-accent);
	color: #fff;
	border: 1px solid var(--fs-hero-accent);
}

.fs-hero__btn--primary:hover {
	background: var(--fs-hero-accent-hover);
	border-color: var(--fs-hero-accent-hover);
	color: #fff;
	transform: translateY(-1px);
}

.fs-hero__btn--ghost {
	background: transparent;
	color: #fff;
	border: 1px solid rgb(255 255 255 / 0.45);
}

.fs-hero__btn--ghost:hover {
	border-color: #ffb4a8;
	color: #fff;
	background: rgb(168 16 0 / 0.18);
}

/* Bottom feature strip — brand red */
.fs-hero__features {
	position: relative;
	z-index: 1;
	border-top: 1px solid rgb(255 255 255 / 0.14);
	background: var(--color-brand-primary);
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.fs-hero__feature-list {
	list-style: none;
	margin: 0;
	padding: 1rem 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.85rem 1.25rem;
}

@media (min-width: 640px) {
	.fs-hero__feature-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.fs-hero__feature-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		padding: 1.15rem 0;
	}
}

@media (min-width: 1280px) {
	.fs-hero__feature-list {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		gap: 1rem;
	}
}

.fs-hero__feature {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	min-width: 0;
}

.fs-hero__feature-icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.65rem;
	height: 1.65rem;
	color: #fff;
}

.fs-hero__feature-icon svg {
	width: 100%;
	height: 100%;
}

.fs-hero__feature-label {
	font-family: var(--fs-font-ui);
	font-size: 0.78rem;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0.01em;
	color: #fff;
	text-wrap: balance;
}

@keyframes fs-rise {
	from {
		opacity: 0;
		transform: translateY(1rem);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.fs-hero__media img,
	.fs-hero__eyebrow,
	.fs-hero__title,
	.fs-hero__lede,
	.fs-hero__actions {
		animation: none;
		opacity: 1;
		transform: none;
	}
}

/* Flooring services — charcoal band matching hero feature strip */
.fs-services {
	--fs-svc-accent: var(--color-brand-primary);
	--fs-svc-accent-hover: var(--color-brand-primary-hover);
	--fs-svc-ink: #ffffff;
	background: #121212;
	color: #fff;
	overflow: hidden;
}

.fs-services .container-brand {
	position: relative;
}

.fs-services__head {
	max-width: 40rem;
	margin-bottom: 2.25rem;
}

.fs-services__title {
	color: #fff;
}

.fs-services__viewport {
	position: relative;
}

.fs-services__track {
	display: grid;
	gap: 1.1rem;
	grid-template-columns: 1fr;
}

.fs-services__nav {
	display: none;
	position: absolute;
	top: 50%;
	z-index: 4;
	width: 2.6rem;
	height: 2.6rem;
	margin: 0;
	padding: 0;
	border: 1px solid rgb(255 180 168 / 0.55);
	border-radius: 999px;
	background: rgb(255 255 255 / 0.95);
	color: #141414;
	cursor: pointer;
	transform: translateY(-50%);
	transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
	box-shadow: 0 8px 22px rgb(0 0 0 / 0.28);
}

.fs-services__nav:hover,
.fs-services__nav:focus-visible {
	background: var(--fs-svc-accent);
	border-color: var(--fs-svc-accent);
	color: #fff;
	outline: none;
}

.fs-services__nav--prev {
	left: 0.35rem;
}

.fs-services__nav--next {
	right: 0.35rem;
}

.fs-floor-card {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 0.75rem;
	background: #2a2a2a;
	isolation: isolate;
}

.fs-floor-card__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s var(--fs-ease);
}

.fs-floor-card__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgb(0 0 0 / 0.05) 35%,
		rgb(0 0 0 / 0.55) 68%,
		rgb(0 0 0 / 0.82) 100%
	);
	pointer-events: none;
	z-index: 1;
	transition: background 0.35s ease;
}

.fs-floor-card__arrow {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 2.35rem;
	height: 2.35rem;
	border-radius: 999px;
	background: #fff;
	color: #141414;
	text-decoration: none;
	box-shadow: 0 6px 18px rgb(0 0 0 / 0.22);
	transition: transform 0.3s var(--fs-ease), background 0.25s ease, color 0.25s ease;
}

.fs-floor-card__arrow:hover,
.fs-floor-card__arrow:focus-visible {
	background: var(--fs-svc-accent);
	color: #141414;
	transform: scale(1.06);
	outline: none;
}

.fs-floor-card__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 1.35rem 1.15rem 1.25rem;
	pointer-events: none;
}

.fs-floor-card__title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: clamp(1.15rem, 2.2vw, 1.45rem);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #fff;
	line-height: 1.15;
}

.fs-floor-card__copy {
	margin: 0;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	font-family: var(--fs-font-body);
	font-size: 0.82rem;
	line-height: 1.45;
	color: rgb(255 255 255 / 0.9);
	transform: translateY(0.4rem);
	transition:
		opacity 0.4s var(--fs-ease),
		transform 0.4s var(--fs-ease),
		max-height 0.45s var(--fs-ease);
}

.fs-floor-card:hover .fs-floor-card__img,
.fs-floor-card:focus-within .fs-floor-card__img {
	transform: scale(1.06);
}

.fs-floor-card:hover .fs-floor-card__veil,
.fs-floor-card:focus-within .fs-floor-card__veil {
	background: linear-gradient(
		180deg,
		rgb(0 0 0 / 0.18) 18%,
		rgb(0 0 0 / 0.7) 52%,
		rgb(0 0 0 / 0.94) 100%
	);
}

.fs-floor-card:hover .fs-floor-card__copy,
.fs-floor-card:focus-within .fs-floor-card__copy {
	max-height: 14rem;
	opacity: 1;
	transform: translateY(0);
	overflow-y: auto;
}

/* Homepage sliders: never leave cards invisible from reveal animation */
.fs-services .fs-floor-card,
.fs-remodel .fs-remodel-card {
	opacity: 1;
	transform: none;
}

/* Tablet & below: infinite slider */
@media (max-width: 1023px) {
	.fs-services__viewport {
		padding: 0 2.5rem;
		min-height: 17rem;
		/* Clip here — never on the track (transform moves overflow:hidden with the slides) */
		overflow: hidden;
	}

	.fs-services__nav {
		display: grid;
		place-items: center;
	}

	.fs-services__track {
		display: flex;
		gap: 0;
		width: 100%;
		max-width: 100%;
		overflow: visible;
		touch-action: pan-y;
		cursor: grab;
		/* Keep border-box = viewport width so translate px steps one slide */
		box-sizing: border-box;
		will-change: transform;
	}

	.fs-services__track.is-dragging {
		cursor: grabbing;
	}

	.fs-services__track[data-fs-services-ready] {
		scroll-snap-type: none;
	}

	.fs-services .fs-floor-card {
		flex: 0 0 100%;
		flex-shrink: 0;
		width: 100%;
		min-width: 100%;
		max-width: 100%;
		aspect-ratio: 5 / 4;
		min-height: 17rem;
		max-height: min(56vh, 26rem);
		opacity: 1;
		box-sizing: border-box;
	}

	.fs-services.is-slider .fs-floor-card__copy {
		max-height: 7.5rem;
		opacity: 1;
		transform: none;
		overflow-y: auto;
	}

	.fs-services.is-slider .fs-floor-card__veil {
		background: linear-gradient(
			180deg,
			rgb(0 0 0 / 0.12) 22%,
			rgb(0 0 0 / 0.68) 55%,
			rgb(0 0 0 / 0.92) 100%
		);
	}
}

@media (min-width: 640px) and (max-width: 1023px) {
	.fs-floor-card {
		aspect-ratio: 16 / 10;
		max-height: min(42vh, 20rem);
	}
}

/* Desktop: 3-up grid */
@media (min-width: 1024px) {
	.fs-services__head {
		margin-bottom: 2.1rem;
	}

	.fs-services__track {
		grid-template-columns: repeat(3, 1fr);
		gap: 1.25rem;
	}

	.fs-services__nav {
		display: none !important;
	}

	.fs-floor-card {
		aspect-ratio: 4 / 3;
		max-height: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fs-floor-card__img,
	.fs-floor-card__copy,
	.fs-floor-card__arrow {
		transition: none;
	}
}

/* Strip */
.fs-strip {
	padding: 0 0 1rem;
}

.fs-strip__grid {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: 1fr;
}

@media (min-width: 768px) {
	.fs-strip__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.fs-strip__item {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	padding: 1.15rem 1.25rem;
	text-decoration: none;
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: var(--fs-radius);
	transition: border-color 0.2s ease;
}

.fs-strip__item:hover {
	border-color: var(--color-brand-primary);
}

.fs-strip__label {
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-brand-primary);
}

.fs-strip__text {
	font-family: var(--fs-font-display);
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--color-ink);
}

/* Remodel — staggered autoplay cards (matches flooring charcoal band) */
.fs-remodel {
	--fs-remodel-bg: #121212;
	--fs-remodel-stagger: 2.75rem;
	background: var(--fs-remodel-bg);
	color: #fff;
	overflow: hidden;
	padding-bottom: 3.75rem;
}

.fs-remodel__head {
	max-width: 40rem;
	margin-bottom: 2rem;
}

.fs-remodel__title {
	color: #fff;
}

.fs-remodel__slider {
	position: relative;
	width: 100%;
	overflow: visible;
	padding: 0.75rem 0 calc(1rem + var(--fs-remodel-stagger));
}

.fs-remodel__rail {
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
}

.fs-remodel__track {
	display: flex;
	align-items: flex-start;
	gap: 1.15rem;
	touch-action: pan-y;
	will-change: transform;
	cursor: grab;
}

.fs-remodel__track.is-dragging {
	cursor: grabbing;
}

.fs-remodel-card {
	position: relative;
	flex: 0 0 min(78vw, 20.5rem);
	transition: transform 0.4s var(--fs-ease), opacity 0.35s ease, filter 0.35s ease, margin 0.4s var(--fs-ease);
	z-index: 1;
}

.fs-remodel-card--up {
	margin-top: 0;
}

.fs-remodel-card--down {
	margin-top: var(--fs-remodel-stagger);
}

@media (min-width: 768px) {
	.fs-remodel-card {
		flex-basis: min(40vw, 22.5rem);
	}
}

@media (min-width: 1100px) {
	.fs-remodel-card {
		flex-basis: min(28vw, 24rem);
	}
}

.fs-remodel__track.is-focusing .fs-remodel-card:not(.is-active) {
	opacity: 0.45;
	filter: brightness(0.62);
}

.fs-remodel-card.is-active {
	transform: scale(1.04);
	z-index: 2;
	opacity: 1;
	filter: none;
}

.fs-remodel-card__media {
	position: relative;
	display: block;
	aspect-ratio: 3 / 4;
	min-height: 22rem;
	overflow: hidden;
	border-radius: 1.1rem;
	background: #ddd;
	text-decoration: none;
	color: #fff;
	box-shadow: 0 14px 36px rgb(20 20 20 / 0.1);
}

.fs-remodel-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.55s var(--fs-ease);
}

.fs-remodel-card__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		180deg,
		rgb(0 0 0 / 0.08) 28%,
		rgb(0 0 0 / 0.45) 62%,
		rgb(0 0 0 / 0.82) 100%
	);
	pointer-events: none;
	transition: background 0.35s ease;
}

.fs-remodel-card.is-active .fs-remodel-card__media img,
.fs-remodel-card:hover .fs-remodel-card__media img {
	transform: scale(1.05);
}

.fs-remodel-card.is-active .fs-remodel-card__veil,
.fs-remodel-card:hover .fs-remodel-card__veil {
	background: linear-gradient(
		180deg,
		rgb(0 0 0 / 0.18) 18%,
		rgb(0 0 0 / 0.58) 55%,
		rgb(0 0 0 / 0.9) 100%
	);
}

.fs-remodel-card__tag {
	position: absolute;
	top: 0.9rem;
	left: 0.9rem;
	z-index: 3;
	padding: 0.35rem 0.7rem;
	border-radius: 999px;
	background: rgb(255 255 255 / 0.2);
	border: 1px solid rgb(255 255 255 / 0.4);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	font-family: var(--fs-font-ui);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #fff;
}

.fs-remodel-card__view {
	position: absolute;
	inset: 0;
	z-index: 3;
	display: grid;
	place-items: center;
	opacity: 0;
	transition: opacity 0.35s ease;
	pointer-events: none;
}

.fs-remodel-card__view span {
	display: grid;
	place-items: center;
	width: 4.25rem;
	height: 4.25rem;
	border-radius: 999px;
	background: rgb(18 18 18 / 0.72);
	border: 1px solid rgb(255 255 255 / 0.28);
	font-family: var(--fs-font-ui);
	font-size: 0.85rem;
	font-weight: 600;
	color: #fff;
}

.fs-remodel-card.is-active .fs-remodel-card__view,
.fs-remodel-card:hover .fs-remodel-card__view {
	opacity: 1;
}

.fs-remodel-card__content {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	padding: 1.25rem 1.1rem 1.2rem;
	pointer-events: none;
}

.fs-remodel-card__name {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: clamp(1.15rem, 2vw, 1.35rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: #fff;
}

.fs-remodel-card__copy {
	margin: 0;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	font-size: 0.84rem;
	line-height: 1.45;
	color: rgb(255 255 255 / 0.9);
	transform: translateY(0.35rem);
	transition:
		opacity 0.35s var(--fs-ease),
		transform 0.35s var(--fs-ease),
		max-height 0.4s var(--fs-ease);
}

.fs-remodel-card.is-active .fs-remodel-card__copy,
.fs-remodel-card:hover .fs-remodel-card__copy,
.fs-remodel-card:focus-within .fs-remodel-card__copy {
	max-height: 8rem;
	opacity: 1;
	transform: translateY(0);
	overflow-y: auto;
}

.fs-remodel__arrow {
	position: absolute;
	top: calc(50% - (var(--fs-remodel-stagger) / 2));
	z-index: 5;
	display: grid;
	place-items: center;
	width: 3.15rem;
	height: 3.15rem;
	margin: 0;
	padding: 0;
	border: 1px solid rgb(255 255 255 / 0.28);
	border-radius: 999px;
	background: rgb(255 255 255 / 0.12);
	color: #fff;
	cursor: pointer;
	box-shadow: 0 10px 28px rgb(0 0 0 / 0.28);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	transform: translateY(-50%);
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.fs-remodel__arrow--prev {
	left: 0.65rem;
}

.fs-remodel__arrow--next {
	right: 0.65rem;
}

.fs-remodel__arrow:hover,
.fs-remodel__arrow:focus-visible {
	background: var(--color-brand-primary);
	border-color: var(--color-brand-primary);
	color: #fff;
	outline: none;
	transform: translateY(-50%) scale(1.05);
}

@media (min-width: 768px) {
	.fs-remodel__arrow {
		width: 3.4rem;
		height: 3.4rem;
	}

	.fs-remodel__arrow--prev {
		left: 1rem;
	}

	.fs-remodel__arrow--next {
		right: 1rem;
	}
}

@media (max-width: 767px) {
	.fs-remodel {
		--fs-remodel-stagger: 1.5rem;
	}

	.fs-remodel__rail {
		mask-image: none;
		-webkit-mask-image: none;
		padding-left: 0.25rem;
		padding-right: 0.25rem;
	}

	.fs-remodel__arrow--prev {
		left: 0.35rem;
	}

	.fs-remodel__arrow--next {
		right: 0.35rem;
	}

	.fs-remodel-card {
		flex-basis: min(84vw, 19.5rem);
	}

	.fs-remodel-card__media {
		min-height: 24rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fs-remodel-card,
	.fs-remodel-card__media img,
	.fs-remodel-card__copy,
	.fs-remodel-card__view {
		transition: none;
	}
}

/* About — full-bleed image + soft black fade (no hard edge) */
.fs-about {
	padding: 0;
	background: #0a0a0a;
}

.fs-about__panel {
	position: relative;
	isolation: isolate;
	display: grid;
	min-height: min(78vh, 42rem);
	overflow: hidden;
	background: #0a0a0a;
}

.fs-about__figure {
	position: absolute;
	inset: 0;
	z-index: 0;
	margin: 0;
	overflow: hidden;
}

.fs-about__figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 70% center;
	display: block;
}

/* Soft black veil: ~70% on the text side, long fade into the photo */
.fs-about__veil {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		90deg,
		rgb(0 0 0 / 0.78) 0%,
		rgb(0 0 0 / 0.7) 28%,
		rgb(0 0 0 / 0.48) 48%,
		rgb(0 0 0 / 0.22) 68%,
		rgb(0 0 0 / 0.06) 84%,
		transparent 100%
	);
}

/*
 * Same horizontal track as .container-brand (logo and other section titles):
 * max 80rem, centered, gutters 1rem / 1.5rem / 2rem. Do not use vw padding —
 * that drifted this block off the logo on both mid and wide screens.
 */
.fs-about__copy {
	position: relative;
	z-index: 2;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1.35rem;
	width: 100%;
	max-width: 80rem;
	margin-left: auto;
	margin-right: auto;
	padding-top: clamp(2.75rem, 7vw, 5.5rem);
	padding-bottom: clamp(2.75rem, 7vw, 5.5rem);
	padding-left: 1rem;
	padding-right: 1rem;
}

@media (min-width: 640px) {
	.fs-about__copy {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}

@media (min-width: 1024px) {
	.fs-about__copy {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

.fs-about__title {
	margin: 0;
	max-width: 16em;
	color: #fff;
	font-size: clamp(1.85rem, 3.6vw, 2.85rem);
	text-wrap: balance;
}

.fs-about__lede {
	margin: 0;
	max-width: 34rem;
	font-size: 1.02rem;
	line-height: 1.7;
	color: rgb(255 255 255 / 0.86);
}

.fs-stats {
	list-style: none;
	margin: 0.35rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.85rem 1rem;
	max-width: 36rem;
}

.fs-stats li {
	display: grid;
	gap: 0.25rem;
	text-align: left;
}

.fs-stats strong {
	font-family: var(--fs-font-display);
	font-size: clamp(1.55rem, 2.8vw, 2.1rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #fff;
	line-height: 1.1;
}

.fs-stats span {
	font-family: var(--fs-font-ui);
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 0.72);
	line-height: 1.35;
}

.fs-about__actions {
	margin-top: 0.35rem;
}

.fs-about__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-height: 2.85rem;
	padding: 0.7rem 1.25rem;
	border-radius: 0.35rem;
	border: 1px solid var(--color-brand-primary);
	background: var(--color-brand-primary);
	color: #fff;
	font-family: var(--fs-font-ui);
	font-size: 0.9rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.fs-about__cta:hover {
	background: var(--color-brand-primary-hover);
	border-color: var(--color-brand-primary-hover);
	color: #fff;
	transform: translateY(-1px);
}

@media (max-width: 959px) {
	/* Keep photo full-bleed behind the whole block (no hard cut into solid black) */
	.fs-about__panel {
		min-height: min(92vh, 44rem);
		display: flex;
		align-items: flex-end;
		background: #0a0a0a;
	}

	.fs-about__figure {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		min-height: 100%;
		max-height: none;
	}

	.fs-about__figure img {
		width: 100%;
		height: 100%;
		min-height: 100%;
		object-fit: cover;
		object-position: center 40%;
	}

	/* Softer veil so the kitchen stays visible behind title + copy */
	.fs-about__veil {
		background: linear-gradient(
			180deg,
			rgb(0 0 0 / 0.08) 0%,
			rgb(0 0 0 / 0.18) 28%,
			rgb(0 0 0 / 0.42) 52%,
			rgb(0 0 0 / 0.62) 72%,
			rgb(0 0 0 / 0.72) 100%
		);
	}

	.fs-about__copy {
		position: relative;
		z-index: 2;
		width: 100%;
		max-width: 80rem;
		margin-top: 0;
		margin-left: auto;
		margin-right: auto;
		justify-content: flex-end;
		gap: 1.1rem;
		padding-top: clamp(8rem, 28vw, 12rem);
		padding-bottom: clamp(2.25rem, 6vw, 3.25rem);
	}

	.fs-about__title,
	.fs-about__lede {
		text-shadow: 0 1px 18px rgb(0 0 0 / 0.55);
	}

	.fs-about__lede {
		max-width: 36rem;
	}

	.fs-stats {
		gap: 0.7rem 0.85rem;
	}
}

/* CTA band — photo banner + call button */
.fs-cta-band {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 4.5rem 0;
	min-height: 22rem;
	display: flex;
	align-items: center;
	background:
		var(--fs-cta-bg, none) right center / cover no-repeat,
		#121212;
	color: #fff;
}

.fs-cta-band__veil {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(
			90deg,
			rgb(10 10 10 / 0.92) 0%,
			rgb(10 10 10 / 0.78) 42%,
			rgb(10 10 10 / 0.45) 68%,
			rgb(10 10 10 / 0.28) 100%
		);
}

@media (max-width: 719px) {
	.fs-cta-band {
		background-position: 65% center;
		min-height: 0;
		padding: 3.5rem 0;
	}

	.fs-cta-band__veil {
		background: rgb(10 10 10 / 0.78);
	}
}

.fs-cta-band__inner {
	position: relative;
	z-index: 1;
	width: 100%;
}

.fs-cta-band__content {
	max-width: 32rem;
}

.fs-cta-band__mark {
	display: inline-flex;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: 1rem;
	color: #fff;
}

.fs-cta-band__mark svg {
	width: 100%;
	height: 100%;
}

.fs-cta-band__eyebrow {
	margin: 0 0 0.65rem;
	font-family: var(--fs-font-ui);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #ffb4a8;
}

.fs-cta-band__title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: clamp(1.75rem, 3.4vw, 2.45rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: #fff;
}

.fs-cta-band__copy {
	margin: 1rem 0 0;
	max-width: 28rem;
	font-size: 1.02rem;
	color: rgb(255 255 255 / 0.84);
	line-height: 1.7;
}

.fs-cta-band__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-top: 1.65rem;
}

.fs-cta-band__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	margin-top: 0;
	padding: 0.95rem 1.65rem;
	border-radius: var(--fs-radius);
	border: 1px solid transparent;
	background: var(--color-brand-primary);
	color: #fff;
	font-family: var(--fs-font-ui);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1.2;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

/* Homepage CTA has no actions wrapper — keep spacing */
.fs-cta-band__content > .fs-cta-band__btn {
	margin-top: 1.65rem;
}

.fs-cta-band__btn:hover {
	background: var(--color-brand-primary-hover, #8b0d00);
	color: #fff;
	transform: translateY(-1px);
}

.fs-cta-band__btn--ghost {
	background: transparent;
	border-color: rgb(255 255 255 / 0.55);
	color: #fff;
}

.fs-cta-band__btn--ghost:hover {
	background: rgb(255 255 255 / 0.1);
	border-color: #fff;
	color: #fff;
}

.fs-cta-band__btn svg {
	flex-shrink: 0;
}

/* Areas — photo background + equal chip buttons */
.fs-areas {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background:
		var(--fs-areas-bg, none) center / cover no-repeat,
		#1a1a1a;
	color: #fff;
}

.fs-areas__veil {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgb(12 12 12 / 0.78);
	pointer-events: none;
}

.fs-areas__inner {
	position: relative;
	z-index: 1;
}

.fs-areas__head {
	max-width: 40rem;
	margin-bottom: 2rem;
}

.fs-areas__eyebrow {
	margin: 0 0 0.75rem;
	font-family: var(--fs-font-ui);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #ffb4a8;
}

.fs-areas__title {
	color: #fff;
}

.fs-areas__lede {
	margin: 1rem 0 0;
	font-size: 1.05rem;
	line-height: 1.65;
	color: rgb(255 255 255 / 0.82);
}

.fs-areas__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.65rem;
}

@media (min-width: 640px) {
	.fs-areas__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.fs-areas__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0.75rem;
	}
}

.fs-areas__grid li {
	margin: 0;
	padding: 0;
	min-width: 0;
}

.fs-areas__chip {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 3rem;
	padding: 0.7rem 0.85rem;
	border: 1px solid rgb(255 255 255 / 0.9);
	border-radius: 0.35rem;
	background: rgb(255 255 255 / 0.3);
	color: #fff;
	font-family: var(--fs-font-ui);
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	text-wrap: balance;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.fs-areas__chip:hover,
.fs-areas__chip:focus-visible {
	background: rgb(255 255 255 / 0.45);
	border-color: #fff;
	color: #fff;
	transform: translateY(-1px);
	outline: none;
}

.fs-areas__more {
	margin: 1.75rem 0 0;
}

.fs-areas__more a {
	font-family: var(--fs-font-ui);
	font-weight: 600;
	color: #ffb4a8;
	text-decoration: none;
}

.fs-areas__more a:hover {
	color: #fff;
	text-decoration: underline;
}

/* Brands — compact infinite logo marquee */
.fs-brands {
	padding: 1.5rem 0 1.75rem;
	background: transparent;
	border-top: 0;
	overflow: hidden;
}

.fs-brands__viewport {
	width: 100%;
	overflow: hidden;
	mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
}

.fs-brands__track {
	display: flex;
	width: max-content;
	animation: fs-brands-marquee 38s linear infinite;
}

.fs-brands__track:hover {
	animation-play-state: paused;
}

.fs-brands__row {
	list-style: none;
	margin: 0;
	padding: 0 0.5rem;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 2.75rem;
}

.fs-brands__item {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	min-height: 3rem;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	opacity: 0.95;
	filter: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.fs-brands__item:hover {
	opacity: 1;
	transform: translateY(-1px);
}

.fs-brands__item img {
	display: block;
	max-height: 2.4rem;
	width: auto;
	max-width: 8.5rem;
	object-fit: contain;
	background: transparent;
}

@keyframes fs-brands-marquee {
	from { transform: translate3d(0, 0, 0); }
	to { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.fs-brands__track {
		animation: none;
	}

	.fs-brands__viewport {
		overflow-x: auto;
		mask-image: none;
		-webkit-mask-image: none;
	}
}

/* Local guidance — dark split + collage */
.fs-local {
	padding-top: 4rem;
	padding-bottom: 4.25rem;
	background: #121212;
	color: #fff;
}

.fs-local__layout {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* Mobile: title → collage → copy */
.fs-local__main {
	display: contents;
}

.fs-local__title {
	order: 1;
	margin: 0;
	max-width: 22rem;
	color: #fff;
}

.fs-local__collage {
	order: 2;
	display: grid;
	grid-template-columns: 1fr 1fr 1.15fr;
	grid-template-rows: repeat(6, minmax(0, 1fr));
	gap: 0.5rem;
	width: 100%;
	max-width: 28rem;
	height: 22rem;
	margin: 0 auto;
	min-height: 0;
	overflow: hidden;
}

.fs-local__body {
	order: 3;
	min-width: 0;
}

.fs-local__shot {
	margin: 0;
	min-height: 0;
	min-width: 0;
	overflow: hidden;
	border-radius: 0.7rem;
	background: #1c1c1c;
}

.fs-local__shot img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fs-local__shot:nth-child(1) { grid-area: 1 / 1 / 4 / 2; }
.fs-local__shot:nth-child(2) { grid-area: 4 / 1 / 7 / 2; }
.fs-local__shot:nth-child(3) { grid-area: 1 / 2 / 3 / 3; }
.fs-local__shot:nth-child(4) { grid-area: 3 / 2 / 5 / 3; }
.fs-local__shot:nth-child(5) { grid-area: 5 / 2 / 7 / 3; }
.fs-local__shot:nth-child(6) { grid-area: 1 / 3 / 5 / 4; }
.fs-local__shot:nth-child(7) { grid-area: 5 / 3 / 7 / 4; }

/* Hub pages with 6 shots (no 7th tile): stretch bottom-middle across under the tall right image */
.fs-local__collage:not(:has(> .fs-local__shot:nth-child(7))) > .fs-local__shot:nth-child(5) {
	grid-area: 5 / 2 / 7 / 4;
}

.fs-local__prose p {
	margin: 0 0 1rem;
	font-size: 0.98rem;
	line-height: 1.7;
	color: rgb(255 255 255 / 0.78);
}

.fs-local__prose p:last-child {
	margin-bottom: 0;
}

.fs-local__prose a {
	color: #ffb4a8;
	font-weight: 600;
	text-decoration: none;
}

.fs-local__prose a:hover {
	color: #fff;
	text-decoration: underline;
}

@media (min-width: 768px) {
	.fs-local {
		padding-top: 4.5rem;
		padding-bottom: 4.75rem;
	}

	/*
	 * Two columns inside the container. Do not use a percentage padding-right:
	 * that percentage is based on the full-bleed section, so on wide screens
	 * the heading and copy collapse into a sliver beside the collage.
	 */
	.fs-local__layout {
		display: grid;
		grid-template-columns: minmax(18rem, 1fr) minmax(0, 1.05fr);
		gap: 2rem 2.25rem;
		align-items: stretch;
		position: relative;
		padding-right: 0;
	}

	.fs-local__main {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 1.15rem;
		min-width: 0;
		width: auto;
	}

	.fs-local__title,
	.fs-local__body,
	.fs-local__collage {
		order: unset;
	}

	.fs-local__title {
		max-width: none;
		text-wrap: pretty;
	}

	.fs-local__prose {
		max-width: 38rem;
	}

	.fs-local__collage {
		position: relative;
		top: auto;
		right: auto;
		bottom: auto;
		width: auto;
		max-width: none;
		height: 100%;
		min-height: 28rem;
		margin: 0;
		overflow: hidden;
	}
}

@media (min-width: 1100px) {
	.fs-local__layout {
		grid-template-columns: minmax(24rem, 0.92fr) minmax(0, 1.08fr);
		gap: 2.5rem 3rem;
		padding-right: 0;
	}

	.fs-local__title {
		max-width: 22rem;
		font-size: clamp(2rem, 2.4vw, 2.75rem);
	}

	.fs-local__collage {
		width: auto;
		gap: 0.55rem;
		min-height: 32rem;
	}

	.fs-local__prose p {
		font-size: 1.05rem;
	}
}

/* ── Inner page hero (full-bleed under floating nav) ─────── */
.fs-page-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 20rem;
	display: flex;
	align-items: flex-end;
	background:
		var(--fs-page-hero-bg, none) center / cover no-repeat,
		#121212;
	color: #fff;
	text-align: left;
}

.fs-page-hero__veil {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background: rgb(10 10 10 / 0.58);
}

/*
 * Same horizontal inset as .container-brand (and the logo): do not
 * override max-width or add extra left padding — that pushed titles right.
 */
.fs-page-hero__inner.container-brand {
	position: relative;
	z-index: 1;
	width: 100%;
	padding-top: 8rem;
	padding-bottom: 3rem;
	text-align: left;
}

.fs-page-hero__eyebrow {
	margin: 0 0 0.55rem;
	font-family: var(--fs-font-ui);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #ffb4a8;
	text-align: left;
}

.fs-page-hero__title {
	margin: 0;
	max-width: 40rem;
	font-family: var(--fs-font-display);
	font-size: clamp(1.75rem, 3.4vw, 2.5rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	line-height: 1.15;
	color: #fff;
	text-align: left;
	text-wrap: balance;
}

.fs-page-hero__desc {
	margin: 0.85rem 0 0;
	max-width: 36rem;
	font-size: 1.05rem;
	line-height: 1.55;
	color: rgb(255 255 255 / 0.86);
	text-align: left;
}

@media (min-width: 768px) {
	.fs-page-hero {
		min-height: 24rem;
	}

	.fs-page-hero__inner.container-brand {
		padding-top: 9rem;
		padding-bottom: 3.75rem;
	}
}

@media (min-width: 1100px) {
	.fs-page-hero {
		min-height: 26rem;
	}
}

/* Hide Monarch share UI (sidebar + Pinterest “Pin It” bar after footer) */
.et_social_sidebar_networks,
.et_social_mobile,
.et_social_pinned,
.et_social_simple,
.et_monarch .et_social_sidebar_networks,
.et_social_networks.et_social_sidebar_networks,
#et-social-sidebar,
.et_social_pinwindow_overlay,
.et_social_pin_images_outer,
.et_social_pinterest_window,
.et_social_pin_images,
.et_social_modal_header {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
	height: 0 !important;
	max-height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.fs-page-content.section-y {
	padding-top: 2.75rem;
	padding-bottom: 3.5rem;
}

/* ── Contact page ────────────────────────────────────────── */
.fs-contact {
	background: var(--color-surface, #f4f1ee);
}

.fs-contact__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: start;
}

.fs-contact__heading {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: clamp(1.35rem, 2.4vw, 1.7rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--color-ink);
}

.fs-contact__lede {
	margin: 0.55rem 0 0;
	color: var(--color-muted);
	line-height: 1.6;
}

.fs-contact__form-wrap {
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: calc(var(--fs-radius) + 0.15rem);
	padding: 1.5rem 1.35rem;
}

.fs-contact-form {
	margin-top: 1.35rem;
	display: grid;
	gap: 1rem;
}

.fs-contact-form__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.fs-contact-form__field {
	display: grid;
	gap: 0.4rem;
	font-family: var(--fs-font-ui);
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--color-ink);
}

.fs-contact-form__field abbr {
	color: var(--color-brand-primary);
	text-decoration: none;
}

.fs-contact-form__field input,
.fs-contact-form__field select,
.fs-contact-form__field textarea {
	width: 100%;
	border: 1px solid var(--color-border);
	border-radius: var(--fs-radius);
	background: #fff;
	padding: 0.8rem 0.9rem;
	font-family: var(--fs-font-ui);
	font-size: 0.95rem;
	font-weight: 400;
	color: var(--color-ink);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.fs-contact-form__field input:focus,
.fs-contact-form__field select:focus,
.fs-contact-form__field textarea:focus {
	outline: none;
	border-color: var(--color-brand-primary);
	box-shadow: 0 0 0 3px rgb(168 16 0 / 0.14);
}

.fs-contact-form__field textarea {
	resize: vertical;
	min-height: 8rem;
}

.fs-contact-form__note {
	margin: 0;
	font-size: 0.9rem;
	font-weight: 500;
}

.fs-contact-form__note.is-error {
	color: #a81000;
}

.fs-contact-form__note.is-success {
	color: #1f6b3a;
}

.fs-contact-form__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	margin-top: 0.25rem;
	padding: 0.95rem 1.5rem;
	border: 0;
	border-radius: var(--fs-radius);
	background: var(--color-brand-primary);
	color: #fff;
	font-family: var(--fs-font-ui);
	font-size: 0.95rem;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.fs-contact-form__submit:hover {
	background: var(--color-brand-primary-hover, #8b0d00);
	transform: translateY(-1px);
}

.fs-contact__aside {
	min-width: 0;
}

.fs-contact__card {
	background: #121212;
	color: #fff;
	border-radius: calc(var(--fs-radius) + 0.15rem);
	padding: 1.6rem 1.4rem;
	height: 100%;
}

.fs-contact__card .fs-contact__heading {
	color: #fff;
}

.fs-contact__card .fs-contact__lede {
	color: rgb(255 255 255 / 0.72);
}

.fs-contact__details {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: grid;
	gap: 1.15rem;
}

.fs-contact__details li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.75rem;
	align-items: start;
}

.fs-contact__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	border-radius: 0.45rem;
	background: rgb(168 16 0 / 0.22);
	color: #ffb4a8;
}

.fs-contact__label {
	display: block;
	margin-bottom: 0.2rem;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 0.5);
}

.fs-contact__details a {
	color: #fff;
	font-weight: 600;
	text-decoration: none;
	line-height: 1.45;
}

.fs-contact__details a:hover {
	color: #ffb4a8;
}

.fs-hours-list {
	list-style: none;
	margin: 0.45rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.28rem;
}

.fs-hours-list li {
	display: grid;
	grid-template-columns: minmax(6.5rem, 7.5rem) minmax(0, 1fr);
	gap: 0.35rem 0.75rem;
	align-items: baseline;
	font-size: 0.92rem;
	line-height: 1.4;
	color: inherit;
}

.fs-hours-list__day {
	font-weight: 600;
}

.fs-hours-list__time {
	opacity: 0.92;
}

.fs-contact__hours {
	margin-top: 1.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid rgb(255 255 255 / 0.12);
}

.fs-contact__hours p,
.fs-contact__hours .fs-hours-list {
	margin: 0.35rem 0 0;
	color: rgb(255 255 255 / 0.78);
	line-height: 1.55;
	font-size: 0.95rem;
}

.fs-contact__extra {
	margin-top: 2.5rem;
}

@media (min-width: 640px) {
	.fs-contact-form__row {
		grid-template-columns: 1fr 1fr;
	}

	.fs-contact__form-wrap {
		padding: 1.85rem 1.75rem;
	}
}

@media (min-width: 960px) {
	.fs-contact__layout {
		grid-template-columns: minmax(0, 1.2fr) minmax(17rem, 0.85fr);
		gap: 2rem;
		align-items: stretch;
	}

	.fs-contact__card {
		padding: 2rem 1.75rem;
	}
}

/* ── Dark footer ─────────────────────────────────────────── */
.fs-footer {
	margin-top: auto;
	background: #121212;
	color: rgb(255 255 255 / 0.78);
	font-family: var(--fs-font-ui);
}

/* padding-block only — horizontal gutters come from .container-brand;
   never use the padding shorthand here (it zeroes left/right). */
.fs-footer__main {
	padding-top: 3.25rem;
	padding-bottom: 2.75rem;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

@media (min-width: 640px) {
	.fs-footer__main {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}

@media (min-width: 1024px) {
	.fs-footer__main {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

.fs-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem 2rem;
	align-items: start;
}

/* Mobile: center brand, location, and link columns */
@media (max-width: 719.98px) {
	.fs-footer__grid {
		justify-items: center;
		text-align: center;
	}

	.fs-footer__brand,
	.fs-footer__col {
		width: 100%;
		max-width: 22rem;
		display: flex;
		flex-direction: column;
		align-items: center;
	}

	.fs-footer__blurb {
		margin-left: auto;
		margin-right: auto;
	}

	.fs-footer__social {
		justify-content: center;
	}

	.fs-footer__heading {
		display: inline-block;
	}

	.fs-footer__address,
	.fs-footer__loc-name {
		text-align: center;
	}

	.fs-footer__contact-line a {
		justify-content: center;
	}

	.fs-footer__links {
		justify-items: center;
		width: 100%;
	}
}

@media (min-width: 720px) {
	.fs-footer__grid {
		grid-template-columns: 1.35fr 1fr 1fr;
		column-gap: 2.25rem;
	}

	.fs-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (min-width: 1024px) {
	.fs-footer__grid {
		grid-template-columns: minmax(14rem, 1.45fr) minmax(11rem, 1.1fr) minmax(8rem, 0.9fr) minmax(8rem, 0.9fr);
		column-gap: 2.75rem;
		row-gap: 0;
	}

	.fs-footer__brand {
		grid-column: auto;
		padding-right: 1.5rem;
		border-right: 1px solid rgb(255 255 255 / 0.1);
	}
}

.fs-footer__logo {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
}

.fs-footer__logo img {
	display: block;
	height: 3.25rem;
	width: auto;
	max-width: 12.5rem;
}

.fs-footer__blurb {
	margin: 1.15rem 0 0;
	max-width: 22rem;
	font-size: 0.95rem;
	line-height: 1.65;
	color: rgb(255 255 255 / 0.72);
}

.fs-footer__social {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.fs-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	border-radius: 0.45rem;
	border: 1px solid rgb(255 255 255 / 0.18);
	background: rgb(255 255 255 / 0.04);
	color: #fff;
	text-decoration: none;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.fs-footer__social-link svg {
	width: 1rem;
	height: 1rem;
	fill: currentColor;
}

.fs-footer__social-link:hover {
	background: var(--color-brand-primary);
	border-color: var(--color-brand-primary);
	color: #fff;
	transform: translateY(-1px);
}

.fs-footer__heading {
	margin: 0 0 1rem;
	padding-bottom: 0.55rem;
	font-family: var(--fs-font-display);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
	border-bottom: 2px solid var(--color-brand-primary);
	display: inline-block;
}

.fs-footer__loc-name {
	margin: 0 0 0.45rem;
	font-weight: 700;
	font-size: 1rem;
	color: #fff;
}

.fs-footer__address {
	margin: 0 0 1rem;
	font-size: 0.95rem;
	line-height: 1.55;
}

.fs-footer__address a {
	color: rgb(255 255 255 / 0.78);
	text-decoration: none;
}

.fs-footer__address a:hover {
	color: #ffb4a8;
}

.fs-footer__contact-line {
	margin: 0 0 0.55rem;
	font-size: 0.95rem;
}

.fs-footer__contact-line a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	color: #ffb4a8;
	text-decoration: none;
	font-weight: 600;
}

.fs-footer__contact-line a:hover {
	color: #fff;
}

.fs-footer__contact-icon {
	display: inline-flex;
	flex-shrink: 0;
	color: inherit;
}

.fs-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.55rem;
}

.fs-footer__links a {
	color: rgb(255 255 255 / 0.78);
	text-decoration: none;
	font-size: 0.95rem;
	line-height: 1.4;
	transition: color 0.15s ease;
}

.fs-footer__links a:hover {
	color: #ffb4a8;
}

.fs-footer__bar {
	border-top: 1px solid rgb(255 255 255 / 0.12);
	background: #0c0c0c;
}

.fs-footer__bar-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 1rem;
	padding-top: 1.15rem;
	padding-bottom: 1.15rem;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

@media (min-width: 640px) {
	.fs-footer__bar-inner {
		padding-left: 1.5rem;
		padding-right: 1.5rem;
	}
}

@media (min-width: 900px) {
	.fs-footer__bar-inner {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		text-align: left;
		gap: 1.25rem;
	}
}

@media (min-width: 1024px) {
	.fs-footer__bar-inner {
		padding-left: 2rem;
		padding-right: 2rem;
	}
}

.fs-footer__copy {
	margin: 0;
	font-size: 0.82rem;
	line-height: 1.45;
	color: rgb(255 255 255 / 0.55);
	flex: 1 1 auto;
	text-align: center;
	width: 100%;
}

.fs-footer__copy-link {
	color: inherit;
	font-weight: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.fs-footer__copy-link:hover,
.fs-footer__copy-link:focus-visible {
	color: rgb(255 255 255 / 0.92);
	font-weight: inherit;
	text-decoration: none;
}

@media (min-width: 900px) {
	.fs-footer__copy {
		text-align: left;
		width: auto;
	}
}

.fs-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35rem 0.65rem;
	font-size: 0.82rem;
}

@media (min-width: 900px) {
	.fs-footer__legal {
		justify-content: flex-start;
	}
}

.fs-footer__legal a {
	color: rgb(255 255 255 / 0.7);
	text-decoration: none;
	white-space: nowrap;
}

.fs-footer__legal a:hover {
	color: #ffb4a8;
}

.fs-footer__legal-sep {
	display: none;
}

.fs-footer__agency {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	line-height: 0;
	opacity: 0.92;
	transition: opacity 0.2s ease;
}

.fs-footer__agency:hover {
	opacity: 1;
}

.fs-footer__agency img {
	display: block;
	height: 1.85rem;
	width: auto;
	max-width: 8.5rem;
}

/* ── Flooring service pages ──────────────────────────────── */
.fs-service-page .fs-service__title,
.fs-service-page .fs-service-card__title,
.fs-service-page .fs-service-faq__item summary {
	font-family: var(--fs-font-display);
}

/* Hub / related: homepage charcoal floor cards in a static grid */
.fs-services--static .fs-services__lede {
	margin: 0.65rem 0 0;
	max-width: 36rem;
	font-size: 1.02rem;
	line-height: 1.6;
	color: rgb(255 255 255 / 0.78);
}

.fs-services__track--grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.15rem;
}

@media (min-width: 640px) {
	.fs-services__track--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.fs-services__track--grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.25rem;
	}

	.fs-services__track--compact {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	/* Remodeling hub: 4 services in one row */
	.fs-service-page--remodel .fs-services__track--grid:not(.fs-services__track--compact) {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1rem;
	}
}

@media (min-width: 1100px) {
	.fs-service-page--remodel .fs-services__track--grid:not(.fs-services__track--compact) {
		gap: 1.15rem;
	}
}

/*
 * Related cards (flooring + remodeling sub-pages):
 * equal tiles with gutters — never 5 skinny columns that clip titles.
 */
.fs-services--related .fs-services__track--compact {
	grid-template-columns: 1fr;
	gap: 1.15rem;
}

@media (min-width: 640px) {
	.fs-services--related .fs-services__track--compact {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.15rem;
	}
}

@media (min-width: 1024px) {
	.fs-services--related .fs-services__track--compact {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.25rem;
	}

	/* Others: 4 peer cards in one row (overrides related 3-col above) */
	.fs-service-page--others .fs-services--related .fs-services__track.fs-services__track--grid.fs-services__track--compact {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1.1rem;
	}
}

.fs-services--static .fs-floor-card {
	/* Fit grid cell — min-height + aspect-ratio was overflowing and closing gaps */
	min-height: 0;
	width: 100%;
	aspect-ratio: 4 / 3;
	display: flex;
	flex-direction: column;
}

.fs-services--static .fs-floor-card__content {
	justify-content: flex-end;
	padding: 1.25rem 1.05rem 1.35rem;
	gap: 0.4rem;
}

.fs-services--static .fs-floor-card__title {
	flex-shrink: 0;
	font-size: clamp(1.05rem, 1.6vw, 1.3rem);
	line-height: 1.2;
}

.fs-services--static .fs-floor-card__copy {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	opacity: 0.92;
	max-height: none;
	transform: none;
}

/* Remodel hub 4-up only (not related cards): taller cards + tighter type */
.fs-service-page--remodel .fs-services--static:not(.fs-services--related) .fs-floor-card {
	min-height: 0;
	aspect-ratio: 3 / 4.15;
}

.fs-service-page--remodel .fs-services--static:not(.fs-services--related) .fs-floor-card__title {
	font-size: clamp(0.92rem, 1.05vw, 1.12rem);
	letter-spacing: 0.045em;
}

.fs-service-page--remodel .fs-services--static:not(.fs-services--related) .fs-floor-card__copy {
	-webkit-line-clamp: 3;
	line-clamp: 3;
	font-size: 0.78rem;
	line-height: 1.4;
}

.fs-service-page--remodel .fs-services--static:not(.fs-services--related) .fs-floor-card__content {
	padding: 1rem 0.85rem 1.15rem;
}

@media (max-width: 1023px) {
	.fs-service-page--remodel .fs-services--static:not(.fs-services--related) .fs-floor-card {
		aspect-ratio: 4 / 3.2;
		min-height: 18rem;
	}

	.fs-service-page--remodel .fs-services--static:not(.fs-services--related) .fs-floor-card__title {
		font-size: clamp(1rem, 2.4vw, 1.2rem);
	}
}

/* Related cards (all service families): landscape tiles, titles fully visible */
.fs-services--related .fs-floor-card {
	min-height: 0;
	aspect-ratio: 4 / 3;
	max-height: none;
}

.fs-services--related .fs-floor-card__content {
	padding: 1.15rem 1rem 1.25rem;
}

.fs-services--related {
	padding-bottom: 2.5rem;
}

.fs-services--related .fs-floor-card__title {
	font-size: clamp(0.98rem, 1.2vw, 1.2rem);
	letter-spacing: 0.04em;
	line-height: 1.2;
	white-space: normal;
	overflow-wrap: break-word;
	hyphens: manual;
	max-width: 100%;
}

/* Flooring hub cards: keep titles fully visible in the 3×2 grid */
.fs-service-page--flooring .fs-services--static:not(.fs-services--related) .fs-floor-card {
	min-height: 0;
	aspect-ratio: 4 / 3;
}

.fs-service-page--flooring .fs-services--static:not(.fs-services--related) .fs-floor-card__title {
	font-size: clamp(1rem, 1.35vw, 1.25rem);
	letter-spacing: 0.05em;
	white-space: normal;
	overflow-wrap: break-word;
}

.fs-service-page--flooring .fs-services--static:not(.fs-services--related) .fs-floor-card__copy {
	-webkit-line-clamp: 3;
	line-clamp: 3;
}

.fs-service-grid__hub--on-dark {
	margin-top: 1.75rem;
}

.fs-service-grid__hub--on-dark a {
	color: #ffb4a8;
}

.fs-service-grid__hub--on-dark a:hover {
	color: #fff;
}

.fs-service__intro--hub {
	gap: 2rem;
}

.fs-service__copy--hub {
	min-width: 0;
}

.fs-service__copy--hub .fs-service__title {
	margin-bottom: 1.15rem;
}

@media (min-width: 900px) {
	.fs-service__intro--hub {
		display: grid;
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: 2.75rem;
		align-items: center;
	}

	/* Keep the whole text stack vertically centered beside the media */
	.fs-service__copy--hub {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-self: center;
	}
}

.fs-service__steps--wide {
	max-width: 52rem;
}

.fs-local--service {
	margin-top: 0;
}

.fs-service--process {
	background: rgb(255 255 255 / 0.4);
}

.fs-service {
	background: transparent;
}

.fs-service__eyebrow {
	margin: 0 0 0.55rem;
	font-family: var(--fs-font-ui);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-brand-primary);
}

.fs-service__title {
	margin: 0 0 1rem;
	max-width: 40rem;
	font-size: clamp(1.55rem, 2.4vw, 2.15rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: var(--color-ink);
	text-wrap: balance;
}

.fs-service__title--on-dark {
	color: #fff;
	max-width: 36rem;
}

.fs-service__lede {
	margin: 0;
	max-width: 36rem;
	font-size: 1.02rem;
	line-height: 1.65;
	color: var(--color-muted);
}

.fs-service__narrow {
	max-width: 46rem;
}

.fs-service__intro {
	display: grid;
	gap: 1.75rem;
	align-items: start;
}

.fs-service__intro--split {
	gap: 1.75rem;
}

@media (min-width: 900px) {
	.fs-service__intro--split {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 2.5rem 2.75rem;
		align-items: start;
	}
}

.fs-service__copy {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	min-width: 0;
}

.fs-service__copy .fs-service__eyebrow {
	margin-bottom: 0.5rem;
}

.fs-service__copy .fs-service__title {
	margin-bottom: 1rem;
	max-width: none;
}

.fs-service__copy .fs-service__prose {
	width: 100%;
}

.fs-service__prose p,
.fs-service__para,
.fs-service-band__prose p {
	margin: 0 0 1rem;
	font-size: 1.02rem;
	line-height: 1.7;
	color: var(--color-ink);
}

.fs-service__prose p:last-child,
.fs-service__para:last-child,
.fs-service-band__prose p:last-child {
	margin-bottom: 0;
}

.fs-service__list {
	list-style: none;
	margin: 1.15rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.65rem;
}

.fs-service__list li {
	position: relative;
	padding-left: 1.55rem;
	font-size: 0.98rem;
	line-height: 1.55;
	color: var(--color-ink);
}

.fs-service__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45rem;
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 999px;
	background: var(--color-brand-primary);
}

.fs-service__media {
	margin: 0;
	border-radius: calc(var(--fs-radius) + 0.15rem);
	overflow: hidden;
	background: var(--color-brand-dark);
	box-shadow: 0 18px 40px rgb(20 20 20 / 0.12);
}

.fs-service__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Service intro image slider */
.fs-service-slider {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.fs-service-slider__viewport {
	position: relative;
	border-radius: calc(var(--fs-radius) + 0.15rem);
	overflow: hidden;
	background: var(--color-brand-dark);
	box-shadow: 0 18px 40px rgb(20 20 20 / 0.12);
}

.fs-service-slider__track {
	display: flex;
	transition: transform 0.45s var(--fs-ease);
	will-change: transform;
}

.fs-service-slider:not(.is-slider) .fs-service-slider__track {
	display: block;
}

.fs-service-slider__slide {
	margin: 0;
	flex: 0 0 100%;
	min-width: 100%;
}

.fs-service-slider__slide img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.fs-service-slider__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
}

.fs-service-slider__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	margin: 0;
	padding: 0;
	border: 1px solid var(--color-border);
	border-radius: 999px;
	background: var(--color-surface-card);
	color: var(--color-ink);
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.fs-service-slider__nav:hover,
.fs-service-slider__nav:focus-visible {
	border-color: rgb(168 16 0 / 0.45);
	color: var(--color-brand-primary);
	outline: none;
}

.fs-service-slider__dots {
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.fs-service-slider__dot {
	width: 0.5rem;
	height: 0.5rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgb(20 20 20 / 0.22);
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.fs-service-slider__dot.is-active {
	background: var(--color-brand-primary);
	transform: scale(1.15);
}

.fs-service-slider__dot:focus-visible {
	outline: 2px solid var(--color-brand-primary);
	outline-offset: 2px;
}

.fs-service__steps {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: grid;
	gap: 1.15rem;
}

.fs-service__steps li {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.85rem;
	align-items: start;
}

.fs-service__step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 999px;
	background: var(--color-brand-soft);
	color: var(--color-brand-primary);
	font-family: var(--fs-font-ui);
	font-size: 0.85rem;
	font-weight: 700;
}

.fs-service__steps p {
	margin: 0.15rem 0 0;
	font-size: 1rem;
	line-height: 1.65;
	color: var(--color-ink);
}

.fs-service-band {
	background: var(--color-brand-dark);
	color: #fff;
}

.fs-service-band__inner {
	max-width: 48rem;
}

.fs-service-band__prose p {
	color: rgb(255 255 255 / 0.86);
}

.fs-service-grid {
	background: rgb(255 255 255 / 0.45);
}

.fs-service-grid__head {
	margin-bottom: 1.75rem;
}

.fs-service-grid__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.15rem;
}

@media (min-width: 640px) {
	.fs-service-grid__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.fs-service-grid__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.35rem;
	}

	.fs-service-grid__list--compact {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.fs-service-grid__list--compact {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

.fs-service-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: calc(var(--fs-radius) + 0.1rem);
	overflow: hidden;
	transition: transform 0.25s var(--fs-ease), box-shadow 0.25s var(--fs-ease), border-color 0.2s ease;
}

.fs-service-card:hover,
.fs-service-card:focus-visible {
	transform: translateY(-3px);
	border-color: rgb(168 16 0 / 0.35);
	box-shadow: 0 16px 36px rgb(20 20 20 / 0.1);
	outline: none;
}

.fs-service-card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 11;
	overflow: hidden;
	background: var(--color-brand-dark);
}

.fs-service-card--compact .fs-service-card__media {
	aspect-ratio: 4 / 3;
}

.fs-service-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s var(--fs-ease);
}

.fs-service-card:hover .fs-service-card__media img {
	transform: scale(1.04);
}

.fs-service-card__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 45%, rgb(12 12 12 / 0.35));
	pointer-events: none;
}

.fs-service-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	padding: 1.05rem 1.1rem 1.2rem;
	flex: 1;
}

.fs-service-card--compact .fs-service-card__body {
	padding: 0.85rem 0.9rem 1rem;
}

.fs-service-card__title {
	font-size: 1.12rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--color-ink);
}

.fs-service-card__copy {
	font-size: 0.92rem;
	line-height: 1.5;
	color: var(--color-muted);
}

.fs-service-card__more {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: auto;
	padding-top: 0.55rem;
	font-family: var(--fs-font-ui);
	font-size: 0.84rem;
	font-weight: 650;
	color: var(--color-brand-primary);
}

.fs-service-grid__hub {
	margin: 1.75rem 0 0;
	text-align: center;
}

.fs-service-grid__hub a {
	font-family: var(--fs-font-ui);
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--color-brand-primary);
	text-decoration: none;
}

.fs-service-grid__hub a:hover {
	text-decoration: underline;
}

.fs-service-faq {
	background: transparent;
}

.fs-service-faq__list {
	display: grid;
	gap: 0.65rem;
	margin-top: 1.25rem;
}

.fs-service-faq__item {
	border: 1px solid var(--color-border);
	border-radius: var(--fs-radius);
	background: var(--color-surface-card);
	padding: 0.15rem 1rem;
}

.fs-service-faq__item summary {
	cursor: pointer;
	list-style: none;
	padding: 0.95rem 0;
	font-size: 1rem;
	font-weight: 650;
	line-height: 1.4;
	color: var(--color-ink);
}

.fs-service-faq__item summary::-webkit-details-marker {
	display: none;
}

.fs-service-faq__item summary::after {
	content: "+";
	float: right;
	color: var(--color-brand-primary);
	font-weight: 700;
}

.fs-service-faq__item[open] summary::after {
	content: "–";
}

.fs-service-faq__item p {
	margin: 0 0 1rem;
	padding-right: 1.5rem;
	font-size: 0.96rem;
	line-height: 1.65;
	color: var(--color-muted);
}

/* Service feature grid — image left + 2×2 cards */
.fs-service-features {
	background: transparent;
}

.fs-service-features__layout {
	display: grid;
	gap: 1.75rem;
	align-items: stretch;
}

@media (min-width: 900px) {
	.fs-service-features__layout {
		grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
		gap: 2.5rem 2.75rem;
		align-items: stretch;
	}
}

.fs-service-features__media {
	margin: 0;
	border-radius: calc(var(--fs-radius) + 0.25rem);
	overflow: hidden;
	background: var(--color-brand-dark);
	box-shadow: 0 18px 40px rgb(20 20 20 / 0.1);
	height: 100%;
	min-height: 18rem;
}

.fs-service-features__media img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 18rem;
	object-fit: cover;
	aspect-ratio: 4 / 5;
}

@media (min-width: 900px) {
	.fs-service-features__media img {
		aspect-ratio: auto;
		min-height: 100%;
	}
}

.fs-service-features__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.35rem 1.5rem;
	align-content: center;
}

@media (min-width: 640px) {
	.fs-service-features__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.75rem 1.85rem;
	}
}

.fs-service-feature {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.55rem;
	min-width: 0;
	padding: 0.15rem 0;
}

.fs-service-feature__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.85rem;
	height: 1.85rem;
	color: rgb(20 20 20 / 0.55);
}

.fs-service-feature__icon svg {
	width: 100%;
	height: 100%;
}

.fs-service-feature__title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: 1.12rem;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.25;
	color: var(--color-ink);
}

.fs-service-feature__text {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--color-muted);
}

/* FAQ band — heading left, translucent accordion right */
.fs-faq-band {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 3.25rem 0;
	background:
		var(--fs-faq-bg, none) center / cover no-repeat,
		#121212;
	color: #fff;
}

.fs-faq-band__veil {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(105deg, rgb(10 10 10 / 0.78) 0%, rgb(10 10 10 / 0.55) 45%, rgb(10 10 10 / 0.4) 100%),
		rgb(10 10 10 / 0.28);
}

.fs-faq-band__inner {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 1.75rem;
	align-items: start;
}

@media (min-width: 900px) {
	.fs-faq-band__inner {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
		gap: 2.75rem 3rem;
		align-items: center;
	}
}

.fs-faq-band__head {
	max-width: 22rem;
}

.fs-faq-band__eyebrow {
	margin: 0 0 0.5rem;
	font-family: var(--fs-font-ui);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #ffb4a8;
}

.fs-faq-band__title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: clamp(1.55rem, 2.6vw, 2.15rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: #fff;
	text-wrap: balance;
}

.fs-faq-band__list {
	display: grid;
	gap: 0.55rem;
	width: 100%;
	min-width: 0;
}

.fs-faq-band__item {
	border: 1px solid rgb(255 255 255 / 0.28);
	border-radius: var(--fs-radius);
	background: rgb(255 255 255 / 0.14);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	padding: 0 0.95rem;
}

.fs-faq-band__item[open] {
	background: rgb(255 255 255 / 0.22);
}

.fs-faq-band__item summary {
	cursor: pointer;
	list-style: none;
	padding: 0.9rem 1.6rem 0.9rem 0;
	font-family: var(--fs-font-display);
	font-size: 0.98rem;
	font-weight: 650;
	line-height: 1.4;
	color: #fff;
	position: relative;
}

.fs-faq-band__item summary::-webkit-details-marker {
	display: none;
}

.fs-faq-band__item summary::after {
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	color: #ffb4a8;
	font-weight: 700;
	font-size: 1.1rem;
	line-height: 1;
}

.fs-faq-band__item[open] summary::after {
	content: "–";
}

.fs-faq-band__item p {
	margin: 0 0 0.95rem;
	padding-right: 0.5rem;
	font-size: 0.94rem;
	line-height: 1.65;
	color: rgb(255 255 255 / 0.86);
}

/* Conclusion — same left inset as hero title */
.fs-service--conclusion .fs-service__title {
	max-width: 40rem;
}

.fs-service--conclusion .fs-service__para {
	max-width: 40rem;
}

@media (max-width: 639px) {
	.fs-service-features__media {
		order: -1;
		min-height: 14rem;
	}

	.fs-service-features__media img {
		min-height: 14rem;
		aspect-ratio: 16 / 11;
	}

	.fs-faq-band {
		padding: 2.5rem 0;
	}

	.fs-faq-band__head {
		max-width: none;
	}
}

@media (max-width: 639px) {
	.fs-service-slider {
		order: -1;
	}

	.fs-service__media {
		order: -1;
	}

	.fs-service__intro--split {
		display: flex;
		flex-direction: column;
	}

	.fs-cta-band__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.fs-cta-band__btn {
		width: 100%;
	}
}

/* ── Blog listing + single ───────────────────────────────── */
.fs-blog-listing__layout,
.fs-blog-article__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	align-items: start;
}

@media (min-width: 960px) {
	/* Archive: categories left, posts grid right */
	.fs-blog-listing__layout {
		grid-template-columns: minmax(14rem, 17rem) minmax(0, 1fr);
		gap: 2.5rem 2.75rem;
	}

	/*
	 * Single post: article is the primary column; sidebar is a narrow
	 * quick-reference strip (never let it grow into 1fr).
	 */
	.fs-blog-article__layout {
		grid-template-columns: minmax(0, 1fr) 14.5rem;
		gap: 2.5rem 2rem;
	}

	.fs-blog--single .fs-blog-sidebar {
		width: 14.5rem;
		max-width: 14.5rem;
		justify-self: stretch;
	}

	.fs-blog--single .fs-blog-article__main {
		min-width: 0;
		width: 100%;
	}
}

.fs-blog-listing__main {
	min-width: 0;
}

/*
 * Blog post grid — identical on /blog/, /blog/page/N/, category & tag archives.
 * !important guards against leftover Divi / cached CSS on paginated views.
 */
.fs-blog .fs-blog-grid,
body.blog .fs-blog-grid,
body.paged .fs-blog-grid,
body.category .fs-blog-grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 640px) {
	.fs-blog .fs-blog-grid,
	body.blog .fs-blog-grid,
	body.paged .fs-blog-grid,
	body.category .fs-blog-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1.35rem;
	}
}

@media (min-width: 1024px) {
	.fs-blog .fs-blog-grid,
	body.blog .fs-blog-grid,
	body.paged .fs-blog-grid,
	body.category .fs-blog-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 1.5rem;
	}
}

.fs-blog .fs-blog-card,
body.blog .fs-blog-card,
body.paged .fs-blog-card,
body.category .fs-blog-card {
	margin: 0;
	height: 100%;
	display: flex !important;
	flex-direction: column;
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: calc(var(--fs-radius) + 0.1rem);
	overflow: hidden;
	transition: transform 0.25s var(--fs-ease), box-shadow 0.25s var(--fs-ease), border-color 0.2s ease;
}

.fs-blog-card:hover,
.fs-blog-card:focus-within {
	transform: translateY(-3px);
	border-color: rgb(168 16 0 / 0.35);
	box-shadow: 0 16px 36px rgb(20 20 20 / 0.1);
}

.fs-blog-card__link {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	min-height: 100%;
	text-decoration: none;
	color: inherit;
}

.fs-blog-card__media {
	position: relative;
	display: block;
	flex: 0 0 auto;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--color-brand-dark);
}

.fs-blog-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s var(--fs-ease);
}

.fs-blog-card:hover .fs-blog-card__img {
	transform: scale(1.04);
}

.fs-blog-card__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 30% 20%, rgb(168 16 0 / 0.35), transparent 55%),
		linear-gradient(145deg, #2a2a2a, #121212);
}

.fs-blog-card__veil {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgb(12 12 12 / 0.28));
	pointer-events: none;
}

.fs-blog-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 1rem 1.05rem 1.2rem;
	flex: 1 1 auto;
	min-height: 11.5rem;
}

.fs-blog-card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.75rem;
	min-height: 1.15rem;
	font-family: var(--fs-font-ui);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.fs-blog-card__cat {
	color: var(--color-brand-primary);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.7rem;
}

.fs-blog-card__date {
	color: var(--color-muted);
	font-weight: 500;
}

.fs-blog-card__title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: 1.08rem;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.35;
	color: var(--color-ink);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
	min-height: calc(1.35em * 3);
}

.fs-blog-card__excerpt {
	margin: 0;
	flex: 1 1 auto;
	font-family: var(--fs-font-body);
	font-size: 0.9rem;
	font-weight: 450;
	line-height: 1.5;
	color: var(--color-muted);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	overflow: hidden;
	min-height: calc(1.5em * 4);
}

.fs-blog-sidebar {
	display: grid;
	gap: 1.15rem;
	min-width: 0;
}

.fs-blog-sidebar__block {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: calc(var(--fs-radius) + 0.1rem);
	padding: 1.15rem 1.1rem 1.25rem;
}

.fs-blog-sidebar__heading {
	margin: 0 0 0.85rem;
	font-family: var(--fs-font-display);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--color-ink);
}

.fs-blog-sidebar__cats,
.fs-blog-sidebar__recent {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.35rem;
}

.fs-blog-sidebar__cat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.65rem;
	padding: 0.55rem 0.65rem;
	border-radius: var(--fs-radius);
	text-decoration: none;
	font-family: var(--fs-font-ui);
	font-size: 0.88rem;
	font-weight: 550;
	color: var(--color-ink);
	transition: background 0.2s ease, color 0.2s ease;
}

.fs-blog-sidebar__cat:hover,
.fs-blog-sidebar__cat.is-active {
	background: var(--color-brand-soft);
	color: var(--color-brand-primary);
}

.fs-blog-sidebar__count {
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--color-muted);
}

.fs-blog-sidebar__cat.is-active .fs-blog-sidebar__count,
.fs-blog-sidebar__cat:hover .fs-blog-sidebar__count {
	color: var(--color-brand-primary);
}

.fs-blog-sidebar__recent li a {
	display: grid;
	gap: 0.2rem;
	padding: 0.55rem 0.35rem;
	border-bottom: 1px solid var(--color-border);
	text-decoration: none;
	color: inherit;
}

.fs-blog-sidebar__recent li:last-child a {
	border-bottom: 0;
}

.fs-blog-sidebar__recent-title {
	font-family: var(--fs-font-display);
	font-size: 0.92rem;
	font-weight: 650;
	line-height: 1.35;
	color: var(--color-ink);
}

.fs-blog-sidebar__recent a:hover .fs-blog-sidebar__recent-title {
	color: var(--color-brand-primary);
}

.fs-blog-sidebar__recent-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
	font-family: var(--fs-font-ui);
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--color-muted);
}

.fs-blog-pager {
	margin-top: 2.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--color-border);
}

.fs-blog-pager__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 0.75rem;
}

.fs-blog-pager__slot--prev {
	justify-self: start;
}

.fs-blog-pager__slot--next {
	justify-self: end;
}

.fs-blog-pager__status {
	margin: 0;
	font-family: var(--fs-font-ui);
	font-size: 0.84rem;
	font-weight: 550;
	color: var(--color-muted);
	text-align: center;
}

.fs-blog-pager a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.7rem 1rem;
	border: 1px solid var(--color-border);
	border-radius: var(--fs-radius);
	background: var(--color-surface-card);
	color: var(--color-ink);
	font-family: var(--fs-font-ui);
	font-size: 0.88rem;
	font-weight: 650;
	text-decoration: none;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.fs-blog-pager a:hover {
	border-color: var(--color-brand-primary);
	color: var(--color-brand-primary);
	background: var(--color-brand-soft);
}

.fs-blog-pager__icon {
	display: inline-flex;
	line-height: 0;
}

.fs-blog-empty {
	margin: 0;
	color: var(--color-muted);
}

/* Single article meta + prose typography */
.fs-blog-article__main {
	min-width: 0;
	max-width: none;
}

/* Fill the wide article column; keep a readable line length on very large screens */
.fs-blog-article__main .fs-blog-prose {
	max-width: min(52rem, 100%);
}

.fs-blog-article__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem 0.85rem;
	margin: 0 0 1.5rem;
	font-family: var(--fs-font-ui);
	font-size: 0.86rem;
	font-weight: 550;
	color: var(--color-muted);
}

.fs-blog-article__cat {
	color: var(--color-brand-primary);
	text-decoration: none;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-size: 0.72rem;
}

.fs-blog-article__cat:hover {
	text-decoration: underline;
}

.fs-blog-article__footer {
	margin-top: 2.5rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--color-border);
}

.fs-blog-article__back {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--fs-font-ui);
	font-size: 0.92rem;
	font-weight: 650;
	color: var(--color-brand-primary);
	text-decoration: none;
}

.fs-blog-article__back:hover {
	text-decoration: underline;
}

.fs-blog-prose {
	color: var(--color-ink);
	font-family: var(--fs-font-body);
	font-size: 1.05rem;
	line-height: 1.75;
}

.fs-blog-prose > *:first-child {
	margin-top: 0;
}

.fs-blog-prose > *:last-child {
	margin-bottom: 0;
}

.fs-blog-prose p {
	margin: 0 0 1.15rem;
	font-size: 1.05rem;
	line-height: 1.75;
}

.fs-blog-prose h1 {
	margin: 2rem 0 0.85rem;
	font-family: var(--fs-font-display);
	font-size: clamp(1.85rem, 3vw, 2.35rem);
	font-weight: 750;
	letter-spacing: -0.025em;
	line-height: 1.2;
}

.fs-blog-prose h2 {
	margin: 1.85rem 0 0.75rem;
	font-family: var(--fs-font-display);
	font-size: clamp(1.45rem, 2.4vw, 1.85rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
}

.fs-blog-prose h3 {
	margin: 1.6rem 0 0.65rem;
	font-family: var(--fs-font-display);
	font-size: clamp(1.2rem, 2vw, 1.4rem);
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.3;
}

.fs-blog-prose h4 {
	margin: 1.4rem 0 0.55rem;
	font-family: var(--fs-font-display);
	font-size: 1.12rem;
	font-weight: 700;
	line-height: 1.35;
}

.fs-blog-prose h5 {
	margin: 1.25rem 0 0.45rem;
	font-family: var(--fs-font-display);
	font-size: 1.02rem;
	font-weight: 700;
	line-height: 1.4;
}

.fs-blog-prose h6 {
	margin: 1.15rem 0 0.4rem;
	font-family: var(--fs-font-ui);
	font-size: 0.88rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--color-muted);
	line-height: 1.4;
}

.fs-blog-prose ul,
.fs-blog-prose ol {
	margin: 0 0 1.15rem;
	padding-left: 1.25rem;
}

.fs-blog-prose li {
	margin: 0.35rem 0;
	line-height: 1.65;
}

.fs-blog-prose a {
	color: var(--color-brand-primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.fs-blog-prose img {
	max-width: 100%;
	height: auto;
	border-radius: var(--fs-radius);
}

.fs-blog-prose blockquote {
	margin: 1.35rem 0;
	padding: 0.85rem 1.1rem;
	border-left: 3px solid var(--color-brand-primary);
	background: var(--color-brand-soft);
	color: var(--color-ink);
	font-style: normal;
}

.fs-blog-prose figure {
	margin: 1.35rem 0;
}

.fs-blog-prose figcaption {
	margin-top: 0.45rem;
	font-size: 0.86rem;
	color: var(--color-muted);
}

/* Hide author bylines if plugins inject them */
.fs-blog .author,
.fs-blog .byline,
.fs-blog .posted-by,
.fs-blog .entry-author,
.fs-blog-prose .author-box,
.fs-blog-article .vcard {
	display: none !important;
}

@media (max-width: 959px) {
	.fs-blog-pager__inner {
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			"status status"
			"prev next";
	}

	.fs-blog-pager__status {
		grid-area: status;
	}

	.fs-blog-pager__slot--prev {
		grid-area: prev;
	}

	.fs-blog-pager__slot--next {
		grid-area: next;
	}

	.fs-blog-pager a {
		width: 100%;
		justify-content: center;
	}
}

/* ── Service Areas hub + city pages ──────────────────────── */
.fs-service-area__body {
	background:
		radial-gradient(ellipse 80% 50% at 10% 0%, rgb(168 16 0 / 0.05), transparent 55%),
		linear-gradient(180deg, #f7f4f1 0%, #f1ebe5 100%);
}

/* Beat parent .section-y (py-12/py-16) — closes hero → content gap */
.fs-service-area--city .fs-service-area__body.section-y,
.fs-service-area__body.section-y {
	padding-top: 1.75rem !important;
	padding-bottom: 3rem !important;
}

@media (min-width: 640px) {
	.fs-service-area--city .fs-service-area__body.section-y,
	.fs-service-area__body.section-y {
		padding-top: 2.1rem !important;
		padding-bottom: 3.4rem !important;
	}
}

.fs-service-area__body-head {
	margin: 0 0 1.35rem;
	max-width: 40rem;
}

.fs-service-area__body-eyebrow {
	margin: 0 0 0.4rem;
	font-family: var(--fs-font-ui);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-brand-primary, #a81000);
}

.fs-service-area__body-title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: clamp(1.35rem, 2.4vw, 1.85rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
	color: var(--color-ink, #141414);
}

.fs-service-area__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: start;
}

@media (min-width: 960px) {
	.fs-service-area__layout {
		grid-template-columns: minmax(0, 1fr) 16.5rem;
		gap: 1.75rem 2rem;
	}
}

.fs-service-area__main {
	min-width: 0;
}

.fs-service-area__aside {
	min-width: 0;
}

@media (min-width: 960px) {
	.fs-service-area__aside {
		position: sticky;
		top: 6.5rem;
	}
}

.fs-service-area__card {
	background: #121212;
	color: rgb(255 255 255 / 0.82);
	border-radius: calc(var(--fs-radius) + 0.15rem);
	padding: 1.45rem 1.3rem 1.55rem;
	box-shadow: 0 18px 40px rgb(20 20 20 / 0.14);
}

.fs-service-area__card-eyebrow {
	margin: 0 0 0.45rem;
	font-family: var(--fs-font-ui);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #ffb4a8;
}

.fs-service-area__card-title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.25;
	color: #fff;
}

.fs-service-area__card-text {
	margin: 0.75rem 0 0;
	font-size: 0.92rem;
	line-height: 1.55;
	color: rgb(255 255 255 / 0.72);
}

.fs-service-area__card-meta {
	margin: 1.1rem 0 0;
	font-size: 0.88rem;
	line-height: 1.5;
	color: rgb(255 255 255 / 0.65);
}

.fs-service-area__card-phone {
	display: inline-flex;
	margin-top: 1rem;
	font-family: var(--fs-font-ui);
	font-size: 1.05rem;
	font-weight: 700;
	color: #ffb4a8;
	text-decoration: none;
}

.fs-service-area__card-phone:hover {
	color: #fff;
}

.fs-service-area__card-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 0.85rem;
	min-height: 2.65rem;
	padding: 0.55rem 1.15rem;
	border-radius: 0.45rem;
	background: var(--color-brand-primary);
	color: #fff;
	font-family: var(--fs-font-ui);
	font-size: 0.9rem;
	font-weight: 650;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}

.fs-service-area__card-cta:hover {
	background: #8a0d00;
	color: #fff;
	transform: translateY(-1px);
}

/* Preserve WP SEO copy; restyle into branded story cards */
.fs-service-area-prose {
	display: flex;
	flex-direction: column;
	gap: 1.35rem;
	color: #2c2926;
	font-family: var(--fs-font-body);
	font-size: 1.05rem;
	line-height: 1.75;
}

.fs-service-area__story {
	position: relative;
	background: #ffffff;
	border: 1px solid #ddd5cc;
	border-radius: calc(var(--fs-radius) + 0.25rem);
	padding: 1.5rem 1.3rem 1.55rem;
	box-shadow:
		0 1px 0 rgb(255 255 255 / 0.8) inset,
		0 14px 36px rgb(40 28 20 / 0.08);
}

.fs-service-area__story--lead {
	border-color: #e2d2cb;
	border-top: 3px solid var(--color-brand-primary, #a81000);
	background: #fff;
	padding-top: 1.35rem;
}

.fs-service-area__story--lead::before {
	content: "Our story";
	display: inline-block;
	margin: 0 0 0.7rem;
	padding: 0.2rem 0.55rem;
	border-radius: 0.3rem;
	background: #f8ebe8;
	color: var(--color-brand-primary, #a81000);
	font-family: var(--fs-font-ui);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

@media (min-width: 640px) {
	.fs-service-area__story {
		padding: 1.75rem 1.7rem 1.85rem;
	}

	.fs-service-area__story--lead {
		padding-top: 1.55rem;
	}
}

.fs-service-area-prose > *:first-child {
	margin-top: 0;
}

.fs-service-area-prose > *:last-child {
	margin-bottom: 0;
}

.fs-service-area-prose h1,
.fs-service-area-prose h2,
.fs-service-area-prose h3,
.fs-service-area-prose .et_pb_module_header,
.fs-service-area-prose .content-title {
	font-family: var(--fs-font-display);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--color-ink, #141414);
	text-align: left !important;
}

.fs-service-area-prose h2 {
	margin: 0 0 0.85rem;
	padding-left: 0.85rem;
	border-left: 3px solid var(--color-brand-primary, #a81000);
	font-size: clamp(1.28rem, 2.1vw, 1.6rem);
	line-height: 1.28;
}

.fs-service-area-prose h2:first-child {
	margin-top: 0;
}

.fs-service-area-prose h2 br {
	display: none;
}

.fs-service-area-prose h2 strong,
.fs-service-area-prose h2 span {
	color: inherit !important;
	font-weight: inherit;
}

.fs-service-area-prose h3,
.fs-service-area-prose .et_pb_module_header {
	margin: 0.85rem 0 0.3rem;
	font-size: clamp(1.02rem, 1.5vw, 1.2rem);
	line-height: 1.3;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.fs-service-area__intro {
	padding-top: 2.25rem;
	padding-bottom: 2rem;
	background: #f7f4f1;
}

.fs-service-area__offerings {
	margin-top: 0;
	overflow: visible;
}

.fs-service-area__offerings .fs-services__track {
	overflow: visible;
}

.fs-service-area__offerings .fs-floor-card {
	min-height: 0;
	width: 100%;
	aspect-ratio: 4 / 3;
	opacity: 1;
}

.fs-service-area-prose .et_pb_module_header a {
	color: inherit;
	text-decoration: none;
}

.fs-service-area-prose .et_pb_module_header a:hover {
	color: var(--color-brand-primary);
}

.fs-service-area-prose p {
	margin: 0 0 0.95rem;
	max-width: 42rem;
	color: #3a3531;
	font-size: 1.02rem;
	line-height: 1.75;
}

.fs-service-area-prose p:last-child {
	margin-bottom: 0;
}

.fs-service-area-prose a {
	color: var(--color-brand-primary, #a81000);
	font-weight: 650;
	text-decoration: none;
	border-bottom: 1px solid rgb(168 16 0 / 0.28);
}

.fs-service-area-prose a:hover {
	border-bottom-color: var(--color-brand-primary, #a81000);
	text-decoration: none;
}

.fs-service-area-prose .et_pb_blurb_description {
	margin: 0 0 0.15rem;
	padding: 0;
	max-width: 48rem;
}

.fs-service-area-prose .et_pb_blurb_description p {
	margin-bottom: 0.65rem;
}

/* Hide any leftover leaked scripts / agency chrome */
.fs-service-area-prose [class*="agency-ai"],
.fs-service-area-prose .agency-ai-textratio-block,
.fs-service-area-prose .agency-ai-textratio-extra,
.fs-service-area-prose .agency-ai-servicearea-copy,
.fs-service-area-prose .agency-ai-pass10,
.fs-service-area-prose .agency-ai-pass10b {
	display: contents;
}

.fs-service-area-prose p:has(> :only-child:is(br)),
.fs-service-area-prose p:empty {
	display: none !important;
}

.fs-service-area-prose .row {
	display: block;
	margin: 0;
}

.fs-service-area-prose [style*="text-align: center"],
.fs-service-area-prose [style*="text-align:center"] {
	text-align: left !important;
}


/* City cards band */
.fs-service-area__cities {
	margin-top: 0;
}

.fs-service-area__cities .fs-services__track--compact {
	grid-template-columns: 1fr;
	gap: 1.15rem;
}

@media (min-width: 640px) {
	.fs-service-area__cities .fs-services__track--compact {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.fs-service-area__cities .fs-services__track--compact {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.25rem;
	}
}

.fs-service-area__cities .fs-floor-card {
	min-height: 0;
	aspect-ratio: 4 / 3;
	max-height: none;
}

.fs-service-area__cities .fs-floor-card__title {
	font-size: clamp(0.98rem, 1.2vw, 1.2rem);
	white-space: normal;
	overflow-wrap: break-word;
}

.fs-service-area__pin {
	margin: 0 0 0.35rem;
	color: #ffb4a8;
	line-height: 0;
}

.fs-service-area__pin svg {
	display: block;
}

@media (min-width: 1024px) {
	.fs-service-area__featured-grid.fs-services__track--compact {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1.15rem;
	}
}

/* DFW city chip directory */
.fs-service-area__dfw {
	background: #f6f3f0;
}

.fs-service-area__dfw .fs-service-grid__head {
	margin-bottom: 1.5rem;
}

.fs-service-area__chip-grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.65rem 0.75rem;
}

@media (min-width: 640px) {
	.fs-service-area__chip-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.fs-service-area__chip-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0.75rem 1rem;
	}
}

@media (min-width: 1100px) {
	.fs-service-area__chip-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

.fs-service-area__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	width: 100%;
	min-height: 2.65rem;
	padding: 0.55rem 0.85rem;
	border-radius: 0.45rem;
	background: #fff;
	border: 1px solid rgb(20 20 20 / 0.08);
	color: var(--color-ink, #1a1a1a);
	font-family: var(--fs-font-ui);
	font-size: 0.92rem;
	font-weight: 600;
	line-height: 1.25;
	text-decoration: none;
	box-shadow: 0 1px 0 rgb(20 20 20 / 0.03);
	transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.fs-service-area__chip:hover,
.fs-service-area__chip:focus-visible {
	border-color: rgb(176 26 10 / 0.35);
	color: var(--color-brand-primary, #b01a0a);
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgb(20 20 20 / 0.06);
	text-decoration: none;
}

.fs-service-area__chip-icon {
	flex: 0 0 auto;
	color: var(--color-brand-primary, #b01a0a);
	line-height: 0;
}

.fs-service-area__chip--soft {
	background: rgb(255 255 255 / 0.72);
	font-weight: 550;
}

/* ── Free Estimate (form + branded inner sections) ────────── */
.fs-estimate__form-section {
	padding-bottom: 1.25rem;
}

.fs-estimate__intro {
	padding-top: 1.5rem;
	background: #f7f4f1;
}

/*
 * Product + why bands sit on light surfaces but reuse .fs-services__title
 * (white for charcoal homepage bands). Force ink so copy stays readable.
 */
.fs-estimate__products {
	background: #f7f4f1;
	color: var(--color-ink, #141414);
}

.fs-estimate__products .fs-services__title,
.fs-estimate__products .fs-section__title,
.fs-estimate__why .fs-services__title,
.fs-estimate__why .fs-section__title {
	color: var(--color-ink, #141414) !important;
}

.fs-estimate__products .fs-services__lede,
.fs-estimate__why .fs-services__lede {
	color: rgb(20 20 20 / 0.72) !important;
}

.fs-estimate__why {
	background: #f7f4f1;
	color: var(--color-ink, #141414);
	padding-top: 3rem;
	padding-bottom: 3.25rem;
}

.fs-estimate__why .fs-services__head {
	margin-bottom: 1.5rem;
}

.fs-estimate__why-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

@media (min-width: 700px) {
	.fs-estimate__why-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.15rem;
	}
}

.fs-estimate__why-card {
	background: #fff;
	border: 1px solid rgb(26 26 26 / 0.08);
	border-radius: calc(var(--fs-radius, 0.65rem) + 0.1rem);
	padding: 1.35rem 1.25rem 1.45rem;
	box-shadow: 0 10px 28px rgb(20 20 20 / 0.05);
	min-height: 100%;
}

.fs-estimate__why-eyebrow {
	margin: 0 0 0.45rem;
	font-family: var(--fs-font-ui);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-brand-primary, #b01a0a);
}

.fs-estimate__why-title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: clamp(1.15rem, 1.8vw, 1.35rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
	color: var(--color-ink, #1a1a1a);
}

.fs-estimate__why-text {
	margin: 0.7rem 0 0;
	font-size: 0.98rem;
	line-height: 1.65;
	color: rgb(26 26 26 / 0.78);
}

/* Keep dark local-guidance band (white text). Do not force a light bg. */
.fs-estimate__guidance {
	background: #121212;
	color: #fff;
}

.fs-estimate__process {
	background: #f7f4f1;
	padding-bottom: 3.5rem;
}

@media (max-width: 699px) {
	.fs-estimate__why-card {
		padding: 1.2rem 1.1rem 1.3rem;
	}
}

/* ── Legal pages (Privacy / Terms) — spacing only ─────────── */
.fs-legal__content.section-y {
	padding-top: 2.5rem;
	padding-bottom: 3.75rem;
}

.fs-legal-prose {
	max-width: 42rem;
	margin: 0; /* left-align with hero title / .container-brand */
	color: var(--color-ink, #1a1a1a);
	font-size: 1.02rem;
	line-height: 1.75;
}

.fs-legal-prose > *:first-child {
	margin-top: 0;
}

.fs-legal-prose > *:last-child {
	margin-bottom: 0;
}

.fs-legal-prose h1 {
	display: none;
}

.fs-legal-prose h2 {
	margin: 2rem 0 0.75rem;
	font-size: clamp(1.2rem, 2vw, 1.4rem);
	font-weight: 700;
	line-height: 1.3;
	text-align: left !important;
}

.fs-legal-prose h3,
.fs-legal-prose strong:first-child {
	line-height: 1.4;
}

.fs-legal-prose p {
	margin: 0 0 1.15rem;
	text-align: left !important;
}

.fs-legal-prose p:has(> strong:only-child),
.fs-legal-prose p > strong:first-child:last-child {
	display: inline;
}

.fs-legal-prose ul,
.fs-legal-prose ol {
	margin: 0 0 1.25rem;
	padding-left: 1.25rem;
}

.fs-legal-prose li {
	margin-bottom: 0.45rem;
}

.fs-legal-prose a {
	color: var(--color-accent, #8b3a2a);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* Hide leaked scripts / agency blocks if any remain */
.fs-legal-prose [class*="agency-ai"],
.fs-legal-prose .agency-ai-pass10,
.fs-legal-prose .agency-ai-rm-privacy {
	display: none !important;
}

.fs-legal-prose p:has(+ :empty),
.fs-page-content p:empty {
	display: none;
}

/* Others related cards: keep titles readable in 4-up row */
.fs-service-page--others .fs-services--related .fs-floor-card__title {
	white-space: normal;
	overflow-wrap: break-word;
	font-size: clamp(0.88rem, 1.05vw, 1.05rem);
}

@media (min-width: 900px) and (max-width: 1023.98px) {
	.fs-service-page--others .fs-services--related .fs-services__track.fs-services__track--grid.fs-services__track--compact {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0.9rem;
	}
}

/* ── About + Specials company pages ──────────────────────── */
.fs-company-stats {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
}

.fs-company-stats li {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	padding: 0.85rem 0.7rem;
	border-radius: 0.45rem;
	background: rgb(20 20 20 / 0.04);
}

.fs-company-stats strong {
	font-family: var(--fs-font-display);
	font-size: clamp(1.25rem, 2.2vw, 1.55rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--color-ink, #1a1a1a);
	line-height: 1.1;
}

.fs-company-stats span {
	font-family: var(--fs-font-ui);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: rgb(20 20 20 / 0.62);
	line-height: 1.3;
}

@media (max-width: 639px) {
	.fs-company-stats {
		grid-template-columns: 1fr;
	}
}

.fs-company__products {
	margin-top: 0;
}

/*
 * About / Free Estimate product cards — match Flooring hub:
 * spaced grid (not a flush 5-up strip), readable titles, same card height.
 */
.fs-company__product-grid.fs-services__track--grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.15rem;
}

@media (min-width: 640px) {
	.fs-company__product-grid.fs-services__track--grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.15rem;
	}
}

@media (min-width: 1024px) {
	.fs-company__product-grid.fs-services__track--grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.25rem;
	}
}

.fs-company__product-grid .fs-floor-card {
	min-height: 0;
	width: 100%;
	aspect-ratio: 4 / 3;
}

.fs-company__product-grid .fs-floor-card__title {
	font-size: clamp(1rem, 1.35vw, 1.25rem);
	letter-spacing: 0.05em;
	white-space: normal;
	overflow-wrap: break-word;
}

.fs-company__product-grid .fs-floor-card__copy {
	-webkit-line-clamp: 3;
	line-clamp: 3;
	opacity: 0.92;
}

.fs-company__product-grid .fs-floor-card__arrow {
	opacity: 1;
}

.fs-company__estimate {
	background: #f6f3f0;
}

.fs-company__estimate-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: start;
}

@media (min-width: 900px) {
	.fs-company__estimate-layout {
		grid-template-columns: minmax(0, 1.35fr) minmax(15rem, 0.75fr);
		gap: 2rem 2.25rem;
	}
}

.fs-company__estimate-text {
	margin: 0.85rem 0 0;
	max-width: 40rem;
	font-size: 1.05rem;
	line-height: 1.7;
	color: var(--color-ink, #1a1a1a);
}

.fs-company__estimate-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.25rem;
	min-height: 2.75rem;
	padding: 0.6rem 1.25rem;
	border-radius: 0.45rem;
	background: var(--color-brand-primary, #b01a0a);
	color: #fff;
	font-family: var(--fs-font-ui);
	font-size: 0.92rem;
	font-weight: 650;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}

.fs-company__estimate-cta:hover {
	background: #8a0d00;
	color: #fff;
	transform: translateY(-1px);
}

.fs-company__estimate-card {
	background: #121212;
	color: rgb(255 255 255 / 0.82);
	border-radius: calc(var(--fs-radius) + 0.15rem);
	padding: 1.45rem 1.3rem 1.55rem;
	box-shadow: 0 18px 40px rgb(20 20 20 / 0.14);
}

.fs-company__estimate-card-eyebrow {
	margin: 0 0 0.4rem;
	font-family: var(--fs-font-ui);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #ffb4a8;
}

.fs-company__estimate-card-title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: 1.25rem;
	font-weight: 700;
	color: #fff;
	line-height: 1.25;
}

.fs-company__estimate-card-meta {
	margin: 0.9rem 0 0;
	font-size: 0.92rem;
	line-height: 1.5;
	color: rgb(255 255 255 / 0.68);
}

.fs-company__estimate-card-phone {
	display: inline-flex;
	margin-top: 1rem;
	font-family: var(--fs-font-ui);
	font-size: 1.05rem;
	font-weight: 700;
	color: #ffb4a8;
	text-decoration: none;
}

.fs-company__estimate-hours {
	margin-top: 1.25rem;
	padding-top: 1.1rem;
	border-top: 1px solid rgb(255 255 255 / 0.12);
}

.fs-company__estimate-hours .fs-contact__label {
	color: rgb(255 255 255 / 0.55);
}

.fs-company__estimate-hours .fs-hours-list {
	color: rgb(255 255 255 / 0.78);
}

.fs-company__product-grid .fs-floor-card,
.fs-estimate__products .fs-floor-card {
	opacity: 1;
}

/* ── HTML Site Map ───────────────────────────────────────── */
.fs-sitemap__body {
	background: #f7f4f1;
}

.fs-sitemap__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem 1.5rem;
}

@media (min-width: 640px) {
	.fs-sitemap__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.fs-sitemap__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem 1.75rem;
	}
}

.fs-sitemap__group {
	background: #fff;
	border: 1px solid rgb(26 26 26 / 0.08);
	border-radius: calc(var(--fs-radius, 0.35rem) + 0.15rem);
	padding: 1.25rem 1.2rem 1.35rem;
	box-shadow: 0 10px 28px rgb(20 20 20 / 0.04);
}

.fs-sitemap__title {
	margin: 0 0 0.85rem;
	padding-bottom: 0.55rem;
	font-family: var(--fs-font-display);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--color-ink, #1a1a1a);
	border-bottom: 2px solid var(--color-brand-primary, #b01a0a);
	display: inline-block;
}

.fs-sitemap__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.45rem;
}

.fs-sitemap__list a {
	color: rgb(20 20 20 / 0.82);
	text-decoration: none;
	font-size: 0.95rem;
	line-height: 1.4;
	transition: color 0.15s ease;
}

.fs-sitemap__list a:hover {
	color: var(--color-brand-primary, #b01a0a);
}

.fs-company__estimate-card-phone:hover {
	color: #fff;
}

.fs-company__perks {
	margin-top: 1.15rem;
}

/* Specials rate cards */
.fs-specials-rates__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.15rem;
}

@media (min-width: 640px) {
	.fs-specials-rates__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.fs-specials-rates__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1.2rem;
	}
}

.fs-specials-rate {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	border-radius: calc(var(--fs-radius) + 0.1rem);
	overflow: hidden;
	background: #161616;
	color: #fff;
	box-shadow: 0 14px 32px rgb(0 0 0 / 0.22);
}

.fs-specials-rate__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}

.fs-specials-rate__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.45s ease;
}

.fs-specials-rate:hover .fs-specials-rate__media img {
	transform: scale(1.04);
}

.fs-specials-rate__body {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 1.15rem 1.1rem 1.25rem;
	flex: 1 1 auto;
}

.fs-specials-rate__label {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.fs-specials-rate__price {
	margin: 0.15rem 0 0;
	font-family: var(--fs-font-ui);
	font-size: 0.95rem;
	color: rgb(255 255 255 / 0.78);
	line-height: 1.35;
}

.fs-specials-rate__price span {
	font-family: var(--fs-font-display);
	font-size: clamp(1.55rem, 2.4vw, 1.85rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	color: #ffb4a8;
	margin-right: 0.25rem;
}

.fs-specials-rate__note {
	margin: 0.2rem 0 0;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: rgb(255 255 255 / 0.55);
}

.fs-specials-rate__link {
	margin-top: auto;
	padding-top: 0.85rem;
	font-family: var(--fs-font-ui);
	font-size: 0.88rem;
	font-weight: 650;
	color: #fff;
	text-decoration: none;
}

.fs-specials-rate__link:hover {
	color: #ffb4a8;
}

.fs-specials-promos {
	background: #f6f3f0;
}

.fs-specials-promos__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

@media (min-width: 640px) {
	.fs-specials-promos__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.15rem;
	}
}

@media (min-width: 1024px) {
	.fs-specials-promos__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.fs-specials-promo {
	background: #fff;
	border: 1px solid rgb(20 20 20 / 0.08);
	border-radius: 0.55rem;
	padding: 1.25rem 1.15rem 1.35rem;
	box-shadow: 0 1px 0 rgb(20 20 20 / 0.03);
	min-height: 100%;
}

.fs-specials-promo__eyebrow {
	margin: 0 0 0.45rem;
	font-family: var(--fs-font-ui);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-brand-primary, #b01a0a);
}

.fs-specials-promo__title {
	margin: 0;
	font-family: var(--fs-font-display);
	font-size: clamp(1.35rem, 2.2vw, 1.65rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--color-ink, #1a1a1a);
}

.fs-specials-promo__text {
	margin: 0.55rem 0 0;
	font-size: 0.98rem;
	line-height: 1.55;
	color: rgb(20 20 20 / 0.72);
}

.fs-specials-promos__note {
	margin: 1.35rem 0 0;
	max-width: 42rem;
	font-size: 0.9rem;
	line-height: 1.55;
	color: rgb(20 20 20 / 0.58);
}

/* ── Manufacturers page ──────────────────────────────────── */
.fs-mfg-brands__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

@media (min-width: 640px) {
	.fs-mfg-brands__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.1rem;
	}
}

@media (min-width: 1024px) {
	.fs-mfg-brands__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.2rem;
	}
}

.fs-mfg-brand {
	min-height: 100%;
}

.fs-mfg-brand__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 14.5rem;
	padding: 1.25rem 1.15rem 1.35rem;
	border-radius: calc(var(--fs-radius) + 0.1rem);
	background: #fff;
	border: 1px solid rgb(20 20 20 / 0.08);
	text-decoration: none;
	color: inherit;
	box-shadow: 0 1px 0 rgb(20 20 20 / 0.03);
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.fs-mfg-brand__link:hover,
.fs-mfg-brand__link:focus-visible {
	border-color: rgb(176 26 10 / 0.28);
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgb(20 20 20 / 0.08);
	text-decoration: none;
}

.fs-mfg-brand__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 4.75rem;
	padding: 0.35rem 0.5rem 0.85rem;
}

.fs-mfg-brand__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: 3.25rem;
	object-fit: contain;
}

.fs-mfg-brand__meta {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	margin-top: auto;
	padding-top: 0.75rem;
	border-top: 1px solid rgb(20 20 20 / 0.06);
}

.fs-mfg-brand__name {
	font-family: var(--fs-font-display);
	font-size: 1.12rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	color: var(--color-ink, #1a1a1a);
}

.fs-mfg-brand__blurb {
	font-size: 0.92rem;
	line-height: 1.5;
	color: rgb(20 20 20 / 0.68);
}

.fs-company--manufacturers .fs-mfg-brands {
	background: #121212;
}

.fs-company--manufacturers .fs-mfg-brands .fs-services__title,
.fs-company--manufacturers .fs-mfg-brands .fs-services__lede {
	color: #fff;
}

.fs-company--manufacturers .fs-mfg-brands .fs-services__lede {
	color: rgb(255 255 255 / 0.78);
}

.fs-company--manufacturers .fs-mfg-brand__link {
	background: #1b1b1b;
	border-color: rgb(255 255 255 / 0.08);
	box-shadow: none;
}

.fs-company--manufacturers .fs-mfg-brand__link:hover,
.fs-company--manufacturers .fs-mfg-brand__link:focus-visible {
	border-color: rgb(255 180 168 / 0.45);
	box-shadow: 0 14px 30px rgb(0 0 0 / 0.28);
}

.fs-company--manufacturers .fs-mfg-brand__meta {
	border-top-color: rgb(255 255 255 / 0.1);
}

.fs-company--manufacturers .fs-mfg-brand__name {
	color: #fff;
}

.fs-company--manufacturers .fs-mfg-brand__blurb {
	color: rgb(255 255 255 / 0.7);
}

.fs-company--manufacturers .fs-mfg-brand__logo img {
	filter: none;
}

/* ── Legacy SEO pages (branded) ──────────────────────────── */
.fs-legacy-page__body {
	background: #f6f3f0;
}

.fs-legacy-page__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	align-items: start;
}

@media (min-width: 960px) {
	.fs-legacy-page__layout {
		grid-template-columns: minmax(0, 1fr) 16.5rem;
		gap: 2.25rem 2rem;
	}

	.fs-legacy-page__aside {
		position: sticky;
		top: 6.5rem;
	}
}

.fs-legacy-page--utility .fs-legacy-page__layout {
	grid-template-columns: 1fr;
}

.fs-legacy-page__main {
	min-width: 0;
}

.fs-legacy-prose {
	color: var(--color-ink, #1a1a1a);
	font-family: var(--fs-font-body);
	font-size: 1.05rem;
	line-height: 1.75;
}

.fs-legacy-prose > *:first-child {
	margin-top: 0;
}

.fs-legacy-prose > *:last-child {
	margin-bottom: 0;
}

.fs-legacy-prose h1 {
	display: none;
}

.fs-legacy-prose h2,
.fs-legacy-prose h3,
.fs-legacy-prose .et_pb_module_header,
.fs-legacy-prose .content-title {
	margin: 1.85rem 0 0.75rem;
	font-family: var(--fs-font-display);
	font-weight: 700;
	letter-spacing: -0.02em;
	color: var(--color-ink, #1a1a1a);
	text-align: left !important;
	line-height: 1.25;
}

.fs-legacy-prose h2 {
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}

.fs-legacy-prose h3,
.fs-legacy-prose .et_pb_module_header {
	font-size: clamp(1.12rem, 1.7vw, 1.3rem);
}

.fs-legacy-prose p {
	margin: 0 0 1.1rem;
	max-width: 48rem;
	text-align: left !important;
}

.fs-legacy-prose ul,
.fs-legacy-prose ol {
	margin: 0 0 1.25rem;
	padding-left: 1.25rem;
	max-width: 48rem;
}

.fs-legacy-prose li {
	margin-bottom: 0.4rem;
}

.fs-legacy-prose a {
	color: var(--color-brand-primary, #b01a0a);
	font-weight: 600;
	text-decoration: none;
}

.fs-legacy-prose a:hover {
	text-decoration: underline;
}

.fs-legacy-prose img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 1.25rem 0;
	border-radius: 0.45rem;
}

.fs-legacy-prose .et_pb_image,
.fs-legacy-prose .et_pb_blurb,
.fs-legacy-prose .et_pb_text,
.fs-legacy-prose .et_pb_row,
.fs-legacy-prose .et_pb_column,
.fs-legacy-prose .et_pb_section {
	margin: 0 0 1rem;
	padding: 0;
	max-width: none;
	background: transparent !important;
	box-shadow: none !important;
}

.fs-legacy-prose [class*="agency-ai"],
.fs-legacy-prose .et_pb_button_module_wrapper,
.fs-legacy-prose .et_pb_divider,
.fs-legacy-prose .et_pb_social_media_follow {
	display: none !important;
}

.fs-legacy-prose [style*="text-align: center"],
.fs-legacy-prose [style*="text-align:center"] {
	text-align: left !important;
}

.fs-legacy-page__explore .fs-services__track--compact {
	grid-template-columns: 1fr;
	gap: 1.1rem;
}

@media (min-width: 640px) {
	.fs-legacy-page__explore .fs-services__track--compact {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) {
	.fs-legacy-page__explore .fs-services__track--compact {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1.15rem;
	}
}

.fs-legacy-page__explore .fs-floor-card {
	min-height: 0;
	aspect-ratio: 4 / 3;
}

.fs-legacy-page__explore .fs-floor-card__title {
	font-size: clamp(0.95rem, 1.15vw, 1.15rem);
	white-space: normal;
}
