@import url("https://fonts.cdnfonts.com/css/circular-std");
@import url("https://fonts.cdnfonts.com/css/circe");
@import url("https://fonts.cdnfonts.com/css/avenir");
@import url("../futura-font/stylesheet.css");
/** VAR */
* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  font-family: "Avenir", Helvetica Neue, Helvetica, Arial, sans-serif;
  min-height: -webkit-fill-available;
  color: #252525;
  font-size: 62.5%;
}

body {
  background-color: #ffffff;
  font-size: 1.4rem;
}

ul {
  list-style: none outside none;
  padding: 0;
  margin: 0;
}

p {
  margin: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-family: "Avenir", Helvetica Neue, Helvetica, Arial, sans-serif;
  margin: 0;
}

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

.font-futura {
  font-family: "Futura PT", Helvetica Neue, Helvetica, Arial, sans-serif;
}

.title {
  font-size: 73px;
  letter-spacing: 0.25rem;
  margin-top: 47px;
  margin-bottom: 35px;
}
@media (min-width: 360px) and (max-width: 768px) {
  .title {
    font-size: 48px;
  }
}

.container {
  display: flex;
  max-width: 1240px;
  margin: 0 auto;
  position: relative;
}

.w-100 {
  width: 100%;
}

.w-75 {
  width: 75%;
}

.w-50 {
  width: 50%;
}

.w-25 {
  width: 25%;
}

figure {
  padding: 0;
  margin: 0;
}

.bg-dark {
  background-color: #232323;
}

.btn-tm {
  padding: 1.2rem 3.6rem;
  font-size: 1.8rem;
  color: #252525;
  border-color: #252525;
  border-radius: 2px;
  border-width: 2px;
  font-family: "Futura PT", Helvetica Neue, Helvetica, Arial, sans-serif;
  font-weight: 900;
}
.btn-tm:hover {
  border-color: #457B9D;
  background: transparent;
  background-color: #1D3557;
}
.btn-tm:hover a {
  color: #FFFFFF;
}

/** HEADER */
header {
  font-size: 1.6rem;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.03), 0 3px 6px rgba(0, 0, 0, 0.06);
  position: relative;
  z-index: 1;
}
header nav {
  display: flex;
  margin: 0 auto;
}
header nav .u-highlight:before {
  background-color: rgb(230, 58, 70);
}
header nav .u-highlight a {
  color: #FFFFFF;
}
header .navbar .navbar-toggler {
  font-size: 21px;
}
header .navbar .navbar-toggler, header .navbar .navbar-toggler:focus, header .navbar .navbar-toggler:active {
  border: none;
  box-shadow: none;
}
@media (min-width: 320px) and (max-width: 768px) {
  header .navbar-nav {
    padding: 0;
    margin: 0;
  }
  header .navbar-nav li {
    margin: 0;
    width: 100%;
    text-align: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid #dddddd;
  }
  header .navbar-nav li:first-child {
    padding-top: 2rem;
  }
}
header ul {
  margin-left: 4.5rem;
}
header ul li {
  margin: 0 1.5rem;
}
header img {
  width: 545px;
}
header .logo-header {
  width: 245px;
}
header .navbar-contact-btn span {
  font-size: 1.8rem;
}
header .navbar-contact-btn i {
  color: #42cd67;
}
@media (min-width: 320px) and (max-width: 768px) {
  header .navbar-contact-btn {
    display: flex;
    padding: 2rem 0;
  }
  header .navbar-contact-btn > span {
    margin: auto;
  }
}

.page-cover {
  height: 100%;
  background-color: #e7eef2;
  position: relative;
  max-height: 35rem;
}
.page-cover .page-cover-graphic {
  display: flex;
  position: absolute;
  bottom: 0;
}
.page-cover .page-cover-graphic svg {
  width: 70%;
  height: 70%;
  margin-left: auto;
  display: flex;
  position: relative;
  z-index: 0;
}
.page-cover .page-cover-text {
  position: relative;
  z-index: 1;
}
.page-cover .page-cover-text.logo {
  font-size: 44px;
}
.page-cover .page-cover-text.slogan {
  font-size: 104px;
}
@media (min-width: 320px) and (max-width: 768px) {
  .page-cover .page-cover-text.slogan {
    font-size: 62px;
    text-align: center;
  }
}
.page-cover .page-cover-text.quote {
  font-size: 24px;
}

.home-cover {
  height: 100%;
  background-color: #e7eef2;
  position: relative;
  max-height: 72rem;
}
.home-cover .home-cover-graphic {
  position: absolute;
  bottom: 0;
  display: flex;
}
.home-cover .home-cover-graphic svg {
  width: 70%;
  height: 70%;
  margin-left: auto;
  display: flex;
  position: relative;
  z-index: 0;
}
.home-cover .home-cover-text {
  position: relative;
  z-index: 1;
}
@media (min-width: 320px) and (max-width: 768px) {
  .home-cover .home-cover-text {
    margin-top: 3rem !important;
  }
}
.home-cover .home-cover-text.logo {
  font-size: 44px;
}
.home-cover .home-cover-text.slogan {
  font-size: 68px;
}
@media (min-width: 320px) and (max-width: 768px) {
  .home-cover .home-cover-text.slogan {
    font-size: 48px;
    text-align: center;
  }
}
.home-cover .home-cover-text.quote {
  font-size: 24px;
}

.home-intro {
  padding: 12rem 0;
}
.home-intro .home-intro-slogan {
  font-size: 38px;
  color: #457B9D;
}
.home-intro .home-intro-text {
  font-size: 18px;
}

.text-white {
  color: #FFFFFF;
}

.works-section {
  padding-top: 23rem;
}
.works-section .title-section {
  color: #252525;
  padding: 4rem 0 8rem 0;
}
.works-section .title-section.big {
  font-size: 6.4rem;
}

.title-section {
  font-size: 3.2rem;
}
.title-section.small {
  font-size: 2.8rem;
}
@media (min-width: 320px) and (max-width: 768px) {
  .title-section.small {
    font-size: 2.1rem;
    text-align: center;
    width: 100%;
  }
}
.title-section.big {
  font-size: 6.4rem;
}
@media (min-width: 320px) and (max-width: 768px) {
  .title-section.big {
    font-size: 48px;
    text-align: center;
  }
}

.services {
  background: #232323;
  position: relative;
  padding-top: 9rem;
}
@media (min-width: 360px) and (max-width: 768px) {
  .services .services-container {
    padding-bottom: 120px !important;
  }
}
.services:after {
  content: "";
  width: 0;
  height: 0;
  left: 0;
  bottom: -120px;
  position: absolute;
  border-style: solid;
  border-width: 145px 0 145px 147.2px;
  border-color: transparent transparent transparent #E63946;
}
.services:before {
  content: "";
  width: 0;
  height: 0;
  right: 0;
  position: absolute;
  border-style: solid;
  border-width: 145px 147.2px 145px 0;
  border-color: transparent #1d3557 transparent transparent;
}
.services.active:before {
  animation: slide-in-blurred-right 0.6s cubic-bezier(0.23, 1, 0.32, 1) both;
  animation-delay: 0.15s;
}
.services.active:after {
  animation: slide-in-blurred-left 0.6s cubic-bezier(0.23, 1, 0.32, 1) both;
  animation-delay: 0.3s;
}
.services .services-list li {
  color: #FFFFFF;
}
.services .services-list li h5 {
  font-size: 24px;
}
.services .services-list li i {
  font-size: 7.2rem;
  color: #E63946;
}

.section-separator {
  position: absolute;
  width: 100%;
}
.section-separator svg {
  margin-top: -1px;
  width: 100%;
  fill: #232323;
  height: 120px;
  transform: translateX(0) rotateY(180deg);
}
.section-separator.reverted {
  margin-top: -168px;
}
.section-separator.reverted svg {
  transform: rotateX(180deg) rotateY(180deg);
}

.about-us-info {
  padding-top: 11.5rem;
}
@media (min-width: 320px) and (max-width: 768px) {
  .about-us-info {
    padding-top: 0;
  }
}
.about-us-info .info-block {
  margin: 7rem 0;
}
@media (min-width: 320px) and (max-width: 768px) {
  .about-us-info .info-block {
    padding: 0 1.5rem;
    margin: 2.25rem 0;
  }
}
.about-us-info .info-block h5 {
  font-size: 2.4rem;
}
@media (min-width: 320px) and (max-width: 768px) {
  .about-us-info .info-block h5 {
    font-size: 3.4rem;
    margin-bottom: 3rem;
  }
}
.about-us-info .info-block p, .about-us-info .info-block ul li {
  font-size: 1.6rem;
}

.section-steps {
  padding-top: 23rem;
}
@media (min-width: 320px) and (max-width: 768px) {
  .section-steps {
    padding-top: 11rem;
  }
}
.section-steps .sections-steps-desc {
  margin-top: 1.75rem;
  margin-bottom: 3.25rem;
}
@media (min-width: 575px) and (max-width: 768px) {
  .section-steps .steps-list li {
    border-width: 0;
  }
  .section-steps .steps-list li:first-child, .section-steps .steps-list li:nth-child(3) {
    border-width: 0 1px 0 0;
  }
}
@media (min-width: 360px) and (max-width: 575px) {
  .section-steps .steps-list li {
    border-width: 0 !important;
    margin-top: 5rem;
    width: 100%;
  }
}
.section-steps ul li {
  padding: 0 3rem;
  border: 1px solid #c9c9c9;
  border-width: 0 1px 0 0;
  position: relative;
}
.section-steps ul li:first-child {
  border-width: 0 1px 0 1px;
}
.section-steps ul li:before {
  content: "";
  font-size: 192px;
  position: absolute;
  opacity: 0.11;
  right: 0;
  color: #E63946;
  top: -50px;
  font-family: "Futura PT", Helvetica Neue, Helvetica, Arial, sans-serif;
  font-weight: lighter;
}
.section-steps ul li:first-child:before {
  content: "01";
}
.section-steps ul li:nth-child(2):before {
  content: "02";
}
.section-steps ul li:nth-child(3):before {
  content: "03";
}
.section-steps ul li:last-child:before {
  content: "04";
}
.section-steps ul li i {
  font-size: 46px;
  color: #457B9D;
}
.section-steps .step-title {
  font-size: 2.4rem;
  margin: 0.75rem 0 1.25rem 0;
}

.work-card {
  margin-bottom: 12rem;
}
.work-card .work-info span {
  font-size: 2.8rem;
  font-weight: bold;
}
.work-card .work-info h4 {
  font-size: 4.8rem;
  font-weight: bold;
}
.work-card .work-info p {
  font-size: 1.6rem;
}
.work-card .work-image figure {
  padding: 2.25rem;
}
.work-card .work-image img {
  width: 100%;
}

.has-shadow {
  position: relative;
}
.has-shadow:before {
  content: "";
  display: block;
  position: absolute;
  bottom: -20px;
  right: -20px;
  width: 50%;
  height: 50%;
  z-index: -1;
  border-radius: 0.5rem;
  background: repeating-linear-gradient(45deg, transparent 0 0.5%, #42cd67 0 1%, transparent 0 2%);
}
.has-shadow.top:before {
  content: "";
  display: block;
  position: absolute;
  top: -20px;
  left: -20px;
  width: 50%;
  height: 50%;
  z-index: -1;
  border-radius: 0.5rem;
  background: repeating-linear-gradient(45deg, transparent 0 0.5%, #42cd67 0 1%, transparent 0 2%);
}

.contact-section {
  padding-top: 3.75rem;
}

.input-tm {
  padding: 1.75rem;
}

footer {
  background-color: #101010;
  padding: 5rem 0 0;
  margin-top: 14rem;
  color: #FFFFFF;
  font-size: 1.6rem;
}
footer .section-separator.reverted {
  margin-top: -138px;
}
footer .section-separator.reverted svg {
  fill: #101010;
  transform: rotateX(240deg) rotateY(180deg) !important;
}
footer h5 {
  font-size: 2.1rem;
  margin: 1.5rem 0;
}
footer .logo {
  width: 100%;
  max-width: 420px;
}
footer .copyright {
  border-top: 1px solid #494949;
  margin-top: 7rem;
}
@media (min-width: 320px) and (max-width: 768px) {
  footer .footer-contact {
    width: 100%;
    margin-top: 3rem;
    text-align: center;
  }
}

.work-stack {
  margin-top: 5.75rem;
}
.work-stack img {
  vertical-align: middle;
  height: 45px;
  margin-right: 3.25rem;
}

.contact-form {
  position: relative;
}

@media (min-width: 320px) and (max-width: 768px) {
  .container-contact-form {
    flex-wrap: wrap !important;
  }
  .container-contact-form .order-1 {
    order: 2 !important;
  }
  .container-contact-form .order-2 {
    order: 1 !important;
  }
}

.form-submit-message {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  text-align: center;
  display: none;
  z-index: 99;
}
.form-submit-message.show {
  display: flex;
}
.form-submit-message .form-submit-message-text {
  margin: auto auto;
  width: 89%;
  background: #58B09C;
  padding: 10px 60px;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1), 0 3px 6px rgba(0, 0, 0, 0.21);
}
.form-submit-message .form-submit-message-text h3 {
  color: #FFFFFF;
  font-size: 24px;
}
.form-submit-message .form-submit-message-text i {
  color: #FFFFFF;
  font-size: 122px;
}

/* Contact */
.contact-info {
  font-size: 1.8rem;
}
.contact-info p {
  margin-bottom: 2.25rem;
}
.contact-info .title {
  font-size: 68px;
}
@media (min-width: 320px) and (max-width: 768px) {
  .contact-info .title {
    font-size: 48px;
    margin-top: 1rem;
  }
}

.calendly {
  text-align: center;
  display: flex;
  flex-direction: column;
}
.calendly .calendly-copy-title {
  font-size: 2.4rem;
  margin-top: 6rem;
}
.calendly .calendly-copy-text {
  font-size: 1.8rem;
  margin: 0 auto -3.5rem;
}

.contact-form-block {
  margin-top: 12rem;
}
@media (min-width: 320px) and (max-width: 768px) {
  .contact-form-block {
    margin-top: 3rem;
    width: 100% !important;
  }
}

.contact-list {
  display: flex;
  flex-direction: column;
}
.contact-list li {
  display: flex;
  margin: 1.25rem 0;
  font-size: 1.8rem;
}
@media (min-width: 320px) and (max-width: 768px) {
  .contact-list li {
    margin: 1.25rem auto;
  }
}
.contact-list li a {
  border: 1px solid #232323;
  border-radius: 3px;
  padding: 1.25rem;
  min-width: 23rem;
}
.contact-list li img {
  margin-right: 0.75rem;
}

.marker-highlight {
  position: relative;
}

.marker-highlight:before {
  content: "";
  background-color: #E63946;
  width: 100%;
  height: 1em;
  position: absolute;
  z-index: -1;
  filter: url(#marker-shape);
  left: -0.25em;
  top: 0.1em;
  padding: 0 0.25em;
}

.u-highlight {
  position: relative;
  z-index: 1;
}
.u-highlight:before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0px;
  bottom: 0px;
  right: 0px;
  z-index: -1;
  background-color: rgb(231, 255, 173);
  transform: skewX(10deg) skewY(-1deg);
  border-radius: 12px;
}

.slide-right {
  animation: slide-right 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.slide-in-blurred-left {
  animation: slide-in-blurred-left 0.6s cubic-bezier(0.23, 1, 0.32, 1) both;
}

.slide-in-blurred-right {
  animation: slide-in-blurred-right 0.6s cubic-bezier(0.23, 1, 0.32, 1) both;
}

/**
 * ----------------------------------------
 * animation slide-right
 * ----------------------------------------
 */
@keyframes slide-right {
  0% {
    transform: translateX(-100px);
  }
  100% {
    transform: translateX(0);
  }
}
/**
* ----------------------------------------
* animation slide-in-blurred-left
* ----------------------------------------
*/
@keyframes slide-in-blurred-left {
  0% {
    transform: translateX(-1000px) scaleX(2.5) scaleY(0.2);
    transform-origin: 100% 50%;
    filter: blur(40px);
    opacity: 0;
  }
  100% {
    transform: translateX(0) scaleY(1) scaleX(1);
    transform-origin: 50% 50%;
    filter: blur(0);
    opacity: 1;
  }
}
/**
* ----------------------------------------
* animation slide-in-blurred-right
* ----------------------------------------
*/
@keyframes slide-in-blurred-right {
  0% {
    transform: translateX(1000px) scaleX(2.5) scaleY(0.2);
    transform-origin: 0% 50%;
    filter: blur(40px);
    opacity: 0;
  }
  100% {
    transform: translateX(0) scaleY(1) scaleX(1);
    transform-origin: 50% 50%;
    filter: blur(0);
    opacity: 1;
  }
}/*# sourceMappingURL=style.css.map */