/* ============================================================
   DREAM SHORE TRAVELS — responsive.css
   Breakpoints: 1080 · 900 · 720 · 560
   ============================================================ */

/* ---- Large tablet / small laptop ---- */
@media (max-width: 1080px) {
  .themes { grid-template-columns: repeat(2, 1fr); }
  .dest-grid { grid-template-columns: repeat(2, 1fr); }
  .dest.span-2 { grid-column: span 2; }
  .values { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .step::after { display: none; }
  .review-grid { grid-template-columns: repeat(2, 1fr); }
  .readymade { grid-template-columns: repeat(2, 1fr); }
  .contact-cards { grid-template-columns: 1fr; }

  /* experiences: collapse mosaic into uniform tiles */
  .exp-grid { grid-auto-rows: 240px; }
  .exp.e-a, .exp.e-b, .exp.e-c, .exp.e-d,
  .exp.e-e, .exp.e-f, .exp.e-g, .exp.e-h { grid-column: span 6; grid-row: span 1; }

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

/* ---- Tablet ---- */
@media (max-width: 900px) {
  .nav__links, .nav__cta { display: none; }
  .nav__toggle { display: flex; }

  .split { grid-template-columns: 1fr; gap: 2.5rem; }
  .split--reverse .split__media { order: 0; }
  .split__media img { aspect-ratio: 16/10; }
  .split__frame { inset: 14px -14px -14px 14px; }

  .tour-grid { grid-template-columns: 1fr; }
  .footer__top { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

/* ---- Large phone ---- */
@media (max-width: 720px) {
  :root { --sect-y: clamp(3.5rem, 12vw, 5rem); }

  .themes { grid-template-columns: 1fr; }
  .dest-grid { grid-template-columns: 1fr; }
  .dest.span-2 { grid-column: span 1; }
  .dest { aspect-ratio: 3/3.6; }
  .exp-grid { grid-template-columns: 1fr; grid-auto-rows: 260px; }
  .exp.e-a, .exp.e-b, .exp.e-c, .exp.e-d,
  .exp.e-e, .exp.e-f, .exp.e-g, .exp.e-h { grid-column: span 1; }
  .values { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .review-grid { grid-template-columns: 1fr; }
  .readymade { grid-template-columns: 1fr; }
  .stats { grid-template-columns: repeat(2, 1fr); }

  .tour { grid-template-columns: 1fr; }
  .tour__media { min-height: 200px; }

  .hero__badge { display: none; }
  .hero__actions .btn { flex: 1; justify-content: center; }

  .itin__head { grid-template-columns: auto 1fr; }
  .itin__toggle { grid-column: 2; justify-self: end; grid-row: 1; margin-top: -3.4rem; }
  .day { grid-template-columns: 1fr; gap: .5rem; }
  .day__marker { flex-direction: row; gap: .5rem; align-items: center; }
  .day__line { display: none; }

  .form__row { grid-template-columns: 1fr; }
  .reviews-head { flex-direction: column; align-items: flex-start; }

  .footer__top { grid-template-columns: 1fr; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
}

/* ---- Small phone ---- */
@media (max-width: 460px) {
  .stats { grid-template-columns: 1fr; }
  .brand__name { font-size: 1.35rem; }
  .fab-wa { width: 52px; height: 52px; font-size: 1.5rem; }
  .fab-wa__tip { display: none; }
}

/* ---- Motion preferences ---- */
@media (prefers-reduced-motion: reduce) {
  .hero__media img { animation: none; transform: none; }
  .hero__scroll span::after { animation: none; }
  .fab-wa { animation: none; }
  .reveal { opacity: 1; transform: none; }
}
