@font-face {
  font-family: "Eudoxus Sans";
  src: url("../fonts/eudoxus-sans-regular.woff2") format("woff2"), url("../fonts/eudoxus-sans-regular.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Eudoxus Sans";
  src: url("../fonts/eudoxus-sans-medium.woff2") format("woff2"), url("../fonts/eudoxus-sans-medium.woff") format("woff");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Eudoxus Sans";
  src: url("../fonts/eudoxus-sans-bold.woff2") format("woff2"), url("../fonts/eudoxus-sans-bold.woff") format("woff");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "icons";
  src: url("../fonts/icons.woff2") format("woff2"), url("../fonts/icons.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
[class*=_icon-]::before {
  display: inline-block;
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

*,
*::before,
*::after {
  padding: 0;
  margin: 0;
  border: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

*::before,
*::after {
  display: inline-block;
}

a {
  text-decoration: none;
  color: inherit;
  display: inline-block;
}

li {
  list-style: none;
}

img {
  vertical-align: top;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: inherit;
  font-size: inherit;
}

html,
body {
  line-height: 1;
  height: 100%;
}

/* FORM */
input,
button,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
  background-color: transparent;
}

input,
textarea {
  width: 100%;
}

button,
select,
option {
  cursor: pointer;
}

input[type=text],
input[type=email],
input[type=tel],
textarea {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.hero {
  padding-bottom: 3.125rem;
}
.hero__image {
  max-width: 100%;
}
@media (min-width: 79.375em) {
  .hero__image {
    height: 34.375rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (height: clamp( 12.5rem , 5.1315789474rem  +  36.8421052632vw , 34.375rem )) {
    .hero__image {
      height: clamp( 12.5rem , 5.1315789474rem  +  36.8421052632vw , 34.375rem );
    }
  }
  @supports not (height: clamp( 12.5rem , 5.1315789474rem  +  36.8421052632vw , 34.375rem )) {
    .hero__image {
      height: calc(12.5rem + 21.875 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .hero__image {
    height: 12.5rem;
  }
}
.hero__image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@media (min-width: 79.375em) {
  .service {
    padding-bottom: 5.625rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (padding-bottom: clamp( 3.125rem , 2.2828947368rem  +  4.2105263158vw , 5.625rem )) {
    .service {
      padding-bottom: clamp( 3.125rem , 2.2828947368rem  +  4.2105263158vw , 5.625rem );
    }
  }
  @supports not (padding-bottom: clamp( 3.125rem , 2.2828947368rem  +  4.2105263158vw , 5.625rem )) {
    .service {
      padding-bottom: calc(3.125rem + 2.5 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .service {
    padding-bottom: 3.125rem;
  }
}
.service__container {
  border-top: 0.125rem solid #f3f3f3;
  padding-top: 3.125rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
@media (min-width: 79.375em) {
  .service__container {
    -webkit-column-gap: 3.625rem;
       -moz-column-gap: 3.625rem;
            column-gap: 3.625rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports ((-moz-column-gap: clamp( 1.875rem , 1.2855263158rem  +  2.9473684211vw , 3.625rem )) or (column-gap: clamp( 1.875rem , 1.2855263158rem  +  2.9473684211vw , 3.625rem ))) {
    .service__container {
      -webkit-column-gap: clamp( 1.875rem , 1.2855263158rem  +  2.9473684211vw , 3.625rem );
         -moz-column-gap: clamp( 1.875rem , 1.2855263158rem  +  2.9473684211vw , 3.625rem );
              column-gap: clamp( 1.875rem , 1.2855263158rem  +  2.9473684211vw , 3.625rem );
    }
  }
  @supports not ((-moz-column-gap: clamp( 1.875rem , 1.2855263158rem  +  2.9473684211vw , 3.625rem )) or (column-gap: clamp( 1.875rem , 1.2855263158rem  +  2.9473684211vw , 3.625rem ))) {
    .service__container {
      -webkit-column-gap: calc(1.875rem + 1.75 * (100vw - 20rem) / 59.375);
         -moz-column-gap: calc(1.875rem + 1.75 * (100vw - 20rem) / 59.375);
              column-gap: calc(1.875rem + 1.75 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .service__container {
    -webkit-column-gap: 1.875rem;
       -moz-column-gap: 1.875rem;
            column-gap: 1.875rem;
  }
}
@media (min-width: 79.375em) {
  .service__container {
    row-gap: 1.875rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (row-gap: clamp( 1.25rem , 1.0394736842rem  +  1.0526315789vw , 1.875rem )) {
    .service__container {
      row-gap: clamp( 1.25rem , 1.0394736842rem  +  1.0526315789vw , 1.875rem );
    }
  }
  @supports not (row-gap: clamp( 1.25rem , 1.0394736842rem  +  1.0526315789vw , 1.875rem )) {
    .service__container {
      row-gap: calc(1.25rem + 0.625 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .service__container {
    row-gap: 1.25rem;
  }
}
@media (max-width: 45.3125em) {
  .service__container {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 32.5em) {
  .service__container {
    grid-template-columns: 1fr;
  }
}
.service__item {
  opacity: 0;
  -webkit-transform: translateY(20px);
      -ms-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.service__item.visible {
  opacity: 1;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}

.item-service__number {
  color: #518581;
  font-weight: 700;
  line-height: 130%;
}
@media (min-width: 79.375em) {
  .item-service__number {
    font-size: 4rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (font-size: clamp( 2rem , 1.3263157895rem  +  3.3684210526vw , 4rem )) {
    .item-service__number {
      font-size: clamp( 2rem , 1.3263157895rem  +  3.3684210526vw , 4rem );
    }
  }
  @supports not (font-size: clamp( 2rem , 1.3263157895rem  +  3.3684210526vw , 4rem )) {
    .item-service__number {
      font-size: calc(2rem + 2 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .item-service__number {
    font-size: 2rem;
  }
}
@media (min-width: 79.375em) {
  .item-service__number:not(:last-child) {
    margin-bottom: 1.625rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (margin-bottom: clamp( 1.25rem , 1.1236842105rem  +  0.6315789474vw , 1.625rem )) {
    .item-service__number:not(:last-child) {
      margin-bottom: clamp( 1.25rem , 1.1236842105rem  +  0.6315789474vw , 1.625rem );
    }
  }
  @supports not (margin-bottom: clamp( 1.25rem , 1.1236842105rem  +  0.6315789474vw , 1.625rem )) {
    .item-service__number:not(:last-child) {
      margin-bottom: calc(1.25rem + 0.375 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .item-service__number:not(:last-child) {
    margin-bottom: 1.25rem;
  }
}
.item-service__title {
  font-weight: 700;
  line-height: 130%;
}
@media (min-width: 79.375em) {
  .item-service__title {
    font-size: 1.5rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (font-size: clamp( 0.875rem , 0.6644736842rem  +  1.0526315789vw , 1.5rem )) {
    .item-service__title {
      font-size: clamp( 0.875rem , 0.6644736842rem  +  1.0526315789vw , 1.5rem );
    }
  }
  @supports not (font-size: clamp( 0.875rem , 0.6644736842rem  +  1.0526315789vw , 1.5rem )) {
    .item-service__title {
      font-size: calc(0.875rem + 0.625 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .item-service__title {
    font-size: 0.875rem;
  }
}
.item-service__title:not(:last-child) {
  margin-bottom: 0.375rem;
}
.portfolio__top-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (min-width: 79.375em) {
  .portfolio__top-wrap:not(:last-child) {
    margin-bottom: 3.3125rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (margin-bottom: clamp( 2.6875rem , 2.4769736842rem  +  1.0526315789vw , 3.3125rem )) {
    .portfolio__top-wrap:not(:last-child) {
      margin-bottom: clamp( 2.6875rem , 2.4769736842rem  +  1.0526315789vw , 3.3125rem );
    }
  }
  @supports not (margin-bottom: clamp( 2.6875rem , 2.4769736842rem  +  1.0526315789vw , 3.3125rem )) {
    .portfolio__top-wrap:not(:last-child) {
      margin-bottom: calc(2.6875rem + 0.625 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .portfolio__top-wrap:not(:last-child) {
    margin-bottom: 2.6875rem;
  }
}
@media (max-width: 56.25em) {
  .portfolio__top-wrap {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: baseline;
        -ms-flex-align: baseline;
            align-items: baseline;
  }
}
.portfolio__left {
  max-width: 30.625rem;
}
.portfolio__right {
  max-width: 33.125rem;
  opacity: 0;
  -webkit-transform: translateX(20px);
      -ms-transform: translateX(20px);
          transform: translateX(20px);
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}
.portfolio__right.visible {
  opacity: 1;
  -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
          transform: translateX(0);
}
.portfolio__text {
  margin-bottom: 1.25rem;
}
@media (min-width: 79.375em) {
  .portfolio__label:not(:last-child) {
    margin-bottom: 0.625rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (margin-bottom: clamp( 0.5rem , 0.4578947368rem  +  0.2105263158vw , 0.625rem )) {
    .portfolio__label:not(:last-child) {
      margin-bottom: clamp( 0.5rem , 0.4578947368rem  +  0.2105263158vw , 0.625rem );
    }
  }
  @supports not (margin-bottom: clamp( 0.5rem , 0.4578947368rem  +  0.2105263158vw , 0.625rem )) {
    .portfolio__label:not(:last-child) {
      margin-bottom: calc(0.5rem + 0.125 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .portfolio__label:not(:last-child) {
    margin-bottom: 0.5rem;
  }
}
.portfolio__link {
  color: #518581;
  font-weight: 700;
  line-height: 130%;
}
@media (min-width: 79.375em) {
  .portfolio__link {
    font-size: 1.125rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (font-size: clamp( 0.75rem , 0.6236842105rem  +  0.6315789474vw , 1.125rem )) {
    .portfolio__link {
      font-size: clamp( 0.75rem , 0.6236842105rem  +  0.6315789474vw , 1.125rem );
    }
  }
  @supports not (font-size: clamp( 0.75rem , 0.6236842105rem  +  0.6315789474vw , 1.125rem )) {
    .portfolio__link {
      font-size: calc(0.75rem + 0.375 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .portfolio__link {
    font-size: 0.75rem;
  }
}
@media (any-hover: hover) {
  .portfolio__link:hover {
    text-decoration: underline;
  }
}
.portfolio__bottom-wrap {
  display: grid;
  grid-template-columns: 1.5fr 2fr;
  grid-template-rows: repeat(2, 1fr);
  grid-auto-rows: minmax(200px, auto);
}
@media (min-width: 79.375em) {
  .portfolio__bottom-wrap {
    gap: 1.875rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (gap: clamp( 1.25rem , 1.0394736842rem  +  1.0526315789vw , 1.875rem )) {
    .portfolio__bottom-wrap {
      gap: clamp( 1.25rem , 1.0394736842rem  +  1.0526315789vw , 1.875rem );
    }
  }
  @supports not (gap: clamp( 1.25rem , 1.0394736842rem  +  1.0526315789vw , 1.875rem )) {
    .portfolio__bottom-wrap {
      gap: calc(1.25rem + 0.625 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .portfolio__bottom-wrap {
    gap: 1.25rem;
  }
}
@media (max-width: 48.75em) {
  .portfolio__bottom-wrap {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
}
.portfolio__item {
  opacity: 0;
  -webkit-transform: translateY(20px);
      -ms-transform: translateY(20px);
          transform: translateY(20px);
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}
.portfolio__item.visible {
  opacity: 1;
  -webkit-transform: translateY(0);
      -ms-transform: translateY(0);
          transform: translateY(0);
}

.item-portfolio {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  min-height: 18.75rem;
  position: relative;
}
@media (min-width: 79.375em) {
  .item-portfolio {
    padding: 1.875rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (padding: clamp( 1.25rem , 1.0394736842rem  +  1.0526315789vw , 1.875rem )) {
    .item-portfolio {
      padding: clamp( 1.25rem , 1.0394736842rem  +  1.0526315789vw , 1.875rem );
    }
  }
  @supports not (padding: clamp( 1.25rem , 1.0394736842rem  +  1.0526315789vw , 1.875rem )) {
    .item-portfolio {
      padding: calc(1.25rem + 0.625 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .item-portfolio {
    padding: 1.25rem;
  }
}
.item-portfolio::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.1725490196);
  visibility: hidden;
  opacity: 0;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  pointer-events: none;
  z-index: 2;
}
@media (any-hover: hover) {
  .item-portfolio:hover::after {
    visibility: visible;
    opacity: 1;
  }
}
@media (max-width: 48.75em) {
  .item-portfolio {
    min-height: 25.5625rem;
  }
}
@media (max-width: 23.375em) {
  .item-portfolio {
    min-height: 18.75rem;
  }
}
.item-portfolio:nth-child(1) {
  grid-row: 1/3;
}
@media (max-width: 48.75em) {
  .item-portfolio:nth-child(1) {
    grid-row: auto;
  }
}
.item-portfolio:nth-child(2) {
  grid-row: 1/2;
}
@media (max-width: 48.75em) {
  .item-portfolio:nth-child(2) {
    grid-row: auto;
  }
}
.item-portfolio:nth-child(3) {
  grid-row: 2/3;
}
@media (max-width: 48.75em) {
  .item-portfolio:nth-child(3) {
    grid-row: auto;
  }
}
.item-portfolio__bg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  -o-object-fit: cover;
     object-fit: cover;
  width: 100%;
  height: 100%;
}
.item-portfolio__title {
  color: #fff;
  font-weight: 700;
  line-height: 130%;
  letter-spacing: 0.26px;
}
@media (min-width: 79.375em) {
  .item-portfolio__title {
    font-size: 1.625rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (font-size: clamp( 0.875rem , 0.6223684211rem  +  1.2631578947vw , 1.625rem )) {
    .item-portfolio__title {
      font-size: clamp( 0.875rem , 0.6223684211rem  +  1.2631578947vw , 1.625rem );
    }
  }
  @supports not (font-size: clamp( 0.875rem , 0.6223684211rem  +  1.2631578947vw , 1.625rem )) {
    .item-portfolio__title {
      font-size: calc(0.875rem + 0.75 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .item-portfolio__title {
    font-size: 0.875rem;
  }
}
.item-portfolio__text {
  overflow: hidden;
  color: #fff;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
  line-height: 180%;
}
@media (min-width: 79.375em) {
  .item-portfolio__text {
    max-width: 27.5rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (max-width: clamp( 15rem , 10.7894736842rem  +  21.0526315789vw , 27.5rem )) {
    .item-portfolio__text {
      max-width: clamp( 15rem , 10.7894736842rem  +  21.0526315789vw , 27.5rem );
    }
  }
  @supports not (max-width: clamp( 15rem , 10.7894736842rem  +  21.0526315789vw , 27.5rem )) {
    .item-portfolio__text {
      max-width: calc(15rem + 12.5 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .item-portfolio__text {
    max-width: 15rem;
  }
}
@media (min-width: 79.375em) {
  .item-portfolio__text {
    font-size: 1.125rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (font-size: clamp( 0.75rem , 0.6236842105rem  +  0.6315789474vw , 1.125rem )) {
    .item-portfolio__text {
      font-size: clamp( 0.75rem , 0.6236842105rem  +  0.6315789474vw , 1.125rem );
    }
  }
  @supports not (font-size: clamp( 0.75rem , 0.6236842105rem  +  0.6315789474vw , 1.125rem )) {
    .item-portfolio__text {
      font-size: calc(0.75rem + 0.375 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .item-portfolio__text {
    font-size: 0.75rem;
  }
}
.item-portfolio__link {
  color: var(--Screen-Color, #fff);
  font-weight: 500;
  line-height: 180%;
}
@media (min-width: 79.375em) {
  .item-portfolio__link {
    font-size: 1.125rem;
  }
}
@media (min-width: 20em) and (max-width: 79.375em) {
  @supports (font-size: clamp( 0.75rem , 0.6236842105rem  +  0.6315789474vw , 1.125rem )) {
    .item-portfolio__link {
      font-size: clamp( 0.75rem , 0.6236842105rem  +  0.6315789474vw , 1.125rem );
    }
  }
  @supports not (font-size: clamp( 0.75rem , 0.6236842105rem  +  0.6315789474vw , 1.125rem )) {
    .item-portfolio__link {
      font-size: calc(0.75rem + 0.375 * (100vw - 20rem) / 59.375);
    }
  }
}
@media (max-width: 20em) {
  .item-portfolio__link {
    font-size: 0.75rem;
  }
}
@media (any-hover: hover) {
  .item-portfolio__link:hover {
    text-decoration: underline;
  }
}