:root {
	--bw-red: #e10021;
	--bw-red-bright: #f70017;
	--bw-red-dark: #ad0018;
	--bw-green: #5f7436;
	--bw-green-dark: #2f3d24;
	--bw-lime: #a4bf4f;
	--bw-ink: #20251f;
	--bw-muted: #657062;
	--bw-paper: #f7f8f2;
	--bw-line: #dde4d4;
	--bw-red-soft: #fff0f2;
}

html {
	scroll-behavior: smooth;
}

body {
	color: var(--bw-ink);
	font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	background: #fff;
}

a {
	color: var(--bw-red-dark);
}

.site-header {
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(12px);
	border-bottom: 4px solid var(--bw-red);
}

.navbar-brand img {
	height: 58px;
	width: auto;
}

.nav-link {
	color: var(--bw-ink);
	font-weight: 700;
}

.nav-link:hover,
.nav-link.active {
	background: var(--bw-red);
	border-radius: 4px;
	color: #fff !important;
}

.phone-pill {
	background: var(--bw-red);
	border: 1px solid var(--bw-red);
	border-radius: 999px;
	color: #fff;
	font-weight: 800;
	padding: 0.65rem 0.9rem;
	text-decoration: none;
	white-space: nowrap;
}

.phone-pill:hover {
	background: var(--bw-red-dark);
	border-color: var(--bw-red-dark);
	color: #fff;
}

.hero {
	background-position: center;
	background-size: cover;
	color: #fff;
	min-height: 620px;
	position: relative;
}

.hero::before {
	background: linear-gradient(90deg, rgba(28, 12, 13, 0.88), rgba(55, 24, 20, 0.5), rgba(18, 28, 17, 0.1));
	content: "";
	inset: 0;
	position: absolute;
}

.hero > .container {
	position: relative;
	z-index: 1;
}

.hero-logo {
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 7px solid var(--bw-red);
	border-radius: 8px;
	max-width: min(520px, 90vw);
	padding: 1rem 1.25rem;
	width: 100%;
}

.eyebrow {
	color: var(--bw-red-bright);
	font-size: 0.82rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.section {
	padding: 5rem 0;
}

.section-soft {
	background: linear-gradient(180deg, var(--bw-red-soft), var(--bw-paper));
}

.section-dark {
	background: linear-gradient(135deg, #231b1c, var(--bw-green-dark));
	color: #fff;
}

.lead-copy {
	color: var(--bw-muted);
	font-size: 1.1rem;
}

.section-dark .lead-copy {
	color: rgba(255, 255, 255, 0.78);
}

.btn-bw {
	background: var(--bw-red);
	border-color: var(--bw-red);
	color: #fff;
	font-weight: 800;
}

.btn-bw:hover {
	background: var(--bw-red-dark);
	border-color: var(--bw-red-dark);
	color: #fff;
}

.btn-outline-bw {
	border-color: var(--bw-red);
	color: var(--bw-red-dark);
	font-weight: 800;
}

.btn-outline-bw:hover {
	background: var(--bw-red);
	color: #fff;
}

.service-card,
.trust-card,
.quote-card,
.contact-panel {
	background: #fff;
	border: 1px solid var(--bw-line);
	border-top: 5px solid var(--bw-red);
	border-radius: 8px;
	box-shadow: 0 18px 45px rgba(44, 55, 38, 0.09);
}

.service-card img,
.feature-img,
.gallery-img {
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	object-fit: cover;
	width: 100%;
}

.service-card img {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

.service-card h3 {
	font-size: 1.25rem;
}

.badge-soft {
	background: var(--bw-red-soft);
	border: 1px solid rgba(225, 0, 33, 0.2);
	border-radius: 999px;
	color: var(--bw-red-dark);
	display: inline-flex;
	font-weight: 800;
	padding: 0.45rem 0.75rem;
}

.review-stars {
	color: var(--bw-red);
	font-size: 1.15rem;
	font-weight: 900;
	letter-spacing: 0.08em;
	line-height: 1;
	margin-bottom: 0.85rem;
}

.trust-logo {
	max-height: 92px;
	max-width: 100%;
	object-fit: contain;
}

.image-strip {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(3, 1fr);
}

.image-strip img {
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	object-fit: cover;
	width: 100%;
}

.page-hero {
	background-position: center;
	background-size: cover;
	color: #fff;
	min-height: 420px;
	position: relative;
}

.page-hero::before {
	background: linear-gradient(90deg, rgba(28, 12, 13, 0.86), rgba(75, 22, 20, 0.42));
	content: "";
	inset: 0;
	position: absolute;
}

.page-hero > .container {
	position: relative;
	z-index: 1;
}

.check-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.check-list li {
	margin-bottom: 0.7rem;
	padding-left: 1.8rem;
	position: relative;
}

.check-list li::before {
	color: var(--bw-red);
	content: "\2713";
	font-weight: 900;
	left: 0;
	position: absolute;
}

.footer {
	background: #20251f;
	border-top: 6px solid var(--bw-red);
	color: rgba(255, 255, 255, 0.78);
}

.footer a {
	color: #fff;
	text-decoration: none;
}

.footer-logo {
	background: #fff;
	border-radius: 8px;
	max-width: 280px;
	padding: 0.65rem;
	width: 100%;
}

.social-link {
	align-items: center;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	display: inline-flex;
	font-size: 0.92rem;
	font-weight: 800;
	gap: 0.65rem;
	padding: 0.35rem 0.4rem 0.35rem 0.85rem;
}

.social-link:hover {
	background: rgba(255, 255, 255, 0.14);
}

.social-icon {
	align-items: center;
	background: #fff;
	border-radius: 50%;
	display: inline-flex;
	height: 36px;
	justify-content: center;
	width: 36px;
}

.social-icon img {
	display: block;
	height: 18px;
	width: 18px;
}

.gallery-link {
	background: none;
	border: 0;
	display: block;
	padding: 0;
	width: 100%;
}

.gallery-link:focus-visible {
	outline: 4px solid rgba(164, 191, 79, 0.5);
	outline-offset: 3px;
}

@media (max-width: 991.98px) {
	.hero {
		min-height: 560px;
	}

	.hero::before,
	.page-hero::before {
		background: rgba(18, 28, 17, 0.72);
	}

	.image-strip {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 575.98px) {
	.section {
		padding: 3.5rem 0;
	}

	.navbar-brand img {
		height: 44px;
	}

	.hero {
		min-height: 620px;
	}
}
