body {
  font-family: "Work Sans", sans-serif;
  font-size: 21px;
  color: #121210;
  margin: 0;
  padding: 0;
  -webkit-font-smoothing: antialiased; }

h1 {
  font-family: "Epilogue", sans-serif;
  font-size: 60px;
  line-height: 57px;
  font-weight: 600; }

h2 {
  font-family: "Epilogue", sans-serif;
  font-size: 48px;
  color: #121210;
  margin-top: 40px;
  margin-bottom: 0;
  font-weight: 600; }

h3 {
  font-family: "Epilogue", sans-serif;
  font-size: 22px; }

h4 {
  font-size: 19px; }

p {
  font-family: "Work Sans", sans-serif;
  font-size: 18px;
  line-height: 1.66;
  color: #121210; }

a {
  text-decoration: none;
  color: inherit; }

.button {
  margin-top: 23px;
  width: 183px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  border: 1px solid #fff;
  height: 33px;
  font-size: 12px;
  text-transform: uppercase;
  transition: background 0.3s, color 0.3s; }
  .button:hover {
    background: #fff;
    color: #000; }

.links {
  font-size: 19px;
  font-weight: bold; }

@media screen and (max-width: 640px) {
  h1 {
    font-size: 36px; }
  h2 {
    font-size: 32px; } }

.header {
  width: 100%;
  position: relative; }
  .header__container {
    display: flex;
    align-items: center;
    max-width: 1480px;
    margin: 0 auto;
    width: 100%;
    justify-content: space-between;
    transition: height 0.3s;
    padding-block: 20px; }
  .header__logo {
    width: 190px;
    transition: width 0.3s;
    flex-shrink: 0; }
    @media screen and (max-width: 1080px) {
      .header__logo {
        margin-inline: auto; } }
    .header__logo img {
      width: 100%;
      display: block; }
  .header__menu {
    display: flex;
    align-items: center;
    transition: height 0.3s; }
  .header__menuitem {
    height: 100%;
    position: relative;
    align-items: flex-end;
    font-size: 18px;
    padding-inline: 2rem;
    font-weight: 600;
    color: #121210;
    display: flex; }
  .header__background {
    width: 100%;
    height: 600px; }
    .header__background:before {
      content: "";
      position: absolute;
      top: 157px;
      right: 0;
      bottom: 0;
      left: 0;
      max-width: 1141px;
      background: linear-gradient(to right, #032755, rgba(3, 39, 85, 0)); }
  .header__content {
    max-width: 1400px;
    width: 100%;
    position: relative;
    z-index: 10;
    margin: 0 auto;
    padding-top: 265px;
    color: #fff; }
    .header__content p {
      color: #fff;
      font-size: 36px;
      margin: 0; }
      .header__content p:last-of-type {
        font-size: 24px; }
    .header__content h1 {
      margin: 0; }
  .header__footermenu {
    margin-left: 40px;
    color: #747474; }
  .header__mobile, .header__mobilemenu, .header__mobilephone,
  .header .hamburger {
    display: none; }
  @media screen and (max-width: 1180px) {
    .header__content {
      margin: 0 20px; }
    .header__menu {
      width: unset;
      display: none;
      visibility: hidden; }
    .header__container {
      width: calc(100% - 40px);
      background: #fff;
      z-index: 25; } }
  @media screen and (max-width: 1030px) {
    .header__mobile, .header__mobilephone,
    .header .hamburger {
      display: block; }
    .header__mobilephone {
      margin-right: 45px; }
    .header__logo {
      display: inline-block;
      width: 200px; }
    .header__menu {
      height: 100%; }
    html.menu-opened .header__container {
      position: fixed; }
    html.menu-opened .header__mobilemenu {
      position: fixed;
      display: flex;
      flex-direction: column;
      top: 80px;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 25;
      background: #fff;
      justify-content: space-between; }
    html.menu-opened .header__mobilemenuitem {
      border-top: 1px solid rgba(20, 95, 184, 0.25);
      padding: 13px 0 13px 40px;
      margin-right: 40px; }
      html.menu-opened .header__mobilemenuitem a.products {
        align-items: start; }
    html.menu-opened .header__mobilemenuitem.active {
      border-left: 13px solid #4bafe8;
      padding-left: 27px; } }
  @media screen and (max-width: 450px) {
    .header__content {
      width: calc(100% - 40px); } }

/* ------------------------------------------------------------ *\
	Hero
\* ------------------------------------------------------------ */
@keyframes float-down {
  0% {
    transform: translateY(0);
    opacity: 0; }
  50% {
    transform: translateY(18px);
    opacity: 1; }
  100% {
    transform: translateY(25px);
    opacity: 0; } }

.hero {
  position: relative;
  transform: 0;
  min-height: 80vh;
  max-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #fff;
  text-align: center;
  transform: translateZ(0); }
  .hero .hero__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -5;
    pointer-events: none; }
    .hero .hero__bg:before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 200px;
      background: linear-gradient(#474747, rgba(71, 71, 71, 0));
      z-index: 5; }
    .hero .hero__bg:after {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(71, 71, 71, 0.3); }
  .hero .hero__bg video,
  .hero .hero__bg img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; }
  .hero .hero__content {
    padding-block: 200px; }
  .hero .hero__content strong {
    display: block;
    margin-bottom: 30px;
    font-size: 28px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700; }
    .hero .hero__content strong:last-child {
      margin-bottom: 0; }
  .hero .hero__content h1 {
    font-size: 140px;
    line-height: 0.87; }
    @media screen and (max-width: 1080px) {
      .hero .hero__content h1 {
        font-size: 48px;
        line-height: 1; } }
  .hero .hero__icon {
    appearance: none;
    background: transparent;
    box-shadow: none;
    position: absolute;
    bottom: 105px;
    left: 50%;
    transform: translateX(-50%);
    width: 44px;
    height: 75px;
    border: 2px solid #fff;
    border-radius: 999em; }
    @media screen and (max-width: 1080px) {
      .hero .hero__icon {
        width: 33px;
        height: 58px; } }
    .hero .hero__icon:after {
      position: absolute;
      bottom: 40px;
      left: calc(50% - 6px);
      width: 6px;
      height: 19px;
      content: "";
      background: #fff;
      border-radius: 15px;
      animation: float-down infinite 3s; }

.hamburger {
  transition: top .3s;
  position: absolute;
  top: 54.5px;
  right: 15px;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 5000;
  outline: none; }
  .hamburger .hamburger-inner, .hamburger .hamburger-inner::after, .hamburger .hamburger-inner::before {
    background: #fff; }
  html:not(.hasheaderimage) .hamburger .hamburger-inner, html:not(.hasheaderimage) .hamburger .hamburger-inner::after, html:not(.hasheaderimage) .hamburger .hamburger-inner::before {
    background: #4BAFE8; }
  @media screen and (max-width: 1030px) {
    .hamburger {
      top: 16px; } }

.container {
  width: 100%;
  margin-block: 40px;
  max-width: 1480px;
  margin-inline: auto; }
  @media screen and (max-width: 1080px) {
    .container {
      margin-block: 20px; } }
  .container__products {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #121210;
    padding-block: 4rem; }
    @media screen and (max-width: 1080px) {
      .container__products {
        padding-block: 0; } }
    .container__products--service {
      border-top: 1px solid #efefef;
      padding-top: 3rem; }
  .container__title {
    position: relative;
    width: 100%;
    margin-bottom: 62px; }
    @media screen and (max-width: 1080px) {
      .container__title {
        margin-bottom: 32px; } }
    .about-us .container__title {
      margin-bottom: 1rem; }
  .container__about_us {
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    flex-direction: column; }
  .container__contact {
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    flex-direction: column; }
  .container__content {
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column; }
  .container__map {
    width: 100%;
    margin-top: 110px; }
  .container .content {
    width: 1380px;
    margin: 0 auto; }

.products {
  display: flex;
  gap: 2rem;
  overflow: hidden;
  padding-inline: 20px; }
  @media screen and (max-width: 1080px) {
    .products {
      flex-direction: column; } }
  @media screen and (max-width: 450px) {
    .products {
      margin: 0; } }

.product {
  flex-shrink: 0;
  height: 100%;
  background: #f4f4ef;
  display: flex;
  flex-direction: column;
  align-items: flex-start; }
  @media screen and (max-width: 1080px) {
    .product {
      max-width: 100%; } }
  .product:hover {
    background: rgba(1, 162, 30, 0.08); }
  .product__inner {
    padding: 1rem 3.5rem; }
    @media screen and (max-width: 1080px) {
      .product__inner {
        padding: 1rem 1.5rem; } }
  .product__title {
    font-size: 28px;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    font-weight: 600; }
  .product__description {
    font-size: 18px;
    line-height: 1.66;
    margin-bottom: 2rem; }
  .product__image {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 60%; }
    .product__image img {
      width: 100%;
      object-fit: cover;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0; }
  .product__subtitle {
    position: absolute;
    display: flex;
    align-items: center;
    padding: 0 35px;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
    height: 70px;
    left: 0;
    right: 0;
    font-size: 20px; }
    .product__subtitle::after {
      content: "";
      background-image: url("../images/icon.svg");
      position: absolute;
      height: 17px;
      width: 9px;
      background-repeat: no-repeat;
      right: 35px;
      color: #fff; }

.about-us {
  background: #eff3fa;
  padding: 64px 0; }
  @media screen and (max-width: 1080px) {
    .about-us {
      padding: 32px 0; } }

.about_us {
  margin: auto;
  display: flex;
  flex-wrap: wrap; }
  @media screen and (max-width: 1080px) {
    .about_us {
      max-width: 100%; } }
  .about_us__full-width {
    max-width: 100%;
    padding-inline: 20px; }
  .about_us__one-half {
    max-width: calc(50% - 4rem);
    padding-inline: 20px; }
    @media screen and (max-width: 1080px) {
      .about_us__one-half {
        max-width: 100%; } }

/**
 * Projects
 */
* {
  box-sizing: border-box; }

.projects {
  display: flex;
  gap: 2rem;
  overflow: hidden;
  flex-wrap: wrap;
  max-width: calc(100% + 2rem);
  padding-bottom: 6rem; }
  @media screen and (max-width: 1080px) {
    .projects {
      flex-direction: column; } }
  @media screen and (max-width: 450px) {
    .projects {
      margin: 0; } }

.project {
  flex: 0 0 calc(33.333% - 1rem);
  /* Responsive 3-column layout */
  width: 100%;
  background: #f4f4ef;
  display: flex;
  flex-direction: column;
  align-items: flex-start; }
  @media screen and (max-width: 1080px) {
    .project {
      max-width: 100%; } }
  .project__inner {
    padding: 1rem 1.5rem; }
    @media screen and (max-width: 1080px) {
      .project__inner {
        padding: 1rem 1.5rem; } }
  .project__title {
    font-size: 24px;
    margin-block: 1rem;
    font-weight: 600; }
  .project__description {
    font-size: 18px;
    line-height: 1.66;
    margin-bottom: 2rem; }
  .project__image {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 60%; }
    .project__image img {
      width: 100%;
      object-fit: cover;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0; }

.contact {
  margin: auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4rem;
  padding-inline: 20px;
  overflow: hidden; }
  .contact__left {
    max-width: calc(66.66% - 2rem);
    font-size: 21px;
    line-height: 1.3;
    display: flex;
    gap: 6rem; }
    @media screen and (max-width: 1080px) {
      .contact__left {
        gap: 2rem;
        flex-direction: column;
        max-width: 100%; } }
  .contact__right {
    max-width: calc(33% - 2rem); }
    @media screen and (max-width: 1080px) {
      .contact__right {
        max-width: 100%; } }
  .contact__text-left {
    max-width: 50%; }
    @media screen and (max-width: 1080px) {
      .contact__text-left {
        max-width: 100%; } }
  .contact__right-right {
    max-width: 50%; }
    @media screen and (max-width: 1080px) {
      .contact__right-right {
        max-width: 100%; } }
  .contact__form {
    padding: 2rem 3.5rem;
    background: #f2f2ed;
    border-radius: 36px; }
    .contact__form input[type="text"],
    .contact__form input[type="email"] {
      width: 100%;
      height: 42px;
      margin: 0 0 20px 0;
      font-size: 1rem;
      background-color: #ffffff;
      border: none;
      border-radius: 36px;
      padding: 1rem;
      width: 100%; }
      .contact__form input[type="text"]::placeholder,
      .contact__form input[type="email"]::placeholder {
        font-family: "Work Sans", sans-serif;
        font-size: 1rem; }
    .contact__form textarea {
      font-size: 1rem;
      padding: 10px;
      margin-bottom: 34px;
      height: 195px;
      color: #818181;
      border: none;
      padding: 1rem;
      width: 100%;
      border-radius: 36px; }
      .contact__form textarea::placeholder {
        font-family: "Work Sans", sans-serif;
        font-size: 1rem; }
    .contact__form input[type="submit"] {
      color: #fff;
      background: #01a21e;
      display: flex;
      height: 42px;
      border: none;
      width: 151px;
      justify-content: center;
      align-items: center;
      border-radius: 36px;
      font-weight: bold;
      font-family: "Epilogue", sans-serif;
      cursor: pointer; }
  .contact__submit {
    display: flex;
    margin-bottom: 20px;
    justify-content: space-between; }
    .contact__submit .wpcf7-list-item-label {
      vertical-align: top;
      display: inline-block; }
    .contact__submit .your-avg {
      font-size: 12px !important; }
      .contact__submit .your-avg a {
        display: block;
        text-decoration: underline; }
  .contact .wpcf7-not-valid-tip {
    display: none; }
  @media screen and (max-width: 780px) {
    .contact {
      flex-direction: column;
      align-items: center; }
      .contact__text_right, .contact__text_left {
        max-width: 100%;
        width: 100%; }
      .contact__form {
        padding: 40px 20px;
        width: 100%;
        box-sizing: border-box; }
        .contact__form input[type="text"],
        .contact__form input[type="email"],
        .contact__form textarea {
          width: 100%; }
          .contact__form input[type="text"]::placeholder,
          .contact__form input[type="email"]::placeholder,
          .contact__form textarea::placeholder {
            font-family: "Work Sans", sans-serif; } }

#map {
  height: 587px;
  width: 100%; }

.footer {
  width: 100%;
  border-top: 1px solid #efefef; }
  .footer__container {
    display: flex;
    height: 157px;
    align-items: center;
    max-width: 1480px;
    margin: 0 auto;
    width: 100%;
    justify-content: space-between; }
    @media screen and (max-width: 1080px) {
      .footer__container {
        height: 120px;
        max-width: 100%;
        justify-content: center; } }
  .footer__logo {
    display: block;
    height: 47px;
    max-width: 200px; }
    @media screen and (max-width: 1080px) {
      .footer__logo {
        margin-inline: auto; } }
    .footer__logo img {
      width: 100%;
      display: block; }
  .footer__menu {
    display: none;
    visibility: hidden;
    width: 100%;
    display: flex;
    height: 100%;
    align-items: center; }
  .footer__menuitem {
    font-size: 17px;
    color: #7e7e7e;
    margin-right: 20px; }

html,
body {
  scroll-behavior: smooth; }

.wrapper {
  overflow: hidden; }

.owl-dots {
  position: absolute;
  z-index: 99;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%); }
  .owl-dots span {
    background: none repeat scroll 0 0 #869791;
    border-radius: 20px;
    display: block;
    height: 12px;
    margin: 5px 7px;
    opacity: 1;
    width: 12px; }

.owl-dots .owl-dot.active span {
  background: #05a12d; }

.item {
  position: relative; }

.flag {
  max-width: 52px;
  border-radius: 6px;
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  z-index: 11; }
