/* ── Site-wide touch / mobile rules ── */

/* No double-tap-to-zoom (pinch zoom still works), and no grey flash on tap. */
html {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* Tap feedback in place of the removed highlight. */
@media (hover: none) {
  button:active:not(:disabled) { opacity: .75; }
}

/* Only scroll the menu / dialog itself — never the page behind it. */
.offcanvas-body,
.modal,
.hs-premium-dialog,
.hs-rail-strip {
  overscroll-behavior: contain;
}

@media (pointer: coarse) {
  /* iOS Safari zooms the page into any focused field under 16px.
     !important because some filter inputs set 13px inline. */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  select,
  textarea {
    font-size: 16px !important;
  }

  /* 44px minimum touch targets. Icon buttons get an invisible 44px hit area
     so they look the same; pagination is simply made taller. */
  .hs-hamburger,
  .hs-draw-close { position: relative; }

  .hs-hamburger::after,
  .hs-draw-close::after,
  .prop-card-wishlist::after,
  .hs-gallery-arrow::after,
  .hs-gallery-expand::after,
  .hs-map-expand-btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 44px;
    height: 44px;
    transform: translate(-50%, -50%);
  }

  .hs-pagination .hs-page-btn { min-width: 44px; height: 44px; }
}
