/* ==========================================================================
   Tamra Developers — responsive.css
   Breakpoints checked: 1920, 1440, 1280, 1024, 768, 414, 390, 375
   Load AFTER style.css.
   ========================================================================== */

/* ---------- Ultra-wide: keep the editorial measure ---------------------- */
@media (min-width: 1700px) {
  :root { --maxw: 1640px; }
}

/* ---------- 1280 and below --------------------------------------------- */
@media (max-width: 1280px) {
  .footer__top { grid-template-columns: 1.3fr 1fr 1fr; }
  .footer__top > :last-child { grid-column: 1 / -1; }
  .mosaic { grid-template-columns: repeat(8, 1fr); }
  .m-a { grid-column: span 5; }
  .m-b { grid-column: span 3; }
  .m-c { grid-column: span 3; }
  .m-d { grid-column: span 5; }
  .m-e, .m-f { grid-column: span 4; }
}

/* ---------- Tablet / small laptop: 1024 -------------------------------- */
@media (max-width: 1024px) {
  .nav { display: none; }
  .header__actions .btn { display: none; }
  .burger { display: block; }

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

  .contact-grid {
    grid-template-columns: 1fr;
    --pv: clamp(1.1rem, 3vw, 1.6rem);
    gap: calc(var(--gut) + 2 * var(--pv));
  }
  .contact-panel::before {
    left: calc(-1 * var(--pad));
    right: calc(-1 * var(--pad));
  }

  .statement__line--alt { padding-left: 0; }

  .world { grid-template-columns: 3rem 1fr; }
  .world > .text-link,
  .world > .btn { grid-column: 2; margin-top: 0.9rem; }
  .world:hover h3 { transform: none; }

  .feature__fact { border-right: 0; border-bottom: 1px solid var(--line); }

  .panel:hover { flex-basis: clamp(270px, 30vw, 460px); }
  .panel .panel__reveal { max-height: 12rem; opacity: 1; }
}

/* ---------- Tablet portrait / phone: 768 ------------------------------- */
@media (max-width: 768px) {
  :root { --sect: clamp(3.75rem, 9vh, 6rem); }

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

  .hero { min-height: 92svh; }
  .hero__inner { padding-top: 7.5rem; }
  .hero__foot { flex-direction: column; align-items: flex-start; gap: 1.4rem; }
  .hero .btn-row .btn { flex: 1 1 100%; justify-content: center; }

  .page-hero { min-height: 62svh; }
  .page-hero__inner { padding-top: 7rem; }

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

  .mosaic { grid-template-columns: 1fr; }
  .m-a, .m-b, .m-c, .m-d, .m-e, .m-f { grid-column: 1 / -1; aspect-ratio: 4 / 3; }
  .m-b { align-self: auto; }

  .spec-list > div { grid-template-columns: 1fr; gap: 0.4rem; }

  .footer__top { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer__bottom { flex-direction: column; }

  .locmap__canvas { aspect-ratio: 1 / 1; }
  .pin__label { display: none; }

  .cta { min-height: 78svh; }
  .cta .btn-row { width: 100%; }
  .cta .btn-row .btn { flex: 1 1 100%; justify-content: center; }

  .marquee__track { animation-duration: 24s; }

  .timeline,
  .hscroll { scroll-snap-type: x mandatory; }
}

/* ---------- Phones: 414 and below ------------------------------------- */
@media (max-width: 480px) {
  body { line-height: 1.7; }
  .brand__word { font-size: 1.1rem; letter-spacing: 0.24em; }
  .brand__sub { letter-spacing: 0.3em; }
  .header { padding-block: 1.1rem; }

  .panel { flex: 0 0 84vw; height: 68svh; }
  .tl-item { flex: 0 0 78vw; }

  .btn { padding: 0.95rem 1.4rem; font-size: 0.68rem; }
  .btn-row { gap: 0.7rem; }

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

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

  .feature__media img { height: 58svh; }

  .plan-figure { padding: 0.7rem; }
}

/* ---------- Very small phones: 375 ------------------------------------ */
@media (max-width: 380px) {
  .stats { grid-template-columns: 1fr; }
  .mobile-nav a.mobile-nav__link { font-size: 1.85rem; }
}

/* ---------- Short landscape phones ------------------------------------ */
@media (max-height: 520px) and (orientation: landscape) {
  .hero { min-height: 640px; }
  .hero__inner { padding-top: 6rem; }
  .cta { min-height: 560px; }
  .mobile-nav { padding-top: 5rem; }
}

/* ---------- Print ------------------------------------------------------ */
@media print {
  .header, .mobile-nav, .cursor, .cursor-dot, .hero__media video, .btn, .marquee { display: none !important; }
  body { background: #fff; color: #000; }
  a { text-decoration: underline; }
}

/* ---- Editorial layer, small screens ---------------------------------- */
@media (max-width: 1024px) {
  .journal { grid-template-columns: 1fr; }
  .jrow__peek { display: none; }
}
@media (max-width: 860px) {
  .story__stage { display: block; height: auto; position: static; }
  .story__media { height: 62svh; }
  .story__panel { padding: clamp(1.6rem,6vw,2.4rem); }
  .story__slide { position: relative; left: auto; right: auto; opacity: 1; transform: none; }
  .story__mobile { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; padding-inline: var(--pad); }
  .philo__pin { position: static; height: auto; }
  .philo__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; height: auto; }
  .philo__panel { flex: 0 0 86vw; height: 78svh; scroll-snap-align: center; }
  .philo__head { position: static; padding: 0 var(--pad) 1.5rem; }
  .statement__texture { display: none; }
  .footer__word { font-size: clamp(2.4rem, 16vw, 5rem); }
}
