/* Shared navigation for the public site. Native disclosure also works without JS. */
.sparq-mobile-menu { display: none; }
@media (max-width: 900px) {
  :root body header.sparq-navigation-header {
    position: relative; z-index: 20; display: flex; flex-wrap: nowrap;
    align-items: center; justify-content: space-between; gap: 16px;
    height: 86px; min-height: 86px; padding-block: 0; overflow: visible; clip-path: none; box-shadow: none;
  }
  :root body header.sparq-navigation-header::before {
    content: ""; position: absolute; z-index: -1;
    inset: 0 calc((100% - 100vw) / 2); background: inherit;
  }
  :root body .sparq-navigation-header > nav,
  :root body .sparq-navigation-header > .button,
  :root body .sparq-navigation-header > .header-contact { display: none; }
  :root body .sparq-mobile-menu {
    display: block; position: static; margin: 0 0 0 auto; border: 0;
  }
  :root body .sparq-mobile-menu > summary {
    display: flex; align-items: center; justify-content: center; gap: 12px;
    min-height: 44px; padding: 10px 15px; margin: 0;
    border: 1px solid #f5e642; border-radius: 3px;
    background: #f5e642; color: #191b17; cursor: pointer; list-style: none;
    font: 550 15px/1.4 Inter, Arial, sans-serif; touch-action: manipulation;
  }
  .sparq-mobile-menu > summary::-webkit-details-marker { display: none; }
  .sparq-mobile-menu .menu-icon { flex: none; }
  .sparq-mobile-menu .menu-close,
  .sparq-mobile-menu[open] .menu-bars { display: none; }
  .sparq-mobile-menu[open] .menu-close { display: block; }
  :root body .sparq-mobile-menu > nav {
    display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; position: absolute;
    inset: 100% 0 auto; width: 100%; margin: 0; padding: 12px;
    transform: none; box-sizing: border-box;
    max-height: calc(100vh - 110px); max-height: calc(100dvh - 110px);
    overflow-y: auto; overscroll-behavior: contain;
    background: #faf9f5; color: #191b17; color-scheme: light; border: 1px solid #ddded3;
    border-radius: 4px; box-shadow: 0 12px 30px #191b1726;
    font: 500 16px/1.4 Inter, Arial, sans-serif;
    text-align: left; text-transform: none; letter-spacing: 0;
  }
  :root body .sparq-mobile-menu:not([open]) > nav { display: none; }
  :root body .sparq-mobile-menu nav a {
    display: flex; align-items: center; justify-content: space-between;
    min-height: 44px; padding: 10px 12px; box-sizing: border-box;
    color: #191b17; background: transparent; text-decoration: none;
    font: inherit; letter-spacing: 0; text-transform: none; border-radius: 3px;
  }
  :root body .sparq-mobile-menu .menu-services {
    margin: 0 12px 8px; padding-left: 8px; border-left: 2px solid #ddded3;
    font-size: 14px;
  }
  :root body .sparq-mobile-menu nav a:hover,
  :root body .sparq-mobile-menu nav a[aria-current="page"] { background: #ecece2; }
  :root body .sparq-mobile-menu nav .menu-contact { background: #f5e642; margin-top: 8px; }
  :root body .sparq-mobile-menu :is(summary, a):focus-visible {
    outline: 3px solid #777000; outline-offset: 2px;
  }
}
