/* ==========================================================================
   Responsive — verified at 360 / 375 / 768 / 1024 / 1440 / 2560
   ========================================================================== */

/* ---- Large desktop ------------------------------------------------------- */
@media (min-width: 1600px) {
  :root { --maxw: 1400px; }
}

/* ---- Tablet landscape and below ------------------------------------------ */
@media (max-width: 1080px) {
  .footer__grid { grid-template-columns: 1fr 1fr; gap: var(--sp-6); }
}

/* ---- Tablet / mobile nav breakpoint -------------------------------------- */
@media (max-width: 960px) {
  .nav__list, .nav__cta { display: none; }
  .burger { display: grid; }

  .split--reverse .split__media { order: 0; }

  .media-stack::before { inset: 14px -14px -14px 14px; }
  .media-stack__badge { right: 0; bottom: -20px; padding: var(--sp-3) var(--sp-4); min-width: 128px; }

  .process__track { display: none; }
}

/* ---- Mobile -------------------------------------------------------------- */
@media (max-width: 768px) {
  :root {
    --header-h: 68px;
    --header-h-sm: 58px;
    --section-y: clamp(3.25rem, 11vw, 4.5rem);
  }

  /* Utility bar: drop the text items, keep tap-sized social icons */
  .topbar { display: none; }

  .brand__img { height: 46px; }
  .site-header.is-stuck .brand__img { height: 40px; }

  /* Sticky mobile call / WhatsApp bar */
  .mobile-actions { display: flex; }
  body { padding-bottom: var(--mobilebar-h); }

  .hero { min-height: 92vh; }
  .hero__inner { padding-block: var(--sp-8) var(--sp-9); }
  .hero__title { letter-spacing: -0.035em; }

  /* The desktop scrim runs left-to-right, which at phone width covers the
     whole frame and hides the vessel. Compose vertically instead: photo on
     top, copy on a clean light ground below. */
  .hero__scrim {
    background: linear-gradient(180deg,
      rgba(255,255,255,.04) 0%,
      rgba(255,255,255,.14) 26%,
      rgba(255,255,255,.62) 40%,
      rgba(255,255,255,.95) 49%,
      var(--page) 56%,
      var(--page) 100%);
  }
  .hero__bg img { object-position: center 40%; }
  .hero__inner { padding-top: 44vh; padding-bottom: var(--sp-7); }
  .scroll-cue { display: none; }

  .spec-chips { gap: var(--sp-2); }
  .spec-chip { padding: var(--sp-2) var(--sp-3); }
  /* At this width the drift reads as broken alignment, not life. */
  .spec-chip.float { animation: none; }

  .rail { grid-auto-columns: minmax(255px, 82%); }

  .reviews__head { flex-direction: column; align-items: flex-start; }
  .rating-badge { width: 100%; }

  .footer__grid { grid-template-columns: 1fr; gap: var(--sp-6); }
  .footer__bottom { flex-direction: column; text-align: center; gap: var(--sp-3); }

  .btn { width: 100%; }
  .btn-row { flex-direction: column; align-items: stretch; }
  .btn-row .btn { width: 100%; }

  .popup__card { padding: var(--sp-6) var(--sp-5) var(--sp-5); }
  .popup__logo { height: 52px; }

  /* Disable pointer-driven depth effects on touch */
  .tilt { transform: none !important; }
  .tilt__glare { display: none; }
}

/* ---- Small mobile -------------------------------------------------------- */
@media (max-width: 400px) {
  :root { --gutter: 1.05rem; }
  .spec-chip__k { font-size: 0.95rem; }
  .marquee__track { gap: var(--sp-6); }
  .mobile-actions__btn { font-size: 0.88rem; }
}

/* ---- Touch devices: no hover-dependent reveals ---------------------------- */
@media (hover: none) {
  .tilt { transform: none !important; }
  .tilt__glare { display: none; }
  .marquee:hover .marquee__track { animation-play-state: running; }
  /* Mega dropdown is hover-only on desktop; on touch the mobile menu is used */
  .mega { display: none; }
}

/* ---- Print --------------------------------------------------------------- */
@media print {
  .site-header, .mobile-actions, .popup, .scroll-progress,
  .cta-band, .mobile-menu, .scroll-cue { display: none !important; }
  body { background: #fff; color: #000; padding-bottom: 0; }
  .section { padding-block: 1.5rem; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; }
}

/* ---- Fallback: no backdrop-filter support -------------------------------- */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site-header    { background: rgba(255,255,255,.98); }
  .card           { background: #fff; }
  .popup__card,
  .mega           { background: #fff; }
  .mobile-actions { background: #fff; }
  .spec-chip      { background: #fff; }
}

/* ==========================================================================
   Touch-target compliance (WCAG 2.5.5 / 44px minimum)
   Audited in-browser at 390px; every interactive element below was under
   44px tall and is corrected here rather than left to chance.
   ========================================================================== */
@media (max-width: 768px) {
  /* Social icon buttons: 30px -> 44px hit area, glyph size unchanged */
  .social__link { width: 44px; height: 44px; }

  /* The logo link shrinks to 40px once the header is stuck - keep the
     tap area at 44px without changing how large the mark looks. */
  .brand { min-height: 44px; }

  /* Phone / email links in contact blocks and footer */
  .contact-item__v,
  .footer__contact a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
  .footer__contact a { align-items: flex-start; padding-block: var(--sp-2); }

  /* Footer navigation links */
  .footer__list a {
    display: flex;
    align-items: center;
    min-height: 44px;
  }
  .footer__credit a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* Popup controls */
  .popup__close { width: 44px; height: 44px; }
  .popup__later { min-height: 44px; }
}

/* The honeypot must have no layout box at all — it is not a real control. */
.hp, .hp-input { height: 0 !important; width: 0 !important; padding: 0 !important; border: 0 !important; }
