/* ==========================================================================
   RESPONSIVE RULES — desktop-first overrides down to small mobile
   ========================================================================== */

/* Laptops / small desktops */
@media (max-width: 1199px) {
  .card-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-grid .footer-col--newsletter { grid-column: 1 / -1; max-width: 420px; }
}

/* Tablets / iPad */
@media (max-width: 991px) {
  .nav-links { display: none; }
  .nav-toggle { display: flex; }

  .hero-grid { grid-template-columns: 1fr; text-align: center; }
  .hero-copy .lede { margin-inline: auto; }
  .hero-actions { justify-content: center; }
  .flight-path { justify-content: center; }
  .boarding-pass { max-width: 460px; margin-inline: auto; }

  .stats-strip { grid-template-columns: repeat(2, 1fr); row-gap: 1.8rem; }
  .process-track { grid-template-columns: repeat(2, 1fr); row-gap: 2.2rem; }
  .process-track::before { display: none; }

  .card-grid--3, .card-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .pricing-grid { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; }
  .pricing-card--featured { transform: none; order: -1; }
  .pricing-card--featured:hover { transform: translateY(-8px); }

  .footer-grid { grid-template-columns: 1fr 1fr; }
  .compare-table { font-size: .85rem; }
}

/* Large phones */
@media (max-width: 767px) {
  .section { padding-block: var(--sp-xl); }
  .card-grid--3, .card-grid--2, .card-grid--4 { grid-template-columns: 1fr; }
  .boarding-pass__body { grid-template-columns: repeat(2, 1fr); }
  .stats-strip { grid-template-columns: 1fr 1fr; }
  .cta-banner { flex-direction: column; text-align: center; }
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; text-align: center; justify-content: center; }
  .slider-arrow { display: none; }
  .info-tabs { overflow-x: auto; flex-wrap: nowrap; }
  .compare-table th, .compare-table td { padding: .7rem; }
}

/* Small phones */
@media (max-width: 480px) {
  .container-xl { padding-inline: 1.1rem; }
  .btn { padding: .85rem 1.5rem; font-size: .88rem; }
  .boarding-pass__body { grid-template-columns: 1fr 1fr; gap: .8rem; }
  h1 { font-size: clamp(2rem, 9vw, 2.6rem); }
  .testimonial-card { padding: 1.8rem 1.3rem; }
  .brand span { display: none; }
}

/* Landscape phones */
@media (max-height: 480px) and (orientation: landscape) {
  .mobile-nav { justify-content: flex-start; padding-top: 6rem; gap: 1.2rem; overflow-y: auto; }
  .hero { padding-top: 6rem; }
}

/* Extra-small phones (older/narrow devices) */
@media (max-width: 380px) {
  .container-xl { padding-inline: .9rem; }
  .hero-copy .lede { font-size: 1rem; }
  .boarding-pass__body { grid-template-columns: 1fr 1fr; gap: .6rem; }
  .boarding-pass__top { padding: 1.2rem 1.2rem .9rem; flex-direction: column; gap: .8rem; align-items: flex-start; }
  .btn { padding: .8rem 1.3rem; }
  .marquee__item { font-size: .75rem; }
  .stats-strip { grid-template-columns: 1fr 1fr; gap: 1.2rem; }
}

/* Hero flight-path scales down on small screens so the plane still reads clearly */
@media (max-width: 767px) {
  .hero-flightline { max-width: 320px; margin-inline: auto; }
}

/* Safe-area padding for notched devices (iPhone etc.) */
@supports (padding: max(0px)) {
  .navbar .container-xl { padding-left: max(1.25rem, env(safe-area-inset-left)); padding-right: max(1.25rem, env(safe-area-inset-right)); }
  .back-to-top { bottom: max(2rem, env(safe-area-inset-bottom)); right: max(2rem, env(safe-area-inset-right)); }
}

/* Respect touch target minimums on small pointers */
@media (pointer: coarse) {
  .nav-toggle, .slider-arrow, .back-to-top { min-width: 44px; min-height: 44px; }
  .faq-question { padding-block: 1.1rem; }
}
