/* ============================================================
   MUFFINBERRY STUDIOS — responsive
   Blueprint §25: mobile must NEVER be a scaled-down desktop.
   Mobile gets its own section order, a full-screen menu and a
   swipeable character carousel.
   ============================================================ */

@media (max-width: 1020px) {
  .nav-links a { padding: 9px 11px; font-size: 0.96rem; }
}

@media (max-width: 899px) {
  /* Navigation collapses to the full-screen menu */
  .nav-links, .nav-cta { display: none; }
  .nav-toggle { display: inline-flex; }
  .brand img { height: 46px; }

  /* Blueprint mobile homepage order:
     hero → latest video → categories → characters → map → parents → streaming */
  main.home { display: flex; flex-direction: column; }
  main.home > .hero            { order: 1; }
  main.home > .sec-new         { order: 2; }
  main.home > .sec-cats        { order: 3; }
  main.home > .sec-town        { order: 4; }
  main.home > .sec-characters  { order: 5; }
  main.home > .sec-parents     { order: 6; }
  main.home > .sec-streaming   { order: 7; }
  main.home > .div-1 { order: 2; }
  main.home > .div-2 { order: 3; }
  main.home > .div-3 { order: 4; }
  main.home > .div-4 { order: 5; }
  main.home > .div-5 { order: 6; }
  main.home > .div-6 { order: 7; }

  /* NOTE: visual order changes but each section keeps its own
     heading structure, so screen-reader flow stays coherent. */

  .hero-inner { grid-template-columns: 1fr; }
  .hero-copy { text-align: center; }
  .hero-ctas { justify-content: center; }
  .boop-float { top: auto; bottom: -8px; right: 6px; }

  .new-grid, .grid-2, .char-hero, .loc-hero, .town-layout { grid-template-columns: 1fr; }
  .char-hero-art { order: -1; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 30px; padding-block: 48px 22px; }

  /* Character rail becomes a swipeable carousel */
  .grid-characters.rail {
    display: flex; overflow-x: auto; gap: 16px;
    scroll-snap-type: x mandatory;
    padding: 6px 4px 22px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .grid-characters.rail::-webkit-scrollbar { display: none; }
  .grid-characters.rail .char-card {
    flex: 0 0 210px; scroll-snap-align: center;
  }
  .rail-hint { display: block; text-align: center; color: var(--ink-soft); font-weight: 800; font-size: 0.88rem; margin-top: 2px; }
}

@media (min-width: 900px) {
  .rail-hint { display: none; }
}

@media (max-width: 719px) {
  /* Precision tapping is unreliable on small maps (§11):
     hide dot hotspots, rely on the always-present list. */
  .map-wrap .hotspot { display: none; }
  .hero-logo-chip img { width: min(300px, 74vw); }
  .btn { padding: 15px 24px 17px; font-size: 1.02rem; }
  .grid-videos { grid-template-columns: 1fr; }
  .grid-locs { grid-template-columns: repeat(2, 1fr); }
  .faq details > div { padding-left: 22px; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; text-align: center; }
}

@media (max-width: 420px) {
  .grid-locs { grid-template-columns: 1fr; }
  .grid-characters { grid-template-columns: 1fr; }
}

/* Large screens: a touch more air */
@media (min-width: 1400px) {
  :root { --section-pad: 110px; }
}

/* Print: quiet it down */
@media print {
  .site-header, .site-footer, .hero-ctas, .nav-toggle, .mobile-menu { display: none !important; }
  body { background: #fff; }
}
