:root {
  --green: #6eb735;
  --green-dark: #122818;
  --green-deep: #071208;
  --orange: #ea6510;
  --orange-hover: #d95708;
  --text-dark: #1b251e;
  --text-muted: #5b665e;
  --bg-light: #f5f8f4;
  --bg-soft: #eef3ee;
  --line: rgba(18, 40, 24, 0.1);
  --shadow-soft: 0 16px 42px rgba(18, 40, 24, 0.11);
  --shadow-card: 0 8px 26px rgba(18,40,24,.075), 0 1px 2px rgba(18,40,24,.045);
  --shadow-card-hover: 0 18px 44px rgba(18,40,24,.13);
  --font-heading: 'Oswald', Impact, sans-serif;
  --font-body: 'Inter', Arial, sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  color: var(--text-dark);
  background: #fff;
  line-height: 1.6;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
img { display: block; max-width: 100%; }

.container {
  width: min(100% - 96px, 1440px);
  margin-inline: auto;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 999px;
  border: 2px solid transparent;
  padding: 13px 28px;
  font-size: 13.5px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.45px;
  text-transform: uppercase;
  white-space: nowrap;
  transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease, border-color .22s ease, color .22s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-orange { background: var(--orange); color: #fff; box-shadow: 0 12px 26px rgba(234, 101, 16, 0.25); }
.btn-orange:hover { background: var(--orange-hover); box-shadow: 0 16px 34px rgba(234, 101, 16, 0.3); }
.btn-ghost { color: #fff; border-color: rgba(255,255,255,.58); background: rgba(255,255,255,.06); }
.btn-ghost:hover { background: rgba(255,255,255,.14); border-color: #fff; }
.btn-outline { color: var(--green-dark); border-color: rgba(18,40,24,.18); background: #fff; }
.btn-outline:hover { border-color: var(--green); color: var(--green-dark); }
.btn-soft { background: var(--green); color: #fff; box-shadow: 0 10px 24px rgba(110,183,53,.24); }
.btn-soft:hover { background: #5ea12c; box-shadow: 0 14px 30px rgba(110,183,53,.3); }
.btn-large { padding: 16px 34px; font-size: 14.5px; }
.btn-small { padding: 12px 25px; font-size: 13px; }

.logo {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  font-family: var(--font-heading);
  line-height: 1;
  color: #fff;
}
.logo--img { display: inline-block; }
.logo-img { display: block; height: 54px; width: auto; }
.footer .logo-img { height: 62px; }
.logo-top {
  display: inline-flex;
  align-items: center;
  font-size: 33px;
  font-weight: 700;
  letter-spacing: -.5px;
}
.logo-leaf { width: 23px; height: 23px; margin: -9px 0 0 6px; fill: var(--green); }
.logo-bottom {
  color: var(--green);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 2px;
  margin-top: -1px;
}

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 40;
  padding: 22px 0;
}
.header-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 42px;
}
.main-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 2.2vw, 34px);
}
.main-nav a {
  color: rgba(255,255,255,.94);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .55px;
  text-transform: uppercase;
}
.main-nav a:hover { color: var(--orange); }
.header-cta { display: flex; align-items: center; gap: 20px; }
.header-phone {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .4px;
  white-space: nowrap;
  text-shadow: 0 1px 4px rgba(0,0,0,.45);
}
.header-phone:hover { color: var(--orange); }
.header-phone svg { width: 16px; height: 16px; fill: #7bc043; filter: drop-shadow(0 1px 2px rgba(0,0,0,.4)); }

.hero {
  position: relative;
  min-height: 744px;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  background: var(--green-deep);
}
.hero-bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(6,12,7,.88) 0%, rgba(6,12,7,.38) 30%, rgba(6,12,7,0) 58%),
    linear-gradient(to right, rgba(6,12,7,.9) 0%, rgba(6,12,7,.58) 43%, rgba(6,12,7,.14) 100%),
    url('assets/hero-lawn-care.webp') center 39% / cover no-repeat;
  transform: scale(1.003);
}
@media (max-width: 768px) {
  .hero-bg { background:
    linear-gradient(to top, rgba(6,12,7,.88) 0%, rgba(6,12,7,.38) 30%, rgba(6,12,7,0) 58%),
    linear-gradient(to right, rgba(6,12,7,.9) 0%, rgba(6,12,7,.58) 43%, rgba(6,12,7,.14) 100%),
    url('assets/hero-lawn-care-800.webp') center 39% / cover no-repeat; }
}
.hero-content { position: relative; z-index: 2; padding-top: 140px; }
.hero-text { width: min(740px, 56vw); }
.eyebrow {
  display: block;
  color: var(--orange);
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.hero-title-group { position: relative; }
.hero-watermark {
  position: absolute;
  left: 0;
  bottom: 5px;
  z-index: -1;
  font-family: var(--font-heading);
  font-size: clamp(86px, 7vw, 126px);
  font-weight: 700;
  line-height: .9;
  letter-spacing: -2px;
  color: rgba(255,255,255,.052);
  white-space: nowrap;
}
.hero h1 {
  font-family: var(--font-heading);
  color: #fff;
  font-size: clamp(72px, 5.05vw, 100px);
  font-weight: 700;
  line-height: .92;
  letter-spacing: -1px;
  text-transform: uppercase;
}
.hero h1 span { color: var(--green); }
.hero-divider { width: min(360px, 100%); height: 3px; background: var(--green); margin: 20px 0 16px; }
.hero p { max-width: 600px; color: rgba(255,255,255,.92); font-size: 17px; line-height: 1.55; margin-bottom: 24px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 15px; }

.hero-trust {
  position: absolute;
  z-index: 5;
  left: 0;
  right: 0;
  bottom: 106px;
}
.hero-trust-inner {
  display: flex;
  align-items: center;
  gap: 34px;
  min-height: 58px;
}
.trust-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #fff;
  min-width: 0;
}
.trust-item:not(:first-child) { padding-left: 28px; border-left: 1px solid rgba(255,255,255,.18); }
.trust-item svg { width: 20px; height: 20px; fill: var(--green); flex: 0 0 auto; }
.trust-item span {
  font-family: var(--font-heading);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .45px;
  color: rgba(255,255,255,.95);
  text-transform: uppercase;
  white-space: nowrap;
}
.hero-bottom-curve {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 104px;
  z-index: 10;
  line-height: 0;
}
.hero-bottom-curve svg { width: 100%; height: 100%; }
.curve-bg { fill: #f7faf4; }
.curve-stroke { fill: none; stroke: var(--green); stroke-width: 5; }

.section-header.center { text-align: center; margin-bottom: 38px; }
.section-icon {
  width: 34px;
  height: 34px;
  margin: 0 auto 12px;
  display: grid;
  place-items: center;
  color: var(--green);
  background: rgba(110,183,53,.1);
  border: 1px solid rgba(110,183,53,.18);
  border-radius: 50%;
}
.section-icon svg { width: 20px; height: 20px; fill: currentColor; }
.section-header h2 {
  font-family: var(--font-body);
  color: var(--green-dark);
  font-size: clamp(44px, 2.55vw, 50px);
  line-height: 1.03;
  font-weight: 700;
  letter-spacing: -.04em;
  margin-bottom: 12px;
}
.section-header p { color: var(--text-muted); font-size: 16px; max-width: 690px; margin-inline: auto; }
.mini-kicker {
  display: inline-block;
  color: var(--green);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1.7px;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.services {
  position: relative;
  z-index: 11;
  margin-top: -2px;
  background: #f7faf4;
  padding: 28px 0 72px;
  border-top: 0;
}
.services::before { content: none; }
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
}
.service-card {
  background: #fff;
  border: 1px solid rgba(18,40,24,.07);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-card);
  transition: transform .22s ease, box-shadow .22s ease;
}
.service-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-card-hover); }
.service-img-wrapper { position: relative; height: 232px; overflow: hidden; background: var(--green-dark); }
.service-photo { width: 100%; height: 100%; object-fit: cover; }
.service-img-wrapper::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,10,6,0) 56%, rgba(4,10,6,.24)); }
.service-icon {
  position: absolute;
  left: 20px;
  bottom: 16px;
  z-index: 2;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--green);
  border: 3px solid #fff;
  box-shadow: 0 6px 16px rgba(18,40,24,.3);
}
.service-icon img { width: 34px; height: 34px; display: block; }
.service-content { padding: 28px 30px; text-align: left; min-height: 232px; display: flex; flex-direction: column; align-items: flex-start; }
.service-content h3 {
  font-family: var(--font-body);
  font-size: 26px;
  line-height: 1.08;
  color: var(--green-dark);
  font-weight: 700;
  letter-spacing: -.03em;
  margin-bottom: 12px;
}
.service-content p { color: var(--text-muted); font-size: 15px; line-height: 1.68; margin-bottom: 18px; max-width: 350px; }
.service-link {
  margin-top: auto;
  color: var(--orange);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .65px;
  text-transform: uppercase;
}
.service-link:hover { color: var(--orange-hover); text-decoration: underline; text-underline-offset: 4px; }

.process {
  background: #fff;
  padding: 46px 0 68px;
  border-top: 1px solid rgba(18,40,24,.04);
}
.process-header { margin-bottom: 30px; }
.process-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.process-grid::before {
  content: '';
  position: absolute;
  left: 12%;
  right: 12%;
  top: 32px;
  height: 1px;
  background: linear-gradient(90deg, rgba(110,183,53,0) 0%, rgba(110,183,53,.35) 12%, rgba(110,183,53,.35) 88%, rgba(110,183,53,0) 100%);
}
.process-step {
  position: relative;
  background: linear-gradient(180deg, #fff 0%, #fbfcfb 100%);
  border: 1px solid rgba(18,40,24,.08);
  border-radius: 16px;
  padding: 74px 24px 24px;
  box-shadow: 0 12px 28px rgba(18,40,24,.045);
}
.step-number {
  position: absolute;
  left: 24px;
  top: 18px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--green);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  z-index: 2;
}
.process-step h3 {
  font-size: 21px;
  line-height: 1.18;
  font-weight: 700;
  color: var(--green-dark);
  margin-bottom: 10px;
  letter-spacing: -.03em;
}
.process-step p { color: var(--text-muted); font-size: 14.5px; line-height: 1.65; }

.about {
  background: linear-gradient(180deg, #fff 0%, #f5f8f4 100%);
  padding: 72px 0 82px;
}
.about-inner {
  display: grid;
  grid-template-columns: minmax(520px, 1.02fr) minmax(0, .98fr);
  gap: 62px;
  align-items: center;
}
.subtitle {
  display: block;
  color: var(--green);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.about-text h2 {
  font-family: var(--font-body);
  color: var(--green-dark);
  font-size: 48px;
  line-height: 1.03;
  letter-spacing: -.05em;
  font-weight: 700;
  margin-bottom: 18px;
}
.about-text p { color: var(--text-muted); font-size: 16px; line-height: 1.78; max-width: 640px; margin-bottom: 30px; }
.about-proof-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
  margin-bottom: 24px;
}
.proof-pill {
  padding: 16px 16px 15px;
  box-shadow: 0 8px 18px rgba(18,40,24,.03);
  border-radius: 14px;
  border: 1px solid rgba(18,40,24,.08);
  background: rgba(255,255,255,.86);
}
.proof-pill strong {
  display: block;
  color: var(--green-dark);
  font-size: 14px;
  font-weight: 800;
  margin-bottom: 5px;
}
.proof-pill span { color: var(--text-muted); font-size: 13.5px; line-height: 1.45; display: block; }
.about-photo {
  position: relative;
  overflow: hidden;
  border-radius: 18px;
  border: 1px solid rgba(18,40,24,.08);
  box-shadow: 0 24px 58px rgba(18,40,24,.12);
  background: #fff;
}
.about-photo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.about-photo figcaption { background: #fff; color: var(--text-muted); font-size: 13px; font-weight: 700; padding: 14px 18px; }
.about-action-row { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 16px; }
.about-action-note { color: var(--text-muted); font-size: 14px; }
/* ADDITIVE 2026-07-22: image-less about band (home crew photo removed + homepage tree band). */
.about--no-media .about-inner { grid-template-columns: minmax(0, 1fr); max-width: 820px; margin-left: auto; margin-right: auto; gap: 0; text-align: center; }
.about--no-media .about-text { padding-top: 0; }
.about--no-media .about-text p { max-width: 640px; margin-left: auto; margin-right: auto; }
.about--no-media .about-proof-grid { max-width: 660px; margin-left: auto; margin-right: auto; }
.about--no-media .proof-pill { text-align: left; }
.about--no-media .about-action-row { justify-content: center; }
.about--no-media .about-action-note { flex-basis: 100%; text-align: center; margin-top: 2px; }
/* ADDITIVE 2026-07-22: branded green content card in the about media slot (replaces the removed crew photo). */
.about--card .about-inner { align-items: stretch; }
.about--card .about-media { display: flex; }   /* let the card fill the stretched cell so its bottom aligns with the text column */
.about-card {
  flex: 1 1 auto;
  display: flex; flex-direction: column; justify-content: center; gap: 15px;
  background: linear-gradient(158deg, var(--green-dark) 0%, var(--green-deep) 100%);
  color: #fff; border-radius: 18px; padding: 44px 40px; min-height: 340px;
  border: 1px solid rgba(255,255,255,.06); box-shadow: 0 24px 58px rgba(18,40,24,.18);
}
.about-card__eyebrow { color: var(--green); font-size: 13px; font-weight: 800; letter-spacing: 1.3px; text-transform: uppercase; }
.about-card__heading { font-family: var(--font-body); color: #fff; font-size: 27px; line-height: 1.14; letter-spacing: -.02em; font-weight: 700; }
.about-card__list { list-style: none; display: flex; flex-direction: column; gap: 13px; margin: 4px 0 0; padding: 0; }
.about-card__list li { position: relative; padding-left: 30px; font-size: 15px; line-height: 1.5; color: rgba(255,255,255,.9); }
.about-card__list li::before { content: ""; position: absolute; left: 0; top: 1px; width: 18px; height: 18px; border-radius: 50%; background: rgba(110,183,53,.18); }
.about-card__list li::after { content: ""; position: absolute; left: 6px; top: 5px; width: 5px; height: 9px; border: solid var(--green); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.about-card__cta { align-self: flex-start; margin-top: 10px; }
/* Alternating band: swap column ORDER only (keep the default column widths so
   the mobile 1fr collapse still applies; a grid-template override here would
   fight the responsive rule and crush the text column). */
.about--reverse .about-media { order: 2; }
.about--reverse .about-text { order: 1; }
@media (max-width: 900px) {
  .about-card { min-height: 0; padding: 34px 30px; }
  .about--card .about-media, .about--reverse .about-media { order: 2; }
  .about--card .about-text, .about--reverse .about-text { order: 1; }
}

.testimonials {
  background: linear-gradient(180deg, #f6f9f5 0%, #fff 100%);
  padding: 40px 0 60px;
}

.proof-strip {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(620px, .95fr);
  gap: 34px;
  align-items: stretch;
}
.proof-quote {
  color: #fff;
  border-radius: 20px;
  padding: 34px 36px;
  background:
    linear-gradient(135deg, rgba(9,26,13,.96) 0%, rgba(17,50,28,.94) 58%, rgba(22,63,35,.92) 100%);
  box-shadow: 0 20px 46px rgba(7,18,8,.18);
}
.proof-quote .mini-kicker { color: rgba(110,183,53,.95); }
.stars { color: #ffcf75; font-size: 17px; letter-spacing: 3px; margin-bottom: 14px; }
.proof-quote blockquote {
  font-size: 26px;
  line-height: 1.35;
  font-weight: 500;
  letter-spacing: -.03em;
  margin-bottom: 16px;
}
.proof-quote cite {
  display: inline-block;
  font-style: normal;
  color: rgba(255,255,255,.78);
  font-size: 14px;
  font-weight: 700;
}
.proof-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
.thumb-card {
  border-radius: 18px;
  overflow: hidden;
  min-height: 100%;
  box-shadow: 0 14px 38px rgba(18,40,24,.08);
}
.thumb-card img { width: 100%; height: 100%; min-height: 260px; object-fit: cover; }

.final-cta {
  background: #fff;
  padding: 40px 0 58px;
}
.final-cta-inner {
  border: 1px solid rgba(18,40,24,.08);
  border-radius: 20px;
  padding: 34px 38px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 34px;
  background: linear-gradient(180deg, #fff 0%, #fbfcfb 100%);
  box-shadow: 0 14px 32px rgba(18,40,24,.055);
}
.final-cta-copy h2 {
  font-size: 36px;
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: -.04em;
  color: var(--green-dark);
  margin-bottom: 12px;
}
.final-cta-copy p { color: var(--text-muted); font-size: 16px; max-width: 700px; }
.final-cta-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}
.final-cta-actions .btn { min-width: 270px; }
.cta-help {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  max-width: 420px;
}
.cta-help span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 7px 12px;
  border: 1px solid rgba(18,40,24,.12);
  border-radius: 999px;
  background: var(--bg-light);
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .8px;
  text-transform: uppercase;
}
.cta-help span:first-child {
  border: 0;
  padding-left: 0;
  background: transparent;
  color: var(--text-muted);
}

.footer { background: #061006; color: #fff; padding: 56px 0 52px; }
.footer-inner { display: grid; grid-template-columns: 1.15fr .9fr 1.05fr .55fr; gap: 62px; align-items: start; }
.footer p, .footer li, .footer a { color: rgba(255,255,255,.72); font-size: 14px; }
.footer .logo { margin-bottom: 16px; }
.footer h2 {
  color: #fff;
  font-family: var(--font-heading);
  font-size: 16px;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.footer li + li { margin-top: 10px; }
.footer a:hover { color: var(--green); }
.contact-col li { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; }
.contact-col svg { width: 17px; height: 17px; fill: var(--green); margin-top: 2px; }
.social-icon { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 50%; background: var(--green); color: #fff !important; }
.social-icon svg { width: 18px; height: 18px; fill: currentColor; }

@media (max-width: 1280px) {
  .container { width: min(100% - 56px, 1180px); }
  .header-inner { gap: 34px; }
  .main-nav { gap: 18px; }
  .header-phone { display: none; }
  .hero-text { width: min(720px, 70vw); }
  .hero-trust-inner { gap: 16px; flex-wrap: wrap; align-content: center; }
  .trust-item:not(:first-child) { padding-left: 16px; }
  .services::before { content: none; }
.services-grid { gap: 24px; }
  .process-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .process-grid::before { display: none; }
  .about-inner, .proof-strip, .final-cta-inner { grid-template-columns: 1fr; }
  .final-cta-actions { align-items: flex-start; }
  .cta-help { justify-content: flex-start; }
}

@media (max-width: 860px) {
  .container { width: min(100% - 36px, 720px); }
  .site-header { padding: 18px 0; }
  .header-inner { grid-template-columns: 1fr auto; }
  .main-nav { display: none; }
  .hero { min-height: 820px; }
  .hero-content { padding-top: 138px; }
  .hero-text { width: 100%; }
  .hero h1 { font-size: 62px; }
  .hero-watermark { font-size: 72px; }
  .hero-trust { bottom: 116px; }
  .hero-trust-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 18px; }
  .trust-item:not(:first-child) { padding-left: 0; border-left: 0; }
  .trust-item span { font-size: 12px; }
  .services-grid, .process-grid, .about-inner, .proof-strip, .proof-gallery, .footer-inner, .about-proof-grid { grid-template-columns: 1fr; }
  .service-content h3 { font-size: 26px; }
  .about-text h2, .final-cta-copy h2 { font-size: 36px; }
  .proof-quote blockquote { font-size: 22px; }
}

@media (max-width: 560px) {
  .btn { width: 100%; }
  .header-cta .btn { display: none; }
  .logo-top { font-size: 29px; }
  .logo-img { height: 46px; }
  .footer .logo-img { height: 52px; }
  .hero h1 { font-size: 52px; }
  .hero-actions { width: 100%; }
  .hero-trust-inner { grid-template-columns: 1fr; }
  .hero-bottom-curve { height: 84px; }
  .service-img-wrapper { height: 190px; }
  .section-header h2 { font-size: 40px; }
  .service-content h3 { font-size: 24px; }
  .process-step { padding: 68px 20px 20px; }
  .about-text h2, .final-cta-copy h2 { font-size: 32px; }
  .proof-quote { padding: 26px 22px; }
  .about-action-row { align-items: flex-start; }
  .proof-quote blockquote { font-size: 20px; }
  .thumb-card img { min-height: 200px; }
  .final-cta-inner { padding: 24px 22px; }
}


.proof-rotator {
  display: grid;
  grid-template-columns: minmax(0, .92fr) minmax(620px, 1.08fr);
  gap: 32px;
  align-items: stretch;
}
.proof-copy-panel {
  position: relative;
  color: #fff;
  border-radius: 22px;
  padding: 34px 36px 28px;
  background: linear-gradient(135deg, rgba(9,26,13,.98) 0%, rgba(16,48,27,.95) 58%, rgba(24,70,38,.92) 100%);
  box-shadow: 0 20px 46px rgba(7,18,8,.18);
  overflow: hidden;
}
.proof-copy-panel::after {
  content: '';
  position: absolute;
  inset: auto -80px -80px auto;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(110,183,53,.18) 0%, rgba(110,183,53,0) 72%);
}
.proof-copy-panel .mini-kicker { color: rgba(110,183,53,.98); margin-bottom: 18px; }
.review-stage { position: relative; min-height: 220px; }
.review-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .45s ease, transform .45s ease;
  pointer-events: none;
}
.review-slide.is-active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.review-slide blockquote {
  font-size: 34px;
  line-height: 1.28;
  font-weight: 500;
  letter-spacing: -.035em;
  margin-bottom: 16px;
}
.review-slide cite {
  display: inline-block;
  font-style: normal;
  color: rgba(255,255,255,.76);
  font-size: 14px;
  font-weight: 700;
}
.review-controls {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 10px;
  margin-top: 16px;
}
.review-dot {
  width: 34px;
  height: 6px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  cursor: pointer;
  transition: background-color .25s ease, transform .25s ease;
}
.review-dot.is-active { background: var(--green); transform: scaleX(1.08); }
.gallery-stage {
  position: relative;
  min-height: 328px;
  border-radius: 22px;
  overflow: hidden;
}
.gallery-set {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  opacity: 0;
  transform: scale(.985);
  transition: opacity .45s ease, transform .45s ease;
  pointer-events: none;
}
.gallery-set.is-active {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}
.gallery-set .thumb-card {
  height: 100%;
  min-height: 328px;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 38px rgba(18,40,24,.08);
}
.gallery-set .thumb-card img { width: 100%; height: 100%; object-fit: cover; }
.gallery-set .thumb-card:first-child img,
.gallery-set .thumb-card:nth-child(2) img,
.gallery-set .thumb-card:nth-child(3) img { object-position: center; }
.cta-tagline {
  font-family: var(--font-heading);
  font-size: clamp(50px, 3.7vw, 60px);
  line-height: .96;
  letter-spacing: -.025em;
  color: var(--green-dark);
  margin-bottom: 12px;
}
.cta-tagline strong { color: var(--green); font-weight: 700; }
.final-cta-copy h2 {
  font-size: 34px;
  line-height: 1.1;
  font-weight: 700;
  letter-spacing: -.04em;
  color: var(--green-dark);
  margin-bottom: 12px;
  max-width: 720px;
}
.final-cta-copy .mini-kicker { margin-bottom: 10px; }
@media (max-width: 1280px) {
  .proof-rotator { grid-template-columns: 1fr; }
  .gallery-stage { min-height: 280px; }
}
@media (max-width: 860px) {
  .review-stage { min-height: 240px; }
  .review-slide blockquote { font-size: 24px; }
  .gallery-set,
  .gallery-set.is-active { position: relative; opacity: 1; transform: none; }
  .gallery-set:not(.is-active) { display: none; }
  .gallery-set .thumb-card { min-height: 220px; }
  .cta-tagline { font-size: 40px; }
  .final-cta-copy h2 { font-size: 28px; }
}
@media (max-width: 560px) {
  .proof-copy-panel { padding: 28px 22px 24px; }
  .review-stage { min-height: 268px; }
  .review-slide blockquote { font-size: 21px; }
  .review-controls { margin-top: 12px; }
  .cta-tagline { font-size: 34px; }
}


/* Targeted proof-module refinement */
.proof-rotator {
  position: relative;
  padding-right: 54px;
}
.review-controls {
  position: absolute;
  top: 50%;
  right: 18px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 11px;
  margin-top: 0;
  transform: translateY(-50%);
}
.review-dot {
  width: 9px;
  height: 34px;
  border-radius: 999px;
  background: rgba(18, 40, 24, .16);
  border: 1px solid rgba(18, 40, 24, .08);
  box-shadow: none;
}
.review-dot.is-active {
  background: var(--green);
  transform: none;
}
.proof-copy-panel .review-dot {
  background: rgba(255,255,255,.22);
  border-color: rgba(255,255,255,.08);
}
.proof-copy-panel .review-dot.is-active {
  background: var(--green);
}
@media (max-width: 1280px) {
  .proof-rotator { padding-right: 0; }
  .review-controls {
    position: relative;
    inset: auto;
    transform: none;
    flex-direction: row;
    justify-content: center;
    margin-top: 18px;
  }
  .review-dot { width: 34px; height: 6px; }
}


/* Whole-page evaluation fix pass */
.services .section-header { margin-bottom: 32px; }
.services .section-icon { margin-bottom: 10px; }
.services .section-header p { max-width: 760px; }
.services-grid { align-items: stretch; }
.service-card { display: flex; flex-direction: column; }
.service-content { flex: 1 1 auto; }

.about-inner { align-items: start; }
.about-text { padding-top: 6px; }
.about-action-row { margin-top: 4px; }

.proof-rotator {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .98fr) minmax(0, 1.02fr);
  gap: 26px;
  align-items: stretch;
  padding-right: 60px;
}
.proof-copy-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 360px;
  padding: 34px 38px 34px;
}
.proof-copy-panel .mini-kicker { margin-bottom: 16px; }
.review-stage {
  position: relative;
  min-height: 268px;
}
.review-slide {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.review-slide blockquote {
  font-size: 31px;
  line-height: 1.3;
  margin-bottom: 18px;
  max-width: 96%;
}
.review-slide cite {
  margin-top: auto;
  padding-top: 4px;
}
.review-controls {
  position: absolute;
  top: 50%;
  right: 18px;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
}
.review-dot {
  width: 8px;
  height: 32px;
  border-radius: 999px;
  background: rgba(18,40,24,.12);
  border: 1px solid rgba(18,40,24,.07);
}
.proof-copy-panel .review-dot {
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.09);
}
.gallery-stage {
  min-height: 360px;
}
.gallery-set {
  position: absolute;
  inset: 0;
  grid-template-columns: 1.05fr .86fr .86fr;
}
.gallery-set .thumb-card,
.gallery-set .thumb-card img {
  min-height: 360px;
}
.gallery-set .thumb-card:first-child img { object-position: 36% center; }
.gallery-set .thumb-card:nth-child(2) img { object-position: center; }
.gallery-set .thumb-card:nth-child(3) img { object-position: center; }

.final-cta-inner {
  grid-template-columns: minmax(0, 1.15fr) auto;
  align-items: center;
}
.final-cta-copy { max-width: 760px; }
.final-cta-copy .mini-kicker { margin-bottom: 8px; }
.cta-tagline {
  margin-bottom: 14px;
}
.final-cta-actions { justify-self: end; }

@media (max-width: 1280px) {
  .proof-rotator {
    grid-template-columns: 1fr;
    padding-right: 0;
  }
  .proof-copy-panel {
    min-height: 0;
  }
  .review-controls {
    position: relative;
    top: auto;
    right: auto;
    transform: none;
    flex-direction: row;
    justify-content: center;
    margin-top: 18px;
  }
  .review-dot {
    width: 34px;
    height: 6px;
  }
  .gallery-stage {
    min-height: 300px;
  }
  .gallery-set,
  .gallery-set .thumb-card,
  .gallery-set .thumb-card img {
    min-height: 300px;
  }
}
@media (max-width: 860px) {
  .services { padding-top: 20px; padding-bottom: 60px; }
  .process { padding-top: 38px; padding-bottom: 56px; }
  .about { padding-top: 58px; padding-bottom: 68px; }
  .testimonials { padding-top: 30px; padding-bottom: 50px; }
  .review-stage { min-height: 258px; }
  .review-slide blockquote { font-size: 24px; max-width: 100%; }
  .gallery-set { position: relative; grid-template-columns: 1fr 1fr 1fr; }
}
@media (max-width: 560px) {
  .review-stage { min-height: 292px; }
  .review-slide blockquote { font-size: 21px; }
  .gallery-set { grid-template-columns: 1fr; }
  .gallery-set .thumb-card,
  .gallery-set .thumb-card img { min-height: 210px; }
}


/* Review rotator rebuilt for clean cycling and 20-review scalability */
.review-stage {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 276px;
  gap: 0;
  transition: opacity .22s ease, transform .22s ease;
  will-change: opacity, transform;
}
.review-stage.is-transitioning {
  opacity: .02;
  transform: translateY(4px);
}
.review-stage [data-review-quote] {
  font-size: 31px;
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: -.035em;
  margin-bottom: 18px;
  max-width: 96%;
}
.review-stage [data-review-author] {
  display: inline-block;
  font-style: normal;
  color: rgba(255,255,255,.78);
  font-size: 14px;
  font-weight: 700;
}
.review-controls {
  position: absolute;
  top: 50%;
  right: 18px;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin: 0;
  z-index: 5;
}
.review-arrow {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}
.review-arrow:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,.14);
  border-color: rgba(255,255,255,.22);
}
.review-count {
  min-width: 48px;
  text-align: center;
  color: rgba(255,255,255,.9);
  font-family: var(--font-heading);
  font-size: 18px;
  letter-spacing: .04em;
}
.review-count-sep {
  color: rgba(255,255,255,.4);
  padding-inline: 2px;
}

.gallery-stage {
  position: relative;
  display: grid;
  grid-template-columns: 1.05fr .86fr .86fr;
  gap: 14px;
  min-height: 360px;
  border-radius: 22px;
  overflow: hidden;
}
.gallery-stage .thumb-card {
  min-height: 360px;
  height: 100%;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 38px rgba(18,40,24,.08);
}
.gallery-stage .thumb-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity .25s ease;
}
.gallery-stage .thumb-card-featured img { object-position: 36% center; }
.gallery-stage .thumb-card:nth-child(2) img { object-position: center; }
.gallery-stage .thumb-card:nth-child(3) img { object-position: center; }

@media (max-width: 1280px) {
  .review-controls {
    position: relative;
    top: auto;
    right: auto;
    transform: none;
    flex-direction: row;
    justify-content: center;
    margin-top: 18px;
  }
  .review-stage [data-review-quote] {
    max-width: 100%;
  }
  .gallery-stage {
    min-height: 300px;
  }
  .gallery-stage .thumb-card {
    min-height: 300px;
  }
}

@media (max-width: 860px) {
  .review-stage {
    min-height: 250px;
  }
  .review-stage [data-review-quote] {
    font-size: 24px;
  }
  .gallery-stage {
    grid-template-columns: 1fr 1fr 1fr;
    min-height: 240px;
  }
  .gallery-stage .thumb-card {
    min-height: 240px;
  }
}

@media (max-width: 560px) {
  .review-stage {
    min-height: 286px;
  }
  .review-stage [data-review-quote] {
    font-size: 21px;
  }
  .review-controls {
    gap: 10px;
  }
  .review-arrow {
    width: 34px;
    height: 34px;
  }
  .review-count {
    font-size: 16px;
  }
  .gallery-stage {
    grid-template-columns: 1fr;
  }
  .gallery-stage .thumb-card {
    min-height: 210px;
  }
}

/* Sticky mobile call/text bar (fills the gap left by the collapsed mobile header) */
.mobile-cta-bar { display: none; }
@media (max-width: 860px) {
  .mobile-cta-bar {
    display: grid; grid-template-columns: 1fr 1fr 1.3fr; gap: 7px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom, 0px));
    background: rgba(255,255,255,.97); backdrop-filter: blur(6px);
    box-shadow: 0 -6px 22px rgba(18,40,24,.14); border-top: 1px solid var(--line);
  }
  .mcb-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    min-width: 0; height: 48px; border-radius: 999px; font-family: var(--font-body);
    font-weight: 800; font-size: 12px; letter-spacing: 0; text-transform: uppercase;
    white-space: nowrap; line-height: 1;
  }
  .mcb-btn svg { width: 16px; height: 16px; fill: currentColor; flex: 0 0 auto; }
  .mcb-call { background: #fff; color: var(--green-dark); border: 2px solid rgba(18,40,24,.18); }
  .mcb-text { background: #fff; color: var(--green-dark); border: 2px solid rgba(18,40,24,.18); }
  .mcb-form { background: var(--orange); color: #fff; box-shadow: 0 8px 18px rgba(234,101,16,.28); }
  body { padding-bottom: 74px; } /* keep footer clear of the fixed bar */
}

/* ---- Review controls: cohesive bottom row (fix floating/overlapping arrows) ---- */
.proof-rotator { padding-right: 0 !important; }
.review-controls {
  position: static !important; transform: none !important; inset: auto !important;
  display: flex; flex-direction: row !important; align-items: center; gap: 16px;
  margin-top: 28px !important;
}
.review-arrow {
  width: 44px; height: 44px; border-radius: 50%; padding: 0;
  border: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.07);
  color: #fff; display: grid; place-items: center; font-size: 20px; line-height: 1;
  cursor: pointer; transition: background .22s ease, border-color .22s ease, transform .22s ease;
}
.review-arrow:hover { background: var(--green); border-color: var(--green); transform: translateY(-1px); }
.review-arrow:active { transform: translateY(0); }
.review-count { color: rgba(255,255,255,.74); font-weight: 700; letter-spacing: 1.5px;
  font-variant-numeric: tabular-nums; font-size: 13px; }
.review-count-sep { opacity: .45; margin: 0 3px; }

/* ---- Sticky header: transparent over hero, solid on scroll (persistent CTA) ---- */
.site-header { position: fixed; transition: background-color .3s ease, padding .28s ease, box-shadow .3s ease; }
.site-header.scrolled {
  background: rgba(7,18,8,.94); backdrop-filter: blur(8px);
  box-shadow: 0 6px 24px rgba(7,18,8,.22);
  padding-top: 14px; padding-bottom: 14px;
}

/* ---- Interior pages (service/city) ---- */
.container.narrow { width: min(100% - 96px, 820px); }
.page-hero { background: linear-gradient(135deg, var(--green-deep) 0%, var(--green-dark) 70%); color:#fff; padding: 150px 0 62px; }
.page-hero .mini-kicker { color: var(--orange); }
.page-hero h1 { font-family: var(--font-heading); font-size: clamp(40px, 4.4vw, 64px); line-height:1.02; text-transform:uppercase; letter-spacing:-.5px; margin: 8px 0 14px; }
.page-hero h1 span { color: var(--green); }
.page-hero p { color: rgba(255,255,255,.9); font-size: 18px; max-width: 640px; margin-bottom: 26px; }
.page-hero-actions { display:flex; flex-wrap:wrap; gap:14px; }
.page-hero .btn-outline { color:#fff; border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.06); }
.page-hero .btn-outline:hover { border-color:#fff; color:#fff; }
.svc-body { padding: 60px 0 20px; }
.svc-body h2, .page-faq h2 { font-size: clamp(30px, 2.4vw, 40px); color: var(--green-dark); letter-spacing:-.03em; margin-bottom:16px; }
.svc-body p { color: var(--text-muted); font-size: 17px; line-height:1.75; margin-bottom:16px; }
.svc-proof { padding: 30px 0 60px; }
.svc-proof-inner { display:grid; grid-template-columns: 1.1fr .9fr; gap:36px; align-items:center; }
.svc-photo { border-radius:18px; overflow:hidden; box-shadow: var(--shadow-soft); }
.svc-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.svc-reviews { display:flex; flex-direction:column; gap:18px; }
.mini-review { background:#fff; border:1px solid var(--line); border-left:4px solid var(--green); border-radius:12px; padding:18px 20px; font-size:16px; color:var(--text-dark); box-shadow: var(--shadow-card); }
.mini-review cite { display:block; margin-top:10px; font-style:normal; font-weight:700; color:var(--text-muted); font-size:14px; }
.page-faq { padding: 20px 0 70px; background: var(--bg-light); }
.faq-item { background:#fff; border:1px solid var(--line); border-radius:12px; margin-bottom:12px; padding: 4px 20px; }
.faq-item summary { cursor:pointer; font-weight:700; color:var(--green-dark); padding:16px 0; font-size:17px; list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; float:right; color:var(--green); font-weight:800; }
.faq-item[open] summary::after { content:'\2212'; }
.faq-item p { color:var(--text-muted); padding:0 0 18px; line-height:1.7; }
@media (max-width: 860px){ .svc-proof-inner { grid-template-columns:1fr; } .container.narrow { width: min(100% - 36px, 820px);} .page-hero { padding-top: 120px; } }

/* ---- Hub / content pages ---- */
.hub-note { text-align:center; color:var(--text-muted); font-size:15px; margin-top:26px; }
.hub-note a { color:var(--green-dark); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.area-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.area-card { display:flex; flex-direction:column; gap:6px; padding:26px 24px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-card); transition:transform .2s ease, box-shadow .2s ease; }
.area-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-card-hover); }
.area-card strong { font-family:var(--font-heading); font-size:24px; color:var(--green-dark); text-transform:uppercase; letter-spacing:-.3px; }
.area-card span { color:var(--text-muted); font-size:15px; }
.reviews-page, .gallery-page { padding:60px 0 70px; }
.reviews-masonry { columns:3; column-gap:22px; }
.review-card { break-inside:avoid; background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px 24px; margin-bottom:22px; box-shadow:var(--shadow-card); }
.review-card .stars { color:#ffcf75; font-size:15px; letter-spacing:2px; margin-bottom:10px; }
.review-card p { color:var(--text-dark); font-size:15.5px; line-height:1.6; margin-bottom:12px; }
.review-card cite { font-style:normal; font-weight:700; color:var(--text-muted); font-size:14px; }
.gal-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.gal-tile { border-radius:16px; overflow:hidden; box-shadow:var(--shadow-card); aspect-ratio:4/3; }
.gal-tile img { width:100%; height:100%; object-fit:cover; display:block; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start; }
.contact-cta { display:flex; flex-direction:column; gap:14px; align-items:flex-start; }
.contact-cta .btn { min-width:270px; }
.cta-help-note { color:var(--text-muted); font-size:14px; }
.contact-list { display:flex; flex-direction:column; gap:16px; }
.contact-list li { color:var(--text-muted); font-size:16px; }
.contact-list strong { display:block; color:var(--green-dark); font-family:var(--font-heading); text-transform:uppercase; font-size:14px; letter-spacing:.5px; margin-bottom:2px; }
@media (max-width:860px){ .area-grid,.gal-grid{grid-template-columns:1fr 1fr;} .reviews-masonry{columns:2;} .contact-grid{grid-template-columns:1fr;} }
@media (max-width:560px){ .area-grid,.gal-grid{grid-template-columns:1fr;} .reviews-masonry{columns:1;} }

/* ---- Final CTA: clean stack on mobile (was squishing the heading) ---- */
@media (max-width: 860px){
  .final-cta-inner { grid-template-columns: 1fr !important; gap: 22px; }
  .final-cta-actions { align-items: stretch; }
  .final-cta-actions .btn { min-width: 0; width: 100%; }
}

/* ---- Quote modal ---- */
.quote-modal { position: fixed; inset: 0; z-index: 200; display: none; }
.quote-modal.is-open { display: block; }
.qm-overlay { position: absolute; inset: 0; background: rgba(7,18,8,.62); backdrop-filter: blur(3px); animation: qmFade .25s ease; }
@keyframes qmFade { from { opacity: 0; } to { opacity: 1; } }
.qm-panel { position: relative; max-width: 480px; margin: 6vh auto; background: #fff; border-radius: 20px;
  box-shadow: 0 30px 80px rgba(7,18,8,.4); overflow: hidden; animation: qmPop .28s cubic-bezier(.2,.8,.25,1); max-height: 88vh; overflow-y: auto; }
@keyframes qmPop { from { opacity: 0; transform: translateY(16px) scale(.98); } to { opacity: 1; transform: none; } }
.qm-close { position: absolute; top: 12px; right: 14px; z-index: 2; width: 38px; height: 38px; border: 0; border-radius: 50%;
  background: rgba(18,40,24,.06); color: var(--green-dark); font-size: 26px; line-height: 1; cursor: pointer; transition: background .2s; }
.qm-close:hover { background: rgba(18,40,24,.12); }
.qm-body { padding: 34px 32px 30px; }
.qm-head { margin-bottom: 20px; }
.qm-head h2 { font-family: var(--font-body); font-size: 30px; color: var(--green-dark); letter-spacing: -.03em; margin: 6px 0 8px; }
.qm-sub { color: var(--text-muted); font-size: 15px; line-height: 1.5; }
.qm-field { margin-bottom: 15px; }
.qm-field label { display: block; font-weight: 700; font-size: 13.5px; color: var(--green-dark); margin-bottom: 6px; }
.qm-opt { font-weight: 500; color: var(--text-muted); text-transform: none; }
.qm-field input, .qm-field select, .qm-field textarea { width: 100%; padding: 13px 14px; border: 1.5px solid var(--line); border-radius: 11px;
  font-family: var(--font-body); font-size: 16px; color: var(--text-dark); background: #fff; transition: border-color .2s, box-shadow .2s; }
.qm-field input:focus, .qm-field select:focus, .qm-field textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(110,183,53,.18); }
.qm-field.has-error input, .qm-field.has-error select { border-color: #d9463b; }
.qm-error { display: block; color: #d9463b; font-size: 12.5px; font-weight: 600; margin-top: 5px; min-height: 0; }
.qm-submit { width: 100%; margin-top: 6px; }
.qm-submit[disabled] { opacity: .7; pointer-events: none; }
.qm-trust { text-align: center; color: var(--text-muted); font-size: 12.5px; margin-top: 12px; }
.qm-success { padding: 44px 32px; text-align: center; }
.qm-check { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; background: var(--green); color: #fff; display: grid; place-items: center; font-size: 34px; }
.qm-success h2 { font-family: var(--font-body); font-size: 28px; color: var(--green-dark); margin-bottom: 10px; }
.qm-success p { color: var(--text-muted); font-size: 16px; line-height: 1.6; margin-bottom: 20px; }
body.qm-locked { overflow: hidden; }
@media (max-width: 560px){
  .qm-panel { margin: 0; max-width: 100%; min-height: 100%; border-radius: 0; max-height: 100vh; }
  .qm-body { padding: 28px 20px 24px; }
  .qm-head h2 { font-size: 26px; }
}

/* footer legal bar */
.footer-legal { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; align-items:center;
  margin-top:34px; padding-top:22px; border-top:1px solid rgba(255,255,255,.1); }
.footer-legal span, .footer-legal a { color:rgba(255,255,255,.55); font-size:13px; }
.footer-legal a:hover { color:var(--green); }
/* NLH attribution: subtle pill-badge credit, dofollow SEO link to Next Level HTML */
.footer-credit { display:flex; justify-content:center; padding:4px 0; margin-top:2px; }
.footer-nlh { display:inline-block; padding:5px 12px; border:1px solid rgba(123,192,67,.26); border-radius:40px; color:rgba(255,255,255,.46); text-transform:uppercase; letter-spacing:.1em; font-family:var(--font-body); font-weight:700; font-size:7px; text-decoration:none; text-align:center; transition:border-color .25s ease, color .25s ease, background .25s ease; }
.footer-nlh strong { color:rgba(255,255,255,.78); font-weight:800; letter-spacing:.1em; }
.footer-nlh:hover { border-color:var(--orange); color:rgba(255,255,255,.9); background:rgba(234,101,16,.08); }
.footer-nlh:hover strong { color:#fff; }
@media (max-width:560px) {
  .footer-nlh { font-size:6.5px; letter-spacing:.07em; padding:5px 11px; }
  .footer-nlh strong { letter-spacing:.07em; }
}

/* Mobile contact fix: header phone must show on mobile (contact info was hidden) */
@media (max-width: 860px) {
  .header-phone { display: inline-flex !important; align-items: center; gap: 6px; font-size: 15px; font-weight: 700; color: #fff; }
  .header-phone svg { width: 15px; height: 15px; }
}
@media (max-width: 560px) {
  /* keep the header phone visible even after the Text button hides; tighten spacing */
  .header-cta { gap: 0; }
  .header-phone { font-size: 14px; }
}
/* "Need a mow? Call the bros." as a click-to-call link */
.cta-callbros { color: inherit; text-decoration: none; display: inline; cursor: pointer; }
.cta-callbros:hover strong, .cta-callbros:focus strong { text-decoration: underline; text-underline-offset: 3px; }

/* Visible breadcrumb trail (matches BreadcrumbList schema) */
.page-hero .breadcrumbs { margin-bottom: 14px; }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:6px; align-items:center; list-style:none; padding:0; margin:0; font-size:13px; }
.breadcrumbs li { display:flex; align-items:center; color: rgba(255,255,255,.72); }
.breadcrumbs li:not(:last-child)::after { content:'/'; color: rgba(255,255,255,.4); margin:0 2px 0 8px; }
.breadcrumbs a { color: rgba(255,255,255,.85); text-decoration:none; }
.breadcrumbs a:hover { color:#fff; text-decoration:underline; text-underline-offset:2px; }
.breadcrumbs li[aria-current] { color: var(--green); font-weight:700; }

/* Quote form honeypot (hidden from users, bots fill it) */
.qm-hp { position:absolute !important; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }

/* Internal cross-linking */
.service-content h3 a { color: inherit; text-decoration: none; }
.service-content h3 a:hover { color: var(--green-dark); }
.related-links { padding: 40px 0 10px; background: var(--bg-light); }
.related-links .container { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.rel-group h2 { font-size: 18px; color: var(--green-dark); margin-bottom: 12px; letter-spacing: -.01em; }
.rel-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.rel-chip { display: inline-flex; padding: 8px 15px; border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--text-dark); font-size: 14px; font-weight: 600; text-decoration: none; transition: border-color .2s, color .2s; }
.rel-chip:hover { border-color: var(--green); color: var(--green-dark); }
@media (max-width: 640px){ .related-links .container { grid-template-columns: 1fr; gap: 22px; } }
