/* GENERAL LAYOUT */
.hero-section {
  width: 100%;
  padding: calc(var(--header-height-lg) + var(--container-py)) 0
    var(--container-py) 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background-image: url("../../../../images/blog-bg.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  position: relative;
}

.hero-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000000cc;
}

/* SLIDER STYLES */
.slider-container {
  position: relative;
  width: 100%;
  min-height: 250px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Base styles for slide boxes */
.slide-box {
  position: absolute;
  width: 100%;
  transform: translateX(200%);
  opacity: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  text-align: center;
}

.slide-box.active {
  transform: translateX(0);
}

/* TEXT & TYPING STYLES */

.hero-title {
  color: var(--primary-blue);
  font-weight: var(--font-weight-medium);
  font-size: var(--text-6xl);
}

.hero-subtitle2 {
  text-align: center;
  font-size: var(--text-2xl);
  max-width: 85%;
}

/* NAVIGATION DOTS */
.slider-nav {
  display: flex;
  gap: 12px;
}

.slider-nav .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: var(--text-secondary);
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.slider-nav .dot.active {
  background-color: var(--primary-blue);
}

/* Bidirectional Animation Logic with Opacity */
/* FORWARD (Next Slide) */
.slide-in-next {
  animation: slideInNext 0.6s ease-out forwards;
}

.slide-out-next {
  animation: slideOutNext 0.6s ease-out forwards;
}

.typing .typed-cursor {
  color: var(--primary-blue);
  font-weight: normal;
}
.hero-section .typed-cursor--blink {
  animation: blink 1s infinite;
}

@keyframes blink {
  0%,
  50% {
    opacity: 1;
  }
  51%,
  100% {
    opacity: 0;
  }
}

@keyframes slideInNext {
  from {
    transform: translateX(100%);
    opacity: 0.5;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideOutNext {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(-100%);
    opacity: 0.5;
  }
}

/* REVERSE (Previous Slide) */
.slide-in-prev {
  animation: slideInPrev 0.6s ease-out forwards;
}

.slide-out-prev {
  animation: slideOutPrev 0.6s ease-out forwards;
}

@keyframes slideInPrev {
  from {
    transform: translateX(-100%);
    opacity: 0.5;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideOutPrev {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0.5;
  }
}

.hero-section .container {
  width: 100%;
  max-width: var(--container-width);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

/* SLIDER STYLES */
.slider-container {
  position: relative;
  width: 100%;
  min-height: 250px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Base styles for slide boxes */
.slide-box {
  position: absolute;
  width: 100%;
  transform: translateX(200%);
  opacity: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 28px;
  text-align: center;
}

.slide-box.active {
  transform: translateX(0);
}

/* TEXT & TYPING STYLES */
.hero-subtitle {
  text-align: center;
  font-size: var(--text-2xl-large);
}

/* NAVIGATION DOTS */
.slider-nav {
  display: flex;
  gap: 12px;
  z-index: 2;
}

.slider-nav .dot.active {
  background-color: var(--primary-blue);
}

/* Bidirectional Animation Logic with Opacity */
/* FORWARD (Next Slide) */
.slide-in-next {
  animation: slideInNext 0.6s ease-out forwards;
}

.slide-out-next {
  animation: slideOutNext 0.6s ease-out forwards;
}

.typed-cursor--blink {
  animation: blink 1s infinite;
}

@keyframes blink {
  0%,
  50% {
    opacity: 1;
  }
  51%,
  100% {
    opacity: 0;
  }
}

@keyframes slideInNext {
  from {
    transform: translateX(100%);
    opacity: 0.5;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideOutNext {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(-100%);
    opacity: 0.5;
  }
}

/* REVERSE (Previous Slide) */
.slide-in-prev {
  animation: slideInPrev 0.6s ease-out forwards;
}

.slide-out-prev {
  animation: slideOutPrev 0.6s ease-out forwards;
}

@keyframes slideInPrev {
  from {
    transform: translateX(-100%);
    opacity: 0.5;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideOutPrev {
  from {
    transform: translateX(0);
    opacity: 1;
  }
  to {
    transform: translateX(100%);
    opacity: 0.5;
  }
}

/* button style */

.btn-talk-to-expert {
  z-index: 2;
  width: 231px;
  height: 53px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.btn-talk-to-expert:hover {
  background-color: var(--primary-blue);
}

.btn-talk-to-expert:hover p {
  color: var(--text-black);
}

.btn-talk-to-expert:hover i {
  color: var(--text-black);
}

.btn-talk-to-expert p {
  color: var(--primary-blue);
}

@media (max-width: 1158px) {
  .hero-section {
    padding: 0 var(--container-px);
    padding-bottom: var(--container-py);
    padding-top: var(--container-px);
  }

  .hero-section .container {
    padding: 0;
  }
}

@media (max-width: 586px) {
  .hero-section {
    padding-bottom: var(--container-pb);
  }
  .hero-subtitle {
    font-size: var(--text-2xl);
  }
  .hero-subtitle2 {
    font-size: var(--text-base);
    max-width: 100%;
  }
  .hero-title {
    font-size: var(--text-3xl);
  }
}
