/* ═══════════════════════════════════════════════════════════════════════════
   Yoshino Massage — Responsive breakpoints
   ═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 1024px) {
    .grid--4 { grid-template-columns: repeat(2, 1fr); }
    .grid--3 { grid-template-columns: repeat(2, 1fr); }

    .nav { display: none; }
    .nav-toggle { display: inline-flex; }
    .header-phone span { display: none; }

    /* Compact the logo lockup for the mobile header */
    .logo { gap: var(--space-2); }
    .logo__mark { height: 40px; }
    .logo__wordmark { height: 26px; }
    /* Redundant on mobile (phone is in the top bar + fixed Call bar); hiding it
       also clears the crowding against the wordmark. */
    .header-phone { display: none; }

    .home-hero .container { grid-template-columns: 1fr; gap: var(--space-10); }
    .home-hero { min-height: 0; }
    .home-hero__media { aspect-ratio: 16 / 10; order: -1; }

    .service-layout,
    .pricing-layout { grid-template-columns: 1fr; }

    .service-sidebar,
    .pricing-aside { position: static; }

    .split,
    .split--reverse { grid-template-columns: 1fr; gap: var(--space-8); }
    .split--reverse > .split__media { order: 0; }

    .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--space-10); }

    .visit-grid { grid-template-columns: 1fr; }
    .contact-layout { grid-template-columns: 1fr 1fr; }
    .contact-layout__map { grid-column: 1 / -1; min-height: 320px; }
    .occasions-grid, .amount-map, .values-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .section { padding-block: var(--space-16); }
    .section--tight { padding-block: var(--space-12); }

    .topbar__address, .topbar__gift, .topbar__hours-label { display: none; }

    .grid--2, .grid--3 { grid-template-columns: 1fr; }
    .reviews-grid { grid-template-columns: 1fr; }
    .contact-layout { grid-template-columns: 1fr; }

    .page-hero { padding-block: var(--space-10) var(--space-8); }

    .btn-row .btn { flex: 1 1 auto; }

    /* Mobile CTA bar appears; reserve space so it never covers content */
    .mobile-cta-bar { display: grid; }
    body { padding-bottom: calc(var(--cta-bar-height) + env(safe-area-inset-bottom, 0px)); }

    .contact-form-wrap { padding: var(--space-6); }

    .footer-grid { grid-template-columns: 1fr; gap: var(--space-8); }
    .footer-bottom { justify-content: center; text-align: center; }

    .hero__branch { width: 240px; top: -30px; right: -50px; }
}

@media (max-width: 480px) {
    .container { padding-inline: var(--space-4); }

    /* Shorten the header "Book Online" → "Book" so it clears the wordmark */
    .header-actions .btn-word { display: none; }

    .occasions-grid, .amount-map, .values-grid { grid-template-columns: 1fr; }

    .home-hero__trust { gap: var(--space-2) var(--space-4); }

    .trust-strip { gap: var(--space-3) var(--space-5); }

    .price-row { padding-inline: var(--space-4); }
    .price-table__heading, .price-table__note { padding-inline: var(--space-4); }
    /* Long labels (e.g. membership rows) wrap instead of forcing overflow */
    .price-row__duration { white-space: normal; }
}
