/* Shared shell authority: legacy CMS inline styles must not resize or hide nav. */
html body header.nav .nav-inner {
  min-height: 72px;
  gap: 24px;
  padding-block: 12px;
}
html body header.nav .brand,
html body header.nav .nav-right { flex-shrink: 0; }
html body header.nav .nav-links { min-width: 0; }
html body header.nav .nav-links > ul { gap: 4px; }
html body header.nav .nav-links > ul > li { flex-shrink: 0; }
html body header.nav .nav-links > ul > li > a,
html body header.nav .nav-links .menu-trigger {
  min-height: 44px;
  padding: 0 10px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}
html body header.nav .nav-right { gap: 12px; margin-left: auto; }
html body header.nav .lang-pill {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  color: var(--fg-2);
}
html body header.nav .lang-pill.on { color: var(--accent); }
html body header.nav .nav-cta {
  flex-shrink: 0;
  min-height: 48px;
  padding: 0 24px;
  font-size: 15px;
  line-height: 1.2;
  white-space: nowrap;
  color: var(--bg);
}
html body header.nav #burgerBtn { flex-shrink: 0; }
html body header.nav :is(a, button):focus-visible,
html body #mobileMenu :is(a, button, summary):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}
html body #mobileMenu[inert] { pointer-events: none; }
html body #mobileMenu .m-lang-item {
  display: inline-flex;
  min-width: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
}
/* Navigation is a locator, not a second primary CTA. Keep layout stable. */
html body header.nav .nav-links > ul > li > a,
html body header.nav .nav-links .menu-trigger {
  position: relative;
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--fg-2);
  box-shadow: inset 0 0 0 1px transparent;
  transition: color 150ms ease-out, background-color 150ms ease-out, box-shadow 150ms ease-out;
}
html body header.nav .nav-links > ul > li > a::after,
html body header.nav .nav-links .menu-trigger::after {
  content: '';
  position: absolute;
  inset-inline: 10px;
  bottom: 6px;
  height: 1px;
  background: var(--accent);
  opacity: 0;
  transform: scaleX(.35);
  transform-origin: left;
  transition: opacity 150ms ease-out, transform 150ms ease-out;
}
html body header.nav .nav-links .has-menu[aria-expanded="true"] > .menu-trigger,
html body header.nav .nav-links > ul > li > a[aria-current="page"] {
  color: var(--fg);
  background: color-mix(in oklab, var(--accent) 6%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--accent) 28%, transparent);
}
html body header.nav .nav-links .has-menu[aria-expanded="true"] > .menu-trigger::after,
html body header.nav .nav-links > ul > li > a[aria-current="page"]::after {
  opacity: 1;
  transform: scaleX(1);
}
@media (hover: hover) {
  html body header.nav .nav-links > ul > li > a:hover,
  html body header.nav .nav-links .has-menu:hover > .menu-trigger {
    color: var(--fg);
    background: color-mix(in oklab, var(--accent) 4%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--accent) 22%, transparent);
  }
  html body header.nav .nav-links > ul > li > a:hover::after,
  html body header.nav .nav-links .has-menu:hover > .menu-trigger::after {
    opacity: 1;
    transform: scaleX(1);
  }
}
/* The same native details/menu controller, with a bounded, balanced composition. */
html body #mobileMenu .m-cover { display: none; }
html body #mobileMenu .m-panel {
  background: radial-gradient(ellipse at 100% 0%, color-mix(in oklab, var(--accent) 5%, transparent), transparent 55%), var(--bg);
  transform: translateY(12px);
  opacity: 0;
  transition: transform 200ms ease-out, opacity 200ms ease-out;
}
html body #mobileMenu.is-open .m-panel { transform: none; opacity: 1; transition-delay: 0s; }
html body #mobileMenu .m-inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 960px;
  margin-inline: auto;
  padding: 80px 24px max(32px, env(safe-area-inset-bottom));
  opacity: 1;
  transition: none;
  scrollbar-color: var(--fg-3) var(--bg);
  scrollbar-width: thin;
}
html body #mobileMenu .m-close {
  right: max(20px, calc((100vw - 912px) / 2));
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  opacity: 1;
  transition-delay: 0s;
}
html body #mobileMenu .m-meta { align-items: center; margin-bottom: 24px; }
html body #mobileMenu .m-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
html body #mobileMenu .m-list > a,
html body #mobileMenu .m-group > summary {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
  min-height: 64px;
  padding: 16px 8px;
  font-size: 24px;
  line-height: 1.25;
  letter-spacing: -.02em;
  color: var(--fg);
  background: transparent;
}
html body #mobileMenu .m-group { min-width: 0; overflow: visible; }
html body #mobileMenu .m-list .idx { order: -1; min-width: 24px; color: var(--fg-2); font-size: 12px; }
html body #mobileMenu .m-list .lbl { min-width: 0; }
html body #mobileMenu .m-list a::after { content: none; }
html body #mobileMenu .m-group[open] { border-bottom-color: color-mix(in oklab, var(--accent) 35%, var(--line)); }
html body #mobileMenu .m-group[open] > summary { color: var(--accent); }
html body #mobileMenu .m-group .m-sub { padding: 4px 0 16px 40px; gap: 0; }
html body #mobileMenu .m-group .m-sub a {
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 8px;
  font-size: 17px;
  line-height: 1.4;
  color: var(--fg-2);
  overflow: visible;
}
html body #mobileMenu .m-group .m-sub a::before { content: none; }
html body #mobileMenu .m-foot { margin-top: 32px; padding-top: 0; border-top: 0; align-items: stretch; }
html body #mobileMenu .m-foot .cta { justify-content: center; min-height: 52px; box-sizing: border-box; color: var(--bg); }
@media (hover: hover) {
  html body #mobileMenu .m-list > a:hover,
  html body #mobileMenu .m-group > summary:hover,
  html body #mobileMenu .m-group .m-sub a:hover {
    color: var(--fg);
    background: color-mix(in oklab, var(--accent) 5%, transparent);
  }
}
@media (min-width: 768px) {
  html body #mobileMenu .m-list { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; align-items: start; }
}
@media (prefers-reduced-motion: reduce) {
  html body header.nav .nav-links :is(a, button),
  html body header.nav .nav-links :is(a, button)::after,
  html body #mobileMenu :is(.m-panel, .m-scrim, .m-close) { transition: none; }
}
/* Content-driven: the longest UA/RU navigation needs a real, unsqueezed row. */
/* Product navigation shares the services' geometry, without logo-like lime tiles. */
html body header.nav .menu-panel-saas .m-icon,
html body #mobileMenu .product-nav-icon {
  display: grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  color: var(--fg-2);
  background: var(--bg-2);
  box-shadow: none;
  transition: color 150ms var(--ease), border-color 150ms var(--ease), background 150ms var(--ease);
}
html body header.nav .menu-panel-saas .m-icon svg,
html body #mobileMenu .product-nav-icon svg { width: 22px; height: 22px; }
html body header.nav .menu-panel-saas .m-item:is(:hover, :focus-visible) .m-icon,
html body #mobileMenu .product-nav-link:is(:hover, :focus-visible) .product-nav-icon {
  color: var(--accent);
  border-color: color-mix(in oklab, var(--accent) 50%, var(--line));
  background: color-mix(in oklab, var(--accent) 4%, var(--bg-2));
}
html body #mobileMenu .m-group .m-sub a.product-nav-link { display: flex; align-items: center; gap: 12px; }
html body #mobileMenu .product-nav-link > span:last-child { min-width: 0; overflow-wrap: anywhere; }
@media (prefers-reduced-motion: reduce) {
  html body header.nav .menu-panel-saas .m-icon,
  html body #mobileMenu .product-nav-icon { transition: none; }
}
@media (max-width: 1199px) {
  html body header.nav .nav-inner { min-height: 64px; padding-block: 8px; }
  html body header.nav .nav-inner > nav.nav-links { display: none !important; }
  html body header.nav .nav-right .nav-cta { display: none !important; }
  html body header.nav #burgerBtn { display: flex !important; }
}
@media (min-width: 1200px) {
  html body header.nav .nav-inner > nav.nav-links { display: block !important; }
  html body header.nav .nav-right .nav-cta { display: inline-flex !important; }
  html body header.nav #burgerBtn { display: none !important; }
}
@media (max-width: 479px) {
  html body header.nav .nav-inner { gap: 12px; }
  html body header.nav .nav-right { gap: 4px; }
  /* The same languages remain available inside the existing menu. */
  html body header.nav .lang { display: none !important; }
}
