:root {
  --bg:#ffffff; --surface:#ffffff; --text:#1f2a1f; --muted:#5d675d; --line:#e6e8e2;
  --brand:#214a2d; --brand-2:#4f7d3f; --accent:#c79b52; --shadow:0 14px 34px rgba(17,34,18,.08);
  --radius:18px; --wrap:min(1140px, calc(100vw - 2rem)); --brand-logo-size:54px; --brand-logo-size-mobile:44px; --header-offset:80px;
  --mobile-hero-height:100svh;
  --hero-light-fade:linear-gradient(90deg, #edf7d2 0%, #fcfef8 62%, #ffffff 100%);
  --hero-lawn-background:
    repeating-linear-gradient(135deg,
      rgba(0,0,0,.015) 0 120px,
      rgba(255,255,255,.008) 120px 240px
    ),
    linear-gradient(135deg, rgba(27,58,36,.95), rgba(44,82,53,.92));
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font:16px/1.65 "Montserrat", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; color:var(--text); background:var(--bg); }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button, input, select, textarea { font:inherit; }
.skip-link {
  position:fixed; left:1rem; top:0; transform:translateY(calc(-100% - 1rem));
  padding:.75rem 1rem; background:var(--brand); color:#fff; border-radius:999px; z-index:1000;
}
.skip-link:focus { top:1rem; transform:none; }
.wrap { width:var(--wrap); margin:0 auto; }
.section { padding:4rem 0; }
.surface { background:transparent; }
.eyebrow { margin:0 0 .75rem; color:var(--brand-2); font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.82rem; }
h1, h2, h3 { font-family:"Montserrat", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; font-weight:800; letter-spacing:-.025em; line-height:1.02; margin:0 0 1rem; }
h1 { font-size:clamp(2.7rem, 4vw, 4.8rem); }
h2 { font-size:clamp(2rem, 3vw, 3rem); }
h3 { font-size:1.35rem; }
p { margin:0 0 1rem; color:var(--muted); }

.site-header {
  position:sticky; top:0; z-index:100; color:#fff;
  background:rgba(21,40,24,.92); backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.08); box-shadow:0 8px 20px rgba(17,28,18,.14);
}
.header-row, .hero-grid, .split-grid, .contact-grid { display:grid; gap:1.5rem; }
.header-row { grid-template-columns:auto 1fr auto; align-items:center; padding:.8rem 0; }
.brand { display:flex; align-items:center; gap:.7rem; }
.brand img { width:var(--brand-logo-size); height:var(--brand-logo-size); flex:0 0 var(--brand-logo-size); object-fit:contain; padding:0; background:transparent; border-radius:0; }
.brand > span { display:flex; flex-direction:column; justify-content:space-between; height:var(--brand-logo-size); padding:0; white-space:nowrap; }
.brand strong {
  display:block; margin:0; color:#f5f7f8; font-family:"Montserrat", "Arial Black", "Segoe UI", sans-serif; font-size:clamp(2rem, 2.95vw, 2.8rem);
  font-weight:900; line-height:.8; letter-spacing:.01em; text-transform:uppercase; text-shadow:0 2px 4px rgba(0,0,0,.22);
}
.brand small {
  display:block; margin:0; color:rgba(255,255,255,.92); font-family:"Montserrat", "Arial Black", "Segoe UI", sans-serif; font-size:clamp(.92rem, 1.12vw, 1.16rem);
  font-weight:800; line-height:.9; letter-spacing:.02em; text-transform:uppercase; text-shadow:0 2px 4px rgba(0,0,0,.18);
}
.site-nav { display:flex; align-items:center; justify-content:flex-end; justify-self:end; gap:1.55rem; font-size:1.06rem; font-weight:700; }
.site-nav a { color:rgba(255,255,255,.9); }
.site-nav a:hover, .site-nav a:focus-visible, .footer-links a:hover, .footer-links a:focus-visible { color:#fff; }
.site-nav .nav-contact {
  display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:.48rem 1rem; border-radius:999px;
  background:#7f9d13; border:1px solid rgba(255,255,255,.12); color:#fff; box-shadow:0 10px 24px rgba(64,88,10,.24);
}
.site-nav .nav-contact:hover, .site-nav .nav-contact:focus-visible {
  color:#fff; background:#88a815; transform:translateY(-1px);
}
.nav-toggle { display:none; }
.nav-toggle-icon,
.nav-toggle-icon::before,
.nav-toggle-icon::after {
  display:block; width:20px; height:2.5px; border-radius:999px; background:currentColor;
  transition:transform .2s ease, opacity .2s ease, background-color .2s ease;
}
.nav-toggle-icon { position:relative; }
.nav-toggle-icon::before,
.nav-toggle-icon::after { content:""; position:absolute; left:0; }
.nav-toggle-icon::before { top:-6px; }
.nav-toggle-icon::after { top:6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon { background:transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::before { transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::after { transform:translateY(-6px) rotate(-45deg); }

.hero {
  padding:5rem 0 4rem;
  background:var(--hero-lawn-background);
  background-attachment:fixed;
  background-position:center;
}
.hero-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); align-items:center; gap:1.5rem; }
.hero-copy { width:min(100%, 34rem); }
.split-grid, .contact-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); align-items:start; gap:1.5rem; }
.hero .eyebrow, .hero h1, .hero p, .hero li { color:#fff; }
.hero .eyebrow { color:#d9c08d; }
.hero h1 {
  margin-bottom:1rem; color:#fff; font-size:clamp(2.35rem, 3.35vw, 4.1rem);
}
.lead { font-size:1.06rem; max-width:62ch; color:rgba(255,255,255,.84) !important; }
.actions, .check-list, .schedule, .area-list, .footer-links { display:grid; gap:1rem; }
.actions { grid-template-columns:repeat(2, max-content); margin:1.35rem 0; }
.hero-copy .actions { margin-top:2rem; }
.hero .actions .button { border-radius:999px; }
.button {
  display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.8rem 1.25rem;
  border-radius:10px; border:1px solid var(--brand); font-weight:700; transition:.2s ease; cursor:pointer;
}
.button:hover, .button:focus-visible { transform:translateY(-1px); }
.button-primary { background:linear-gradient(135deg, var(--brand), #2f6039); color:#fff; box-shadow:var(--shadow); }
.button-secondary { background:transparent; color:#fff; border-color:rgba(255,255,255,.4); }
.button-light { background:#fff; color:var(--brand); border-color:#fff; }
.button-outline-light { background:transparent; color:#fff; border-color:rgba(255,255,255,.78); }
.call-cta-label-mobile { display:none; }
.contact-form .button-primary { background:#244e30; border-color:#244e30; color:#fff; }
.contact-form .button-primary:hover, .contact-form .button-primary:focus-visible { background:#275233; border-color:#275233; }
.hero-card, .info-card, .service-card, .contact-form, .map-card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
}
.hero-card { padding:1.3rem; }
.hero-form-card {
  max-width:430px; justify-self:end; width:100%; padding:1.15rem 1.15rem 1rem;
  background:#fff;
}
#quote-form { scroll-margin-top:calc(var(--header-offset) + 1px); }
.hero-form-card h2 { font-size:clamp(1.75rem, 2.2vw, 2.15rem); margin-bottom:1rem; color:#244e30; }
.hero-form-intro { margin-bottom:.7rem; font-size:.96rem; }
.hero-card p { color:var(--muted); }
.hero-card .eyebrow { color:var(--brand-2); }
.hero-card .contact-form { padding:0; gap:.72rem; border:0; box-shadow:none; background:transparent; }
.hero-card .button { width:100%; }
.form-row { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:.75rem; }

#services { background:#ffffff; }
#hours {
  background:
    radial-gradient(circle at top left, rgba(199,155,82,.05), transparent 24%),
    linear-gradient(180deg, #ffffff, #fcfcfa);
  border-top:1px solid #eceee8; border-bottom:1px solid #eceee8;
}
#gallery { background:#f6f5f1; border-top:1px solid #ece7dc; border-bottom:1px solid #ece7dc; }
#area { background:#f3f5f1; padding-bottom:0; }

.section-heading { max-width:48rem; margin:0 auto 2rem; text-align:center; }
.section-heading h2 { font-size:clamp(1.9rem, 2.5vw, 2.45rem); margin-bottom:.45rem; }
.section-heading p:last-child { max-width:42rem; margin:0 auto; font-size:1rem; color:var(--muted); }
.section-heading-with-social { display:grid; justify-items:center; gap:1rem; }
.section-heading-with-social .social-icon-links { gap:2rem; }
.section-heading-with-social h2,
.section-heading-with-social p { margin-bottom:0; }
.section-heading-with-social p { max-width:42rem; font-size:1rem; color:var(--muted); }
.social-icon-links {
  display:flex; align-items:center; justify-content:center; gap:1rem; flex-wrap:wrap;
}
.social-icon-links .social-icon-link {
  width:56px; height:56px; display:inline-flex; align-items:center; justify-content:center; border-radius:999px;
  background:#214a2d; color:#fff; border:1px solid rgba(255,255,255,.08); box-shadow:0 10px 24px rgba(17,34,18,.12);
  transition:.2s ease;
}
.social-icon-link svg { width:24px; height:24px; display:block; }
.social-icon-link:hover,
.social-icon-link:focus-visible { background:#2f6039; color:#fff; transform:translateY(-1px); }
.service-grid, .gallery-grid { display:grid; gap:1rem; }
.service-grid { grid-template-columns:repeat(3, minmax(0,1fr)); align-items:stretch; }
.service-card {
  padding:1.3rem; background:linear-gradient(180deg, #ffffff, #fbfcf9);
  display:flex; flex-direction:column; justify-content:space-between; gap:1rem;
}
.service-card-head { display:block; }
.service-card h3 { margin-bottom:.4rem; color:var(--brand); }
.service-card-head p { margin:0; font-size:.96rem; }
.service-list { list-style:none; padding:0; margin:0; display:grid; gap:.7rem; }
.service-list li {
  display:flex; align-items:flex-start; gap:.7rem; padding-top:.7rem; border-top:1px solid #e5ebe0; color:var(--text); font-weight:600;
}
.service-list li::before {
  content:""; width:.55rem; height:.55rem; margin-top:.38rem; border-radius:999px; background:var(--accent); flex:0 0 .55rem;
}
.schedule, .check-list, .area-list { list-style:none; padding:0; margin:1rem 0 0; }
.schedule li, .check-list li, .area-list li { display:flex; justify-content:space-between; gap:1rem; padding:.8rem 0; border-top:1px solid var(--line); color:var(--text); }
.schedule li span { max-width:18rem; color:var(--muted); text-align:right; }
.info-card { padding:1.35rem; }
.hours-panel {
  padding:1.65rem; background:linear-gradient(180deg, #ffffff, #fbfcf9); border:1px solid rgba(33,74,45,.1);
  border-radius:calc(var(--radius) + 2px); box-shadow:0 18px 36px rgba(17,34,18,.07);
}
.hours-panel-top {
  display:block;
}
.hours-panel-copy { margin:0; max-width:none; white-space:nowrap; }
.hours-schedule { display:grid; gap:.8rem; margin-top:1.35rem; }
.hours-schedule li {
  align-items:center; padding:1rem 1.1rem; border:1px solid #e3e9df; border-radius:16px; background:#fff;
  box-shadow:0 8px 18px rgba(17,34,18,.04);
}
.hours-schedule strong {
  display:inline-flex; align-items:center; gap:.7rem; color:var(--brand); font-size:1rem;
}
.hours-schedule strong::before {
  content:""; width:.55rem; height:.55rem; border-radius:999px; background:var(--brand-2); flex:0 0 .55rem;
}
.hours-schedule span {
  display:inline-flex; align-items:center; justify-content:center; min-width:9rem; padding:.5rem .9rem; border-radius:999px;
  background:#2f6039; border:1px solid #2f6039; color:#ffffff; text-align:center; font-weight:800;
}
#hours .hours-schedule .is-open span { color:#ffffff !important; }
.hours-schedule .is-closed span {
  width:10.5rem; min-width:10.5rem; max-width:100%; background:#eef1eb; border-color:#dbe2d5; color:#4e5e50;
}
.hours-schedule .is-closed strong::before { background:#b5beb2; }
.hours-footnote {
  margin:1rem 0 0; font-size:.95rem; color:var(--muted);
}
.accent-card { background:#f2f7ef; }
.fine-print { margin-top:.8rem; font-size:.92rem; }

.area-overview { max-width:68rem; margin:0 auto 1.75rem; }
.area-list-inline { grid-template-columns:repeat(3, minmax(0,1fr)); gap:1rem; }
.area-list-inline li {
  display:block; padding:1rem 1rem 0; background:rgba(255,255,255,.72);
  border:1px solid var(--line); border-radius:14px;
}
.map-banner {
  position:relative; width:100%; overflow:hidden;
  min-height:clamp(240px, 31vw, 345px);
  border-top:1px solid #d9e1d4; border-bottom:0; box-shadow:none;
}
.map-embed {
  position:absolute; inset:0; display:block; width:100%; height:100%; border:0;
  pointer-events:none;
}

.map-overlay {
  position:absolute; inset:0; z-index:1; display:flex; align-items:center; justify-content:center; padding:1rem;
  background:linear-gradient(180deg, rgba(16,33,20,.12), rgba(16,33,20,.28));
  transition:opacity .25s ease, visibility .25s ease;
}

.map-enable {
  position:static;
  min-height:48px; padding:.85rem 1.25rem; border-radius:999px; border:0;
  background:rgba(33,74,45,.88); color:#fff; font-weight:700; box-shadow:0 14px 28px rgba(17,28,18,.18); cursor:pointer;
}

.map-enable-label-mobile { display:none; }

.map-enable:hover, .map-enable:focus-visible { background:rgba(39,82,51,.94); transform:translateY(-1px); }

.map-banner.map-active .map-embed { pointer-events:auto; }

.map-banner.map-active .map-overlay { opacity:0; visibility:hidden; pointer-events:none; }

.gallery-grid { grid-template-columns:repeat(3, minmax(0,1fr)); }
.gallery-card {
  margin:0; aspect-ratio:4 / 3; border-radius:18px; overflow:hidden; box-shadow:var(--shadow);
  background:#e8eee3;
}
.gallery-trigger {
  display:block; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:zoom-in;
}
.gallery-trigger:focus-visible { outline:3px solid rgba(33,74,45,.35); outline-offset:-3px; }
.gallery-card img {
  width:100%; height:100%; display:block; object-fit:cover; transition:transform .35s ease;
}
.gallery-trigger:hover img, .gallery-trigger:focus-visible img { transform:scale(1.03); }
.gallery-lightbox[hidden] { display:none; }
.gallery-lightbox {
  position:fixed; inset:0; z-index:250; display:grid; place-items:center; padding:1.25rem;
  background:rgba(12,18,13,.84); backdrop-filter:blur(8px);
}
.gallery-lightbox-content { position:relative; width:min(96vw, 1240px); padding:0 4.75rem; box-sizing:border-box; }
.gallery-lightbox-frame {
  display:flex; justify-content:center; align-items:center;
}
.gallery-lightbox-frame img {
  display:block; width:auto; max-width:100%; max-height:82vh; height:auto; border-radius:22px; box-shadow:0 28px 60px rgba(0,0,0,.24);
}
.gallery-lightbox-close,
.gallery-lightbox-control {
  position:absolute; border:0; border-radius:999px; background:rgba(255,255,255,.14); color:#fff;
  backdrop-filter:blur(6px); cursor:pointer; transition:.2s ease;
}
.gallery-lightbox-close:hover,
.gallery-lightbox-close:focus-visible,
.gallery-lightbox-control:hover,
.gallery-lightbox-control:focus-visible { background:rgba(255,255,255,.22); }
.gallery-lightbox-close {
  top:1rem; right:1rem; z-index:2; width:2.75rem; height:2.75rem; font-size:1.8rem; line-height:1;
}
.gallery-lightbox-control {
  top:50%; z-index:2; width:3.2rem; height:3.2rem; font-size:2rem; line-height:1; transform:translateY(-50%);
}
.gallery-lightbox-control:hover,
.gallery-lightbox-control:focus-visible { transform:translateY(-50%); }
.gallery-lightbox-prev { left:.35rem; }
.gallery-lightbox-next { right:.35rem; }
.gallery-lightbox-count {
  position:absolute; top:calc(100% + .85rem); left:0; right:0; margin:0;
  text-align:center; color:rgba(255,255,255,.88); font-weight:700; letter-spacing:.04em;
}
body.gallery-lightbox-open { overflow:hidden; }

.contact-form { padding:1.25rem; display:grid; gap:.85rem; }
.contact-form .field { display:grid; }
.contact-form input, .contact-form select, .contact-form textarea {
  width:100%; padding:.7rem .9rem; border-radius:12px; border:1px solid #c8d2c4; background:#fff; color:var(--text);
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.contact-form input, .contact-form select { min-height:56px; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline:2px solid rgba(79,125,63,.2); border-color:var(--brand-2); }
.contact-form input.quote-field-highlight {
  border-color:#7f9d13;
  background:#fbfde9;
  box-shadow:0 0 0 4px rgba(127,157,19,.2);
}
.contact-form input::placeholder, .contact-form textarea::placeholder { color:#7f877c; opacity:1; }
.contact-form select.is-placeholder { color:#7f877c; }
.contact-form option { color:var(--text); }
.contact-form textarea { min-height:128px; resize:vertical; }
.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;
}
.form-status { min-height:1.5rem; margin:0; }

.cta-banner {
  padding:3rem 0;
  background:var(--hero-lawn-background);
  background-attachment:fixed;
  background-position:center;
}
.cta-banner-panel {
  max-width:900px; margin:0 auto; text-align:center;
  padding:2.4rem 1.5rem; border-radius:24px;
}
.cta-banner h2 { margin-bottom:.8rem; color:#fff; }
.cta-banner p { max-width:42rem; margin:0 auto; color:rgba(255,255,255,.84); }
.cta-actions { display:flex; justify-content:center; gap:1rem; margin-top:1.5rem; }
.cta-actions .button { border-radius:999px; padding:.85rem 1.4rem; }
.cta-banner .button-light { background:#fff; color:var(--brand); border-color:#fff; }
.cta-banner .button-light:hover, .cta-banner .button-light:focus-visible { background:#f3f5ee; border-color:#f3f5ee; }
.cta-banner .button-outline-light { background:transparent; color:#fff; border-color:#fff; }
.cta-banner .button-outline-light:hover, .cta-banner .button-outline-light:focus-visible { background:rgba(255,255,255,.12); color:#fff; border-color:#fff; }

.site-footer {
  padding:3rem 0 1.6rem;
  background:linear-gradient(180deg, #222526, #1a1d1e);
  color:#edf3ea;
}
.footer-grid { display:grid; gap:2rem; padding-bottom:2rem; }
.footer-column { display:grid; gap:1rem; align-content:start; min-width:0; }
.footer-brand { max-width:28rem; }
.footer-column h3 { margin:0; color:#fff; font-family:inherit; font-size:1.2rem; line-height:1.2; }
.footer-brand-lockup { display:flex; align-items:center; gap:.8rem; width:max-content; max-width:100%; }
.footer-brand-lockup img { width:50px; height:50px; flex:0 0 50px; object-fit:contain; }
.footer-brand-lockup > span { display:flex; flex-direction:column; justify-content:center; gap:.06rem; height:auto; white-space:nowrap; }
.footer-brand-lockup strong {
  display:block; margin:0; color:#f5f7f8; font-family:"Montserrat", "Arial Black", "Segoe UI", sans-serif; font-size:2.15rem;
  font-weight:900; line-height:.8; letter-spacing:.01em; text-transform:uppercase;
}
.footer-brand-lockup small {
  display:block; margin:0; color:rgba(255,255,255,.92); font-family:"Montserrat", "Arial Black", "Segoe UI", sans-serif; font-size:.86rem;
  font-weight:800; line-height:.92; letter-spacing:.02em; text-transform:uppercase;
}
.footer-brand p, .footer-links a, .footer-bottom p { color:rgba(255,255,255,.82); }
.footer-copy-break { display:none; }
.footer-links { gap:.75rem; }
.footer-links a { width:fit-content; }
.footer-contact-links { gap:.65rem; }
.footer-social-links { justify-content:flex-start; gap:1rem; margin-top:.35rem; }
.footer-bottom {
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.1);
}
.footer-credit {
  display:inline; color:rgba(255,255,255,.82); font:inherit; line-height:inherit; white-space:nowrap;
}
.footer-credit-prefix { display:inline; }
.footer-bottom p, .footer-credit span { margin:0; }
.footer-credit-brand {
  font-family:Arial, Helvetica, sans-serif; font-weight:700; font-size:1em; letter-spacing:0;
  background:linear-gradient(90deg, #55968e, #356681); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.footer-credit:hover, .footer-credit:focus-visible { color:#fff; }

.scroll-top {
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:120; width:52px; height:52px;
  display:inline-flex; align-items:center; justify-content:center; border-radius:999px;
  background:#7f9d13; color:#fff; border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 24px rgba(64,88,10,.24); opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(.5rem); transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.scroll-top.is-visible { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.scroll-top:hover, .scroll-top:focus-visible { background:#88a815; color:#fff; }
.scroll-top-icon {
  width:18px; height:18px; display:block;
}
.scroll-top-icon path {
  fill:none; stroke:currentColor; stroke-width:2.75; stroke-linecap:round; stroke-linejoin:round;
}

@media (min-width: 921px) {
  .hero {
    min-height:calc(100svh - var(--header-offset) + 2px);
    display:grid;
    align-items:center;
  }
  .footer-bottom {
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.4rem;
    text-align:center;
  }
  .footer-credit { display:block; }
  .footer-grid {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:0;
  }
  .footer-column { flex:0 0 auto; }
  .footer-copy-break { display:block; }
}

@media (max-width: 920px) {
  html { background:#152818; }
  body { background:#1a1d1e; }
  #main-content { background:var(--bg); }
  .header-row, .hero-grid, .split-grid, .contact-grid, .service-grid, .gallery-grid, .footer-grid { grid-template-columns:1fr; }
  .header-row { grid-template-columns:auto auto; position:relative; }
  .site-header { background:#152818; backdrop-filter:none; box-shadow:none; border-bottom:0; }
  .footer-brand-lockup img { width:44px; height:44px; flex-basis:44px; }
  .footer-brand-lockup > span { gap:.04rem; }
  .footer-brand-lockup strong { font-size:1.8rem; }
  .footer-brand-lockup small { font-size:.72rem; }
  .hero, .cta-banner { background-attachment:scroll; }
  .hero {
    position:relative; padding:0 0 3rem; background:linear-gradient(180deg, #f3f5f1, #eef2ed);
  }
  .hero::before {
    content:""; position:absolute; inset:0 0 auto; z-index:0;
    height:var(--mobile-hero-background-height, calc(var(--mobile-hero-height, 100vh) - var(--header-offset) + 2px));
    background:var(--hero-lawn-background);
  }
  .site-nav {
    position:fixed; top:calc(var(--header-offset) - 2px); left:0; right:0; width:100vw; max-width:none;
    display:flex; flex-direction:column; align-items:center; gap:.35rem; margin-top:0; padding:calc(.35rem + 2px) 1rem .9rem; overflow:hidden;
    border-top:0; border-bottom:1px solid rgba(255,255,255,.08); border-left:0; border-right:0; border-radius:0 0 18px 18px;
    background:#152818; box-shadow:0 16px 32px rgba(17,28,18,.24);
    backdrop-filter:none; text-align:center; opacity:0; visibility:hidden; pointer-events:none;
    transform:translateY(-.75rem) scaleY(.96); transform-origin:top center; transition:opacity .22s ease, transform .28s ease, visibility .22s ease;
  }
  .site-nav::before {
    content:""; position:absolute; top:0; left:0; right:0; height:2px;
    background:#0d1c10; pointer-events:none;
  }
  .site-nav a { display:flex; align-items:center; justify-content:center; width:min(100%, 13.5rem); min-height:44px; text-align:center; border-radius:12px; }
  .site-nav .nav-contact { width:min(100%, 13.5rem); }
  .site-nav.open { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0) scaleY(1); }
  .nav-toggle {
    display:inline-flex; justify-self:end; align-items:center; justify-content:center; width:48px; min-height:48px; padding:0;
    border:0; border-radius:0; background:transparent; color:#fff; box-shadow:none; cursor:pointer;
  }
  .nav-toggle:hover, .nav-toggle:focus-visible { background:transparent; }
  .brand img { width:var(--brand-logo-size-mobile); height:var(--brand-logo-size-mobile); flex-basis:var(--brand-logo-size-mobile); }
  .site-header .brand img { clip-path:none; transform:none; }
  .brand > span { height:var(--brand-logo-size-mobile); }
  .brand strong { font-size:1.62rem; }
  .brand small { font-size:.79rem; letter-spacing:.015em; }
  .hero-grid { position:relative; z-index:1; gap:2.2rem; align-items:stretch; }
  .hero-copy {
    width:min(100%, 34rem);
    min-height:calc(var(--mobile-hero-height, 100vh) - var(--header-offset));
    margin:0 auto; padding:2.85rem 0; box-sizing:border-box; display:flex; flex-direction:column; justify-content:center; justify-self:center; text-align:left;
  }
  .hero-copy .actions { margin-top:2.65rem; }
  .actions { grid-template-columns:1fr; justify-items:center; }
  .actions .button,
  .cta-actions .button { width:min(100%, 13.5rem); }
  .call-cta-label-desktop { display:none; }
  .call-cta-label-mobile { display:inline; }
  .map-enable-label-desktop { display:none; }
  .map-enable-label-mobile { display:inline; }
  .actions .button { justify-self:center; }
  .cta-actions { flex-direction:column; align-items:center; }
  .site-nav .nav-contact {
    width:auto; min-width:0; min-height:36px; padding:.38rem .95rem; border-radius:999px;
  }
  .map-banner { min-height:420px; }
  .hero-form-card {
    justify-self:stretch; max-width:none; margin-top:0; padding:1.25rem 1.15rem 1.05rem;
    background:linear-gradient(180deg, #ffffff, #fbfcf9); border:1px solid rgba(33,74,45,.1);
    border-radius:24px; box-shadow:0 18px 36px rgba(17,34,18,.08);
  }
  .hero-form-card h2 { margin-bottom:.9rem; text-align:center; }
  .form-row { grid-template-columns:1fr; }
  .area-list-inline { grid-template-columns:1fr; }
  .hours-panel { padding:1.35rem; }
  .hours-panel-copy { white-space:normal; }
  .schedule li { flex-direction:column; }
  .schedule li span { max-width:none; text-align:left; }
  .site-footer {
    position:relative;
    padding-bottom:calc(1.6rem + env(safe-area-inset-bottom, 0px));
  }
  .site-footer::after {
    content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
    background:#1a1d1e; pointer-events:none;
  }
  .footer-bottom {
    flex-direction:column; align-items:flex-start; justify-content:flex-start;
    gap:.35rem;
  }
  .footer-credit {
    display:block;
    max-width:calc(100% - 4.75rem - env(safe-area-inset-right, 0px));
    white-space:normal;
    line-height:1.45;
  }
  .footer-credit-prefix { display:block; }
  .gallery-trigger { cursor:default; pointer-events:none; }
  .gallery-trigger:focus-visible { outline:none; }
  .gallery-trigger:hover img, .gallery-trigger:focus-visible img { transform:none; }
  .gallery-lightbox { padding:4rem 1rem 1.25rem; }
  .gallery-lightbox-content { width:100%; padding:0 3.35rem; }
  .gallery-lightbox-control { width:2.8rem; height:2.8rem; }
  .gallery-lightbox-prev { left:0; }
  .gallery-lightbox-next { right:0; }
  .gallery-lightbox-close { top:-3rem; right:0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  * { transition:none !important; }
}

