/* ==========================================================================
   RESPONSIVE.CSS — breakpoints, mobile nav, stacking, reflow at 320px
   Tested targets: 320 / 375 / 390 / 768 / 1024 / 1440+
   ========================================================================== */

/* ---------- <= 1200px ---------- */
@media (max-width: 1200px) {
  .dropdown-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

/* ---------- <= 1024px ---------- */
@media (max-width: 1024px) {
  .compare-grid { grid-template-columns: 1fr; max-width: 32rem; margin-inline: auto; }
  .process-grid { grid-template-columns: repeat(2, 1fr); }
  .split { grid-template-columns: 1fr; gap: var(--space-lg); }
  .law-grid { grid-template-columns: 1fr; }
  .law-sidebar { position: static; }
  .contact-grid { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-item:nth-child(2) { border-right: 0; }
  .trust-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .booking-split { grid-template-columns: 1fr; }
  .booking-aside { border-right: 0; border-bottom: 1px solid var(--line); }
  .promo-split { grid-template-columns: 1fr; }
  .promo-media { min-height: 11rem; }
  .promo-media::after { background: linear-gradient(0deg, var(--carbon), transparent 70%); }
  .quick-facts { grid-template-columns: 1fr; }
  .promo-band { grid-template-columns: 1fr; text-align: left; }
}

/* ---------- <= 900px : switch to mobile navigation ---------- */
@media (max-width: 900px) {
  .main-nav { display: none; }
  .menu-toggle { display: inline-flex; }
  .header-actions .btn--primary,
  .header-actions .call-btn-placeholder { display: none; }
  .header-inner { gap: 0.5rem; }
  .brand-name { font-size: 1rem; max-width: 18ch; }
}

/* ---------- <= 768px ---------- */
@media (max-width: 768px) {
  :root { --header-h: 66px; }
.mobile-menu{
  inset: auto;
}
.chev{
  height: 34px;
  fill: none;
  stroke: currentColor;
}
  .section { padding-block: var(--space-xl); }
  .hero { min-height: min(88svh, 720px); }
  .hero::after {
    background:
      linear-gradient(0deg, rgba(9,9,9,0.95) 0%, rgba(9,9,9,0.72) 45%, rgba(9,9,9,0.45) 100%);
  }
  .hero-content { max-width: none; }
  .trust-grid { grid-template-columns: 1fr; }
  .trust-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .trust-item:last-child { border-bottom: 0; }
  .process-grid { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; padding-block: var(--space-lg); }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .modal-overlay { padding: 0; align-items: flex-end; }
  .modal {
    width: 100%;
    max-height: 94svh;
    border-radius: var(--radius) var(--radius) 0 0;
  }
  .modal-body { padding: var(--space-md); }
  .booking-aside, .booking-form-panel, .promo-form-panel { padding: var(--space-md); }
  .speed-lines { display: none; }
  .promo-band { padding: var(--space-md); }
  .gallery-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
  .cta-banner .container { padding-block: var(--space-xl); }
}

/* ---------- <= 480px ---------- */
@media (max-width: 480px) {
  .container { width: min(var(--container), 100% - 1.6rem); }
  .hero-ctas .btn { width: 100%; }
  .cta-banner .btn-row .btn { width: 100%; }
  .brand-tag { display: none; }
  .brand-mark { width: 9rem; /*height: 36px;*/ }
  .tint-price { font-size: var(--step-3); }
  .gallery-grid { grid-template-columns: 1fr; }
  .promo-price-line .new { font-size: 1.5rem; }
  .faq-q { font-size: 0.95rem; padding: 0.8rem 0.9rem; }
  .table-wrap { border-radius: var(--radius-sm); }
}

/* ---------- <= 360px : reflow guard ---------- */
@media (max-width: 360px) {
  :root { --header-h: 62px; }
  .brand-name { font-size: 0.9rem; max-width: 12ch; }
  .btn { padding-inline: 1rem; font-size: 0.85rem; }
  .menu-toggle { width: 44px; height: 44px; }
}

/* ---------- Large desktops ---------- */
@media (min-width: 1600px) {
  :root { --container: 84rem; }
}

/* ---------- High zoom / very tall content safety ---------- */
@supports not (height: 100svh) {
  .hero { min-height: min(92vh, 860px); }
  .modal { max-height: calc(100vh - 2.5rem); }
}

/* ---------- Print ---------- */
@media print {
  .site-header, .mobile-menu, .modal-overlay, #pageLoader,
  .hero-ctas, .cta-banner, .speed-lines, .btn { display: none !important; }
  body { background: #fff; color: #171717; }
  a { color: #171717; text-decoration: underline; }
  .section { padding-block: 1rem; }
}
