@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Manrope:wght@400;500;600;700;800&display=swap');
@import url('./tokens.css');

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: clip; }
img, video { display: block; max-width: 100%; }
a { color: inherit; }
.skip { position: fixed; left: 1rem; top: -5rem; z-index: 999; padding: .75rem 1rem; background: #fff; color: #000; }
.skip:focus { top: 1rem; }
.brand-logo { width: 184px; height: auto; }
.brand-logo.invert { filter: brightness(0) invert(1); }
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity: 1; transform: none; }
.eyebrow { text-transform: uppercase; letter-spacing: .16em; font-size: .76rem; font-weight: 700; }
.cta { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 3.3rem; padding: .8rem 1.25rem; text-decoration: none; font-weight: 700; border: 1px solid transparent; transition: transform .25s ease, background .25s ease, color .25s ease; }
.cta:hover { transform: translateY(-2px); }
.arrow { font-size: 1.2em; }

.cinematic { --hero-cleaner-pass: 5.2s; --hero-cleaner-delay: 1.75s; background: #07131f; color: #fff; font-family: 'Manrope', sans-serif; }
.cinematic .hero { min-height: 100svh; position: relative; display: grid; grid-template-rows: auto 1fr; overflow: hidden; }
.cinematic .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .68; }
.cinematic .hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(4,13,23,.9) 0%,rgba(4,13,23,.45) 48%,rgba(4,13,23,.2) 100%),linear-gradient(0deg,rgba(4,13,23,.72),transparent 55%); }
.cinematic .nav, .cinematic .hero-copy { position: relative; z-index: 2; }
.cinematic .nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 1.4rem 4vw; }
.cinematic .nav-logo { grid-column: 2; transform: translateY(-160%); opacity: 0; animation: nav-drop 1.15s .28s cubic-bezier(.16,1,.3,1) forwards; }
.cinematic .nav-links { grid-column: 3; justify-self: end; display: flex; align-items: center; }
.cinematic .nav-links a { text-decoration: none; font-size: .9rem; }
.cinematic .nav-phone { display: inline-flex; align-items: center; gap: .55rem; font-weight: 700; letter-spacing: .015em; transform: translateY(-160%); opacity: 0; animation: nav-drop 1.15s .28s cubic-bezier(.16,1,.3,1) forwards; }
.cinematic .nav-phone svg { width: 1.1rem; height: 1.1rem; flex: 0 0 auto; }
.cinematic .nav-phone-icon { transform-origin: 45% 72%; }
.cinematic .nav-phone:is(:hover,:focus-visible) .nav-phone-icon { animation: nav-phone-ring .7s ease-in-out 2; }
.cinematic .nav-phone:is(:hover,:focus-visible) .phone-wave { animation: call-wave .9s ease-out forwards; }
.cinematic .nav-phone:is(:hover,:focus-visible) .phone-wave-outer { animation-delay: .16s; }
.cinematic .hero-copy { align-self: center; justify-self: center; top: -2rem; width: min(1180px,92vw); padding: 5rem 4vw 7rem; text-align: center; display: flex; flex-direction: column; align-items: center; }
.cinematic .hero-title-mask { overflow: hidden; padding: .04em .1em .36em; margin: -.04em -.1em -.22em; }
.cinematic h1 { max-width: 1050px; margin: 0 0 -.22em; padding-bottom: .22em; font-size: clamp(4.1rem,5.2vw,5.5rem); line-height: 1.08; letter-spacing: -.035em; word-spacing: .08em; white-space: nowrap; font-weight: 500; transform: translateY(112%) rotate(2deg); transform-origin: 25% 50%; clip-path: inset(100% 0 0 0); animation: hero-rise 1.15s .28s cubic-bezier(.16,1,.3,1) forwards; }
.cinematic .hero-intro { max-width: none; margin: 1.8rem 0 0; font-size: clamp(1.05rem,1.5vw,1.35rem); line-height: 1.5; color: rgba(255,255,255,.84); white-space: nowrap; opacity: 0; transform: translateY(36px); animation: support-rise .9s .62s cubic-bezier(.16,1,.3,1) forwards; }
.cinematic .hero-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; width: min(100%,32rem); margin-top: 2rem; opacity: 0; transform: translateY(32px); animation: support-rise .9s .76s cubic-bezier(.16,1,.3,1) forwards; }
.cinematic .hero-actions .cta { width: 100%; min-width: 0; }
.cinematic .hero-cleaning-scene { position: absolute; z-index: 4; left: 0; right: 0; bottom: 0; height: 6.5rem; overflow: hidden; pointer-events: none; }
.cinematic .hero-carpet-strip { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; height: 6px; overflow: hidden; background: repeating-linear-gradient(100deg,#242a30 0 4px,#666d73 4px 8px,#11171c 8px 12px); box-shadow: 0 -2px 9px rgba(0,0,0,.22); opacity: 0; transform: translateY(120%); will-change: transform,opacity; animation: hero-carpet-life calc(var(--hero-cleaner-pass) + 2.5s) .85s cubic-bezier(.16,1,.3,1) forwards; }
.cinematic .hero-clean-strip { position: absolute; inset: 0; background: repeating-linear-gradient(100deg,#d9dee2 0 7px,#fff 7px 14px,#b9c1c7 14px 20px); clip-path: inset(0 0 0 100%); animation: hero-carpet-clean var(--hero-cleaner-pass) var(--hero-cleaner-delay) linear forwards; }
.cinematic .hero-cleaner { position: absolute; z-index: 4; left: 100%; bottom: 8px; width: 2.5rem; height: 2.5rem; object-fit: contain; opacity: 0; filter: brightness(0) invert(1) drop-shadow(0 5px 12px rgba(0,0,0,.38)); animation: hero-cleaner-pass var(--hero-cleaner-pass) var(--hero-cleaner-delay) linear forwards, hero-cleaner-exit .3s calc(var(--hero-cleaner-delay) + var(--hero-cleaner-pass)) ease forwards; }
.cinematic .hero-clean-bubbles { position: absolute; z-index: 3; inset: 0; }
.cinematic .hero-bubble { position: absolute; bottom: 7px; display: grid; place-items: center; width: 1.45rem; height: 1.45rem; color: #fff; font: 1.35rem/1 "Apple Color Emoji","Segoe UI Emoji",sans-serif; opacity: 0; filter: drop-shadow(0 2px 3px rgba(4,19,31,.7)); transform: translateY(5px) scale(.2); }
.cinematic .hero-bubble.is-released { animation: hero-bubble-pop .68s ease-out forwards; }
.cinematic .hero-bubble-1 { right: 12%; }
.cinematic .hero-bubble-2 { right: 36%; }
.cinematic .hero-bubble-3 { right: 60%; }
.cinematic .hero-bubble-4 { right: auto; left: max(2.9rem,16%); }
.cinematic .hero-clean-result { position: absolute; z-index: 5; left: .75rem; bottom: .85rem; display: inline-flex; align-items: center; gap: .5rem; width: max-content; opacity: 0; transform: translateY(10px) scale(.55); transform-origin: left center; animation: hero-clean-result-pop 1.35s calc(var(--hero-cleaner-delay) + var(--hero-cleaner-pass)) cubic-bezier(.16,1,.3,1) forwards; }
.cinematic .hero-clean-result strong { color: #fff; font-size: 1.05rem; font-weight: 800; letter-spacing: .04em; text-shadow: 0 4px 14px rgba(0,0,0,.55); text-transform: uppercase; }
.cinematic .hero-clean-sparkle { font-size: 1.15rem; line-height: 1; opacity: 0; filter: drop-shadow(0 3px 8px rgba(0,0,0,.4)); }
.cinematic .hero-clean-sparkle-left { animation: hero-sparkle-pop .9s calc(var(--hero-cleaner-delay) + var(--hero-cleaner-pass) + .07s) cubic-bezier(.16,1.25,.3,1) forwards; }
.cinematic .hero-clean-sparkle-right { animation: hero-sparkle-pop .9s calc(var(--hero-cleaner-delay) + var(--hero-cleaner-pass) + .17s) cubic-bezier(.16,1.25,.3,1) forwards; }
.cinematic .cta.secondary { border-color: rgba(255,255,255,.78); color: #fff; background: rgba(4,13,23,.16); backdrop-filter: blur(10px); }
.cinematic .cta.secondary:hover { background: rgba(4,13,23,.16); color: #fff; }
.cinematic .phone-wave { opacity: 0; stroke-dasharray: 20; stroke-dashoffset: 20; }
.cinematic .review-proof { display: inline-flex; flex-direction: column; align-items: center; gap: .48rem; margin-top: 1.15rem; padding: .62rem .78rem; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; background: rgba(4,13,23,.24); backdrop-filter: blur(10px); color: rgba(255,255,255,.82); text-decoration: none !important; font-size: .78rem; letter-spacing: .005em; opacity: 0; transform: translateY(18px); animation: support-rise .8s .9s cubic-bezier(.16,1,.3,1) forwards; transition: border-color .25s ease, background .25s ease; }
.cinematic .review-headline { color: rgba(255,255,255,.78); font-size: .78rem; line-height: 1; }
.cinematic .review-headline strong { color: #fff; font-weight: 700; }
.cinematic .review-sources { display: inline-flex; align-items: center; gap: 1rem; }
.cinematic .review-source { display: inline-flex; align-items: center; gap: .34rem; white-space: nowrap; }
.cinematic .review-source + .review-source { padding-left: 1rem; border-left: 1px solid rgba(255,255,255,.18); }
.cinematic .review-source strong { color: #fff; font-weight: 700; }
.cinematic .review-logo { width: 1.45rem; height: 1.45rem; flex: 0 0 auto; filter: drop-shadow(0 3px 8px rgba(0,0,0,.18)); }
.cinematic .review-proof .google-logo { padding: .16rem; border-radius: 50%; background: #07131f; box-shadow: 0 0 0 1px rgba(0,0,0,.78); }
.cinematic .review-proof .facebook-mark { box-shadow: 0 0 0 1px rgba(0,0,0,.78); }
.cinematic .review-proof:hover { border-color: rgba(255,255,255,.3); background: rgba(4,13,23,.34); }
@keyframes hero-carpet-life {
  0% { opacity: 0; transform: translateY(120%); }
  11%,78% { opacity: 1; transform: translateY(0); }
  92%,100% { opacity: 0; transform: translateY(120%); }
}
@keyframes hero-carpet-clean {
  from { clip-path: inset(0 0 0 calc(100% - 5px)); }
  to { clip-path: inset(0 0 0 -5px); }
}
@keyframes hero-cleaner-pass {
  0% { left: calc(100% - 5px); opacity: 0; transform: rotate(0); }
  4% { opacity: 1; transform: rotate(-3deg); }
  100% { left: -5px; opacity: 1; transform: rotate(2deg); }
}
@keyframes hero-cleaner-exit { from { opacity: 1; transform: rotate(2deg) scale(1); } to { opacity: 0; transform: rotate(2deg) scale(.72); } }
@keyframes hero-bubble-pop { 0% { opacity: 0; transform: translateY(5px) scale(.2); } 42% { opacity: 1; transform: translateY(-8px) scale(1.12); } 100% { opacity: 0; transform: translateY(-27px) scale(.75); } }
@keyframes hero-clean-result-pop {
  0% { opacity: 0; transform: translateY(10px) scale(.55); }
  34% { opacity: 1; transform: translateY(-8px) scale(1.08); }
  66% { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-16px) scale(.78); }
}
@keyframes hero-sparkle-pop { 0% { opacity: 0; transform: scale(.25) rotate(-18deg); } 45% { opacity: 1; transform: scale(1.25) rotate(10deg); } 100% { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes phone-ring { 0%,100% { transform: translateY(-50%) rotate(0); } 20% { transform: translateY(-50%) rotate(-10deg); } 40% { transform: translateY(-50%) rotate(9deg); } 60% { transform: translateY(-50%) rotate(-7deg); } 80% { transform: translateY(-50%) rotate(5deg); } }
@keyframes nav-phone-ring { 0%,100% { transform: rotate(0); } 20% { transform: rotate(-10deg); } 40% { transform: rotate(9deg); } 60% { transform: rotate(-7deg); } 80% { transform: rotate(5deg); } }
@keyframes call-wave { 0% { opacity: 0; stroke-dashoffset: 20; } 35%,75% { opacity: 1; } 100% { opacity: 0; stroke-dashoffset: 0; } }
@keyframes hero-rise { to { transform: translateY(0) rotate(0); clip-path: inset(0 0 0 0); } }
@keyframes support-rise { to { opacity: 1; transform: translateY(0); } }
@keyframes nav-drop { to { opacity: 1; transform: translateY(0); } }
.cinematic .cinematic-story { min-height: 100vh; padding: 9rem 4vw; display: grid; grid-template-columns: .65fr 1.35fr; gap: 8vw; background: #f5f4ee; color: #132333; }
.cinematic .cinematic-story h2 { margin: 0; font-size: clamp(3rem,7vw,7rem); line-height: .93; letter-spacing: -.055em; }
.cinematic .story-copy { max-width: 35rem; align-self: end; }
.cinematic .story-copy p { font-size: 1.15rem; line-height: 1.65; }
.cinematic .stat-line { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid #a9afb0; display: flex; justify-content: space-between; gap: 2rem; font-weight: 700; }
.cinematic .hero-reviews { position: absolute; z-index: 6; left: 50%; bottom: 1.1rem; width: 100%; padding: 0 1rem; display: grid; place-items: center; transform: translateX(-50%); transition: transform .32s cubic-bezier(.45,0,.55,1); }
.cinematic .hero-reviews.is-cleaner-near { transform: translate(-50%,-32px); }
.cinematic .hero-reviews .review-proof { margin-top: 0; }

@media (max-width: 820px) {
  .cinematic { --hero-cleaner-pass: 2.5s; }
  .cinematic .hero-bubble-1 { right: 14%; }
  .cinematic .hero-bubble-2 { right: 50%; }
  .cinematic .hero-bubble-3 { right: 86%; }
  .cinematic .hero-bubble-4 { display: none; }
  .cinematic .nav { grid-template-columns: auto 1fr; padding: 1rem; }
  .cinematic .nav-logo { grid-column: 1; justify-self: start; }
  .cinematic .nav-links { grid-column: 2; justify-self: end; }
  .cinematic .brand-logo { width: 135px; }
  .cinematic .nav-phone { font-size: .78rem; gap: .35rem; }
  .cinematic .nav-phone svg { width: .95rem; height: .95rem; }
  .cinematic .hero-copy { top: -1.5rem; width: 100%; padding: 6rem 1rem 7rem; }
  .cinematic h1 { font-size: clamp(1.65rem,7.8vw,4.1rem); }
  .cinematic .hero-intro { max-width: 42rem; white-space: normal; }
  .cinematic .hero-actions { width: min(100%,32rem); }
  .cinematic .review-proof { justify-content: center; max-width: calc(100vw - 1rem); gap: .45rem; padding-inline: clamp(.45rem,2vw,.7rem); font-size: clamp(.64rem,1.85vw,.76rem); }
  .cinematic .review-headline { font-size: clamp(.7rem,2vw,.76rem); }
  .cinematic .review-sources { gap: clamp(.35rem,1.7vw,.7rem); }
  .cinematic .review-source { gap: clamp(.2rem,1vw,.32rem); }
  .cinematic .review-source + .review-source { padding-left: clamp(.35rem,1.7vw,.7rem); }
  .cinematic .review-logo { width: clamp(1.15rem,3.6vw,1.35rem); height: clamp(1.15rem,3.6vw,1.35rem); }
  .cinematic .hero-reviews { bottom: .8rem; }
  .cinematic .hero-clean-result { gap: .3rem; }
  .cinematic .hero-clean-result strong { font-size: .88rem; }
  .cinematic .hero-clean-sparkle { font-size: .9rem; }
  .cinematic .cinematic-story { grid-template-columns: 1fr; padding: 6rem 1rem; gap: 3rem; }
}

@media (max-width: 520px) {
  .cinematic .hero-actions { grid-template-columns: 1fr; width: min(100%,22rem); }
  .cinematic .hero-clean-result { gap: .22rem; }
  .cinematic .hero-clean-result strong { font-size: .78rem; }
  .cinematic .hero-clean-sparkle { font-size: .8rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .cinematic h1, .cinematic .hero-intro, .cinematic .hero-actions, .cinematic .review-proof, .cinematic .nav-logo, .cinematic .nav-phone { opacity: 1; transform: none; }
  .cinematic .hero-cleaning-scene { display: block; }
  .cinematic .hero-carpet-strip { opacity: 1; transform: none; }
  .cinematic .hero-clean-strip { clip-path: inset(0); }
  .cinematic .hero-cleaner,
  .cinematic .hero-clean-bubbles,
  .cinematic .hero-clean-result { display: none; }
}

/* Expanded one-page site */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.netlify-honeypot { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
section, footer { scroll-margin-top: 5.5rem; }

.site-header { position: fixed; z-index: 100; top: 0; left: 0; right: 0; color: #fff; background: rgba(4,13,23,.12); border-bottom: 1px solid rgba(255,255,255,.08); backdrop-filter: blur(12px) saturate(125%); transition: background .35s ease, border-color .35s ease, box-shadow .35s ease; animation: nav-drop 1.15s .28s cubic-bezier(.16,1,.3,1) both; }
.site-header.is-scrolled { background: rgba(4,13,23,.74); border-color: rgba(255,255,255,.14); box-shadow: 0 14px 38px rgba(2,8,14,.18); }
.nav-shell { width: min(1440px,100%); min-height: 5rem; margin: 0 auto; padding: .75rem 4vw; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; }
.site-logo { justify-self: start; line-height: 0; }
.site-logo .brand-logo { width: 150px; }
.primary-nav { display: flex; align-items: center; justify-content: center; gap: .2rem; }
.nav-link, .company-trigger { display: inline-flex; align-items: center; gap: .45rem; min-height: 2.8rem; padding: .65rem .9rem; border: 0; background: transparent; color: rgba(255,255,255,.84); font: 600 .82rem/1 'Manrope',sans-serif; letter-spacing: .035em; text-decoration: none; cursor: pointer; transition: color .2s ease; }
.nav-link:hover, .nav-link:focus-visible, .company-trigger:hover, .company-trigger:focus-visible { color: #fff; }
.company-trigger svg { width: .7rem; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform .2s ease; }
.nav-company { position: relative; }
.nav-dropdown { position: absolute; top: calc(100% + .2rem); left: 50%; width: 12.5rem; padding: .5rem; border: 1px solid rgba(255,255,255,.13); border-radius: 8px; background: rgba(6,17,28,.92); box-shadow: 0 20px 45px rgba(0,0,0,.25); backdrop-filter: blur(18px); opacity: 0; visibility: hidden; transform: translate(-50%,-8px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
.nav-dropdown::before { content: ''; position: absolute; left: 0; right: 0; top: -.6rem; height: .6rem; }
.nav-dropdown a { display: block; padding: .72rem .8rem; border-radius: 5px; color: rgba(255,255,255,.72); font-size: .82rem; text-decoration: none; transition: color .2s ease, background .2s ease; }
.nav-dropdown a:hover, .nav-dropdown a:focus-visible { color: #fff; background: rgba(255,255,255,.08); }
.nav-company:hover .nav-dropdown, .nav-company:focus-within .nav-dropdown, .nav-company.is-open .nav-dropdown { opacity: 1; visibility: visible; transform: translate(-50%,0); }
.nav-company:hover .company-trigger svg, .nav-company:focus-within .company-trigger svg, .nav-company.is-open .company-trigger svg { transform: rotate(180deg); }
.header-phone { justify-self: end; display: inline-flex; align-items: center; gap: .55rem; color: #fff; font-size: .82rem; font-weight: 700; letter-spacing: .02em; text-decoration: none; }
.header-phone svg { width: 1.15rem; height: 1.15rem; overflow: visible; transform-origin: 45% 72%; }
.header-phone:is(:hover,:focus-visible) svg { animation: nav-phone-ring .7s ease-in-out 2; }
.header-phone:is(:hover,:focus-visible) .phone-wave { animation: call-wave .9s ease-out forwards; }
.header-phone:is(:hover,:focus-visible) .phone-wave-outer { animation-delay: .16s; }
.menu-toggle { display: none; }

.cinematic .hero { min-height: 100svh; display: grid; grid-template-rows: 1fr; place-items: center; }
.cinematic .hero-copy { top: 0; padding-top: 9rem; }
.facebook-mark, .yelp-mark { display: grid; place-items: center; border-radius: 50%; color: #fff; font-weight: 800; font-family: Arial,sans-serif; line-height: 1; }
.facebook-mark { background: #1877f2; font-size: 1.08rem; }
.yelp-mark { background: #ff1a1a; font-size: 1rem; }

.services-section { position: relative; padding: 5rem 4vw; background: #eef0ed; color: #101d29; overflow: hidden; }
.services-section::before { content: ''; position: absolute; top: 0; left: 4vw; right: 4vw; height: 1px; background: #c8ceca; }
.section-intro { width: min(1320px,100%); margin: 0 auto 3.5rem; display: grid; grid-template-columns: .55fr 1.45fr; column-gap: 4rem; align-items: end; }
.section-intro .eyebrow { align-self: start; color: #50606a; }
.section-intro h2 { margin: 0; font-size: clamp(3rem,6.6vw,7rem); line-height: .92; letter-spacing: -.055em; font-weight: 500; }
.section-intro p { grid-column: 2; margin: 1.25rem 0 0; color: #5d676e; font-size: 1rem; }
.services-grid { width: min(1320px,100%); margin: 0 auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: #bfc6c2; border: 1px solid #bfc6c2; }
.service-card { appearance: none; min-width: 0; height: clamp(15rem,22vw,19rem); padding: 0; border: 0; background: transparent; color: inherit; text-align: left; perspective: 1200px; cursor: pointer; }
.service-card-inner { position: relative; display: block; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform .68s cubic-bezier(.2,.72,.16,1); }
.service-face { position: absolute; inset: 0; display: flex; flex-direction: column; padding: clamp(1.5rem,2.5vw,2.2rem); backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.service-front { justify-content: space-between; background: #f8f9f7; }
.service-front::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 0; height: 4px; background: var(--shiny-green); transition: right .45s cubic-bezier(.2,.8,.2,1); }
.service-front strong { max-width: 90%; font-size: clamp(1.65rem,2.25vw,2.45rem); line-height: 1.02; letter-spacing: -.04em; font-weight: 500; }
.service-front > span:last-child, .service-back > span:last-child { color: #5d676e; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.service-back { justify-content: center; gap: 1.15rem; background: #0b1a27; color: #fff; transform: rotateY(180deg); }
.service-back strong { font-size: clamp(1.4rem,1.9vw,2rem); line-height: 1.1; letter-spacing: -.03em; font-weight: 600; }
.service-back p { max-width: 28rem; margin: 0; color: rgba(255,255,255,.72); font-size: clamp(.95rem,1.15vw,1.08rem); line-height: 1.65; }
.service-back > span:last-child { margin-top: auto; color: rgba(255,255,255,.46); }

.service-card:focus-visible { outline: 3px solid var(--shiny-green); outline-offset: 3px; z-index: 2; }
.service-card.is-flipped .service-card-inner { transform: rotateY(180deg); }

.reviews-section { padding: 5rem 4vw; background: #07131f; color: #fff; }
.reviews-heading { width: min(1320px,100%); margin: 0 auto; text-align: center; }
.reviews-heading .eyebrow { color: rgba(255,255,255,.5); }
.reviews-heading h2 { margin: 0 auto; max-width: none; font-size: min(5vw,5.25rem); line-height: .96; letter-spacing: -.05em; white-space: nowrap; font-weight: 500; }
.reviews-heading p { max-width: 44rem; margin: 1.35rem auto 0; color: rgba(255,255,255,.62); font-size: 1rem; line-height: 1.6; }
.reviews-widget { width: min(1320px,100%); min-height: 340px; margin: 0 auto; padding: 1rem; border: 1px solid rgba(255,255,255,.14); border-radius: 18px; background: #f5f5f3; overflow: hidden; }

.cinematic .cinematic-story { min-height: auto; padding-top: 8rem; padding-bottom: 8rem; }
.cinematic .cinematic-story h2 { max-width: 900px; font-weight: 500; }
.cinematic .stat-line a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }

.site-footer { padding: 5.5rem 4vw 1.5rem; background: #040d16; color: #fff; border-top: 1px solid rgba(255,255,255,.12); }
.footer-main { width: min(1320px,100%); margin: 0 auto; display: grid; grid-template-columns: 1.4fr repeat(3,1fr); gap: clamp(2rem,5vw,5rem); }
.footer-brand .brand-logo { width: 190px; }
.footer-brand .footer-logo-horizontal { width: 190px; }
.footer-brand p { max-width: 23rem; margin: 1.5rem 0 0; color: rgba(255,255,255,.55); font-size: .95rem; line-height: 1.65; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.footer-column h2 { margin: 0 0 .7rem; color: rgba(255,255,255,.42); font-size: .72rem; line-height: 1; letter-spacing: .14em; text-transform: uppercase; }
.footer-column p, .footer-column a { margin: 0; color: rgba(255,255,255,.72); font-size: .9rem; line-height: 1.65; text-decoration: none; }
.footer-column a:hover, .footer-column a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.footer-bottom { width: min(1320px,100%); margin: 4.5rem auto 0; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.1); display: flex; justify-content: space-between; gap: 1rem; color: rgba(255,255,255,.38); font-size: .74rem; }
.footer-copyright { display: inline-flex; align-items: center; gap: .65rem; }
.footer-symbol { width: 1.65rem; height: 1.65rem; flex: 0 0 auto; }
.footer-bottom > span:last-child:not(.footer-copyright) { display: flex; gap: 1.25rem; }
.footer-bottom a { color: inherit; text-decoration: none; }
.footer-bottom a:hover { color: #fff; }

@media (max-width: 980px) {
  .nav-shell { grid-template-columns: auto 1fr auto; gap: 1rem; }
  .primary-nav { gap: 0; }
  .nav-link, .company-trigger { padding-inline: .65rem; }
  .services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-main { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .nav-shell { min-height: 4.6rem; grid-template-columns: auto 1fr auto; padding-inline: 1rem; }
  .site-logo .brand-logo { width: 128px; }
  .header-phone span { display: none; }
  .header-phone svg { width: 1.25rem; height: 1.25rem; }
  .menu-toggle { grid-column: 2; grid-row: 1; justify-self: end; display: grid; place-content: center; gap: 6px; width: 2.6rem; height: 2.6rem; margin-right: .15rem; border: 0; background: transparent; color: #fff; cursor: pointer; }
  .menu-toggle > span:not(.sr-only) { display: block; width: 20px; height: 1px; background: currentColor; transition: transform .25s ease; }
  .menu-toggle[aria-expanded="true"] > span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); }
  .primary-nav { position: absolute; top: calc(100% + 1px); left: 0; right: 0; display: none; align-items: stretch; padding: .6rem 1rem 1rem; background: rgba(4,13,23,.94); border-bottom: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(18px); }
  .site-header.menu-open .primary-nav { display: flex; flex-direction: column; }
  .nav-link, .company-trigger { width: 100%; justify-content: space-between; padding: .9rem .2rem; }
  .nav-dropdown { position: static; display: none; width: 100%; padding: 0 0 .5rem 1rem; border: 0; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .nav-company:hover .nav-dropdown { display: none; }
  .nav-company:hover .company-trigger svg,
  .nav-company:focus-within .company-trigger svg { transform: none; }
  .nav-company.is-open .nav-dropdown { display: block; transform: none; }
  .nav-company.is-open .company-trigger svg { transform: rotate(180deg); }
  .nav-dropdown a { padding: .7rem .5rem; color: rgba(255,255,255,.86); font-weight: 600; }
  .cinematic .hero-copy { padding-top: 7rem; }
  .section-intro, .reviews-heading { grid-template-columns: 1fr; gap: 1.2rem; }
  .section-intro p, .reviews-heading p { grid-column: 1; margin-top: 0; }
  .services-section { padding: 4rem 1rem; }
  .reviews-section { padding: 4rem 1rem; }
  .services-grid { grid-template-columns: 1fr; }
  .service-card { height: 15rem; }
  .reviews-widget { min-height: 420px; padding: .5rem; }
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .site-footer { padding-inline: 1rem; }
}

@media (max-width: 520px) {
  .footer-main { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
}

/* Photo service grid, review ribbons, service map, and inner pages */
.services-title {
  width: min(1320px,100%);
  margin: 0 auto 3.25rem;
  text-align: center;
}
.services-title .eyebrow { display: block; margin-bottom: 1.15rem; color: #5d676e; }
.services-title h2 { margin: 0; font-size: clamp(4rem,9vw,8.5rem); line-height: .86; letter-spacing: -.065em; font-weight: 500; }
.service-front {
  isolation: isolate;
  overflow: hidden;
  background-image: linear-gradient(180deg,rgba(3,13,22,.08) 10%,rgba(3,13,22,.82) 100%),var(--service-image);
  background-position: center;
  background-size: cover;
  color: #fff;
}
.service-front::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(135deg,rgba(0,0,0,.08),transparent 55%); transition: background .35s ease; }
.service-front::after { z-index: 2; }
.service-front strong { position: relative; z-index: 1; text-shadow: 0 2px 18px rgba(0,0,0,.3); }
.service-front > .view-service:last-child { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; color: #fff; }
.service-front .view-service b { font-size: 1.15rem; font-weight: 400; }
.service-back { background: #0b1a27; }
@media (hover:hover) {
  .service-card:hover .service-front::before { background: linear-gradient(135deg,rgba(0,0,0,.18),rgba(0,0,0,.02) 60%); }
}

.reviews-section { overflow: hidden; padding-inline: 0; }
.reviews-heading { padding-inline: 4vw; }
.reviews-heading .text-link { display: inline-block; width: max-content; margin-top: 1.3rem; color: rgba(255,255,255,.82); font-size: .88rem; text-underline-offset: 5px; }
.review-marquees { display: grid; gap: 1rem; width: 100%; margin-top: 2.5rem; }
.review-row { overflow: hidden; -webkit-mask-image: linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image: linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.review-track { display: flex; gap: 1rem; width: max-content; animation: review-scroll 95s linear infinite; }
.review-row-reverse .review-track { animation-name: review-scroll-reverse; animation-duration: 105s; }
.review-card { width: min(390px,82vw); min-height: 230px; flex: 0 0 auto; padding: 1.45rem; border: 1px solid rgba(255,255,255,.1); border-radius: 15px; background: #f4f5f3; color: #111b25; box-shadow: 0 12px 36px rgba(0,0,0,.13); }
.review-person { display: flex; align-items: center; gap: .75rem; }
.review-person > span:last-child { display: grid; gap: .2rem; }
.review-person strong { font-size: .9rem; }
.review-person small { color: #67717a; font-size: .72rem; }
.review-avatar { display: grid; place-items: center; width: 2.55rem; height: 2.55rem; flex: 0 0 auto; border-radius: 50%; background: #0b1a27; color: #fff; font-size: .72rem; font-weight: 700; }
.review-stars { margin: 1.1rem 0 .7rem; color: #f4b400; letter-spacing: .08em; font-size: .92rem; }
.review-card p { margin: 0; color: #28333c; font-size: .9rem; line-height: 1.55; }
@keyframes review-scroll { to { transform: translateX(calc(-50% - .5rem)); } }
@keyframes review-scroll-reverse { from { transform: translateX(calc(-50% - .5rem)); } to { transform: translateX(0); } }
@media (hover:hover) { .review-row:hover .review-track { animation-play-state: paused; } }

.service-area-section { padding: 5rem 4vw 3.5rem; background: #eef0ed; color: #101d29; }
.map-heading { width: min(1320px,100%); margin: 0 auto 3.25rem; text-align: center; }
.map-heading .eyebrow { color: #58656e; }
.map-heading h2 { margin: 0 auto; font-size: clamp(2.75rem,5vw,5.25rem); line-height: .96; letter-spacing: -.05em; font-weight: 500; }
.map-heading p { margin: 1.15rem auto 0; color: #59656d; }
.map-shell { position: relative; width: min(1320px,100%); height: min(62vh,620px); min-height: 440px; margin: 0 auto; overflow: hidden; border: 1px solid #bdc5c1; border-radius: 20px; background: #d7e4e9; box-shadow: 0 24px 70px rgba(14,30,40,.12); }
#service-map { width: 100%; height: 100%; }
.map-gesture-hint { position: absolute; inset: 0; z-index: 650; display: none; place-items: center; pointer-events: none; opacity: 0; transition: opacity .18s ease; }
.map-gesture-hint span { padding: .75rem 1rem; border-radius: 8px; background: rgba(7,19,31,.9); color: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.2); font-size: .78rem; font-weight: 700; }
.map-shell.is-gesture-hint .map-gesture-hint { opacity: 1; }
.map-shell .leaflet-tile-pane { filter: saturate(.88) contrast(.96) brightness(1.03); }
.map-shell .leaflet-control-zoom { overflow: hidden; border: 1px solid rgba(12,27,39,.12); border-radius: 11px; box-shadow: 0 10px 28px rgba(12,27,39,.15); }
.map-shell .leaflet-control-zoom a { width: 38px; height: 38px; border: 0; background: rgba(255,255,255,.92); color: #101d29; font-family: Manrope,Arial,sans-serif; font-size: 1.2rem; line-height: 38px; backdrop-filter: blur(12px); }
.map-shell .leaflet-control-zoom a + a { border-top: 1px solid rgba(12,27,39,.1); }
.map-shell .leaflet-control-zoom a:hover { background: #fff; color: #18a83b; }
.map-shell .leaflet-control-attribution { padding: .28rem .5rem; border-radius: 9px 0 0; background: rgba(255,255,255,.84); color: #52616b; font-family: Manrope,Arial,sans-serif; font-size: .58rem; backdrop-filter: blur(10px); }
.map-shell .leaflet-control-attribution a { color: #243744; }
.map-key { position: absolute; left: 1rem; bottom: 1rem; z-index: 500; display: grid; gap: .25rem; max-width: calc(100% - 2rem); padding: .85rem 1rem; border: 1px solid rgba(15,31,43,.12); border-radius: 10px; background: rgba(255,255,255,.9); box-shadow: 0 10px 30px rgba(0,0,0,.12); backdrop-filter: blur(12px); }
.map-key strong { font-size: .86rem; }
.map-key span { color: #60707a; font-size: .72rem; }
.service-pin { background: transparent; border: 0; }
.service-pin span { display: block; width: 16px; height: 16px; border: 3px solid #fff; border-radius: 50%; background: #18a83b; box-shadow: 0 0 0 2px rgba(24,168,59,.28),0 5px 15px rgba(7,26,20,.25); }
.leaflet-popup-content-wrapper { border: 1px solid rgba(12,27,39,.1); border-radius: 11px; font-family: Manrope,sans-serif; box-shadow: 0 14px 34px rgba(0,0,0,.16); }
.leaflet-popup-content { margin: .8rem 1rem; font-size: .78rem; font-weight: 700; }

.inner-page { min-height: 100%; background: #eef0ed; color: #101d29; font-family: Manrope,Arial,sans-serif; }
.inner-page .site-header { position: fixed; }
.inner-hero { padding: 12rem 4vw 6rem; background: #07131f; color: #fff; }
.inner-hero > * { width: min(1320px,100%); margin-inline: auto; }
.inner-hero .eyebrow { display: block; color: rgba(255,255,255,.52); }
.inner-hero h1 { margin-block: 1.5rem 0; font-size: clamp(4rem,9vw,9rem); line-height: .86; letter-spacing: -.07em; font-weight: 500; }
.inner-hero p { max-width: 48rem; margin-top: 2rem; color: rgba(255,255,255,.68); font-size: clamp(1rem,1.5vw,1.3rem); line-height: 1.65; }
.gallery-section { padding: 1rem 1rem 7rem; background: #07131f; }
.gallery-grid { width: min(1500px,100%); margin: 0 auto; columns: 4 260px; column-gap: 1rem; }
.gallery-item { display: block; width: 100%; margin: 0 0 1rem; padding: 0; overflow: hidden; break-inside: avoid; border: 0; border-radius: 9px; background: #13222e; cursor: zoom-in; }
.gallery-item img { width: 100%; height: auto; transition: transform .6s cubic-bezier(.2,.8,.2,1),filter .4s ease; }
@media (hover:hover) { .gallery-item:hover img { transform: scale(1.025); filter: brightness(1.05); } }
.gallery-item:focus-visible { outline: 3px solid var(--shiny-green); outline-offset: 3px; }
.gallery-lightbox { width: min(92vw,1300px); max-width: none; height: min(90vh,900px); max-height: none; padding: 0; overflow: visible; border: 0; background: transparent; }
.gallery-lightbox::backdrop { background: rgba(2,8,14,.92); backdrop-filter: blur(8px); }
.gallery-lightbox img { width: 100%; height: 100%; object-fit: contain; }
.lightbox-close,.lightbox-prev,.lightbox-next { position: absolute; z-index: 2; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; background: rgba(4,13,23,.72); color: #fff; cursor: pointer; backdrop-filter: blur(12px); }
.lightbox-close { top: -2.9rem; right: 0; width: 2.5rem; height: 2.5rem; font-size: 1.5rem; }
.lightbox-prev,.lightbox-next { top: 50%; width: 3rem; height: 3rem; transform: translateY(-50%); font-size: 1.25rem; }
.lightbox-prev { left: -4rem; }.lightbox-next { right: -4rem; }

.careers-section { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem,8vw,9rem); width: min(1320px,calc(100% - 8vw)); margin: 0 auto; padding: 8rem 0; }
.form-heading h2 { margin: 1rem 0 0; font-size: clamp(2.6rem,5vw,5.2rem); line-height: .94; letter-spacing: -.055em; font-weight: 500; }
.career-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; padding: clamp(1.5rem,4vw,3.5rem); border-radius: 18px; background: #fff; box-shadow: 0 24px 70px rgba(14,30,40,.1); }
.form-heading,.form-wide { grid-column: 1 / -1; }
.form-heading { margin-bottom: 1.5rem; }
.career-form label { display: grid; gap: .55rem; color: #4d5c65; font-size: .75rem; font-weight: 700; letter-spacing: .04em; }
.career-form input,.career-form select,.career-form textarea { width: 100%; padding: .95rem 1rem; border: 1px solid #c4cbc8; border-radius: 5px; outline: 0; background: #f8f9f7; color: #101d29; font: inherit; font-size: .9rem; font-weight: 500; letter-spacing: 0; }
.career-form textarea { resize: vertical; }
.career-form input:focus,.career-form select:focus,.career-form textarea:focus { border-color: #0e7f2c; box-shadow: 0 0 0 3px rgba(24,168,59,.12); }
.resume-upload { position: relative; padding: 1rem; border: 1px dashed #aeb8b3; border-radius: 7px; background: #f8f9f7; cursor: pointer; }
.resume-upload > span { display: flex; justify-content: space-between; }
.resume-upload small { color: #7a858b; font-weight: 500; }
.resume-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.resume-upload b { color: #101d29; font-size: .9rem; }
.form-submit { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; min-height: 3.8rem; padding: 0 1.2rem; border: 0; border-radius: 5px; background: #0b1a27; color: #fff; font: inherit; font-size: .9rem; font-weight: 700; cursor: pointer; }
.form-submit:hover { background: #18a83b; }
.form-status { min-height: 1.4rem; margin: 0; color: #0b7330; font-size: .82rem; line-height: 1.5; }

@media (max-width: 900px) {
  .map-heading,.reviews-heading { grid-template-columns: 1fr; gap: 1rem; }
  .map-heading p,.reviews-heading p,.reviews-heading .text-link { grid-column: 1; }
  .review-marquees { gap: .65rem; }
  .review-card { width: clamp(210px,34vw,280px); min-height: 165px; padding: 1rem; border-radius: 12px; }
  .review-person { gap: .6rem; }
  .review-avatar { width: 2.1rem; height: 2.1rem; font-size: .62rem; }
  .review-person strong { font-size: .78rem; }
  .review-person small { font-size: .64rem; }
  .review-stars { margin: .75rem 0 .5rem; font-size: .78rem; }
  .review-card p { font-size: .76rem; line-height: 1.4; }
  .careers-section { grid-template-columns: 1fr; }
  .gallery-grid { columns: 3 220px; }
}
@media (max-width: 720px) {
  .services-title { text-align: left; }
  .services-title h2 { font-size: clamp(3.7rem,21vw,6rem); }
  .reviews-heading { padding-inline: 1rem; }
  .review-marquees { margin-top: 2rem; }
  .review-card { min-height: 165px; }
  .service-area-section { padding: 4rem 1rem 2.5rem; }
  .map-shell { height: min(60vh,520px); min-height: 420px; border-radius: 13px; }
  .inner-hero { padding: 9rem 1rem 4.5rem; }
  .inner-hero h1 { font-size: clamp(3.7rem,18vw,6.4rem); }
  .careers-section { width: calc(100% - 2rem); padding-block: 5rem; }
  .career-form { grid-template-columns: 1fr; padding: 1.25rem; }
  .career-form > * { grid-column: 1; }
  .gallery-section { padding-inline: .7rem; }
  .gallery-grid { column-gap: .7rem; }
  .gallery-item { margin-bottom: .7rem; }
  .lightbox-prev { left: .5rem; }.lightbox-next { right: .5rem; }.lightbox-close { top: .5rem; right: .5rem; }
}
@media (hover: none) and (pointer: coarse) {
  .map-gesture-hint { display: grid; }
}
@media (prefers-reduced-motion: reduce) {
  .review-track { animation-play-state: paused; }
}

/* Review-note refinements */
.site-header { z-index: 2000; }
.services-title h2 { font-size: clamp(3.5rem,7vw,6.5rem); }
.map-shell { isolation: isolate; z-index: 0; }
#service-map { position: relative; z-index: 0; }
.careers-section { display: block; width: min(980px,calc(100% - 8vw)); }
.career-form { width: 100%; }

/* Blogs */
.blogs-section { padding: 8rem 4vw 9rem; background: #eef0ed; }
.blogs-heading { width: min(1320px,100%); margin: 0 auto 3.5rem; display: grid; grid-template-columns: .55fr 1.45fr; gap: 4rem; align-items: start; }
.blogs-heading .eyebrow { color: #5b6871; }
.blogs-heading h2 { margin: 0; font-size: clamp(3.2rem,6vw,6.7rem); line-height: .9; letter-spacing: -.06em; font-weight: 500; }
.blog-grid { width: min(1320px,100%); margin: 0 auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.2rem; }
.blog-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid #c7ceca; border-radius: 12px; background: #f9faf8; }
.blog-image { display: block; aspect-ratio: 16/10; overflow: hidden; background: #ced5d1; }
.blog-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.8,.2,1),filter .4s ease; }
.blog-card-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 1.35rem; }
.blog-meta { width: 100%; display: flex; justify-content: space-between; gap: 1rem; color: #637078; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.blog-card h2 { margin: 1.15rem 0 .8rem; font-size: clamp(1.35rem,2vw,2rem); line-height: 1.08; letter-spacing: -.035em; font-weight: 600; }
.blog-card h2 a { text-decoration: none; }
.blog-card p { margin: 0 0 1.5rem; color: #56636b; font-size: .85rem; line-height: 1.6; }
.blog-read { display: flex; width: 100%; justify-content: space-between; margin-top: auto; padding-top: 1rem; border-top: 1px solid #d5dad7; color: #152433; font-size: .75rem; font-weight: 700; text-decoration: none; text-transform: uppercase; letter-spacing: .08em; }
.blog-card:first-child { grid-column: span 2; }
.blog-card:first-child .blog-image { aspect-ratio: 2/1; }
.blog-card:first-child h2 { max-width: 42rem; font-size: clamp(2rem,3.6vw,3.8rem); }
@media (hover:hover) {
  .blog-card:hover .blog-image img { transform: scale(1.035); filter: brightness(1.05); }
  .blog-card:hover .blog-read { color: #129238; }
}

@media (max-width: 900px) {
  .blog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .blog-card:first-child { grid-column: 1 / -1; }
  .blogs-heading { grid-template-columns: 1fr; gap: 1rem; }
}
@media (max-width: 720px) {
  .services-title h2 { font-size: clamp(3.3rem,16vw,4.8rem); }
  .careers-section { width: calc(100% - 2rem); }
  .blogs-section { padding: 6rem 1rem; }
  .blog-grid { grid-template-columns: 1fr; }
  .blog-card:first-child { grid-column: auto; }
  .blog-card:first-child .blog-image { aspect-ratio: 16/10; }
  .blog-card:first-child h2 { font-size: clamp(1.75rem,9vw,2.6rem); }
}

/* Antithesis-inspired editorial resource layout */
.blog-page { background: #f7f7f3; }
.learn-hero { padding: 12rem 4vw 5rem; overflow: hidden; background: radial-gradient(circle at 88% 18%,rgba(24,168,59,.13),transparent 30%),linear-gradient(135deg,#06111c 0%,#0a1724 56%,#102436 100%); color: #fff; }
.learn-hero-copy,.featured-grid,.resources-layout,.mobile-blog-filters { width: min(1320px,100%); margin-inline: auto; }
.learn-hero-copy .eyebrow { display: block; color: rgba(255,255,255,.55); }
.learn-hero-copy .eyebrow::before { content: ''; display: inline-block; width: .45rem; height: .45rem; margin-right: .7rem; border-radius: 1px; background: #28b54a; }
.learn-hero-copy h1 { max-width: 1050px; margin: 1.8rem 0 4rem; font-family: "Instrument Serif",serif; font-size: clamp(4rem,7.6vw,8.2rem); font-weight: 400; line-height: .88; letter-spacing: -.035em; }
.learn-hero-copy h1 em { display: block; color: #55cb70; font-weight: 400; }
.featured-grid { display: grid; grid-template-columns: 1.35fr .85fr; gap: 1.4rem; }
.featured-story { display: flex; min-height: 31rem; flex-direction: column; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 16px; background: #f8f8f5; color: #0d1925; text-decoration: none; }
.featured-wide { display: grid; grid-template-columns: .76fr 1.24fr; }
.featured-image { min-height: 15rem; overflow: hidden; background: #d4dad6; }
.featured-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.8,.2,1); }
.featured-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; align-items: flex-start; padding: clamp(1.35rem,2.5vw,2.3rem); }
.featured-meta,.resource-meta { display: flex; align-items: center; gap: .8rem; color: #4f5c65; font-size: .71rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.featured-meta span,.resource-meta span { padding: .28rem .45rem; border: 1px solid #aeb7b2; border-radius: 4px; color: #142331; }
.featured-copy h2 { margin: 1.2rem 0 .9rem; font-size: clamp(1.8rem,3vw,3rem); line-height: 1.02; letter-spacing: -.045em; font-weight: 600; }
.featured-copy p { margin: 0 0 1.5rem; color: #52616a; font-size: .93rem; line-height: 1.65; }
.featured-copy b { display: flex; width: 100%; justify-content: space-between; margin-top: auto; padding-top: 1rem; border-top: 1px solid #d3d8d5; font-size: .73rem; letter-spacing: .09em; text-transform: uppercase; }
.featured-copy b i { font-style: normal; font-size: 1rem; }
@media (hover:hover) { .featured-story:hover .featured-image img { transform: scale(1.035); } .featured-story:hover .featured-copy b { color: #168e35; } }

.resources-section { padding: 7rem 4vw 9rem; background-color: #f7f7f3; background-image: radial-gradient(rgba(25,58,77,.065) 1.2px,transparent 1.2px); background-size: 27px 27px; }
.resources-layout { display: grid; grid-template-columns: 230px minmax(0,1fr); gap: clamp(2.5rem,7vw,7rem); align-items: start; }
.blog-filter-panel { position: sticky; top: 7.5rem; display: grid; gap: 3.3rem; }
.filter-group { display: flex; flex-direction: column; align-items: stretch; padding-left: 1.4rem; border-left: 1px solid #ccd1ce; }
.filter-label { margin: 0 0 1rem; color: #69757c; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.filter-group button { position: relative; padding: .42rem 0; border: 0; background: transparent; color: #68737a; font: inherit; font-size: .8rem; text-align: left; cursor: pointer; }
.filter-group button::before { content: ''; position: absolute; left: -1.58rem; top: 50%; width: .45rem; height: .45rem; border-radius: 1px; background: transparent; transform: translateY(-50%); }
.filter-group button.is-active { color: #0b1a27; font-weight: 700; }
.filter-group button.is-active::before { background: #1aaa3d; }
.resource-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.4rem; }
.resource-card { overflow: hidden; border: 1px solid #cbd1cd; border-radius: 15px; background: #f8f8f5; }
.resource-card[hidden] { display: none; }
.resource-image { display: block; aspect-ratio: 16/9; overflow: hidden; background: #d2d8d4; }
.resource-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.resource-copy { min-height: 10.5rem; padding: 1.3rem; }
.resource-meta { gap: .75rem; }
.resource-copy h2 { margin: 1rem 0 0; font-size: clamp(1.35rem,2vw,2rem); line-height: 1.12; letter-spacing: -.035em; font-weight: 600; }
.resource-copy h2 a { text-decoration: none; }
@media (hover:hover) { .resource-card:hover .resource-image img { transform: scale(1.04); } .resource-card:hover { border-color: #8f9d95; } }
.mobile-blog-filters { display: none; }

@media (max-width: 980px) {
  .featured-grid { grid-template-columns: 1fr; }
  .featured-wide { grid-template-columns: .9fr 1.1fr; }
  .featured-story:not(.featured-wide) { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 24rem; }
  .resources-layout { grid-template-columns: 190px minmax(0,1fr); gap: 2rem; }
  .resource-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .learn-hero { padding: 9rem 1rem 3.5rem; }
  .learn-hero-copy h1 { margin: 1.5rem 0 2.6rem; font-size: clamp(3.7rem,18vw,5.5rem); line-height: .9; }
  .featured-grid { gap: 1rem; }
  .featured-story,.featured-wide,.featured-story:not(.featured-wide) { display: flex; min-height: 0; flex-direction: column; }
  .featured-image { min-height: 0; aspect-ratio: 16/9; }
  .featured-copy h2 { font-size: clamp(1.7rem,8vw,2.4rem); }
  .resources-section { padding: 3rem 1rem 6rem; }
  .blog-filter-panel { display: none; }
  .resources-layout { display: block; }
  .mobile-blog-filters { display: grid; grid-template-columns: 1fr auto; gap: .7rem; margin-bottom: 2rem; }
  .mobile-blog-filters label { display: block; }
  .mobile-blog-filters select { width: 100%; min-height: 3rem; padding: 0 2.5rem 0 .9rem; border: 1px solid #c8ceca; border-radius: 7px; background: rgba(255,255,255,.82); color: #152330; font: inherit; font-size: .8rem; font-weight: 600; }
  .resource-grid { gap: 1.15rem; }
  .resource-copy { min-height: 9rem; }
  .resource-copy h2 { font-size: clamp(1.45rem,7vw,2rem); }
}

/* Antithesis-inspired company story */
.about-page { background: #07131f; color: #fff; font-family: "Manrope",sans-serif; }
.about-page .about-kicker { display: block; color: rgba(255,255,255,.58); font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.about-page .about-kicker::before { content: ''; display: inline-block; width: .45rem; height: .45rem; margin-right: .72rem; border-radius: 1px; background: #41bd5e; vertical-align: .05rem; }
.about-hero { position: relative; min-height: 100svh; display: grid; align-items: end; overflow: hidden; background: #07131f; }
.about-hero-image,.about-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.about-hero-image { object-fit: cover; object-position: 76% 24%; }
.about-hero-shade { background: linear-gradient(90deg,rgba(4,13,23,.64) 0%,rgba(4,13,23,.42) 43%,rgba(4,13,23,.1) 80%),linear-gradient(0deg,rgba(4,13,23,.55),transparent 60%); }
.about-hero-copy { position: relative; z-index: 1; width: min(1320px,100%); margin: 0 auto; padding: 12rem 4vw 6.5rem; }
.about-hero-copy h1 { max-width: 1080px; margin: 0 0 2.1rem; font-family: "Manrope",sans-serif; font-size: clamp(3.4rem,6vw,6.4rem); font-weight: 500; line-height: .96; letter-spacing: -.06em; }
.about-hero-copy h1 em { display: block; color: #55cb70; font: inherit; }
.about-hero-copy > p { max-width: 690px; margin: 0 0 2.2rem; color: rgba(255,255,255,.82); font-size: clamp(1.05rem,1.45vw,1.35rem); line-height: 1.55; }
.about-action { display: inline-flex; min-height: 3.5rem; align-items: center; gap: .75rem; padding: .8rem 1.2rem; border-radius: 7px; background: #40b95a; color: #06111c; font-size: .84rem; font-weight: 700; text-decoration: none; transition: background .2s ease,color .2s ease; }
.about-action:hover,.about-action:focus-visible { background: #71d586; }
.about-action > span { font-size: 1rem; }

.about-story { padding: 8rem 4vw 9rem; background: #0b1723; }
.about-story-inner { width: min(1320px,100%); margin: 0 auto; display: grid; grid-template-columns: .58fr 1.42fr; gap: clamp(3rem,8vw,9rem); align-items: start; }
.about-story-copy { max-width: 920px; }
.about-story-copy p { margin: 0 0 2.1rem; font-size: clamp(1.65rem,2.7vw,3.15rem); line-height: 1.23; letter-spacing: -.035em; }
.about-story-copy p:last-child { margin-bottom: 0; }

.about-history { position: relative; padding: 8rem 4vw 10rem; overflow: hidden; background: radial-gradient(circle at 50% 26%,rgba(65,189,94,.10),transparent 29%),#0b1723; }
.about-section-heading { width: min(1320px,100%); margin: 0 auto 4.5rem; }
.about-section-heading h2 { max-width: 1000px; margin: 1.2rem 0 0; font-family: "Manrope",sans-serif; font-size: clamp(3rem,6vw,6.2rem); font-weight: 500; line-height: .95; letter-spacing: -.06em; }
.history-line { position: absolute; top: 29rem; bottom: 8rem; left: 50%; width: 1px; background: rgba(255,255,255,.17); }
.history-list { position: relative; width: min(1120px,100%); margin: 0 auto; padding: 0; list-style: none; display: grid; gap: 4rem; }
.history-card { position: relative; width: calc(50% - 2.6rem); overflow: hidden; border: 1px solid rgba(85,203,112,.55); border-radius: 14px; background: #101e2b; }
.history-card:nth-child(even) { justify-self: end; }
.history-card::after { content: ''; position: absolute; top: 50%; width: 5.2rem; height: 1px; background: rgba(255,255,255,.2); }
.history-card:nth-child(odd)::after { left: 100%; }.history-card:nth-child(even)::after { right: 100%; }
.history-card img { width: 100%; height: 15rem; object-fit: cover; filter: saturate(.65) contrast(1.06); }
.history-card > div { position: relative; padding: 1.4rem 1.5rem 1.6rem; background: linear-gradient(180deg,#132433,#0e1a26); }
.history-card > div > span { color: #63cc78; font-size: .67rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.history-card h3 { margin: .7rem 0 .55rem; font-family: "Manrope",sans-serif; font-size: clamp(2rem,3vw,3.1rem); font-weight: 500; line-height: .98; letter-spacing: -.05em; }
.history-card p { margin: 0; color: rgba(255,255,255,.67); font-size: .88rem; line-height: 1.6; }

.about-team { padding: 8rem 4vw 10rem; background: #f4f5f0; color: #0c1a27; }
.about-team .about-kicker { color: #637078; }
.about-team .about-kicker::before { background: #1aaa3d; }
.team-group { width: min(1320px,100%); margin: 0 auto 5rem; }
.team-group:last-child { margin-bottom: 0; }
.team-group > h3 { margin: 0 0 1.35rem; color: #617078; font-size: .72rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.team-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(1rem,2vw,1.5rem); }
.team-card { overflow: hidden; border: 1px solid #ccd2ce; border-radius: 13px; background: #fff; }
.team-card img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.team-card > div { min-height: 6.5rem; display: flex; flex-direction: column; justify-content: center; gap: .35rem; padding: 1.25rem 1.35rem; background: linear-gradient(135deg,#eef7ef,#d9e9dd); }
.team-card strong { font-size: clamp(1.15rem,1.9vw,1.6rem); line-height: 1.1; letter-spacing: -.03em; }
.team-card span { color: #52616a; font-size: .82rem; }

@media (max-width: 900px) {
  .about-story-inner { grid-template-columns: 1fr; gap: 2.5rem; }
}
@media (max-width: 720px) {
  .about-hero { min-height: 100svh; }
  .about-hero-image { top: -12%; height: 112%; object-position: 74% center; }
  .about-hero-shade { background: linear-gradient(0deg,rgba(4,13,23,.78) 0%,rgba(4,13,23,.48) 61%,rgba(4,13,23,.14) 100%); }
  .about-hero-copy { padding: 9rem 1rem 4.5rem; }
  .about-hero-copy h1 { font-size: clamp(3rem,13.5vw,4.4rem); line-height: .97; }
  .about-story,.about-history,.about-team { padding: 6rem 1rem; }
  .about-story-copy p { font-size: clamp(1.55rem,7vw,2.15rem); }
  .about-section-heading { margin-bottom: 3rem; }
  .about-section-heading h2 { font-size: clamp(3rem,13.5vw,4.6rem); }
  .history-line { left: 1.35rem; top: 23rem; bottom: 5rem; }
  .history-list { gap: 1.5rem; padding-left: 2.4rem; }
  .history-card,.history-card:nth-child(even) { width: 100%; justify-self: auto; }
  .history-card::after,.history-card:nth-child(even)::after { top: 2.2rem; right: 100%; left: auto; width: 2.4rem; }
  .history-card img { height: 12.5rem; }
  .team-grid { grid-template-columns: 1fr; gap: 1rem; }
  .team-card { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.12fr); }
  .team-card img { height: 100%; aspect-ratio: 4/5; }
  .team-card > div { min-height: 0; }
  .team-group { margin-bottom: 4rem; }
}

/* Compact page rhythm and native estimate flow */
.inner-hero { padding: 9.5rem 4vw 4rem; }
.gallery-section { padding-bottom: 5rem; }
.careers-section { padding: 4.5rem 0 5.5rem; }
.learn-hero { padding: 9.5rem 4vw 3.75rem; }
.learn-hero-copy h1 {
  max-width: 1080px;
  margin: 0 0 3.2rem;
  font-family: "Manrope", sans-serif;
  font-size: clamp(3.6rem, 6.3vw, 6.8rem);
  font-style: normal;
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.055em;
}
.learn-hero-copy h1 span { color: #55cb70; font: inherit; }
.resources-section { padding: 5rem 4vw 6.5rem; }
.about-story { padding: 6rem 4vw; }
.about-history { padding: 6rem 4vw 7rem; }
.about-team { padding: 5.5rem 4vw 7rem; }
.about-section-heading { margin-bottom: 3.2rem; }
.team-group { margin-bottom: 3.75rem; }

.estimate-section {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  width: 100%;
  margin: 0 auto;
  padding: clamp(3.5rem, 5vw, 5rem) max(4vw, calc((100vw - 1320px) / 2));
  background: #eef1ed;
  color: #0b1926;
}
.estimate-section > * { width: 100%; max-width: none; }
.estimate-intro { justify-self: auto; }
.estimate-intro h2 { width: 100%; max-width: none; margin: 0; font-size: clamp(1.35rem, 4.5vw, 4.75rem); font-weight: 500; line-height: .96; letter-spacing: -.055em; white-space: nowrap; }
.estimate-intro > p { max-width: 35rem; margin: 0; color: #56646d; font-size: clamp(1rem, 1.4vw, 1.22rem); line-height: 1.65; }
.estimate-contact { display: flex; gap: .65rem; margin-top: 1.5rem; font-size: .9rem; }
.estimate-contact span { color: #6c777d; }
.estimate-contact a { color: #0b1926; font-weight: 700; text-underline-offset: 4px; }
.estimate-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.1rem; padding: clamp(1.5rem,3vw,2.5rem); border: 1px solid #c7cfca; border-radius: 14px; background: rgba(255,255,255,.8); box-shadow: 0 22px 55px rgba(10,28,39,.08); }
.estimate-form .field { display: flex; flex-direction: column; gap: .45rem; }
.estimate-form .field-wide { grid-column: 1 / -1; }
.estimate-form label { color: #4f5d66; font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
.estimate-form input,.estimate-form select,.estimate-form textarea { width: 100%; min-height: 3.25rem; padding: .78rem .9rem; border: 1px solid #c7cfca; border-radius: 6px; background: #fff; color: #0b1926; font: inherit; font-size: .9rem; }
.estimate-form textarea { min-height: 8rem; resize: vertical; }
.estimate-form input:focus,.estimate-form select:focus,.estimate-form textarea:focus { outline: 2px solid #29a84a; outline-offset: 2px; border-color: transparent; }
.estimate-form-footer { display: flex; align-items: center; gap: 1.25rem; margin-top: .25rem; }
.estimate-form button { min-height: 3.3rem; padding: .8rem 1.15rem; border: 0; border-radius: 6px; background: #0b1926; color: #fff; font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.estimate-form button span { margin-left: .55rem; }
.estimate-form button:hover,.estimate-form button:focus-visible { background: #1aa23d; color: #06111c; }
.estimate-form .form-status { margin: 0; color: #506069; font-size: .78rem; line-height: 1.45; }

.home-faq { display: grid; grid-template-columns: minmax(220px,.42fr) minmax(0,1fr); gap: clamp(2.5rem,7vw,7rem); padding: clamp(4.5rem,7vw,7rem) max(4vw,calc((100vw - 1320px)/2)); background: #e2e7e2; color: #0b1926; }
.home-faq-heading h2 { max-width: 420px; margin: 0; font-size: clamp(2.5rem,4.5vw,4.75rem); font-weight: 500; line-height: .96; letter-spacing: -.055em; }
.home-faq-list { border-top: 1px solid #bbc5bf; }
.home-faq details { border-bottom: 1px solid #bbc5bf; }
.home-faq summary { position: relative; padding: 1.4rem 3rem 1.4rem 0; font-size: clamp(1.05rem,1.6vw,1.3rem); font-weight: 650; cursor: pointer; list-style: none; }
.home-faq summary::-webkit-details-marker { display: none; }
.home-faq summary::after { content: "+"; position: absolute; right: .2rem; top: 1.15rem; color: #199d3f; font-size: 1.6rem; font-weight: 400; }
.home-faq details[open] summary::after { content: "−"; }
.home-faq details p { max-width: 760px; margin: 0; padding: 0 0 1.5rem; color: #52616a; line-height: 1.7; }

/* Locally hosted article pages */
.article-body { background: #f4f5f0; color: #0b1926; }
.article-body .site-header,.article-body .site-header.is-scrolled { background: rgba(4,13,23,.96); border-color: rgba(255,255,255,.12); box-shadow: 0 12px 32px rgba(2,8,14,.2); }
.article-page { padding-top: 5.6rem; }
.article-hero { padding: 5rem 4vw 4.5rem; background: #07131f; color: #fff; }
.article-hero > * { display: block; width: min(1040px,100%); margin-inline: auto; }
.article-back { margin-bottom: 3.5rem; color: rgba(255,255,255,.65); font-size: .78rem; text-decoration: none; }
.article-hero > span { color: #61cd78; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.article-hero h1 { margin-block: 1.1rem 1.5rem; font-size: clamp(3rem, 6.8vw, 7rem); font-weight: 500; line-height: .94; letter-spacing: -.06em; }
.article-hero time { color: rgba(255,255,255,.56); font-size: .78rem; }
.article-hero-image { width: min(1180px,100%); max-height: 42rem; margin-top: 3rem; border-radius: 14px; object-fit: cover; }
.article-layout { display: grid; grid-template-columns: minmax(0,760px) 260px; gap: clamp(3rem,7vw,7rem); width: min(1100px,calc(100% - 8vw)); margin: 0 auto; padding: 5.5rem 0 7rem; align-items: start; }
.article-content { color: #26343e; font-size: clamp(1rem,1.35vw,1.13rem); line-height: 1.78; }
.article-content p { margin: 0 0 1.35rem; }
.article-content h2 { margin: 3.2rem 0 1rem; color: #0b1926; font-size: clamp(2rem,3.6vw,3.3rem); font-weight: 600; line-height: 1.04; letter-spacing: -.045em; }
.article-content h3 { margin: 2.5rem 0 .8rem; color: #0b1926; font-size: clamp(1.5rem,2.4vw,2.15rem); line-height: 1.12; }
.article-content ul,.article-content ol { margin: 0 0 1.6rem; padding-left: 1.3rem; }
.article-content li { margin-bottom: .55rem; }
.article-content a { color: #168d34; text-underline-offset: 3px; }
.article-content blockquote { margin: 2rem 0; padding: 1.2rem 1.5rem; border-left: 3px solid #24a447; background: #e6ece7; }
.article-aside { position: sticky; top: 7rem; padding: 1.4rem; border: 1px solid #cbd2cd; border-radius: 10px; background: #fff; }
.article-aside strong { font-size: 1.2rem; line-height: 1.15; }
.article-aside p { color: #5a6870; font-size: .82rem; line-height: 1.55; }
.article-aside a { display: inline-flex; padding: .7rem .9rem; border-radius: 5px; background: #1aaa3d; color: #07131f; font-size: .75rem; font-weight: 700; text-decoration: none; }

@media (max-width: 800px) {
  .inner-hero { padding: 8.25rem 1rem 3rem; }
  .gallery-section { padding-bottom: 4rem; }
  .careers-section { width: calc(100% - 2rem); padding: 3rem 0 4rem; }
  .learn-hero { padding: 8.25rem 1rem 3rem; }
  .learn-hero-copy h1 { margin-bottom: 2.5rem; font-size: clamp(3.1rem,13.5vw,4.8rem); line-height: .98; }
  .resources-section { padding: 3.5rem 1rem 5rem; }
  .about-story,.about-history,.about-team { padding: 4rem 1rem; }
  .about-section-heading { margin-bottom: 2.4rem; }
  .team-group { margin-bottom: 3rem; }
  .estimate-section { grid-template-columns: 1fr; gap: 2.5rem; width: 100%; padding: 3rem 1rem; }
  .estimate-intro { justify-self: auto; }
  .estimate-form { grid-template-columns: 1fr; padding: 1.25rem; }
  .estimate-form .field-wide { grid-column: auto; }
  .estimate-form-footer { align-items: flex-start; flex-direction: column; }
  .home-faq { grid-template-columns: 1fr; gap: 2.5rem; padding: 4rem 1rem; }
  .article-hero { padding: 3.5rem 1rem 3rem; }
  .article-back { margin-bottom: 2.5rem; }
  .article-hero h1 { font-size: clamp(2.8rem,13vw,4.6rem); }
  .article-layout { display: block; width: calc(100% - 2rem); padding: 3.5rem 0 5rem; }
  .article-aside { position: static; margin-top: 3rem; }
}
.estimate-form select[multiple] { min-height: 9.2rem; padding: .35rem; }
.estimate-form select[multiple] option { padding: .48rem .55rem; border-radius: 4px; }
.estimate-form .field small { color: #78838a; font-size: .68rem; }
.estimate-consent { display: grid; grid-template-columns: 1.1rem minmax(0,1fr); align-items: start; gap: .7rem; color: #59676f; font-size: .75rem; line-height: 1.5; }
.estimate-consent input[type="checkbox"] { width: 1.1rem; min-height: 0; height: 1.1rem; margin: .05rem 0 0; padding: 0; border: 0; border-radius: 0; accent-color: #1aa23d; }
.estimate-consent span { display: block; }
.service-area-section { padding-bottom: 3.5rem; }
.service-area-section + .estimate-section { padding-top: 3.5rem; }
@media (max-width: 800px) {
  .service-area-section { padding-bottom: 2.5rem; }
  .service-area-section + .estimate-section { padding-top: 2.5rem; }
}

/* Dedicated services and contact pages */
.services-page,.contact-page { background: #eef1ed; }
.services-page .site-header,
.services-page .site-header.is-scrolled { background: #07131f !important; border-color: rgba(255,255,255,.12); box-shadow: 0 12px 32px rgba(2,8,14,.16); backdrop-filter: none !important; }
.services-page-hero,.contact-hero { padding-bottom: 5rem; }
.services-page-hero h1,.contact-hero h1 { max-width: 1100px; }
.services-catalog { padding-top: clamp(8rem, 12vw, 11rem); }
.services-catalog::before { display: none; }
.services-catalog .services-title { margin-bottom: clamp(3rem,5vw,5rem); }
.services-catalog .services-title h1 { margin: 0; font-size: clamp(1.35rem,4.2vw,4.8rem); font-weight: 500; line-height: 1; letter-spacing: -.055em; white-space: nowrap; }
.services-catalog .services-title p { margin: 1.25rem 0 0; color: #5d676e; font-size: .95rem; }

.contact-hero { padding-bottom: 4rem; }
.contact-hero-details { display: grid; grid-template-columns: .85fr 1.35fr 1.35fr 1fr; margin-top: 2.75rem; }
.contact-hero-details > * { display: grid; align-content: start; gap: .7rem; min-width: 0; padding: 1.4rem 1.5rem 0 0; color: inherit; text-decoration: none; }
.contact-hero-details > * + * { padding-left: 1.5rem; border-left: 1px solid rgba(255,255,255,.18); }
.contact-hero-details span { color: rgba(255,255,255,.5); font-size: .67rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.contact-hero-details strong { color: rgba(255,255,255,.9); font-size: .9rem; line-height: 1.55; overflow-wrap: anywhere; }
.contact-hero-details > a:nth-child(2) strong { font-size: .84rem; letter-spacing: -.015em; }
.contact-hero-details a:hover strong,.contact-hero-details a:focus-visible strong { color: #62ce7a; }
.contact-page-layout { width: min(860px,calc(100% - 8vw)); margin: 0 auto; padding: 5rem 0 6rem; }
.contact-form { width: 100%; max-width: none; }
.contact-form-heading { margin-bottom: .35rem; }
.contact-form-heading .eyebrow { color: #65717a; }
.contact-form-heading h2 { margin: .8rem 0 0; font-size: clamp(2.5rem,4vw,4.5rem); font-weight: 500; line-height: .95; letter-spacing: -.055em; }
.contact-form textarea { min-height: 11rem; }

@media (max-width: 800px) {
  .services-page-hero,.contact-hero { padding-bottom: 3.5rem; }
  .services-catalog { padding-top: 8rem; }
  .contact-hero-details { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 2rem; }
  .contact-hero-details > * { padding: 1.2rem 1rem 1.2rem 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .contact-hero-details > * + * { padding-left: 1rem; }
  .contact-hero-details > *:nth-child(odd) { padding-left: 0; border-left: 0; }
  .contact-page-layout { width: calc(100% - 2rem); padding: 4rem 0 5rem; }
}

/* Service area directory and local landing pages */
.locations-page,.location-page { background: #eef1ed; color: #0b1926; }
.locations-page .site-header,.locations-page .site-header.is-scrolled,.location-page .site-header,.location-page .site-header.is-scrolled { background: rgba(4,13,23,.96); border-color: rgba(255,255,255,.12); box-shadow: 0 12px 32px rgba(2,8,14,.16); }
.locations-hero { padding-bottom: 4rem; }
.locations-directory { width: min(1320px,calc(100% - 8vw)); margin: 0 auto; padding: 5rem 0 6rem; }
.location-state-group { display: grid; grid-template-columns: minmax(220px,.42fr) minmax(0,1fr); gap: clamp(2rem,7vw,7rem); padding: 3.5rem 0; border-top: 1px solid #c9d0cc; }
.location-state-group:first-child { padding-top: 0; border-top: 0; }
.location-state-group .eyebrow { color: #637079; }
.location-state-group h2 { max-width: 25rem; margin: 1rem 0 0; font-size: clamp(2.1rem,3.8vw,4rem); font-weight: 500; line-height: .98; letter-spacing: -.05em; }
.location-state-content { display: grid; gap: 1.75rem; }
.location-card-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.location-card { position: relative; display: grid; min-height: 8.5rem; padding: 1.15rem; overflow: hidden; border: 1px solid #c8cfcb; border-radius: 10px; background: rgba(255,255,255,.75); color: #0b1926; text-decoration: none; }
.location-card span { align-self: end; font-size: 1.2rem; font-weight: 650; }
.location-card small { position: absolute; top: 1rem; left: 1.15rem; color: #69757b; font-size: .68rem; font-weight: 700; letter-spacing: .12em; }
.location-card b { position: absolute; right: 1rem; bottom: .95rem; font-size: 1rem; font-weight: 400; transition: transform .2s ease; }
.location-card:hover,.location-card:focus-visible { border-color: #1aa343; background: #dff1e3; outline: 0; }
.location-card:hover b,.location-card:focus-visible b { transform: translate(3px,-3px); }
.location-coverage { padding-top: 1.4rem; border-top: 1px solid #c9d0cc; }
.location-coverage > p { margin: 0 0 .85rem; color: #637079; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.location-coverage > div { display: flex; flex-wrap: wrap; gap: .55rem; }
.location-coverage span { padding: .55rem .75rem; border: 1px solid #c8cfcb; border-radius: 999px; background: rgba(255,255,255,.45); color: #495760; font-size: .78rem; }

.breadcrumbs { display: flex; align-items: center; gap: .55rem; width: min(1320px,calc(100% - 8vw)); margin: 0 auto; padding-top: 6.5rem; color: #647078; font-size: .72rem; }
.breadcrumbs a { color: inherit; text-underline-offset: 3px; }
.location-hero { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 48rem; background: #07131f; color: #fff; }
.location-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(4rem,7vw,7rem) 4vw clamp(4rem,7vw,7rem) max(4vw,calc((100vw - 1320px)/2)); }
.location-hero-copy .eyebrow { color: #62ce7a; }
.location-hero-copy h1 { max-width: 900px; margin: 1.35rem 0 1.6rem; font-size: clamp(3.5rem,6.5vw,7.4rem); font-weight: 500; line-height: .91; letter-spacing: -.065em; }
.location-hero-copy > p { max-width: 47rem; margin: 0; color: rgba(255,255,255,.7); font-size: clamp(1rem,1.35vw,1.2rem); line-height: 1.65; }
.location-hero-photo { min-height: 35rem; overflow: hidden; }
.location-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 57% center; }
.location-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem; margin-top: 2.25rem; }
.location-actions .cta { min-width: 10rem; justify-content: center; }
.location-estimate { border-color: #4dcc70; background: #4dcc70; color: #07131f; }
.location-book { border-color: rgba(255,255,255,.4); color: #fff; }
.location-call { color: inherit; font-size: .9rem; font-weight: 700; text-underline-offset: 5px; }

.location-intro,.nearby-locations { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(3rem,8vw,8rem); width: min(1320px,calc(100% - 8vw)); margin: 0 auto; padding: clamp(4.5rem,7vw,7rem) 0; }
.location-intro .eyebrow,.nearby-locations .eyebrow,.location-section-heading .eyebrow { color: #637079; }
.location-intro h2,.nearby-locations h2,.location-section-heading h2 { margin: 1rem 0 0; font-size: clamp(2.7rem,5vw,5.5rem); font-weight: 500; line-height: .95; letter-spacing: -.055em; }
.location-intro > div:last-child { padding-top: 1.5rem; color: #52616a; font-size: clamp(1rem,1.25vw,1.13rem); line-height: 1.75; }
.location-intro p { margin: 0 0 1.4rem; }

.location-services { padding: clamp(4.5rem,7vw,7rem) 4vw; background: #07131f; color: #fff; }
.location-section-heading { display: grid; grid-template-columns: 1fr auto; gap: 2rem; width: min(1320px,100%); margin: 0 auto 3rem; align-items: end; }
.location-section-heading .eyebrow { grid-column: 1 / -1; color: rgba(255,255,255,.52); }
.location-section-heading h2 { max-width: 850px; margin-top: 0; }
.location-section-heading > a { color: rgba(255,255,255,.75); font-size: .78rem; text-underline-offset: 5px; }
.location-services-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; width: min(1320px,100%); margin: 0 auto; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.16); }
.location-service-card { position: relative; display: grid; grid-template-columns: 7.5rem 1fr; min-height: 10.5rem; background: #0c1b29; color: #fff; text-decoration: none; }
.location-service-card img { width: 100%; height: 100%; object-fit: cover; opacity: .72; }
.location-service-card > span { position: relative; display: flex; flex-direction: column; justify-content: center; padding: 1.25rem 2.5rem 1.25rem 1.25rem; }
.location-service-card strong { font-size: 1.05rem; }
.location-service-card small { margin-top: .6rem; color: rgba(255,255,255,.58); font-size: .74rem; line-height: 1.5; }
.location-service-card b { position: absolute; right: 1rem; top: 1rem; font-weight: 400; transition: transform .2s ease; }
.location-service-card:hover,.location-service-card:focus-visible { background: #123023; outline: 0; }
.location-service-card:hover b,.location-service-card:focus-visible b { transform: translate(3px,-3px); }

.location-process,.location-faq { padding: clamp(4.5rem,7vw,7rem) 4vw; }
.location-process .location-section-heading,.location-faq .location-section-heading { display: block; color: #0b1926; }
.location-process .location-section-heading .eyebrow,.location-faq .location-section-heading .eyebrow { color: #637079; }
.location-process ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: min(1320px,100%); margin: 0 auto; padding: 0; border-top: 1px solid #c8cfcb; list-style: none; }
.location-process li { min-height: 18rem; padding: 1.5rem; border-right: 1px solid #c8cfcb; }
.location-process li:last-child { border-right: 0; }
.location-process li > span { color: #199d3f; font-size: .72rem; font-weight: 700; letter-spacing: .1em; }
.location-process li > div { margin-top: 5rem; }
.location-process h3 { margin: 0 0 .8rem; font-size: clamp(1.7rem,2.4vw,2.5rem); font-weight: 600; letter-spacing: -.04em; }
.location-process p { max-width: 25rem; margin: 0; color: #5c6870; font-size: .88rem; line-height: 1.65; }

.location-faq { background: #e2e7e2; }
.location-faq-list { width: min(1320px,100%); margin: 0 auto; border-top: 1px solid #bbc5bf; }
.location-faq details { border-bottom: 1px solid #bbc5bf; }
.location-faq summary { position: relative; padding: 1.4rem 3rem 1.4rem 0; font-size: clamp(1.05rem,1.6vw,1.3rem); font-weight: 650; cursor: pointer; list-style: none; }
.location-faq summary::-webkit-details-marker { display: none; }
.location-faq summary::after { content: "+"; position: absolute; right: .2rem; top: 1.15rem; color: #199d3f; font-size: 1.6rem; font-weight: 400; }
.location-faq details[open] summary::after { content: "−"; }
.location-faq details p { max-width: 760px; margin: 0; padding: 0 0 1.5rem; color: #52616a; line-height: 1.7; }

.nearby-locations { border-bottom: 1px solid #c8cfcb; }
.nearby-location-links { display: grid; border-top: 1px solid #c8cfcb; }
.nearby-location-links a { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid #c8cfcb; color: #0b1926; font-size: 1rem; text-decoration: none; }
.nearby-location-links a:hover,.nearby-location-links a:focus-visible { color: #168d34; }
.location-final { padding: clamp(4rem,7vw,7rem) 4vw; background: #48ca6d; color: #07131f; text-align: center; }
.location-final h2 { max-width: 950px; margin: 0 auto; font-size: clamp(3rem,6vw,6.5rem); font-weight: 500; line-height: .92; letter-spacing: -.06em; }
.location-final > p { max-width: 42rem; margin: 1.3rem auto 0; font-size: 1rem; line-height: 1.65; }
.location-final .location-actions { justify-content: center; }
.location-final .location-estimate { border-color: #07131f; background: #07131f; color: #fff; }

.map-heading .locations-link { display: inline-block; margin-top: 1.2rem; color: #0b1926; font-size: .82rem; font-weight: 700; text-underline-offset: 5px; }
.map-popup-link { display: grid; gap: .15rem; color: #0b1926; text-decoration: none; }
.map-popup-link strong { font-size: .82rem; }
.map-popup-link span { color: #168d34; font-size: .68rem; font-weight: 700; }
.not-found-page { min-height: 100svh; overflow-x: clip; background: #07131f; color: #fff; }
.not-found-main { width: 100%; min-height: 0; padding-top: 4.5rem; overflow: hidden; background: radial-gradient(circle at 18% 88%,rgba(255,255,255,.045),transparent 32%),#07131f; }
.not-found-intro { display: grid; width: min(1180px,calc(100% - 3rem)); min-height: calc(100svh - 4.5rem); margin: 0 auto; padding: clamp(3.5rem,8vh,6rem) 0 clamp(4rem,9vh,7rem); }
.not-found-intro[hidden] { display: none; }
.not-found-copy { align-self: center; max-width: 65rem; }
.not-found-copy .eyebrow { display: block; margin-bottom: clamp(1.1rem,2vw,1.6rem); color: #68d682; }
.not-found-copy h1 { max-width: 14ch; margin: 0; color: #fff; font-size: clamp(4rem,7.1vw,7.6rem); font-weight: 400; line-height: 1; letter-spacing: -.065em; text-wrap: balance; }
.not-found-copy h1 span { color: #68d682; }
.not-found-copy p { max-width: 48rem; margin: clamp(1.75rem,4vw,3rem) 0 0; color: rgba(255,255,255,.72); font-size: clamp(1rem,1.45vw,1.28rem); line-height: 1.55; }
.not-found-play { margin-top: clamp(1.5rem,3vw,2.25rem); padding: .95rem 1.4rem; border: 1px solid #68d682; border-radius: 3px; background: #68d682; color: #07131f; font: inherit; font-size: .84rem; font-weight: 800; cursor: pointer; transition: background .2s ease,color .2s ease; }
.not-found-play:hover,.not-found-play:focus-visible { background: transparent; color: #fff; }
.not-found-play:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }
.carpet-game[hidden] { display: none; }
.carpet-game { position: relative; display: grid; grid-template-rows: 1fr; width: 100%; height: clamp(36rem,72svh,52rem); overflow: hidden; background: #d7bd86; }
.game-meter { position: absolute; top: clamp(.75rem,2vw,1.25rem); right: clamp(.75rem,2vw,1.25rem); z-index: 4; display: flex; align-items: center; gap: .65rem; width: min(16rem,calc(100vw - 2rem)); padding: .68rem .8rem; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; background: rgba(7,19,31,.88); box-shadow: 0 12px 34px rgba(0,0,0,.28); backdrop-filter: blur(10px); }
.game-meter strong { min-width: 2.5rem; color: #fff; font-size: .72rem; text-align: right; }
.game-progress { width: 100%; height: .48rem; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.15); }
.game-progress span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#35b959,#82e59a); transition: width .15s ease; }
.carpet-game-stage { position: relative; width: 100%; height: 100%; min-height: 0; overflow: hidden; background: #d7bd86; }
#carpet-cleaning-game { display: block; width: 100%; height: 100%; min-height: 0; cursor: grab; touch-action: none; }
#carpet-cleaning-game:active { cursor: grabbing; }
#carpet-cleaning-game:focus-visible { outline: 4px solid #62ce7a; outline-offset: -5px; }
.game-prize { position: absolute; inset: 50% auto auto 50%; z-index: 2; width: min(30rem,calc(100% - 2rem)); padding: clamp(1rem,3vw,1.6rem); border: 1px solid rgba(98,206,122,.68); border-radius: 16px; background: rgba(7,19,31,.93); box-shadow: 0 24px 70px rgba(0,0,0,.38); text-align: center; transform: translate(-50%,-50%); backdrop-filter: blur(10px); }
.game-prize[hidden] { display: none; }
.game-prize > span { color: #82e59a; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.game-prize p { margin: .7rem 0 .2rem; color: rgba(255,255,255,.65); font-size: .78rem; }
.game-prize > strong { display: block; max-width: 100%; font-size: clamp(2rem,5vw,3.3rem); line-height: 1; letter-spacing: .035em; overflow-wrap: anywhere; }
.game-prize .cta { width: max-content; margin: .9rem auto 0; }

@media (max-width: 920px) {
  .location-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .location-hero { grid-template-columns: 1fr; min-height: 0; }
  .location-hero-copy { padding: 4.5rem 1.25rem; }
  .location-hero-photo { height: 28rem; min-height: 0; }
  .location-services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .locations-hero { padding-bottom: 3.5rem; }
  .locations-directory { width: calc(100% - 2rem); padding: 3.5rem 0 4rem; }
  .location-state-group { grid-template-columns: 1fr; gap: 1.5rem; padding: 3rem 0; }
  .location-card-grid { grid-template-columns: 1fr 1fr; }
  .location-card { min-height: 7rem; }
  .breadcrumbs { width: calc(100% - 2rem); padding-top: 6.2rem; overflow: hidden; white-space: nowrap; }
  .location-hero-copy h1 { font-size: clamp(3rem,14vw,4.8rem); }
  .location-hero-photo { height: 22rem; }
  .location-intro,.nearby-locations { grid-template-columns: 1fr; gap: 1.5rem; width: calc(100% - 2rem); padding: 4rem 0; }
  .location-intro > div:last-child { padding-top: 0; }
  .location-services,.location-process,.location-faq { padding: 4rem 1rem; }
  .location-section-heading { display: block; margin-bottom: 2.25rem; }
  .location-section-heading > a { display: inline-block; margin-top: 1.3rem; }
  .location-services-grid { grid-template-columns: 1fr; }
  .location-service-card { grid-template-columns: 6.2rem 1fr; min-height: 9rem; }
  .location-process ol { grid-template-columns: 1fr; }
  .location-process li { min-height: 0; padding: 1.35rem 0; border-right: 0; border-bottom: 1px solid #c8cfcb; }
  .location-process li > div { margin-top: 2rem; }
  .location-final { padding: 4.5rem 1rem; }
  .not-found-main { padding-top: 4.6rem; }
  .not-found-intro { width: calc(100% - 2rem); min-height: calc(100svh - 4.6rem); padding: 3rem 0 4rem; }
  .not-found-copy h1 { max-width: 9ch; font-size: clamp(3.4rem,17vw,5.5rem); line-height: 1.02; }
  .not-found-copy p { font-size: .96rem; }
  .carpet-game { height: calc(100svh - 4.6rem); min-height: 32rem; }
  .game-meter { width: min(13.5rem,calc(100vw - 1.5rem)); }
  .game-progress { height: .42rem; }
  .game-meter strong { font-size: .66rem; }
  .game-prize { padding: .9rem; }
}

/* Shared compact headings for top-level inner pages */
.careers-hero h1,
.contact-hero h1,
.gallery-hero h1,
.locations-hero h1 {
  max-width: none;
  font-size: clamp(1.35rem, 4.2vw, 4.8rem);
  line-height: 1;
  letter-spacing: -.055em;
  white-space: nowrap;
}
.careers-hero h1 { font-size: clamp(1.3rem, 3.7vw, 4.25rem); }
.careers-hero > p { width: min(1320px,100%); max-width: none; margin-inline: auto; }
.careers-section .form-heading h2 { font-size: clamp(2.4rem, 4.2vw, 4.5rem); }

.learn-hero {
  padding: 9.5rem 4vw 4.5rem;
  background: #07131f;
}
.learn-hero-copy h1 {
  max-width: none;
  margin: 0;
  font-size: clamp(.95rem, 4.15vw, 4.8rem);
  line-height: 1;
  white-space: nowrap;
}
.learn-hero-copy h1 span { color: inherit; }

@media (max-width: 800px) {
  .services-catalog { padding-top: 8rem; }
  .services-catalog .services-title h1,
  .contact-hero h1,
  .gallery-hero h1,
  .locations-hero h1,
  .careers-hero h1,
  .learn-hero-copy h1 { font-size: clamp(2.55rem,8.5vw,4.1rem); }
  .careers-hero h1,
  .contact-hero h1,
  .learn-hero-copy h1 { white-space: normal; }
  .learn-hero { padding: 8.25rem 1rem 3.5rem; }
  .learn-hero-copy h1 { margin: 0; line-height: 1; }
}

/* Keep interior pages compact and information-dense on laptop and desktop screens. */
@media (min-width: 901px) {
  .inner-page .nav-shell,
  .article-body .nav-shell { min-height: 4.4rem; padding-block: .55rem; }
  .inner-page .site-logo .brand-logo,
  .article-body .site-logo .brand-logo { width: 132px; }
  .inner-page .nav-link,
  .article-body .nav-link { min-height: 2.4rem; padding: .5rem .7rem; font-size: .76rem; }
  .inner-page .header-phone,
  .article-body .header-phone { font-size: .76rem; }
  .inner-page .site-footer,
  .article-body .site-footer { padding: 3.75rem 4vw 1.2rem; }
  .inner-page .footer-main,
  .article-body .footer-main { gap: clamp(1.5rem,3.5vw,3.5rem); }
  .inner-page .footer-brand .brand-logo,
  .article-body .footer-brand .brand-logo { width: 160px; }
  .inner-page .footer-brand p,
  .article-body .footer-brand p { margin-top: 1rem; font-size: .84rem; }
  .inner-page .footer-column h2,
  .article-body .footer-column h2 { margin-bottom: .35rem; }
  .inner-page .footer-column p,
  .inner-page .footer-column a,
  .article-body .footer-column p,
  .article-body .footer-column a { font-size: .8rem; line-height: 1.5; }
  .inner-page .footer-bottom,
  .article-body .footer-bottom { margin-top: 2.75rem; }

  .inner-page .inner-hero { padding: 7.5rem 4vw 2.75rem; }
  .inner-page .inner-hero h1 { margin-top: 1rem; font-size: clamp(2.75rem,5vw,5.5rem); line-height: .92; }
  .inner-page .inner-hero p { margin-top: 1.25rem; font-size: clamp(.92rem,1.05vw,1.05rem); line-height: 1.55; }

  .inner-page .gallery-section { padding: .75rem .8rem 3.5rem; }
  .inner-page .gallery-grid { columns: 4 210px; column-gap: .75rem; }
  .inner-page .gallery-item { margin-bottom: .75rem; }

  .inner-page .careers-section { width: min(880px,calc(100% - 8vw)); padding: 3rem 0 4rem; }
  .inner-page .career-form { gap: .85rem; padding: clamp(1.25rem,2.2vw,2rem); border-radius: 14px; }
  .inner-page .form-heading { margin-bottom: .75rem; }
  .inner-page .form-heading h2 { font-size: clamp(2.2rem,3.2vw,3.4rem); }
  .inner-page .career-form input,
  .inner-page .career-form select,
  .inner-page .career-form textarea { padding: .72rem .8rem; font-size: .82rem; }
  .inner-page .career-form textarea { min-height: 7rem; }
  .inner-page .form-submit { min-height: 3.2rem; }

  .services-page .services-catalog { padding-top: 6.75rem; padding-bottom: 3.5rem; }
  .services-page .services-catalog .services-title { margin-bottom: 2rem; }
  .services-page .services-catalog .services-title h1 { font-size: clamp(2rem,3.4vw,3.6rem); }
  .services-page .services-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .services-page .service-card { height: clamp(11.5rem,15vw,14rem); }
  .services-page .service-face { padding: clamp(1rem,1.5vw,1.4rem); }
  .services-page .service-front strong { font-size: clamp(1.25rem,1.6vw,1.65rem); }
  .services-page .service-back { gap: .7rem; }
  .services-page .service-back strong { font-size: 1.25rem; }
  .services-page .service-back p { font-size: .78rem; line-height: 1.45; }

  .blog-page .learn-hero { padding: 7.5rem 4vw 2.75rem; }
  .blog-page .learn-hero-copy h1 { margin-bottom: 1.8rem; font-size: clamp(2.8rem,4.5vw,4.8rem); }
  .blog-page .resources-section { padding: 3.5rem 4vw 4.5rem; }
  .blog-page .resources-layout { grid-template-columns: 190px minmax(0,1fr); gap: clamp(2rem,4vw,4rem); }
  .blog-page .blog-filter-panel { top: 6rem; gap: 2.2rem; }
  .blog-page .resource-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
  .blog-page .resource-copy { min-height: 7.5rem; padding: 1rem; }
  .blog-page .resource-copy h2 { font-size: clamp(1.05rem,1.35vw,1.4rem); }
  .blog-page .resource-meta { font-size: .62rem; }

  .about-page .about-hero { min-height: 100svh; }
  .about-page .about-hero-copy { padding: 8.5rem 4vw 4rem; }
  .about-page .about-hero-copy h1 { max-width: 900px; margin-bottom: 1.4rem; font-size: clamp(2.8rem,4.4vw,4.7rem); }
  .about-page .about-hero-copy > p { max-width: 600px; margin-bottom: 1.5rem; font-size: clamp(.95rem,1.1vw,1.08rem); }
  .about-page .about-action { min-height: 3rem; padding: .65rem 1rem; font-size: .78rem; }
  .about-page .about-story { padding: 4.25rem 4vw; }
  .about-page .about-story-inner { gap: clamp(2.5rem,5vw,5rem); }
  .about-page .about-story-copy p { margin-bottom: 1.4rem; font-size: clamp(1.35rem,2vw,2.2rem); }
  .about-page .about-history { padding: 4.5rem 4vw 5rem; }
  .about-page .about-section-heading { margin-bottom: 2.5rem; }
  .about-page .about-section-heading h2 { font-size: clamp(2.5rem,4vw,4.3rem); }
  .about-page .history-line { top: 22rem; bottom: 5rem; }
  .about-page .history-list { gap: 2.5rem; }
  .about-page .history-card img { height: 11rem; }
  .about-page .history-card > div { padding: 1rem 1.1rem 1.2rem; }
  .about-page .history-card h3 { font-size: clamp(1.5rem,2.1vw,2.2rem); }
  .about-page .about-team { padding: 4.5rem 4vw 5rem; }
  .about-page .team-group { max-width: 960px; margin-bottom: 2rem; }
  .about-page .team-card img { height: clamp(12rem,19vw,14rem); aspect-ratio: auto; object-position: center 24%; }
  .about-page .team-card > div { min-height: 4.5rem; padding: .75rem .85rem; }
  .about-page .team-card strong { font-size: clamp(1rem,1.35vw,1.25rem); }

  .contact-page .contact-hero { padding-bottom: 2.75rem; }
  .contact-page .contact-hero-details { margin-top: 1.75rem; }
  .contact-page .contact-hero-details > * { align-content: center; gap: .45rem; min-height: 5.25rem; padding: .9rem 1.1rem; }
  .contact-page .contact-hero-details > *:first-child { padding-left: 0; }
  .contact-page .contact-hero-details > *:last-child { padding-right: 0; }
  .contact-page .contact-page-layout { width: min(780px,calc(100% - 8vw)); padding: 3rem 0 4rem; }
  .contact-page .contact-form { padding: clamp(1.25rem,2.2vw,2rem); gap: .85rem; }
  .contact-page .contact-form-heading h2 { font-size: clamp(2.1rem,3vw,3.2rem); }
  .contact-page .contact-form textarea { min-height: 8rem; }

  .locations-page .locations-directory { padding: 3.25rem 0 4rem; }
  .locations-page .location-state-group { gap: clamp(2rem,4vw,4rem); padding: 2.5rem 0; }
  .locations-page .location-state-group h2 { font-size: clamp(1.8rem,2.8vw,2.8rem); }
  .locations-page .location-card { min-height: 6.25rem; padding: .9rem; }
  .locations-page .location-card span { font-size: 1rem; }
  .locations-page .location-state-content { gap: 1.2rem; }

  .location-page .breadcrumbs { padding-top: 5.5rem; }
  .location-page .location-hero { min-height: 28rem; }
  .location-page .location-hero-copy { padding: 3.5rem 4vw 3.5rem max(4vw,calc((100vw - 1320px)/2)); }
  .location-page .location-hero-copy h1 { margin: 1rem 0 1.2rem; font-size: clamp(2.8rem,4.5vw,4.8rem); }
  .location-page .location-hero-copy > p { font-size: .95rem; }
  .location-page .location-hero-photo { min-height: 24rem; }
  .location-page .location-actions { margin-top: 1.5rem; }
  .location-page .location-intro,
  .location-page .nearby-locations { gap: clamp(2.5rem,5vw,5rem); padding: 3.5rem 0; }
  .location-page .location-intro h2,
  .location-page .nearby-locations h2 { font-size: clamp(2.1rem,3.4vw,3.6rem); }
  .location-page .location-services,
  .location-page .location-process,
  .location-page .location-faq { padding: 3.5rem 4vw; }
  .location-page .location-section-heading { margin-bottom: 2rem; }
  .location-page .location-service-card { grid-template-columns: 6rem 1fr; min-height: 8rem; }
  .location-page .location-service-card > span { padding: 1rem 2rem 1rem 1rem; }
  .location-page .location-process li { min-height: 13rem; padding: 1.2rem; }
  .location-page .location-process li > div { margin-top: 3rem; }
  .location-page .location-process h3 { font-size: clamp(1.35rem,1.8vw,1.8rem); }
  .location-page .location-faq summary { padding-block: 1rem; font-size: 1rem; }
  .location-page .location-final { padding: 3.5rem 4vw; }
  .location-page .location-final h2 { font-size: clamp(2.4rem,4vw,4.3rem); }

  .article-body .article-page { padding-top: 4.5rem; }
  .article-body .article-hero { padding: 3.5rem 4vw 3rem; }
  .article-body .article-back { margin-bottom: 2rem; }
  .article-body .article-hero h1 { font-size: clamp(2.5rem,4.2vw,4.4rem); }
  .article-body .article-hero-image { max-height: 24rem; margin-top: 2rem; }
  .article-body .article-layout { grid-template-columns: minmax(0,720px) 240px; gap: clamp(2.5rem,5vw,5rem); padding: 3.75rem 0 5rem; }
  .article-body .article-content { font-size: clamp(.95rem,1.05vw,1.04rem); line-height: 1.7; }
  .article-body .article-content h2 { margin-top: 2.4rem; font-size: clamp(1.7rem,2.6vw,2.4rem); }
  .article-body .article-content h3 { margin-top: 2rem; font-size: clamp(1.3rem,1.8vw,1.7rem); }
}

@media (min-width: 1100px) {
  .services-page .services-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .locations-page .location-card-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .inner-page .gallery-grid { columns: 5 210px; }
}

@media (min-width: 1280px) {
  .blog-page .resource-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

/* Live Google and Facebook reviews page */
.reviews-page { background: #eef1ed; color: #0b1926; font-family: "Manrope",sans-serif; }
.reviews-page .site-header,
.reviews-page .site-header.is-scrolled { background: #07131f; border-color: rgba(255,255,255,.12); box-shadow: 0 12px 32px rgba(2,8,14,.16); backdrop-filter: none; }
.reviews-page-hero { padding-bottom: 3.75rem; }
.reviews-page-hero h1 { max-width: 1040px; font-size: clamp(3rem,5.5vw,5.5rem); }
.reviews-page-hero p { max-width: 680px; color: rgba(255,255,255,.68); }
.reviews-live-section { width: min(1320px,calc(100% - 8vw)); margin: 0 auto; padding: 9rem 0 5rem; }
.reviews-live-intro { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: end; gap: clamp(2rem,6vw,6rem); margin-bottom: 2.5rem; }
.reviews-live-intro h2 { max-width: 650px; margin: 0; font-size: clamp(2.3rem,4vw,4.4rem); font-weight: 500; line-height: .95; letter-spacing: -.055em; }
.reviews-live-copy { max-width: 580px; justify-self: end; }
.reviews-live-copy p { margin: 0; color: #56626b; font-size: 1rem; line-height: 1.65; }
.reviews-source-links { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }
.reviews-source-links a { display: inline-flex; min-height: 2.8rem; align-items: center; justify-content: center; padding: .65rem .9rem; border: 1px solid #c9d0cc; border-radius: 7px; background: #fff; color: #0b1926; font-size: .78rem; font-weight: 700; text-decoration: none; transition: border-color .2s ease,background .2s ease; }
.reviews-source-links a:hover,.reviews-source-links a:focus-visible { border-color: #36a953; background: #f7fff8; }
.reviews-widget-shell { position: relative; min-height: 36rem; overflow: hidden; padding: clamp(1rem,2vw,1.5rem); border: 1px solid #d0d6d2; border-radius: 18px; background: #fff; box-shadow: 0 24px 60px rgba(7,19,31,.09); }
.reviews-widget-loading { position: absolute; inset: 50% auto auto 50%; margin: 0; color: #647078; font-size: .85rem; transform: translate(-50%,-50%); }
.reviews-widget-shell:has(.elfsight-app-d7836dda-3ccc-41d9-9ccf-901f5e96b787 > *) .reviews-widget-loading { display: none; }
.reviews-widget-shell .elfsight-app-d7836dda-3ccc-41d9-9ccf-901f5e96b787 { position: relative; z-index: 1; min-height: 32rem; }
.reviews-data-note { max-width: 760px; margin: 1.25rem auto 0; color: #6a757c; font-size: .72rem; line-height: 1.55; text-align: center; }

@media (max-width: 800px) {
  .reviews-page-hero { padding-bottom: 3rem; }
  .reviews-page-hero h1 { font-size: clamp(2.8rem,13vw,4.2rem); white-space: normal; }
  .reviews-live-section { width: calc(100% - 2rem); padding: 7.5rem 0 4rem; }
  .reviews-live-intro { grid-template-columns: 1fr; gap: 1.25rem; margin-bottom: 2rem; }
  .reviews-live-copy { max-width: none; justify-self: stretch; }
  .reviews-widget-shell { min-height: 32rem; padding: .65rem; border-radius: 13px; }
}

/* Keep top-level inner-page openings compact beneath the fixed header. */
.inner-page .inner-hero { padding: 6.75rem 4vw 2rem; }
.inner-page .inner-hero > h1:first-child { margin-top: 0; }
.blog-page .learn-hero { padding: 6.75rem 4vw 2rem; }
.services-page .services-catalog { padding-top: 6.25rem; }
.reviews-page .reviews-live-section { padding-top: 6.75rem; }
.services-page .services-catalog .services-title { margin-bottom: 2rem; }
.contact-page .contact-page-layout,
.locations-page .locations-directory,
.inner-page .careers-section,
.blog-page .resources-section { padding-top: 2.5rem; }
.reviews-page .reviews-live-intro { margin-bottom: 2rem; }

@media (max-width: 800px) {
  .inner-page .inner-hero { padding: 8.5rem 1rem 1.75rem; }
  .blog-page .learn-hero { padding: 8.5rem 1rem 1.75rem; }
  .services-page .services-catalog { padding-top: 8.5rem; }
  .reviews-page .reviews-live-section { padding-top: 8.5rem; }
  .article-body .article-page { padding-top: 7rem; }
  .not-found-main { padding-top: 7rem; }
  .contact-page .contact-page-layout,
  .locations-page .locations-directory,
  .inner-page .careers-section,
  .blog-page .resources-section { padding-top: 2rem; }
  .reviews-page .reviews-live-intro { margin-bottom: 1.5rem; }
}

@media (min-width: 801px) {
  .inner-page .inner-hero h1,
  .blog-page .learn-hero-copy h1,
  .services-page .services-title h1,
  .reviews-page .reviews-live-intro h2,
  .about-page .about-hero-copy h1,
  .location-page .location-hero-copy h1,
  .article-body .article-hero h1 {
    font-size: clamp(2.35rem,3.4vw,3.6rem);
  }
}

/* Shiny brand refresh, persistent conversion actions, and service landing pages */
.site-header,
.site-header.is-scrolled,
.inner-page .site-header,
.inner-page .site-header.is-scrolled,
.article-body .site-header,
.article-body .site-header.is-scrolled {
  background: #213b5c !important;
  border-color: rgba(255,255,255,.14) !important;
  box-shadow: 0 10px 28px rgba(10,27,47,.18);
  backdrop-filter: none !important;
}
.site-logo .brand-logo { width: 172px; }
.header-actions { justify-self: end; display: flex; align-items: stretch; gap: .5rem; }
.header-action { min-width: 7.25rem; min-height: 3rem; padding: .48rem .75rem; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.35); border-radius: 5px; color: #fff; text-decoration: none; text-align: center; transition: background .2s ease,border-color .2s ease,transform .2s ease; }
.header-action span { font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.header-action strong { margin-top: .15rem; font-size: .68rem; line-height: 1; }
.header-call:hover,.header-call:focus-visible { border-color: rgba(255,255,255,.35); background: transparent; transform: translateY(-1px); }
.header-book { border-color: #23a036; background: #23a036; }
.header-book:hover,.header-book:focus-visible { border-color: #23a036; background: #23a036; transform: translateY(-1px); }
.brand-primary { border-color: #23a036; background: #23a036; color: #fff; }
.brand-primary:hover,.brand-primary:focus-visible { border-color: #1d862e; background: #1d862e; color: #fff; }
.brand-secondary { border-color: currentColor; background: transparent; color: inherit; }
.brand-secondary:hover,.brand-secondary:focus-visible { background: rgba(255,255,255,.1); }

.cinematic .hero { min-height: 100svh; background: #213b5c; }
.cinematic .hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.cinematic .hero::after { background: linear-gradient(90deg,rgba(20,45,74,.79) 0%,rgba(25,55,88,.62) 43%,rgba(25,55,88,.14) 76%),linear-gradient(0deg,rgba(18,42,69,.45),transparent 55%); }
.cinematic .hero-copy { align-self: center; justify-self: stretch; top: 0; width: min(1440px,100%); margin: 0 auto; padding: 9rem 4vw 8rem; align-items: flex-start; text-align: left; }
.cinematic .hero-eyebrow { margin-bottom: 1.1rem; color: #a5cf51; font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.cinematic .hero-title-mask { max-width: 920px; overflow: visible; }
.cinematic h1 { max-width: 920px; margin: 0; padding-bottom: .08em; font-size: clamp(3.5rem,6.2vw,6.7rem); line-height: .94; letter-spacing: -.055em; white-space: normal; }
.cinematic .hero-intro { max-width: 690px; margin-top: 1.45rem; font-size: clamp(1rem,1.35vw,1.2rem); white-space: normal; }
.cinematic .hero-trust-list { display: grid; gap: .55rem; margin: 1.4rem 0 0; padding: 0; list-style: none; color: rgba(255,255,255,.9); }
.cinematic .hero-trust-list li { position: relative; padding-left: 1.45rem; font-size: .92rem; font-weight: 600; }
.cinematic .hero-trust-list li::before { content: ''; position: absolute; left: 0; top: .43rem; width: .52rem; height: .52rem; border-radius: 50%; background: #a5cf51; box-shadow: 0 0 0 4px rgba(165,207,81,.15); }
.cinematic .hero-actions { width: min(100%,28rem); margin-top: 1.65rem; }
.cinematic .hero-reviews { left: 50%; right: auto; bottom: 1rem; width: 100%; padding: 0 1rem; transform: translateX(-50%); }
.cinematic .hero-reviews.is-cleaner-near { transform: translate(-50%,-36px); }
.cinematic .review-proof { background: rgba(35,160,54,.94); border-color: rgba(255,255,255,.32); box-shadow: 0 10px 32px rgba(0,0,0,.28); opacity: 1; transform: none; animation: none; transition: background .2s ease,border-color .2s ease,transform .2s ease; }
.cinematic .review-proof:hover,
.cinematic .review-proof:focus-visible { background: #1d862e; border-color: #1d862e; transform: translateY(-1px); }
.cinematic .hero-eyebrow,
.cinematic .hero-title-mask h1,
.cinematic .hero-intro,
.cinematic .hero-trust-list,
.cinematic .hero-actions {
  opacity: 1;
  transform: none;
  clip-path: none;
  animation: none;
}

@media (min-width: 721px) {
  .cinematic .hero { height: 100svh; min-height: 0; }
  .cinematic .hero-copy {
    height: 100%;
    max-height: 100svh;
    justify-content: center;
    padding: 5.75rem 4vw 6.5rem;
  }
  .cinematic .hero-eyebrow { margin-bottom: .65rem; }
  .cinematic h1 {
    font-size: clamp(3.2rem, min(5vw, 8.4svh), 5.7rem);
  }
  .cinematic .hero-intro { margin-top: .9rem; line-height: 1.4; }
  .cinematic .hero-trust-list {
    grid-template-columns: repeat(2,minmax(0,18rem));
    column-gap: 1.75rem;
    row-gap: .4rem;
    margin-top: 1rem;
  }
  .cinematic .hero-actions { margin-top: 1rem; }
}
.inner-hero,.learn-hero,.location-hero,.reviews-section { background-color: #213b5c; }
.site-footer { background: #172d48; }

.service-detail-page { background: #f4f6f2; color: #132333; font-family: 'Manrope',sans-serif; }
.service-landing-hero { min-height: 46rem; padding-top: 5rem; display: grid; grid-template-columns: 1.02fr .98fr; background: #213b5c; color: #fff; }
.service-landing-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(4rem,7vw,7rem) 4vw clamp(4rem,7vw,7rem) max(4vw,calc((100vw - 1320px)/2)); }
.service-landing-copy .eyebrow { color: #a5cf51; }
.service-landing-copy h1 { max-width: 820px; margin: 1.3rem 0 1.4rem; font-size: clamp(3.1rem,5.6vw,6.4rem); font-weight: 500; line-height: .93; letter-spacing: -.06em; }
.service-landing-copy > p { max-width: 650px; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(1rem,1.25vw,1.18rem); line-height: 1.62; }
.service-trust-list { display: grid; gap: .65rem; margin: 1.6rem 0 0; padding: 0; list-style: none; }
.service-trust-list li { position: relative; padding-left: 1.5rem; font-size: .92rem; font-weight: 650; }
.service-trust-list li::before { content: ''; position: absolute; left: 0; top: .38rem; width: .55rem; height: .55rem; border-radius: 50%; background: #a5cf51; }
.service-hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }
.service-hero-actions .cta { min-width: 10.5rem; }
.service-landing-photo { min-height: 35rem; overflow: hidden; }
.service-landing-photo img { width: 100%; height: 100%; object-fit: cover; }
.service-overview { width: min(1320px,calc(100% - 8vw)); margin: 0 auto; padding: 7rem 0; display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem,8vw,8rem); }
.service-overview h2,.service-section-heading h2,.service-final h2 { margin: 1rem 0 0; font-size: clamp(3rem,5.4vw,5.8rem); font-weight: 500; line-height: .94; letter-spacing: -.055em; }
.service-overview p { margin: 0 0 1.25rem; color: #4e5e69; font-size: clamp(1.03rem,1.3vw,1.22rem); line-height: 1.7; }
.service-process { padding: 7rem 4vw; background: #fff; }
.service-section-heading,.service-process ol { width: min(1320px,100%); margin-inline: auto; }
.service-section-heading { max-width: 900px; margin-left: max(0px,calc((100% - 1320px)/2)); }
.service-process ol { margin-top: 4rem; padding: 0; display: grid; grid-template-columns: repeat(3,1fr); list-style: none; border-top: 1px solid #cbd2cd; }
.service-process li { min-height: 17rem; padding: 2rem 2rem 2rem 0; }
.service-process li + li { padding-left: 2rem; border-left: 1px solid #cbd2cd; }
.service-process li > span { color: #1d862e; font-size: .75rem; font-weight: 800; letter-spacing: .12em; }
.service-process h3 { margin: 3rem 0 .8rem; font-size: 1.55rem; }
.service-process p { margin: 0; color: #5d676e; line-height: 1.65; }
.service-final { padding: 7rem 4vw; background: #a5cf51; color: #132333; text-align: center; }
.service-final > * { max-width: 900px; margin-inline: auto; }
.service-final .eyebrow { color: #213b5c; }
.service-final p { margin-top: 1.3rem; font-size: 1.08rem; }
.service-final > div { margin-top: 1.8rem; display: flex; justify-content: center; gap: .75rem; }
.service-final .brand-primary { background: #213b5c; border-color: #213b5c; }
.service-card[href] { text-decoration: none; }

@media (max-width: 1100px) {
  .header-action { min-width: 6.5rem; padding-inline: .55rem; }
  .header-call strong { display: none; }
  .service-landing-hero { grid-template-columns: 1.08fr .92fr; }
}

@media (max-width: 720px) {
  section,footer { scroll-margin-top: 7rem; }
  .nav-shell { min-height: 7rem; grid-template-columns: 1fr auto; gap: .45rem; padding: 0 1rem .55rem; }
  .header-actions { grid-column: 1 / -1; grid-row: 1; align-self: stretch; justify-self: stretch; display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin-inline: -1rem; }
  .header-action { min-width: 0; min-height: 2.55rem; padding: .35rem .5rem; border: 0; border-radius: 0; }
  .header-action + .header-action { border-left: 1px solid rgba(255,255,255,.25); }
  .header-call { background: #1d428a; }
  .header-call:hover,.header-call:focus-visible { border-color: #1d428a; background: #1d428a; }
  .header-call strong { display: block; }
  .header-book { background: #23a036; }
  .site-logo { grid-column: 1; grid-row: 2; }
  .site-logo .brand-logo { width: 142px; }
  .menu-toggle { grid-column: 2; grid-row: 2; }
  .primary-nav { top: calc(100% + 1px); background: #213b5c; }
  .location-page .location-hero { padding-top: 7rem; }
  .cinematic .hero { height: 100svh; min-height: 0; }
  .cinematic .hero-copy {
    height: 100%;
    max-height: 100svh;
    justify-content: center;
    padding: 7.25rem 1rem;
  }
  .cinematic .hero-image { object-position: 62% center; }
  .cinematic .hero::after { background: linear-gradient(0deg,rgba(25,55,88,.79) 0%,rgba(25,55,88,.6) 62%,rgba(25,55,88,.21) 100%); }
  .cinematic .hero-eyebrow { margin-bottom: .5rem; }
  .cinematic .hero-title-mask { max-width: 100%; }
  .cinematic h1 { font-size: clamp(2.55rem,11.5vw,4rem); line-height: .96; }
  .cinematic .hero-intro { max-width: 36rem; margin-top: .7rem; font-size: .92rem; line-height: 1.35; }
  .cinematic .hero-trust-list { gap: .3rem; margin-top: .7rem; }
  .cinematic .hero-trust-list li { font-size: .82rem; line-height: 1.25; }
  .cinematic .hero-actions { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: .75rem; }
  .cinematic .hero-reviews { left: 50%; right: auto; bottom: calc(.45rem + 4px); width: 100%; padding: 0 .5rem; transform: translateX(-50%); }
  .service-landing-hero { min-height: 0; padding-top: 7rem; grid-template-columns: 1fr; }
  .service-landing-copy { padding: 4rem 1rem; }
  .service-landing-copy h1 { font-size: clamp(2.8rem,13vw,4.5rem); }
  .service-landing-photo { min-height: 22rem; max-height: 30rem; }
  .service-overview { width: calc(100% - 2rem); padding: 5rem 0; grid-template-columns: 1fr; gap: 2rem; }
  .service-process { padding: 5rem 1rem; }
  .service-process ol { margin-top: 2.5rem; grid-template-columns: 1fr; }
  .service-process li { min-height: 0; padding: 1.8rem 0; }
  .service-process li + li { padding-left: 0; border-left: 0; border-top: 1px solid #cbd2cd; }
  .service-process h3 { margin-top: 1.2rem; }
  .service-final { padding: 5rem 1rem; }
}

@media (max-width: 720px) and (max-height: 740px) {
  .cinematic .hero-copy { padding: 6.9rem 1rem 6.35rem; }
  .cinematic h1 { font-size: clamp(2.2rem,9.8vw,2.6rem); }
  .cinematic .hero-intro { font-size: .82rem; line-height: 1.25; }
  .cinematic .hero-trust-list {
    grid-template-columns: repeat(2,minmax(0,1fr));
    column-gap: .75rem;
  }
  .cinematic .hero-trust-list li { padding-left: 1rem; font-size: .74rem; }
  .cinematic .hero-trust-list li::before { top: .31rem; width: .4rem; height: .4rem; box-shadow: 0 0 0 3px rgba(165,207,81,.15); }
  .cinematic .hero-actions .cta { min-height: 2.8rem; padding-block: .55rem; }
}

/* Home quote form: beside the hero on desktop, below it on mobile. */
.cinematic .home-landing { display: grid; }
.cinematic .home-landing > .hero { grid-area: 1 / 1; min-height: max(100svh, 790px); height: auto; }
.cinematic .home-landing .hero-copy { width: min(1320px,100%); padding: 9rem calc(420px + 4vw) 8rem 4vw; }
.cinematic .home-landing h1 { font-size: clamp(3.2rem,5.2vw,5.5rem); line-height: 1; }
.cinematic .home-landing .hero-intro { max-width: 32rem; }
.cinematic .home-landing .hero-trust-list { grid-template-columns: 1fr; gap: .6rem; }
.cinematic .hero-estimate { grid-area: 1 / 1; align-self: center; justify-self: end; z-index: 7; width: 370px; margin: 6rem max(4vw,calc((100vw - 1320px)/2)) 5rem 0; padding: 1.5rem; gap: 1.15rem; background: #172d48; color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: 14px; box-shadow: 0 18px 50px rgba(0,0,0,.2); scroll-margin-top: 8rem; }
.cinematic .hero-estimate h2 { font-size: 1.8rem; line-height: 1.1; letter-spacing: -.04em; white-space: normal; }
.cinematic .hero-estimate .estimate-intro > p { margin-top: .55rem; color: #d4deea; font-size: .85rem; line-height: 1.4; }
.cinematic .hero-estimate .estimate-form { grid-template-columns: 1fr; gap: .75rem; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.cinematic .hero-estimate .estimate-form label { color: #e0e7ef; font-size: .72rem; }
.cinematic .hero-estimate .estimate-form input:not([type="checkbox"]),
.cinematic .hero-estimate .estimate-form select { min-height: 2.8rem; padding: .65rem .75rem; font-size: .9rem; }
.cinematic .hero-estimate .estimate-consent { gap: .55rem; line-height: 1.4; letter-spacing: 0; font-weight: 400; }
.cinematic .hero-estimate .estimate-form-footer { flex-direction: column; align-items: stretch; gap: .6rem; }
.cinematic .hero-estimate .estimate-form button { width: 100%; background: #23a036; color: #fff; }
.cinematic .hero-estimate .estimate-form button:hover { background: #1d862e; }
.cinematic .hero-estimate .form-status { color: #e0e7ef; }
@media (max-width: 900px) {
  .cinematic .home-landing { display: block; }
  .cinematic .home-landing > .hero { height: 100svh; min-height: 660px; }
  .cinematic .home-landing .hero-copy { width: 100%; padding: 8rem 1rem 7rem; }
  .cinematic .home-landing h1 { font-size: clamp(3rem,11vw,4.8rem); }
  .cinematic .home-landing .hero-intro { font-size: 1rem; line-height: 1.4; }
  .cinematic .home-landing .hero-trust-list { gap: .55rem; margin-top: 1.2rem; }
  .cinematic .home-landing .hero-trust-list li { font-size: .85rem; }
  .cinematic .hero-estimate { width: min(460px,calc(100% - 2rem)); margin: 2rem auto; padding: 1.5rem; }
}
@media (max-width: 900px) and (max-height: 700px) {
  .cinematic .home-landing .hero-copy { padding-top: 7.2rem; }
  .cinematic .home-landing h1 { font-size: 3rem; }
}

.cinematic .hero-estimate .estimate-form textarea { min-height: 4.5rem; padding: .65rem .75rem; font-size: .9rem; resize: vertical; }

/* Keep the cleaning scene at the viewport edge with the full hero copy. */
@media (min-width: 901px) {
  .cinematic .home-landing > .hero { min-height: 100svh; }
  .cinematic .home-landing .hero-copy { padding-top: 6.5rem; padding-bottom: 6rem; }
  .cinematic .home-landing h1 { font-size: clamp(2.5rem,min(4vw,6svh),4.5rem); }
  .cinematic .home-landing .hero-intro { margin-top: 1rem; font-size: 1rem; }
  .cinematic .home-landing .hero-trust-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem 1rem; }
  .cinematic .home-landing .hero-trust-list li { font-size: .82rem; }
  .cinematic .hero-estimate { margin-top: 5.5rem; margin-bottom: 4rem; padding: 1.15rem; gap: .8rem; }
  .cinematic .hero-estimate .estimate-form { gap: .55rem; }
  .cinematic .hero-estimate .estimate-form input:not([type="checkbox"]),
  .cinematic .hero-estimate .estimate-form select { min-height: 2.5rem; padding: .5rem .65rem; }
  .cinematic .hero-estimate .estimate-form textarea { min-height: 3.5rem; padding: .5rem .65rem; }
  .cinematic .hero-estimate .estimate-form button { min-height: 2.8rem; padding: .65rem; }
}
@media (max-width: 900px) {
  .cinematic .home-landing > .hero { height: 100svh; min-height: 0; }
  .cinematic .home-landing .hero-copy { padding-top: 7rem; padding-bottom: 6.5rem; }
  .cinematic .home-landing h1 { font-size: clamp(2.2rem,min(9vw,6svh),3.6rem); }
  .cinematic .home-landing .hero-intro { font-size: .9rem; }
  .cinematic .home-landing .hero-trust-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .4rem .7rem; margin-top: .8rem; }
  .cinematic .home-landing .hero-trust-list li { font-size: .75rem; }
}

/* Keep the landing photo's natural colors with neutral contrast for the text. */
.cinematic .hero::after {
  background: linear-gradient(90deg,rgba(0,0,0,.77) 0%,rgba(0,0,0,.52) 43%,rgba(0,0,0,.24) 76%),linear-gradient(0deg,rgba(0,0,0,.44),transparent 55%);
}
@media (max-width: 720px) {
  .cinematic .hero::after { background: linear-gradient(0deg,rgba(0,0,0,.81) 0%,rgba(0,0,0,.62) 62%,rgba(0,0,0,.3) 100%); }
}

/* Position the facility photo within the landing hero. */
.cinematic .home-landing .hero-image {
  top: -20px;
  height: calc(100% + 20px);
  object-position: center top;
}
@media (max-width: 720px) {
  .cinematic .home-landing .hero-image { top: 6rem; height: calc(100% - 6rem); }
}

/* Tighter header spacing keeps more of the landing photo visible. */
.nav-shell { min-height: 4rem; padding-block: .35rem; }
@media (max-width: 720px) {
  .nav-shell { min-height: 6rem; gap: .25rem; padding-block: 0 .3rem; }
  .site-logo .brand-logo { width: 128px; }
  .header-action { min-height: 2.3rem; padding-block: .25rem; }
}

/* Place the desktop quote form to the left of the hero title. */
@media (min-width: 901px) {
  .cinematic .home-landing .hero-copy { padding-left: calc(420px + 4vw); padding-right: 4vw; }
  .cinematic .hero-estimate { justify-self: start; margin-left: max(4vw,calc((100vw - 1320px)/2)); margin-right: 0; }
}

/* Lift the desktop headline into the quieter wall above the van. */
@media (min-width: 901px) {
  .cinematic .home-landing .hero-copy {
    position: absolute;
    height: auto;
    max-height: none;
    justify-content: flex-start;
    top: clamp(10rem,19svh,13rem);
    left: max(calc(420px + 4vw),calc((100vw - 1320px)/2 + 420px));
    width: min(660px,calc(100% - 460px - 8vw));
    padding: 1.5rem;
    align-items: flex-start;
    text-align: left;
    isolation: isolate;
  }
  .cinematic .home-landing .hero-message::before {
    content: '';
    position: absolute;
    inset: -5rem -7rem;
    z-index: -1;
    background: radial-gradient(ellipse closest-side,rgba(0,0,0,.7) 0%,rgba(0,0,0,.42) 45%,rgba(0,0,0,.12) 75%,transparent 100%);
    filter: blur(18px);
    pointer-events: none;
  }
  .cinematic .home-landing h1 { font-size: clamp(2.1rem,2.6vw,3rem); line-height: 1.06; }
  .cinematic .home-landing .hero-actions { margin-top: 1.2rem; }
}

.cinematic .home-landing .hero-actions .brand-secondary {
  background: #213b5c;
  border-color: #213b5c;
  color: #fff;
}
.cinematic .home-landing .hero-actions .brand-secondary:hover,
.cinematic .home-landing .hero-actions .brand-secondary:focus-visible {
  background: #2b4d76;
  border-color: #2b4d76;
}

@media (max-width: 1200px) {
  .about-hero-image { object-position: 50% center; }
}

/* Anchor both desktop columns together, including at reduced browser zoom. */
@media (min-width: 901px) {
  .cinematic .home-landing { --landing-content-top: clamp(10rem,19svh,13rem); }
  .cinematic .hero-estimate {
    align-self: start;
    margin-top: var(--landing-content-top);
  }
  .cinematic .home-landing .hero-copy {
    top: var(--landing-content-top);
    left: max(calc(470px + 4vw),calc((100vw - 1320px)/2 + 540px));
    width: min(660px,calc(100% - 510px - 8vw));
  }
}

.cinematic .home-landing .hero-actions .brand-primary {
  background: #23a036;
  border-color: #23a036;
  color: #fff;
}
.cinematic .home-landing .hero-actions .brand-primary:hover,
.cinematic .home-landing .hero-actions .brand-primary:focus-visible {
  background: #1d862d;
  border-color: #1d862d;
}

/* Local introduction and planning questions share one content section. */
.location-information { background: #f3f5f1; }
.location-information .location-intro { padding-bottom: 2rem; }
.location-information .location-faq { background: transparent; padding-top: 2rem; }

/* One shared layout for local information and questions. */
.location-information {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2.5rem,6vw,6rem);
  padding: clamp(3rem,6vw,6rem) max(4vw,calc((100vw - 1320px)/2));
  align-items: start;
}
.location-information .location-intro {
  display: block;
  width: auto;
  margin: 0;
  padding: 0;
}
.location-information .location-intro h2 {
  font-size: clamp(2rem,3vw,3.25rem);
  line-height: 1.08;
  margin: .8rem 0 1.4rem;
}
.location-information .location-intro > div:last-child { padding-top: 0; }
.location-information .location-intro p:last-child { margin-bottom: 0; }
.location-information .location-faq { padding: 0; min-width: 0; }
.location-information .location-section-heading { margin: 0 0 1.4rem; }
.location-information .location-section-heading h2 {
  margin: 0;
  font-size: clamp(1.5rem,2vw,2rem);
  line-height: 1.2;
  letter-spacing: -.035em;
}
@media (max-width: 800px) {
  .location-information { grid-template-columns: 1fr; gap: 2.5rem; }
}

/* Keep service photos centered inside their column rather than sizing the grid. */
.service-landing-photo { position: relative; }
.service-landing-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.service-landing-photo img[src*="house-cleaning"] { object-position: 68% center; }
.service-landing-photo img[src*="wood-floor"] { object-position: 23% center; }
.service-landing-photo img[src*="power-washing"] { object-position: left center; }
.service-landing-photo img[src*="window-cleaning"] { object-position: 30% center; }
.service-landing-photo img[src*="water-restoration"] { object-position: 35% center; }

.careers-split-hero .service-landing-photo img { object-position: center 78%; }
@media (max-width: 720px) {
  .careers-split-hero .service-landing-photo { min-height: 24rem; }
}


/* Keep the carpet visible while the review badge retains its hover motion. */
.cinematic .hero-carpet-strip { height: 8px; }

/* Show the landing photo without dark overlays. */
.cinematic .home-landing .hero::after { display: none; }
@media (min-width: 901px) {
  .cinematic .home-landing .hero-image {
    top: -65px;
    height: calc(100% + 65px);
    object-position: center bottom;
  }
}

/* Follow the message itself at every width, rather than the full-height copy column. */
.cinematic .home-landing .hero-message { position: relative; isolation: isolate; width: 100%; }
.cinematic .home-landing .hero-message::before {
  content: '';
  position: absolute;
  inset: -4rem -5rem;
  z-index: -1;
  background: radial-gradient(ellipse closest-side,rgba(0,0,0,.82) 0%,rgba(0,0,0,.68) 48%,rgba(0,0,0,.28) 76%,transparent 100%);
  filter: blur(16px);
  pointer-events: none;
}
.cinematic .home-landing h1 { text-shadow: 0 2px 5px rgba(0,0,0,.25); }
@media (max-width: 900px) {
  .cinematic .home-landing .hero-message { max-width: 42rem; }
  .cinematic .home-landing .hero-message::before { inset: -3rem -5rem; }
}
@media (max-width: 380px) {
  .cinematic .home-landing h1 { font-size: clamp(2rem,8.8vw,2.2rem); }
  .cinematic .home-landing .hero-actions { gap: .5rem; }
}
@media (max-height: 520px) and (max-width: 900px) {
  .cinematic .home-landing > .hero { min-height: 520px; }
}

.cinematic .home-landing .hero-message::before {
  inset: -1.5rem -2rem;
  border-radius: 2.5rem;
  background: rgba(0,0,0,.7);
  filter: blur(24px);
}

@media (min-width: 901px) {
  .cinematic .home-landing > .hero { min-height: max(100svh,calc(var(--landing-content-top) + 760px)); }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .cinematic .home-landing .hero-copy {
    left: calc(420px + 4vw);
    width: calc(100% - 460px - 8vw);
  }
}

/* Blend desktop text contrast gradually across the bright garage door. */
@media (min-width: 901px) {
  .cinematic .home-landing .hero-message::before {
    inset: -5rem -8rem;
    border-radius: 50%;
    background: radial-gradient(ellipse closest-side,rgba(0,0,0,.68) 0%,rgba(0,0,0,.54) 40%,rgba(0,0,0,.24) 70%,transparent 100%);
    filter: blur(32px);
  }
}

.cinematic .hero-reviews { bottom: calc(1rem + 4px); }
@media (max-width: 720px) {
  .cinematic .hero-reviews { bottom: calc(.45rem + 8px); }
}

/* Keep the animation and reviews inside the initial visible landing view. */
@media (min-width: 901px) {
  .cinematic .home-landing { --landing-content-top: clamp(5.5rem,12svh,9rem); }
  .cinematic .home-landing > .hero { height: 100svh; min-height: 0; }
  .cinematic .hero-estimate {
    max-height: calc(100svh - var(--landing-content-top) - 6rem);
    overflow-y: auto;
    margin-bottom: 0;
    scrollbar-width: thin;
  }
}
.cinematic .hero-reviews { bottom: calc(1.75rem + env(safe-area-inset-bottom,0px)); }
.cinematic .hero-cleaning-scene { bottom: env(safe-area-inset-bottom,0px); }
.cinematic .hero-cleaner { bottom: 10px; }
.cinematic .hero-carpet-strip { bottom: 2px; }
@media (max-width: 900px) {
  .cinematic .hero-reviews { bottom: calc(1.25rem + env(safe-area-inset-bottom,0px)); }
}

/* Lower the photo slightly on wide desktop screens only. */
@media (min-width: 1200px) {
  .cinematic .home-landing .hero-image {
    top: -45px;
    height: calc(100% + 45px);
  }
}

/* Preserve the more open composition as desktop screens get wider. */
@media (min-width: 1200px) {
  .cinematic .home-landing .hero-image { object-position: center top; }
}
@media (min-width: 1400px) {
  .cinematic .hero-estimate { margin-left: 4vw; width: min(29vw,460px); }
  .cinematic .home-landing .hero-copy { left: 42vw; width: 53vw; }
}

.cinematic .home-landing .hero-message .hero-trust-list {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: .6rem 1rem;
  margin-top: .65rem;
  width: 100%;
}
.cinematic .home-landing .hero-message .hero-trust-list li { color: #fff; }
@media (max-width: 480px) {
  .cinematic .home-landing .hero-message .hero-trust-list { gap: .45rem .7rem; margin-top: .55rem; }
  .cinematic .home-landing .hero-message .hero-trust-list li { font-size: .72rem; line-height: 1.35; }
}

/* A shared feathered fade follows the complete hero message. */
.cinematic .home-landing .hero-message::before {
  inset: -2.5rem -3.5rem;
  border-radius: 3rem;
  background: rgba(0,0,0,.54);
  filter: blur(32px);
}
