@media (max-width: 700px) {
  html { -webkit-text-size-adjust: 100%; }
  body { overflow-x: hidden; padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  a, button { min-height: 44px; }

  /* Main page */
  .topbar { position: relative; height: 66px; padding: 0 16px; }
  .brand { min-width: 0; }
  .brand small { letter-spacing: 1px; }
  .hero { min-height: calc(100svh - 66px); padding: 0 0 42px; align-items: flex-end; }
  .hero-image { object-position: 61% top; }
  .hero-copy { width: 89%; margin: 0 auto; }
  .hero h1 { font-size: clamp(38px, 11vw, 48px); line-height: 1.08; letter-spacing: -2.5px; margin: 18px 0; }
  .hero-lead br { display: none; }
  .hero-actions { gap: 10px; margin-top: 24px; }
  .primary { min-height: 56px; padding: 12px 16px; }
  .primary span { font-size: 14px; }
  .trust-row { margin-top: 24px; }
  .quick-facts { width: 90%; margin-top: -20px; }
  .quick-facts article { padding: 20px 22px; }
  .section { padding: 70px 5.5vw; }
  .section-heading h2 { font-size: 34px; letter-spacing: -1.8px; }
  .mini-grid b { font-size: 25px; }
  .program-grid { grid-template-columns: 1fr; gap: 12px; }
  .program-grid article { padding: 26px 21px; }
  .program-grid article.featured { order: -1; border: 3px solid #5eead4; }
  .search-box button { padding: 0 17px; }
  .tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; -webkit-overflow-scrolling: touch; }
  .tabs button { flex: 0 0 auto; }
  .region-card { padding: 21px 18px; }
  .area-tags a { font-size: 12px; min-height: 40px; display: inline-flex; align-items: center; }
  .rules { gap: 20px; }
  .cta { padding: 74px 20px; }
  .mobile-bar { height: calc(68px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); }

  /* Regional pages */
  .local-hero { min-height: auto; padding: 55px 6vw 70px; }
  .local-hero .eyebrow { margin-top: 28px; }
  .local-hero h1 { overflow-wrap: anywhere; font-size: clamp(40px, 12vw, 52px); line-height: 1.08; }
  .local-hero > p:not(.eyebrow) { font-size: 15px; line-height: 1.75; }
  .actions a { width: 100%; min-height: 52px; display: grid; place-items: center; }
  .summary { width: 90%; }
  .local-visual { width: 90%; height: min(74vw, 360px); margin-top: 48px; }
  .local-visual img { object-position: var(--focus) center; }
  .local-visual figcaption { right: 10px; bottom: 10px; max-width: calc(100% - 20px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .content, .near, .faq { padding-left: 5.5vw; padding-right: 5.5vw; }
  .content h2, .near h2, .faq h2 { font-size: 33px; letter-spacing: -1.6px; }
  .situations { padding-left: 5.5vw; padding-right: 5.5vw; }
  .table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #ffffff20; border-radius: 12px; }
  table { min-width: 560px; }
  th, td { padding: 12px 10px; white-space: nowrap; }
  .booking li { align-items: flex-start; }
  .near > div { display: grid; grid-template-columns: 1fr 1fr; }
  .near a { min-height: 48px; display: flex; align-items: center; font-size: 13px; }
  .notice { padding: 50px 5.5vw; }
  .bottom-cta { padding: 72px 5.5vw; }
  .bottom-cta a { width: 100%; min-height: 56px; }
  .mobile { height: calc(64px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); }
}

@media (max-width: 380px) {
  .hero h1 { font-size: 36px; }
  .primary { gap: 8px; }
  .primary span { font-size: 12px; }
  .local-hero h1 { font-size: 38px; }
  .near > div { grid-template-columns: 1fr; }
}
