/* Мобильная навигация: progressive enhancement, без изменения десктопа. */
.menu-toggle, .mobile-menu { display: none; }
@media (max-width: 1180px) {
  .site-header[data-menu-ready] .header-inner {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas: "brand contact toggle";
    align-items: center; column-gap: .5rem; row-gap: 0; padding-bottom: 0;
  }
  .site-header[data-menu-ready] .brand { grid-area: brand; min-width: 0; }
  .site-header[data-menu-ready] .header-contact { grid-area: contact; }
  .site-header[data-menu-ready] .primary-nav { display: none; }
  .site-header[data-menu-ready] .menu-toggle {
    grid-area: toggle; display: inline-flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; padding: 0; border: 0; border-radius: 8px;
    color: var(--navy); background: transparent; cursor: pointer;
    transition: color .18s ease, background .18s ease;
  }
  .menu-toggle:hover, .menu-toggle[aria-expanded="true"] { color: var(--brick); background: rgba(23,43,58,.055); }
  .menu-toggle:focus-visible { outline: 2px solid var(--brick); outline-offset: 2px; }
  .menu-toggle-lines { position: relative; display: block; width: 20px; height: 16px; }
  .menu-toggle-lines span { position: absolute; left: 0; width: 20px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .18s ease, opacity .18s ease; }
  .menu-toggle-lines span:nth-child(1) { top: 1px; }
  .menu-toggle-lines span:nth-child(2) { top: 7px; }
  .menu-toggle-lines span:nth-child(3) { top: 13px; }
  .menu-toggle[aria-expanded="true"] span span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .site-header[data-menu-ready] .mobile-menu:not([hidden]) {
    display: block; position: absolute; top: 100%; left: 0; right: 0; z-index: 30;
    max-height: calc(100vh - var(--menu-top, 84px)); max-height: calc(100dvh - var(--menu-top, 84px));
    overflow-y: auto; overscroll-behavior: contain;
    background: var(--paper-bright); border-bottom: 1px solid rgba(23,43,58,.18);
    box-shadow: 0 22px 36px -24px rgba(23,43,58,.4); animation: menu-reveal .16s ease;
  }
  .mobile-menu-inner { width: var(--shell); margin-inline: auto; padding: .2rem 0 max(1rem, env(safe-area-inset-bottom)); }
  .mobile-menu-nav { display: grid; }
  .mobile-menu-nav a { display: flex; align-items: center; min-height: 50px; padding: .7rem 0; font-size: 1.04rem; text-decoration: none; border-bottom: 1px solid rgba(23,43,58,.12); }
  .mobile-menu-nav a::after { content: '↗'; margin-left: auto; font-size: .9rem; color: var(--muted); }
  .mobile-menu-nav a:hover, .mobile-menu-nav a:focus-visible { color: var(--brick); }
  .mobile-menu-nav a[aria-current="page"] { font-weight: 700; color: var(--brick); }
  .mobile-menu-contact { display: grid; gap: .8rem; padding-top: 1rem; }
  .mobile-menu-phone { width: fit-content; min-height: 44px; display: flex; align-items: center; font-size: 1.1rem; font-weight: 700; text-decoration: none; }
  .mobile-menu-form { justify-content: center; color: var(--white); background: var(--brick); border-color: var(--brick); }
  .mobile-menu-form:hover { background: var(--brick-dark); }
}
@media (max-width: 540px) {
  .site-header[data-menu-ready] .header-inner .header-contact .header-form-link { display: none; }
  .site-header[data-menu-ready] .header-inner { column-gap: .3rem; }
}
@media (max-width: 380px) {
  .contact-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-grid > div, .contact-grid > aside { min-width: 0; }
  .contact-grid h2 { font-size: 2rem; }
  .about-preview-grid { grid-template-columns: minmax(0, 1fr); }
  .about-preview-grid > div { min-width: 0; }
  .about-preview h2 { font-size: 2rem; }
  .site-header[data-menu-ready] .brand-copy strong { font-size: .86rem; max-width: 150px; line-height: 1.12; }
  .site-header[data-menu-ready] .header-messengers { gap: .15rem; }
  .site-header[data-menu-ready] .header-messenger { width: 25px; height: 30px; }
  .site-header[data-menu-ready] .header-messenger img { width: 22px; height: 22px; }
}
@keyframes menu-reveal { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .mobile-menu, .menu-toggle-lines span { animation: none !important; transition: none !important; } }
