/* =========================================================================
   Responsive overrides — mobile-first adjustments layered on top of the
   desktop-default component styles.
   ========================================================================= */

/* ---- Large tablets / small laptops ---- */
@media (max-width: 991.98px){
  .why-grid{ grid-template-columns: repeat(2, 1fr); }
  .service-grid{ grid-template-columns: repeat(2, 1fr); }
  .ticket-row{ grid-template-columns: repeat(2, 1fr); }
  .dest-grid{ grid-template-columns: repeat(2, 1fr); }
  .steps-row{ grid-template-columns: repeat(2, 1fr); row-gap: 2rem; }
  .footer__grid{ grid-template-columns: 1fr 1fr; }
  .footer__brand{ grid-column: 1 / -1; }

  .site-header{ background: var(--bg); }
  .navbar-collapse{
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md);
    margin-top: .75rem; padding: 1rem 1.25rem; box-shadow: var(--shadow-md);
  }
  .site-nav .dropdown-menu{ box-shadow: none; border: none; padding-left: .75rem; }
  .nav-cta{ margin: .5rem 0 0; display: inline-flex; }
}

/* ---- Tablets / large phones ---- */
@media (max-width: 767.98px){
  .topbar__inner{ justify-content: center; text-align: center; }
  .topbar__address{ display: none; } /* keep the bar uncluttered on small screens, per spec */

  .hero-carousel .carousel-item{ height: min(88vh, 560px); }
  .hero-slide-content{ max-width: 100%; }
  .hero-slide-content p{ font-size: 1rem; }

  .booking-bar{ margin-top: -40px; }
  .booking-bar__card{ padding: 1.4rem 1.1rem; }

  .pricing-callout{ flex-direction: column; align-items: flex-start; text-align: left; }
  .cta-band__inner{ flex-direction: column; align-items: flex-start; text-align: left; }
  .cta-band__actions{ width: 100%; }
  .cta-band__actions .btn{ flex: 1 1 auto; text-align: center; }

  .feature-check-grid{ grid-template-columns: 1fr; }
  .pillar-grid{ grid-template-columns: 1fr; }
}

/* ---- Phones ---- */
@media (max-width: 575.98px){
  .why-grid, .service-grid, .ticket-row, .dest-grid, .steps-row{ grid-template-columns: 1fr; }
  .footer__grid{ grid-template-columns: 1fr; text-align: left; }
  .footer__bottom-inner{ flex-direction: column; text-align: center; }

  .ticket-card::before, .ticket-card::after{ display: none; }

  .price-card__img{ height: 160px; }
  .service-hero{ padding: 2.25rem 0 2rem; }
  .service-hero__price{ flex-direction: column; align-items: flex-start; gap: .1rem; }

  .floating-actions{ right: .75rem; bottom: .75rem; }
  .fab{ width: 48px; height: 48px; font-size: 1.2rem; }

  h1{ font-size: 2rem; }
}

/* Prevent any accidental horizontal overflow on very narrow devices */
@media (max-width: 400px){
  .container{ padding-left: 1rem; padding-right: 1rem; }
}
