:root{--navy:#23512B;--navy-2:#2F6638;--ink:#1D3B22;--mint:#C7EABB;--mint-dark:#4A7740;--cloud:#F4FAEE;--paper:#E8F5BD;--line:#A2CB8B;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,sans-serif;color:var(--ink);background:var(--cloud);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}.notice{background:var(--mint);height:34px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;font:500 10px 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase}.notice a{text-decoration:underline;text-underline-offset:3px}.site-header{height:93px;padding:0 5vw;background:#fff;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.brand{display:flex;align-items:center;gap:11px;font-size:13px;line-height:1.02;font-weight:800;letter-spacing:-.04em}.brand b{font-weight:500}.brand-mark{width:39px;height:39px;display:grid;place-items:center;background:var(--navy);color:white;font:500 12px 'DM Mono',monospace;letter-spacing:-.14em}.site-nav{display:flex;align-items:center;gap:29px;font-size:13px;font-weight:700}.site-nav>a:not(.nav-cta){position:relative}.site-nav>a:not(.nav-cta)::after{content:'';position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--mint-dark);transition:width .2s}.site-nav>a:hover::after{width:100%}.nav-dropdown{position:relative}.nav-trigger{border:0;background:transparent;color:var(--ink);padding:0;font:700 13px Manrope,sans-serif;cursor:pointer}.nav-trigger span{font-size:16px;margin-left:3px;color:var(--mint-dark)}.dropdown-menu{position:absolute;top:calc(100% + 22px);left:-17px;width:300px;padding:11px 0;background:#fff;border:1px solid var(--line);box-shadow:0 17px 30px rgba(26,58,30,.18);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s;z-index:10}.area-menu{width:250px}.nav-dropdown.open .dropdown-menu,.nav-dropdown:focus-within .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu a{display:block;padding:10px 17px;color:#3A5C3E;font-size:12px;font-weight:600;line-height:1.25}.dropdown-menu a:hover,.dropdown-menu a:focus{background:var(--paper);color:var(--ink)}.nav-cta{background:var(--navy);color:white;padding:12px 18px}.menu-toggle{display:none;border:0;background:none;font:700 12px Manrope,sans-serif}.hero{min-height:610px;background:var(--navy);color:white;display:grid;grid-template-columns:1.05fr .95fr;position:relative;overflow:hidden}.hero-copy{padding:92px 10vw 75px 8vw;align-self:center;position:relative;z-index:1}.kicker{font:500 10px/1.2 'DM Mono',monospace;letter-spacing:.13em;text-transform:uppercase;color:var(--mint);margin:0 0 20px}.section-label{display:none}.hero h1,h2,h3{font-family:Fraunces,Georgia,serif;letter-spacing:-.045em}.hero h1{font-size:clamp(50px,6vw,83px);line-height:.94;margin:0 0 27px;max-width:720px}.lede{font-size:17px;line-height:1.7;max-width:535px;color:#DCEBCE;margin:0}.hero-actions{display:flex;align-items:center;gap:25px;margin-top:35px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;padding:15px 18px;font-weight:800;font-size:13px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button span{font-size:18px}.button-light{background:var(--mint);color:var(--navy)}.button-dark{background:var(--navy);color:white}.text-link{font-size:13px;font-weight:800;text-decoration:underline;text-underline-offset:4px}.hero-image{min-height:610px;background:linear-gradient(90deg,rgba(18,43,22,.12),rgba(18,43,22,.02)),url('https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=1400&q=85') center/cover}.hero.hero--text-only{grid-template-columns:minmax(0,1fr);min-height:0}.hero--text-only .hero-copy{max-width:900px;padding:clamp(76px,10vw,124px) 8vw}.hero-stamp{position:absolute;right:8vw;bottom:33px;background:var(--mint);color:var(--navy);padding:16px 20px;min-width:145px}.hero-stamp span{display:block;font:500 9px 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase}.hero-stamp b{font:700 20px/.95 Fraunces,Georgia,serif;display:block;margin-top:6px}.intro-section{max-width:960px;margin:auto;padding:2% 6vw;display:block;text-align:center}.intro-section h2{margin-left:auto;margin-right:auto}.intro-copy{max-width:720px;margin:0 auto;text-align:center}.intro-section h2,.areas-section h2{font-size:clamp(36px,4.1vw,59px);line-height:1.02;margin:0;max-width:620px}.intro-copy{padding-top:24px}.intro-copy p{margin:0 0 19px;color:#4F6B4C}.text-link.dark{color:var(--mint-dark);display:inline-block;margin-top:8px}.text-link span{margin-left:6px}.services-section{background:#fff;padding:2% 5vw}.section-heading{max-width:720px}.section-heading.centered{text-align:center;margin:0 auto 43px}.section-heading h2{font-size:clamp(36px,4.1vw,56px);line-height:1.02;margin:0}.section-heading>p:not(.section-label){color:#5C7259;max-width:625px;margin:18px auto 0}.service-grid{max-width:1380px;margin:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}.service-card{background:var(--cloud);border:1px solid #DCEBCB;display:flex;min-width:0}.service-card__body{display:flex;flex-direction:column;width:100%;padding:30px;min-width:0}.service-card h3{font-size:25px;line-height:1.05;margin:0 0 11px}.service-card p{font-size:13px;line-height:1.6;color:#5A7357;margin:0 0 16px}.service-card__body ul{columns:2;column-gap:24px;margin-top:auto;margin-bottom:0;padding-left:17px;color:#2F5237;font-size:11px;line-height:1.75}.service-card__body li{break-inside:avoid;margin-bottom:4px}.services-section#services .service-card__body{padding:24px;text-align:center}.services-section#services .service-card h3{margin-bottom:13px}.services-section#services .service-card p{font-size:15px;line-height:1.65;color:#4A6B45;margin:0}.industry-strip{max-width:1380px;margin:45px auto 0;padding:19px 0;border-top:1px solid var(--line);color:#48664A;font-size:13px}.industry-strip span{font:500 10px 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mint-dark);margin-right:12px}.process-section{background:var(--paper);padding:0;display:grid;grid-template-columns:1.05fr .95fr;min-height:680px}.process-panel{padding:2% 8vw}.process-title h2{font-size:clamp(37px,4vw,56px);line-height:1;margin:0}.process-title>p:last-child{color:#4A6B45;margin-bottom:0}.process-accordion{border:0;margin-top:30px;background:transparent}.process-accordion details{padding:0;border-bottom:1px solid var(--line)}.process-accordion details:last-child{border-bottom:0}.process-accordion summary{padding:17px 18px;font-size:14px;color:var(--ink)}.process-accordion details p{margin:0;padding:0 18px 17px;color:#3F6140;font-size:14px;line-height:1.65}.process-image{min-height:680px;background:url('https://images.unsplash.com/photo-1581578731548-c64695cc6952?auto=format&fit=crop&w=1400&q=85') center/cover}.why-section{display:grid;grid-template-columns:1fr 1fr;background:#fff}.why-photo{min-height:690px;background:url('https://images.unsplash.com/photo-1565610222536-ef125c59da2e?auto=format&fit=crop&w=1300&q=85') center/cover}.why-copy{padding:2% 8vw;align-self:center}.why-copy h2{font-size:clamp(38px,4vw,56px);line-height:1;margin:0}.why-copy>p:not(.section-label){color:#4A6B45}.why-accordion{border:0;margin-top:28px;background:transparent}.why-accordion details{padding:0;border-bottom:1px solid var(--line)}.why-accordion details:last-child{border-bottom:0}.why-accordion summary{padding:16px 17px;font-size:14px;color:var(--ink)}.why-accordion details p{margin:0;padding:0 17px 16px;color:#3F6140;font-size:14px;line-height:1.65}.why-copy .button{margin-top:20px}.areas-section{padding:2% 8vw;background:var(--navy);color:#fff;display:grid;grid-template-columns:1fr 1fr;gap:10vw}.areas-copy>p:not(.section-label){color:#DBEACD;max-width:600px}.areas-section address{font-style:normal;color:var(--mint);font:500 12px/1.7 'DM Mono',monospace;margin-top:28px}.area-list{border-top:1px solid rgba(215,235,203,.35);align-self:center}.area-list a{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid rgba(215,235,203,.35);font-size:14px;font-weight:700;transition:color .2s,padding .2s}.area-list a:hover{color:var(--mint);padding-left:8px}.area-list span{color:var(--mint);font-size:18px}.faq-section{padding:2% 8vw;background:var(--cloud);display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:20px 0}summary{list-style:none;cursor:pointer;font-weight:800;font-size:15px;display:flex;justify-content:space-between;gap:15px}summary::-webkit-details-marker{display:none}summary span{font-size:20px;font-weight:400}details[open] summary span{transform:rotate(45deg)}details p{font-size:14px;color:#596F55;max-width:620px;margin:13px 30px 0 0}.trust-section{padding:2% 8vw;background:var(--cloud);text-align:center}.trust-copy{max-width:780px;margin:auto}.trust-copy h2{font:500 clamp(40px,5vw,68px)/.96 Fraunces,Georgia,serif;letter-spacing:-.045em;margin:0}.trust-copy p{max-width:680px;margin:18px auto 0;color:#4A6B45}.quote-section{padding:2% 8vw;background:var(--mint);display:flex;justify-content:space-between;align-items:end;gap:40px}.section-label.light{color:#3B6B36}.quote-section h2{font-size:clamp(40px,5vw,68px);line-height:.96;margin:0;max-width:680px}.quote-section p:not(.section-label){max-width:560px;color:#33562F}.quote-actions{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.email-link{font-size:13px;font-weight:800;text-decoration:underline;text-underline-offset:4px}footer{background:#122B16;color:#DDEBD2;padding:47px 5vw;display:flex;align-items:center;gap:34px;font-size:12px}.footer-brand{color:white}.footer-brand .brand-mark{background:var(--mint);color:var(--navy)}footer p{margin:0}footer a{font-weight:800}.copyright{margin-left:auto;color:#8FA689;font-size:11px}@media(max-width:950px){.hero{grid-template-columns:1fr}.hero-image{min-height:340px}.hero-copy{padding:80px 8vw 65px}.hero-stamp{right:8vw;bottom:20px}.service-grid{grid-template-columns:repeat(2,1fr)}.intro-section,.process-section,.areas-section,.faq-section{grid-template-columns:1fr;gap:45px}.why-copy{padding:2% 8vw}.quote-section{align-items:flex-start;flex-direction:column}footer{flex-wrap:wrap}.copyright{margin-left:0;width:100%}}@media(max-width:650px){.hero--text-only .hero-copy{padding:2% 7vw 54px}.site-header{height:75px}.site-nav{display:none;position:absolute;top:75px;left:0;right:0;background:#fff;padding:20px 5vw;flex-direction:column;align-items:flex-start;gap:18px;border-top:1px solid var(--line)}.site-nav.open{display:flex}.nav-dropdown{width:100%}.nav-trigger{width:100%;text-align:left;display:flex;justify-content:space-between}.dropdown-menu,.area-menu{position:static;width:100%;display:none;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;margin-top:8px}.nav-dropdown.open .dropdown-menu{display:block}.dropdown-menu a{padding:10px 0 10px 14px}.site-nav>a:not(.nav-cta){width:100%}.menu-toggle{display:block}.hero h1{font-size:53px}.hero-copy{padding:2% 7vw 54px}.hero-image{min-height:250px}.hero-stamp{display:none}.intro-section,.services-section,.areas-section,.faq-section{padding:2% 7vw}.process-panel{padding:2% 7vw}.process-image{min-height:320px}.service-grid{grid-template-columns:1fr}.service-card__body ul{columns:2;column-gap:18px}.why-section{grid-template-columns:1fr}.why-photo{min-height:330px}.why-copy{padding:2% 7vw}.quote-section{padding:2% 7vw}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.notice{padding:0 7vw}.section-heading h2{font-size:39px}.intro-section h2,.areas-section h2{font-size:41px}}

/* Detailed service pages: keep the services heading block left-aligned. */
.hero--text-only ~ .services-section .section-heading.centered {
  text-align: start;
}

/* Site-wide intro sections: centered label + heading, left-aligned body copy. */
.intro-section > div:first-child {
  text-align: center;
}
.intro-section h2 {
  margin-left: auto;
  margin-right: auto;
}
.intro-copy,
.intro-section .intro-copy p {
  text-align: left;
}

/* Homepage only: retain its compact photo cards without restoring photos to service-page text cards. */
.services-section#services .service-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.services-section#services .service-card {
  display: flex;
  flex-direction: column;
}
.services-section#services .service-photo {
  flex: 0 0 auto;
}
.services-section#services .service-card > div:last-child {
  flex: 1 1 auto;
}
.services-section#services .service-card p {
  margin-bottom: 18px;
}
.services-section#services .service-photo {
  height: 300px;
  background-position: center;
  background-size: cover;
}
.services-section#services .service-photo.office { background-image: url('images/services/office-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-photo.retail { background-image: url('images/services/retail-shopping-center-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-photo.restaurant { background-image: url('images/services/restaurant-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-photo.medical { background-image: url('images/services/medical-healthcare-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-photo.financial { background-image: url('images/services/financial-institution-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-photo.auto { background-image: url('images/services/auto-dealership-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-photo.industrial { background-image: url('images/services/industrial-warehouse-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-photo.school { background-image: url('images/services/school-daycare-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-photo.fitness { background-image: url('images/services/fitness-center-gym-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-photo.church { background-image: url('images/services/church-religious-facility-cleaning-st-paul.jpg?v=2'); }
.services-section#services .service-card > div:last-child {
  padding: 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
}

/* Homepage service cards only: Learn More action pinned to the card foot. */
.services-section#services .service-card__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  align-self: center;
  margin-top: auto;
  padding: 11px 18px;
  background: var(--navy);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  transition: background .2s, transform .2s;
}
.services-section#services .service-card__link span {
  font-size: 15px;
  line-height: 1;
}
.services-section#services .service-card__link:hover,
.services-section#services .service-card__link:focus {
  background: var(--navy-2);
  transform: translateY(-2px);
}
@media (max-width: 950px) {
  .services-section#services .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .services-section#services .service-grid { grid-template-columns: 1fr; }
}
/* Homepage hero slideshow: slides enter from the right on a 2s cadence. */
.hero-slideshow {
  position: relative;
  overflow: hidden;
  background-image: none;
}
.hero-slide {
  position: absolute;
  inset: 0;
  background-position: center;
  background-size: cover;
  opacity: 0;
  transition: opacity .9s ease-in-out;
  will-change: opacity;
}
.hero-slide.is-active {
  opacity: 1;
  z-index: 1;
}
.hero-slide.is-leaving {
  opacity: 0;
  z-index: 0;
}
.hero-slideshow::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(18,43,22,.12), rgba(18,43,22,.02));
}
@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: none; }
}

/* Detailed service page heroes: scoped photos paired with the homepage service cards. */
.hero--service-office .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/office-cleaning-st-paul.jpg?v=2'); }
.hero--service-retail .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/retail-shopping-center-cleaning-st-paul.jpg?v=2'); }
.hero--service-restaurant .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/restaurant-cleaning-st-paul.jpg?v=2'); }
.hero--service-medical .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/medical-healthcare-cleaning-st-paul.jpg?v=2'); }
.hero--service-financial .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/financial-institution-cleaning-st-paul.jpg?v=2'); }
.hero--service-auto .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/auto-dealership-cleaning-st-paul.jpg?v=2'); }
.hero--service-industrial .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/industrial-warehouse-cleaning-st-paul.jpg?v=2'); }
.hero--service-school .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/school-daycare-cleaning-st-paul.jpg?v=2'); }
.hero--service-fitness .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/fitness-center-gym-cleaning-st-paul.jpg?v=2'); }
.hero--service-church .hero-image { background-image: linear-gradient(rgba(0, 0, 0, .3), rgba(0, 0, 0, .3)), url('images/services/church-religious-facility-cleaning-st-paul.jpg?v=2'); }

/* Homepage only: replace the remaining stock section photography. */
.process-image { background-image: url('images/home/process-waiting-room-st-paul.jpg?v=2'); }
.why-photo { background-image: url('images/home/why-church-office-st-paul.jpg?v=2'); }

/* Homepage Process and Why: sample layout — copy left, accordion right, no photo.
   Titles centered within their column; body copy left-aligned. */
.process-section,
.why-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6vw;
  align-items: start;
  padding: 2% 8vw;
  min-height: 0;
}
.why-section { background: #fff; }
.process-panel,
.why-copy {
  padding: 0;
  align-self: start;
}
.process-title h2,
.why-copy h2 {
  text-align: center;
}
.process-title > p:not(.section-label),
.why-copy > p:not(.section-label) {
  text-align: left;
  max-width: 560px;
}
.process-accordion,
.why-accordion {
  margin-top: 0;
  align-self: start;
}
.process-image,
.why-photo { display: none; }

/* Trust section: centered title, left-aligned description. */
.trust-copy h2 { text-align: center; }
.trust-copy p {
  text-align: left;
  max-width: 720px;
}

/* Call to action: single centred column matching the Trust section. */
.quote-section {
  display: block;
  text-align: center;
}
.quote-section > div:first-child {
  max-width: 780px;
  margin: 0 auto;
}
.quote-section h2 {
  text-align: center;
  max-width: none;
  margin: 0;
}
.quote-section p:not(.section-label) {
  text-align: left;
  max-width: 720px;
  margin: 18px auto 0;
}
.quote-actions {
  max-width: 720px;
  margin: 28px auto 0;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 25px;
}
@media (max-width: 650px) {
  .quote-actions {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }
}

@media (max-width: 950px) {
  .process-section,
  .why-section {
    grid-template-columns: 1fr;
    gap: 34px;
  }
}
@media (max-width: 650px) {
  .process-section,
  .why-section { padding: 2% 7vw; }
}

/* Footer: contact column, Google map, and legal bar. */
footer {
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: 47px 5vw 28px;
}
.footer-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6vw;
  align-items: start;
  width: 100%;
}
.footer-col p { margin: 0 0 9px; }
.footer-col .footer-brand { margin-bottom: 18px; }
.footer-col a { font-weight: 800; }
.footer-col a:hover { color: var(--mint); }
.footer-map iframe {
  width: 100%;
  height: 220px;
  border: 0;
  display: block;
  filter: grayscale(1) contrast(1.05);
  transition: filter .25s;
}
.footer-map iframe:hover { filter: none; }
.footer-map p { margin: 12px 0 0; }
.footer-map span { margin-left: 5px; }
.footer-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  margin-top: 34px;
  padding-top: 20px;
  border-top: 1px solid rgba(215, 235, 203, .18);
}
.footer-bar .copyright { margin: 0; }
.footer-bar a {
  font-size: 11px;
  font-weight: 800;
  color: #8FA689;
}
.footer-bar a:hover { color: var(--mint); }
@media (max-width: 950px) {
  .footer-inner { grid-template-columns: 1fr; gap: 32px; }
  .footer-map iframe { height: 200px; }
}
@media (max-width: 650px) {
  footer { padding: 38px 7vw 24px; }
  .footer-bar { flex-direction: column; align-items: flex-start; gap: 10px; }
}

/* Hero: 16:9 across the site. The image column drives the ratio on desktop
   (it is 0.95 of a 2fr grid, so the section reads 16:9 overall); on stacked
   layouts the image itself holds 16:9. */
.hero {
  min-height: 0;
  aspect-ratio: 16 / 9;
}
.hero-image {
  min-height: 0;
  height: 100%;
}
.hero--text-only { aspect-ratio: auto; }
@media (max-width: 950px) {
  .hero { aspect-ratio: auto; }
  .hero-image {
    min-height: 0;
    aspect-ratio: 16 / 9;
    height: auto;
    width: 100%;
  }
}
@media (max-width: 650px) {
  .hero-image { min-height: 0; aspect-ratio: 16 / 9; }
}

/* Header overlaps the hero: transparent bar sitting over the dark hero,
   with the hero content pushed clear of it. */
.site-header {
  background: transparent;
  position: absolute;
  top: 34px;
  left: 0;
  right: 0;
  z-index: 5;
  color: #fff;
}
.site-header .brand { color: #fff; }
.site-header .brand-mark {
  background: var(--mint);
  color: var(--navy);
}
.site-nav > a:not(.nav-cta) { color: #fff; }
.site-nav > a:not(.nav-cta)::after { background: var(--mint); }
.nav-trigger { color: #fff; }
.nav-trigger span { color: var(--mint); }
.menu-toggle { color: #fff; }
.nav-cta {
  background: var(--mint);
  color: var(--navy);
}
.nav-cta:hover { background: #fff; }

/* Dropdown panels keep their own light surface. */
.dropdown-menu { color: var(--ink); }

/* Legibility scrim: the nav sits over the hero photo on split heroes. */
.hero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 190px;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(18, 43, 22, .55), rgba(18, 43, 22, 0));
}
.hero--text-only::before { display: none; }

/* Hero clears the overlapping header. */
.hero-copy { padding-top: 185px; }
.hero--text-only .hero-copy { padding-top: clamp(169px, 10vw, 217px); }

@media (max-width: 950px) {
  .hero-copy { padding-top: 173px; }
}
@media (max-width: 650px) {
  .site-header { height: 75px; }
  .site-nav {
    top: 75px;
    background: #fff;
    color: var(--ink);
    box-shadow: 0 18px 30px rgba(18, 43, 22, .22);
  }
  .site-nav > a:not(.nav-cta) { color: var(--ink); }
  .site-nav > a:not(.nav-cta)::after { background: var(--mint-dark); }
  .site-nav .nav-trigger { color: var(--ink); }
  .site-nav .nav-trigger span { color: var(--mint-dark); }
  .hero-copy { padding-top: 118px; }
  .hero--text-only .hero-copy { padding-top: 118px; }
}

/* Hero headline: scale to the column so long titles cannot overflow a 16:9 hero. */
.hero-copy {
  padding-bottom: 48px;
  min-width: 0;
}
.hero h1 {
  font-size: clamp(32px, 3.4vw, 62px);
  line-height: 1.02;
  margin: 0 0 22px;
  max-width: 100%;
  overflow-wrap: break-word;
}
.hero .lede {
  font-size: clamp(14px, 1.15vw, 17px);
  line-height: 1.6;
  max-width: 500px;
}
.hero .kicker { margin-bottom: 16px; }
.hero-actions { margin-top: 26px; }

/* Text-only heroes have the full width, so they can run larger. */
.hero--text-only h1 { font-size: clamp(40px, 5vw, 76px); }
.hero--text-only .lede { font-size: clamp(15px, 1.3vw, 18px); max-width: 640px; }

@media (max-width: 950px) {
  .hero h1 { font-size: clamp(34px, 6vw, 56px); }
  .hero .lede { font-size: 16px; }
}
@media (max-width: 650px) {
  .hero h1 { font-size: clamp(30px, 8vw, 44px); }
  .hero-copy { padding-bottom: 40px; }
}

/* Quote section with embedded form: copy left, form card right. */
.quote-section {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 5vw;
  align-items: start;
  text-align: left;
}
.quote-copy { max-width: 640px; }
.quote-copy > div:first-child,
.quote-section .quote-copy > div { max-width: none; margin: 0; }
.quote-copy h2 { text-align: center; max-width: none; margin: 0; }
.quote-copy p:not(.section-label) { text-align: left; max-width: 100%; margin: 18px 0 0; }
.quote-copy .quote-actions {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  margin: 28px 0 0;
  max-width: none;
  gap: 22px;
}

/* Form card */
.quote-form {
  background: #fff;
  padding: clamp(24px, 2.4vw, 34px);
  border: 1px solid var(--line);
  align-self: start;
}
.quote-form__title {
  font-family: Fraunces, Georgia, serif;
  font-size: 22px;
  letter-spacing: -.03em;
  color: var(--ink);
  margin: 0 0 18px;
  text-align: left;
}

/* Override the embed's own injected styling to match the site. */
.quote-form form { font-family: Manrope, sans-serif !important; }
.quote-form label {
  font-family: Manrope, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--ink) !important;
  margin-bottom: 5px !important;
  display: block !important;
}
.quote-form [aria-hidden="true"] { position: absolute !important; left: -9999px !important; top: -9999px !important; opacity: 0 !important; pointer-events: none !important; }
.quote-form input[name="_rr_hp_field"] { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; padding: 0 !important; border: 0 !important; opacity: 0 !important; }
.quote-form input:not([name="_rr_hp_field"]),
.quote-form textarea,
.quote-form select {
  font-family: Manrope, sans-serif !important;
  font-size: 14px !important;
  color: var(--ink) !important;
  background: var(--cloud) !important;
  border: 1px solid var(--line) !important;
  border-radius: 0 !important;
  padding: 11px 13px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.quote-form textarea { min-height: 96px !important; resize: vertical !important; }
.quote-form input:focus,
.quote-form textarea:focus {
  outline: 2px solid var(--mint-dark) !important;
  outline-offset: -2px !important;
  background: #fff !important;
}
.quote-form input::placeholder,
.quote-form textarea::placeholder { color: #7d8f79 !important; }
.quote-form button,
.quote-form input[type="submit"] {
  font-family: Manrope, sans-serif !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  background: var(--navy) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 14px 20px !important;
  width: 100% !important;
  cursor: pointer !important;
  transition: background .2s !important;
}
.quote-form button:hover,
.quote-form input[type="submit"]:hover { background: var(--navy-2) !important; }

@media (max-width: 950px) {
  .quote-section { grid-template-columns: 1fr; gap: 34px; }
  .quote-copy { max-width: none; }
}
@media (max-width: 650px) {
  .quote-copy .quote-actions { flex-direction: column; align-items: flex-start; gap: 16px; }
}

/* Benefits grid: text-only cards, four across on desktop. */
.benefits-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.benefits-grid .service-card__body { padding: 26px; }
.benefits-grid h3 { font-size: 21px; line-height: 1.1; margin-bottom: 12px; }
.benefits-grid p { font-size: 14px; line-height: 1.65; color: #4A6B45; margin: 0; }
@media (max-width: 950px) { .benefits-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .benefits-grid { grid-template-columns: 1fr; } }
