/* Full-site responsive refinement */
img { max-width: 100%; }

.legacy-photo {
  background-image: url('/property-images/legacy-section-enhanced.webp');
  background-position: center;
  background-size: cover;
}

.hero {
  height: clamp(540px, calc(100svh - clamp(104px, 8vw, 116px)), 900px);
  min-height: 0;
}

.hero-copy {
  bottom: clamp(42px, 8svh, 88px);
}

@media (min-width: 901px) and (max-height: 850px) {
  .hero-copy {
    bottom: clamp(30px, 5svh, 44px);
  }

  .hero h1 {
    font-size: clamp(64px, 12svh, 94px);
    margin-top: 18px;
    margin-bottom: 12px;
    padding-bottom: 8px;
  }

  .property-meta {
    margin-bottom: 20px;
  }

  .cta {
    padding: 15px 20px;
  }

  .slide-controls {
    bottom: 4%;
  }
}

@media (min-width: 1600px) {
  .header,
  .intro,
  .featured,
  .map-section,
  .contact,
  footer { padding-left: max(7vw, calc((100vw - 1500px) / 2)); padding-right: max(7vw, calc((100vw - 1500px) / 2)); }
  .cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hero-copy {
    left: max(7vw, calc((100vw - 1500px) / 2));
    width: min(760px, 72vw);
    padding-left: 0;
    padding-right: 0;
  }

  .hero h1 {
    font-size: clamp(88px, 6vw, 112px);
    line-height: .82;
  }
}

@media (max-width: 1200px) {
  .header { padding-left: 4vw; padding-right: 4vw; }
  .hero h1 { font-size: clamp(58px, 8.5vw, 94px); }
  .hero-copy { width: min(580px, 68vw); }
  .searchbar { padding-left: 4vw; padding-right: 4vw; }
  .intro, .featured, .map-section { padding-left: 5vw; padding-right: 5vw; }
  .map-shell { grid-template-columns: 290px minmax(0, 1fr); }
  .legacy { grid-template-columns: 1fr 1fr; }
  .service-copy { padding: 85px 6vw; }
}

@media (max-width: 900px) {
  .hero { height: clamp(580px, calc(100svh - 100px), 760px); min-height: 0; }
  .hero-copy { bottom: 15%; width: min(620px, 86vw); }
  .hero h1 { font-size: clamp(54px, 12vw, 82px); }
  .hero-copy .property-meta { flex-wrap: wrap; }
  .slide-controls { right: 7vw; bottom: 5%; }
  .searchbar { padding: 20px 7vw; }
  .intro { padding-top: 82px; padding-bottom: 82px; gap: 36px; }
  .featured, .map-section { padding-top: 80px; padding-bottom: 80px; }
  .section-head { align-items: flex-start; gap: 24px; }
  .cards { gap: 20px; }
  .card-image { height: min(58vw, 470px); }
  .map-shell { grid-template-columns: 1fr; }
  .map-list { max-height: none; }
  #propertyMap { min-height: 500px; }
  .legacy { grid-template-columns: 1fr; }
  .legacy-photo { min-height: min(72vw, 620px); }
  .service-copy { padding: 78px 8vw; }
}

@media (max-width: 640px) {
  .header { height: 112px; padding-bottom: 15px; }
  .header:after { height: 12px; background-size: 200px 12px; }
  .hero { height: clamp(560px, calc(100svh - 86px), 740px); min-height: 0; max-height: none; }
  .hero-copy { left: 6vw; bottom: 17%; width: 88vw; }
  .hero-copy .overline { font-size: 8px; letter-spacing: .18em; }
  .hero-copy .overline:before { width: 32px; }
  .hero h1 { font-size: clamp(47px, 14.5vw, 68px); line-height: .84; margin: 19px 0 16px; }
  .property-meta { gap: 14px 20px; font-size: 10px; margin-bottom: 23px; }
  .cta { padding: 15px 16px; gap: 14px; font-size: 9px; }
  .slide-controls { left: 6vw; right: auto; gap: 10px; }
  .arrow { width: 39px; height: 39px; }
  .progress { width: 72px; }
  .searchbar { padding: 17px 6vw 22px; }
  .field { padding: 12px 0; }
  .field input, .field select { font-size: 18px; }
  .searchbar button { width: 100%; margin-top: 8px; }
  .intro, .featured, .map-section { padding: 64px 6vw; }
  .intro h2, .section-head h2, .service-copy h2, .map-intro h2 { font-size: clamp(41px, 13vw, 58px); }
  .intro p, .service-copy p, .map-intro p { font-size: 18px; }
  .section-head { flex-direction: column; align-items: flex-start; margin-bottom: 30px; }
  .card-image { height: 62vw; min-height: 230px; }
  .card-body { padding: 21px; }
  .card-body h3 { font-size: 27px; }
  .numbers { gap: 16px; flex-wrap: wrap; }
  .map-intro { margin-bottom: 28px; gap: 18px; }
  .map-list { display: block; padding: 12px; }
  .map-list h3 { margin-bottom: 12px; }
  .map-property { grid-template-columns: 64px 1fr; }
  .map-property img { width: 64px; height: 54px; }
  #propertyMap { min-height: 430px; }
  .leaflet-control-zoom { margin-top: 12px !important; margin-left: 12px !important; }
  .legacy-photo { min-height: 86vw; }
  .service-copy { padding: 64px 7vw; }
  .contact { padding: 62px 7vw; }
  .contact h2 { font-size: clamp(42px, 12vw, 58px); }
  footer { padding: 34px 7vw; }
}

@media (max-width: 380px) {
  .hero-copy { bottom: 18%; }
  .hero h1 { font-size: 44px; }
  .slide-controls .progress { display: none; }
  .map-popup img { height: 105px; }
  .leaflet-popup-content { width: 220px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .slide, .card, .quality-meter i { transition: none !important; }
}

/* Owner review: give the property map a true full-screen canvas. */
body .map-section {
  padding: 88px 0 0;
}

body .map-intro {
  padding-inline: 7vw;
}

body .map-shell {
  width: 100%;
  height: calc(100svh - 24px);
  min-height: 680px;
  border-left: 0;
  border-right: 0;
}

body .map-notice {
  margin: 20px 7vw 88px;
}

@media (max-width: 900px) {
  body .map-section { padding-top: 64px; }
  body .map-intro { padding-inline: 6vw; }
  body .map-shell { height: auto; min-height: 0; }
  body .map-stage,
  body #propertyMap { height: 72svh; min-height: 500px; }
  body .map-notice { margin: 20px 6vw 64px; }
}

@media (max-width: 520px) {
  body .map-stage,
  body #propertyMap { height: 68svh; min-height: 430px; }
}
