/* ============================================================
   Princess — responsive.css  |  Mobile-First Breakpoints
   ============================================================
   Breakpoints:
     xs  < 480px   (small phones)
     sm  ≥ 480px   (large phones)
     md  ≥ 768px   (tablets)
     lg  ≥ 1024px  (laptops)
     xl  ≥ 1280px  (desktops)
     2xl ≥ 1536px  (large monitors)
   ============================================================ */

/* ── xs: base (mobile-first, written in style.css) ──────── */
/* Override only what needs to change at small sizes */

@media (max-width: 479px) {
  :root { --sp-6: 1rem; }

  .hero-title  { font-size: 2rem; }
  .hero-stats  { gap: var(--sp-4); }
  .stat strong { font-size: 1.25rem; }
  .stat-divider { display: none; }

  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn { text-align: center; }

  .tickets-grid      { grid-template-columns: 1fr 1fr; }
  .testimonials-grid { grid-template-columns: 1fr; }
  .vision-grid       { grid-template-columns: 1fr; }
  .footer-grid       { grid-template-columns: 1fr; }
  .contact-layout    { grid-template-columns: 1fr; }
  .form-row          { grid-template-columns: 1fr; }

  .cta-banner-inner { flex-direction: column; text-align: center; }

  .timeline::before { left: 60px; }
  .timeline-item::before { left: 53px; }
  .timeline-year { flex: 0 0 44px; font-size: 0.875rem; }

  .page-hero h1 { font-size: 1.75rem; }

  .modal-actions { flex-direction: column; }
}

/* ── sm: ≥ 480px ────────────────────────────────────────── */
@media (min-width: 480px) {
  .tickets-grid      { grid-template-columns: 1fr 1fr; }
  .testimonials-grid { grid-template-columns: 1fr; }
  .vision-grid       { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 640px) {
  .tickets-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── md: ≥ 768px (tablets) ──────────────────────────────── */
@media (min-width: 768px) {
  /* Nav: show links, hide hamburger */
  .hamburger      { display: none; }
  .nav-links      { display: flex !important; position: static; background: none; flex-direction: row; padding: 0; box-shadow: none; }
  .nav-cta        { display: inline-flex; }

  .testimonials-grid { grid-template-columns: repeat(3, 1fr); }

  .footer-grid {
    grid-template-columns: 1.5fr 1fr 1fr;
  }
  .footer-brand { grid-column: 1 / -1; }

  .contact-layout    { grid-template-columns: 1fr 1.4fr; }
  .form-row          { grid-template-columns: 1fr 1fr; }

  .stats-bar-inner   { gap: var(--sp-10); }
}

/* ── lg: ≥ 1024px (laptops) ─────────────────────────────── */
@media (min-width: 1024px) {
  .tickets-grid { grid-template-columns: repeat(2, 1fr); }
  .vision-grid  { grid-template-columns: repeat(3, 1fr); }

  .footer-grid {
    grid-template-columns: 2fr 1fr 1fr 1.5fr;
  }
  .footer-brand { grid-column: auto; }
}

/* ── xl: ≥ 1280px (desktops) ────────────────────────────── */
@media (min-width: 1280px) {
  :root { --container-max: 1200px; }
  .hero-title { font-size: 4.5rem; }
}

/* ── 2xl: ≥ 1536px (large monitors) ─────────────────────── */
@media (min-width: 1536px) {
  :root { --container-max: 1400px; }
}

/* ── Mobile nav overlay (< 768px) ───────────────────────── */
@media (max-width: 767px) {
  .hamburger { display: flex; }
  .nav-cta   { display: none; }

  .nav-links {
    position: fixed;
    top: var(--header-h); left: 0; right: 0;
    background: var(--clr-white);
    flex-direction: column;
    padding: var(--sp-6);
    gap: var(--sp-2);
    border-top: 1px solid var(--clr-grey-100);
    box-shadow: var(--shadow-lg);
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: transform var(--transition-normal), opacity var(--transition-normal), visibility var(--transition-normal);
    z-index: 999;
  }
  .nav-links.open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }
  .nav-link {
    display: block;
    padding: var(--sp-3) var(--sp-4);
    border-radius: var(--radius-md);
    font-size: 1rem;
  }
  .nav-link.active, .nav-link:hover {
    background: var(--clr-off-white);
  }
  .nav-link::after { display: none; }

  /* Show book btn inside mobile menu */
  .nav-links::after {
    content: '';
    display: block;
    height: 1px;
    background: var(--clr-grey-100);
    margin-block: var(--sp-3);
  }

  /* Timeline collapses */
  .timeline::before { left: 48px; }
  .timeline-item::before { left: 41px; }
  .timeline-year { flex: 0 0 32px; font-size: 0.8125rem; }
  .timeline-item { gap: var(--sp-5); }

  /* Contact layout stack */
  .contact-layout { grid-template-columns: 1fr; gap: var(--sp-8); }

  /* Footer */
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-brand { grid-column: 1 / -1; }
}

/* ── Print ───────────────────────────────────────────────── */
@media print {
  .site-header, .back-to-top, .scroll-progress,
  .hamburger, .hero-actions, .cta-banner,
  .nav-cta, .ticket-actions, .modal-overlay { display: none !important; }

  body { color: #000; background: #fff; }
  a[href]::after { content: " (" attr(href) ")"; font-size: .75em; }
  .container { max-width: 100%; padding: 0; }
}
