/* Original LP retained. Layout overrides apply only to phone-sized screens. */
@media (max-width: 640px) {
  html { scroll-padding-top: 76px; -webkit-text-size-adjust: 100%; }
  section[id], main[id] { scroll-margin-top: 0; }
  .wrap, .hero-inner { width: calc(100% - 32px); }
  .nav { width: calc(100% - 32px); gap: 12px; }
  .nav-links { display: flex; margin-left: auto; gap: 12px; font-size: 12px; flex-shrink: 0; }
  .nav-links a { display: none; }
  .nav-links a[href="#plans"], .nav-links a[href="#area"] { display: inline-flex; align-items: center; min-height: 44px; }
  .nav-links a[href="#plans"] { order: -1; }
  .logo { gap: 7px; }
  .logo-wordmark { font-size: 12px; }
  .hero-inner { padding: 30px 0 28px; }
  .hero-layout { gap: 28px; }
  .eyebrow { display: block; position: relative; padding-left: 28px; font-size: 12px; line-height: 1.8; letter-spacing: 0; margin-bottom: 14px; }
  .eyebrow::before { position: absolute; left: 0; top: 11px; width: 18px; }
  .hero-catch { display: block; width: 100%; font-size: 12px; line-height: 1.65; padding: 8px 12px; border-radius: 18px; margin-bottom: 18px; letter-spacing: 0; }
  .eyebrow .mobile-lines > span, .hero-catch .mobile-lines > span { display: block; }
  .eyebrow .mobile-lines > .mobile-separator, .hero-catch .mobile-lines > .mobile-separator { display: none; }
  .hero h1 { font-size: clamp(35px,10.5vw,62px); line-height: 1.08; }
  .hero h1 span { display: block; }
  .hero-sub { font-size: 15px; line-height: 1.9; margin-top: 20px; }
  .hero-note { font-size: 12px; line-height: 1.8; }
  .button { white-space: normal; min-height: 50px; line-height: 1.4; padding: 12px 14px; font-size: 14px; text-align: center; }
  .hero-actions { grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 10px; margin-top: 22px; }
  .hero-actions .button-line { grid-column: 1 / -1; }
  .hero-actions .button:not(.button-line) { font-size: 12px; padding-inline: 10px; }
  .hero-actions .button-line { font-size: clamp(12px,3.6vw,15px); }
  .campaign-panel { max-width: none; padding: 18px; }
  .campaign-panel h2 { font-size: clamp(24px,6.6vw,32px); line-height: 1.35; }
  .campaign-panel p { line-height: 1.8; }
  .benefit { padding: 13px 12px; }
  .benefit-price { grid-template-columns: minmax(0,1fr) 18px auto; gap: 8px; }
  .benefit-price del { font-size: 13px; }
  .hero-facts { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 24px; }
  .fact { padding: 14px 12px; min-height: 0; }
  .fact b { font-size: 14px; line-height: 1.5; }
  .fact span { font-size: 12px; line-height: 1.7; }
  .section { padding: 48px 0; }
  .section-head { gap: 18px; margin-bottom: 24px; }
  h2 { font-size: clamp(28px,7.5vw,38px); line-height: 1.3; }
  .prelaunch h2 { font-size: clamp(27px,7.2vw,36px); line-height: 1.35; }
  .lead, .prelaunch p, .card p, .access-copy p { font-size: 15px; line-height: 1.9; }
  .prelaunch-kicker, .section-kicker { font-size: 12px; }
  .prelaunch-panel { padding: 30px 0; }
  .prelaunch-actions { gap: 10px; }
  .prelaunch-step { padding: 18px; }
  .card, .campaign-main, .campaign-note, .plan, .rule { padding: 20px; min-width: 0; }
  .card h3 { font-size: 21px; line-height: 1.4; }
  .climate-box, .membership-reason { padding: 20px; gap: 22px; }
  .climate-box h3 { font-size: clamp(25px,6.4vw,32px); line-height: 1.35; }
  .climate-box h3 strong { font-size: inherit; line-height: inherit; }
  .membership-reason h3 { font-size: 27px; line-height: 1.35; }
  .campaign-main h3 { font-size: clamp(23px,6.2vw,29px); line-height: 1.4; }
  .offer-benefits { grid-template-columns: 1fr; }
  .offer-benefit { padding: 17px; }
  .offer-benefit b { line-height: 1.35; }
  .member-price { padding: 18px; }
  .member-price strong { font-size: 28px; }
  .member-hours { gap: 5px; }
  .access-copy { padding: 20px; }
  .access-copy strong { font-size: clamp(20px,5.8vw,28px); line-height: 1.45; }
  .access-route { font-size: 13px; line-height: 1.8; }
  .map-frame { min-height: 280px; }
  .map-frame iframe { height: 280px; }
  .map-followup { padding: 16px; }
  .search-terms { gap: 8px; }
  .search-terms span { white-space: normal; }
  .image-panel { min-height: 0; }
  .image-panel img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
  .image-caption { left: 10px; right: 10px; bottom: 10px; width: fit-content; max-width: calc(100% - 20px); font-size: 10px; line-height: 1.5; border-radius: 8px; }
  .check-row { grid-template-columns: 28px minmax(0,1fr); padding: 13px; gap: 10px; }
  .check-row b { width: 28px; height: 28px; }
  .check-row strong { line-height: 1.5; }
  .check-row span { font-size: 14px; line-height: 1.85; }
  .plan { gap: 16px; min-height: 0; }
  .plan h3 { font-size: 22px; line-height: 1.45; }
  .price { font-size: 40px; }
  .plan ul { font-size: 14px; line-height: 1.85; }
  .plan-cta { padding: 18px; gap: 16px; }
  .plan-cta b { font-size: 16px; line-height: 1.55; }
  .plan-cta span { font-size: 13px; line-height: 1.8; }
  .reserve-placeholder { min-height: 0; padding: 14px; }
  .reserve-placeholder-inner { min-width: 0; max-width: 100%; padding: 18px; }
  .reserve-placeholder h3 { font-size: 22px; line-height: 1.5; }
  .reserve-placeholder .button { font-size: 13px; }
  .booking-head { padding: 18px; }
  .booking-head > div { min-width: 0; }
  .faq details { padding: 0; }
  .faq summary { padding: 17px 18px; font-size: 15px; line-height: 1.65; min-height: 56px; }
  .faq details p { margin: 0; padding: 0 18px 18px; line-height: 1.9; }
  .final-cta h2 { font-size: clamp(28px,7.8vw,38px); line-height: 1.35; }
  .final-cta p { font-size: 15px; line-height: 1.9; }
  .mobile-line-sticky { min-height: 58px; padding: 10px 12px; border-radius: 14px; bottom: calc(10px + env(safe-area-inset-bottom)); }
  .mobile-line-sticky strong { font-size: 15px; }
  .mobile-line-sticky span { font-size: 10px; }
  .mobile-line-sticky[hidden] { display: none !important; }
  footer { padding-bottom: calc(102px + env(safe-area-inset-bottom)); }
  .footer-links a { padding: 12px 0; min-height: 44px; }
  a:focus-visible, summary:focus-visible { outline: 2px solid var(--brass-2); outline-offset: 3px; }
}
@media (max-width: 359px) {
  .logo-mark { width: 38px; height: 38px; }
  .logo-wordmark { font-size: 11px; }
  .nav-links { gap: 10px; font-size: 11px; }
  .eyebrow { font-size: 11px; padding-left: 22px; }
  .eyebrow::before { width: 14px; top: 10px; }
  .fact { padding: 12px 10px; }
  .fact b { font-size: 13px; }
  .benefit-price strong { font-size: 24px; min-width: 0; }
  .badge { font-size: 11px; letter-spacing: .025em; }
  .reserve-placeholder-inner { padding: 15px; }
}
