/* THE SQUARE / Mobile optimization v76
   Shared responsive refinements; preserves approved desktop header, ring geometry and footer.
   Breakpoints: 900 / 700 / 480 / 380.
*/
@media (max-width: 900px) {
  /* Avoid narrow-column clipping in content and reusable grids. */
  main, main section, .sq-footer, .sq-footer__inner { min-width:0; }
  .gallery, .library-grid, .private-grid, .private-booking-head { min-width:0; }
  .episode, .library-card, .private-grid article { min-width:0; }
  /* Maintain accessible hit areas for shared controls. */
  header.topbar #menu-btn,
  header.topbar #lang-toggle { touch-action:manipulation; }
  .sq-footer__col a { overflow-wrap:anywhere; }
  .sq-footer__bottom { overflow-wrap:anywhere; }
}
@media (max-width: 700px) {
  /* Keep the original 2-column footer hierarchy; improve tap targets and legibility. */
  .sq-footer__grid { column-gap:clamp(14px,4vw,25px);row-gap:28px; }
  .sq-footer__col { gap:2px; }
  .sq-footer__col h3 { font-size:11px;line-height:1.5;margin-bottom:12px; }
  .sq-footer__col a {
    display:flex;align-items:center;min-height:40px;
    font-size:clamp(10.5px,2.8vw,12px);
    line-height:1.45;letter-spacing:.025em;
    padding:5px 0;
  }
  .sq-footer__col--location { padding-top:22px; }
  .sq-footer__col--location p { font-size:12px;line-height:1.6; }
  .sq-footer__status { font-size:10px;line-height:1.5; }
  .sq-footer__bottom { padding:19px 0 25px;line-height:1.7;row-gap:8px; }
  .sq-footer__bottom > span:first-child { font-size:10px;letter-spacing:.025em; }
  .sq-footer__bottom > span:nth-child(2) { font-size:10px;letter-spacing:.07em; }
  .sq-footer__bottom a {
    display:inline-flex;align-items:center;justify-content:flex-end;
    min-height:40px;padding:4px 0;font-size:10px;
  }
  /* Page-specific long translations must wrap instead of spilling past the viewport. */
  .hero h1,.section-head h2,.library-card h3,
  .private-hero h1,.private-booking-head h2 { overflow-wrap:break-word; }
  .private-booking-head h2 { font-size:clamp(30px,8.5vw,48px); }
  .private-booking-fallback a { min-height:46px;display:inline-flex;align-items:center;justify-content:center; }
}
@media (max-width: 480px) {
  header.topbar .topbar-inner { gap:7px; }
  header.topbar .brand-logo { width:clamp(126px,36vw,154px); }
  header.topbar .top-actions { gap:4px!important; }
  header.topbar .language-picker .language-trigger,
  header.topbar #menu-btn { width:48px!important;min-width:48px!important;height:48px!important; }
  header.topbar .language-ring-globe,
  header.topbar #menu-btn .menu-ring-icon { width:43px!important;height:43px!important; }
  header.topbar #main-nav,
  header.topbar #main-nav:not(.open) {
    max-height:min(calc(100dvh - 92px),560px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
  }
  header.topbar .language-picker .language-menu { max-height:calc(100dvh - 92px)!important;overflow-y:auto!important; }
  .sq-footer__grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .sq-footer__col a { font-size:11px; }
  .sq-footer__bottom { gap:8px 14px; }
  .private-overline { flex-wrap:wrap; }
  .private-booking .calendly-inline-widget { width:100%;max-width:100%;min-width:0;height:890px; }
  .private-booking-fallback { align-items:stretch; }
  .private-booking-fallback a { width:100%;text-align:center; }
  .library-card { overflow-wrap:break-word; }
}
@media (max-width: 380px) {
  header.topbar .brand-logo { width:124px; }
  header.topbar .top-actions { gap:2px!important; }
  .sq-footer__col a { font-size:10.5px;letter-spacing:0; }
  .sq-footer__inner { width:calc(100% - 32px); }
  .private-hero h1 { font-size:clamp(44px,13.5vw,55px); }
  .private-hero-note { font-size:10px;letter-spacing:.025em; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
}
