/* Shared mobile presentation. Original desktop rules and markup stay intact. */
@media (max-width: 1120px) {
  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    display: block;
    max-height: calc(100vh - 150px);
    max-height: calc(100svh - 150px);
    padding: 16px 22px;
    overflow-y: auto;
    overscroll-behavior: contain;
    color: #292826;
    background: #fffaf3;
    border: 1px solid #cbbba2;
    border-radius: 20px;
    box-shadow: 0 18px 42px rgba(51, 41, 25, .14);
    font: 16px/1.45 "Manrope", Arial, sans-serif;
    text-align: left;
  }

  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel)[hidden] { display: none !important; }

  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) > .gvs-mobile-link,
  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) .gvs-mobile-services > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    margin: 0;
    padding: 10px 0;
    color: #292826;
    background: transparent;
    border: 0;
    border-bottom: 1px solid #e2d7c6;
    border-radius: 0;
    font: 650 16px/1.45 "Manrope", Arial, sans-serif;
    letter-spacing: normal;
    text-transform: none;
    text-decoration: none;
    white-space: normal;
  }

  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) .gvs-mobile-services {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
  }

  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) .gvs-mobile-services > summary {
    list-style: none;
    cursor: pointer;
  }

  .gvs-mobile-services > summary::-webkit-details-marker { display: none; }
  .gvs-mobile-chevron { width: 8px; height: 8px; flex: 0 0 auto; margin-right: 3px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg) translateY(-2px); }
  .gvs-mobile-services[open] > summary .gvs-mobile-chevron { transform: rotate(225deg) translate(-2px, -1px); }

  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) .gvs-mobile-service-list {
    display: block;
    margin: 8px 0 6px;
    padding: 4px 8px;
    color: #292826;
    background: transparent;
    border: 0;
    border-left: 2px solid #c3a678;
    border-radius: 0;
    box-shadow: none;
  }

  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) .gvs-mobile-service-list > a {
    display: flex;
    align-items: center;
    min-height: 44px;
    margin: 0;
    padding: 8px 6px;
    color: #292826;
    background: transparent;
    border: 0;
    border-radius: 4px;
    font: 400 15px/1.45 "Manrope", Arial, sans-serif;
    letter-spacing: normal;
    text-transform: none;
    text-decoration: none;
  }

  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) a:hover { background: #eee4d6; }
  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) a[aria-current="page"] { color: #292826; text-decoration: underline; text-decoration-color: #9b7544; text-underline-offset: 4px; }
  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) :is(a, summary):focus-visible { outline: 3px solid #9b7544; outline-offset: 3px; }

  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) > .gvs-mobile-book {
    justify-content: center;
    min-height: 48px;
    margin-top: 12px;
    padding: 11px 18px;
    color: #fffaf2;
    background: #292826;
    border: 1px solid #292826;
    border-radius: 30px;
    font-weight: 750;
    text-align: center;
  }

  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) > .gvs-mobile-book:hover { color: #fffaf2; background: #453d34; border-color: #453d34; }

  .gvs-mobile-arrow { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; vertical-align: -.12em; line-height: 1; }
  .gvs-mobile-arrow > .gvs-mobile-arrow-original { display: none !important; }
  .gvs-mobile-arrow > svg { display: block; width: 100%; height: 100%; overflow: visible; color: inherit; }
}

@media (max-width: 600px) {
  :is(.hr-nav .hr-menu-links.gvs-mobile-panel, .site-nav .mobile-menu.gvs-mobile-panel, .gv4-mobile-menu nav.gvs-mobile-panel) { top: calc(100% + 8px); padding: 12px 17px 16px; }
}

/* Only the active legacy mobile header needs its Elementor clipping released. */
@media (max-width: 800px) {
  .gv4-mobile-menu.gvs-mobile-menu-legacy,
  .gv4-nav-widget:has(.gvs-mobile-menu-legacy) { position: static !important; }
  .elementor:has(.gvs-mobile-menu-legacy) { overflow: visible !important; }
  .gv4-mobile-menu.gvs-mobile-menu-legacy nav.gvs-mobile-panel {
    left: 18px;
    right: 18px;
    top: calc(100% + 8px);
    z-index: 100;
    width: auto;
    min-width: 0;
  }
}
