/* Shared mobile layout safeguards; desktop presentation stays unchanged. */
@media (max-width: 1470px) {
  #navlinks {
    max-height: calc(100vh - 112px);
    max-height: calc(100dvh - 112px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  #navlinks > a { min-height: 44px; display: flex; align-items: center; }
}
@media (max-width: 900px) {
  main h1, main h2, main h3, main p, main a { overflow-wrap: anywhere; }
  .tax-card-grid > *, .page-cards > *, .contact-grid > *,
  .mortgage-panel > *, .calculator-fields > *, .page-intro > *,
  .fit-cards > *, .price-grid > * { min-width: 0; }
  form, form label { min-width: 0; }
  form input, form select, form textarea { width: 100%; min-width: 0; max-width: 100%; font-size: 16px; }
  .service-hero::after { pointer-events: none; }
  .btn { max-width: 100%; min-height: 44px; white-space: normal; text-align: center; }
}
@media (max-width: 600px) {
  #navlinks {
    max-height: calc(100vh - 88px);
    max-height: calc(100dvh - 88px);
  }
  .hero { height: auto; min-height: 700px; padding: 48px 0; }
  .hero-copy h1 { font-size: clamp(42px, 10vw, 49px); }
  .hero-trust { margin-top: 28px; }
  form { padding: 24px; }
  .intro-heading { grid-template-columns: 82.08px minmax(0, 1fr); column-gap: 14px; }
  .intro-heading h2 { font-size: clamp(30px, 8vw, 40px); }
  .contact-details a { overflow-wrap: anywhere; }
}
