/* Progressive enhancements for the original static design. */
html { scroll-padding-top: 112px; }
.skip-link {
  position: fixed;
  top: 0;
  left: 15px;
  z-index: 2000;
  transform: translateY(-120%);
  padding: 12px 18px;
  border-radius: 0 0 8px 8px;
  background: #fab952;
  color: #010b31;
  font-weight: 700;
}
.skip-link:focus { transform: translateY(12px); }
.tab-content > .tab-pane.active { opacity: 1; }
html:not(.js-enhanced) .tab-content > .tab-pane {
  display: block;
  opacity: 1;
}
html:not(.js-enhanced) .tab-content > .tab-pane + .tab-pane { margin-top: 40px; }
img { max-width: 100%; }
.header__logo img, .footer__logo img { height: auto; }
a:focus-visible, button:focus-visible, [tabindex="0"]:focus-visible {
  outline: 2px solid #fab952;
  outline-offset: 5px;
}
.header__toggle { display: none; }
.header__dropdown-toggle {
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-align: left;
  text-transform: inherit;
}
.header__item:focus-within { z-index: 5; }
.header:not(.js-enhanced) { position: relative; background: #010b31; }
.header:not(.js-enhanced) .header__list {
  position: static;
  visibility: visible;
  opacity: 1;
  margin-top: 12px;
}
.wow { visibility: visible; }
.owl-carousel:not(.owl-loaded) { display: flow-root; }
.js-result:not(.owl-loaded) > * + *, .js-review:not(.owl-loaded) > * + * { margin-top: 45px; }
.js-slider:not(.owl-loaded), .js-sliderClients:not(.owl-loaded) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 24px;
}
.owl__button { display: none; }
[data-carousel] .owl__button { display: block; }
[data-carousel] { position: relative; }
html:not(.js-enhanced) [data-parallax] {
  background-image: url('../images/bg-clients.png');
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
html:not(.js-enhanced) .hero__video { background: url('../images/bg-hero.jpg') center / cover no-repeat; }
html:not(.js-enhanced) .hero__video video { display: none; }
.contact-card {
  max-width: 704px;
  margin: 0 auto;
  padding: 26px 24px;
  text-align: center;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 20px;
  background: rgba(44, 49, 86, .86);
}
.contact-card a { overflow-wrap: anywhere; }
.contact-card p + p, .contact-card p + a { margin-top: 16px; }
.contact-card .button { max-width: 100%; }

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

@media (max-width: 991px) {
  html { scroll-padding-top: 100px; }
  .container { max-width: 100%; }
  .header { background: rgba(1, 11, 49, .96); }
  .header .container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    column-gap: 14px;
  }
  .header .container::before, .header .container::after { content: none; }
  .header__logo { grid-column: 1; grid-row: 1; float: none; margin: 0; }
  .header__right { grid-column: 2; grid-row: 1; float: none; margin: 0; }
  .header__lang { margin-left: 12px; }
  .header__toggle {
    grid-column: 3;
    grid-row: 1;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid #737991;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    cursor: pointer;
    font: 23px/1 sans-serif;
  }
  .header.js-enhanced .header__toggle { display: inline-flex; }
  .header__nav {
    display: block;
    grid-column: 1 / -1;
    grid-row: 2;
    float: none;
    width: 100%;
    margin: 18px 0 0;
  }
  .header.js-enhanced .header__nav { display: none; }
  .header.js-enhanced.is-open .header__nav { display: block; }
  .header.is-open { max-height: 100vh; overflow-y: auto; }
  .header__item, .header__item:nth-child(1) {
    float: none;
    width: 100%;
    margin: 0;
  }
  .header__item:not(:last-child) { margin-right: 0; }
  .header__list {
    position: static;
    padding-top: 14px;
    visibility: visible;
    opacity: 1;
  }
  .header__item.js-enhanced .header__list { display: none; }
  .header__item.js-enhanced.is-open .header__list { display: block; }
  .header__list-link { display: inline-block; padding: 5px 0; }
  .hero {
    height: auto;
    min-height: 560px;
    padding-top: 155px;
    padding-bottom: 95px;
  }
  .hero__video { height: 100%; }
  .hero-other {
    height: auto;
    min-height: 0;
    padding-top: 150px;
    padding-bottom: 90px;
  }
  /* The original columns float; contain them before sizing the mobile hero. */
  .hero-other__list { display: flow-root; }
  .hero-other__title { overflow-wrap: break-word; }
  html:not(.js-enhanced) .hero, html:not(.js-enhanced) .hero-other { padding-top: 60px; }
}
@media (max-width: 767px) {
  .header__lang { margin-left: 0; }
  .header__lang a:not(:last-child) { margin-right: 4px; }
  .header__logo img { width: 92px; }
  .header .container { column-gap: 10px; }
  .hero { min-height: 500px; padding-top: 135px; padding-bottom: 75px; }
  .hero__title { font-size: 34px; line-height: 1.35; }
  .hero .page-title-m { font-size: 19px; line-height: 1.4; }
  .hero-other { padding-top: 130px; padding-bottom: 65px; }
  .hero-other__title { font-size: 30px; line-height: 1.3; }
  .services__block { width: auto; max-width: 360px; }
  .services__list { min-height: 0; height: auto; max-width: none; }
  .results__buttons, .tech-slider__buttons { display: flex; justify-content: space-between; margin-top: 18px; }
  [data-carousel] .owl__button { position: static; transform: none; flex: 0 0 40px; }
  .contact-card { padding: 24px 18px; }
  .contact-card .button { font-size: 13px; padding-left: 14px; padding-right: 14px; }
  .footer__bottom { padding-bottom: 36px; }
}

/* Restore the existing lower SVG graph without reintroducing the lead form. */
.tech--graph { background-image: none; }
.tech--graph .tech-slider,
.tech--graph .tech__form { position: relative; z-index: 2; }
.tech__graph {
  display: none;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 320px;
  pointer-events: none;
  z-index: 1;
}
.tech__graph-svg { width: 100%; height: 100%; overflow: visible; clip-path: inset(0); }
.tech__graph-path { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: none; stroke-dashoffset: 0; opacity: .95; }
.tech__graph-path--glow { opacity: .24; }
.tech__graph.is-pending .tech__graph-svg { clip-path: inset(0 100% 0 0); }
.tech__graph.is-drawing .tech__graph-svg { animation: tech-graph-draw 3s linear both; }
.tech--graph .tech__dot { z-index: 3; }
.tech--graph.is-graph-pending .tech__dot { opacity: 0; }
.tech--graph.is-graph-drawing .tech__dot { animation: tech-point-reveal .3s ease both; }
.tech--graph.is-graph-drawing .tech__dot--1 { animation-delay: .06s; }
.tech--graph.is-graph-drawing .tech__dot--2 { animation-delay: .36s; }
.tech--graph.is-graph-drawing .tech__dot--3 { animation-delay: 2.64s; }
.tech--graph.is-graph-drawing .tech__dot--4 { animation-delay: 2.94s; }
@keyframes tech-graph-draw {
  from { clip-path: inset(0 100% 0 0); }
  to { clip-path: inset(0); }
}
@keyframes tech-point-reveal {
  from { opacity: 0; }
  to { opacity: 1; }
}
@media (min-width: 992px) {
  .tech__graph { display: block; }
  .tech--graph .tech__form { min-height: 320px; padding-bottom: 230px; }
  .tech--graph .tech__dot { width: 35px; height: 35px; border-width: 8px; }
  .tech--graph .tech__dot--1 { left: calc(2% - 17.5px); right: auto; bottom: 20px; }
  .tech--graph .tech__dot--2 { left: calc(12% - 17.5px); right: auto; bottom: 84px; }
  .tech--graph .tech__dot--3 { left: auto; right: calc(12% - 17.5px); bottom: 177px; }
  .tech--graph .tech__dot--4 { left: auto; right: calc(2% - 17.5px); bottom: 240px; }
}
