/* ==========================================================================
   responsive.css — breakpoint behaviour
   Desktop 1440+ · Laptop 1024–1366 · Tablet 768–1023 · Mobile 320–767
   ========================================================================== */

/* --- Laptop ------------------------------------------------------------- */
@media (max-width: 1366px) {
  :root { --max: 1280px; }
  .footer-top { grid-template-columns: 1.2fr 0.8fr 1fr; }
  .footer-top > div:last-child { grid-column: 2 / -1; }
}

@media (max-width: 1180px) {
  .nlist__item { grid-template-columns: 3.5rem minmax(0, 1fr) minmax(0, 1fr) auto; }
  .detail-layout { grid-template-columns: 1.35fr 1fr; }
  .search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .search-grid > .btn, .search-grid > .btn-row { grid-column: 1 / -1; }
  .filter-bar .search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --- Tablet ------------------------------------------------------------- */
@media (max-width: 1023px) {
  .nav { display: none; }
  .menu-btn { display: flex; }
  html { scroll-padding-top: 78px; }

  .prop-grid, .prop-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g3 > *:last-child:nth-child(odd) { grid-column: 1 / -1; }

  .split, .split--wide-l, .split--wide-r,
  .detail-layout, .contact-grid, .proj-row { grid-template-columns: minmax(0, 1fr); }
  .split__media, .proj-row__media { order: -1; }
  .proj-row:nth-child(even) .proj-row__media { order: -1; }
  .sticky { position: static; }

  .nlist__item {
    grid-template-columns: 3rem minmax(0, 1fr) auto;
    row-gap: 0.65rem;
  }
  .nlist__item p { grid-column: 2 / -1; }

  .gallery { grid-template-columns: minmax(0, 1fr); }
  .gallery__thumbs { grid-template-rows: none; grid-template-columns: repeat(3, 1fr); }

  .footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-top > div:last-child { grid-column: auto; }

  .search-panel--float { margin-top: calc(var(--sec) * -0.3); }
  .hero { min-height: min(96svh, 820px); }
}

/* --- Mobile ------------------------------------------------------------- */
@media (max-width: 767px) {
  :root { --sec: clamp(3.25rem, 9vh, 4.75rem); }

  .header-inner { min-height: 68px; }
  .header-actions .btn { display: none; }
  html { scroll-padding-top: 68px; }
  .mobile-menu { padding-top: 88px; }

  .hero { min-height: auto; padding-block: 118px 2.5rem; }
  .hero .display { max-width: none; }
  .hero__bottom { flex-direction: column; align-items: stretch; }
  .hero__bottom .btn-row { width: 100%; }
  .hero__bottom .btn-row .btn { flex: 1 1 auto; justify-content: center; }
  .scroll-cue { display: none; }
  .hero__meta { gap: 0.35rem 1.25rem; }

  .page-hero { padding-top: 108px; }

  .search-panel--float { margin-top: 0; border-radius: 0; border-inline: 0; box-shadow: none; }
  .search-grid, .filter-bar .search-grid { grid-template-columns: minmax(0, 1fr); }
  .search-grid > .btn { width: 100%; justify-content: center; }

  .prop-grid, .prop-grid--2, .g2, .g3, .g4 { grid-template-columns: minmax(0, 1fr); }
  .g3 > *:last-child:nth-child(odd) { grid-column: auto; }
  .step:nth-child(even) { margin-top: 0; }

  .shead { flex-direction: column; align-items: flex-start; }
  .shead__left { max-width: none; }

  .nlist__item { grid-template-columns: 2.25rem minmax(0, 1fr); }
  .nlist__item:hover { padding-inline: 0; background: none; }
  .nlist__go { display: none; }

  .feature { min-height: 76svh; border-radius: 10px; }

  .stack-media { grid-template-columns: 1fr; }
  .stack-media > * { grid-column: 1 / -1 !important; }

  .gallery__thumbs { grid-template-columns: repeat(3, 1fr); }
  .lightbox__close { top: auto; bottom: -58px; right: 50%; transform: translateX(50%); }

  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .spec dd { text-align: left; }
  .spec div { flex-direction: column; gap: 0.2rem; }

  .footer-top { grid-template-columns: minmax(0, 1fr); gap: 2.25rem; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .footer-bottom nav { gap: 1.25rem; }

  .tslide { grid-template-columns: minmax(0, 1fr); }
  .tslide { flex-basis: 100%; }
  .tslide__media { order: -1; }
  .quote-card blockquote { font-size: 1.0625rem; }
}

/* --- Small mobile ------------------------------------------------------- */
@media (max-width: 380px) {
  .logo { font-size: 0.8125rem; }
  .btn { padding-inline: 1.25em; }
}

/* --- Print -------------------------------------------------------------- */
@media print {
  .site-header, .mobile-menu, .lightbox, .scroll-cue { display: none !important; }
  body { background: #fff; color: #000; }
  .dark, .site-footer { background: #fff !important; color: #000 !important; }
}
