@media (max-width: 1024px) {
  .hero:not(.hero-full) {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .hero.hero-full {
    min-height: calc(100svh - var(--header-h));
  }

  .hero:not(.hero-full) .hero-visual {
    min-height: 48vh;
    order: -1;
  }

  .hero.hero-full .hero-visual {
    min-height: 100%;
  }

  .overview-grid,
  .amenity-layout,
  .location-grid,
  .trust-grid,
  .enquiry-grid,
  .about-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .footer-top {
    grid-template-columns: 1fr 1fr;
  }

  .footer-col-intro {
    grid-column: 1 / -1;
  }

  .highlight-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .partners {
    grid-template-columns: 1fr;
  }

  .g-lg,
  .g-md {
    grid-column: span 6;
    grid-row: span 2;
  }
}

@media (max-width: 1279px) {
  .nav-toggle {
    display: block;
  }

  .nav {
    position: fixed;
    inset: var(--header-h) 0 auto 0;
    background: var(--surface);
    border-bottom: 1px solid var(--line);
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    padding: 12px 20px 20px;
    gap: 0;
    display: none;
    margin-left: 0;
    padding-left: 20px;
  }

  .nav.is-open {
    display: flex;
  }

  .nav a,
  .nav .header-cta {
    min-height: 48px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--line);
    margin: 0;
    font-size: 0.82rem;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

  .nav a.header-cta {
    justify-content: center;
    margin-top: 10px;
    color: var(--white);
    background: var(--forest);
    border-bottom: 1px solid var(--forest);
  }
}

@media (max-width: 980px) {
  .residence-grid {
    grid-template-columns: 1fr;
  }

  .amenity-intro,
  .amenity-index {
    grid-template-columns: 1fr;
  }

  .amenity-scenes {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 180px;
  }

  .amenity-card,
  .amenity-card-lg,
  .amenity-card-md {
    grid-column: span 1;
    grid-row: span 1;
  }

  .amenity-card-lg {
    grid-column: span 2;
  }

  .gallery-mosaic {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 160px;
  }

  .gallery-wall {
    gap: 20px 16px;
  }

  .g-lg,
  .g-md,
  .g-sm {
    grid-column: span 1;
    grid-row: span 1;
  }

  .g-lg {
    grid-column: span 2;
    grid-row: span 2;
  }

  .mobile-bar {
    display: grid;
  }

  body.has-mobile-bar .site-footer {
    padding-bottom: calc(36px + 64px + env(safe-area-inset-bottom, 0px));
  }

  .project-logo {
    height: 32px;
    max-width: 120px;
  }

  .brand-place {
    font-size: 0.55rem;
  }

  .pp-lockup:not(.pp-inline) {
    padding-left: 10px;
  }

  .pp-logo {
    height: 16px;
    width: auto;
  }

  .pp-caption {
    font-size: 0.48rem;
    letter-spacing: 0.12em;
  }
}

@media (max-width: 560px) {
  .wrap,
  .wrap-wide {
    width: calc(100% - 28px);
  }

  .section {
    padding: 68px 0;
  }

  .hero-copy {
    padding: 32px 20px 40px;
  }

  .highlight-grid,
  .gallery-mosaic,
  .gallery-wall {
    grid-template-columns: 1fr;
  }

  .g-lg {
    grid-column: span 1;
  }

  .form {
    padding: 20px;
  }

  .final-cta {
    padding: 80px 0;
  }

  .preview-row {
    grid-template-columns: 1fr;
  }

  .cookie-banner {
    bottom: 76px;
  }

  .footer-top {
    grid-template-columns: 1fr;
  }

  .footer-rule {
    display: none;
  }

  .amenity-scenes {
    grid-template-columns: 1fr;
  }

  .amenity-card-lg {
    grid-column: span 1;
  }
}
