.nav .primary-menu { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2.4vw, 38px); list-style: none; margin: 0; padding: 0; }
.nav .primary-menu li { position: relative; list-style: none; margin: 0; padding: 0; }
.nav .primary-menu .sub-menu { position: absolute; left: -18px; top: 100%; z-index: 10; display: none; min-width: 210px; margin: 0; padding: 20px 18px 14px; border-radius: 14px; background: var(--paper); box-shadow: 0 12px 30px rgba(20,29,33,.12); }
.nav .sub-menu li + li { margin-top: 16px; }
.nav .sub-menu .sub-menu { left: 100%; top: -20px; }
.nav li:hover > .sub-menu, .nav li:focus-within > .sub-menu { display: block; }
.header { grid-template-columns: 200px minmax(0,1fr) auto; gap: 16px; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.header-actions .button { white-space: nowrap; }
.header-phone { gap: 8px; }
.phone-icon { display: block; flex: 0 0 auto; width: 19px; height: 19px; }
@media (max-width: 1280px) {
  .header { grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; }
  .header .brand { grid-column: 1; grid-row: 1; }
  .header-actions { grid-column: 2; grid-row: 1; }
  .header .menu-toggle { grid-column: 3; grid-row: 1; display: grid; gap: 6px; width: 44px; height: 44px; place-content: center; border: 0; background: transparent; cursor: pointer; }
  .menu-toggle span:not(.sr-only) { width: 21px; height: 2px; background: var(--ink); }
  .nav { position: fixed; top: 84px; right: 0; width: min(380px, calc(100vw - 56px)); padding: 30px; display: none; flex-direction: column; border-radius: 18px; background: var(--paper); box-shadow: 0 20px 50px rgba(20,29,33,.16); }
  .nav.is-open { display: flex; }
  .nav { max-height: calc(100dvh - 170px); overflow-y: auto; }
  .nav .primary-menu { flex-direction: column; align-items: stretch; gap: 24px; }
  .nav .primary-menu .sub-menu { display: block; position: static; min-width: 0; padding: 18px 0 0 16px; box-shadow: none; background: transparent; }
}
@media (max-width: 700px) {
  .header { gap: 6px; }
  .header-actions .js-open-modal { display: none; }
  .header-actions .header-phone { min-height: 40px; padding-inline: 10px; font-size: 12px; gap: 6px; }
  .header-phone .phone-icon { width: 16px; height: 16px; }
  .header .menu-toggle { width: 32px; }
  body.terr-prz .header .brand-logo { width: clamp(88px, calc(100vw - 246px), 146px); }
}
