/* self-hosted Montserrat (cyrillic + latin) */
@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/montserrat/montserrat-cyrillic-wght-normal.woff2) format('woff2-variations');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/montserrat/montserrat-latin-wght-normal.woff2) format('woff2-variations');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}


/* --- public/styles/legacy/base.min.css --- */
/*! HTML5 Boilerplate v9.0.1 | MIT License | https://html5boilerplate.com/ */
html {
    color: #222;
    font-size: 1em;
    line-height: 1.4
}

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none
}

::selection {
    background: #b3d4fc;
    text-shadow: none
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0
}

audio, canvas, iframe, img, svg, video {
    vertical-align: middle
}

fieldset {
    border: 0;
    margin: 0;
    padding: 0
}

textarea {
    resize: vertical
}

.hidden, [hidden] {
    display: none !important
}

.visually-hidden {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px
}

.visually-hidden.focusable:active, .visually-hidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    white-space: inherit;
    width: auto
}

.invisible {
    visibility: hidden
}

.clearfix::before, .clearfix::after {
    content: "";
    display: table
}

.clearfix::after {
    clear: both
}

@media print {
    *, *::before, *::after {
        background: #fff !important;
        color: #000 !important;
        box-shadow: none !important;
        text-shadow: none !important
    }

    a, a:visited {
        text-decoration: underline
    }

    a[href]::after {
        content: " (" attr(href) ")"
    }

    abbr[title]::after {
        content: " (" attr(title) ")"
    }

    a[href^="#"]::after, a[href^="javascript:"]::after {
        content: ""
    }

    pre {
        white-space: pre-wrap !important
    }

    pre, blockquote {
        border: 1px solid #999;
        page-break-inside: avoid
    }

    tr, img {
        page-break-inside: avoid
    }

    p, h2, h3 {
        orphans: 3;
        widows: 3
    }

    h2, h3 {
        page-break-after: avoid
    }
}

.root-page {
    min-height: 100vh;
    background-color: #f0f0f0;
    padding-top: 20.1rem;
    overflow: hidden
}

@media screen and (max-width: 550px) {
    .root-page {
        padding-top: 17.6rem;
    }
}

.root-page.--th-error {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    flex-direction: column
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0
}

html {
    font-size: .520833333vw;
    color: #222;
    font-family: "Montserrat", serif
}

@media screen and (max-width: 1440px) {
    html {
        font-size: .694444444vw
    }
}

@media screen and (max-width: 1024px) {
    html {
        font-size: .9765625vw
    }
}

@media screen and (max-width: 768px) {
    html {
        font-size: 1.302083333vw
    }
}

@media screen and (max-width: 550px) {
    html {
        font-size: 1.818181818vw
    }
}

button {
    font-family: "Montserrat", serif
}

body {
    margin: 0;
    padding: 0
}

.btn {
    padding: 1.3rem 4rem;
    border-radius: 1rem;
    font-size: 2.4rem;
    line-height: 3.2rem;
    font-weight: 500;
    cursor: pointer;
    outline: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    text-decoration: none;
    transition: all .05s linear
}

@media screen and (max-width: 550px) {
    .btn {
        padding: 2.8rem;
        font-size: 3.5rem;
        border-radius: 1.2rem
    }
}

.btn.--th-small {
    padding: .9rem 3.9rem
}

@media screen and (max-width: 550px) {
    .btn.--th-small {
        border-radius: 1.2rem
    }
}

.btn-white {
    border: 1px solid #082d7c;
    color: #082d7c;
    background-color: #fff
}

.btn-white:hover {
    background-color: #c7daff
}

.btn-white:active {
    background-color: #f0f0f0
}

.btn-blue {
    color: #fff;
    background-color: #082d7c;
    padding-top: 1.4rem;
    padding-bottom: 1.4rem;
    outline: none;
    border: none
}

.btn-blue:hover {
    background-color: #0d3da2
}

.btn-blue:active {
    background-color: #213b73
}

.z-front {
    position: relative;
    z-index: 11
}


/* --- public/styles/cleanup.css --- */
.header__logo {
  display: inline-flex;
  align-items: center;
}

/* Header — single bar (logo → nav → RU|EN → CTA), overrides legacy index.min.css */

/* Part 0 of site.bundle — must hide mobile chrome before deferred chunks (legacy index.min) */
@media screen and (min-width: 1025px) {
  .header__burger {
    display: none !important;
  }

  .header-nav {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .header__cta {
    display: inline-flex !important;
  }

  .burger-menu:not(.--th-active):not(.--th-opened) {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(2rem) !important;
  }
}

.root-page {
  overflow: visible !important;
}

@media screen and (min-width: 1025px) {
  .header {
    position: sticky !important;
    top: 0;
    z-index: 200;
    padding: 0 !important;
    background: rgba(255, 255, 255, 0.97);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 0.1rem solid #ced9f2;
    box-shadow: 0 0.2rem 1.2rem rgba(8, 45, 124, 0.06);
  }

  .header .container {
    overflow: visible;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 6.4rem;
    box-sizing: border-box;
  }

  .root-page {
    padding-top: 0 !important;
  }
}

.header__bar {
  display: flex;
  align-items: center;
  gap: 2rem;
  min-height: 6.4rem;
  padding: 0.8rem 0;
}

.header__logo {
  flex-shrink: 0;
}

/* Corp pages: legacy breadcrumbs pull up under the logo (margin-top: -3.4rem) */
.breadcrumbs {
  margin-top: 0 !important;
}

@media screen and (min-width: 1025px) {
  .breadcrumbs {
    padding-top: 1rem;
  }
}

.page-eyebrow-wrap {
  padding-top: 1.2rem;
  padding-bottom: 0.4rem;
}

.page-eyebrow,
.corp-hero__eyebrow {
  font-size: 1.6rem;
  font-weight: 600;
  color: #54b7eb;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0;
}

@media screen and (min-width: 1025px) {
  .page-eyebrow-wrap {
    padding-top: 1.6rem;
  }
}

.header__actions {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  flex-shrink: 0;
  margin-left: auto;
}

.header__contact {
  display: none !important;
}

.header__socials {
  display: none !important;
}

.header__cta {
  flex-shrink: 0;
  white-space: nowrap;
  position: relative;
  z-index: 2;
  border: 0.2rem solid #082d7c !important;
  background-color: #082d7c !important;
  color: #fff !important;
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  padding: 0.8rem 2.4rem !important;
  border-radius: 0.4rem !important;
  transition:
    background-color 0.28s cubic-bezier(0.23, 1, 0.32, 1),
    color 0.28s cubic-bezier(0.23, 1, 0.32, 1),
    box-shadow 0.28s cubic-bezier(0.23, 1, 0.32, 1);
}

.header__cta:hover {
  background-color: #fff !important;
  color: #082d7c !important;
  box-shadow: 0 0.4rem 1.4rem rgba(8, 45, 124, 0.16);
}

@media screen and (min-width: 1025px) {
  .header__bar {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 2.4rem 5.6rem;
    width: 100%;
    min-height: 6.4rem;
    padding: 0;
    margin: 0;
  }

  .header__logo {
    width: auto !important;
    height: auto !important;
    justify-self: start;
    align-self: center;
    display: inline-flex;
    align-items: center;
    line-height: 0;
  }

  .header__logo img,
  .header__logo .logo {
    width: auto !important;
    height: 3.4rem !important;
    max-height: 3.4rem;
    display: block;
  }

  .header-nav {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    justify-self: stretch;
    align-self: center;
    width: 100%;
    min-width: 0;
  }

  .header__actions {
    margin-left: 0;
    justify-self: end;
    align-self: center;
    flex-shrink: 0;
  }

  .header__cta {
    display: inline-flex !important;
  }

  .header__burger {
    display: none !important;
  }

  /* Text-only nav: B2B clarity — readable labels, underline affordance, soft hover glow */
  .header-nav__list {
    display: flex !important;
    align-items: center !important;
    justify-content: space-evenly !important;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 !important;
    gap: 3.2rem !important;
    flex-wrap: nowrap;
    border: none !important;
    background: none !important;
    box-shadow: none !important;
    list-style: none;
  }

  .header-nav__list::before {
    display: none !important;
    content: none !important;
  }

  .header-nav-item {
    padding: 0 !important;
    margin: 0 !important;
    flex: 0 1 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none !important;
  }

  .header-nav-item__icon {
    display: none !important;
  }

  .header-nav-item__link {
    font-family: Montserrat, system-ui, sans-serif !important;
    font-size: 1.5rem !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    letter-spacing: 0.03em;
    color: #4a4f5c !important;
    text-decoration: none !important;
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 0.5rem !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: visible;
    cursor: pointer;
    transition: color 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .header-nav-item__link::before,
  .header-nav-item__link::after {
    display: none !important;
    content: none !important;
  }

  .header-nav-glow {
    position: absolute;
    inset: -0.35rem -0.75rem;
    border-radius: 1.2rem;
    opacity: 0;
    transform: scale(0.88);
    pointer-events: none;
    z-index: 0;
    transition:
      opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
      transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .header-nav-item--tone-about .header-nav-glow {
    background: radial-gradient(
      circle,
      rgba(8, 45, 124, 0.2) 0%,
      rgba(75, 142, 255, 0.1) 50%,
      transparent 72%
    );
  }

  .header-nav-item--tone-services .header-nav-glow {
    background: radial-gradient(
      circle,
      rgba(6, 0, 107, 0.18) 0%,
      rgba(75, 142, 255, 0.1) 52%,
      transparent 72%
    );
  }

  .header-nav-item--tone-cases .header-nav-glow {
    background: radial-gradient(
      circle,
      rgba(75, 142, 255, 0.18) 0%,
      rgba(172, 203, 238, 0.1) 52%,
      transparent 72%
    );
  }

  .header-nav-item--tone-blog .header-nav-glow {
    background: radial-gradient(
      circle,
      rgba(34, 150, 110, 0.16) 0%,
      rgba(120, 210, 170, 0.1) 52%,
      transparent 72%
    );
  }

  .header-nav-item--tone-contacts .header-nav-glow {
    background: radial-gradient(
      circle,
      rgba(40, 130, 95, 0.17) 0%,
      rgba(8, 45, 124, 0.08) 50%,
      transparent 72%
    );
  }

  .header-nav-flip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
    perspective: 50rem;
    min-height: 2.4rem;
  }

  .header-nav-flip__face {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition:
      transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1);
    transform-style: preserve-3d;
    backface-visibility: hidden;
  }

  .header-nav-flip__face--front {
    transform-origin: center bottom;
  }

  .header-nav-flip__face--back {
    position: absolute;
    inset: 0;
    margin: auto;
    transform: rotateX(88deg);
    opacity: 0;
    transform-origin: center top;
    color: #082d7c;
  }

  .header-nav-item__label {
    position: relative;
    z-index: 1;
    white-space: nowrap;
  }

  /* Hover: drum flip only (21st glow-menu — color/glow on active, not hover) */
  .header-nav-item__link:hover .header-nav-flip__face--front,
  .header-nav-item__link:focus-visible .header-nav-flip__face--front {
    transform: rotateX(-88deg);
    opacity: 0;
  }

  .header-nav-item__link:hover .header-nav-flip__face--back,
  .header-nav-item__link:focus-visible .header-nav-flip__face--back {
    transform: rotateX(0deg);
    opacity: 1;
  }

  /* Current section (after navigation / route match): accent + glow */
  .header-nav-item--active > .header-nav-item__link {
    color: #082d7c !important;
  }

  .header-nav-item--active .header-nav-glow {
    opacity: 1;
    transform: scale(1.15);
  }

  .header-nav-item--active > .header-nav-item__link .header-nav-flip__face--front {
    transform: rotateX(-88deg);
    opacity: 0;
  }

  .header-nav-item--active > .header-nav-item__link .header-nav-flip__face--back {
    transform: rotateX(0deg);
    opacity: 1;
  }

  .header-nav-item__dropdown {
    top: 100% !important;
    left: 0 !important;
    margin-top: 0 !important;
    width: auto !important;
    max-width: none !important;
    z-index: 210 !important;
  }

  /* Invisible bridge: legacy margin + gap broke hover path to mega-menu */
  .header-nav-item__dropdown::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: 1.6rem;
  }

  .header-nav-item--services .header-nav-item__dropdown::before {
    left: 50%;
    right: auto;
    width: min(80rem, calc(100vw - 4rem));
    transform: translateX(-50%);
  }

  .header-nav-item--about::before,
  .header-nav-item--services::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 1.6rem;
    z-index: 1;
  }

  .header-nav-item-dropdown {
    padding: 0 !important;
    border-radius: 0.8rem !important;
  }

  /* Legacy cascade dropdown (not used in Stitch mega) */
  .header-nav-item-dropdown--cascade {
    display: none !important;
  }

  .header-nav-item--services .header-nav-item__dropdown {
    left: 50% !important;
    transform: translateX(-50%);
  }

  .header-nav-item--about .header-nav-item__dropdown {
    left: 0 !important;
    transform: none !important;
  }
}

.header-nav-item--services,
.header-nav-item--about {
  position: relative;
}

.header-nav-item--active > .header-nav-item__link {
  color: #082d7c;
}

@media screen and (min-width: 1025px) {
  .header-nav-item--active > .header-nav-item__link {
    color: #082d7c !important;
    background: transparent !important;
  }
}

.header-nav-item-dropdown--mega {
  min-width: min(80rem, calc(100vw - 4rem));
  max-width: min(80rem, calc(100vw - 4rem));
  padding: 0 !important;
  border: 0.1rem solid #ced9f2;
  border-radius: 0.8rem;
  background: #f7f8fa;
  box-shadow: 0 0.4rem 1.6rem rgba(0, 0, 0, 0.06);
}

.header-mega {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}

.header-mega__col {
  padding: 2.4rem;
  background: #fff;
  border-right: 0.1rem solid #ced9f2;
}

.header-mega__col:last-child {
  border-right: 0;
}

.header-mega__title {
  margin: 0 0 1.6rem;
  padding-bottom: 0.8rem;
  border-bottom: 0.1rem solid #ced9f2;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.3;
}

.header-mega__title-link {
  color: #082d7c;
  text-decoration: none;
}

.header-mega__title-link:hover,
.header-mega__title-link--active {
  color: #082d7c;
}

.header-mega__branch {
  margin-bottom: 1.2rem;
}

.header-mega__branch-label {
  margin: 0 0 0.4rem;
  font-size: 1.6rem;
  font-weight: 600;
  color: #1b1c1c;
}

.header-mega__branch-leaf {
  margin: 0.8rem 0 0;
}

.header-mega__list {
  margin: 0;
  padding: 0 0 0 1.2rem;
  list-style: none;
}

.header-mega__item {
  list-style: none;
}

.header-mega__link {
  display: block;
  padding: 0.35rem 0;
  color: #444651;
  font-size: 1.4rem;
  line-height: 1.4;
  text-decoration: none;
  transition: color 0.15s ease;
}

.header-mega__link:hover,
.header-mega__link--active {
  color: #082d7c;
}

.header-nav-item-dropdown--about {
  min-width: 20rem;
  padding: 0 !important;
  border: 0.1rem solid #ced9f2;
  border-radius: 0.8rem;
  background: #fff;
  box-shadow: 0 0.4rem 0.8rem rgba(0, 0, 0, 0.04);
}

.header-nav-about {
  margin: 0;
  padding: 0;
  list-style: none;
}

.header-nav-about__link {
  display: block;
  padding: 0.8rem 1.6rem;
  color: #1b1c1c;
  font-size: 1.6rem;
  line-height: 1.5;
  text-decoration: none;
}

.header-nav-about__link:hover,
.header-nav-about__link--active {
  background: #f7f8fa;
  color: #082d7c;
}

.header-nav-about__link--active {
  box-shadow: inset 0.3rem 0 0 #082d7c;
}

.burger-menu__item--cta {
  margin-top: 1.6rem;
  padding-top: 1.6rem;
  border-top: 0.1rem solid rgba(8, 45, 124, 0.12);
}

.burger-menu__item--cta .burger-menu__link.btn {
  justify-content: center;
  width: 100%;
}

.header-nav-item--services .header-nav-item-dropdown--cascade {
  min-width: 22rem;
  padding: 1.2rem 1.4rem 1.4rem;
  padding-top: 5.6rem;
}

.header-nav-cascade {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.header-nav-cascade__group {
  position: relative;
  list-style: none;
}