/* ==========================================================================
   Адаптив и состояние
   ========================================================================== */

/* ---------- Навигация: планшет/мобильный ---------- */
@media (max-width: 1180px) {
  .nav a { padding: 10px 9px; font-size: .87rem; }
}

@media (max-width: 1020px) {
  .nav-toggle { display: block; }
  .nav {
    position: fixed; inset: auto 0 0 0; top: auto; z-index: 120;
    flex-direction: column; align-items: stretch; gap: 2px;
    background: var(--emerald-3); padding: 14px 18px calc(18px + env(safe-area-inset-bottom));
    transform: translateY(102%); transition: transform var(--t-mid) var(--ease);
    border-radius: 18px 18px 0 0; box-shadow: var(--shadow-frame);
    max-height: 74vh; overflow-y: auto;
  }
  .nav.is-open { transform: translateY(0); }
  .nav a {
    color: #f3ecdc; font-size: 1.06rem; padding: 13px 14px;
    border-bottom: 1px solid rgba(243, 236, 220, .1); border-radius: 8px;
  }
  .nav a::after { display: none; }
  .nav a.is-active { background: rgba(224, 198, 142, .14); color: var(--gold-2); }
  .nav a:hover { color: var(--gold-2); }
  .nav .nav__close { position: absolute; top: 10px; right: 14px; }
  .navbar__cta .btn span.lbl { display: none; }
  .mobile-cta { display: flex; }
  body.menu-open { overflow: hidden; }
}

/* ---------- Сетки и компоновка ---------- */
@media (max-width: 980px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .service-row, .booking-grid, .price-wrap { grid-template-columns: 1fr; }
  .service-row--alt .service-row__media { order: 0; }
  .service-row__media { max-width: 620px; }
  .feature-list--cols { grid-template-columns: 1fr; }
  .why { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .hero__inner { grid-template-columns: 1fr; }
  .hero__visual { display: none; }
  .hero__facts { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
  .grid-2, .grid-3, .grid-4, .masters-grid { grid-template-columns: 1fr; }
  .why { grid-template-columns: 1fr 1fr; }
  .topbar__meta span.meta-hide { display: none; }
  .brand__name { font-size: 1.12rem; }
  .brand__sub { font-size: .56rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 30px; }
  .time-grid { grid-template-columns: repeat(3, 1fr); }
  .hero__facts { grid-template-columns: 1fr; gap: 12px; }
  .hero__badge { width: 96px; height: 96px; font-size: .6rem; }
  .price-nav { position: static; flex-direction: row; flex-wrap: wrap; }
  .price-nav a { flex: 1 1 auto; }
  .price-list li { flex-wrap: wrap; gap: 4px 10px; }
  .price-list .dots { display: none; }
  .price-list .val { margin-left: auto; }
  .section { padding-block: 48px; }
  .mobile-cta { display: flex; }
  body { padding-bottom: 0; }
}

@media (max-width: 380px) {
  .time-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Печать (прайс) ---------- */
@media print {
  .site-header, .site-footer, .mobile-cta, .filterbar, .price-nav, .quotebar, .lightbox, .btn { display: none !important; }
  body { background: #fff; }
  .price-cat { break-inside: avoid; }
  .container { max-width: none; }
}
