/* =============================================
   Hero Main Section
   ============================================= */

.hm-section {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
  width: 100%;
  min-height: 100vh;
  overflow: hidden;
  font-family: 'Amorim Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
}

/* ----- Overlay ----- */
.hm-section__overlay {
  position: absolute;
  inset: 0;
  background: rgba(46, 91, 102, 0.81);
  z-index: 1;
}

/* ----- Inner layout ----- */
.hm-section__inner {
  position: relative;
  z-index: 2;
  max-width: 1440px;
  margin: 0 auto;
  padding: 98px 60px;
  min-height: 100vh;
  display: flex;
  align-items: center;
  gap: 40px;
}

/* ----- Left: text ----- */
.hm-section__left {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-top: 120px;
}

.hm-section__label {
  display: block;
  font-family: 'Amorim Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 18.5px;
  font-weight: 500;
  color: #ffffff;
  line-height: 1.4;
  max-width: 672px;
}

.hm-section__heading {
  font-family: 'Amorim Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: 57px;
  font-weight: 700;
  line-height: 1.2;
  color: #ffffff;
  margin: 0;
  max-width: 715px;
  letter-spacing: -2.28px;
}

/* CTA button */
.hm-section__cta {
  display: flex;
  position: relative;
  border: 1px solid #5eb3e4;
  color: #ffffff;
  text-decoration: none;
  font-family: 'Amorim Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: clamp(16px, 1.1vw, 18px);
  font-weight: 500;
  width: fit-content;
  overflow: hidden;
  transition: background 0.3s ease, border-color 0.3s ease;
  white-space: nowrap;
  align-items: center;
  justify-content: center; 
  padding: 16px 36px 16px 76px;
  border-radius: 2px;
}

.hm-section__cta:hover {
  background: #2e5b66;
  border-color: #ccecf2;
  color: #ffffff;
  text-decoration: none;
}

@keyframes ctaArrowTextEnd {
  0% {
    transform: translateX(0) translateZ(0);
  }
  100% {
    transform: translateX(6px) translateZ(0);
  }
}

.hm-section__cta-text {
  display: inline-block;
  z-index: 1;
  text-transform: uppercase;
  margin-top: 2px;
}

.hm-section__cta:hover .hm-section__cta-text {
  animation: ctaArrowTextEnd .45s cubic-bezier(.23, .46, .4, 1) forwards;
}

.hm-section__cta-svg {
  position: absolute;
  left: 2.3em;
  top: 50%;
  transform: translate(-200%, -50%);
  opacity: 0;
  transition: transform 0.3s ease, opacity 0.2s ease;
  z-index: 1;
}

.hm-section__cta:hover .hm-section__cta-svg {
  transform: translate(0%, -50%);
  opacity: 1;
}


@keyframes ctaArrowLineEnd {
  0% {
    transform-origin: right;
    transform: scaleX(1) translateY(calc(-50% + .5px)) translateZ(0);
  }
  50% {
    transform-origin: right;
    transform: scaleX(0) translateY(calc(-50% + .5px)) translateZ(0);
  }
  51% {
    transform-origin: left;
  }
  100% {
    transform: scaleX(1.2) translateY(calc(-50% + .5px)) translateZ(0);
    transform-origin: left;
  }
}
.hm-section__cta-line {
  height: 1px;
  width: 25px;
  position: absolute;
  content: '';
  left: 36px;
  display: block;
  top: 50%;
  background-color: #ffffff;
}
.hm-section__cta:hover .hm-section__cta-line {
  animation: ctaArrowLineEnd .45s cubic-bezier(.23, .46, .4, 1) forwards;
}


@keyframes ctaArrowSVGEnd {
  0% {
    transform: translateY(calc(-50% + .5px)) translateX(-3px) translateZ(0);
  }
  100% {
    transform: translateY(calc(-50% + .5px)) translateX(0) translateZ(0);
  }
}
.next-arrow {
  position: absolute;
  left: 61px;
  width: 6px;
}
.hm-section__cta:hover .next-arrow {
  animation: ctaArrowSVGEnd .45s cubic-bezier(.23, .46, .4, 1) forwards;
  top: 50%;
}



@keyframes ctaArrowStart {
  0% {
    stroke-dashoffset: 140px;
    stroke-dasharray: 140px;
  }

  100% {
    stroke-dasharray: 140px;
    stroke-dashoffset: 10px;
  }
}

.hm-section__cta polyline {
  stroke-dasharray: 140px;
  stroke-dashoffset: 140px;
}

.hm-section__cta:hover polyline {
  animation: ctaArrowStart .45s ease .25s forwards;
}

/* ----- Right: Lottie ----- */

#lottie-container {
    display: block;
    flex-shrink: 0;
    height: 580px;
    width: 45vw;
    max-width: 767px;
    position: absolute;
    bottom: clamp(-11vh, calc(-11vh + 24vh * ((100vh - 730px) / 320px)), 11vh);
    right: -3vw;
}

#lottie-container svg {
  width: 100% !important;
  height: 100% !important;
}

/* ----- Badge ----- */
.hm-section__badge {
  position: absolute;
  right: 51px;
  top: 34vh;
  width: 105px;
  height: 105px;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.hm-section__badge-img {
  width: 103px !important;
  height: 103px !important;
  object-fit: contain;
  display: block;
  background: transparent;
}

@media (max-width: 1440px) {
  #lottie-container {
    margin-right: 60px;
  }
}

/* ----- Responsive ----- */
@media (max-width: 1024px) {
  .hm-section__inner {
    display: flex;
    flex-direction: column;
    padding: 98px 28px 44px 28px;
    min-height: auto;
    gap; 28px;
  }

  .hm-section__left {
    padding-top: 20px;
  }

  .hm-section__heading {
    font-size: 38px;
  }

  #lottie-container {
    width: 100%;
    height: auto;
    aspect-ratio: 767 / 580;
    position: static;
  }

  .hm-section__badge {
    top: 0;
    right: 0;
    width: 72px;
    height: 72px;
    position: static;
    margin-top: 76px;
  }

  .hm-section__badge-img {
    width: 72px !important;
    height: 72px !important;
  }
}

@media (max-width: 600px) {
  .hm-section {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    min-height: auto;
  }

  .hm-section__heading {
   text-align: center;
   font-size: 30px;
   font-style: normal;
   font-weight: 700;
   line-height: 120%;
   letter-spacing: -1.2px;
  }

  .hm-section__label {
   text-align: center;;
   font-size: 16px;
   font-style: normal;
   font-weight: 500;
   line-height: 140%;
  }

  .hm-section__left {
    gap: 32px;
  }
  
  .hm-section__cta {
    display: flex;
    position: relative;
    width: 100%;
    max-width: 254px;
    margin-left: auto;
    margin-right: auto;
    flex: center;
    justify-content: center;
  }

  #lottie-container {
    width: 100%;
    height: auto;
    aspect-ratio: 767 / 580;
    position: static;
    margin-right: 0px;
    margin-left: 8vw;
  }
}