html, body { max-width: 100%; overflow-x: clip; }
*, *::before, *::after { box-sizing: border-box; }
img, svg, video, canvas { max-width: 100%; }
img { height: auto; }
main, section, article, aside, header, footer, nav, form, fieldset, div { min-width: 0; }
p, h1, h2, h3, h4, h5, h6, a, span, label, address { overflow-wrap: anywhere; }
input, select, textarea, button { max-width: 100%; }

@media (max-width: 768px) {
  h1, .hero-title { font-size: clamp(1.85rem, 9vw, 2.45rem) !important; line-height: 1.12 !important; }
  h2, .section-title { font-size: clamp(1.45rem, 7vw, 2rem) !important; line-height: 1.2 !important; }
  h3, .section-subtitle { font-size: clamp(1.15rem, 5.5vw, 1.4rem) !important; }
  section { max-width: 100%; }
  .contact-form-row, .studio-location-grid, .booking-cta-wrapper, .footer-grid, [class*="-grid"] { grid-template-columns: minmax(0, 1fr) !important; }
  .contact-form-row, .booking-cta-buttons, .hero-actions, .footer-legal-links { flex-direction: column !important; align-items: stretch !important; }

  .site-header {
    display: block;
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
  }
  .navigation-container {
    min-height: 4rem;
    gap: .75rem;
    padding: .65rem 1rem;
  }
  .navigation-logo-link {
    min-width: 0;
    max-width: calc(100vw - 5rem);
  }
  .navigation-logo-icon {
    width: 2rem;
    height: 2rem;
    flex: 0 0 2rem;
  }
  .navigation-logo-link .section-title {
    min-width: 0;
    overflow: hidden;
    font-size: clamp(.95rem, 4.5vw, 1.15rem) !important;
    line-height: 1.2 !important;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .navigation-mobile-toggle,
  .navigation-mobile-close {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    padding: .6rem;
    flex: 0 0 2.75rem;
    place-items: center;
  }
  .navigation-mobile-header {
    min-height: 4rem;
    gap: .75rem;
    padding: .65rem 1rem;
  }
  .navigation-mobile-content {
    gap: 2rem;
    padding: 2rem 1rem;
  }
  .navigation-mobile-links {
    gap: .75rem;
  }
  .navigation-mobile-link {
    display: block;
    padding: .6rem 0;
    font-size: clamp(1.6rem, 8vw, 2.25rem);
    line-height: 1.15;
  }
  .navigation-mobile-overlay {
    width: 100%;
    max-width: 100vw;
    min-height: 100dvh;
  }

  .hero-bento-grid,
  .about-equal-columns,
  .process-steps-grid,
  .stage-performance__stepper,
  .booking-cta__steps,
  .individual-lessons__bento,
  .individual-lessons__features,
  .testimonials-rail,
  .testimonials-rail-track,
  .student-testimonials-track {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    overflow: visible !important;
  }
  .hero-bento-sub-cell,
  .features-grid-item,
  .stats-card,
  .team-card,
  .contact-details-card,
  .individual-lessons__card,
  .testimonial-card,
  .testimonials-rail-card,
  .student-testimonials-card {
    width: 100% !important;
    max-width: none !important;
    flex: 0 0 auto !important;
  }
  .testimonials-rail,
  .testimonials-rail-track,
  .student-testimonials-track {
    padding-bottom: 0 !important;
    scroll-snap-type: none;
  }
  .process-steps::before {
    display: none;
  }

  .footer-divider { display: none; }
  .btn, button, [class*="button"] { white-space: normal; text-align: center; }
  .booking-dialog { width: calc(100% - 1.5rem); max-width: calc(100% - 1.5rem); }
  .booking-dialog-content { max-height: calc(100vh - 2rem); overflow-y: auto; }
  .footer-contact-item { align-items: flex-start; }
}

@media (max-width: 480px) {
  h1, .hero-title { font-size: clamp(1.7rem, 9.5vw, 2.1rem) !important; }
  h2, .section-title { font-size: clamp(1.35rem, 7.5vw, 1.75rem) !important; }
  .btn, button { width: 100%; }
  .navigation-mobile-toggle, .navigation-mobile-close { width: auto; }
}
