.hero {
  background: linear-gradient(to top right, #1c1c1c 0%, #1c1c1c 36%, #202c29 45%, #1c3632 52%, #16403a 62%, #104943 72%, #0b4d42 100%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  row-gap: var(--spacing-lg);
  padding-top: var(--spacing-4xl);
  overflow-x: hidden;
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
}

.hero__main {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 3;
}

.hero__main > h1 {
  font-size: clamp(var(--fs-lg), 5.5vw, var(--fs-3xl));
  font-family: var(--fira);
  font-weight: 400;
}

.hero__main > h2 {
  font-size: clamp(var(--fs-3xl), 14.5vw, var(--fs-8xl));
  font-family: var(--karla);
}

.hero__main-buttons {
  order: 3;
  display: flex;
  gap: var(--spacing-lg);
  width: 100%;
  justify-content: center;
}

.hero__main-buttons .slide-text {
  font-family: var(--karla);
}

.hero__button--left {
  max-width: 200px;
}

.hero__button--left,
.hero__button--right {
  display: inline-block;
  position: relative;
  overflow: hidden;
  height: 50px;
  width: 100%;
}

.hero__button--left .slide-text-1,
.hero__button--left .slide-text-2,
.hero__button--right .slide-text-1,
.hero__button--right .slide-text-2 {
  top: 24%;
  left: 0;
  right: 0;
  text-align: center;
}

.hero__button--left .slide-text-1,
.hero__button--right .slide-text-1 {
  position: absolute;
  transform: translateX(0%);
  transition: transform 125ms ease-in-out;
}

.hero__button--left .slide-text-2,
.hero__button--right .slide-text-2 {
  position: absolute;
  transform: translateX(350%);
  transition: transform 125ms ease-in-out;
}

.hero__button--right {
  max-width: 150px;
}

.hero__mail p {
  cursor: pointer;
  font-size: var(--fs-sm);
  font-family: var(--karla);
}

.hero__mail p:hover {
  color: var(--color-primary);
}

.hero__social-icons > a {
  position: relative;
}

.icon .hover {
  opacity: 0;
  position: absolute;
  top: 0;
  left: 0;
}

.icon .hover:hover {
  opacity: 1;
}

.icon .default:hover {
  opacity: 0;
}

.hero__social-icons > a:hover::after {
  content: "•";
  position: absolute;
  right: -10%;
  top: 10%;
  transform: translate(115%, 10%);
  color: var(--color-primary);
  font-size: var(--fs-lg);
}

.icon {
  display: inline-block;
  position: relative;
}

.icon > img {
  width: 40px;
  height: 40px;
}

.banner {
  width: 120%;
  padding: clamp(4px, 1.75vw, 8px) 0;
  display: flex;
  align-items: center;
  position: absolute;
  bottom: 25%;
  z-index: 2;
  background-color: rgb(67, 67, 67, 0.65);
  transform: rotate(-2deg);
  overflow: hidden;
  white-space: nowrap;
}

.banner__track {
  display: flex;
  align-items: center;
  gap: var(--spacing-2xl);
  animation: banner 12s linear infinite;
}

.banner__status {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-2xl);
  flex-shrink: 0;
  color: #3dcfb6;
  font-size: var(--spacing-lg);
  font-family: var(--karla);
  font-weight: 350;
}

.banner__dot {
  height: 8px;
  width: 8px;
  display: flex;
  align-items: center;
  gap: var(--spacing-2xl);
  background: #3dcfb6;
  border-radius: 50%;
}

.hero__side-elements {
  order: 5;
  display: flex;
  justify-content: space-between;
  align-items: end;
  width: 100%;
  position: relative;
  margin-top: auto;
}

.hero__side-left {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  margin-left: var(--spacing-xl);
}

.hero__side-left::after {
  content: "";
  width: 1.5px;
  height: 400px;
  background-color: var(--color-primary);
  display: block;
}

.hero__side-right {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  margin-right: var(--spacing-xl);
}

.hero__side-right::after {
  content: "";
  width: 1.5px;
  height: 300px;
  background-color: var(--color-text);
  display: block;
}

.hero__mail {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  white-space: nowrap;
  transform: rotate(180deg);
}

.hero__mail > a {
  transform: rotate(180deg);
}

.hero__social-icons {
  display: flex;
  flex-direction: column;
  row-gap: var(--spacing-sm);
}

.hero__button {
  font-size: clamp(var(--fs-xs), 4vw, var(--fs-md));
  font-family: var(--karla);
  border-radius: var(--br-35);
  border: 2px solid var(--color-text);
  color: var(--color-text);
  background-color: transparent;
  cursor: pointer;
  white-space: nowrap;
  transition:
    color 125ms ease,
    border-color 125ms ease;
}

.hero__button--left:hover,
.hero__button--right:hover {
  border: 2px solid var(--color-primary);
}

.hero__button--left:hover .slide-text-1,
.hero__button--right:hover .slide-text-1 {
  animation: slideOut 3000ms linear infinite;
  color: var(--color-primary);
}

.hero__button--left:hover .slide-text-2,
.hero__button--right:hover .slide-text-2 {
  animation: slideIn 3000ms linear infinite;
}

.slide-text-2 {
  color: var(--color-primary);
}

.image-wrapper {
  border: 2px solid var(--color-primary);
  border-radius: var(--br-25);
  padding: clamp(var(--spacing-sm), 4.5vw, var(--spacing-md)) clamp(var(--spacing-xxxs), 4.5vw, var(--spacing-xxs));
  margin-bottom: var(--spacing-sm);
  cursor: pointer;
}

.image-wrapper > img {
  height: clamp(15px, 5vw, 25px);
}

.image-wrapper > img {
  animation: bounce 1500ms linear infinite;
}

@media (max-width: 768px) {
  .hero__mail-adress {
    display: none;
  }

  .icon > img:first-of-type {
    display: inline-block;
  }

  .icon > img {
    width: 30px;
    height: 30px;
    display: inline-block;
  }
}

@media (max-width: 480px) {
  .hero__main-buttons {
    padding: 0 clamp(var(--spacing-sm), 2vw, var(--spacing-md));
  }
}

@media (min-height: 600px) and (max-height: 950px) {
  .hero {
    padding-top: var(--spacing-2xl);
  }

  .banner {
    bottom: 40%;
  }

  .hero__side-left::after {
    height: 325px;
  }
}
