/* Mobile editorial sections */
@media (max-width: 767px) {
  .intro { gap: 28px; padding-bottom: 58px; padding-top: 70px; row-gap: 28px; }
  .intro-main { gap: 18px; }
  .intro h2, .garden-story h2, .service-showcase .services-heading h2,
  .garden-portfolio-heading h2, .about-heading h2, .contact-heading h2 {
    font-size: clamp(2.55rem, 11.5vw, 3.05rem); letter-spacing: -.045em; line-height: 1;
  }
  .intro-body p, .garden-body p { font-size: .96rem; line-height: 1.72; }
  .intro-body p { margin-bottom: 16px; }
  .intro-visual {
    margin-left: calc(var(--mobile-gutter) * -1); max-width: none;
    width: calc(100% + (var(--mobile-gutter) * 2));
  }
  .intro-visual img { aspect-ratio: 5 / 4; object-position: center 61%; }
  .intro-visual::after { inset: 8px; }

  .garden-story { gap: 0; padding-bottom: 68px; row-gap: 22px; }
  .garden-story h2 { margin-top: 2px; }
  .garden-body p { line-height: 1.75; }
  .garden-image {
    margin-left: calc(var(--mobile-gutter) * -1); margin-top: 8px;
    max-width: none; width: calc(100% + (var(--mobile-gutter) * 2));
  }
  .garden-image > img { aspect-ratio: 4 / 4.35; object-position: center; }
  .garden-image::after { inset: 8px 8px 40px; }
  .garden-image figcaption {
    font-size: .58rem; letter-spacing: .09em; padding: 12px var(--mobile-gutter) 0;
  }

  .service-showcase { padding-bottom: 72px; padding-top: 70px; }
  .service-showcase .services-heading { margin-bottom: 32px; }
  .service-showcase .services-heading .eyebrow { margin-bottom: 17px; }
  .service-showcase .services-heading > p {
    font-size: .94rem; line-height: 1.7; margin-top: 20px;
  }
  .service-mosaic { gap: 10px; margin-left: -8px; margin-right: -8px; }
  .service-design { aspect-ratio: 4 / 4.35; }
  .service-spray, .service-maintenance { aspect-ratio: 4 / 2.85; }
  .service-mowing { aspect-ratio: 4 / 2.55; }
  .service-card-index { font-size: .625rem; left: 20px; top: 18px; }
  .service-card-copy { bottom: 20px; left: 20px; max-width: calc(100% - 40px); }
  .service-card-copy h3 {
    font-size: clamp(2.05rem, 10vw, 2.45rem); margin-bottom: 7px;
  }
  .service-card-copy p { font-size: .84rem; line-height: 1.5; max-width: 285px; }
  .service-mowing .service-card-copy { max-width: calc(100% - 70px); top: 28px; }
  .tile-mowing-scene { left: 4%; }

  .garden-portfolio { padding: 70px 0 66px; }
  .garden-portfolio-heading { margin-bottom: 31px; }
  .garden-portfolio-heading .eyebrow { margin-bottom: 17px; }
  .garden-portfolio-heading > p {
    font-size: .94rem; line-height: 1.7; margin-top: 20px; max-width: 365px;
  }
  .garden-rail {
    cursor: grab; scroll-padding-inline: var(--mobile-gutter);
    scroll-snap-type: x mandatory; touch-action: pan-x;
  }
  .garden-track { padding-left: var(--mobile-gutter); }
  .garden-loop-group { gap: 12px; padding-right: var(--mobile-gutter); }
  .garden-loop-group[aria-hidden="true"] { display: none; }
  .garden-project {
    scroll-snap-align: start; scroll-snap-stop: always; width: min(82vw, 344px);
  }
  .garden-project-meta { gap: 12px; padding: 0 18px 18px; }
  .garden-project-meta small {
    font-size: .56rem; letter-spacing: .12em; margin-bottom: 5px;
  }
  .garden-project-meta strong { font-size: clamp(1.65rem, 7.5vw, 1.95rem); }
  .garden-project-arrow { flex-basis: 40px; height: 40px; }

  .about { padding-bottom: 76px; padding-top: 70px; }
  .about-heading { padding-bottom: 27px; }
  .about-heading .eyebrow { margin-bottom: 18px; }
  .about-grid { gap: 33px; padding-top: 34px; }
  .about-signature {
    border: 1px solid var(--rule); min-height: 224px; padding: 26px 20px;
  }
  .about-signature img { width: min(41vw, 164px); }
  .about-signature p {
    font-size: clamp(1.8rem, 8.7vw, 2.15rem); margin-top: 12px;
  }
  .about-kicker { font-size: .64rem; line-height: 1.65; margin-bottom: 19px; }
  .about-copy .about-lead {
    font-size: clamp(1.55rem, 7.1vw, 1.85rem); line-height: 1.34; margin-bottom: 23px;
  }
  .about-copy > p { font-size: .94rem; line-height: 1.76; margin-bottom: 20px; }
  .about-values, .about-values:nth-child(n) {
    gap: 0; grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 30px; padding-top: 22px;
  }
  .about-values div {
    border-left: 1px solid var(--rule); gap: 4px; min-width: 0; padding: 0 9px;
  }
  .about-values div:first-child { border-left: 0; padding-left: 0; }
  .about-values div:last-child { padding-right: 0; }
  .about-values strong {
    font-size: clamp(1.03rem, 5vw, 1.35rem); overflow-wrap: anywhere;
  }
  .about-values span { font-size: .53rem; letter-spacing: .035em; line-height: 1.45; }

  .contact { padding-bottom: 76px; padding-top: 70px; }
  .contact-heading { gap: 34px; padding-bottom: 48px; }
  .contact-heading .eyebrow { margin-bottom: 18px; }
  .contact-direct > span { font-size: .62rem; margin-bottom: 12px; }
  .contact-direct > a {
    font-size: clamp(1.8rem, 8.8vw, 2.2rem); padding-bottom: 7px;
  }
  .contact-direct > p { font-size: .92rem; line-height: 1.7; margin-top: 20px; }
  .contact-form-wrap { gap: 28px; padding-top: 48px; }
  .contact-form-intro .eyebrow { margin-bottom: 14px; }
  .contact-form-intro > p:last-child {
    font-size: 1.45rem; line-height: 1.38; margin-bottom: 0;
  }
  .contact-form { gap: 24px; }
  .contact-form label { gap: 7px; }
  .contact-form label > span { font-size: .67rem; }
  .contact-form input, .contact-form textarea {
    font-size: 1rem; min-height: 48px; padding: 7px 0 11px;
  }
  .contact-form textarea { min-height: 126px; }
  .contact-form button {
    justify-content: space-between; min-height: 54px; padding: 14px 18px; width: 100%;
  }

  .site-footer {
    gap: 28px; min-height: 0;
    padding: 52px var(--mobile-gutter) calc(28px + env(safe-area-inset-bottom));
  }
  .footer-brand { align-items: center; flex-direction: row; gap: 14px; }
  .footer-brand img { width: 88px; }
  .footer-brand span {
    font-size: clamp(1.65rem, 7.8vw, 2rem); white-space: normal;
  }
  .footer-contact { gap: 2px; }
  .footer-map { aspect-ratio: 16 / 8.5; margin-bottom: 13px; }
  .footer-contact > a { font-size: .93rem; overflow-wrap: anywhere; }
  .footer-credit {
    font-size: .57rem; letter-spacing: .1em; padding-top: 21px;
  }
  .footer-top { font-size: .72rem; right: var(--mobile-gutter); top: 17px; }
}

@media (max-width: 359px) {
  .intro h2, .garden-story h2, .service-showcase .services-heading h2,
  .garden-portfolio-heading h2, .about-heading h2, .contact-heading h2 { font-size: 2.42rem; }
  .garden-project { width: 83vw; }
  .about-values div { padding-left: 6px; padding-right: 6px; }
  .about-values strong { font-size: .98rem; }
}

@media (max-width: 767px) and (hover: none) {
  .service-card-media, .garden-project-visual img, .garden-project-arrow { transition: none; }
  .service-card:hover .service-card-media,
  .garden-project:hover .garden-project-visual img { transform: none; }
}
