/* A single menu surface: existing brand type, quiet spacing, no horizontal rules. */
html.astera-menu-locked,
html.astera-menu-locked body {
  overflow: hidden !important;
}

/* Match the adjacent contact icons; the animated glyph carries the menu state. */
html body #header.header-v52 #burger.v52-burger,
html body #header.header-v52 #burger.v52-burger:is(:hover, :focus-visible, :active, .x) {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html body #header.header-v52 #burger.v52-burger::before,
html body #header.header-v52 #burger.v52-burger::after,
html body #header.header-v52 #burger.v52-burger:is(:hover, :focus-visible, :active, .x)::before,
html body #header.header-v52 #burger.v52-burger:is(:hover, :focus-visible, :active, .x)::after {
  display: none !important;
}

html body #header.header-v52 #burger.v52-burger:focus-visible,
html body #header.header-v52 #burger.v52-burger.x:focus-visible {
  outline: 2px solid var(--v50-gold-400, #e7bb5a) !important;
  outline-offset: 3px;
}

@media (min-width: 66.001rem) {
  html body #header.header-v52 #burger.v52-burger {
    inline-size: var(--v88-control, 2.75rem) !important;
    min-inline-size: var(--v88-control, 2.75rem);
  }
}

html body.menu-open #header.header-v52 {
  border: 0 !important;
  box-shadow: none !important;
}

/* The open header and menu share a translucent surface; type stays fully opaque. */
html body.menu-open #header.header-v52,
html body.menu-open #header.header-v52:not(.v114-over-video):not(.v117-over-section-hero),
html body.menu-open #header.header-v52:not(.solid):not(.v50-scrolled) {
  background-color: rgb(0 24 15 / 84%) !important;
  background-color: color-mix(in oklch, var(--v119-current-green, #00180f) 84%, transparent) !important;
  background-image: none !important;
  backdrop-filter: blur(16px) saturate(108%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(108%) !important;
}

html body.menu-open #header.header-v52::after,
html body.menu-open #header.header-v52::before,
html body.menu-open #header.header-v52 .v52-header-grid::after,
html body.menu-open #header.header-v52 .v52-header-grid::before {
  display: none !important;
}

html #overlay.astera-menu {
  --menu-ink: var(--v50-ivory, #efeadf);
  --menu-muted: var(--v50-ivory-muted, #bbb8a9);
  --menu-gold: var(--v50-gold-400, #e7bb5a);
  --menu-ease: cubic-bezier(0.22, 1, 0.36, 1);
  display: block !important;
  position: fixed !important;
  z-index: 990;
  inset: var(--astera-menu-top, var(--v50-header-h, 6rem)) 0 0;
  inline-size: 100%;
  block-size: auto;
  min-block-size: 0;
  margin: 0;
  padding-block: clamp(1.6rem, 4vh, 3.25rem) max(1.7rem, env(safe-area-inset-bottom));
  padding-inline: var(--astera-menu-left, clamp(1.5rem, 6vw, 7rem)) var(--astera-menu-right, clamp(1.5rem, 6vw, 7rem));
  overflow: auto;
  overscroll-behavior: contain;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--menu-ink);
  background-color: rgb(0 24 15 / 84%);
  background-color: color-mix(in oklch, var(--v119-current-green, #00180f) 84%, transparent);
  background-image: none;
  backdrop-filter: blur(16px) saturate(108%);
  -webkit-backdrop-filter: blur(16px) saturate(108%);
  visibility: visible;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, -0.5rem, 0);
  transition: opacity 240ms ease, transform 260ms var(--menu-ease);
}

html #overlay.astera-menu[hidden] {
  display: none !important;
}

html #overlay.astera-menu.open {
  opacity: 1;
  pointer-events: auto;
  transform: translate3d(0, 0, 0);
  transition: opacity 400ms ease, transform 460ms var(--menu-ease);
}

html #overlay.astera-menu :is(a, button, nav, section, address, h2, div) {
  border: 0;
  box-shadow: none;
}

html #overlay.astera-menu a,
html #overlay.astera-menu button {
  text-decoration: none;
}

html #overlay.astera-menu :is(a, button)::before,
html #overlay.astera-menu :is(a, button)::after {
  display: none;
}

html #overlay.astera-menu .astera-menu-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.85fr);
  align-content: start;
  gap: clamp(2rem, 4.5vh, 4rem) clamp(3rem, 8vw, 9rem);
  inline-size: 100%;
  min-block-size: 100%;
  margin-inline: 0;
}

html #overlay.astera-menu .astera-menu-navigation {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(0.3rem, 1.3vh, 0.9rem);
}

html #overlay.astera-menu .astera-menu-link {
  display: flex;
  align-items: center;
  width: fit-content;
  max-inline-size: 100%;
  min-block-size: 2.75rem;
  margin: 0;
  padding: 0.1rem 0;
  color: var(--menu-ink);
  background: transparent;
  font-family: "IBM Plex Serif", Georgia, serif;
  font-size: clamp(2rem, 3.3vw, 3rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.045em;
  text-align: start;
  text-transform: none;
  cursor: pointer;
  opacity: 0;
  transform: translate3d(0, 0.75rem, 0);
  transition: color 180ms ease, opacity 160ms ease, transform 220ms var(--menu-ease);
}

html #overlay.astera-menu.open .astera-menu-link {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: color 180ms ease, opacity 340ms ease, transform 430ms var(--menu-ease);
}

html #overlay.astera-menu.open .astera-menu-link:nth-child(1) { transition-delay: 0ms, 30ms, 30ms; }
html #overlay.astera-menu.open .astera-menu-link:nth-child(2) { transition-delay: 0ms, 60ms, 60ms; }
html #overlay.astera-menu.open .astera-menu-link:nth-child(3) { transition-delay: 0ms, 90ms, 90ms; }
html #overlay.astera-menu.open .astera-menu-link:nth-child(4) { transition-delay: 0ms, 120ms, 120ms; }
html #overlay.astera-menu.open .astera-menu-link:nth-child(5) { transition-delay: 0ms, 150ms, 150ms; }

html #overlay.astera-menu .astera-menu-link:is(.active, [aria-current="page"]),
html #overlay.astera-menu .astera-menu-languages [aria-current] {
  color: var(--menu-gold);
}

html #overlay.astera-menu .astera-menu-aside {
  display: grid;
  align-content: start;
  gap: clamp(2rem, 4vh, 3rem);
  padding-block-start: 0.65rem;
}

html #overlay.astera-menu :is(.astera-menu-aside, .astera-menu-utility) {
  color: var(--menu-muted);
  font-family: "IBM Plex Sans", system-ui, sans-serif;
  opacity: 0;
  transform: translate3d(0, 0.5rem, 0);
  transition: opacity 140ms ease, transform 200ms var(--menu-ease);
}

html #overlay.astera-menu.open :is(.astera-menu-aside, .astera-menu-utility) {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition: opacity 340ms ease 130ms, transform 420ms var(--menu-ease) 130ms;
}

html #overlay.astera-menu :is(.astera-menu-contacts, .astera-menu-documents) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}

html #overlay.astera-menu h2 {
  margin: 0 0 0.6rem;
  padding: 0;
  color: var(--menu-gold);
  font-family: "IBM Plex Sans", system-ui, sans-serif;
  font-size: 0.7rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

html #overlay.astera-menu .astera-menu-contacts > a {
  color: var(--menu-ink);
  font-size: clamp(1.25rem, 1.85vw, 1.65rem);
  line-height: 1.4;
}

html #overlay.astera-menu address {
  margin-block-start: 0.55rem;
  font-size: 0.95rem;
  font-style: normal;
  line-height: 1.6;
}

html #overlay.astera-menu :is(address a, .astera-menu-documents a) {
  max-inline-size: 27rem;
  padding-block: 0.15rem;
  color: var(--menu-muted);
  font-size: 0.9rem;
  line-height: 1.55;
}

html #overlay.astera-menu address a {
  font-size: 1.05rem;
  line-height: 1.6;
}

html #overlay.astera-menu .astera-menu-utility {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

html #overlay.astera-menu .astera-menu-languages {
  display: flex;
  gap: 1.5rem;
}

html #overlay.astera-menu .astera-menu-languages a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 2.75rem;
  margin: 0;
  padding: 0;
  color: var(--menu-muted);
  background: transparent;
  font-family: "IBM Plex Sans", system-ui, sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: color 180ms ease;
}

html #overlay.astera-menu :is(a, button):focus-visible {
  outline: 2px solid var(--menu-gold);
  outline-offset: 0.35rem;
}

html #overlay.astera-menu.astera-menu-pointer-open .astera-menu-link:focus-visible {
  outline: none;
}

@media (hover: hover) and (pointer: fine) {
  html #overlay.astera-menu :is(a, button):hover {
    color: var(--menu-gold);
  }
}

@media (max-width: 45rem) {
  html #overlay.astera-menu {
    padding-block: 1.3rem max(1.5rem, env(safe-area-inset-bottom));
  }

  html #overlay.astera-menu .astera-menu-inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 2rem;
    min-block-size: 0;
  }

  html #overlay.astera-menu .astera-menu-navigation {
    gap: 0.4rem;
  }

  html #overlay.astera-menu .astera-menu-link {
    font-size: clamp(1.75rem, 6.7vw, 2.125rem);
    line-height: 1.18;
  }

  html #overlay.astera-menu .astera-menu-aside {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.75rem;
    padding: 0;
  }

  html #overlay.astera-menu .astera-menu-contacts {
    gap: 0.3rem;
  }

  html #overlay.astera-menu .astera-menu-documents {
    gap: 0.25rem;
  }

  html #overlay.astera-menu .astera-menu-utility {
    grid-column: 1;
  }
}

@media (prefers-reduced-transparency: reduce) {
  html #overlay.astera-menu,
  html body.menu-open #header.header-v52,
  html body.menu-open #header.header-v52:not(.v114-over-video):not(.v117-over-section-hero),
  html body.menu-open #header.header-v52:not(.solid):not(.v50-scrolled) {
    background-color: var(--v119-current-green, #00180f) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html #overlay.astera-menu,
  html #overlay.astera-menu.open,
  html #overlay.astera-menu :is(.astera-menu-link, .astera-menu-aside, .astera-menu-utility),
  html #overlay.astera-menu.open :is(.astera-menu-link, .astera-menu-aside, .astera-menu-utility) {
    transform: none;
    transition: none !important;
  }
}
