:root {
  --wocus-blue: #2e58a6;
  --wocus-white: #e2e6ed;
  --wocus-grey: #6e7177;
}

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

html {
  background: #000;
  scroll-behavior: smooth;
  /* font-size: 1px; */
  font-size: 0.75px;
}

@media (max-width: 1400px) {
  html {
    font-size: 0.75px;
  }
}

@media (max-width: 880px) {
  html {
    font-size: 0.5px;
  }
}

body {
  font-family: 'Roboto', sans-serif;
  line-height: 1.2;
  color: #fff;
}

img {
  display: block;
}

* {
  font-family: 'Roboto', sans-serif;
}

input:focus,
textarea:focus {
  outline: 0;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
}

h2 {
  font-size: 44rem;
  font-weight: 300;
}

section {
  width: 100%;
}

.wrapper {
  margin: 0 auto;
  max-width: 1680rem;
  width: calc(100% - 100rem);
}

header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 112rem;
  background: #000;
  padding: 0 45rem;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 10;
}

header .logo {
  width: 250rem;
}

header .mobile-nav-button {
  display: none;
  position: relative;
  width: 74rem;
  height: 74rem;
  cursor: pointer;
}

header .mobile-nav-button::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 100%;
  height: 10rem;
  border-radius: 99999rem;
  background: var(--wocus-blue);
  box-shadow:
    0 -26rem 0 0 var(--wocus-blue),
    0 26rem 0 0 var(--wocus-blue);
  transition:
    box-shadow 0.25s ease 0.25s,
    transform 0.25s ease;
}

.mobile-nav-active header .mobile-nav-button::before {
  box-shadow:
    0 0 0 0 rgba(46, 88, 166, 0),
    0 0 0 0 rgba(46, 88, 166, 0);
  transform: rotate(45deg);
  transition:
    box-shadow 0.25s ease,
    transform 0.25s ease 0.25s;
}

header .mobile-nav-button::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  width: 100%;
  height: 10rem;
  border-radius: 99999rem;
  background: var(--wocus-blue);
  opacity: 0;
  transition:
    opacity 0.25s ease 0.25s,
    transform 0.25s ease;
}

.mobile-nav-active header .mobile-nav-button::after {
  opacity: 1;
  transform: rotate(-45deg);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease 0.25s;
}

@media (max-width: 640px) {
  header .mobile-nav-button {
    display: block;
  }
}

@media (max-width: 640px) {
  header nav {
    position: fixed;
    top: 112rem;
    background: #000;
    left: 0;
    width: 100%;
    height: 0;
    overflow: auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition:
      height 0.5s ease 0.5s;
  }

  .mobile-nav-active header nav {
    height: calc(100% - 112rem);
    transition:
      height 0.5s ease;
  }

  .scroll-mobile-menu header nav {
    display: block;
  }
}

header nav ul {
  list-style: none;
  display: flex;
}

@media (max-width: 640px) {
  header nav ul {
    flex-direction: column;
    margin: 90rem 0;
    opacity: 0;
    visibility: hidden;
    transition:
      opacity 0.5s ease,
      visibility 0s ease 1s;
  }

  .mobile-nav-active header nav ul {
    opacity: 1;
    visibility: visible;
    transition:
      opacity 0.5s ease 0.5s,
      visibility 0s ease;
  }
}

header nav li {
  font-size: 23rem;
  line-height: 40rem;
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: color 0.25s ease;
}

@media (max-width: 640px) {
  header nav li {
    font-size: 32rem;
    line-height: 56rem;
    flex-direction: column;
  }
}

header nav li:hover,
header nav li.active {
  color: var(--wocus-blue);
}

header nav li:not(:last-child) {
  margin-right: 32rem;
}

@media (max-width: 640px) {
  header nav li:not(:last-child) {
    margin-right: 0;
    margin-bottom: 45rem;
  }
}

header nav li:not(:last-child)::after {
  content: '';
  width: 2rem;
  height: 20rem;
  background: var(--wocus-blue);
  margin-left: 32rem;
  pointer-events: none;
}

@media (max-width: 640px) {
  header nav li:not(:last-child)::after {
    width: 60rem;
    height: 2rem;
    margin-left: 0;
    margin-top: 45rem;
  }
}

section .anchor {
  height: 0;
  display: block;
  position: relative;
  top: -178rem;
}

section.hero {
  width: 100%;
  height: calc(100vh - 112rem);
  min-height: 500rem;
  margin-top: 112rem;
  position: relative;
}

section.hero .background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

section.hero h1 {
  position: absolute;
  top: 80rem;
  right: 0;
  font-size: 44rem;
  font-weight: 300;
  color: #fff;
  background: var(--wocus-blue);
  padding: 20rem 115rem 30rem 40rem;
  max-width: 400rem;
}

section.text-image {
  background: var(--wocus-white);
  padding: 66rem 0 106rem;
}

section.text-image h2 {
  text-align: center;
  color: var(--wocus-blue);
  margin-bottom: 41rem;
}

@media (max-width: 640px) {
  section.text-image h2 {
    margin-bottom: 110rem;
  }
}

section.text-image .content {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media (max-width: 640px) {
  section.text-image .content {
    flex-direction: column;
  }
}

section.text-image .content > :first-child {
  margin-right: 40rem;
}

@media (max-width: 640px) {
  section.text-image .content > :first-child {
    margin-right: 0;
    margin-bottom: 80rem;
  }
}

section.text-image .text {
  width: 100%;
  max-width: 690rem;
}

section.text-image .text .logo {
  margin: 0 auto;
  width: 100%;
  max-width: 304rem;
  margin-bottom: 46rem;
}

section.text-image .text p {
  font-size: 31rem;
  font-weight: 300;
  color: var(--wocus-blue);
  text-align: justify;
  margin-bottom: calc(1em * 1.2);
}

section.text-image .text p:last-child {
  margin-bottom: 0;
}

section.text-image .circle {
  width: 100%;
  max-width: 663rem;
  border-radius: 99999rem;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}

section.text-image .circle::after {
  content: '';
  padding-bottom: 100%;
  display: block;
}

section.desarrollo {
  background: var(--wocus-blue);
}

@media (max-width: 640px) {
  section.desarrollo .content {
    flex-direction: column-reverse;
  }

  section.desarrollo .content > :first-child {
    margin-bottom: 0;
  }

  section.desarrollo .text {
    margin-bottom: 80rem;
  }
}

section.desarrollo h2,
section.desarrollo .text p {
  color: #fff;
}

section.proyectos {
  background: var(--wocus-grey);
  padding: 66rem 0 106rem;
}

section.proyectos .wrapper {
  position: relative;
}

section.proyectos h2 {
  text-align: center;
  /* margin-bottom: 41rem; */
  margin-bottom: 74rem;
  color: #fff;
}

section.proyectos .swiper .image {
  width: 400rem;
  background-color: #fff;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  border-radius: 99999rem;
  border: 13rem solid var(--wocus-blue);
  margin: 0 auto -200rem;
  z-index: 10;
  position: relative;
}

section.proyectos .swiper .text {
  background: var(--wocus-blue);
  max-width: 1134rem;
  border-radius: 32rem;
  box-sizing: border-box;
  padding: 150rem 72rem 33rem;
  display: flex;
  flex-direction: column;
  margin: 0 auto;
}

@media (max-width: 480px) {
  section.proyectos .swiper .text {
    padding: 162rem 50rem 33rem;
  }
}

section.proyectos .swiper h1 {
  font-size: 32rem;
  font-weight: bold;
  margin-bottom: 40rem;
  width: 100%;
}

section.proyectos .swiper p {
  font-size: 27rem;
  line-height: 1.44;
  font-weight: 300;
  margin-bottom: 17rem;
  text-align: justify;
}

@media (max-width: 480px) {
  section.proyectos .swiper p {
    margin-bottom: 35rem;
  }
}

section.proyectos .swiper .button {
  display: inline-block;
  margin-left: auto;
  font-size: 32rem;
  font-weight: bold;
  color: var(--wocus-blue);
  text-decoration: none;
  background: #fff;
  border-radius: 99999rem;
  padding: 5rem 35rem;
}

@media (max-width: 480px) {
  section.proyectos .swiper .button {
    margin-right: auto;
  }
}

section.proyectos .swiper .image::after {
  content: '';
  display: block;
  padding-bottom: 100%;
}

section.proyectos .swiper-button {
  width: 43rem;
  background: url('../img/icon/caret--right--white.svg') no-repeat center / auto 100%;
  position: absolute;
  top: 253rem;
  left: 0;
  margin: auto;
  transform: rotate(180deg);
  cursor: pointer;
  z-index: 5;
}

section.proyectos .swiper-button::after {
  content: '';
  display: block;
  padding-bottom: calc(80% * 100 / 43);
}

@media (max-width: 768px),
(min-width: 881px) and (max-width: 1080px) {
  section.proyectos .swiper-button {
    width: 28rem;
    top: calc(50% + 112rem);
    transform: translateY(-50%) rotate(180deg);
  }
}

@media (max-width: 698px),
(min-width: 881px) and (max-width: 1050px) {
  section.proyectos .swiper-button {
    left: -40rem;
  }
}

section.proyectos .swiper-button.next {
  left: auto;
  right: 0;
  transform: none;
}

@media (max-width: 698px),
(min-width: 881px) and (max-width: 1050px) {
  section.proyectos .swiper-button.next {
    right: -40rem;
    transform: translateY(-50%);
  }
}

section.contacto {
  background: #fff;
  padding: 66rem 0 106rem;
}

section.contacto .wrapper {
  display: flex;
  flex-wrap: wrap;
}

section.contacto .wrapper > * {
  width: 100%;
}

section.contacto h2 {
  text-align: center;
  /* margin-bottom: 41rem; */
  margin-bottom: 81rem;
  color: var(--wocus-blue);
}

section.contacto .subline {
  background: #e2e6ed;
  color: var(--wocus-grey);
  font-size: 32rem;
  font-weight: 300;
  text-align: center;
  padding: 18rem 14rem 19rem;
  margin-bottom: 55rem;
}

section.contacto .whatsapps {
  display: flex;
  justify-content: center;
  margin-bottom: 118rem;
}

@media (max-width: 600px) {
  section.contacto .whatsapps {
    flex-direction: column;
  }
}

section.contacto .col-50p {
  width: 50%;
  display: flex;
  box-sizing: border-box;
  padding-right: 90rem;
  justify-content: flex-end;
}

@media (max-width: 600px) {
  section.contacto .col-50p {
    width: 100%;
    padding: 0;
    justify-content: center;
  }
}

section.contacto .col-50p + .col-50p {
  padding-right: 0;
  padding-left: 90rem;
  justify-content: flex-start;
}

@media (max-width: 600px) {
  section.contacto .col-50p + .col-50p {
    padding: 0;
    justify-content: center;
    margin-top: 54rem;
  }
}

section.contacto .whatsapp {
  font-size: 36rem;
  font-weight: bold;
  background: var(--wocus-blue);
  border-radius: 99999rem;
  height: 80rem;
  color: #fff;
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  padding: 0 134rem 0 67rem;
}

section.contacto .whatsapp .icon {
  width: 75rem;
  height: 72rem;
  position: absolute;
  top: 4rem;
  right: 4rem;
  background: url('../img/icon/whatsapp--white.svg') no-repeat center / 100%;
}

section.contacto .formulario {
  display: flex;
  flex-direction: column;
}

@media (max-width: 480px) {
  section.contacto .formulario {
    margin-bottom: 134rem;
  }
}

section.contacto .formulario p {
  font-size: 32rem;
  font-weight: 300;
  color: var(--wocus-grey);
  margin-bottom: 56rem;
}

@media (max-width: 480px) {
  section.contacto .formulario p {
    text-align: center;
  }
}

section.contacto .formulario p a {
  color: var(--wocus-blue);
  text-decoration: none;
}

section.contacto .formulario p a:hover {
  text-decoration: underline;
}

section.contacto .formulario input,
section.contacto .formulario textarea {
  width: 100%;
  font-size: 30rem;
  color: var(--wocus-grey);
  font-weight: 300;
  border-bottom: 3rem solid var(--wocus-blue);
  height: 56rem;
  margin-bottom: 12rem;
}

section.contacto .formulario textarea {
  resize: none;
  height: 200rem;
  margin-top: 13rem;
  margin-bottom: 17rem;
}

section.contacto .formulario .fila {
  display: flex;
  justify-content: space-between;
}

@media (max-width: 480px) {
  section.contacto .formulario .fila {
    flex-direction: column;
  }
}

section.contacto .formulario .fila > * {
  width: calc(50% - 25rem);
}

@media (max-width: 480px) {
  section.contacto .formulario .fila > * {
    width: 100%;
  }
}

section.contacto .formulario [type="submit"] {
  background: transparent;
  font-size: 30rem;
  font-weight: 300;
  color: var(--wocus-blue);
  cursor: pointer;
}

section.contacto .formulario .wpcf7 .fila ~ p {
  margin: 0;
  display: flex;
  flex-direction: column;
}

section.contacto .formulario .wpcf7 .wpcf7-not-valid-tip {
  font-size: 23rem;
  margin-bottom: 20rem;
}

section.contacto .formulario .wpcf7 [type="submit"] {
  margin: 0;
  border-bottom: 0;
  height: 37rem;
}

section.contacto .formulario .wpcf7 .wpcf7-spinner {
  display: none;
}

section.contacto .formulario .wpcf7 .wpcf7-response-output {
  font-size: 23rem;
  color: #dc3232;
  border: 0;
  padding: 0;
  margin: 20rem 0 0;
  text-align: center;
}

section.contacto .ubicacion {
  display: flex;
  flex-direction: column;
}

section.contacto .ubicacion p {
  font-size: 32rem;
  font-weight: 300;
  color: var(--wocus-grey);
  margin-bottom: 30rem;
}

@media (max-width: 480px) {
  section.contacto .ubicacion p {
    text-align: center;
  }
}

section.contacto .ubicacion p strong {
  font-weight: bold;
}

section.contacto .ubicacion img {
  width: 100%;
}

footer {
  text-align: center;
  font-size: 25rem;
  font-weight: 300;
  padding: 21rem 0;
  background: #0b0b0b;
  color: #fff;
}