/* Touch layouts retain the same content and visual direction as desktop. */
@media (max-width: 850px) {
  :root { --gutter: clamp(20px, 4vw, 32px); }

  .header-actions > .button,
  .mobile-menu-button,
  .back-to-top,
  .circle-button,
  .slider-controls .circle-button,
  .email-field button,
  .dialog-close { min-width: 44px; min-height: 44px; }

  .mobile-menu-button { align-items: center; flex-shrink: 0; }
  .header-actions { gap: 12px; }
  .header-inner { gap: 12px; }
  .header-actions > .button { font-size: 11px; padding: 10px 12px; }
  .mobile-menu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: calc(100dvh - var(--header-height));
    overscroll-behavior: contain;
    padding-bottom: max(28px, env(safe-area-inset-bottom));
  }
  .mobile-menu > a { min-height: 64px; }
  .mobile-menu > .button { min-height: 48px; font-size: 13px; }
  .body-copy { font-size: 15px; line-height: 1.85; }
  .intro-copy > .inline-link { margin-top: 26px; }
  .intro-figure img { aspect-ratio: 4 / 3; }
  .section-heading > p:not(.eyebrow) { font-size: 15px; line-height: 1.85; }
  .section-top p:not(.eyebrow) { font-size: 14px; }
  .lifestyle-tab { min-height: 145px; }
  .lifestyle-tab p { font-size: 12px; }
  .lifestyle-panel-copy > p { font-size: 14px; }
  .invitation p:not(.eyebrow) { font-size: 13px; }
  .residence-card > p { font-size: 12px; }
  .residence-spec { font-size: 13px; }
  .residence-spec > span + span { font-size: 11px; }
  .residence-card-meta > span { font-size: 11px; }
  .vision-values p { font-size: 13px; }
  .contact .section-heading > p:not(.eyebrow) { font-size: 15px; }
  .contact-item p { font-size: 14px; }
  .contact-item .inline-link { font-size: 12px; min-height: 44px; }
  .inline-link { min-height: 44px; align-items: center; padding-block: 10px; }
  .slider-dots { gap: 2px; }
  .slider-dots button { width: 34px; height: 44px; }
  .footer-main nav { gap: 10px 22px; flex-wrap: wrap; }
  .footer-main nav > a,
  .footer-bottom button { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; }
  .footer-main nav { font-size: 12px; }
  .footer-bottom { font-size: 11px; }
  .concept-note { font-size: 10px; }
  .dialog-intro,
  .residence-detail-copy > p { font-size: 14px; }
  .field label { font-size: 12px; }
  .field input,
  .field select { font-size: 16px; min-height: 48px; }
  .demo-form-note { font-size: 11px; }
  .form-submit { min-height: 48px; font-size: 13px; }
}

@media (max-width: 600px) {
  :root { --header-height: 76px; }
  html { scroll-padding-top: 96px; }
  .section { padding-top: 64px; padding-bottom: 20px; }
  .wordmark { font-size: 21px; gap: 8px; }
  .brand-mark { font-size: 44px; }
  .hero {
    height: auto;
    min-height: 100svh;
    max-height: none;
    padding: 136px var(--gutter) 100px;
  }
  .hero-content { width: 100%; }
  .hero h1 { font-size: clamp(46px, 12.8vw, 72px); line-height: 1.04; }
  .hero-eyebrow { font-size: 9px; letter-spacing: .15em; margin-bottom: 24px; }
  .hero-description { font-size: 15px; line-height: 1.75; max-width: 345px; margin-top: 24px; }
  .hero-actions { display: grid; gap: 12px; width: min(320px, 100%); margin: 28px auto 0; }
  .hero-actions > .button { width: 100%; min-height: 48px; font-size: 12px; padding: 13px 16px; }
  .hero-actions > .button:first-child { justify-content: space-between; }
  .hero-bottom { bottom: 24px; }
  .scroll-cue { font-size: 8px; min-height: 44px; }
  .intro { gap: 30px; }
  .intro h2 { font-size: clamp(43px, 11.8vw, 56px); }
  .intro-copy > .eyebrow { font-size: 10px; }
  .body-copy { font-size: 16px; line-height: 1.8; }
  .intro-figure { padding: 0; }
  .intro-figure img { aspect-ratio: 8 / 5; }
  .intro-figure figcaption { font-size: 11px; line-height: 1.6; }
  .figure-stamp { display: none; }
  .section-heading h2,
  .section-top h2,
  .architecture h2,
  .contact .section-heading h2 { font-size: clamp(40px, 10.7vw, 52px); }
  .section-heading .eyebrow,
  .section-top .eyebrow,
  .vision-copy > .eyebrow,
  .invitation .eyebrow { font-size: 10px; }
  .section-heading > p:not(.eyebrow),
  .section-top p:not(.eyebrow),
  .contact .section-heading > p:not(.eyebrow) { font-size: 16px; }
  .inline-link,
  .vision-copy .inline-link { font-size: 13px; }
  .architecture-figure > img { aspect-ratio: 4 / 4.6; }
  .architecture-caption > .eyebrow { font-size: 9px; }
  .architecture-caption > p { font-size: 34px; }
  .lifestyle-tabs { margin-top: 32px; }
  .lifestyle-tab { padding-inline: 5px; padding-bottom: 18px; min-height: 136px; }
  .lifestyle-tab h3 { font-size: clamp(23px, 6.4vw, 30px); }
  .lifestyle-tab p { font-size: 11px; line-height: 1.65; }
  .lifestyle-panel > img { aspect-ratio: 8 / 5; }
  .lifestyle-panel-copy { padding: 28px 24px; }
  .lifestyle-panel-copy .eyebrow { font-size: 9px; }
  .lifestyle-panel h3 { font-size: 36px; }
  .lifestyle-panel-copy > p { font-size: 15px; line-height: 1.8; }
  .lifestyle-panel-copy > .inline-link { font-size: 12px; }
  .invitation { margin-top: 44px; }
  .invitation-inner { padding-block: 36px; }
  .invitation h2 { font-size: clamp(35px, 10vw, 45px); }
  .invitation p:not(.eyebrow) { font-size: 15px; line-height: 1.8; }
  .email-field input { font-size: 16px; }
  .interest-form .form-note { font-size: 11px !important; }
  .section-top > .button { min-height: 44px; font-size: 12px; }
  .residence-card { flex-basis: 84%; }
  .residence-card-image { aspect-ratio: 4 / 4.3; }
  .residence-card-meta { align-items: baseline; }
  .residence-card-meta h3 { font-size: 30px; }
  .residence-card-meta > span { font-size: 11px; }
  .residence-card > p { font-size: 13px; margin-bottom: 12px; }
  .residence-spec { flex-wrap: wrap; column-gap: 7px; row-gap: 4px; }
  .residence-spec > span + span { margin-left: 5px; font-size: 11px; }
  .slider-footer { flex-wrap: wrap; gap: 10px; }
  .slider-dots { flex: 1 1 100%; order: 2; }
  .slider-dots button { width: 44px; }
  .slider-count { margin-right: auto; margin-left: 0; font-size: 11px; }
  .gallery-image { flex-basis: 90%; }
  .gallery-image > img { aspect-ratio: 4 / 3; }
  .gallery-image-bottom { font-size: 11px; left: 16px; right: 16px; bottom: 16px; }
  .gallery-expand { width: 44px; height: 44px; }
  .gallery-hint { font-size: 11px; max-width: 170px; line-height: 1.7; }
  .gallery-hint span { display: none; }
  .vision h2 { font-size: clamp(43px, 11.8vw, 56px); }
  .vision-values { gap: 24px; }
  .vision-values h3 { font-size: 25px; }
  .vision-values p { font-size: 13px; line-height: 1.8; }
  .vision-figure { padding: 0; }
  .vision-figure img { aspect-ratio: 4 / 3; }
  .vision-figure figcaption { font-size: 11px; }
  .contact { padding-bottom: 44px; }
  .contact-details { gap: 28px; }
  .contact-item .inline-link { font-size: 13px; }
  .footer-main { padding-block: 28px 18px; }
  .footer-main nav { gap: 0 20px; justify-content: flex-start; }
  .footer-bottom { gap: 6px; padding-top: 16px; }
  .footer-bottom > div { gap: 24px; }
  .concept-note { padding-bottom: max(24px, env(safe-area-inset-bottom)); }
  dialog { max-height: 92dvh; max-width: calc(100% - 24px); }
  .enquiry-content { padding: 54px 24px max(28px, env(safe-area-inset-bottom)); }
  .enquiry-content > .eyebrow { font-size: 9px; }
  .dialog-intro { font-size: 14px; }
  .residence-detail-photo { height: 210px; }
  .residence-detail-copy { padding: 28px 24px max(28px, env(safe-area-inset-bottom)); }
  .residence-detail-copy > p { font-size: 15px; }
  .detail-specs span { font-size: 10px; }
  .floorplan-label { font-size: 10px !important; }
  .residence-detail-copy .button { min-height: 48px; font-size: 12px; }
  .lightbox { width: 100%; max-width: 100%; max-height: 100dvh; }
  .lightbox figcaption { font-size: 11px; }
  .lightbox-prev,
  .lightbox-next { width: 44px; height: 44px; }
  .lightbox-prev { left: calc(50% - 50px); }
  .lightbox-next { right: calc(50% - 50px); }
  .text-dialog p:not(.eyebrow) { font-size: 15px; line-height: 1.8; }
}

@media (max-width: 360px) {
  .header-actions > .button { display: none; }
  .hero h1 { font-size: 46px; }
  .lifestyle-tab h3 { font-size: 23px; }
  .lifestyle-tab p { font-size: 10px; }
  .vision-values { grid-template-columns: 1fr; }
  .vision-values > div { display: grid; grid-template-columns: 28px 1fr; gap: 8px 14px; }
  .vision-values h3 { margin-bottom: 0; }
  .vision-values p { grid-column: 2; }
}

@media (max-height: 520px) and (max-width: 950px) and (orientation: landscape) {
  .hero { height: auto; min-height: 0; max-height: none; padding: 124px var(--gutter) 76px; }
  .hero h1 { font-size: clamp(48px, 7vw, 64px); }
  .hero-description { font-size: 14px; max-width: 500px; }
  .hero-eyebrow { margin-bottom: 20px; }
  .hero-actions { display: flex; width: auto; margin-top: 24px; }
  .hero-actions > .button { width: auto; min-height: 44px; }
  .hero-bottom { bottom: 14px; }
  .mobile-menu { max-height: calc(100dvh - 80px); }
  .lightbox figure img { height: 58dvh; }
}

@media (hover: none) and (pointer: coarse) {
  .residence-card-image > .circle-button { opacity: 1; transform: none; }
  .circle-button { min-height: 44px; min-width: 44px; }
}
