/* Responsive navigation override loaded after page-specific styles. */

.mobile-nav-socials {
  display: none;
}

@media (max-width: 1100px) {
  body.menu-open {
    overflow: hidden !important;
  }

  .site-header {
    z-index: 10000 !important;
  }

  .header-inner {
    position: relative;
  }

  .menu-toggle {
    position: relative !important;
    display: inline-flex !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
    margin-left: auto !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    padding: 0 !important;
    border: 1px solid rgba(114, 47, 55, .18) !important;
    border-radius: 50% !important;
    background: #722f37 !important;
    box-shadow: 0 12px 24px rgba(114, 47, 55, .18) !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
    z-index: 10003 !important;
  }

  .menu-toggle span {
    display: block !important;
    width: 18px !important;
    height: 2px !important;
    flex: 0 0 2px !important;
    border-radius: 999px !important;
    background: #fff !important;
    transition: opacity .25s ease, transform .25s ease !important;
  }

  .menu-toggle.active span:nth-child(1) {
    transform: translateY(7px) rotate(45deg) !important;
  }

  .menu-toggle.active span:nth-child(2) {
    opacity: 0 !important;
    transform: scaleX(.25) !important;
  }

  .menu-toggle.active span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg) !important;
  }

  .menu-backdrop {
    position: fixed !important;
    inset: 0 !important;
    display: block !important;
    background: rgba(22, 16, 14, .36) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    z-index: 9998 !important;
    transition: opacity .25s ease, visibility .25s ease !important;
  }

  .menu-backdrop.active,
  body.menu-open .menu-backdrop {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .main-nav {
    position: fixed !important;
    top: 74px !important;
    right: 14px !important;
    left: auto !important;
    width: min(380px, calc(100vw - 28px)) !important;
    max-height: calc(100dvh - 92px) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding: 18px 22px 20px !important;
    border: 1px solid rgba(114, 47, 55, .12) !important;
    border-radius: 22px !important;
    background: #fffdf8 !important;
    box-shadow: 0 26px 70px rgba(33, 18, 12, .22) !important;
    overflow-y: auto !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-10px) scale(.98) !important;
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease !important;
    z-index: 10001 !important;
  }

  .main-nav.active {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) scale(1) !important;
  }

  .main-nav > a {
    width: 100% !important;
    min-height: 46px !important;
    display: flex !important;
    align-items: center !important;
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(114, 47, 55, .10) !important;
    color: #2b201d !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    letter-spacing: .04em !important;
    line-height: 1.25 !important;
  }

  .main-nav > a::after {
    display: none !important;
  }

  .header-tools > .header-socials {
    display: none !important;
  }

  .mobile-nav-socials {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    padding-top: 18px !important;
  }

  .mobile-nav-socials .header-social-link {
    width: 40px !important;
    height: 40px !important;
    display: inline-flex !important;
    flex: 0 0 40px !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .mobile-nav-socials .header-social-link svg {
    width: 17px !important;
    height: 17px !important;
  }
}

@media (max-width: 640px) {
  .main-nav {
    top: 68px !important;
    right: 0 !important;
    width: 100% !important;
    max-height: calc(100dvh - 68px) !important;
    border-right: 0 !important;
    border-left: 0 !important;
    border-radius: 0 0 22px 22px !important;
  }

  .menu-toggle {
    margin-right: 8px !important;
  }
}