/* ===== Шапка и меню сайта — общие для всех страниц =====
   Разметка меню: _tools/menu.html (сборка: _tools/обновить-меню.bat)
   Цвета и шрифты берутся из переменных :root каждой страницы. */

.header { position: sticky; top: 0; z-index: 100; background: rgba(250,248,244,0.95); backdrop-filter: blur(10px); border-bottom: 1px solid var(--border-light); transition: box-shadow var(--transition); }
.header.scrolled { box-shadow: 0 2px 16px rgba(44,31,18,0.08); }
.header__inner { display: flex; align-items: center; justify-content: space-between; height: 68px; }
.header__logo { display: flex; flex-direction: column; flex-shrink: 0; }
.header__logo-name { font-family: var(--font-heading); font-size: 1.1rem; color: var(--brown); }
.header__logo-role { font-size: 0.75rem; color: var(--brown-light); letter-spacing: 0.5px; }
.header__cta { padding: 10px 22px; font-size: 0.9rem; flex-shrink: 0; white-space: nowrap; }

/* ПК-меню */
.nav { display: flex; align-items: center; gap: 18px; }
.nav__link { font-size: 0.9rem; font-weight: 500; color: var(--brown-mid); white-space: nowrap; transition: color var(--transition); }
.nav__link:hover { color: var(--terracotta); }
.nav__item { position: relative; }
.nav__link--trigger { display: inline-flex; align-items: center; gap: 5px; background: none; border: none; font: inherit; font-size: 0.9rem; font-weight: 500; color: var(--brown-mid); cursor: pointer; padding: 0; transition: color var(--transition); }
.nav__link--trigger:hover { color: var(--terracotta); }
.nav__link--trigger svg { transition: transform var(--transition); }
.nav__item:hover .nav__link--trigger svg, .nav__item:focus-within .nav__link--trigger svg, .nav__item.is-open .nav__link--trigger svg { transform: rotate(180deg); }
.nav__dropdown { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); padding-top: 14px; opacity: 0; visibility: hidden; transition: opacity var(--transition), visibility var(--transition); z-index: 50; }
.nav__item:hover .nav__dropdown, .nav__item:focus-within .nav__dropdown, .nav__item.is-open .nav__dropdown { opacity: 1; visibility: visible; }
.nav__dropdown-inner { background: var(--white); border: 1px solid var(--border-light); border-radius: 12px; box-shadow: 0 12px 32px rgba(74,53,42,0.14); padding: 8px; min-width: 250px; }
.nav__dropdown-inner a { display: block; padding: 10px 14px; border-radius: 8px; font-size: 0.88rem; font-weight: 500; color: var(--brown-mid); white-space: nowrap; transition: background var(--transition), color var(--transition); }
.nav__dropdown-inner a:hover { background: var(--cream); color: var(--terracotta); }
.nav__dropdown-inner--wide { min-width: 460px; column-count: 2; column-gap: 4px; }
.nav__dropdown-inner--wide a { break-inside: avoid; }
@media (max-width: 1300px) { .nav__dropdown-inner--wide { min-width: 380px; } }

/* Текущая страница */
.nav__link[aria-current="page"], .nav__dropdown-inner a[aria-current="page"], .mobile-nav__link[aria-current="page"] { color: var(--terracotta); font-weight: 700; }

/* Мобильное меню */
.burger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; background: none; border: none; }
.burger span { width: 24px; height: 2px; background: var(--brown); border-radius: 2px; transition: all var(--transition); }
.mobile-nav { display: none; flex-direction: column; gap: 0; background: var(--white); border-top: 1px solid var(--border-light); padding: 20px 24px; }
.mobile-nav.open { display: flex; }
.mobile-nav__link { padding: 14px 0; border-bottom: 1px solid var(--border-light); font-weight: 500; color: var(--brown-mid); font-size: 1rem; }
.mobile-nav__link:last-child { border-bottom: none; }
.mobile-nav__label { padding: 14px 0 4px; font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.5px; color: var(--brown-light); }
.mobile-nav__link--sub { padding-left: 14px; font-size: 0.92rem; }

@media (max-width: 1120px) {
  .nav { display: none; }
  .header__cta { display: none; }
  .burger { display: flex; }
  /* меню прокручивается само, страница под ним — нет */
  .mobile-nav { max-height: calc(100vh - 68px); max-height: calc(100dvh - 68px); overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
}
html.nav-open, html.nav-open body { overflow: hidden; }
html.nav-open .rbz-tab { display: none; }

/* Меню «Как удобнее записаться?» — на всех страницах, кроме главной (скрипт в nav.js) */
.cpop { position: fixed; inset: 0; z-index: 9700; }
.cpop[hidden] { display: none; }
.cpop__backdrop { position: absolute; inset: 0; background: rgba(44,31,18,0); transition: background .2s; }
.cpop__box { position: absolute; width: 300px; background: #fff; border: 1px solid var(--border-light, #EFE3D6); border-radius: 18px; box-shadow: 0 16px 48px rgba(44,31,18,.18); padding: 14px; opacity: 0; transform: translateY(-6px) scale(.98); transition: opacity .18s ease, transform .2s ease; }
.cpop.is-open .cpop__box { opacity: 1; transform: none; }
.cpop__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 2px 4px 10px; font-family: var(--font-heading, sans-serif); font-size: 1rem; color: var(--brown, #2C1F12); }
.cpop__x { width: 32px; height: 32px; border: none; border-radius: 50%; background: var(--cream-dark, #F2EBE0); color: var(--brown-mid, #6B5040); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.cpop__x:hover { color: var(--terracotta, #965B35); }
.cpop__item { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 12px; text-decoration: none; color: var(--brown, #2C1F12); transition: background .15s; }
.cpop__item:hover, .cpop__item:focus-visible { background: var(--cream, #FAF8F4); outline: none; }
.cpop__item:focus-visible { box-shadow: 0 0 0 2px var(--terra-light, #D4956A) inset; }
.cpop__ic { width: 40px; height: 40px; flex-shrink: 0; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: #fff; }
.cpop__ic--tg { background: #2AABEE; }
.cpop__ic--tel { background: var(--terracotta, #965B35); }
.cpop__ic--vk { background: #0077FF; }
.cpop__txt { display: flex; flex-direction: column; line-height: 1.3; }
.cpop__txt b { font-size: .95rem; }
.cpop__txt small { font-size: .8rem; color: var(--brown-light, #7F5F4B); }
.cpop__note { font-size: .78rem; color: var(--brown-light, #7F5F4B); padding: 8px 4px 2px; border-top: 1px solid var(--border-light, #EFE3D6); margin-top: 6px; }
/* на телефоне — снизу, на всю ширину */
.cpop--sheet .cpop__backdrop { background: rgba(44,31,18,0); }
.cpop--sheet.is-open .cpop__backdrop { background: rgba(44,31,18,.35); }
.cpop--sheet .cpop__box { left: 0; right: 0; bottom: 0; top: auto; width: auto; border-radius: 20px 20px 0 0; padding: 16px 16px calc(16px + env(safe-area-inset-bottom)); transform: translateY(30px); }
.cpop--sheet.is-open .cpop__box { transform: none; }
.cpop--sheet .cpop__item { padding: 12px 10px; }
