/* ==========================================================================
   Dhanam Holidays - Responsive layer
   Breakpoints: 1180 (nav collapse) / 1024 / 860 / 700 / 560 / 400
   Layouts are re-composed for small screens, not just scaled down.
   ========================================================================== */

/* ---------- <= 1180px : collapse primary nav into the drawer ---------- */
@media (max-width: 1180px) {
  .nav { display: none; }
  .nav-toggle { display: block; }

  .footer__grid { grid-template-columns: 1.4fr 1fr 1.2fr; }
  .footer__col--links-2 { display: none; }
}

/* ---------- <= 1024px ---------- */
@media (max-width: 1024px) {
  :root { --header-h: 76px; }

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

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

  .hero { min-height: auto; }
  .hero__content { max-width: 100%; }

  .trust-strip__grid { grid-template-columns: repeat(2, 1fr); }

  .steps { grid-template-columns: repeat(2, 1fr); row-gap: 2.4rem; }
  .steps::before { display: none; }

  .media-stack__inset { width: 42%; right: -3%; }
}

/* ---------- <= 860px : stack the two-column compositions ---------- */
@media (max-width: 860px) {
  .split,
  .svc-row {
    grid-template-columns: 1fr;
  }

  /* Media always leads on mobile, whatever the desktop order */
  .split__media,
  .svc-row__media,
  .svc-row:nth-child(even) .svc-row__media { order: -1; }

  .svc-row { padding-block: 2.2rem; }

  .media-stack { max-width: 560px; margin-inline: auto; }
  .media-stack::before { left: -14px; top: -14px; }
  .media-stack__inset { right: 0; width: 40%; }

  .stats { grid-template-columns: 1fr; gap: 1.8rem; }
  .stat + .stat { padding-top: 1.6rem; border-top: 1px solid var(--line); }

  .planner__grid { grid-template-columns: 1fr; }

  .footer__grid { grid-template-columns: 1fr 1fr; }
  .footer__col--brand { grid-column: 1 / -1; }
}

/* ---------- <= 700px ---------- */
@media (max-width: 700px) {
  .grid--3,
  .grid--4 { grid-template-columns: 1fr; }

  .gallery { grid-template-columns: repeat(2, 1fr); }

  .cta-band h2 { max-width: none; }

  /* Process becomes a vertical timeline with a continuous rail */
  .steps {
    grid-template-columns: 1fr;
    row-gap: 0;
    padding-left: 4.6rem;
  }
  .steps::before {
    display: block;
    top: 1.5rem;
    bottom: 1.5rem;
    left: 31px;
    right: auto;
    width: 2px;
    height: auto;
    background: repeating-linear-gradient(180deg, var(--gold-300) 0 8px, transparent 8px 18px);
  }
  .step {
    text-align: left;
    padding-bottom: 2.2rem;
  }
  .step:last-child { padding-bottom: 0; }
  .step__num {
    position: absolute;
    left: -4.6rem;
    top: 0;
    width: 62px;
    height: 62px;
    margin: 0;
  }

  .lightbox__btn--prev { left: .6rem; }
  .lightbox__btn--next { right: .6rem; }
  .lightbox__img { max-height: 68vh; }
}

/* ---------- <= 560px ---------- */
@media (max-width: 560px) {
  :root { --header-h: 70px; }

  .brand img { height: 44px; }
  .site-header.is-scrolled .brand img { height: 40px; }

  /* Header keeps only the WhatsApp action + menu at this width */
  .header__cta .btn span { display: none; }
  .header__cta .btn {
    width: 46px;
    height: 46px;
    padding: 0;
    border-radius: 50%;
  }

  .hero { padding-top: calc(var(--header-h) + 2.6rem); }
  .hero__actions .btn,
  .cta-band .btn { width: 100%; }
  .hero__actions .btn-group,
  .cta-band .btn-group { flex-direction: column; align-items: stretch; }

  .trust-strip__grid { grid-template-columns: 1fr; }
  .trust-strip__item { padding: 1.1rem var(--gutter); }

  .gallery { gap: .6rem; }

  .footer__grid { grid-template-columns: 1fr; }
  .footer__col--links-2 { display: block; }
  .footer__bottom { justify-content: center; text-align: center; }

  .float-actions { gap: .55rem; }
  .wa-fab { width: 52px; height: 52px; }
  .wa-fab svg { width: 27px; height: 27px; }
  .to-top { width: 42px; height: 42px; }

  .svc-row__index { font-size: 2.1rem; }

  .contact-card { flex-direction: column; gap: .85rem; }
}

/* ---------- <= 400px : smallest supported widths ---------- */
@media (max-width: 400px) {
  :root { --gutter: 1.05rem; }

  .media-stack__inset { display: none; }

  .dest-card { aspect-ratio: 3 / 4; }

  .step { padding-bottom: 1.9rem; }
  .steps { padding-left: 4rem; }
  .step__num { left: -4rem; width: 54px; height: 54px; font-size: 1.25rem; }

  .mobile-nav__list a { font-size: 1.15rem; padding: .9rem .2rem; }
}

/* ---------- Landscape phones: keep the hero from eating the viewport ---------- */
@media (max-height: 520px) and (orientation: landscape) {
  .hero { min-height: auto; padding-block: calc(var(--header-h) + 2rem) 3rem; }
  .hero__scroll { display: none; }
  .mobile-nav { padding-top: calc(var(--header-h) + .8rem); }
  .mobile-nav__list a { padding: .7rem .2rem; font-size: 1.05rem; }
}

/* ---------- Fine pointer only: hover effects that would stick on touch ---------- */
@media (hover: none) {
  .dest-card__body p {
    max-height: 6.5rem;
    opacity: 1;
    margin-top: .35rem;
  }
  .svc-card:hover,
  .pkg-card:hover,
  .dest-card:hover,
  .contact-card:hover,
  .feature:hover,
  .gallery__item:hover { transform: none; }
}

/* ---------- Print ---------- */
@media print {
  .site-header,
  .mobile-nav,
  .nav-overlay,
  .float-actions,
  .scroll-progress,
  .hero__scroll,
  .lightbox { display: none !important; }

  body { color: #000; background: #fff; }

  .hero,
  .page-hero,
  .section--deep,
  .cta-band { background: #fff !important; color: #000 !important; }

  .hero::after,
  .cta-band::after { display: none; }

  .hero h1,
  .page-hero h1,
  .section--deep h2,
  .cta-band h2 { color: #000 !important; }

  [data-reveal] { opacity: 1 !important; transform: none !important; }

  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; }
}
