/* app/navigation.css */
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;transform:translateY(-160%);padding:12px 18px;border-radius:999px;background:#11170f;color:#fff;font-weight:800;box-shadow:0 12px 32px rgba(0,0,0,.2)}.skip-link:focus{transform:translateY(0)}
#main-content:focus{outline:none}
:where(a,button,input,summary):focus-visible{outline:3px solid #6b772d;outline-offset:3px}
.header-inner{position:relative}.desktop-navigation{margin-left:auto;display:flex;align-items:center;gap:2px}.desktop-nav-trigger{position:relative;display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:0 10px;border:0;border-radius:12px;background:transparent;color:var(--ink);font:inherit;font-size:14px;font-weight:720;white-space:nowrap;cursor:pointer}.desktop-nav-trigger:hover,.desktop-nav-trigger.is-open{background:#fff}.desktop-nav-trigger.is-current{color:var(--dark-2)}.desktop-nav-trigger.is-current:after{content:"";position:absolute;left:50%;bottom:7px;width:22px;height:2px;transform:translateX(-50%);border-radius:2px;background:var(--dark-2)}.nav-chevron{font-size:17px;line-height:1;transition:transform .18s ease}.desktop-nav-trigger.is-open .nav-chevron{transform:rotate(180deg)}.desktop-nav-catalog{display:inline-flex;align-items:center;gap:6px;min-height:38px;margin-left:5px;padding:0 10px;border:1px solid #aebaa6;border-radius:999px;background:#fff;color:var(--dark-2);font-size:12px;font-weight:850;white-space:nowrap}.nav-search-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0}.desktop-nav-catalog:hover,.desktop-nav-catalog.is-current{background:var(--brand);border-color:#8f9d82}.header-cta{flex:0 0 auto}.mega-menu{position:absolute;z-index:var(--z-mega-menu);left:0;right:0;top:calc(100% + 1px);display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,2fr);gap:22px;padding:24px;border:1px solid var(--line);border-radius:0 0 26px 26px;background:rgba(255,255,255,.98);box-shadow:0 24px 70px rgba(22,36,20,.18);backdrop-filter:blur(16px)}.mega-menu-intro{padding:10px 12px 12px}.mega-menu-intro p{margin:12px 0 0;color:var(--muted)}.mega-menu-title{display:inline-flex;font-size:27px;font-weight:850;line-height:1.08;letter-spacing:-.035em}.mega-menu-title:hover{text-decoration:underline;text-underline-offset:5px}.mega-menu-catalog{display:inline-flex;margin-top:18px;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--bg);font-size:13px;font-weight:800}.mega-menu-catalog:hover{border-color:#9caa91;background:var(--brand)}.mega-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mega-menu-link{display:grid;gap:5px;min-height:86px;padding:15px 17px;border-radius:16px;background:var(--bg);border:1px solid transparent}.mega-menu-link:hover,.mega-menu-link.is-current{border-color:#aebaa6;background:#fff}.mega-menu-link strong{font-size:16px}.mega-menu-link span{color:var(--muted);font-size:13px;line-height:1.38}
.mobile-menu-toggle{display:none;width:44px;height:44px;padding:10px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer}.mobile-menu-toggle span{display:block;width:20px;height:2px;margin:4px auto;border-radius:2px;background:var(--ink);transition:transform .18s ease,opacity .18s ease}.mobile-menu-toggle.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.mobile-menu-toggle.is-open span:nth-child(2){opacity:0}.mobile-menu-toggle.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.mobile-menu-backdrop{position:fixed;z-index:var(--z-mobile-backdrop);inset:0;border:0;background:rgba(10,15,9,.48);backdrop-filter:blur(3px);cursor:pointer}.mobile-menu-panel{position:fixed;z-index:var(--z-mobile-panel);top:0;right:0;display:flex;flex-direction:column;width:min(520px,100%);height:100dvh;background:var(--bg);box-shadow:-24px 0 80px rgba(15,25,13,.24)}.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding:14px 20px;border-bottom:1px solid var(--line);background:#fff}.mobile-menu-head strong{font-size:20px}.mobile-menu-close{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:30px;line-height:1;cursor:pointer}.mobile-menu-scroll{overflow:auto;padding:12px 18px 32px;overscroll-behavior:contain}.mobile-catalog-link{display:grid;gap:5px;margin:8px 0 4px;padding:16px;border:1px solid #9caa91;border-radius:16px;background:var(--brand)}.mobile-catalog-link strong{font-size:18px}.mobile-catalog-link span{color:var(--muted);font-size:13px;line-height:1.4}.mobile-menu-group{padding:20px 0;border-bottom:1px solid var(--line)}.mobile-menu-group-title{display:inline-flex;font-size:25px;font-weight:850;letter-spacing:-.035em}.mobile-menu-group>p{margin:7px 0 14px;color:var(--muted);font-size:14px}.mobile-menu-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mobile-menu-links a{display:flex;align-items:center;min-height:46px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#fff;font-weight:700;font-size:14px}.mobile-menu-links a:hover,.mobile-menu-links a.is-current{border-color:#9caa91;background:var(--brand)}.mobile-menu-all{display:inline-flex;margin-top:12px;color:var(--dark-2);font-size:13px;font-weight:850;text-decoration:underline;text-underline-offset:4px}.mobile-menu-utility strong{display:block;margin-bottom:12px}.mobile-menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}.mobile-menu-actions .button{min-height:48px}.menu-open{overflow:hidden}
.footer-grid{grid-template-columns:1.35fr repeat(4,minmax(0,1fr));gap:30px}.footer-grid nav{display:grid;align-content:start;gap:10px}.footer-grid nav strong{margin-bottom:3px}.footer-grid nav a,.footer-about a{min-height:28px}.footer-grid nav a:hover,.footer-about a:hover,.footer-bottom a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.16)}.footer-bottom p{margin:0;color:rgba(255,255,255,.62)}.footer-bottom a{color:rgba(255,255,255,.78);font-weight:750}
.service-card{display:flex;flex-direction:column}.service-card>.service-link{position:static;margin-top:auto;padding-top:22px}.prose a:not(.button),.content-panel a:not(.button){text-decoration:underline;text-decoration-color:#a3ad73;text-decoration-thickness:1px;text-underline-offset:3px}.prose a:not(.button):hover,.content-panel a:not(.button):hover{text-decoration-color:currentColor}.page-shell section[id],.site-map-group{scroll-margin-top:110px}
@media(max-width:1160px){.desktop-nav-catalog{max-width:82px;overflow:hidden}.footer-grid{grid-template-columns:1.3fr repeat(2,minmax(0,1fr))}.footer-about{grid-row:span 2}}
@media(max-width:980px){.header-inner{gap:12px}}
@media(max-width:760px){.header-cta{display:none}.mobile-menu-toggle{margin-left:auto}.mobile-menu-links{grid-template-columns:1fr}.footer-bottom{align-items:flex-start;flex-direction:column}.service-card{min-height:auto}.button,.mobile-menu-links a{min-height:48px}}
@media(max-width:560px){.mobile-menu-actions{grid-template-columns:1fr}.mobile-menu-panel{width:100%}.footer-grid{grid-template-columns:1fr}.mobile-menu-group-title{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}


/* app/navigation-ia.css */
.header-search-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:var(--nav-control);padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer}.header-search-toggle:hover,.header-search-toggle.is-open{border-color:#9caa91;background:var(--brand)}.header-search-toggle svg,.header-search-row>svg,.mobile-header-search svg{width:20px;height:20px;flex:0 0 auto}.header-search-panel{position:absolute;z-index:var(--z-search-panel);top:calc(100% + 1px);right:0;width:min(580px,100%);padding:22px;border:1px solid var(--line);border-radius:0 0 24px 24px;background:rgba(255,255,255,.99);box-shadow:0 24px 70px rgba(22,36,20,.18);backdrop-filter:blur(16px)}.header-search-form{display:grid;gap:10px}.header-search-form label,.mobile-header-search label{font-size:14px;font-weight:800;color:var(--ink)}.header-search-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 8px 8px 14px;border:1px solid #aebaa6;border-radius:16px;background:var(--bg)}.header-search-row:focus-within{border-color:#6b772d;box-shadow:0 0 0 3px rgba(107,119,45,.14)}.header-search-row input,.mobile-header-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:16px}.header-search-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.header-search-shortcuts a{display:inline-flex;align-items:center;min-height:36px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;font-weight:750}.header-search-shortcuts a:hover{border-color:#9caa91;background:var(--brand)}.mobile-header-search{display:grid;gap:8px;margin:8px 0 4px;padding:15px;border:1px solid #9caa91;border-radius:16px;background:var(--brand)}.mobile-header-search>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;min-height:48px;padding:0 7px 0 12px;border:1px solid rgba(29,29,31,.16);border-radius:13px;background:#fff}.mobile-header-search button{display:inline-grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:var(--dark-2);color:#fff;cursor:pointer}@media(max-width:1280px){.header-search-toggle{width:var(--nav-control);padding:0}.header-search-toggle>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}@media(max-width:980px){.header-search-panel{left:0;right:0;width:auto}}@media(max-width:760px){.header-search-toggle{order:3;flex:0 0 44px;width:44px;min-height:44px;margin-left:auto}.mobile-menu-toggle{order:4;margin-left:0}.header-search-panel{padding:16px;border-radius:0 0 20px 20px}.header-search-row{grid-template-columns:auto minmax(0,1fr)}.header-search-row .button{grid-column:1/-1;width:100%}}

/* app/mobile-overflow-fix.css */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

body,
main,
.site-header,
.footer {
  min-width: 0;
  max-width: 100%;
}

.container,
.grid,
.hero-grid,
.split,
.team-preview,
.steps-grid,
.cards,
.footer-grid,
.header-inner,
.hero-content,
.hero-copy,
.form-panel,
.form-frame {
  min-width: 0;
  max-width: 100%;
}

.hero-grid > *,
.split > *,
.team-preview > *,
.steps-grid > *,
.cards > *,
.footer-grid > *,
.header-inner > * {
  min-width: 0;
  max-width: 100%;
}

img,
picture,
svg,
iframe,
video,
canvas {
  max-width: 100%;
}

iframe,
.form-frame {
  width: 100%;
}

@media (max-width: 760px) {
  .header-inner {
    flex-wrap: nowrap;
    gap: 6px !important;
  }

  .header-inner > .brand {
    order: 1;
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    max-width: none;
    overflow: hidden;
  }

  .header-inner > .brand img {
    width: 145px;
    max-width: 100%;
  }

  .header-inner > .header-search-toggle {
    order: 2;
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    max-width: 44px;
    margin-left: 0;
  }

  .header-inner > :has(> #site-language-header) {
    order: 3;
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px;
    max-width: 44px !important;
    margin: 0 !important;
  }

  .header-inner > .mobile-menu-toggle {
    order: 4;
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    max-width: 44px;
    margin-left: 0 !important;
  }

  .hero-grid,
  .split,
  .team-preview,
  .steps-grid,
  .cards {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  h1,
  h2,
  h3,
  p,
  .service-card,
  .content-panel,
  .page-cta {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 420px) {
  .header-inner > .brand img {
    width: 126px;
  }

  .page-shell-contact .quick-facts,
  .page-shell-contact .quick-fact,
  .page-shell-contact .quick-fact span {
    min-width: 0;
    max-width: 100%;
  }

  .page-shell-contact .quick-facts {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .page-shell-contact .quick-fact span {
    display: block;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  /* The contact shell passes the full page H1 into the current breadcrumb.
     On 320px screens that direct flex item can keep its intrinsic width and
     protrude outside the viewport. Let it shrink and wrap beside the separator. */
  .page-shell-contact .breadcrumbs > span[aria-current="page"] {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
}

/* app/locale-shell-nav-responsive.css */
/* Locale-shell responsive nav parity with app/design-system-v4.css (RU build).
   design-system-v4.css (PR #867, 2026-09-08) is what actually makes the header
   responsive on RU: it unconditionally restyles .mobile-menu-toggle (overriding
   navigation.css's unconditional display:none) and then hides .desktop-navigation
   / re-hides .mobile-menu-toggle by breakpoint. This sync script's sourceFiles
   list was never updated for that PR, so EN/VI/ZH kept the toggle permanently
   display:none and the desktop nav always visible — confirmed live via
   scripts/seo/live-mobile-smoke-v3.mjs (real Chrome CDP) on 2026-09-11:
   12/32 hard failures, all on /en/, /vi/, /zh/ at 320-390px ("mobile menu
   toggle is not visible" + desktop nav links rendered off-screen).

   Scoped to .mobile-menu-toggle only (not the wider selector groups design-
   system-v4.css shares it with, e.g. .header-search-toggle/.language-switcher-*)
   so this can't change the appearance of unrelated header controls that
   navigation.css / navigation-ia.css already style for these locales.
   Re-verified after this fix with a real headless Chrome render of the live
   /en/ header markup against the resulting concatenated CSS: toggle visible
   and correctly sized at 320/360/375/390px, desktop nav links no longer
   render outside the viewport. */

.mobile-menu-toggle {
  display: inline-grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  min-width: 42px;
  height: 42px;
  min-height: 42px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  box-shadow: none;
}

.mobile-menu-toggle:hover,
.mobile-menu-toggle.is-open {
  background: rgba(29, 29, 31, 0.06);
}

.mobile-menu-toggle svg {
  width: 20px;
  height: 20px;
}

.mobile-menu-toggle .header-control-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

@media (min-width: 981px) {
  .mobile-menu-toggle {
    display: none;
  }
}

@media (max-width: 980px) {
  .desktop-navigation,
  .header-cta {
    display: none;
  }
}

