/* -------------------------------------------------------------------------- */
/*                                 CUSTOM FONT                                */
/* -------------------------------------------------------------------------- */
@font-face {
  font-family: 'axiforma';
  src: url('../fonts/axiforma/Kastelov---Axiforma-Light.woff2') format('woff2');
  src: url('../fonts/axiforma/Kastelov---Axiforma-Light.woff') format('woff');
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: 'axiforma';
  src: url('../fonts/axiforma/Kastelov---Axiforma-Regular.woff2') format('woff2');
  src: url('../fonts/axiforma/Kastelov---Axiforma-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: 'axiforma';
  src: url('../fonts/axiforma/Kastelov---Axiforma-Medium.woff2') format('woff2');
  src: url('../fonts/axiforma/Kastelov---Axiforma-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'axiforma';
  src: url('../fonts/axiforma/Kastelov---Axiforma-Bold.woff2') format('woff2');
  src: url('../fonts/axiforma/Kastelov---Axiforma-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: 'helvetica_neuethin';
  src: url('../fonts/helveticaneuethin-webfont.woff2') format('woff2'),
    url('../fonts/helveticaneuethin-webfont.woff') format('woff');
  font-weight: 100;
  font-style: normal;
}

@font-face {
  font-family: 'helvetica_neuelight';
  src: url('../fonts/helveticaneuelight-webfont.woff2') format('woff2'),
    url('../fonts/helveticaneuelight-webfont.woff') format('woff');
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: 'helvetica_neueregular';
  src: url('../fonts/helveticaneueroman-webfont.woff2') format('woff2'),
    url('../fonts/helveticaneueroman-webfont.woff') format('woff');
  font-weight: 400;
  font-style: normal;

}

@font-face {
  font-family: 'helvetica_neuemedium';
  src: url('../fonts/helveticaneuemedium-webfont.woff2') format('woff2'),
    url('../fonts/helveticaneuemedium-webfont.woff') format('woff');
  font-weight: 500;
  font-style: normal;
}

@font-face {
  font-family: 'helvetica_neuebold';
  src: url('../fonts/helveticaneuebold-webfont.woff2') format('woff2'),
    url('../fonts/helveticaneuebold-webfont.woff') format('woff');
  font-weight: 700;
  font-style: normal;
}

/* -------------------------------------------------------------------------- */
/*                              CUSTOM PROPERTIES                             */
/* -------------------------------------------------------------------------- */
:root {

  /* Colors */
  --primary-color: 271 48% 35%;
  --primary-color-tint: 276 35% 44%;
  --primary-color-shade: 272 73% 14%;
  --secondary-color: 221 36% 21%;
  --gray-color: 193 9% 81%;
  --text-color: 221 20% 31%;
  --white-color: 0 0% 100%;
  --black-color: 0 0% 0%;

  /* Font Familiy */
  --heading-font: 'axiforma', sans-serif;
  ;
  --body-font: 'helvetica_neueregular', sans-serif;

  /* Font Weights */
  --fw-thin: 100;
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;

}

/* -------------------------------------------------------------------------- */
/*                                    RESET                                   */
/* -------------------------------------------------------------------------- */

/* https://piccalil.li/blog/a-modern-css-reset/ */

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove default margin */
* {
  font-style: inherit;
  margin: 0;
  padding: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list'] {
  list-style: none;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

/* Set core root defaults */
html,
html:focus-within,
body {
  height: 100%;
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  color: hsl(var(--text-color));
  font-family: var(--body-font);
  text-rendering: optimizeSpeed;
  line-height: 1.5;
}

main {
  position: relative;
}

section {
  padding-block: 4.375rem;
  position: relative;
  height: 100%;
}

@media screen and (min-width: 992px) {
  section {
    padding-block: 7.5rem;
  }
}

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* -------------------------------------------------------------------------- */
/*                               UTILITY CLASSESS                             */
/* -------------------------------------------------------------------------- */

/* General */

.flex {
  display: flex;
  gap: var(--gap, 1rem);
}

.direction-column {
  flex-direction: column;
}

.grid {
  display: grid;
  gap: var(--gap, 1rem);
}

.flow>*:where(:not(:first-child)) {
  margin-top: var(--flow-gap, 1rem);
}

.container {
  padding-inline: 1.25em;
  margin-inline: auto;
  max-width: min(100% - 2rem, 96rem);
}

.section__title-wrapper {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}


.section__title-wrapper.row {
  align-items: center;
}

.section__title-wrapper.center {
  align-items: center;
}

@media screen and (min-width: 992px) {
  .section__title-wrapper.column {
    align-items: center;
    justify-content: space-between;
    flex-direction: row;
  }
}

.section__title-wrapper .section__title-content.bold {
  font-family: 'helvetica_neuebold';
  font-size: 1.375rem;
  line-height: 1;
  max-width: 37.5rem;
}

.section__title {
  color: hsl(var(--secondary-color));
  font-family: var(--heading-font);
  font-size: clamp(2.125rem, 1.9098rem + 1.0127vw, 3.125rem);
  font-weight: var(--fw-medium);
  line-height: 1;
}

.section__title--xl {
  font-size: clamp(2.625rem, 2.356rem + 1.2658vw, 3.875rem);
  line-height: 1.2;
}

.section__title--xl img {
  display: inline;
  vertical-align: middle;
  width: 3.125rem;
  height: auto;
  margin-inline: 8px;
}

.section__title > span {
  background: linear-gradient(90deg, hsl(var(--primary-color)) 0%, hsl(var(--primary-color-tint)) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.section__title-wrapper p.text-lg {
  font-size: 1.25rem !important;
  line-height: 1.8;
}

.fancy__underline {
  position: relative;
  text-decoration: none;
}

.fancy__underline img {
  position: absolute;
  bottom: -5px;
  left: 0;
  height: .625rem;
  width: 100%;
}

.btn {
  background-image: linear-gradient(90deg, hsl(var(--primary-color)) 0%, hsl(var(--primary-color-tint)) 100%);
  color: hsl(var(--white-color));
  font-family: var(--heading-font);
  font-size: 1rem;
  padding: 0.625em 1.25em;
  min-width: 5rem;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  border: none;
  border-radius: 1.875rem;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.btn:hover,
.btn:focus {
  background-image: linear-gradient(90deg, hsl(var(--primary-color-tint)) 0%, hsl(var(--primary-color)) 100%);
  color: hsl(var(--white-color));
  transition: background-image 0.3s ease, color 0.3s ease;
}

.btn-arrow {
  display: inline-flex;
  align-items: center;
  column-gap: 0.5rem;
  position: relative;
  width: max-content;
  text-decoration: none;
  transition: 0.3s ease-out;
}

.btn-arrow::after {
  position: absolute;
  content: "";
  width: 0;
  left: 0;
  bottom: -3px;
  background: hsl(var(--primary-color));
  height: 2px;
  transition: 0.3s ease-out;
}

.btn-arrow span {
  color: hsl(var(--secondary-color));
  font-family: var(--heading-font);
  font-size: 1.125rem;
  font-weight: var(--fw-bold);
}

.btn-arrow svg {
  transition: transform 0.3s ease-out;
}

.btn-arrow svg g {
  fill: hsl(var(--secondary-color));
}

.btn-arrow:is(:hover, :focus) span {
  color: hsl(var(--primary-color));
}

.btn-arrow:is(:hover, :focus)::after {
  width: 100%;
}

.btn-arrow:is(:hover, :focus) svg {
  transform: translateX(0.5rem);
}

.btn-arrow:is(:hover, :focus) svg g {
  fill: hsl(var(--primary-color));
}

.btn.paga__cuota {
  position: fixed;
  bottom: 2.5rem;
  right: 2.5rem;
  padding: .9375em 1.5625em;
  box-shadow: 0 0 1.25rem hsl(var(--primary-color-shade) / .3);
  z-index: 1000;
}

@media screen and (min-width: 992px) {
  .btn.paga__cuota {
    bottom: 5rem;
    right: 6.25rem;
  }
}

.text-center {
  text-align: center;
}

.noise-background {
  background-image: url('../images/grain-bg.png');
  background-repeat: repeat;
}

/* Colors */
/* Background Colors */
.bg-primary { background-color: hsl(var(--primary-color)); }
.bg-primary-tint { background-color: hsl(var(--primary-color-tint)); }
.bg-primary-shade { background-color: hsl(var(--primary-color-shade)); }
.bg-secondary { background-color: hsl(var(--secondary-color)); }
.bg-gray { background-color: hsl(var(--gray-color)); }
.bg-text { background-color: hsl(var(--text-color)); }
.bg-white { background-color: hsl(var(--white-color)); }
.bg-black { background-color: hsl(var(--black-color)); }

/* Text Colors */
.text-primary { color: hsl(var(--primary-color)); }
.text-primary-tint { color: hsl(var(--primary-color-tint)); }
.text-primary-shade { color: hsl(var(--primary-color-shade)); }
.text-secondary { color: hsl(var(--secondary-color)); }
.text-gray { color: hsl(var(--gray-color)); }
.text-text { color: hsl(var(--text-color)); }
.text-white { color: hsl(var(--white-color)); }
.text-black { color: hsl(var(--black-color)); }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* -------------------------------------------------------------------------- */
/*                                   Global                                   */
/* -------------------------------------------------------------------------- */
main {
  padding-block-start: 7.5rem;
}

@media screen and (min-width: 992px) {
  main {
    padding-block-start: 8.125rem;
  }
}

/* -------------------------------------------------------------------------- */
/*                                 COMPONENTS                                 */
/* -------------------------------------------------------------------------- */


/* Header */
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  width: 100%;
  background-color: hsl(var(--white-color) / 0.6);
  backdrop-filter: blur(10px);
}

.header__wrapper {
  padding-block: 1.5rem;
}

.header__nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 50px;
  width: 100%;
}

@media screen and (min-width: 1280px) {
  .header__nav {
    gap: 200px;
  }

}

.logo {
  width: 11.25rem;
}

@media screen and (min-width: 992px) {
  .logo {
    width: 15rem;
  }
}

/* -------------------------------------------------------------------------- */
/*                                 Navigation                                 */
/* -------------------------------------------------------------------------- */

.nav__wrapper {
  display: flex;
  align-items: center;
  justify-content: end;
  gap: 30px;
  flex: 1;
}

@media screen and (min-width: 992px) {
  .nav__wrapper {
    justify-content: space-between;
  }
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 10px;
}

@media screen and (max-width: 991px) {
  .nav__links {
    display: none;
  }
}

.nav__links>a {
  color: hsl(var(--secondary-color));
  position: relative;
  text-decoration: none;
}

.nav__links > a::after {
  position: absolute;
  content: "";
  width: 0;
  left: 0;
  bottom: -3px;
  background: hsl(var(--primary-color));
  height: 2px;
  transition: 0.3s ease-out;
}

.nav__links > a.current-page {
  color: hsl(var(--primary-color));
}

.nav__links > a:is(:hover, :focus)::after,
.nav__links > a.current-page::after {
  width: 100%;
}

@media screen and (max-width: 991px) {
  .client__area {
    display: none;
  }

}


/* ------------------------------- Nav trigger ------------------------------ */
.nav__trigger {
  cursor: pointer;
  height: 24px;
}

@media screen and (min-width: 992px) {
  .nav__trigger {
    display: none;
  }
}

.nav__trigger-box {
  position: relative;
  display: inline-block;
  width: 40px;
  height: 24px;
}

.nav__trigger-inner {
  top: 0;
  display: block;
}

.nav__trigger-inner:after,
.nav__trigger-inner:before {
  display: block;
  content: "";
}

.nav__trigger-inner,
.nav__trigger-inner:after,
.nav__trigger-inner:before {
  position: absolute;
  width: 40px;
  height: 4px;
  transition-timing-function: ease;
  transition-duration: .15s;
  transition-property: transform;
  border-radius: 4px;
  background-color: hsl(var(--primary-color));
}

.nav__trigger-inner:after {
  top: 20px;
  bottom: -10px;
}


.nav__trigger-inner:before {
  top: 10px;
  transition-timing-function: ease;
  transition-duration: .15s;
  transition-property: transform, opacity;
}

.nav__trigger.is-active .nav__trigger-inner {
  transform: translate3d(0, 10px, 0) rotate(45deg);
}

.nav__trigger.is-active .nav__trigger-inner:before {
  transform: rotate(-45deg) translate3d(-5.71429px, -6px, 0);
  opacity: 0;
}

.nav__trigger.is-active .nav__trigger-inner:after {
  transform: translate3d(0, -20px, 0) rotate(-90deg);
}


/* ----------------------------- Offcanvas Menu ----------------------------- */

/* Mobile menu */

.mobile-wrapper {
  background-color: hsl(var(--white-color));
  position: fixed;
  top: 0;
  left: 0;
  height: 100vh;
  height: 100svh;
  width: 100%;
  overflow-y: auto;
  z-index: 2000;

  transition: transform 500ms cubic-bezier(0.42, 0, 0.58, 1);
  transform: translateX(100%);
}

.mobile-wrapper--open {
  transform: translateX(0);
}

.mobile-wrapper__inner {
  display: flex;
  flex-direction: column;
  gap: 1.875rem;
  padding: 2.1875rem 1.275rem 1.875rem 1.275rem;
}

/* Header */
.mobile-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-block-end: 1.875rem;
  position: relative;
}

.mobile-header::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  background-color: #eaeaea;
}

.mobile-header__open,
.mobile-header__close {
  background-color: hsl(var(--primary-color));
  border-radius: 0.3125rem;
  height: 2.125rem;
  width: 2.125rem;
  display: grid;
  place-items: center;
  padding: 0 !important;
}

.mobile-header__open:is(:hover, :focus),
.mobile-header__close:is(:hover, :focus) {
  background-color: hsl(var(--secondary-color));
}

.mobile-header__open>svg {
  height: 1.875rem;
  width: 1.875rem;
}

/* Header right wrapper */
.mobile-header__right {
  display: flex;
  gap: 0.625rem;
  align-items: center;
}

/* Mobile button */
.mobile__button {
  display: flex;
  justify-content: center;
  position: relative;
  opacity: 0;
  transition: all 500ms cubic-bezier(0.42, 0, 0.58, 1);
  transition-delay: 400ms;
  transform: translateY(20px);
}

.mobile-wrapper--open .mobile__button {
  opacity: 1;
  transform: translateY(0);
}

/* Navigation */
.mobile__nav-links {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.mobile__nav-links .mobile__nav-item {
  position: relative;
  overflow: hidden;
}

.mobile__nav-links .mobile__nav-item {
  color: hsl(var(--primary-color));
  display: grid;
  grid-template-columns: auto 10px;
  font-size: 1.0625rem;
  font-weight: 600;
  position: relative;
  opacity: 0;
  transform: translateY(20px);
  transition: all 500ms cubic-bezier(0.42, 0, 0.58, 1);
  transition-delay: 500ms;
  text-decoration: none;
}

.mobile-wrapper--open .mobile__nav-links .mobile__nav-item {
  opacity: 1;
  transform: translateY(0);
}

.mobile__nav-links .mobile__nav-item::after {
  content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-triangle-filled" width="10" height="10" viewBox="0 0 24 24" stroke-width="1" stroke="%23d9d8d8" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M11.99 1.968c1.023 0 1.97 .521 2.512 1.359l.103 .172l7.1 12.25l.062 .126a3 3 0 0 1 -2.568 4.117l-.199 .008h-14l-.049 -.003l-.112 .002a3 3 0 0 1 -2.268 -1.226l-.109 -.16a3 3 0 0 1 -.32 -2.545l.072 -.194l.06 -.125l7.092 -12.233a3 3 0 0 1 2.625 -1.548z" stroke-width="0" fill="%23d9d8d8"></path></svg>');
  transform: rotate(90deg);
}

/* Header footer */
.mobile__account,
.mobile__footer-info,
.mobile__footer-social {
  position: relative;
  opacity: 0;
  transition: all 500ms cubic-bezier(0.42, 0, 0.58, 1);
  transition-delay: 700ms;
  transform: translateY(20px);
}

.mobile-wrapper--open .mobile__account,
.mobile-wrapper--open .mobile__footer-info,
.mobile-wrapper--open .mobile__footer-social {
  opacity: 1;
  transform: translateY(0);
}

.mobile__footer-social .social__links {
  margin-block-start: 0;
}

.social__list {
  display: flex;
  gap: 1.25rem;
}

.mobile__footer-social_icon {
  background-color: hsl(var(--primary-color));
  height: 2.5rem;
  width: 2.5rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
}

.mobile__footer-social-icon {
  color: hsl(var(--white-color));
  font-size: 1.25rem;
}

.mobile__footer-info {
  margin-block: 1.875rem;
}

.mobile__footer-heading {
  color: hsl(var(--secondary-color));
  font-size: 1.5rem;
  font-weight: 600;
  margin-block-end: 1.25rem;
}

.contact__list {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.contact__list a {
  color: hsl(var(--secondary-color));
  text-decoration: none;
}

.contact__list a:hover {
  color: hsl(var(--primary-color));
}

.contact__list--center {
  text-align: center;
}

/* -------------------------------------------------------------------------- */
/*                               Heading section                              */
/* -------------------------------------------------------------------------- */
.heading__section {
  background-image: url('../images/heading-bg.jpg');
  background-size: cover;
  background-position: center;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 18.75rem;
  width: 100%;
  position: relative;
  z-index: 1;
}

.heading__section::before {
  content: '';
  position: absolute;
  inset: 0;
  height: 100%;
  width: 100%;
  background-color: hsl(var(--primary-color-shade) / .5);
  z-index: -1;
}

@media screen and (min-width: 992px) {
  .heading__section {
    height: 31.25rem;
  }
}

.heading__section-title {
  color: hsl(var(--white-color));
  font-size: clamp(2rem, 1.7579rem + 1.1392vw, 3.125rem);
}

.heading__section-title h2 {
  font-family: var(--heading-font);
  font-weight: var(--fw-medium);
}


/* -------------------------------------------------------------------------- */
/*                                    Hero                                    */
/* -------------------------------------------------------------------------- */

/* .hero__section {
  padding-block-start: 12.5rem;
} */

.hero__section-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 20px;
}

@media screen and (min-width: 992px) {
  .hero__section-wrapper {
    flex-direction: row;
    gap: 40px;
    padding-inline: 120px;
  }

  .hero__section-wrapper > div {
    flex: 1;
  }
}

.hero__content {
  display: flex;
  flex-direction: column;
  row-gap: 20px;
}

.hero__content-before_title {
  color: hsl(var(--primary-color));
  font-size: 24px;
  font-weight: var(--fw-light);
}

.hero__content-title {
  font-family: 'axiforma';
  font-weight: 400;
  font-size: clamp(2rem, 1.3813rem + 2.9114vw, 4.875rem);
  line-height: 1;
}

.hero__content-title--highlight {
  background: linear-gradient(90deg, #5b2e84 0%, #774896 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.hero__content-description {
  font-size: 18px;
  line-height: 24px;
}

@media screen and (min-width: 992px) {
  .hero__content-description {
    max-width: 31.25rem;
  }
}

/* Hero gallery */
.hero__gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 100px);
  gap: .625rem;
}

@media screen and (min-width: 576px) {
  .hero__gallery-grid {
    grid-template-rows: repeat(3, 9.25rem);
  }
}

@media (min-width: 576px) and (max-width: 991px) {
  .hero__gallery-grid {
    max-width: 70%;
    margin-inline: auto;
  }
}

@media screen and (min-width: 992px) {
  .hero__gallery-grid {
    grid-template-rows: repeat(3, 12.5rem);
    gap: 1.25rem;
  }
  
}

.hero__gallery-grid img {
  object-fit: cover;
  border-radius: 30px;
  height: 100%;
  width: 100%;
}

@media screen and (min-width: 576px) {
  .hero__gallery-grid img {
    border-radius: 40px;
  }
}

@media screen and (min-width: 992px) {
  .hero__gallery-grid img {
    border-radius: 60px;
  }
}

.hero__gallery-grid img:nth-child(1) {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}

.hero__gallery-grid img:nth-child(2) {
  grid-column: 1 / 2;
  grid-row: 3 / 4;
}

.hero__gallery-grid img:nth-child(3) {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
}

.hero__gallery-grid img:nth-child(4) {
  grid-column: 2 / 3;
  grid-row: 2 / 4;
}

.hero__gallery-grid img:nth-child(5) {
  align-self: center;
  height: 75%;
  grid-column: 3 / 4;
  grid-row: 1 / 4;
}

/* Hero slider */
.hero__content-title {
  transition-delay: 0.2s;
}
.hero__content-description {
  transition-delay: 0.3s;
}

.hero-pagination .swiper-pagination-bullet {
  background-color: hsl(var(--primary-color)) !important;
  width: 1.25rem;
  border-radius: 5px;
}

.swiper-slide.hero__section-wrapper {
  opacity: 0 !important;
  transition: 0.4s;
}
.swiper-slide.hero__section-wrapper.swiper-slide-active {
  opacity: 1 !important;
}
.swiper-slide.hero__section-wrapper .hero__content > * {
  transform: translateY(-30px);
  opacity: 0;
  transition-duration: 0.8s;
}
.swiper-slide-active.hero__section-wrapper .hero__content > * {
  transform: none;
  opacity: 1;
}
.swiper-slide.hero__section-wrapper .hero__gallery-grid > * {
    transform: translateY(-30px);
    opacity: 0;
    transition-duration: 0.8s;
}

.swiper-slide-active.hero__section-wrapper .hero__gallery-grid > * {
  opacity: 1;
  transform: none;
}

.hero__section-wrapper .hero__gallery img:nth-child(1) {
  transition-delay: 0.2s;
}

.hero__section-wrapper .hero__gallery img:nth-child(2) {
  transition-delay: 0.3s;
}

.hero__section-wrapper .hero__gallery img:nth-child(3) {
  transition-delay: 0.4s;
}

.hero__section-wrapper .hero__gallery img:nth-child(4) {
  transition-delay: 0.5s;
}

.hero__section-wrapper .hero__gallery img:nth-child(5) {
  transition-delay: 0.6s;
}

/* -------------------------------------------------------------------------- */
/*                                Marquee text                                */
/* -------------------------------------------------------------------------- */
.marquee__text {
  border-bottom: 1px solid #d9d9d9;
  font-family: 'axiforma';
  font-size: clamp(4rem,5vw,12rem);
  font-weight: var(--fw-bold);
  margin-block-start: 3.125rem;
}

.marquee__text .marquee__text-item {
  text-transform: uppercase;
  width: auto;
}

.marquee__text .marquee__text-item > a {
  text-decoration: none;
}

.marquee__text .marquee__text-item.purple > a {
  color: hsl(var(--primary-color));
}

.marquee__text .marquee__text-item.gray > a {
  color: hsl(var(--gray-color));
}

.marquee__text .marquee__text-item img {
  width: 80px;
  opacity: 0.1;
}

@media screen and (min-width: 992px) {
  .marquee__text .marquee__text-item img {
    width: 100px;
  }
}

.marquee__text .swiper-wrapper {
  transition-timing-function: linear;
}

/* -------------------------------------------------------------------------- */
/*                            Leasing info section                            */
/* -------------------------------------------------------------------------- */

.leasing__info-wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  gap: 40px;
}

@media screen and (min-width: 992px) {
  .leasing__info-wrapper {
    flex-direction: row;
    justify-content: center;
    align-items: center;
  }
}

.leasing__info-title {
  display: flex;
}

@media screen and (min-width: 992px) {
  .leasing__info-title {
    justify-content: end;
    width: 34.375rem;
  }
}

.divider {
  background-color: hsl(var(--gray-color));
  width: 1px;
  height: 200px;
  display: none;
}

@media screen and (min-width: 992px) {
  .divider {
    display: block;
  }
  
}

.leasing__info-content {
  display: flex;
  flex-direction: column;
  row-gap: 1.25rem;
  justify-content: center;
}

@media screen and (min-width: 992px) {
  .leasing__info-title {
    padding-inline-end: 5rem;
  }
  .leasing__info-content {
    padding-inline-start: 5rem;
    width: 34.375rem;
  }
  
}

/* -------------------------------------------------------------------------- */
/*                              Benefits section                              */
/* -------------------------------------------------------------------------- */

.benefits__section-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  gap: 40px;
}

@media screen and (min-width: 992px) {
  .benefits__section-wrapper {
    grid-template-columns: repeat(2, 1fr);
    justify-content: center;
    align-items: center;
  }
}

.benefits__section-wrapper.align-start {
  align-items: start;
}

/* Benefits gallery */
.benefits__gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(3, 6.25rem);
  gap: .625rem;
  max-width: 28.75rem;
  justify-self: center;
}

@media screen and (min-width: 576px) {
  .benefits__gallery-grid {
    grid-template-rows: repeat(3, 9.25rem);
  }
}

@media screen and (min-width: 992px) {
  .benefits__gallery-grid {
    grid-template-rows: repeat(3, 12.5rem);
    justify-self: end;
    margin-inline-end: 6.25rem;
  }
}

.benefits__gallery-grid img {
  object-fit: cover;
  border-radius: 30px;
  height: 100%;
  width: 100%;
}

@media screen and (min-width: 992px) {
  .benefits__gallery-grid img {
    border-radius: 40px;
  }
}

@media screen and (min-width: 992px) {
  .benefits__gallery-grid img {
    border-radius: 60px;
  }
}

.benefits__gallery-grid img:nth-child(1) {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}

.benefits__gallery-grid img:nth-child(2) {
  grid-column: 2 / 3;
  grid-row: 1 / 2;
}

.benefits__gallery-grid img:nth-child(3) {
  grid-column: 2 / 3;
  grid-row: 2 / 4;
}

.benefits__content {
  display: flex;
  flex-direction: column;
  row-gap: 1.25rem;
  justify-content: center;
}

.benefits__items {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  margin-block-start: 1.875rem;
}

.benefits__item {
  background-color: hsl(var(--white-color));
  border-radius: 1.25em;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 1.25rem;
  max-width: 31.25rem;
  transition: all .3s ease-in-out;
}

@media screen and (min-width: 768px) {
  .benefits__section.benefits__section--two-columns .benefits__items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
}

.benefits__section.benefits__section--two-columns .benefits__item {
  max-width: 100%;
}

@media screen and (min-width: 576px) {
  .benefits__item {
    flex-direction: row;
    align-items: center;
  }
}

.benefits__item:is(:hover, :focus) {
  box-shadow: 0 0 40px 0 hsl(var(--primary-color-shade) / .1);
}

.benefits__item a {
  color: hsl(var(--primary-color));
  font-family: 'helvetica_neuebold';
  text-decoration: none;
  transition: all .3s ease-in-out;
}

.benefits__item a:is(:hover, :focus) {
  color: hsl(var(--primary-color-shade));
}

.benefits__item span {
  font-family: var(--heading-font);
  font-size: 1.125rem;
  font-weight: var(--fw-bold);
}

.benefits__item img {
  width: 3.125rem;
}

.benefits__item ol {
  list-style-type: decimal;
  padding-inline-start: 1.25rem;
}


/* -------------------------------------------------------------------------- */
/*                               Subsidy section                              */
/* -------------------------------------------------------------------------- */

.subsidy__section-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

.subsidy__content {
  display: flex;
  flex-direction: column;
  row-gap: 1.25rem;
  justify-content: center;
  text-align: center;
}

.subsidy__content {
  font-size: 1.125rem;
  font-weight: var(--fw-bold);
}

@media screen and (min-width: 992px) {
  .subsidy__content {
    max-width: 600px;
  }
}

/* -------------------------------------------------------------------------- */
/*                               Payment section                              */
/* -------------------------------------------------------------------------- */

.payment__section-wrapper {
  background: url('../images/payment_bg.png') hsl(var(--primary-color-shade)) no-repeat;
  background-size: cover;
  background-position: center;
  border-radius: 2.5rem;
  padding: 2.5rem;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  row-gap: 2.5rem;
  overflow: hidden;
}

@media screen and (min-width: 992px) {
  .payment__section-wrapper {
    flex-direction: row;
    gap: 0;
    min-height: 25rem;
    max-width: 80%;
    margin-inline: auto;
  }
}

.payment__section-wrapper .section__title {
  color: hsl(var(--white-color));
  text-align: center;
}

@media screen and (min-width: 992px) {
  .payment__section-wrapper .section__title {
    text-align: left;
  }
}

.payment__button {
  background-color: hsl(var(--primary-color));
  border-radius: 50%;
  color: hsl(var(--white-color));
  display: grid;
  font-family: var(--heading-font);
  place-content: center;
  font-size: 1.25rem;
  width: 11.25rem;
  height: 11.25rem;
  text-decoration: none;
}

.payment__button-wrapper {
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
  position: relative;
  width: max-content;
  text-decoration: none;
  transition: 0.3s ease-out;
}

.payment__button-wrapper svg {
  transition: 0.3s ease-out;
}

.payment__button-wrapper svg g {
  fill: hsl(var(--white-color));
}

.payment__button:is(:hover, :focus) svg {
  transform: translateX(0.5rem);
}

.payment__section-wrapper > img {
  position: absolute;
  opacity: .1;
  display: none;
}

@media screen and (min-width: 992px) {
  .payment__section-wrapper > img {
    display: block;
  }
}

.payment__section-wrapper > img:first-of-type {
  top: 1.875rem;
  left: 3.125rem;
}

.payment__section-wrapper > img:last-of-type {
  bottom: -100px;
  left: 18.75rem;
}

/* -------------------------------------------------------------------------- */
/*                             Philosophy section                             */
/* -------------------------------------------------------------------------- */
@media screen and (min-width: 992px) {
  .section__philosophy .section__title.section__title--xl {
    max-width: 80%;
  }
}

.mision {
  display: grid;
  grid-template-columns: 1fr;
  margin-block-start: 3.125rem;
  align-items: center;
}

@media screen and (min-width: 992px) {
  .mision {
    grid-template-columns: repeat(2, 1fr);
    margin-block-start: 6.25rem;
  }
}

.experience {
  color: hsl(var(--secondary-color));
  display: flex;
  flex-direction: column;
  align-items: center;
  font-family: var(--heading-font);
  font-weight: var(--fw-bold);
  line-height: 1;
}

.experience > div {
  display: flex;
  align-items: baseline;
  font-size: 80px;
}

.number {
  font-size: calc(16vw + 40px);
}

.experience span:first-of-type {
  font-size: 2.125rem;
  margin-block-end: .625rem;
}

.experience span {
  font-size: 1.5rem;
}

.mision__content {
  display: flex;
  flex-direction: column;
  row-gap: 1.25rem;
  margin-block-start: 3.125rem;
  max-width: 100%;
}

@media screen and (min-width: 992px) {
  .mision__content {
    max-width: 34.375rem;
    margin-block-start: 0;
  }
}

.mision__content h4 {
  font-size: 1.25rem;
  font-family: var(--heading-font);
  font-weight: var(--fw-bold);
}

/* Box image */
.box__image-wrapper {
  display: flex;
  flex-direction: column;
  gap: 1.5625rem;
  flex-wrap: wrap;
  margin-block-start: 3.125rem;
}

@media screen and (min-width: 992px) {
  .box__image-wrapper {
    margin-block-start: 6.25rem;
  }
}

.box__image-wrapper.box__image-wrapper--one-column {
  justify-content: center;
}

.box__image-wrapper.box__image-wrapper--one-column .box__image {
  flex: none;
}

.box__image {
  border: 1px solid hsl(var(--secondary-color));
  border-radius: 1.25rem;
  display: flex;
  flex-direction: column;
  row-gap: 1.875rem;
  padding: 2.5rem;
  flex: 1;
  transition: all .3s ease-in-out;
}

.box__image:is(:hover, :focus) {
  box-shadow: 0 0 40px 0 hsl(var(--primary-color-shade) / .1);
}

@media screen and (min-width: 992px) {
  .box__image-wrapper {
    flex-direction: row;
  }
}

.box__image-header {
  display: flex;
  column-gap: 1.25rem;
  align-items: center;
}

.box__image-number {
  border: 1px solid hsl(var(--secondary-color));
  border-radius: 50%;
  display: grid;
  place-content: center;
  height: 2.5rem;
  width: 2.5rem;
  line-height: 1.2;
}

.box__image-title {
  font-family: var(--heading-font);
  font-size: 1.375rem;
}

.box__image-img-wrapper {
  background-color: hsl(var(--white-color));
  border-radius: 1.25rem;
  display: flex;
  justify-content: center;
  padding: 1.25rem;
}

.box__image-img {
  height: 6.25rem;
  width: 6.25rem;
}

.box__image-img--full {
  height: auto;
  width: auto;
}

.box__image-img img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.box__image.box__image--big-number {
  position: relative;
  overflow: hidden;
}

.box__image--big-number::after {
  content: attr(data-number);
  position: absolute;
  bottom: -85px;
  right: -20px;
  color: hsl(var(--primary-color));
  font-size: 180px;
  opacity: 0.06;
}

.box__image-content ol {
  list-style-type: decimal;
  padding-inline-start: 1.25rem;
}


/* Staff card */

.staff__wrapper {
  display: flex;
  flex-direction: column;
  gap: 1.5625rem;
  margin-block-start: 3.125rem;
  transition: all .3s ease-in-out;
}

@media screen and (min-width: 992px) {
  .staff__wrapper {
    flex-direction: row;
    margin-block-start: 6.25rem;
  }
}

.staff__card {
  border-radius: 1.25rem;
  flex: 1;
  overflow: hidden;
  position: relative;
}

.staff__card-img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.staff__card-name {
  position: absolute;
  bottom: 1.875rem;
  left: 50%;
  background-color: hsl(var(--white-color));
  border-radius: .625rem;
  width: 90%;
  padding: 1.25rem;
  transform: translateX(-50%);

  display: flex;
  align-items: center;
  justify-content: space-between;
}

.staff__card-name span {
  background: linear-gradient(90deg, hsl(var(--primary-color)) 0%, hsl(var(--primary-color-tint)) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-family: 'helvetica_neuebold';
  font-size: 1.125rem;
}

@media screen and (min-width: 992px) {
  .staff__card-name span {
    font-size: 1.375rem;
  }
}

.staff__card-name img {
  filter: grayscale(100%);
  width: 3.125rem;
}

/* Documents */
.section__documents .payment__section-wrapper {
  flex-direction: column;
  align-items: start;
  justify-content: center;
  padding-block: 3.75rem;
}

@media screen and (max-width: 991px) {
  .section__documents .payment__section-wrapper {
    padding-inline: 1.25rem;
    gap: .625rem;
  }
}

.section__documents .section__title-wrapper .section__title {
  font-size: clamp(1.85rem, 1.7639rem + 0.4051vw, 2.25rem);
  text-align: left;
}

.section__documents .section__title-wrapper p {
  font-size: 1rem;
  font-family: 'helvetica_neueregular';
  max-width: 100%;
}

@media screen and (min-width: 992px) {
  .section__documents .benefits__items {
    flex-direction: row;
    margin-block-start: 3.125rem;
  }
}

.section__documents .benefits__items .benefits__item {
  align-items: start;
}

/* -------------------------------------------------------------------------- */
/*                               Contact section                              */
/* -------------------------------------------------------------------------- */

/* ---------------------------------- Form ---------------------------------- */
.form__wrapper {
  border: 1px solid hsl(var(--secondary-color));
  border-radius: 1.25rem;
  padding: 2.5rem;
  width: 100%;
  max-width: 31.25rem;
  margin-inline: auto;
  margin-block-start: 3.125rem;
}

.form-title {
  color: hsl(var(--secondary-color));
  text-align: center;
  margin-bottom: 1.25rem;
}

.form-group {
  margin-bottom: .9375rem;
}

.form-group label {
  display: block;
  margin-bottom: .3125rem;
  color: hsl(var(--secondary-color));
}

.form-group input, 
.form-group textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid hsl(var(--secondary-color));
  border-radius: 5px;
  box-sizing: border-box;
}

.form-group input:focus, 
.form-group textarea:focus {
  outline: 1px solid hsl(var(--primary-color-tint));
}

.form-group textarea {
  resize: none;
  min-height: 6.25rem;
}

.submit-btn {
  width: 100%;
  border: none;
  cursor: pointer;
}


/* ------------------------------ Contact info ------------------------------ */
.contact__info {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-block: 1.875rem;
}

.contact__info .contact__info-item {
  color: hsl(var(--primary-color));
  font-family: 'helvetica_neuemedium';
  transition: color 300ms ease-in-out;
  text-decoration: none;
}

.contact__info .contact__info-item:is(:hover, :focus) {
  color: hsl(var(--primary-color-shade));
}

/* -------------------------------------------------------------------------- */
/*                                   Avisos                                   */
/* -------------------------------------------------------------------------- */

.aviso__info-wrapper > *:not(:last-child) {
  margin-block-end: 1.25rem;
}

/* -------------------------------------------------------------------------- */
/*                              Site map section                              */
/* -------------------------------------------------------------------------- */

.section__sitemap h1 {
  margin-block-end: 1.875rem;
}

.section__sitemap ul {
  list-style-type: disc;
  margin-inline-start: 1.25rem;
}

.section__sitemap ul a {
  color: hsl(var(--primary-color));
  text-decoration: none;
  transition: color 300ms ease-in-out;
}

.section__sitemap ul a:is(:hover, :focus) {
  color: hsl(var(--primary-color-shade));
}


/* -------------------------------------------------------------------------- */
/*                                   Footer                                   */
/* -------------------------------------------------------------------------- */

.footer {
  background-color: hsl(var(--primary-color) / 0.1);
  border-radius: 70px 70px 0 0;
  display: flex;
  margin-top: 7.5rem;
  width: 100%;
  flex-direction: column;
}

.footer__top {
  padding-block: 3.125rem;
}

@media screen and (min-width: 992px) {
  .footer__top {
    padding-block: 7.5rem;
  }
}

.footer__top-content {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
}

.footer__links {
  display: flex;
  flex-direction: column;
  margin-top: 1.25rem;
  align-items: center;
  gap: .625rem;
  padding: 10px;
}

@media screen and (min-width: 992px) {
  .footer__links {
    flex-direction: row;
    gap: 1.875rem;
    margin-top: 2.5rem;
  }
}

.footer__links a {
  color: hsl(var(--secondary-color));
  text-decoration: none;
  position: relative;
}

.footer__links a::after {
  position: absolute;
  content: "";
  width: 0;
  left: 0;
  bottom: -3px;
  background: hsl(var(--primary-color));
  height: 2px;
  transition: 0.3s ease-out;
}

.footer__links a:is(:hover, :focus)::after {
  width: 100%;
}

.footer-divider {
  min-height: 1px;
  margin-top: 47px;
  width: 655px;
  max-width: 100%;
  border: 1px solid hsl(var(--primary-color) / .1);
}

.social__links {
  display: flex;
  margin-top: 2.5rem;
  align-items: center;
  gap: 1.25rem;
  padding: 6px 3px;
}

.social__links a {
  background-color: hsl(var(--primary-color));
  border-radius: .625rem;
  display: grid;
  place-content: center;
  height: 3.125rem;
  width: 3.125rem;
  transition: all 0.3s ease-in-out;
}

.social__links a:is(:hover, :focus) {
  background-color: hsl(var(--primary-color-shade));
}

.social__links a svg {
  color: hsl(var(--white-color));
  width: 1.125rem;
}

.footer__bottom {
  background-color: hsl(var(--primary-color-shade));
  padding-block: 1.5625rem;
}

.footer__bottom-content {
  color: hsl(var(--white-color));
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  row-gap: 1.25rem;
  text-align: center;
}

@media screen and (min-width: 992px) {
  .footer__bottom-content {
    flex-direction: row;
  }
}

.credits {
  align-self: stretch;
}

.credits-highlight {
  color: hsl(var(--primary-color-tint));
}