/* Phone layouts: readable type, comfortable controls, and room for browser chrome. */
@media (max-width: 760px) {
  html { scroll-padding-top: 84px; }
  .site-header { padding-inline: 6vw; }
  .menu-toggle { width: 44px; height: 44px; align-items: center; }
  .mobile-menu { padding: 112px 7vw max(32px, env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; }
  .mobile-menu nav a { font-size: clamp(25px, 6.8vw, 36px); line-height: 1.25; padding-block: 20px; gap: 18px; }
  .mobile-menu nav span { flex-shrink: 0; }
  .mobile-menu p { margin-top: 28px; }
  body:has(.menu-toggle[aria-expanded="true"]) .whatsapp-float,
  body.modal-open .whatsapp-float { visibility: hidden; }
  .cinematic-hero { height: 140svh; }
  .hero-sticky { height: 100svh; min-height: 600px; }
  .cinematic-hero .hero-content { padding-top: clamp(140px, 24svh, 220px); }
  .cinematic-hero .hero-eyebrow { font-size: 8px; letter-spacing: 1px; margin-bottom: 26px; }
  .hero-caption-copy { gap: 16px; margin-top: 24px; }
  .hero-caption-copy > p { font-size: 12px; }
  .hero-enquire { min-height: 48px; gap: 12px; }
  .hero-enquire > span { font-size: 8px; letter-spacing: .7px; }
  .cinema-controls { bottom: calc(94px + env(safe-area-inset-bottom)); gap: 10px; align-items: center; }
  .film-frames { gap: 12px; }
  .film-frames > button { font-size: 8px; letter-spacing: .2px; line-height: 1.4; min-height: 48px; padding-bottom: 10px; }
  .film-frames > button > span { font-size: 10px; margin-bottom: 6px; }
  #cinema-pause { width: 44px; height: 44px; flex-shrink: 0; font-size: 13px; margin: 0; }
  .film-scroll { bottom: 86px; font-size: 8px; min-height: 44px; }
  .editorial-caption { bottom: 26px; max-width: 68%; font-size: 7px; line-height: 1.6; }
  .cinema-corner-b { display: none; }
  .search-band { gap: 20px 16px; padding-block: 32px; }
  .search-band > div { grid-column: 1 / -1; }
  .search-band p { font-size: 26px; line-height: 1.25; margin-top: 10px; }
  .search-band .small-label, .search-band label > span { font-size: 9px; letter-spacing: 1px; }
  .search-band label { border: 0; padding: 0; gap: 4px; }
  .search-band select { width: 100%; font-size: 16px; min-height: 48px; border-bottom: 1px solid var(--line); }
  .search-go { min-height: 54px; font-size: 14px; }
  .intro-copy { margin-left: 12%; margin-top: 20px; font-size: 14px; line-height: 1.8; }
  .intro-copy .little-orbit { left: -12vw; }
  .intro .intro-heading { font-size: clamp(26px, 8.1vw, 60px); }
  .intro-foot { font-size: 8px; letter-spacing: .5px; }
  .collection .section-heading > p, .property-map-section .section-heading > p { font-size: 14px; line-height: 1.7; }
  .collection-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding-bottom: 10px; }
  .collection-toolbar > .text-link { display: inline-flex; font-size: 12px; min-height: 44px; gap: 16px; }
  .small-label { font-size: 9px; }
  .featured-grid .property-card .card-image { height: auto; aspect-ratio: 4 / 5; }
  .featured-grid .property-card:first-child .card-image { height: 62svh; min-height: 390px; max-height: 620px; aspect-ratio: auto; }
  .featured-grid .property-card:first-child h3 { font-size: clamp(32px, 10.5vw, 58px); bottom: 106px; max-width: 82%; }
  .featured-grid .property-card h3 { font-size: 27px; line-height: 1.2; }
  .featured-grid .card-meta, .catalog-grid .card-meta { font-size: 9px; letter-spacing: .6px; }
  .featured-grid .card-details, .catalog-grid .card-details { font-size: 12px; flex-wrap: wrap; }
  .collection-bottom p { font-size: 12px; line-height: 1.8; }
  .collection-bottom .outline-button { min-height: 52px; font-size: 13px; }
  .map-filter-row { gap: 14px; }
  .map-filter-row label { flex: 1 1 130px; }
  .map-filter-row select { width: 100%; min-height: 48px; font-size: 16px; }
  .map-filter-row .text-link { font-size: 12px; min-height: 44px; }
  .listing-map { height: clamp(300px, 52svh, 440px); }
  .map-results { height: 360px; overscroll-behavior-y: contain; }
  .map-note, .map-unlocated { font-size: 11px; line-height: 1.7; }
  .perspective-photo { height: auto; aspect-ratio: 3 / 4; }
  .perspective-lead, .accordion > div > p { font-size: 14px; line-height: 1.8; }
  .accordion > button { font-size: 14px; min-height: 60px; }
  .text-link { min-height: 44px; font-size: 12px; }
  .contact-main h2 { font-size: 20vw; }
  .contact-bottom { margin-top: 20px; }
  .contact-bottom > p { font-size: 14px; }
  .contact-phone { font-size: clamp(22px, 6.3vw, 34px); }
  .contact-phone > small { font-size: 9px; }
  footer { padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
  .footer-links { gap: 4px 22px; }
  .footer-links a, .footer-links button { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; padding: 0; }
  .footer-bottom { font-size: 8px; }
  .whatsapp-float { bottom: calc(18px + env(safe-area-inset-bottom)); right: max(18px, env(safe-area-inset-right)); }
  dialog { overscroll-behavior: contain; }
  .close-button { width: 44px; height: 44px; }
  .catalog-dialog { padding: 0 6vw calc(40px + env(safe-area-inset-bottom)); height: 100dvh; max-height: 100dvh; }
  .dialog-top { padding-block: 14px; }
  .dialog-wordmark { font-size: 10px; }
  .catalog-heading h2 { font-size: clamp(34px, 10vw, 50px); }
  .catalog-heading > p:last-child { font-size: 13px; }
  .catalog-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .catalog-filters label:nth-child(3) { grid-column: 1 / -1; grid-row: 2; }
  .catalog-filters label > span { font-size: 9px; letter-spacing: 1px; }
  .catalog-filters input, .catalog-filters select { font-size: 16px; min-height: 48px; border-bottom: 1px solid var(--line); }
  .catalog-count, .catalog-note { font-size: 12px; }
  .catalog-grid .card-image { height: auto; aspect-ratio: 4 / 5; }
  .catalog-grid h3 { font-size: 26px; }
  .property-dialog { width: 100%; max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; inset: 0; }
  .property-media { height: clamp(280px, 57svh, 520px); touch-action: pan-y; }
  .property-close { position: fixed; top: max(14px, env(safe-area-inset-top)); right: 14px; z-index: 5; background: var(--paper); box-shadow: 0 2px 15px #08264d20; }
  .gallery-controls { bottom: 12px; padding: 4px 8px; }
  .gallery-controls button { width: 48px; height: 44px; }
  .gallery-controls > span { font-size: 12px; }
  .property-info { padding: 28px 7vw calc(32px + env(safe-area-inset-bottom)); }
  .property-info h2 { font-size: clamp(29px, 8vw, 40px); overflow-wrap: anywhere; }
  .property-location, .property-description { font-size: 14px; }
  .property-disclaimer { font-size: 12px; }
  .property-price { font-size: 30px; }
  .property-specs { font-size: 14px; gap: 20px; }
  .property-specs small, .property-price small { font-size: 9px; }
  .solid-button { font-size: 14px; min-height: 54px; }
  .property-info > .text-link { font-size: 12px; }
  .property-reference { font-size: 9px; overflow-wrap: anywhere; }
  .enquiry-fields input, .enquiry-fields select, .enquiry-fields textarea { font-size: 16px; min-height: 48px; }
  .privacy-dialog h2 { font-size: 34px; }
  .privacy-dialog p:not(.eyebrow) { font-size: 14px; }
}
@media (max-width: 760px) and (max-height: 700px) {
  .cinematic-hero .hero-content { padding-top: 140px; }
  .cinematic-hero .hero-eyebrow { margin-bottom: 20px; }
  .hero-caption-copy { margin-top: 18px; }
  .film-scroll { display: none; }
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  .cinematic-hero { height: auto; min-height: 0; }
}
