@font-face {
  font-family: "Fredericka the Great";
  src: url("./fonts/FredrerickatheGreat/FrederickatheGreat-Regular.woff2")
    format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Cormorant Garamond";
  src: url("./fonts/Cormorant_Garamond/CormorantGaramond-Regular.woff2")
    format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Lato";
  src: url("./fonts/Lato/Lato-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Lato";
  src: url("./fonts/Lato/Lato-Bold.woff2") format("woff2");
  font-weight: 700;
}

/* Variable collection */
:root {
  /* Desktop */
  /* color */
  --accent-color: #4a81b9;
  --background-color: #fdf8ea;
  --black: #0a122a;
  --brand-color: #feebdb;
  --gray-10: #aaaeb0;
  --gray-20: #dfe5ec;
  --light-color: #a9b9c8;
  --subtle-color: #ededf6;
  --text-color: #030f59;
  --title-color: #223f70;
  --white: #fdf8ea;
  /* number */
  --border-border-width-s: 1px;
  --border-border-width-l: 4px;
  --border-border-width-xl: 8px;
  --font-utility-xs: 12px;
  --font-utility-s: 16px;
  --font-utility-m: 18px;
  --font-utility-l: 28px;
  --font-display-m: 32px;
  --font-display-l: 40px;
  --font-display-xl: 60px;
  --font-display-xxl: 96px;
  --font-line-height-utility-xxs: 16px;
  --font-line-height-utility-xs: 18px;
  --font-line-height-utility-s: 21px;
  --font-line-height-utility-m: 24px;
  --font-line-height-utility-l: 27px;
  --font-line-height-display-xs: 28px;
  --font-line-height-display-s: 34px;
  --font-line-height-display-l: 48px;
  --font-line-height-display-xl: 60px;
  --space-xxxs: 4px;
  --space-xxs: 8px;
  --space-xs: 12px;
  --space-s: 16px;
  --space-m: 24px;
  --space-l: 32px;
  --space-xl: 48px;
  --space-xxl: 64px;
  --space-xxxl: 80px;
  --space-4xl: 128px;
  /* string */
  --border-border-width-m: 2px;
  --family-font-family-header: "Fredericka the Great";
  --family-font-family-text: "Lato";
  --family-font-family-title: "Cormorant Garamond";
  --font-weight-regular: 400;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--family-font-family-text), Arial;
  font-weight: var(--font-weight-regular);
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100dvh;
}

:focus-visible {
  outline: 2px solid var(--text-color);
  outline-offset: 2px;
}

.header {
  width: 100%;
  position: fixed;
  z-index: 12;

  @media (min-width: 1440px) {
    max-width: 1920px;

    .navigation {
      display: flex;
      justify-content: space-between;
    }

    .header__bar {
      display: none;
    }
  }
}

.main {
  width: 100%;
}

.content {
  position: relative;
  width: 100%;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.content::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 106%;
  z-index: -1;

  background-image:
    url("./assets/MESH.webp"), url("./assets/MESH-REVERSE.webp");
  background-position: top, bottom;
  background-size:
    100% 50%,
    100% 50%;
  background-repeat: no-repeat, no-repeat;

  @media (min-width: 1440px) {
    height: 109%;
  }
}

.content::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  height: 106%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.45;
  mix-blend-mode: multiply;
  z-index: 10;

  @media (min-width: 1024px) {
    height: 109%;
  }
}

.navigation {
  display: none;
  width: 100%;
  padding: var(--space-xxxl) var(--space-xxl);
  justify-content: space-between;
  align-items: center;
}

.navigation__list {
  display: flex;
  align-items: center;
  gap: var(--space-l, 32px);
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.navigation__link {
  text-decoration: none;

  color: var(--white);
  font-family: var(--family-font-family-text);
  font-size: var(--font-utility-s);
  font-weight: var(--font-weight-bold);
  line-height: normal;
}

@media (hover: hover) {
  .navigation__link:hover {
    text-decoration: underline;
  }
}

.hero {
  /* Gradiente de fallback por si Unicorn no carga */
  background: linear-gradient(
    180deg,
    var(--accent-color, #4a81b9) 0%,
    var(--light-color, #a9b9c8) 84.62%,
    var(--gray-10, #aaaeb0) 100%
  );

  width: 100%;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  position: relative;

  @media (orientation: landscape) and (max-height: 500px) {
    .hero__img {
      width: 100%;
      bottom: -25%;
      left: 0;
    }
  }

  @media (orientation: portrait) and (min-width: 500px) {
    .hero__img {
      bottom: -30%;
    }
  }

  @media (min-width: 1000px) {
    .hero__img {
      width: 100%;
      bottom: 0;
      left: 0;
      aspect-ratio: 233/65;
    }
  }

  @media (min-width: 1300px) {
    .hero__img {
      position: absolute;
      bottom: -8%;
      left: 0;
      /* object-fit: contain;
      object-position: bottom center; */

      width: 100%;
      height: auto;
      aspect-ratio: 233/66;
      object-fit: cover;
      /* object-position: center; */
    }

    .hero__container {
      max-width: 1440px;
    }

    .hero__title {
      font-size: clamp(60px, calc(33.665px + 6.551vw), 128px);
    }

    .hero__subtitle-img {
      width: clamp(200px, calc(114.798px + 21.195vw), 420px);
      /* letter-spacing: 2px; */
    }

    .seagull--hero-right-1 {
      top: 34%;
      right: 24.6%;
      width: auto;
    }

    .seagull--hero-right-2 {
      top: 19.3%;
      right: 12.23%;
      width: auto;
      rotate: none;
    }

    .seagull--hero-left-1 {
      top: 16.89%;
      left: 37.98%;
      width: auto;
      rotate: none;
    }

    .seagull--hero-left-2 {
      top: 24%;
      left: 10.62%;
      width: auto;
    }

    .seagull--hero-left-2-mobile {
      display: none;
    }

    .seagull--hero-right-2-mobile {
      display: none;
    }

    .seagull--hero-left-3 {
      top: 33.15%;
      left: 20.68%;
      width: auto;
    }
  }
}

.hero__unicorn {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

.hero__unicorn canvas {
  display: block;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.45;
  mix-blend-mode: multiply;
  z-index: 10;
}

.hero__titles {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
}

.hero__title {
  margin: 0;
  color: var(--white); /*rgba(253, 248, 234, 0.8); */
  font-family: var(--family-font-family-header);
  font-size: clamp(60px, calc(33.665px + 6.551vw), 128px);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: normal;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}

.hero__subtitle-container {
  position: relative;
  width: 100%;
  margin-top: 14px;
}

.hero__subtitle {
  position: absolute;
  color: var(--text-color);
  text-align: center;
  font-family: var(--family-font-family-text);
  font-size: clamp(14px, calc(7.455px + 2.045vw), 32px);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: normal;
  letter-spacing: 0.85px;
  margin: 0;
  z-index: 6;
  width: 100%;

  top: 60%;
  left: 50%;
  transform: translate(-50%, -60%);
}
.hero__subtitle-img {
  position: absolute;
  margin: 0px;
  width: clamp(200px, calc(114.798px + 21.195vw), 420px);
  z-index: 5;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.seagull {
  position: absolute;
}

.seagull--hero-right-1 {
  top: 38%;
  right: 14%;
  width: 16%;
}

.seagull--hero-right-2 {
  top: 19.3%;
  right: 10%;
  rotate: 10deg;
}

.seagull--hero-left-1 {
  top: 12%;
  left: 32%;
  rotate: 14deg;
  width: 12%;
}

.seagull--hero-left-2 {
  top: 24%;
  left: 12%;
  width: 10%;
}

.seagull--hero-left-2-mobile {
  top: 28%;
  left: 44%;
  rotate: 26deg;
}
.seagull--hero-right-2-mobile {
  top: 6%;
  right: 30%;
  width: 6%;
}

.seagull--hero-left-3 {
  top: 40%;
  left: 14%;
}

.hero__img {
  width: 355%;
  height: auto;
  aspect-ratio: 157/62;
  object-fit: cover;

  position: absolute;
  bottom: -10%;
  right: -30%;
}

.projects {
  display: flex;
  width: 100%;
  padding: var(--space-xl) var(--space-s);
  flex-direction: column;
  align-items: center;
  gap: var(--space-xxl);

  @media (min-width: 1024px) {
    max-width: 1440px;
    padding: 80px var(--space-xxl) var(--space-xxxl) var(--space-xxl);
    gap: 82px;
    .title {
      font-size: var(--font-display-xxl);
    }

    .card {
      flex-direction: row;
      padding: var(--space-m);
      justify-content: space-between;
      align-items: center;
    }

    .card__content {
      order: 1;
      width: 33%;
      height: 80%;
      justify-content: center;
      gap: var(--space-m);
    }

    .card__img {
      order: 2;
      width: 34.37%;
      img {
        width: 100%;
      }
    }

    .card__content--reverse {
      order: 2;
    }

    .card__img--reverse {
      order: 1;
    }

    .card__btn {
      flex-direction: row;
      justify-content: start;
      gap: var(--space-xxs);
    }

    .seagull--projects-1 {
      display: inherit;
      top: 7%;
      left: 20.25%;
    }

    .seagull--projects-2 {
      display: inherit;
      top: 18.5%;
      right: 12.5%;
    }

    .seagull--projects-3 {
      display: inherit;
      top: 29.5%;
      right: 19.5%;
    }

    .seagull--projects-4 {
      display: inherit;
      top: 32.5%;
      left: 36%;
    }
  }
}

.seagull--projects-1 {
  display: none;
}

.seagull--projects-2 {
  display: none;
}

.seagull--projects-3 {
  display: none;
}

.seagull--projects-4 {
  display: none;
}

.title {
  margin: 0;
  color: var(--title-color);
  text-align: center;
  font-family: var(--family-font-family-header);
  font-size: var(--font-display-l);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: normal;
}

.card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-l);
  align-self: stretch;
}

.card__title {
  color: var(--title-color);
  font-family: var(--family-font-family-title);
  font-size: var(--space-xl);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: var(--font-line-height-display-xl);

  margin: 0;
}

.card__img {
  width: 90%;

  img {
    width: 100%;
  }
}

.card__tags {
  display: flex;
  align-items: center;
  gap: var(--space-xxs);
}

.tag {
  display: flex;
  padding: var(--space-xxs) var(--space-xs);
  justify-content: center;
  align-items: center;
  gap: 10px;

  border-radius: var(--border-border-width-l);
  background: var(--subtle-color);
}

.card__description {
  color: var(--text-color);
  font-family: var(--family-font-family-text);
  font-size: var(--font-utility-m);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: var(--font-line-height-utility-s);

  margin: 0;
}

.card__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-xs);
  align-self: stretch;
}

.card__content {
  display: flex;
  width: 100%;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: var(--space-m);
}

.card__btn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: var(--space-xxs);
  align-self: stretch;
}

.btn {
  display: flex;
  padding: var(--space-s) var(--space-m);
  justify-content: center;
  align-items: center;
  gap: var(--space-xs);
  align-self: stretch;

  font-family: var(--family-font-family-text);
  font-size: var(--font-utility-m);
  font-style: normal;
  font-weight: var(--font-weight-bold);
  line-height: var(--font-line-height-utility-l);

  text-decoration: none;
}

.btn--primary {
  border-radius: var(--border-border-width-l);
  background: var(--accent-color);
  border: var(--border-border-width-s) solid transparent;

  color: var(--white);
}

.btn--secondary {
  border-radius: var(--border-border-width-l);
  border: var(--border-border-width-s) solid var(--accent-color);

  color: var(--accent-color);
}

.about {
  display: flex;
  width: 100%;
  padding: var(--space-xl) var(--space-s);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--space-xxxs);

  @media (min-width: 1440px) {
    max-width: 1440px;
    padding: var(--space-xxxl) var(--space-xxl);
    gap: var(--space-xl);

    .title__about {
      font-size: var(--font-display-xxl);
      width: 35%;
    }

    .title {
      font-size: var(--space-4xl);
    }

    .text {
      font-size: var(--font-utility-l);
      line-height: normal;
    }

    .about__image {
      width: 21%;
    }

    .seagull--about-1 {
      top: 10.5%;
      left: 18%;
      width: auto;
    }

    .seagull--about-2 {
      top: 5%;
      right: 12.9%;
      width: auto;
    }
  }
}

.about--relative {
  position: relative;
}

.seagull--about-1 {
  top: 10.5%;
  left: 18%;
  width: 10%;
}

.seagull--about-2 {
  top: 5%;
  right: 12.9%;
  width: 10%;
}

.title__about {
  width: 48%;
  color: var(--black);
  text-align: center;
  font-family: var(--family-font-family-text);
  font-size: var(--font-display-l);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: normal;
}

.title__about--accent {
  color: var(--accent-color);
}

.about__image {
  width: 40%;
}

.contact {
  display: flex;
  width: 100%;

  padding: var(--space-xl) var(--space-s);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--space-l);

  @media (min-width: 1440px) {
    max-width: 1440px;
    padding: var(--space-xxxl) var(--space-xxl);
    gap: var(--space-xl);
    height: 150%;

    .card__btn {
      flex-direction: row;
      justify-content: center;
      gap: var(--space-xxs);
      margin-bottom: 15%;
    }

    .title__contact {
      font-size: var(--space-xxxl);
      width: 50%;
      text-align: center;
      margin-top: 15%;
    }

    .text {
      font-size: var(--font-utility-l);
    }

    .seagull--contact-1 {
      top: 8%;
      left: 16%;
      width: auto;
    }

    .seagull--contact-2 {
      top: 23%;
      right: 20%;
      width: auto;
    }
  }
}

.contact--relative {
  position: relative;
}

.seagull--contact-1 {
  top: 0;
  left: 6%;
  width: 10%;
}

.seagull--contact-2 {
  top: 0;
  right: 8%;
  width: 8%;
}

.title__contact {
  align-self: center;
  color: var(--white);
  text-align: center;
  font-family: var(--family-font-family-text);
  font-size: var(--font-display-l);
  font-style: normal;
  font-weight: var(--font-weight-bold);
  line-height: normal;
}

.title__contact--accent {
  color: var(--title-color);
}

.text {
  align-self: stretch;

  color: var(--text-color);
  text-align: center;
  font-family: var(--family-font-family-text);
  font-size: var(--font-utility-m);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: var(--font-line-height-utility-l);
}

.text--black {
  color: var(--black);
}

.text__p {
  margin: 0;
}

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

  @media (min-width: 1440px) {
    .footer__link-container {
      order: 2;
    }

    .author {
      order: 1;
    }

    .footer__info {
      flex-direction: row;
      padding: var(--space-xl) var(--space-xxl);
      justify-content: space-between;
      max-width: 1440px;
    }
    .ocean {
      width: 100%;
    }
  }
}

.footer__info {
  display: flex;
  width: 100%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--space-l);
  padding: var(--space-l) var(--space-s);

  color: var(--white);
  text-align: center;
  font-family: var(--family-font-family-text);
  font-size: var(--font-utility-m);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: var(--font-line-height-utility-s);
}

.footer__link-container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-xxs);
}

.footer__link {
  text-decoration: none;
  color: var(--white);
  text-align: center;
  font-family: var(--family-font-family-text);
  font-size: var(--font-utility-m);
  font-style: normal;
  font-weight: var(--font-weight-regular);
  line-height: var(--font-line-height-utility-s);
}

.footer__ocean {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  position: relative;
}

.footer__ocean::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity: 0.45;
  mix-blend-mode: multiply;
  z-index: 10;
}

.ocean {
  width: 200%;
  height: auto;
}

.dropdown {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 30vh;

  transition-property: opacity, display;
  transition-duration: 0.25s;
  transition-behavior: allow-discrete;
}

.nav {
  background-color: var(--background-color);
  padding: var(--space-l) var(--space-xl);
  width: 80%;
  border-radius: var(--space-s);
  line-height: 2;
  box-shadow: 0px 30px 60px rgba(109, 120, 129, 0.2);
}

.nav__list {
  list-style-type: none;
  text-align: center;
  padding: 0;
}

.nav__link {
  text-decoration: none;
  color: var(--title-color);
  font-size: var(--font-utility-s);
  font-weight: var(--font-weight-bold);
}

.nav__list--contact {
  border-top: 1px solid var(--accent-color);
  padding-top: var(--space-s);
}
.nav__link--contact {
  padding-top: 5px;
}
.menu-btn {
  display: flex;
  flex-direction: column;
  width: 3rem;
  height: 3rem;
  border: 0;
  background: transparent;
  gap: 0.65rem;
}

.header__bar {
  display: flex;
  justify-content: end;
  padding: var(--space-xl) var(--space-l) var(--space-s) var(--space-xl);
}
.menu-btn > div {
  background-color: var(--white);
  height: 2px;
  width: 100%;
  border-radius: 5px;
  transition: all 0.5s;
  transform-origin: left;
}

.hidden {
  display: none;
  opacity: 0;
}

.menu-btn--close div:first-child {
  transform: rotate(45deg);
}

.menu-btn--close div:nth-child(2) {
  opacity: 0;
}

.menu-btn--close div:last-child {
  transform: rotate(-45deg);
}

@media (hover: hover) {
  .footer__link:hover {
    text-decoration: underline;
  }

  .btn:hover {
    background: var(--white);
    border: var(--border-border-width-s) solid var(--accent-color);
    color: var(--accent-color);
  }

  .btn--primary:hover {
    color: var(--accent-color);
  }

  .hero__img:hover {
    transform: scale(1.1);
  }

  .hero__img {
    transition: transform 0.5s ease-in-out;
    transform: translate(0%, 30%);
  }
}
