/* ==========================================================================
   Sierra Renovations — theme stylesheet
   Pixel-equivalent of the original Bricks-built site, distilled into class
   selectors so the custom theme produces the same visual output.
   ========================================================================== */

/* -- design tokens (fallback so the theme works without Automatic.css) -- */
:root {
	--white:   #ffffff;
	--black:   #1a1a1a;
	--primary: #ff5900;
	--accent:  #066839;
	--accent-2:#099e57;
	--neutral-100: #f6f6f6;
	--neutral-200: #e9e9e9;
	--neutral-700: #2d2926;
	--neutral-800: #2b2b2b;
	--neutral-900: #111111;
	--space-3xs: 4px;
	--space-2xs: 8px;
	--space-xs:  12px;
	--space-s:   16px;
	--space-m:   24px;
	--space-l:   32px;
	--space-xl:  48px;
	--space-2xl: 64px;
	--space-3xl: 96px;
}

/* -- base ----------------------------------------------------------------- */
html { scroll-behavior: smooth; background-color: #1a1a1a; }
body { background-color: var(--white); max-inline-size: initial; margin: 0; font-family: "Poppins", system-ui, sans-serif; color: var(--black); }
/* Pages with a dark hero want a dark page background so the admin-bar gap +
   the area behind the sticky header doesn't flash white. */
body.has-dark-hero { background-color: #1a1a1a; }
/* Hide the html-background-color paint above the admin bar (it's a dark bar
   anyway, but on slow connections you can briefly see a white flash). */
html.wp-toolbar { background-color: #1a1a1a; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }

/* -- typography (copied from Bricks frontend inline) --------------------- */
h1, h2, h3, h4, h5, h6 { color: var(--black); font-family: "Montserrat", sans-serif; text-transform: uppercase; margin: 0; }
h1 { font-family: "Montserrat"; font-weight: 700; font-size: 70px; line-height: 1.1; }
h2 { font-size: 35px; font-weight: 700; }
h3 { font-size: 30px; }
h4 { font-size: 25px; }
h5 { font-family: "Montserrat"; font-weight: 700; font-size: 20px; }
h6 { font-size: 18px; }
p  { font-family: "Poppins"; font-weight: 400; line-height: 1.6; margin: 0 0 1em; }

@media (max-width: 991px) {
	h1 { font-size: 50px; text-transform: capitalize; }
	h2 { font-size: 30px; }
	h3, h4 { font-size: 22px; }
	h5 { font-size: 17px; }
}
@media (max-width: 767px) {
	h1 { font-size: 46px; }
	h2 { font-size: 25px; }
	h3, h4 { font-size: 20px; }
	h5 { font-size: 16px; }
}
@media (max-width: 478px) {
	h1 { font-size: 34px; }
	h2 { font-size: 22px; }
	h3 { font-size: 18px; }
	h4 { font-size: 18px; }
	h5 { font-size: 16px; }
}
@media (max-width: 380px) {
	h1 { font-size: 25px; text-transform: uppercase; }
	h2 { font-size: 20px; }
	h3 { font-size: 16px; }
	h4 { font-size: 18px; }
	h5 { font-size: 14px; }
}

/* -- container / section system ----------------------------------------- */
.sr-container { width: 1280px; max-width: 100%; margin-inline: auto; padding-inline: 0; }
@media (min-width: 1920px) {
	.sr-container { max-width: 1400px; width: 100%; }
}
.sr-section {
	padding-right: clamp(1rem, -2.757rem + 12.524vw, 5rem);
	padding-left:  clamp(1rem, -2.757rem + 12.524vw, 5rem);
	padding-top: 80px;
	padding-bottom: 80px;
	position: relative;
}
@media (max-width: 767px) {
	.sr-section { padding-top: 50px; padding-bottom: 50px; }
}
.sr-section.padding-x__none { padding-right: 0; padding-left: 0; }

/* Contain full-bleed elements (e.g. the full-width review slider) so they never
   trigger horizontal page scroll. `clip` (not `hidden`) keeps position:sticky working. */
#sierra-content { overflow-x: clip; }

*, *::before, *::after { box-sizing: border-box; }
.sr-link { display: inline-flex; align-items: center; gap: 8px; color: inherit; text-decoration: none; }
.sr-link:hover { color: #fe5900; }

/* utilities */
.justify-content--between { justify-content: space-between; }
.justify-content--center  { justify-content: center; }

/* -- buttons ------------------------------------------------------------- */
.sr-button,
.hero-btn {
	display: inline-flex; align-items: center; justify-content: center;
	font-family: "Poppins"; text-transform: uppercase;
	border: 0; border-radius: 6px; cursor: pointer;
	background-color: #ff5900; color: #fff;
	padding: 15px 20px; font-size: 18px; font-weight: 700;
	transition: transform .3s ease, background-color .3s ease;
	text-decoration: none;
}
.sr-button:hover, .hero-btn:hover { transform: scale(1.05); background-color: #fe5900; color: #fff; }
.btn--xl { font-size: 18px; }
@media (max-width: 478px) {
	.hero-btn { font-size: 14px; }
}

/* -- HEADER -------------------------------------------------------------- */
#sierra-header {
	position: sticky; top: 0; z-index: 100;
	transition: background-color .3s ease, color .3s ease, box-shadow .3s ease;
}
.header-section.sr-section {
	background-color: rgba(0,0,0,0);
	padding-top: 16px;
	padding-bottom: 16px;
}
/* A touch more side padding for the nav on mobile so the logo and hamburger
   aren't flush against the screen edges (sr-section clamps to 16px here). */
@media (max-width: 991px) {
	.header-section.sr-section { padding-left: 20px; padding-right: 20px; }
}

/* When the page has no dark hero under it, give the header a dark backdrop
   so white-on-transparent nav stays readable. */
body.no-dark-hero #sierra-header {
	background-color: #1a1a1a;
	box-shadow: 0 2px 12px rgba(0,0,0,.15);
}

/* When a dark hero IS present, the sticky header overlays it (header sits
   above the hero, hero starts at scroll 0). */
body.has-dark-hero #sierra-header { background-color: transparent; }
body.has-dark-hero #sierra-content> .hero-video-section:first-child,
body.has-dark-hero #sierra-content> .archive-hero:first-child { margin-top: -96px; padding-top: 96px; }
@media (max-width: 991px) {
	body.has-dark-hero #sierra-content> .hero-video-section:first-child,
	body.has-dark-hero #sierra-content> .archive-hero:first-child { margin-top: -88px; padding-top: 88px; }
}

/* When the WP admin bar is showing, absorb its reserved space into the
   header itself instead of leaving a visible offset above it.
   - Cancel the html margin-top WP adds (admin bar floats at viewport top)
   - Extend the header's padding-top so logo/nav stay below the admin bar
   - Keep the dark hero math intact (header + admin bar combined height) */
html.wp-toolbar { margin-top: 0 !important; }
body.admin-bar .header-section.sr-section {
	padding-top: calc(16px + 32px);
}
body.admin-bar #sierra-header { top: 32px; }
body.admin-bar.has-dark-hero #sierra-content> .hero-video-section:first-child,
body.admin-bar.has-dark-hero #sierra-content> .archive-hero:first-child {
	margin-top: -128px;
	padding-top: 128px;
}
@media screen and (max-width: 782px) {
	body.admin-bar .header-section.sr-section { padding-top: calc(16px + 46px); }
	/* On mobile WP makes the admin bar position:absolute, so it scrolls away with
	   the page. The sticky header must therefore pin to top:0 — offsetting it by
	   46px (as on desktop, where the bar is fixed) leaves a 46px gap above the
	   header once you scroll past the bar. Padding-top above still clears the bar
	   at scroll 0. */
	body.admin-bar #sierra-header { top: 0; }
	body.admin-bar.has-dark-hero #sierra-content> .hero-video-section:first-child,
	body.admin-bar.has-dark-hero #sierra-content> .archive-hero:first-child {
		margin-top: -134px;
		padding-top: 134px;
	}
}
.header-section__header-container {
	display: flex; flex-direction: row;
	align-items: center; justify-content: space-between;
	gap: 30px;
}

.logo-img { max-width: 280px; max-height: 78px; display: flex; align-items: center; flex-shrink: 0; }
.logo-img__image { display: inline-flex; align-items: center; height: 100%; }
.logo-img__image img { object-fit: contain; max-height: 78px; width: auto; max-width: 100%; }
.logo-img__text { color: var(--white); font-family: "Montserrat"; font-weight: 700; font-size: 20px; text-transform: uppercase; letter-spacing: 0.05em; }
@media (max-width: 1350px) { .logo-img { max-width: 200px; } }
@media (max-width: 1050px) { .logo-img { max-width: 180px; } }
@media (max-width: 991px)  { .logo-img { max-width: 220px; max-height: 70px; } }
@media (max-width: 767px)  { .logo-img { max-width: 200px; max-height: 65px; } }
@media (max-width: 478px)  { .logo-img { max-width: 160px; max-height: 60px; } }

/* Desktop menu */
.desktop-menu { display: flex; align-items: center; justify-content: center; flex: 1 1 auto; }
.desktop-menu__nav-nested { display: flex; }
.desktop-menu__nav-items { display: flex; gap: 20px; align-items: center; flex-wrap: nowrap; }
.desktop-menu__nav-items> li> a,
.desktop-menu__nav-items> li> .sr-submenu-toggle> a {
	color: var(--white);
	text-transform: uppercase;
	font-family: "Poppins";
	font-weight: 500;
	font-size: 15px;
	letter-spacing: .02em;
	transition: color .25s ease;
	white-space: nowrap;
}
.desktop-menu__nav-items> li> a:hover,
.desktop-menu__nav-items> li> .sr-submenu-toggle> a:hover { color: var(--primary); }
.desktop-menu__nav-items> li> a[aria-current="page"] { color: var(--primary); }
@media (max-width: 1200px) {
	.desktop-menu__nav-items { gap: 14px; }
	.desktop-menu__nav-items> li> a,
	.desktop-menu__nav-items> li> .sr-submenu-toggle> a { font-size: 13px; }
}
@media (max-width: 991px) { .desktop-menu { display: none; } }

/* Dropdown */
.sr-dropdown { position: relative; }
.sr-dropdown .sr-submenu-toggle {
	display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
	color: var(--white);
}
.sr-dropdown .sr-submenu-toggle button {
	background: transparent; border: 0;
	color: inherit; padding: 4px; cursor: pointer;
	display: inline-flex; align-items: center;
	transition: transform .25s ease;
}
.sr-dropdown .sr-submenu-toggle button svg { width: 12px; height: 12px; }
.sr-dropdown:hover .sr-submenu-toggle button,
.sr-dropdown.is-open .sr-submenu-toggle button { transform: rotate(180deg); }

.sr-dropdown-content {
	position: absolute;
	top: 100%; left: 0;
	background-color: #2b2b2b;
	min-width: 240px;
	padding: 6px 0;
	border-radius: 5px;
	margin-top: 10px;
	opacity: 0; visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .2s ease, visibility .2s ease, transform .2s ease;
	z-index: 50;
	list-style: none;
}
.sr-dropdown:hover .sr-dropdown-content,
.sr-dropdown:focus-within .sr-dropdown-content,
.sr-dropdown.is-open .sr-dropdown-content {
	opacity: 1; visibility: visible; transform: translateY(0);
}
.sr-dropdown-content> li { transition: background-color .25s ease; }
.sr-dropdown-content> li> a {
	display: block;
	padding: 8px 16px;
	color: var(--white);
	text-transform: uppercase;
	font-size: 14px;
	font-family: "Poppins";
	font-weight: 500;
	transition: color .25s ease, background-color .25s ease;
}
.sr-dropdown-content> li> a:hover {
	color: var(--primary);
	background-color: rgba(255,255,255,0.04);
}

/* Phone CTA */
.contact-button {
	color: var(--white);
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}
.contact-button__phone {
	text-transform: uppercase;
	font-family: "Poppins";
	color: var(--white);
	font-weight: 600;
	font-size: 16px;
	gap: 8px;
	transition: color .25s ease;
}
.contact-button__phone:hover { color: var(--primary); }
.contact-button__phone .icon i,
.contact-button__phone .icon svg {
	font-size: 18px; width: 18px; height: 18px;
	color: var(--primary);
}
@media (max-width: 1260px) { .contact-button__phone { font-size: 14px; } }
@media (max-width: 991px)  { .contact-button { display: none; } }

/* Mobile hamburger + drawer */
.mobile-menu { display: none; position: relative; }
@media (max-width: 991px) { .mobile-menu { display: block; } }

.sr-mobile-toggle {
	background: transparent; border: 0; cursor: pointer;
	padding: 8px;
	display: flex; flex-direction: column; gap: 5px;
}
.sr-mobile-toggle span {
	display: block; width: 28px; height: 3px;
	background-color: var(--white);
	border-radius: 2px;
	transition: transform .25s ease, opacity .2s ease, background-color .25s ease;
}
.sr-mobile-toggle[aria-expanded="true"] .bar-top    { transform: translateY(8px) rotate(45deg); }
.sr-mobile-toggle[aria-expanded="true"] .bar-center { opacity: 0; }
.sr-mobile-toggle[aria-expanded="true"] .bar-bottom { transform: translateY(-8px) rotate(-45deg); }

.sr-mobile-drawer {
	position: fixed;
	/* JS sets --sr-header-h to the header's live bottom edge each time the drawer
	   opens, so it sits flush below the nav in any state (scrolled / admin bar). */
	top: var(--sr-header-h, 73px);
	left: 0; right: 0; bottom: 0;
	background: #2b2b2b;
	padding: 0 20px 40px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	display: none;
	z-index: 99;
}
.sr-mobile-drawer.is-open { display: block; }
.sr-mobile-menu {
	display: flex; flex-direction: column;
	gap: 0;
	list-style: none;
}
.sr-mobile-menu> li { border-bottom: 1px solid rgba(255,255,255,0.08); }
.sr-mobile-menu> li> a,
.sr-mobile-menu> li> .sr-submenu-toggle> a {
	display: block;
	color: var(--white);
	text-transform: uppercase;
	font-family: "Poppins";
	font-weight: 500;
	padding: 16px 4px;
	font-size: 16px;
}
.sr-mobile-menu .sr-submenu-toggle {
	display: flex; align-items: center; justify-content: space-between;
}
.sr-mobile-menu .sr-submenu-toggle button {
	background: transparent; border: 0; color: var(--white);
	padding: 8px; cursor: pointer;
}
.sr-mobile-menu .sub-menu,
.sr-mobile-menu .sr-dropdown-content {
	position: static; opacity: 1; visibility: visible;
	transform: none; margin: 0 0 8px 0; background: transparent;
	padding: 0 0 0 16px; min-width: 0;
	display: none;
}
.sr-mobile-menu li.is-open> .sub-menu,
.sr-mobile-menu li.is-open> .sr-dropdown-content { display: block; }
.sr-mobile-menu .sub-menu> li> a,
.sr-mobile-menu .sr-dropdown-content> li> a {
	color: rgba(255,255,255,0.85);
	padding: 10px 4px;
	font-size: 14px;
}

body.sierra-menu-open { overflow: hidden; }

/* Sticky scrolled state — applies on all pages, including those with a dark
   hero (selectors written so they out-rank body.has-dark-hero #sierra-header). */
body #sierra-header.scrolling,
body.has-dark-hero #sierra-header.scrolling,
body.no-dark-hero  #sierra-header.scrolling {
	background-color: var(--white);
	box-shadow: 0 2px 12px rgba(0,0,0,.08);
}
body #sierra-header.scrolling .desktop-menu__nav-items> li> a,
body #sierra-header.scrolling .desktop-menu__nav-items> li> .sr-submenu-toggle> a,
body #sierra-header.scrolling .contact-button__phone,
body #sierra-header.scrolling .logo-img__text {
	color: var(--black);
}
body #sierra-header.scrolling .desktop-menu__nav-items> li> a:hover,
body #sierra-header.scrolling .desktop-menu__nav-items> li> .sr-submenu-toggle> a:hover,
body #sierra-header.scrolling .contact-button__phone:hover {
	color: var(--primary);
}
body #sierra-header.scrolling .sr-mobile-toggle span { background-color: var(--black); }

/* Shrink the header height on scroll (frees up vertical space). Once scrolled
   the sticky header already sits below the admin bar (top: 32px/46px), so it no
   longer needs the admin-bar offset baked into its padding. */
.header-section.sr-section { transition: padding .25s ease, background-color .3s ease; }
.logo-img, .logo-img__image img { transition: max-height .25s ease; }
body #sierra-header.scrolling .header-section.sr-section { padding-top: 6px; padding-bottom: 6px; }
body.admin-bar #sierra-header.scrolling .header-section.sr-section { padding-top: 6px; padding-bottom: 6px; }
@media screen and (max-width: 782px) {
	body.admin-bar #sierra-header.scrolling .header-section.sr-section { padding-top: 6px; padding-bottom: 6px; }
}
#sierra-header.scrolling .logo-img { max-height: 48px; }
#sierra-header.scrolling .logo-img__image img { max-height: 48px; }

/* -- HERO ---------------------------------------------------------------- */
/* Heroes are intentionally NOT full-screen so credibility/value content (trust
   bar, services, etc.) lands above the fold — a core CRO-audit goal. Clamped so
   they stay tall enough for the headline + CTAs but never eat the whole screen. */
.hero-video-section {
	width: 100%; min-height: clamp(480px, 70vh, 760px);
	position: relative;
	display: flex; align-items: center; justify-content: center;
	overflow: hidden; box-sizing: border-box;
	color: var(--white);
}
@media (max-width: 991px) { .hero-section, .hero-video-section { min-height: clamp(420px, 62vh, 620px); } }
@media (max-width: 767px) { .hero-video-section { min-height: 56vh; } }
@media (max-width: 480px) { .hero-video-section { min-height: 60vh; } }

/* Service heroes run shorter so the trust bar is guaranteed above the fold.
   Headline is capped (the default 70px H1 + a long title would push the trust
   bar off-screen — e.g. the Insurance page) and top spacing tightened. */
.service-hero.hero-video-section { min-height: clamp(400px, 56vh, 560px); }
@media (max-width: 991px) { .service-hero.hero-video-section { min-height: clamp(380px, 52vh, 520px); } }
.service-hero .hero-section__hero-container { margin-top: 0; }
.service-hero .hero-section__hero-container h1 { font-size: clamp(30px, 3.4vw, 46px); }

.hero-video-section .sr-bg-video {
	position: absolute; inset: 0; z-index: 0; overflow: hidden;
}
.hero-video-section video { width: 100%; height: 100%; object-fit: cover; }
.sr-video-toggle { position: absolute; bottom: 18px; right: 18px; z-index: 3; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.4); color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; transition: background-color .2s; }
.sr-video-toggle:hover { background: rgba(0,0,0,.7); }
.sr-video-toggle:focus-visible { outline: 2px solid #C49A6C; outline-offset: 2px; }
@media (max-width: 767px) { .sr-video-toggle { width: 36px; height: 36px; bottom: 12px; right: 12px; } }
@media (prefers-reduced-motion: reduce) { .hero-video-section video { /* JS pauses; ensure no CSS motion */ } }
.hero-section__overly::before {
	content: ""; position: absolute; inset: 0;
	background: rgba(0,0,0,0.55); z-index: 1;
}
.hero-section__hero-container {
	position: relative; z-index: 2;
	display: flex; flex-direction: column; justify-content: center;
	margin-top: 60px;
	padding-right: clamp(1rem, 0.125rem + 2.8vi, 1.875rem);
	padding-left:  clamp(1rem, 0.125rem + 2.8vi, 1.875rem);
	gap: 24px;
	width: 100%;
}
.hero-section__hero-container .hero-content { display: flex; flex-direction: column; width: 60%; row-gap: 20px; }
/* Hero CTA should size to its content, not stretch to the full hero width. */
.hero-section__hero-container > .hero-btn,
.hero-section__hero-container > .sr-button { align-self: flex-start; }
@media (max-width: 478px) { .hero-section__hero-container > .hero-btn, .hero-section__hero-container > .sr-button { align-self: stretch; } }
.hero-section__hero-container h1 { color: var(--white); font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; }
.hero-section__hero-container .hero-content__text,
.hero-section__hero-container .hero-content__text p { color: var(--white); font-family: "Poppins"; font-weight: 400; font-size: 18px; }
@media (max-width: 991px) {
	.hero-section__hero-container .hero-content { width: 100%; }
	.hero-section__hero-container h1 { font-size: 60px; }
}
@media (max-width: 767px) {
	.hero-section__hero-container { margin-top: 40px; }
	.hero-section__hero-container h1 { font-size: 40px; }
}
@media (max-width: 478px) {
	.hero-section__hero-container h1 { font-size: 30px; }
}

/* -- SERVICES SECTION + CARDS -------------------------------------------- */
.services-section { background-color: var(--white); }
.services-section__container { display: flex; flex-direction: column; gap: 40px; align-items: center; text-align: center; }
.services-section__intro { max-width: 720px; }
.services-grid { display: grid; gap: 30px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); width: 100%; }
.services-grid--alt { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
@media (max-width: 478px) {
	.services-section.sr-section { padding-right: 30px; padding-left: 30px; }
}

.service-heading { color: var(--black); font-family: "Montserrat"; font-weight: 700; }
@media (max-width: 991px) { .service-heading { font-size: 40px; } }
@media (max-width: 767px) { .service-heading { font-size: 30px; } }
@media (max-width: 478px) { .service-heading { font-size: 30px; } }

.service-box {
	position: relative; overflow: hidden;
	display: flex; align-items: flex-end; justify-content: flex-start;
	aspect-ratio: 3/4; min-height: 320px;
	border-radius: 10px;
	color: var(--white);
	transition: transform .3s ease;
	background-color: #2b2b2b;
	background-size: cover; background-position: center;
}
.service-box::after {
	content: ""; position: absolute; inset: 0;
	background: rgba(43, 43, 43, 0.5);
	transition: background .3s ease-in-out;
	z-index: 1;
}
.service-box:hover::after { background: rgba(43, 43, 43, 0.9); }
.service-box h5 {
	position: relative; z-index: 2;
	color: #fff; padding: 20px;
	text-shadow: 0 0 5px rgba(0,0,0,0.3);
	transition: color .3s ease-in-out, text-shadow .3s ease-in-out;
}
.service-box:hover h5 { text-shadow: none; }
.service-box:hover { transform: scale(1.02); }

/* -- TEAM SECTION + CARDS ------------------------------------------------- */
.our-team-section.sr-section { background-color: #2d2926; overflow: hidden; }
.our-team-section .service-heading,
.our-team-section { color: var(--white); }
.our-team-section .sr-container { display: flex; flex-direction: column; gap: 40px; align-items: center; text-align: center; }

.our-team-perant { display: flex; column-gap: 35px; row-gap: 35px; flex-wrap: wrap; justify-content: center; }
@media (max-width: 991px) { .our-team-perant { column-gap: 30px; row-gap: 30px; } }
@media (max-width: 767px) { .our-team-perant { flex-direction: column; align-items: center; } }

.card-team { width: 400px; border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; background-color: var(--white); }
@media (max-width: 991px) { .card-team { width: 380px; } }
@media (max-width: 767px) { .card-team { width: 350px; } }
.card-team__media { aspect-ratio: 4/5; overflow: hidden; }
.card-team__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.card-team:hover .card-team__media img { transform: scale(1.05); }
.card-content {
	display: flex; flex-direction: column; padding: 10px;
	row-gap: 8px; background-color: var(--white);
	text-align: center; color: var(--black);
	justify-content: center; align-items: center;
}
.card-content h5 { color: var(--black); }
.card-content__role { color: #555; font-family: "Poppins"; font-size: 14px; text-transform: uppercase; }

/* Compact team (About Us) hero */
.team-hero.hero-video-section { min-height: 48vh; }
@media (max-width: 991px) { .team-hero.hero-video-section { min-height: 44vh; } }
.team-hero .hero-section__hero-container { margin-top: 0; }

/* Team card as a modal trigger (button reset) */
.card-team--modal { appearance: none; -webkit-appearance: none; border: 0; padding: 0; margin: 0; font: inherit; text-align: center; cursor: pointer; }
.card-team__view { display: inline-block; margin-top: 6px; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: .04em; color: var(--primary); }
.card-team--modal:hover .card-team__view { color: var(--accent); }

/* Team bio popup modal */
.team-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.team-modal[hidden] { display: none; }
.team-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.team-modal__dialog { position: relative; z-index: 1; background: #fff; border-radius: 16px; width: 100%; max-width: 840px; max-height: 92vh; overflow-y: auto; box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.team-modal__close { position: absolute; top: 12px; right: 14px; z-index: 2; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(0,0,0,.06); color: var(--neutral-800); font-size: 26px; line-height: 1; cursor: pointer; transition: background-color .2s; }
.team-modal__close:hover { background: rgba(0,0,0,.14); }
/* Photo beside the copy. The full square headshot is shown un-cropped (no banner
   crop that was cutting people off), and the bio fills the height next to it so
   nothing has to scroll. Stacks to photo-on-top on mobile. */
.team-modal__grid { display: grid; grid-template-columns: 340px 1fr; align-items: stretch; }
@media (max-width: 600px) { .team-modal__grid { grid-template-columns: 1fr; } }
.team-modal__photo { background: var(--neutral-100); overflow: hidden; border-radius: 16px 0 0 16px; }
/* Image fills the column's full height, so it expands vertically with the bio.
   The wide column keeps the cover-crop gentle (object-position:top frames the
   face). On mobile it reverts to a full-width square on top. */
.team-modal__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
@media (max-width: 600px) {
	.team-modal__photo { border-radius: 16px 16px 0 0; }
	.team-modal__photo img { height: auto; aspect-ratio: 1 / 1; }
}
.team-modal__body { padding: 26px 34px 30px; }
.team-modal__name { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 24px; color: var(--neutral-900); margin: 0 0 4px; }
.team-modal__role { font-family: "Poppins"; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; font-size: 13px; color: var(--primary); margin: 0 0 14px; }
.team-modal__contact { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 16px; }
.team-modal__contact a { font-family: "Poppins"; font-size: 14px; color: var(--accent); display: inline-flex; align-items: center; gap: 6px; }
.team-modal__contact a:hover { color: var(--primary); }
.team-modal__contact i { color: var(--primary); }
/* The bio shares the .sr-article class, whose large article typography
   (17–19px / 1.78) otherwise wins the cascade and makes long bios overflow the
   modal. Override with higher specificity to keep modal bios compact. */
.team-modal__bio.sr-article p,
.team-modal__bio.sr-article > p:first-of-type { font-size: 14.5px; line-height: 1.6; color: var(--neutral-700); margin: 0 0 .8em; }
body.sierra-modal-open { overflow: hidden; }

/* -- TESTIMONIALS SECTION ------------------------------------------------- */
.testimonials-section { background-color: var(--white); }
.testimonials-section .sr-container { display: flex; flex-direction: column; gap: 40px; align-items: center; text-align: center; }
.reviews-grid { display: grid; gap: 30px; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); width: 100%; }

.rev-card {
	display: flex; flex-direction: column; align-items: flex-start;
	border-radius: 10px; background-color: var(--white);
	position: relative;
	padding: 30px;
	width: 100%; height: 100%; min-height: 400px;
	row-gap: 20px;
	box-shadow: 0 2px 12px rgba(0,0,0,.08);
	transition: background-color .3s ease, color .3s ease;
}
.rev-card:hover { background-color: #2d2926; color: var(--white); }
.rev-card:hover .rev-card__quote { color: var(--white); }
.rev-card:hover .rev-card__name { color: var(--white); }
.rev-card__rating { display: inline-flex; gap: 4px; font-size: 20px; color: #ddd; }
.rev-card__rating .is-filled { color: #ffb400; }
.rev-card__quote { color: #333; text-align: left; font-family: "Poppins"; }
.rev-card__iconname { display: flex; justify-content: flex-start; align-items: center; column-gap: 15px; }
.rev-card__avatar { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; }
.rev-card__meta { display: flex; flex-direction: column; align-items: flex-start; }
.rev-card__name { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; }
.rev-card__sub { font-size: 13px; color: #888; font-family: "Poppins"; }

@media (max-width: 991px) {
	.rev-card { align-items: center; padding: 25px; }
	.rev-card__quote { text-align: center; }
}
@media (max-width: 478px) { .rev-card { padding: 20px; } }

/* -- BLOG SECTION + CARDS ------------------------------------------------- */
.our-blog-section.sr-section { background-color: #2b2b2b; overflow: hidden; }
.our-blog-section .blog-heading { color: var(--white); }
.our-blog-section { color: var(--white); }

.blog-container { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 40px; }
.blog-heading { color: var(--white); }
@media (max-width: 991px) { .blog-heading { font-size: 40px; } }
@media (max-width: 478px) { .blog-heading { font-size: 30px; } }

.blog-parent { flex-wrap: wrap; display: flex; justify-content: center; column-gap: 35px; row-gap: 35px; }
.blog-card { border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; width: 400px; background-color: var(--black); color: var(--white); }
@media (max-width: 991px) { .blog-card { width: 350px; } }
@media (max-width: 478px) { .blog-card { width: 400px; } }
@media (max-width: 380px) { .blog-card { width: 350px; } }
.blog-card__media { aspect-ratio: 16/9; overflow: hidden; background: #1a1a1a; }
.blog-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.blog-card:hover .blog-card__media img { transform: scale(1.05); }
.blog-card-content {
	display: flex; flex-direction: column;
	padding: 20px; background-color: var(--black);
	justify-content: center; row-gap: 15px; flex-grow: 1;
	color: var(--white);
}
.blog-card-content h5 { color: var(--white); }
.blog-card__date { font-family: "Poppins"; font-size: 13px; color: #ff5900; text-transform: uppercase; }
.blog-card__excerpt { font-family: "Poppins"; font-size: 14px; color: #ccc; }
.blog-card__cta { color: #ff5900; text-transform: uppercase; font-weight: 600; }

/* -- PORTFOLIO SECTION --------------------------------------------------- */
.portfolio-section { background-color: var(--white); }
.portfolio-section .sr-container { display: flex; flex-direction: column; gap: 40px; align-items: center; text-align: center; }
.portfolio-grid { display: grid; gap: 30px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); width: 100%; }
.portfolio-card { border-radius: 10px; overflow: hidden; background-color: var(--white); box-shadow: 0 2px 12px rgba(0,0,0,.06); text-align: left; }
.portfolio-card__media { aspect-ratio: 4/3; overflow: hidden; }
.portfolio-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.portfolio-card:hover .portfolio-card__media img { transform: scale(1.05); }
.portfolio-card__content { padding: 20px; }
.portfolio-card__title { color: var(--black); }
.portfolio-card__subtitle { color: #666; font-family: "Poppins"; }

/* -- Portfolio case study (single) --------------------------------------- */
/* Compact image hero (shorter than the default full-screen hero). */
.portfolio-hero.hero-video-section { min-height: 44vh; }
@media (max-width: 991px) { .portfolio-hero.hero-video-section { min-height: 40vh; } }
@media (max-width: 600px)  { .portfolio-hero.hero-video-section { min-height: 36vh; } }
.portfolio-hero .hero-section__hero-container { margin-top: 0; }

.pf-facts.sr-section { background: var(--accent); color: #fff; padding-top: 22px; padding-bottom: 22px; }
.pf-facts__row { display: flex; flex-wrap: wrap; gap: 18px 20px; justify-content: space-between; }
.pf-facts__item { display: flex; align-items: center; gap: 12px; flex: 1 1 0; min-width: 180px; }
.pf-facts__icon { width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.14); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.pf-facts__icon i { font-size: 17px; color: #fff; }
.pf-facts__text { display: flex; flex-direction: column; line-height: 1.2; }
.pf-facts__text em { font-style: normal; font-family: "Poppins"; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: rgba(255,255,255,.75); }
.pf-facts__text strong { font-family: "Montserrat"; font-weight: 700; font-size: 16px; }
@media (max-width: 700px) { .pf-facts__row { display: grid; grid-template-columns: 1fr 1fr; } }

.pf-overview { background: var(--white); }
.pf-overview__grid { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 48px; align-items: start; }
@media (max-width: 991px) { .pf-overview__grid { grid-template-columns: 1fr; gap: 32px; } }
.pf-overview__body .left-content-heading { display: block; margin-bottom: 8px; }
.pf-detailcard { background: var(--neutral-100); border: 1px solid var(--neutral-200); border-radius: 16px; padding: 28px; position: sticky; top: 108px; }
body.admin-bar .pf-detailcard { top: 140px; }
@media (max-width: 991px) { .pf-detailcard { position: static; } }
.pf-detailcard h3 { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 18px; color: var(--neutral-900); margin: 0 0 16px; }
.pf-detailcard ul { display: flex; flex-direction: column; gap: 12px; margin-bottom: 18px; }
.pf-detailcard li { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--neutral-200); padding-bottom: 10px; font-family: "Poppins"; font-size: 14.5px; }
.pf-detailcard li em { font-style: normal; color: var(--neutral-700); text-transform: uppercase; font-size: 12px; letter-spacing: .04em; }
.pf-detailcard li span { font-weight: 600; color: var(--neutral-900); text-align: right; }
.pf-detailcard__services > em { font-style: normal; display: block; color: var(--neutral-700); text-transform: uppercase; font-size: 12px; letter-spacing: .04em; margin-bottom: 10px; }
.pf-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.pf-chip { font-family: "Poppins"; font-size: 13px; font-weight: 600; color: var(--accent); background: #fff; border: 1px solid var(--neutral-200); border-radius: 999px; padding: 7px 14px; transition: background-color .2s, color .2s; }
.pf-chip:hover { background: var(--accent); color: #fff; }
.pf-detailcard__cta { width: 100%; }

.pf-csr.sr-section { background: var(--neutral-100); }
.pf-csr__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 820px) { .pf-csr__grid { grid-template-columns: 1fr; } }
.pf-csr__card { background: #fff; border: 1px solid var(--neutral-200); border-radius: 16px; padding: 30px 26px; }
.pf-csr__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 14px; background: rgba(6,104,57,.08); color: var(--accent); font-size: 24px; margin-bottom: 16px; }
.pf-csr__card h3 { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 19px; color: var(--neutral-900); margin: 0 0 10px; }
.pf-csr__card p { font-family: "Poppins"; font-size: 15px; line-height: 1.65; color: var(--neutral-700); margin: 0; }

/* Before/After comparison slider */
.ba-section { background: var(--white); }
.ba-section__container { display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center; }
.ba-section__hint { font-family: "Poppins"; font-size: 14px; color: var(--neutral-700); margin: 0 0 20px; }
.ba-slider { --ba-pos: 50%; position: relative; width: 100%; max-width: 100%; border-radius: 14px; overflow: hidden; box-shadow: 0 14px 34px rgba(0,0,0,.14); touch-action: none; background: var(--neutral-100); }
/* The "after" image sits in normal flow and defines the slider height, so the
   full image shows (no cropping). The "before" overlay matches its box. */
.ba-img { display: block; width: 100%; }
.ba-img--after { position: relative; height: auto; }
.ba-before .ba-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ba-before { position: absolute; inset: 0; z-index: 2; clip-path: inset(0 calc(100% - var(--ba-pos)) 0 0); }
.ba-label { position: absolute; bottom: 16px; z-index: 3; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: .06em; color: #fff; background: rgba(0,0,0,.55); padding: 6px 12px; border-radius: 999px; pointer-events: none; }
.ba-label--before { left: 16px; }
.ba-label--after { right: 16px; }
.ba-handle { position: absolute; top: 0; bottom: 0; left: var(--ba-pos); width: 3px; background: #fff; transform: translateX(-50%); z-index: 4; pointer-events: none; box-shadow: 0 0 0 1px rgba(0,0,0,.15); }
.ba-handle::after { content: "\2194"; position: absolute; top: 50%; left: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); border-radius: 50%; background: #fff; color: var(--accent); font-size: 20px; font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 12px rgba(0,0,0,.3); }
.ba-range { position: absolute; inset: 0; z-index: 5; width: 100%; height: 100%; margin: 0; padding: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; background: transparent; }
.ba-range::-webkit-slider-thumb { -webkit-appearance: none; width: 44px; height: 100%; cursor: ew-resize; }
.ba-range::-moz-range-thumb { width: 44px; height: 100%; border: 0; background: transparent; cursor: ew-resize; }
.ba-range:focus-visible { outline: none; }
.ba-slider:focus-within .ba-handle::after { outline: 3px solid #C49A6C; outline-offset: 2px; }

/* =======================================================================
   SERVICE-STYLE DEMO (Morgan & Morgan–style, brand-adapted) — mm-*
   ======================================================================= */
.mm-eyebrow { display: inline-block; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: 12px; color: var(--primary); margin-bottom: 14px; }
.mm-head { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; margin-bottom: 40px; }
.mm-head__sub { font-family: "Poppins"; font-size: 16px; color: var(--neutral-700); margin: 0; }

/* Testimonials slider — full-bleed so more cards show at once; quotes are
   line-clamped so card heights stay uniform and compact. */
/* Slider wrapper stays container-width (the testimonials container is a centered
   column flex, which would otherwise size this to its content) so the arrows
   anchor correctly. The TRACK is the full-bleed horizontal scroller. */
.mm-revslider { position: relative; width: 100%; align-self: stretch; }
.mm-revslider__track { display: flex; gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); padding: 6px max(24px, calc(50vw - 620px)) 6px; -webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none; }
.mm-revslider__track::-webkit-scrollbar { display: none; height: 0; width: 0; }
.mm-revslider__item { flex: 0 0 340px; scroll-snap-align: start; display: flex; }
.mm-revslider__item .rev-card { width: 100%; min-height: 0; padding: 26px; }
.mm-revslider__item .rev-card__quote { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 480px) { .mm-revslider__item { flex-basis: 84%; } }
/* Arrows: centered row below the testimonials */
.mm-revslider__nav { display: flex; justify-content: center; gap: 14px; margin-top: 22px; }
.mm-revslider__arrow { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--accent); background: #fff; color: var(--accent); font-size: 24px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 4px 14px rgba(0,0,0,.10); transition: background-color .2s, color .2s; }
.mm-revslider__arrow:hover { background: var(--accent); color: #fff; }
.mm-revslider__arrow:focus-visible { outline: 3px solid #C49A6C; outline-offset: 2px; }

/* Hero */
:root { --mm-forest: #1C4231; --mm-forest-rgb: 28, 66, 49; }
.mm-hero.sr-section { background: var(--mm-forest); color: #fff; position: relative; overflow: hidden; padding-bottom: 70px; }
.mm-hero::before { content: ""; position: absolute; inset: 0; background-image: var(--mm-hero-bg); background-size: cover; background-position: center; opacity: .16; }
.mm-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(var(--mm-forest-rgb),.82) 0%, rgba(var(--mm-forest-rgb),.50) 58%, rgba(var(--mm-forest-rgb),.24) 100%); }
.mm-hero > .sr-container { position: relative; z-index: 1; }
.mm-hero__grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 48px; align-items: center; padding-top: 30px; }
@media (min-width: 992px) { .mm-hero__grid { align-items: center; } }
@media (max-width: 991px) { .mm-hero__grid { grid-template-columns: 1fr; gap: 32px; } }
.mm-hero__title { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; color: #fff; font-size: 52px; line-height: 1.08; margin: 0 0 16px; }
@media (max-width: 767px) { .mm-hero__title { font-size: 38px; } }
.mm-hero__tag { font-family: "Poppins"; font-size: 17px; line-height: 1.65; color: rgba(255,255,255,.85); margin: 0 0 24px; max-width: 600px; }
.mm-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 18px; }
.mm-hero__trust { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.mm-hero__trust li { font-family: "Poppins"; font-size: 14px; font-weight: 500; color: #fff; }
/* Founder one-liner under the hero trust row */
.mm-hero__founderline { display: flex; align-items: center; gap: 12px; margin: 22px 0 0; font-family: "Poppins"; font-style: italic; font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.85); max-width: 560px; }
.mm-hero__foundermini { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; background: #2b2b2b center/cover no-repeat; border: 2px solid rgba(255,255,255,.25); }
.mm-hero__founderline strong { color: var(--primary); font-style: normal; font-weight: 600; }

/* Hero lead-capture form card */
.mm-hero__formcard { background: #fff; border-radius: 16px; padding: 26px 26px 22px; box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.mm-hero__formeyebrow { display: inline-block; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: 12px; color: var(--primary); margin-bottom: 6px; }
.mm-hero__formtitle { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 23px; line-height: 1.12; color: var(--neutral-900); margin: 0 0 6px; }
.mm-hero__formsub { font-family: "Poppins"; font-size: 14px; color: var(--neutral-700); margin: 0 0 16px; }
.mm-hero__formcard .sierra-form { gap: 14px; }
.mm-hero__formcard .sierra-form__submit { width: 100%; }
.mm-hero__formcard .sierra-form__disclaimer { font-size: 11.5px; }
/* Fine-print sits inside white form cards on dark sections — keep it dark, not inherited white. */
.mm-hero__formcard .sierra-form__disclaimer,
.mm-leadform__form .sierra-form__disclaimer { color: #6b7280; }
/* Tighter field rows so the form fits the hero without feeling huge. */
.mm-hero__formcard .sierra-form__field input,
.mm-hero__formcard .sierra-form__field select,
.mm-hero__formcard .sierra-form__field textarea { padding: 11px 13px; }
.mm-hero__formcard .sierra-form__field textarea { min-height: 84px; }

/* Team roster */
.mm-team { background: var(--white); }
.mm-roster { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; }
@media (max-width: 900px) { .mm-roster { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 520px) { .mm-roster { grid-template-columns: repeat(2, 1fr); } }
.mm-roster__card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; }
.mm-roster__avatar { width: 92px; height: 92px; border-radius: 50%; background: var(--accent) center/cover no-repeat; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-family: "Montserrat"; font-weight: 700; font-size: 30px; border: 3px solid var(--neutral-100); box-shadow: 0 6px 18px rgba(0,0,0,.10); }
.mm-roster__card strong { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 14px; color: var(--neutral-900); }
.mm-roster__role { font-family: "Poppins"; font-size: 12.5px; color: var(--primary); }

/* Takeaways */
.mm-takeaways { background: var(--neutral-100); }
.mm-takeaways__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
@media (max-width: 767px) { .mm-takeaways__grid { grid-template-columns: 1fr; } }
.mm-takeaway { display: flex; gap: 18px; background: #fff; border: 1px solid var(--neutral-200); border-radius: 14px; padding: 26px; }
.mm-takeaway__icon { flex: 0 0 auto; width: 56px; height: 56px; border-radius: 14px; background: rgba(255,89,0,.10); color: var(--primary); display: inline-flex; align-items: center; justify-content: center; font-size: 24px; }
.mm-takeaway h3 { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 17px; color: var(--neutral-900); margin: 0 0 8px; }
.mm-takeaway p { font-family: "Poppins"; font-size: 14.5px; line-height: 1.6; color: var(--neutral-700); margin: 0; }
.mm-takeaway__link { display: inline-block; margin-top: 10px; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: .04em; color: var(--accent); }
.mm-takeaway__link:hover { color: var(--primary); }
/* 5-item handle grid: 2 columns, last lone card spans full width */
@media (min-width: 768px) {
	.mm-takeaways__grid--five .mm-takeaway:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* "What sets apart" band */
.mm-apart.sr-section { background: var(--neutral-100); }
.mm-apart__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; max-width: 1000px; margin: 0 auto; }
@media (max-width: 767px) { .mm-apart__cols { grid-template-columns: 1fr; gap: 20px; } }
.mm-apart__cols p { font-family: "Poppins"; font-size: 16px; line-height: 1.75; color: var(--neutral-800); margin: 0; }
/* Single-column variant */
.mm-apart__cols--single { display: flex; flex-direction: column; grid-template-columns: none; gap: 18px; max-width: 820px; }
.mm-howlong__text { max-width: 880px; margin: 0 auto; text-align: center; font-family: "Poppins"; font-size: 16px; line-height: 1.75; color: var(--neutral-800); }

/* Lead-form meta line */
.mm-leadform__meta { font-family: "Poppins"; font-size: 13px; line-height: 1.6; color: rgba(255,255,255,.6); margin: 18px 0 0; }

/* 4-step process variant (overrides the 5-col default at each breakpoint) */
.home-process__steps.is-four { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .home-process__steps.is-four { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .home-process__steps.is-four { grid-template-columns: 1fr; } }
.home-process__steps.is-four .home-process__text { font-size: 13px; }

/* Results */
.mm-results { background: var(--white); }

/* Authority dark 2x2 */
.mm-authority.sr-section { background: var(--mm-forest); color: #fff; }
.mm-authority__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
@media (max-width: 860px) { .mm-authority__inner { grid-template-columns: 1fr; gap: 32px; } }
.mm-authority__lead h2 { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; color: #fff; font-size: 30px; line-height: 1.2; margin: 0 0 20px; }
.mm-authority__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.14); border-radius: 14px; overflow: hidden; }
.mm-authority__grid div { background: var(--mm-forest); padding: 30px 24px; text-align: center; }
.mm-authority__grid strong { display: block; font-family: "Montserrat"; font-weight: 700; font-size: 44px; color: var(--primary); line-height: 1; }
.mm-authority__grid span { font-family: "Poppins"; font-size: 14px; color: rgba(255,255,255,.82); margin-top: 6px; display: block; }

/* Lead form (anchor) */
.mm-leadform.sr-section { background: var(--mm-forest); color: #fff; scroll-margin-top: 90px; }
.mm-leadform__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: start; }
@media (max-width: 860px) { .mm-leadform__grid { grid-template-columns: 1fr; gap: 28px; } }
.mm-leadform__pitch h2 { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; color: #fff; font-size: 32px; margin: 0 0 12px; }
.mm-leadform__pitch p { font-family: "Poppins"; font-size: 16px; line-height: 1.65; color: rgba(255,255,255,.82); margin: 0 0 18px; }
.mm-leadform__phone { display: inline-flex; align-items: center; gap: 8px; font-family: "Montserrat"; font-weight: 700; font-size: 18px; color: #fff; }
.mm-leadform__phone:hover { color: var(--primary); }
.mm-leadform__phone .sr-svgicon { width: 18px; height: 18px; color: var(--primary); }
.mm-leadform__form { background: #fff; border-radius: 16px; padding: 30px; }
.mm-leadform__form .sierra-form__field label { color: var(--neutral-800); }

/* Related resources */
.mm-related { background: var(--neutral-100); }
.mm-related__list { max-width: 880px; margin: 0 auto; display: grid; gap: 4px; }
.mm-related__list a { display: flex; align-items: center; gap: 12px; font-family: "Poppins"; font-size: 16px; color: var(--neutral-800); padding: 16px 18px; background: #fff; border: 1px solid var(--neutral-200); border-radius: 10px; transition: border-color .2s, color .2s, transform .2s; }
.mm-related__list a:hover { color: var(--primary); border-color: var(--primary); transform: translateX(4px); }
.mm-related__list i { color: var(--primary); font-size: 13px; }

/* -- Lead magnet (CRO 3.9) ----------------------------------------------- */
.guide-banner.sr-section { background: var(--neutral-700); color: #fff; padding-top: 40px; padding-bottom: 40px; }
.guide-banner__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.guide-banner__text h2 { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; color: #fff; font-size: 26px; margin: 0 0 6px; }
.guide-banner__text p { font-family: "Poppins"; font-size: 15.5px; color: rgba(255,255,255,.85); margin: 0; max-width: 640px; }
@media (max-width: 700px) { .guide-banner__inner { flex-direction: column; align-items: flex-start; } }

.guide.sr-section { background: var(--white); }
.guide__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; }
@media (max-width: 900px) { .guide__grid { grid-template-columns: 1fr; gap: 32px; } }
.guide__title { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 38px; line-height: 1.12; color: var(--neutral-900); margin: 10px 0 14px; }
.guide__lead { font-family: "Poppins"; font-size: 17px; line-height: 1.7; color: var(--neutral-700); margin: 0 0 22px; }
.guide__points { display: flex; flex-direction: column; gap: 12px; }
.guide__points li { display: flex; gap: 12px; align-items: flex-start; font-family: "Poppins"; font-size: 15.5px; color: var(--neutral-800); }
.guide__points i { color: var(--accent); margin-top: 3px; }
.guide__card { background: var(--neutral-100); border: 1px solid var(--neutral-200); border-radius: 16px; padding: 32px; }
.guide__cardtitle { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 22px; color: var(--neutral-900); margin: 0 0 18px; }
.guide__card .cx-submit { margin-top: 6px; }
.guide__success { background: var(--neutral-100); border: 1px solid var(--neutral-200); border-radius: 16px; padding: 36px; text-align: center; }
.guide__successicon { font-size: 48px; color: var(--accent); }
.guide__success h2 { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 24px; color: var(--neutral-900); margin: 12px 0 8px; }
.guide__success p { font-family: "Poppins"; color: var(--neutral-700); margin: 0 0 18px; }

/* -- Internal area links (CRO 3.4) --------------------------------------- */
.sr-arealinks.sr-section { background: var(--neutral-100); padding-top: 28px; padding-bottom: 28px; }
.sr-arealinks p { font-family: "Poppins"; font-size: 15px; line-height: 1.7; color: var(--neutral-700); margin: 0; text-align: center; max-width: 1000px; margin-inline: auto; }
.sr-arealinks a { color: var(--accent); font-weight: 600; }
.sr-arealinks a:hover { color: var(--primary); }
.sr-arealinks--home.sr-section { background: var(--white); }

/* -- Service Areas hub (CRO 3.2) ----------------------------------------- */
.sa-intro { background: var(--white); }
.sa-intro__text { max-width: 880px; margin: 0 auto; text-align: center; font-family: "Poppins"; font-size: 17px; line-height: 1.8; color: var(--neutral-700); }
.sa-primary.sr-section { background: var(--neutral-100); }
.sa-primary__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .sa-primary__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .sa-primary__grid { grid-template-columns: 1fr; } }
.sa-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--neutral-200); border-radius: 16px; overflow: hidden; transition: transform .25s, box-shadow .25s; }
.sa-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(0,0,0,.10); }
.sa-card__media { aspect-ratio: 16/9; background: #2b2b2b center/cover no-repeat; display: block; }
.sa-card__body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 8px; }
.sa-card__title { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 20px; color: var(--neutral-900); }
.sa-card:hover .sa-card__title { color: var(--primary); }
.sa-card__hook { font-family: "Poppins"; font-size: 14.5px; line-height: 1.55; color: var(--neutral-700); }
.sa-card__link { font-family: "Poppins"; font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: .04em; color: var(--accent); margin-top: 4px; }
.sa-all { background: var(--white); }
.sa-all__list { display: grid; grid-template-columns: repeat(4, max-content); justify-content: center; gap: 12px 56px; }
@media (max-width: 900px) { .sa-all__list { grid-template-columns: repeat(2, max-content); gap: 12px 48px; } }
@media (max-width: 480px) { .sa-all__list { grid-template-columns: max-content; } }
.sa-all__list a { font-family: "Poppins"; font-size: 14.5px; color: var(--neutral-800); display: inline-flex; align-items: center; gap: 8px; padding: 6px 0; transition: color .2s; }
.sa-all__list a:hover { color: var(--primary); }
.sa-all__list i { color: var(--primary); font-size: 13px; }

/* City landing page (single service-area) */
.sa-lead { max-width: 880px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; gap: 8px; align-items: center; }
.sa-lead p { font-family: "Poppins"; font-size: 17px; line-height: 1.75; color: var(--neutral-700); margin: 6px 0 0; }
.sa-services { background: var(--white); }
.sa-services .mm-head, .sa-why .mm-head { margin-bottom: 36px; }
.sa-inline-cta { max-width: 880px; margin: 32px auto 0; text-align: center; font-family: "Poppins"; font-size: 15px; line-height: 1.6; color: var(--neutral-700); display: flex; flex-direction: column; gap: 14px; align-items: center; }
.sa-why.sr-section { background: var(--white); } /* contrast against the neutral projects band above */

/* Areas We Serve module (internal links to community pages) */
.areas-serviced.sr-section { background: var(--white); }
.areas-serviced .mm-head { margin-bottom: 30px; }
/* Centered, flowing list of city links (centers every row incl. the last). */
.areas-serviced__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 32px; grid-template-columns: none; max-width: 980px; margin: 0 auto; }
.areas-serviced__list li { width: auto; }
.areas-serviced__cta { text-align: center; margin-top: 30px; }

/* -- Breadcrumbs (CRO 2.10) ---------------------------------------------- */
.sr-breadcrumbs { background: var(--neutral-100); border-bottom: 1px solid var(--neutral-200); }
.sr-breadcrumbs__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 14px; padding-bottom: 14px; font-family: "Poppins"; font-size: 13.5px; }
.sr-breadcrumbs a { color: var(--neutral-700); }
.sr-breadcrumbs a:hover { color: var(--primary); }
.sr-breadcrumbs__sep { color: #C49A6C; }
.sr-breadcrumbs__current { color: var(--neutral-900); font-weight: 600; }
/* The breadcrumb's sr-container has no inline padding, so on mobile it sat flush
   to the screen edge. Pad it to align with the section content above/below. */
@media (max-width: 991px) {
	.sr-breadcrumbs__inner { padding-left: 16px; padding-right: 16px; }
}

/* -- Portfolio filters (CRO 2.9) ----------------------------------------- */
.pf-filters { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 36px; }
.pf-filter { font-family: "Poppins"; font-weight: 600; font-size: 14px; color: var(--neutral-700); background: #fff; border: 1px solid var(--neutral-200); border-radius: 999px; padding: 10px 20px; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.pf-filter:hover { border-color: var(--accent); color: var(--accent); }
.pf-filter.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }
.portfolio-card__view { display: inline-block; margin-top: 10px; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: .04em; color: var(--accent); }
.portfolio-card:hover .portfolio-card__view { color: var(--primary); }
.portfolio-card__subtitle i { color: var(--primary); font-size: 13px; }
.pf-empty { text-align: center; font-family: "Poppins"; color: var(--neutral-700); }

/* -- SERVICE AREAS ------------------------------------------------------- */
.services-area-section { background-color: var(--white); }
.services-area-section .sr-container { display: flex; flex-direction: column; gap: 40px; align-items: center; text-align: center; }
.service-areas-grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); width: 100%; }
.service-area-card { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-radius: 6px; background-color: #f6f6f6; color: var(--black); transition: background-color .3s, color .3s; }
.service-area-card:hover { background-color: #066839; color: var(--white); }
.service-area-card .icon svg { width: 18px; height: 18px; fill: currentColor; }
.our-serivecs-section { background-color: var(--white); }
.our-serivecs-section .sr-container { display: flex; flex-direction: column; gap: 40px; align-items: center; text-align: center; }

/* -- COMMON / CONTENT-IMAGE SECTION -------------------------------------- */
.common-section { background-color: var(--white); }
.common-section--dark { background-color: #2d2926; color: var(--white); }
.common-section--dark .service-heading,
.common-section--dark p,
.common-section--dark li { color: var(--white); }
.common-section__container {
	display: flex; align-items: center; justify-content: space-between;
	gap: 60px;
}
.common-section--image-left .common-section__container { flex-direction: row-reverse; }
.common-section__text { flex: 1 1 0; display: flex; flex-direction: column; gap: 20px; }
.common-section__media { flex: 1 1 0; }
.common-section__media img { width: 100%; border-radius: 15px; }
@media (max-width: 991px) {
	.common-section__container { flex-direction: column; gap: 30px; }
	.common-section--image-left .common-section__container { flex-direction: column; }
	.common-section__text, .common-section__media { flex-basis: auto; width: 100%; }
}
.left-content-heading {
	color: #ff5900; font-size: 14px; font-family: "Poppins"; text-transform: uppercase; font-weight: 600; letter-spacing: .08em;
}

.service-features-list { list-style: disc inside; display: grid; gap: 6px; padding-left: 0; }
.service-features-list li { font-family: "Poppins"; }

/* -- STATS BAR ----------------------------------------------------------- */
.stats-section { background-color: #066839; color: var(--white); padding-top: 50px; padding-bottom: 50px; }
.stats-section__container { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 30px; }
.stats-section__item { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; }
.stats-section__value { font-family: "Montserrat"; font-weight: 700; font-size: 56px; line-height: 1; display: flex; align-items: center; justify-content: center; }
/* The star glyph has taller metrics than digits — size it down and optically center it so "4.8★" sits level with the plain-number values. */
.stats-section__star { font-size: .62em; line-height: 1; margin-left: 4px; transform: translateY(-0.04em); }
.stats-section__label { font-family: "Poppins"; text-transform: uppercase; letter-spacing: .08em; }
@media (max-width: 767px) {
	.stats-section__value { font-size: 40px; }
	/* 2×2 grid on mobile (matches the trust bar) instead of an uneven flex wrap
	   that stranded "20+" and "100%" on their own full-width rows. */
	.stats-section__container { display: grid; grid-template-columns: 1fr 1fr; gap: 30px 20px; }
}

/* -- CTA BAND ------------------------------------------------------------ */
.cta-band { padding-top: 60px; padding-bottom: 60px; text-align: center; }
.cta-band--orange { background-color: #ff5900; color: var(--white); }
.cta-band--green  { background-color: #066839; color: var(--white); }
.cta-band--dark   { background-color: #2d2926; color: var(--white); }
.cta-band--light  { background-color: var(--white); color: var(--black); }
.cta-band--orange .service-heading,
.cta-band--green  .service-heading,
.cta-band--dark   .service-heading { color: var(--white); }
.cta-band--orange p, .cta-band--orange li,
.cta-band--green  p, .cta-band--green  li,
.cta-band--dark   p, .cta-band--dark   li { color: var(--white); }
.cta-band__container { display: flex; flex-direction: column; gap: 20px; align-items: center; }

/* -- CONTACT FORM SECTION ------------------------------------------------ */
.contact-section { background-color: var(--white); }
.contact-section__container { display: flex; flex-direction: column; gap: 40px; }
.contact-section__grid { display: grid; gap: 40px; grid-template-columns: 2fr 1fr; align-items: start; }
.contact-section__form { background: #f6f6f6; padding: 30px; border-radius: 10px; }
.contact-section__sidebar { display: flex; flex-direction: column; gap: 16px; padding: 30px; border-radius: 10px; background: #2d2926; color: var(--white); }
.contact-section__sidebar a { color: var(--white); }
@media (max-width: 767px) { .contact-section__grid { grid-template-columns: 1fr; } }

/* -- TEAM SINGLE (bios-and-side__form) ----------------------------------- */
.bios-and-side__form { background-color: var(--white); }
.bios-and-side__container { display: grid; grid-template-columns: 2fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 991px) { .bios-and-side__container { grid-template-columns: 1fr; } }
.bios-and-side__bio { display: flex; gap: 30px; align-items: flex-start; }
@media (max-width: 767px) { .bios-and-side__bio { flex-direction: column; } }
.bios-and-side__photo { flex: 0 0 280px; }
.bios-and-side__photo img { width: 100%; border-radius: 10px; aspect-ratio: 4/5; object-fit: cover; }
.bios-and-side__text { flex: 1; display: flex; flex-direction: column; gap: 14px; }
.bios-and-side__role { color: #ff5900; font-family: "Poppins"; text-transform: uppercase; letter-spacing: .08em; }
.bios-and-side__contact { display: flex; flex-direction: column; gap: 8px; }
.bios-and-side__body { font-family: "Poppins"; line-height: 1.6; }
.bios-and-side__form-col { background: #2d2926; color: var(--white); padding: 30px; border-radius: 10px; position: sticky; top: 100px; }
.bios-and-side__form-col h3 { color: var(--white); }

/* -- FREEFORM / SITEMAP -------------------------------------------------- */
.freeform-section { background-color: var(--white); }
.freeform-section__container { display: flex; flex-direction: column; gap: 24px; }
.freeform-section__body ul { list-style: disc inside; }
.freeform-section__body a { color: #ff5900; }
.freeform-section__body a:hover { color: #066839; }

.page-content { background-color: var(--white); }

/* -- FOOTER -------------------------------------------------------------- */
.footer-section.sr-section { background-color: var(--black); color: var(--white); }
.footer-section__container {
	display: grid;
	grid-template-columns: 1fr 1fr 2fr;
	grid-gap: 40px;
	color: var(--white);
}
@media (max-width: 991px) { .footer-section__container { grid-template-columns: 1fr 1fr; grid-gap: 30px; } }
@media (max-width: 767px) { .footer-section__container { grid-template-columns: 1fr; grid-gap: 30px; } }
.footer-section h3 { color: var(--white); margin-bottom: 20px; }
@media (max-width: 991px) { .footer-section h3 { font-size: 30px; } }
.footer-section .sr-nav-list { display: flex; flex-direction: column; gap: 8px; }
.footer-section .sr-nav-list a { color: var(--white); font-family: "Poppins"; text-transform: capitalize; transition: color .3s; }
.footer-section .sr-nav-list a:hover { color: #ff5900; }

.footer-col--contact .footer-contact-list { display: flex; flex-direction: column; gap: 12px; }
.footer-col--contact .sr-link { color: var(--white); align-items: flex-start; }
.footer-col--contact .icon i,
.footer-col--contact .icon svg { font-size: 22px; color: #ff5900; margin-top: 3px; }
.footer-license { color: #099e57; }

.social-icon { display: flex; column-gap: 8px; margin-top: 16px; }
.global-social__icon {
	height: 40px; width: 40px; display: flex; border-radius: 50%;
	align-items: center; justify-content: center;
	background-color: #099e57; color: var(--white);
	transition: background-color .3s, transform .3s;
}
.global-social__icon i { font-size: 20px; }
.global-social__icon:hover { background-color: #fe5900; transform: translateY(-2px); }

.areas-div__p {
	display: grid; grid-template-columns: 1fr 1fr 1fr;
	grid-gap: var(--space-xs, 12px); column-gap: 20px;
}
@media (max-width: 767px) { .areas-div__p { grid-template-columns: 1fr 1fr; } }
@media (max-width: 380px) { .areas-div__p { grid-template-columns: 1fr 1fr; } }
.footer-area-item .sr-link { gap: 6px; }
.footer-area-item .icon svg { width: 18px; height: 18px; fill: #ff5900; }

/* Copyright bar */
.sr-copyright.sr-section { background-color: #111; color: #999; padding-top: 20px; padding-bottom: 20px; }
.sr-copyright__container { display: flex; justify-content: flex-end; }
.sr-copyright__text { font-size: 14px; font-family: "Poppins"; }
@media (max-width: 767px) { .sr-copyright__container { justify-content: center; } }

/* -- Generic gallery + before/after -------------------------------------- */
.service-gallery-grid,
.portfolio-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.service-gallery-grid img,
.portfolio-gallery img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; }
.portfolio-beforeafter__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.portfolio-beforeafter__grid figcaption { text-transform: uppercase; font-weight: 700; padding: 8px 0; }
.portfolio-beforeafter__grid img { width: 100%; border-radius: 10px; }
@media (max-width: 767px) { .portfolio-beforeafter__grid { grid-template-columns: 1fr; } }

/* -- Single blog post body ----------------------------------------------- */
.blog-single-section { background-color: var(--white); }
.blog-single { max-width: 800px; margin: 0 auto; font-family: "Poppins"; }
.blog-single__body p,
.blog-single__body li { font-size: 17px; line-height: 1.7; }
.blog-single__body h2,
.blog-single__body h3 { margin-top: 1.6em; margin-bottom: .6em; }
.blog-single__tags { display: flex; gap: 8px; margin-top: 24px; }
.blog-single__tags a { color: #ff5900; }
.blog-author { display: flex; gap: 22px; align-items: flex-start; margin-top: 36px; padding: 28px; background: var(--neutral-100); border: 1px solid var(--neutral-200); border-radius: 16px; }
.blog-author__avatar { flex: 0 0 auto; }
.blog-author__img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; }
.blog-author__eyebrow { font-family: "Poppins"; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--neutral-700); }
.blog-author__name { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 20px; color: var(--neutral-900); margin: 4px 0 2px; }
.blog-author__role { display: block; font-family: "Poppins"; font-size: 13.5px; color: var(--primary); font-weight: 600; margin-bottom: 10px; }
.blog-author__bio { font-family: "Poppins"; font-size: 15px; line-height: 1.65; color: var(--neutral-700); margin: 0 0 12px; }
.blog-author__link { font-family: "Poppins"; font-weight: 600; color: var(--accent); }
.blog-author__link:hover { color: var(--primary); }
@media (max-width: 560px) { .blog-author { flex-direction: column; align-items: center; text-align: center; } }

/* -- NATIVE CONTACT FORM ------------------------------------------------- */
.sierra-form { display: flex; flex-direction: column; gap: 18px; font-family: "Poppins"; }
.sierra-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .sierra-form__row { grid-template-columns: 1fr; } }
.sierra-form__field { display: flex; flex-direction: column; gap: 6px; }
.sierra-form__field label { font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--neutral-800); }
.sierra-form__field input,
.sierra-form__field select,
.sierra-form__field textarea {
	font-family: "Poppins";
	font-size: 16px;
	padding: 12px 14px;
	border: 1px solid #d6d6d6;
	border-radius: 6px;
	background: var(--white);
	color: var(--black);
	transition: border-color .2s, box-shadow .2s;
	width: 100%;
	box-sizing: border-box;
}
.sierra-form__field textarea { resize: vertical; min-height: 120px; line-height: 1.5; }
.sierra-form__field input:focus,
.sierra-form__field select:focus,
.sierra-form__field textarea:focus {
	outline: none;
	border-color: #ff5900;
	box-shadow: 0 0 0 3px rgba(255, 89, 0, .15);
}
.sierra-form__field input:user-invalid,
.sierra-form__field textarea:user-invalid {
	border-color: #c62828;
}
.sierra-form__field span[aria-hidden="true"] { color: #ff5900; margin-left: 2px; }
.sierra-form button[type="submit"] { align-self: flex-start; }
.sierra-form__hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
/* Preferred-contact radio group — segmented buttons. */
.sierra-form__radio-group { border: 0; margin: 0; padding: 0; min-width: 0; }
.sierra-form__radio-group legend { float: none; padding: 0; font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--neutral-800); }
.sierra-form__radios { display: flex; gap: 8px; }
.sierra-form .sierra-form__radio { flex: 1; display: flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--neutral-200); border-radius: 10px; padding: 10px 8px; cursor: pointer; font-family: "Poppins"; font-size: 14px; font-weight: 500; text-transform: none; letter-spacing: normal; color: var(--neutral-800); transition: border-color .2s, background-color .2s; }
.sierra-form__radio input[type="radio"] { width: auto; margin: 0; accent-color: var(--accent); }
.sierra-form__radio:hover { border-color: var(--accent); }
.sierra-form__radio:has(input:checked) { border-color: var(--accent); background: rgba(6,104,57,.06); }

/* Compact form (used in sidebars) */
.sierra-form--compact { gap: 12px; }
.sierra-form--compact .sierra-form__row { grid-template-columns: 1fr; }
.sierra-form--compact .sierra-form__field input,
.sierra-form--compact .sierra-form__field select,
.sierra-form--compact .sierra-form__field textarea { padding: 10px 12px; }
.sierra-form--compact .sierra-form__field textarea { min-height: 100px; }

/* On a dark sidebar (team single), white-out the form */
.bios-and-side__form-col .sierra-form__field label { color: rgba(255,255,255,0.9); }
.bios-and-side__form-col .sierra-form__field input,
.bios-and-side__form-col .sierra-form__field select,
.bios-and-side__form-col .sierra-form__field textarea {
	background: rgba(255,255,255,0.08);
	border-color: rgba(255,255,255,0.2);
	color: var(--white);
}
.bios-and-side__form-col .sierra-form__field input::placeholder,
.bios-and-side__form-col .sierra-form__field textarea::placeholder { color: rgba(255,255,255,0.5); }

/* Form result banner */
.sierra-form-message {
	padding: 14px 18px;
	border-radius: 6px;
	font-family: "Poppins";
	font-size: 15px;
	margin-bottom: 18px;
	border: 1px solid transparent;
}
.sierra-form-message--success {
	background: #e6f4ea;
	border-color: #066839;
	color: #064d2a;
}
.sierra-form-message--error {
	background: #fdecea;
	border-color: #c62828;
	color: #8b1c1c;
}

/* =======================================================================
   CRO COMPONENTS (ported from the Bricks build)
   Tokens: --primary #ff5900 (orange CTAs) · --accent #066839 (green)
   ======================================================================= */

/* Centered eyebrow helper (pairs with .left-content-heading) */
.sr-eyebrow-center { display: block; text-align: center; }

/* Shared centered section containers for the new components */
.benefits__container,
.service-tabs__container,
.gallery__container,
.faq__container { display: flex; flex-direction: column; gap: 24px; align-items: center; text-align: center; }
.faq-section.sr-section { background-color: var(--neutral-100); }

/* -- Hero price/timeline pills ------------------------------------------- */
.sr-svc-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.sr-svc-pill { display: inline-block; background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.42); color: #fff; font-family: "Poppins"; font-weight: 600; font-size: 15px; padding: 7px 15px; border-radius: 999px; }

/* -- Key benefits icon cards --------------------------------------------- */
.sr-benefits { width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.sr-benefit { background: #fff; border: 1px solid var(--neutral-200); border-radius: 12px; padding: 28px 22px; text-align: center; }
.sr-benefit-icon { display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: 50%; background: rgba(6,104,57,0.08); color: var(--accent); font-size: 26px; margin-bottom: 14px; }
.sr-benefit-title { font-family: "Montserrat"; font-weight: 600; color: var(--neutral-900); font-size: 19px; margin: 0 0 8px; }
.sr-benefit-text { font-family: "Poppins"; color: var(--neutral-700); line-height: 1.6; font-size: 15px; margin: 0; }
@media (max-width: 860px) { .sr-benefits { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .sr-benefits { grid-template-columns: 1fr; } }

/* -- Service tabs (What We Do) ------------------------------------------- */
.sr-tabs { width: 100%; }
.sr-tabs-nav { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 28px; }
.sr-tab { font-family: "Poppins"; font-weight: 600; font-size: 15px; color: var(--neutral-700); background: #fff; border: 1px solid var(--neutral-200); border-radius: 999px; padding: 10px 18px; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.sr-tab:hover { border-color: var(--accent); }
.sr-tab.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }
.sr-tab-panel { grid-template-columns: 1fr 1fr; gap: 44px; align-items: stretch; text-align: left; }
.sr-tabs--ready .sr-tab-panel { display: none; }
.sr-tabs--ready .sr-tab-panel.is-active { display: grid; }
.sr-tabs:not(.sr-tabs--ready) .sr-tabs-nav,
.sr-tabs:not(.sr-tabs--ready) .sr-tabs-arrows { display: none; }
.sr-tabs:not(.sr-tabs--ready) .sr-tab-panel { display: grid; margin-bottom: 30px; }
.sr-tab-text { align-self: center; }
.sr-tab-badge { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--accent); color: #fff; font-family: "Montserrat"; font-weight: 700; font-size: 18px; margin-bottom: 14px; }
.sr-tab-text h3 { font-family: "Montserrat"; font-weight: 700; color: var(--neutral-900); font-size: 24px; margin: 0 0 10px; }
.sr-tab-text p, .sr-tab-text li { font-family: "Poppins"; color: var(--neutral-700); line-height: 1.7; }
.sr-tab-cta { display: inline-block; margin-top: 14px; color: var(--accent); font-weight: 700; font-family: "Poppins"; text-decoration: none; }
.sr-tab-cta:hover { color: var(--primary); }
.sr-tab-media img { width: 100%; height: 100%; object-fit: cover; border-radius: 14px; box-shadow: 0 14px 34px rgba(0,0,0,0.14); }
.sr-tabs-arrows { display: flex; justify-content: center; gap: 14px; margin-top: 28px; }
.sr-tabs-arrows button { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--accent); background: #fff; color: var(--accent); font-size: 22px; cursor: pointer; transition: background-color .15s, color .15s; }
.sr-tabs-arrows button:hover { background: var(--accent); color: #fff; }
@media (max-width: 860px) {
	.sr-tab-panel { grid-template-columns: 1fr; gap: 22px; }
	.sr-tab-media { order: -1; }
	.sr-tab-media img { max-height: 280px; }
	.sr-tabs-nav { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; }
	.sr-tab { flex: 0 0 auto; }
}

/* -- Gallery + lightbox -------------------------------------------------- */
/* Give the gallery section an explicit light background (otherwise the dark
   body bg on dark-hero pages, e.g. portfolio, shows through as black). */
.gallery-section { background: var(--white); }
.sr-gallery { width: 100%; max-width: 980px; margin: 0 auto; }
.sr-gallery-main { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: 14px; overflow: hidden; box-shadow: 0 14px 34px rgba(0,0,0,0.14); }
.sr-gallery-main img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.sr-gallery-thumbs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-top: 12px; }
.sr-gallery-thumb { padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; cursor: pointer; background: none; aspect-ratio: 1 / 1; transition: border-color .15s; }
.sr-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sr-gallery-thumb.is-active { border-color: var(--accent); }
.sr-gallery-cta { margin-top: 20px; }
@media (max-width: 680px) { .sr-gallery-thumbs { grid-template-columns: repeat(4, 1fr); } }
.sr-lightbox { position: fixed; inset: 0; z-index: 100000; background: rgba(0,0,0,0.92); display: flex; align-items: center; justify-content: center; }
.sr-lightbox[hidden] { display: none; }
.sr-lb-img { max-width: 90vw; max-height: 84vh; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,0.5); }
.sr-lightbox button { position: absolute; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.4); color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }
.sr-lightbox button:hover { background: rgba(255,255,255,0.28); }
.sr-lb-close { top: 20px; right: 24px; width: 46px; height: 46px; font-size: 26px; }
.sr-lb-prev, .sr-lb-next { top: 50%; transform: translateY(-50%); width: 54px; height: 54px; font-size: 28px; }
.sr-lb-prev { left: 20px; } .sr-lb-next { right: 20px; }
.sr-lb-count { position: absolute; bottom: 24px; left: 0; right: 0; text-align: center; color: #fff; font-family: "Poppins"; font-size: 15px; }
@media (max-width: 680px) { .sr-lb-prev, .sr-lb-next { width: 44px; height: 44px; font-size: 24px; } .sr-lb-prev { left: 8px; } .sr-lb-next { right: 8px; } }

/* -- FAQ accordion ------------------------------------------------------- */
.sr-faq-list { width: 100%; max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; text-align: left; }
.sr-faq-item { background: #fff; border: 1px solid var(--neutral-200); border-radius: 10px; padding: 2px 20px; }
.sr-faq-q { font-family: "Montserrat"; font-weight: 600; color: var(--neutral-900); font-size: 17px; padding: 16px 0; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 14px; }
.sr-faq-q::-webkit-details-marker { display: none; }
.sr-faq-q::after { content: "+"; color: var(--accent); font-size: 24px; font-weight: 400; line-height: 1; flex: 0 0 auto; }
.sr-faq-item[open] .sr-faq-q::after { content: "\2013"; }
.sr-faq-a { padding: 0 0 18px; font-family: "Poppins"; color: var(--neutral-700); line-height: 1.7; }
.sr-faq-a p { margin: 0 0 .6em; }
.sr-faq-a p:last-child { margin-bottom: 0; }

/* -- CTA band rating badge ----------------------------------------------- */
.sr-close-rating { display: flex; flex-direction: column; align-items: center; gap: 4px; margin-top: 6px; }
.sr-close-stars { color: #F2B705; font-size: 21px; letter-spacing: 2px; }
.sr-close-rtext { color: #fff; font-family: "Poppins"; font-size: 15px; opacity: .92; }

/* =======================================================================
   SERVICE PAGE — editorial layout (inc/service-layout.php)
   A conversion-focused single-service template: trust bar, long-form
   article beside a sticky quote card, process steps, and supporting bands.
   ======================================================================= */

/* -- Trust bar (shared CRO component, sits below the hero) ---------------- */
.sr-trustbar.sr-section { padding-top: 18px; padding-bottom: 18px; background: var(--accent); color: #fff; }
.sr-trustbar__row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: stretch; gap: 14px 20px; }
.sr-trustbar__item { display: flex; align-items: center; gap: 12px; color: #fff; flex: 1 1 0; min-width: 170px; }
a.sr-trustbar__item { transition: opacity .2s; }
a.sr-trustbar__item:hover { opacity: .85; color: #fff; }
.sr-trustbar__icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.14); flex: 0 0 auto; }
.sr-trustbar__icon .sr-svgicon { width: 22px; height: 22px; }
.sr-trustbar__text { display: flex; flex-direction: column; line-height: 1.2; }
.sr-trustbar__text strong { font-family: "Montserrat"; font-weight: 700; font-size: 15px; text-transform: uppercase; letter-spacing: .01em; }
.sr-trustbar__text span { font-family: "Poppins"; font-size: 12.5px; color: rgba(255,255,255,.82); margin-top: 2px; }
@media (max-width: 991px) {
	.sr-trustbar__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
	/* "Family Owned" is dropped on mobile to keep the bar compact; the remaining
	   four items tile as an even 2×2 (no odd-one-out to center). */
	.sr-trustbar__item--hide-mobile { display: none; }
}
@media (max-width: 420px) {
	.sr-trustbar__text strong { font-size: 14px; }
}

/* -- Body grid: article + sticky quote card ------------------------------ */
.sr-svc-body { background: var(--white); }
/* align-items: stretch (default) lets the aside fill the row height so the
   sticky quote card has room to travel as you scroll. */
.sr-svc-layout { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 56px; align-items: stretch; }
@media (max-width: 1100px) { .sr-svc-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; } }
@media (max-width: 991px)  { .sr-svc-layout { grid-template-columns: 1fr; gap: 40px; } }

/* On small screens, surface the quote form before the long article. */
@media (max-width: 991px) { .sr-svc-aside { order: -1; } }

/* -- Jump nav (auto-generated from body H2s) ----------------------------- */
.sr-jumpnav { border: 1px solid var(--neutral-200); border-left: 4px solid var(--primary); border-radius: 12px; background: var(--neutral-100); padding: 18px 22px; margin-bottom: 28px; }
.sr-jumpnav__label { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 13px; color: var(--neutral-900); margin-bottom: 12px; }
/* Collapsible <details>/<summary> table of contents. */
summary.sr-jumpnav__label { cursor: pointer; list-style: none; user-select: none; margin-bottom: 0; }
summary.sr-jumpnav__label::-webkit-details-marker { display: none; }
summary.sr-jumpnav__label::after { content: "\25BE"; font-size: 12px; color: var(--primary); transition: transform .2s ease; }
details.sr-jumpnav[open] summary.sr-jumpnav__label { margin-bottom: 12px; }
details.sr-jumpnav[open] summary.sr-jumpnav__label::after { transform: rotate(180deg); }
.sr-jumpnav__list { display: flex; flex-direction: column; gap: 4px; }
.sr-jumpnav__list a { display: block; font-family: "Poppins"; font-size: 13.5px; font-weight: 500; color: var(--neutral-700); border-radius: 8px; padding: 8px 12px; transition: color .2s, background-color .2s; }
.sr-jumpnav__list a:hover, .sr-jumpnav__list a.is-active { color: #fff; background: var(--accent); }

/* -- Long-form article --------------------------------------------------- */
.sr-article { font-family: "Poppins"; color: var(--neutral-800); }
.sr-article > *:first-child { margin-top: 0; }
.sr-article p { font-size: 17px; line-height: 1.78; margin: 0 0 1.15em; }
.sr-article > p:first-of-type { font-size: 19px; line-height: 1.7; color: var(--neutral-700); }
.sr-article h2 {
	font-family: "Montserrat"; font-weight: 700; text-transform: uppercase;
	font-size: 30px; line-height: 1.2; color: var(--neutral-900);
	margin: 1.9em 0 .7em; padding-top: 26px;
	border-top: 1px solid var(--neutral-200);
	scroll-margin-top: 120px;
}
.sr-article h2:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.sr-article h2::before { content: ""; display: block; width: 54px; height: 4px; border-radius: 2px; background: var(--primary); margin-bottom: 18px; }
.sr-article h3 { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 21px; color: var(--neutral-900); margin: 1.6em 0 .5em; }
.sr-article h4 { font-family: "Montserrat"; font-weight: 600; font-size: 18px; color: var(--neutral-900); margin: 1.4em 0 .5em; }
.sr-article a { color: var(--primary); font-weight: 500; }
.sr-article a:hover { color: var(--accent); text-decoration: underline; }
.sr-article strong { font-weight: 600; color: var(--neutral-900); }
.sr-article img { border-radius: 12px; margin: 1.4em 0; }
.sr-article ul, .sr-article ol { margin: 0 0 1.3em; padding-left: 0; display: grid; gap: 10px; }
.sr-article ul li { position: relative; padding-left: 32px; font-size: 16.5px; line-height: 1.6; list-style: none; }
.sr-article ul li::before { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 0; top: 1px; color: var(--accent); font-size: 14px; }
.sr-article ol { counter-reset: sr-ol; }
.sr-article ol li { position: relative; padding-left: 38px; font-size: 16.5px; line-height: 1.6; list-style: none; counter-increment: sr-ol; }
.sr-article ol li::before { content: counter(sr-ol); position: absolute; left: 0; top: 0; width: 24px; height: 24px; border-radius: 50%; background: var(--accent); color: #fff; font-family: "Montserrat"; font-weight: 700; font-size: 12px; display: inline-flex; align-items: center; justify-content: center; }
.sr-article blockquote { margin: 1.6em 0; padding: 20px 26px; border-left: 4px solid var(--primary); background: var(--neutral-100); border-radius: 0 10px 10px 0; font-size: 18px; font-style: italic; color: var(--neutral-700); }
.sr-article blockquote p:last-child { margin-bottom: 0; }
.sr-article table { width: 100%; border-collapse: collapse; margin: 1.6em 0; font-size: 15.5px; }
.sr-article th, .sr-article td { border: 1px solid var(--neutral-200); padding: 12px 14px; text-align: left; }
.sr-article th { background: var(--neutral-100); font-family: "Montserrat"; font-weight: 600; text-transform: uppercase; font-size: 13px; }
@media (max-width: 478px) { .sr-article h2 { font-size: 24px; } .sr-article p { font-size: 16px; } .sr-article > p:first-of-type { font-size: 17px; } }

/* Service intro lead (2.5) */
.sr-svc-lead { font-family: "Poppins"; font-size: 19px; line-height: 1.7; color: var(--neutral-900); font-weight: 500; margin: 0 0 28px; padding: 0 0 24px; border-bottom: 2px solid var(--neutral-200); }
@media (max-width: 478px) { .sr-svc-lead { font-size: 17px; } }

/* -- Sticky quote card --------------------------------------------------- */
/* Sticky and height-capped to the viewport so the whole form is visible at once,
   never running taller than the screen. Compact, two-up rows, no inner scroll. */
.sr-quote-card { position: sticky; top: 108px; display: flex; flex-direction: column; max-height: calc(100vh - 128px); border: 1px solid var(--neutral-200); border-radius: 16px; background: var(--white); box-shadow: 0 18px 44px rgba(0,0,0,.10); overflow: hidden; }
body.admin-bar .sr-quote-card { top: 140px; max-height: calc(100vh - 160px); }
@media (max-width: 991px) { .sr-quote-card { position: static; max-height: none; } }
/* Compact header. */
.sr-quote-card__head { flex: 0 0 auto; background: var(--neutral-700); color: #fff; padding: 17px 24px 15px; }
.sr-quote-card__eyebrow { display: inline-block; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: 11px; color: var(--primary); margin-bottom: 4px; }
.sr-quote-card__title { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 19px; line-height: 1.12; color: #fff; margin: 0 0 6px; }
.sr-quote-card__sub { font-family: "Poppins"; font-size: 12.5px; line-height: 1.45; color: rgba(255,255,255,.82); margin: 0; }
/* Compact form — everything fits on one screen. */
.sr-quote-card .sierra-form { flex: 1 1 auto; min-height: 0; padding: 16px 24px 16px; gap: 11px; overflow-y: auto; }
.sr-quote-card .sierra-form__row { grid-template-columns: 1fr 1fr; gap: 12px; }
.sr-quote-card .sierra-form__field { gap: 5px; }
.sr-quote-card .sierra-form__field textarea { min-height: 64px; }
.sr-quote-card .sierra-form button[type="submit"] { width: 100%; align-self: stretch; padding: 13px 18px; font-size: 15px; }
/* Match the contact-page field styling: rounded inputs, brown uppercase labels,
   green focus ring. */
.sr-quote-card .sierra-form__field label,
.sr-quote-card .sierra-form__radio-group legend { color: #6B4F33; font-size: 12px; letter-spacing: .05em; }
.sr-quote-card .sierra-form__radio { font-size: 14px; }
.sr-quote-card .sierra-form__field input,
.sr-quote-card .sierra-form__field select,
.sr-quote-card .sierra-form__field textarea { border-radius: 10px; padding: 11px 13px; border-color: #e2e2e2; font-size: 14px; }
.sr-quote-card .sierra-form__radio { padding: 10px 8px; font-size: 14px; }
.sr-quote-card .sierra-form__field input:focus,
.sr-quote-card .sierra-form__field select:focus,
.sr-quote-card .sierra-form__field textarea:focus { border-color: #1C6E35; box-shadow: 0 0 0 3px rgba(28,110,53,.12); }
.sr-quote-card .sierra-form__opt { color: #aaa; }

/* -- "How it works" process band ----------------------------------------- */
.sr-process.sr-section { background: var(--neutral-100); }
.sr-process__container { display: flex; flex-direction: column; gap: 18px; align-items: center; text-align: center; }
.sr-process__grid { width: 100%; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 22px; counter-reset: none; }
.sr-process__step { position: relative; background: var(--white); border: 1px solid var(--neutral-200); border-radius: 16px; padding: 34px 24px 28px; text-align: left; transition: transform .25s ease, box-shadow .25s ease; }
.sr-process__step:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(0,0,0,.10); }
.sr-process__num { position: absolute; top: 16px; right: 20px; font-family: "Montserrat"; font-weight: 700; font-size: 40px; line-height: 1; color: var(--neutral-200); }
.sr-process__icon { display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 14px; background: rgba(6,104,57,.08); color: var(--accent); font-size: 24px; margin-bottom: 18px; }
.sr-process__title { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 18px; color: var(--neutral-900); margin: 0 0 8px; }
.sr-process__text { font-family: "Poppins"; font-size: 14.5px; line-height: 1.6; color: var(--neutral-700); margin: 0; }
@media (max-width: 860px) { .sr-process__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 478px) { .sr-process__grid { grid-template-columns: 1fr; } }

/* Related-services band sits on a tint to separate from white neighbours. */
.sr-related.sr-section { background: var(--neutral-100); }

/* Insurance page (1.6) — urgent hero CTA + value-prop cards */
.service-hero--urgent .hero-btn { font-size: 17px; padding: 15px 26px; }
@media (max-width: 478px) { .service-hero--urgent .hero-btn { font-size: 15px; } }
.sr-insurance { background: var(--white); }
.sr-insurance__container { display: flex; flex-direction: column; gap: 30px; }
.sr-insurance__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 820px) { .sr-insurance__cards { grid-template-columns: 1fr; } }
.sr-insurance__card { background: var(--neutral-100); border: 1px solid var(--neutral-200); border-left: 4px solid var(--primary); border-radius: 12px; padding: 28px 24px; }
.sr-insurance__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: rgba(255,89,0,.10); color: var(--primary); font-size: 24px; margin-bottom: 14px; }
.sr-insurance__card h3 { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 18px; color: var(--neutral-900); margin: 0 0 8px; }
.sr-insurance__card p { font-family: "Poppins"; font-size: 14.5px; line-height: 1.6; color: var(--neutral-700); margin: 0; }
.sr-insurance__lead { font-family: "Poppins"; font-size: 18px; line-height: 1.7; color: var(--neutral-800); margin: 0; max-width: 920px; }

/* =======================================================================
   CRO FOUNDATION (Phase 0) — standardized buttons, header CTA, nav states,
   mid-page CTA strip, sticky mobile call/quote bar.
   Brand kept orange: primary = #ff5900, accent = #066839.
   ======================================================================= */

/* -- Standardized buttons (0.8) ------------------------------------------ */
.btn-primary-sr, .btn-secondary-sr {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	font-family: "Poppins"; font-weight: 600; font-size: 16px; line-height: 1;
	text-transform: uppercase; letter-spacing: .01em;
	padding: 15px 28px; border-radius: 6px; cursor: pointer; text-decoration: none;
	transition: background-color .25s ease, color .25s ease, transform .2s ease, border-color .25s ease;
	border: 2px solid transparent;
}
.btn-primary-sr { background: var(--primary); color: #fff; }
.btn-primary-sr:hover { background: #e44e00; color: #fff; transform: translateY(-1px); }
.btn-secondary-sr { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn-secondary-sr:hover { background: var(--accent); color: #fff; }
/* Secondary on a dark surface (CTA strip) renders white. */
.btn-secondary-sr--onlight { color: #fff; border-color: rgba(255,255,255,.7); }
.btn-secondary-sr--onlight:hover { background: #fff; color: var(--neutral-900); border-color: #fff; }
.btn-primary-sr .sr-svgicon, .btn-secondary-sr .sr-svgicon { width: 18px; height: 18px; }
.btn-primary-sr:focus-visible, .btn-secondary-sr:focus-visible { outline: 3px solid #C49A6C; outline-offset: 2px; }

/* -- Header CTA cluster + Free Quote button (0.4) ------------------------ */
.header-cta { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.header-cta__quote { padding: 11px 20px; font-size: 14px; }
@media (max-width: 1260px) { .header-cta { gap: 12px; } .header-cta__quote { padding: 10px 16px; font-size: 13px; } }
/* Mobile uses the sticky bottom bar for phone + quote, so both header-cta
   children are hidden. Hide the wrapper too (after the .header-cta display:flex
   rule above, or it would win) so its empty flex slot doesn't strand the
   hamburger toggle mid-row — toggle then sits flush right via space-between. */
@media (max-width: 991px)  { .header-cta__quote { display: none; } .header-cta { display: none; } }
/* On a dark hero the transparent header shows the quote button as-is; when the
   header goes solid-white on scroll the orange button still reads fine. */

/* -- Nav hover / active / focus / spacing (0.6, 0.7) --------------------- */
.desktop-menu__nav-items { gap: 22px; }
.desktop-menu__nav-items> li> a,
.desktop-menu__nav-items> li> .sr-submenu-toggle> a { position: relative; padding-block: 6px; }
.desktop-menu__nav-items> li> a::after,
.desktop-menu__nav-items> li> .sr-submenu-toggle> a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -2px; height: 2px;
	background: var(--primary); transform: scaleX(0); transform-origin: left;
	transition: transform .25s ease;
}
.desktop-menu__nav-items> li> a:hover::after,
.desktop-menu__nav-items> li> .sr-submenu-toggle> a:hover::after,
.desktop-menu__nav-items> li> a[aria-current="page"]::after { transform: scaleX(1); }
.desktop-menu__nav-items> li> a:focus-visible,
.contact-button__phone:focus-visible,
.header-cta__quote:focus-visible { outline: 2px solid #C49A6C; outline-offset: 4px; border-radius: 3px; }
.sr-dropdown-content> li> a:focus-visible { outline: 2px solid #C49A6C; outline-offset: -2px; }
@media (max-width: 1200px) { .desktop-menu__nav-items { gap: 16px; } }

/* -- Mid-page CTA strip (0.3) -------------------------------------------- */
.cta-strip.sr-section { background: var(--neutral-700); color: #fff; padding-top: 54px; padding-bottom: 54px; }
.cta-strip__inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px; }
.cta-strip__title { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; color: #fff; font-size: 32px; line-height: 1.15; margin: 0; max-width: 760px; }
.cta-strip__text { font-family: "Poppins"; font-size: 17px; color: rgba(255,255,255,.85); margin: 0; max-width: 640px; }
.cta-strip__btns { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 8px; }
@media (max-width: 560px) {
	.cta-strip__title { font-size: 24px; }
	.cta-strip__btns { width: 100%; }
	.cta-strip__btns .btn-primary-sr, .cta-strip__btns .btn-secondary-sr { width: 100%; }
}

/* -- Sticky mobile Call / Quote bar (0.4) -------------------------------- */
.sr-mobile-cta { display: none; }
@media (max-width: 767px) {
	.sr-mobile-cta {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9000;
		height: 56px; box-shadow: 0 -2px 14px rgba(0,0,0,.18);
	}
	.sr-mobile-cta a {
		flex: 1 1 50%; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
		font-family: "Poppins"; font-weight: 700; text-transform: uppercase; font-size: 15px; color: #fff;
	}
	.sr-mobile-cta__call { background: var(--primary); }
	.sr-mobile-cta__quote { background: var(--accent); }
	.sr-mobile-cta .sr-svgicon { width: 19px; height: 19px; }
	/* Keep page content + footer clear of the fixed bar. */
	body { padding-bottom: 56px; }
	.sr-copyright.sr-section { margin-bottom: 0; }
}

/* =======================================================================
   CONTACT PAGE — pixel-match of sierrarenovations.com/contact-us/
   White rounded card · left form · right forest-green panel · serif headings.
   ======================================================================= */
/* Light/white header for the no-hero light pages (contact, thank-you). */
body.sierra-light-header.no-dark-hero #sierra-header,
body.sierra-light-header #sierra-header { background: var(--white); box-shadow: 0 2px 12px rgba(0,0,0,.08); }
body.sierra-light-header #sierra-header .desktop-menu__nav-items> li> a,
body.sierra-light-header #sierra-header .desktop-menu__nav-items> li> .sr-submenu-toggle> a,
body.sierra-light-header #sierra-header .contact-button__phone,
body.sierra-light-header #sierra-header .logo-img__text { color: var(--black); }
body.sierra-light-header #sierra-header .desktop-menu__nav-items> li> a:hover,
body.sierra-light-header #sierra-header .contact-button__phone:hover { color: var(--primary); }
body.sierra-light-header #sierra-header .sr-mobile-toggle span { background-color: var(--black); }

.contactx.sr-section { background: var(--white); padding-top: 56px; padding-bottom: 72px; }
.contactx__card {
	display: grid; grid-template-columns: 1.32fr 1fr; align-items: stretch;
	background: var(--white); border-radius: 20px; overflow: hidden;
	box-shadow: 0 30px 70px rgba(20,40,20,.10), 0 2px 8px rgba(0,0,0,.04);
	border: 1px solid #eee;
}
@media (max-width: 900px) { .contactx__card { grid-template-columns: 1fr; } }

/* -- Left: form ---------------------------------------------------------- */
.contactx__form { padding: 48px 48px 40px; }
@media (max-width: 600px) { .contactx__form { padding: 32px 22px; } }
.contactx__title { font-family: "Playfair Display", Georgia, serif; font-weight: 800; text-transform: none; font-size: 40px; line-height: 1.12; margin: 0 0 10px; }
.contactx__title .is-green { color: #1C6E35; }
.contactx__title .is-brown { color: #7A5C3F; }
.contactx__sub { font-family: "Poppins"; font-size: 16px; color: #6b7280; margin: 0 0 22px; }
.contactx__sub strong { color: #1C6E35; font-weight: 600; }

.contactx__trust { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; background: var(--sr-cream, #FAF7F2); border: 1px solid #efe7d8; border-radius: 999px; padding: 12px 22px; margin-bottom: 30px; }
.contactx__trust-item { font-family: "Poppins"; font-size: 13.5px; color: #555; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.contactx__trust-item b { color: #1a1a1a; font-weight: 700; }
.contactx__stars { color: #F2B705; letter-spacing: 1px; font-size: 13px; }
.contactx__trust-chk { color: #1C6E35; font-weight: 500; }
.contactx__trust-chk::before { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: 11px; }
@media (max-width: 600px) { .contactx__trust { border-radius: 14px; gap: 8px 14px; } }

.contactx__fields .cx-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contactx__fields .cx-row .cx-field--zip { grid-column: auto; }
.contactx__fields { display: flex; flex-direction: column; gap: 18px; }
.cx-field { display: flex; flex-direction: column; gap: 7px; }
.cx-field label { font-family: "Poppins"; font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #6B4F33; }
.cx-req { color: var(--primary); }
.cx-opt { color: #aaa; font-weight: 400; text-transform: none; letter-spacing: 0; }
.cx-field input, .cx-field select, .cx-field textarea {
	font-family: "Poppins"; font-size: 15px; color: var(--black);
	padding: 14px 16px; border: 1px solid #e2e2e2; border-radius: 10px; background: #fff;
	width: 100%; box-sizing: border-box; transition: border-color .2s, box-shadow .2s;
}
.cx-field textarea { resize: vertical; min-height: 110px; line-height: 1.5; }
.cx-field input::placeholder, .cx-field textarea::placeholder { color: #b8b8b8; }
.cx-field input:focus, .cx-field select:focus, .cx-field textarea:focus { outline: none; border-color: #1C6E35; box-shadow: 0 0 0 3px rgba(28,110,53,.12); }
.cx-field--zip { max-width: 100%; }
.cx-submit { width: 100%; margin-top: 4px; font-size: 17px; padding: 17px 28px; }
.cx-aftersubmit { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font-family: "Poppins"; font-size: 13px; color: #6b7280; }
.cx-respond { color: #1C6E35; }
.cx-prefer a { color: var(--primary); font-weight: 600; }
.cx-disclaimer { font-family: "Poppins"; font-size: 12px; line-height: 1.55; color: #9aa0a6; margin: 4px 0 0; }

/* -- Right: green panel --------------------------------------------------- */
.contactx__panel { position: relative; background: #1C6E35; color: #fff; padding: 48px 44px; overflow: hidden; }
@media (max-width: 600px) { .contactx__panel { padding: 36px 24px; } }
.contactx__panel::before { content: ""; position: absolute; top: -120px; left: -120px; width: 320px; height: 320px; border-radius: 50%; border: 60px solid rgba(255,255,255,.04); }
.contactx__panel > * { position: relative; z-index: 1; }
.contactx__eyebrow { display: inline-flex; align-items: center; gap: 12px; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: 12px; color: #E8A06A; margin-bottom: 14px; }
.contactx__eyebrow::before { content: ""; width: 28px; height: 2px; background: #E8A06A; display: inline-block; }
.contactx__paneltitle { font-family: "Playfair Display", Georgia, serif; font-weight: 800; text-transform: uppercase; color: #fff; font-size: 38px; line-height: 1.1; margin: 0 0 16px; }
.contactx__paneltitle .is-orange { color: var(--primary); }
.contactx__panelsub { font-family: "Poppins"; font-size: 15.5px; line-height: 1.6; color: rgba(255,255,255,.85); margin: 0 0 26px; }

.contactx__callcard { display: flex; align-items: center; gap: 16px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 14px; padding: 16px 18px; margin-bottom: 14px; }
.contactx__callicon { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 12px; background: var(--primary); display: inline-flex; align-items: center; justify-content: center; }
.contactx__callicon i { color: #fff; font-size: 22px; }
.contactx__calltext { display: flex; flex-direction: column; }
.contactx__calltext em { font-style: normal; font-family: "Poppins"; text-transform: uppercase; letter-spacing: .06em; font-size: 12px; color: rgba(255,255,255,.7); }
.contactx__calltext strong { font-family: "Montserrat"; font-weight: 700; font-size: 22px; color: #fff; }
.contactx__callcard:hover .contactx__calltext strong { color: var(--primary); }
.contactx__hours { font-family: "Poppins"; font-size: 14px; color: rgba(255,255,255,.78); margin: 0 0 26px; }

.contactx__rows { display: flex; flex-direction: column; gap: 20px; margin-bottom: 28px; }
.contactx__rows li { display: flex; gap: 14px; align-items: flex-start; }
.contactx__rowicon { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 10px; background: rgba(255,255,255,.10); display: inline-flex; align-items: center; justify-content: center; }
.contactx__rowicon i { color: rgba(255,255,255,.85); font-size: 16px; }
.contactx__rowtext { display: flex; flex-direction: column; gap: 3px; font-family: "Poppins"; }
.contactx__rowtext em { font-style: normal; text-transform: uppercase; letter-spacing: .05em; font-size: 12px; color: rgba(255,255,255,.6); }
.contactx__rowtext, .contactx__rowtext span, .contactx__rowtext a { font-size: 14.5px; color: rgba(255,255,255,.92); line-height: 1.45; }
.contactx__rowtext a:hover { color: var(--primary); }

.contactx__certified { border-top: 1px solid rgba(255,255,255,.15); padding-top: 22px; }
.contactx__certlabel { display: block; font-family: "Poppins"; font-size: 14px; color: rgba(255,255,255,.7); margin-bottom: 14px; }
.contactx__badges { display: flex; flex-wrap: wrap; gap: 10px; }
.contactx__badges span { font-family: "Poppins"; font-size: 12px; font-weight: 500; color: rgba(255,255,255,.9); border: 1px solid rgba(255,255,255,.22); border-radius: 999px; padding: 8px 16px; }

@media (max-width: 600px) {
	.contactx__title { font-size: 32px; }
	.contactx__paneltitle { font-size: 30px; }
	.contactx__fields .cx-row { grid-template-columns: 1fr; }
}

/* =======================================================================
   HOMEPAGE (CRO audit 1.1, 2.1, 2.2, 2.3, 2.6)
   ======================================================================= */
/* Hero — dual CTAs + inline trust strip */
.home-hero__content { width: 64%; }
@media (max-width: 991px) { .home-hero__content { width: 100%; } }
.home-hero__services { font-family: "Poppins"; font-weight: 600; font-size: 18px; color: #fff; margin: 0; letter-spacing: .01em; }
.home-hero__promise { font-family: "Poppins"; font-size: 16px; color: rgba(255,255,255,.9); margin: 0; }
.home-hero__rating { display: inline-flex; align-items: center; gap: 9px; margin: 2px 0 0; font-family: "Poppins"; font-size: 14.5px; color: #fff; transition: opacity .2s; }
.home-hero__rating:hover { opacity: .85; }
.home-hero__stars { color: #ffc107; font-size: 16px; letter-spacing: 1px; line-height: 1; }
.home-hero__rating-text { color: rgba(255,255,255,.92); }
.home-hero__rating-text strong { color: #fff; }
.home-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 6px; }
.home-hero__trust { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 10px; }
.home-hero__trust li { font-family: "Poppins"; font-size: 14px; font-weight: 500; color: #fff; }
@media (max-width: 478px) { .home-hero__services { font-size: 15px; } .home-hero__trust li { font-size: 12.5px; } }

/* Intro + stat cards */
.home-intro { background: var(--white); }
.home-intro__container { display: grid; grid-template-columns: 1.05fr .95fr; gap: 64px; align-items: center; }
@media (max-width: 991px) { .home-intro__container { grid-template-columns: 1fr; gap: 40px; } }
.home-intro__eyebrow { display: inline-block; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; font-size: 12.5px; color: var(--primary); margin-bottom: 12px; }
.home-intro__title { font-family: "Montserrat"; font-weight: 800; text-transform: uppercase; font-size: clamp(28px, 3.2vw, 44px); line-height: 1.06; letter-spacing: -.01em; color: var(--neutral-900); margin: 0 0 18px; }
.home-intro__lead { font-family: "Poppins"; font-size: 16px; line-height: 1.75; color: var(--neutral-700); margin: 0 0 14px; }
.home-intro__creds { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.home-intro__creds li { display: flex; align-items: center; gap: 11px; font-family: "Poppins"; font-weight: 500; font-size: 14.5px; color: var(--neutral-900); }
.home-intro__creds li i { width: 20px; text-align: center; color: var(--accent); font-size: 15px; }
.home-intro__link { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 13.5px; color: var(--primary); transition: gap .2s ease; }
.home-intro__link:hover { gap: 13px; color: var(--neutral-900); }

.home-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.home-stat { position: relative; background: #fff; border: 1px solid var(--neutral-200); border-radius: 16px; padding: 26px 22px 24px; display: flex; flex-direction: column; gap: 6px; box-shadow: 0 10px 26px rgba(0,0,0,.05); transition: transform .25s ease, box-shadow .25s ease; }
.home-stat:hover { transform: translateY(-5px); box-shadow: 0 18px 38px rgba(0,0,0,.10); }
.home-stat__icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(6,104,57,.10); color: var(--accent); margin-bottom: 8px; }
.home-stat__icon .sr-svgicon { width: 22px; height: 22px; }
.home-stat__num { font-family: "Montserrat"; font-weight: 800; font-size: clamp(36px, 3.4vw, 46px); line-height: 1; color: var(--neutral-900); }
.home-stat__label { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 14px; letter-spacing: .03em; color: var(--neutral-900); }
.home-stat__sub { font-family: "Poppins"; font-size: 13px; line-height: 1.45; color: var(--neutral-700); }
/* Accent stat (rating) — solid orange focal card */
.home-stat--accent { background: linear-gradient(150deg, var(--primary), #ff7a33); border-color: transparent; box-shadow: 0 16px 34px rgba(255,89,0,.28); }
.home-stat--accent .home-stat__icon { background: rgba(255,255,255,.22); color: #fff; }
.home-stat--accent .home-stat__num,
.home-stat--accent .home-stat__label { color: #fff; }
.home-stat--accent .home-stat__sub { color: rgba(255,255,255,.9); }
@media (max-width: 478px) { .home-stat { padding: 22px 18px; } }

/* Services grid — image + name + price hook + Learn more */
.home-services__grid { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
@media (max-width: 900px) { .home-services__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .home-services__grid { grid-template-columns: 1fr; } }
.home-svc-card { background: #fff; border: 1px solid var(--neutral-200); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; text-align: left; transition: transform .25s ease, box-shadow .25s ease; }
.home-svc-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(0,0,0,.10); }
.home-svc-card__media { display: block; aspect-ratio: 16/10; background: #2b2b2b center/cover no-repeat; }
.home-svc-card__body { padding: 22px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex-grow: 1; }
.home-svc-card__title { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 20px; color: var(--neutral-900); margin: 0; }
.home-svc-card__title a { color: inherit; }
.home-svc-card__title a:hover { color: var(--primary); }
.home-svc-card__hook { font-family: "Poppins"; font-size: 14.5px; line-height: 1.55; color: var(--neutral-700); margin: 0; flex-grow: 1; }
.home-svc-card__link { font-family: "Poppins"; font-weight: 700; text-transform: uppercase; font-size: 13px; letter-spacing: .03em; color: var(--accent); margin-top: auto; }
.home-svc-card__link:hover { color: var(--primary); }

/* Process — 5-step timeline */
.home-process.sr-section { background: var(--neutral-700); position: relative; overflow: hidden; }
.home-process.sr-section::before { content: ""; position: absolute; top: -30%; right: -10%; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(255,89,0,.16), rgba(255,89,0,0) 70%); pointer-events: none; }
.home-process__container { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center; }
.home-process .sr-eyebrow-center { color: var(--primary); }
.home-process .service-heading { color: #fff; }
.home-process__sub { font-family: "Poppins"; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.72); max-width: 560px; margin: 2px 0 0; }
.home-process__steps { width: 100%; display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; margin-top: 42px; position: relative; }
.home-process__step { position: relative; background: rgba(255,255,255,.05); backdrop-filter: blur(8px) saturate(120%); -webkit-backdrop-filter: blur(8px) saturate(120%); border: 1px solid rgba(255,255,255,.12); border-radius: 16px; padding: 30px 18px 24px; text-align: center; transition: transform .25s ease, border-color .25s ease, background-color .25s ease; }
.home-process__step:hover { transform: translateY(-5px); border-color: rgba(255,89,0,.55); background: rgba(255,255,255,.08); }
.home-process__num { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--primary); color: #fff; font-family: "Montserrat"; font-weight: 800; font-size: 19px; margin-bottom: 16px; box-shadow: 0 10px 22px rgba(255,89,0,.34); }
.home-process__title { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 16px; letter-spacing: .02em; color: #fff; margin: 0 0 8px; }
.home-process__text { font-family: "Poppins"; font-size: 13.5px; line-height: 1.55; color: rgba(255,255,255,.72); margin: 0; }
@media (max-width: 900px) { .home-process__steps { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 560px) { .home-process__steps { grid-template-columns: 1fr 1fr; } }

/* Homepage bottom contact form — constrain width, center */
/* Closing contact — bold split: dark panel + white form card */
.home-contact--split.sr-section { background: var(--neutral-700); position: relative; overflow: hidden; }
.home-contact--split.sr-section::before { content: ""; position: absolute; bottom: -32%; left: -8%; width: 540px; height: 540px; border-radius: 50%; background: radial-gradient(circle, rgba(255,89,0,.16), rgba(255,89,0,0) 70%); pointer-events: none; }
.home-contact__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
@media (max-width: 991px) { .home-contact__grid { grid-template-columns: 1fr; gap: 34px; } }
.home-contact__eyebrow { display: inline-block; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: 12.5px; color: var(--primary); margin-bottom: 12px; }
.home-contact--split .service-heading { color: #fff; text-align: left; }
.home-contact__sub { font-family: "Poppins"; font-size: 16px; line-height: 1.65; color: rgba(255,255,255,.72); margin: 14px 0 0; max-width: 440px; }
.home-contact__points { list-style: none; margin: 24px 0 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.home-contact__points li { display: flex; align-items: center; gap: 12px; font-family: "Poppins"; font-weight: 500; font-size: 15px; color: rgba(255,255,255,.92); }
.home-contact__points li i { width: 20px; text-align: center; color: #6fc99a; }
.home-contact__points a { color: #fff; }
.home-contact__points a:hover { color: var(--primary); }
.home-contact__formcard { background: #fff; border-radius: 18px; box-shadow: 0 30px 70px rgba(0,0,0,.35); padding: 30px; }
@media (max-width: 560px) { .home-contact__formcard { padding: 22px; } }

/* Reviews — aggregate-rating header, refined cards, read-more link */
.home-reviews__rating { display: inline-flex; align-items: center; gap: 10px; font-family: "Poppins"; font-size: 16px; color: var(--neutral-900); margin-top: -4px; transition: color .2s ease; }
.home-reviews__rating:hover { color: var(--primary); }
.home-reviews__stars { color: #ffb400; font-size: 18px; letter-spacing: 2px; line-height: 1; }
.home-reviews__rating strong { font-family: "Montserrat"; font-weight: 800; }
.home-reviews__more { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-family: "Poppins"; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 13.5px; color: var(--primary); transition: gap .2s ease; }
.home-reviews__more:hover { gap: 13px; }
.home-reviews .rev-card { position: relative; background: #fff; border: 1px solid var(--neutral-200); border-radius: 16px; box-shadow: 0 10px 26px rgba(0,0,0,.05); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.home-reviews .rev-card::before { content: "\201D"; position: absolute; top: 8px; right: 22px; font-family: Georgia, serif; font-size: 60px; line-height: 1; color: rgba(255,89,0,.14); pointer-events: none; }
.home-reviews .rev-card:hover { background: #fff; color: inherit; transform: translateY(-5px); box-shadow: 0 20px 44px rgba(0,0,0,.10); border-color: rgba(255,89,0,.4); }
.home-reviews .rev-card:hover .rev-card__quote { color: #333; }
.home-reviews .rev-card:hover .rev-card__name { color: var(--neutral-900); }

/* Trusty verified-reviews gallery embed */
.home-trusty { background: var(--white); }
.home-trusty__container { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px; }
.home-trusty__embed { width: 100%; max-width: 1100px; margin-top: 26px; }
.home-trusty__embed iframe { display: block; width: 100%; border: 0; border-radius: 14px; }

/* =======================================================================
   FOOTER (CRO audit 2.7) — dark forest green, 4 columns + bottom bar
   ======================================================================= */
.sr-footer { background: #134F26; color: #fff; padding-top: 64px; padding-bottom: 0; }
.sr-footer__grid { display: grid; grid-template-columns: 1.66fr 1fr 1fr 1.1fr; gap: 36px; padding-bottom: 48px; }
@media (max-width: 991px) { .sr-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; } }
@media (max-width: 560px) { .sr-footer__grid { grid-template-columns: 1fr; gap: 28px; } }
.sr-footer__logo { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 22px; color: #fff; display: inline-block; margin-bottom: 14px; }
.sr-footer__logo:hover { color: var(--primary); }
.sr-footer__tag { font-family: "Poppins"; font-size: 14.5px; line-height: 1.6; color: rgba(255,255,255,.78); margin: 0 0 16px; max-width: 320px; }
.sr-footer__license { display: inline-block; font-family: "Poppins"; font-weight: 600; font-size: 13px; color: #C49A6C; border: 1px solid rgba(196,154,108,.5); border-radius: 6px; padding: 6px 12px; }
.sr-footer__social { display: flex; gap: 10px; margin-top: 18px; }
.sr-footer__socicon { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.10); color: #fff; transition: background-color .25s, color .25s, transform .25s; }
.sr-footer__socicon:hover { background: #C49A6C; color: #134F26; transform: translateY(-2px); }
.sr-footer__h { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; font-size: 16px; color: #fff; margin: 0 0 18px; letter-spacing: .03em; }
.sr-footer__list { display: flex; flex-direction: column; gap: 11px; }
.sr-footer__list a { font-family: "Poppins"; font-size: 14.5px; color: rgba(255,255,255,.82); transition: color .2s, padding-left .2s; }
.sr-footer__list a:hover { color: #C49A6C; padding-left: 4px; }
.sr-footer__contactlist { display: flex; flex-direction: column; gap: 14px; }
.sr-footer__contactlist li { display: flex; gap: 12px; align-items: flex-start; font-family: "Poppins"; font-size: 14.5px; color: rgba(255,255,255,.85); line-height: 1.5; }
.sr-footer__contactlist i { color: #C49A6C; font-size: 16px; margin-top: 3px; width: 18px; text-align: center; flex: 0 0 auto; }
.sr-footer__contactlist a { color: rgba(255,255,255,.85); }
.sr-footer__contactlist a:hover { color: #C49A6C; }
.sr-footer__bottom { border-top: 1px solid rgba(196,154,108,.4); }
.sr-footer__bottominner { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 20px; padding-bottom: 20px; }
.sr-footer__copy { font-family: "Poppins"; font-size: 13px; color: rgba(255,255,255,.65); }
.sr-footer__legal { display: flex; gap: 20px; }
.sr-footer__legal a { font-family: "Poppins"; font-size: 13px; color: rgba(255,255,255,.65); }
.sr-footer__legal a:hover { color: #C49A6C; }
@media (max-width: 560px) { .sr-footer__bottominner { flex-direction: column; align-items: flex-start; gap: 10px; } }

/* Thank-you page */
.thankyou { background: var(--white); }
.thankyou__inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 16px; max-width: 720px; margin: 0 auto; }
.thankyou__title { font-family: "Montserrat"; font-weight: 700; text-transform: uppercase; color: var(--neutral-900); font-size: 44px; line-height: 1.1; margin: 0; }
.thankyou__lead { font-family: "Poppins"; font-size: 18px; line-height: 1.7; color: var(--neutral-700); margin: 0; }
.thankyou__call { margin-top: 10px; }
@media (max-width: 767px) { .thankyou__title { font-size: 32px; } }

/* =======================================================================
   HOMEPAGE — BOLD CONVERSION REDESIGN
   ======================================================================= */

/* --- Bold hero: full-bleed video + content (no form) -------------------- */
.home-hero--bold.hero-video-section { min-height: clamp(560px, 82vh, 820px); }
.home-hero--bold.hero-section__overly::before {
	background: linear-gradient(105deg, rgba(15,12,10,.84) 0%, rgba(15,12,10,.58) 48%, rgba(15,12,10,.30) 100%);
}
.home-hero__inner { width: 100%; max-width: 1280px; margin: 70px auto 0; }
.home-hero--bold .home-hero__content { width: 66% !important; display: flex; flex-direction: column; row-gap: 18px; }
@media (max-width: 991px) { .home-hero--bold .home-hero__content { width: 100% !important; } }
.home-hero__eyebrow { font-family: "Poppins"; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; font-size: 13px; color: var(--primary); }
.home-hero--bold h1 {
	font-family: "Montserrat"; font-weight: 800; text-transform: uppercase; color: #fff;
	font-size: clamp(34px, 4.4vw, 62px); line-height: 1.02; margin: 0; letter-spacing: -.01em;
	text-shadow: 0 2px 30px rgba(0,0,0,.35);
}
.home-hero__accent { color: var(--primary); }
.home-hero__services { font-family: "Poppins"; font-weight: 600; font-size: clamp(15px, 1.4vw, 20px); color: rgba(255,255,255,.94); margin: 2px 0 0; letter-spacing: .01em; }
.home-hero__trust { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 6px 0 0; padding: 0; list-style: none; }
.home-hero__trust li { display: inline-flex; align-items: center; gap: 8px; font-family: "Poppins"; font-size: 14px; font-weight: 500; color: rgba(255,255,255,.94); }
.home-hero__trust li i { color: #6fc99a; font-size: 15px; }
.home-hero__trust-rating a { display: inline-flex; align-items: center; gap: 7px; color: #fff; }
.home-hero__trust-rating a:hover { opacity: .85; }
.home-hero__trust-rating strong { color: #fff; }
.home-hero__stars { color: #ffc107; letter-spacing: 1px; font-size: 15px; line-height: 1; }
.home-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; }

/* --- Services: bento layout with a large feature tile + overlay tiles --- */
.home-services__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 34px; text-align: left; }
.home-services__head .left-content-heading { display: block; }
.home-services__head .service-heading { text-align: left; margin: 6px 0 0; }
.home-services__intro { font-family: "Poppins"; font-size: 15.5px; line-height: 1.7; color: var(--neutral-700); max-width: 420px; margin: 0; }
@media (max-width: 767px) { .home-services__head { flex-direction: column; align-items: flex-start; gap: 12px; } .home-services__intro { max-width: none; } }

.home-svc-bento { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 230px; gap: 18px; }
.home-svc-tile {
	position: relative; overflow: hidden; border-radius: 16px; display: flex; align-items: flex-end;
	background: #2b2b2b center/cover no-repeat; min-height: 230px; isolation: isolate;
}
.home-svc-tile::before {
	content: ""; position: absolute; inset: 0; z-index: 1;
	background: linear-gradient(to top, rgba(10,8,6,.86) 0%, rgba(10,8,6,.45) 42%, rgba(10,8,6,.05) 100%);
	transition: background .3s ease;
}
.home-svc-tile::after {
	content: ""; position: absolute; inset: 0; z-index: 0;
	background: inherit; background-size: cover; background-position: center;
	transition: transform .5s ease;
}
.home-svc-tile:hover::after { transform: scale(1.06); }
.home-svc-tile:hover::before { background: linear-gradient(to top, rgba(255,89,0,.85) 0%, rgba(10,8,6,.55) 50%, rgba(10,8,6,.1) 100%); }
.home-svc-tile--feature { grid-column: span 2; grid-row: span 2; }
.home-svc-tile__overlay { position: relative; z-index: 2; padding: 22px 24px; display: flex; flex-direction: column; gap: 8px; width: 100%; }
.home-svc-tile__title { font-family: "Montserrat"; font-weight: 800; text-transform: uppercase; color: #fff; font-size: 21px; line-height: 1.08; }
.home-svc-tile--feature .home-svc-tile__title { font-size: clamp(30px, 3vw, 42px); }
.home-svc-tile__hook { font-family: "Poppins"; font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.9); max-width: 60ch; }
.home-svc-tile__cta { font-family: "Poppins"; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: 12.5px; color: #fff; display: inline-flex; align-items: center; gap: 7px; margin-top: 2px; opacity: .9; transition: gap .2s ease; }
.home-svc-tile:hover .home-svc-tile__cta { gap: 12px; opacity: 1; }
@media (max-width: 767px) {
	/* Rows must grow with content here. A fixed 180px auto-row was shorter than
	   the tile's 230px min-height, so each tile overflowed its track and overlapped
	   the next one. minmax(200px, auto) lets every row expand to fit its tile. */
	.home-svc-bento { grid-template-columns: 1fr 1fr; grid-auto-rows: minmax(200px, auto); }
	.home-svc-tile { min-height: 200px; }
	.home-svc-tile--feature { grid-column: span 2; grid-row: span 1; }
}
@media (max-width: 480px) { .home-svc-bento { grid-template-columns: 1fr; } .home-svc-tile--feature { grid-column: span 1; } }

/* Card variant: GLASS — frosted info card + price chip, lighter image wash */
.home-services--glass .home-svc-tile { align-items: flex-end; }
.home-services--glass .home-svc-tile::before {
	background: linear-gradient(to top, rgba(10,8,6,.55) 0%, rgba(10,8,6,.12) 45%, rgba(10,8,6,0) 75%);
}
.home-services--glass .home-svc-tile:hover::before { background: linear-gradient(to top, rgba(10,8,6,.6) 0%, rgba(10,8,6,.15) 50%, rgba(10,8,6,0) 80%); }
.home-services--glass .home-svc-tile__overlay {
	margin: 14px; padding: 15px 17px; gap: 7px;
	background: rgba(28,24,20,.42); backdrop-filter: blur(12px) saturate(120%); -webkit-backdrop-filter: blur(12px) saturate(120%);
	border: 1px solid rgba(255,255,255,.22); border-radius: 14px; box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.home-services--glass .home-svc-tile__chip {
	position: absolute; top: 14px; right: 14px; z-index: 2;
	font-family: "Montserrat"; font-weight: 700; font-size: 12.5px; letter-spacing: .02em; color: var(--neutral-900);
	background: #fff; border-radius: 999px; padding: 6px 13px; box-shadow: 0 4px 14px rgba(0,0,0,.22);
}
.home-services--glass .home-svc-tile__cta { color: var(--primary); }
.home-services--glass .home-svc-tile:hover .home-svc-tile__cta { color: #ffb27a; }


/* --- Bolder homepage section rhythm + headings ------------------------- */
body.home .services-section .service-heading,
body.home .home-process .service-heading,
body.home .testimonials-section .service-heading,
body.home .portfolio-section .service-heading,
body.home .faq-section .service-heading,
body.home .home-contact .service-heading { font-size: clamp(30px, 3.4vw, 46px); letter-spacing: -.01em; }


/* (Process dark-glass styling now lives in the base .home-process rules.) */

/* Services + reviews on a soft tinted band to separate from white hero/intro */
body.home .testimonials-section { background: var(--neutral-100); }

/* Lead-magnet → orange brand block (was dark) for a punchy CTA moment */
body.home .guide-banner.sr-section { background: linear-gradient(100deg, var(--primary), #ff7a33); }
body.home .guide-banner__text p { color: rgba(255,255,255,.92); }
body.home .guide-banner .btn-primary-sr { background: #fff; color: var(--primary); }
body.home .guide-banner .btn-primary-sr:hover { background: var(--neutral-900); color: #fff; }

/* -- HTML sitemap page --------------------------------------------------- */
.sitemap-page__title { font-family: "Playfair Display"; font-weight: 700; font-size: clamp(30px, 5vw, 44px); color: var(--neutral-900); margin-bottom: 32px; }
.sierra-html-sitemap__group { margin-bottom: 36px; }
.sierra-html-sitemap__heading { font-family: "Montserrat"; font-weight: 700; font-size: 20px; text-transform: uppercase; letter-spacing: .03em; color: var(--neutral-900); margin: 0 0 14px; padding-bottom: 8px; border-bottom: 2px solid var(--accent); }
.sierra-html-sitemap__list { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 32px; }
.sierra-html-sitemap__list li { margin-bottom: 9px; break-inside: avoid; }
.sierra-html-sitemap__list a { color: var(--neutral-700); font-family: "Poppins"; }
.sierra-html-sitemap__list a:hover { color: var(--primary); }
@media (max-width: 991px) { .sierra-html-sitemap__list { columns: 2; } }
@media (max-width: 600px) { .sierra-html-sitemap__list { columns: 1; } }

