
section[data-module="home-banner"] {
  position: relative;
  overflow: hidden;
  background: #156082;
}

/* Main slider wrapper */
section[data-module="home-banner"] .hb-slider {
  position: relative;
  min-height: 850px;
  overflow: hidden;
}

/* Slide */
section[data-module="home-banner"] .hb-slide {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 0.75s ease,
    visibility 0.75s ease;
}

section[data-module="home-banner"] .hb-slide.is-active {
  z-index: 3;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Background */
section[data-module="home-banner"] .hb-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  background: #156082;
}

section[data-module="home-banner"] .hb-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  transform: none !important;
  filter: none !important;
  transition: opacity 0.55s ease;
}

/* Video background */
section[data-module="home-banner"] .hb-bg.has-video {
  background: white !important;
}

/* Image fallback before video loads - clear image, no blur */
section[data-module="home-banner"] .hb-bg.has-video .hb-bg-img {
  position: relative;
  z-index: 4;
  opacity: 1;
  transform: none !important;
  filter: none !important;
  transition: opacity 0.55s ease;
}

/* Video wrapper - fade only, no zoom */
section[data-module="home-banner"] .hb-video-wrap {
  position: absolute;
  inset: 0;
  z-index: 3;
  overflow: hidden;
  opacity: 0;
  transform: none !important;
  transition: opacity 0.55s ease;
  background: white;
  will-change: opacity;
}

/* Desktop / laptop video cover - no scale animation */
section[data-module="home-banner"] .hb-video-iframe {
  position: absolute;
  top: 55%;
  left: 50%;

  width: 100vw;
  height: 56.25vw;

  min-width: 177.77777778vh;
  min-height: 100%;

  max-width: none;
  max-height: none;

  transform: translate(-50%, -50%) !important;
  transition: none !important;

  border: 0;
  pointer-events: none;
}

/* When video ready */
section[data-module="home-banner"] .hb-bg.has-video.is-video-ready .hb-video-wrap {
  opacity: 1;
  transform: none !important;
}

/* Hide image smoothly after video appears */
section[data-module="home-banner"] .hb-bg.has-video.is-video-ready .hb-bg-img {
  opacity: 0;
  transform: none !important;
  filter: none !important;
}

/* Overlay */
section[data-module="home-banner"] .hb-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(21, 96, 130, 0.70) 0%,
    rgba(21, 96, 130, 0.52) 32%,
    rgba(21, 96, 130, 0.30) 62%,
    rgba(21, 96, 130, 0.10) 84%,
    rgba(21, 96, 130, 0) 100%
  );
}

section[data-module="home-banner"].is-changing .hb-slide.is-active .hb-bg-img {
  opacity: 1;
}

/* Content */
section[data-module="home-banner"] .hb-content {
  position: relative;
  z-index: 5;
  width: 100%;
  max-width: 820px;
  padding: 250px 0 0 8.4vw;
  color: #ffffff;
}

section[data-module="home-banner"] .hb-title {
  margin: 0;
  max-width: 760px;
  font-family: "Raleway", sans-serif;
  font-size: 70px;
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -1px;
  color: #ffffff;
}

section[data-module="home-banner"] .hb-title-white,
section[data-module="home-banner"] .hb-title-yellow {
  display: inline;
}

section[data-module="home-banner"] .hb-title-white {
  color: #ffffff;
}

section[data-module="home-banner"] .hb-title-yellow {
  color: #f9d067;
}

section[data-module="home-banner"] .hb-title::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 22px;
  margin-left: 14px;
  background: url('/wp-content/uploads/2026/04/water-after-heading.png') no-repeat center / contain;
  vertical-align: middle;
}

section[data-module="home-banner"] .hb-desc {
  max-width: 560px;
  margin: 24px 0 0;
  font-family: "Open Sans", sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.45;
  color: #ffffff;
}

/* Page indicator */
section[data-module="home-banner"] .hb-indicator {
  position: absolute;
  left: 8.4vw;
  top: 565px;
  z-index: 9;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  pointer-events: none;
}

section[data-module="home-banner"] .hb-dot {
  position: relative;
  width: 75px;
  height: 4px;
  padding: 0;
  border: 0;
  border-radius: 30px;
  background: rgba(255, 255, 255, 0.42);
  cursor: default;
  overflow: hidden;
  opacity: 1;
  transition:
    background 0.25s ease,
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

section[data-module="home-banner"] .hb-dot-fill {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  background: #37c2e3;
  border-radius: inherit;
  transform: scaleX(0);
  transform-origin: left center;
}

section[data-module="home-banner"] .hb-dot.is-active {
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 0 12px rgba(55, 194, 227, 0.45);
}

section[data-module="home-banner"] .hb-dot.is-playing .hb-dot-fill {
  animation: hbIndicatorTimer var(--hb-timer-duration, 5600ms) linear forwards;
}

section[data-module="home-banner"] .hb-dot::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -1px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ffffff;
  opacity: 0;
  transform: translateY(-50%) scale(0.6);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}

section[data-module="home-banner"] .hb-dot.is-active::after {
  opacity: 1;
  transform: translateY(-50%) scale(1);
}

@keyframes hbIndicatorTimer {
  0% {
    transform: scaleX(0);
    background: #37c2e3;
  }

  92% {
    transform: scaleX(1);
    background: #37c2e3;
  }

  100% {
    transform: scaleX(1);
    background: #ffffff;
  }
}

/* Arrow buttons */
section[data-module="home-banner"] .hb-arrow {
  position: absolute;
  top: 45%;
  z-index: 10;
  width: 54px;
  height: 54px;
  border-radius: 12px;
  border: 2px solid #f9d067;
  background: transparent;
  color: #f9d067;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    color 0.25s ease,
    opacity 0.25s ease,
    transform 0.25s ease;
}

section[data-module="home-banner"] .hb-prev {
  left: 24px;
}

section[data-module="home-banner"] .hb-next {
  right: 24px;
}

section[data-module="home-banner"] .hb-arrow span {
  display: block;
  width: 18px;
  height: 18px;
  background-color: currentColor;
  -webkit-mask: url('/wp-content/uploads/2026/04/button-right.png') no-repeat center / contain;
  mask: url('/wp-content/uploads/2026/04/button-right.png') no-repeat center / contain;
}

section[data-module="home-banner"] .hb-prev span {
  transform: rotate(180deg);
}

section[data-module="home-banner"] .hb-arrow.can-click {
  background: #f9d067;
  border-color: #f9d067;
  color: #156082;
}

section[data-module="home-banner"] .hb-arrow:hover {
  background: #f9d067;
  border-color: #f9d067;
  color: #156082;
  transform: translateY(-2px);
}

/* Wave */
section[data-module="home-banner"] .hb-wave-wrap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  z-index: 6;
  width: 100%;
  height: 345px;
  pointer-events: none;
  overflow: hidden;
}

section[data-module="home-banner"] .hb-wave-wrap::after {
  display: none !important;
  content: none !important;
}

section[data-module="home-banner"] .hb-wave {
  position: absolute;
  left: 0;
  width: 100%;
  display: block;
}

section[data-module="home-banner"] .hb-wave path {
  fill: #ffffff;
}

section[data-module="home-banner"] .hb-wave-back {
  bottom: 38px;
  height: 205px;
  z-index: 2;
  opacity: 0.16;
}

section[data-module="home-banner"] .hb-wave-front {
  bottom: -55px;
  height: 310px;
  z-index: 3;
  opacity: 1;
}

/* Laptop */
@media (max-width: 1640px) {
  section[data-module="home-banner"] .hb-slider {
    min-height: 760px;
  }
	
	section[data-module="home-banner"] .hb-video-iframe {
	  top: 50%;
	}

  section[data-module="home-banner"] .hb-video-iframe {
    transform: translate(-50%, -50%) !important;
  }

  section[data-module="home-banner"] .hb-content {
    max-width: 760px;
    padding-top: 258px;
  }

  section[data-module="home-banner"] .hb-title {
    max-width: 700px;
    font-size: 60px;
  }

  section[data-module="home-banner"] .hb-desc {
    max-width: 520px;
    font-size: 18px;
  }

  section[data-module="home-banner"] .hb-indicator {
    top: 500px;
  }

  section[data-module="home-banner"] .hb-wave-wrap {
    height: 340px;
    bottom: -1px;
  }

  section[data-module="home-banner"] .hb-wave-back {
    bottom: 20px;
    height: 325px;
    opacity: 0.16;
  }

  section[data-module="home-banner"] .hb-wave-front {
    bottom: -100px;
    height: 400px;
  }
}

/* Small laptop / tablet landscape */
@media (max-width: 1199px) {
  section[data-module="home-banner"] .hb-slider {
    min-height: 650px;
  }

  section[data-module="home-banner"] .hb-video-iframe {
    transform: translate(-50%, -50%) !important;
  }

  section[data-module="home-banner"] .hb-content {
    max-width: 620px;
    padding: 185px 70px 0;
  }

  section[data-module="home-banner"] .hb-title {
    max-width: 560px;
    font-size: 50px;
  }

  section[data-module="home-banner"] .hb-desc {
    max-width: 440px;
    font-size: 18px;
  }

  section[data-module="home-banner"] .hb-indicator {
    left: 70px;
    top: 420px;
  }

  section[data-module="home-banner"] .hb-arrow {
    width: 48px;
    height: 48px;
  }

  section[data-module="home-banner"] .hb-arrow span {
    width: 16px;
    height: 16px;
  }

  section[data-module="home-banner"] .hb-wave-wrap {
    height: 270px;
    bottom: -1px;
  }

  section[data-module="home-banner"] .hb-wave-back {
    bottom: 36px;
    height: 175px;
    opacity: 0.14;
  }

  section[data-module="home-banner"] .hb-wave-front {
    bottom: -80px;
    height: 380px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  section[data-module="home-banner"] .hb-slider {
    min-height: 620px;
  }

  section[data-module="home-banner"] .hb-bg {
    background: #156082;
  }

  section[data-module="home-banner"] .hb-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    filter: none !important;
  }

  /*
    Mobile video:
    Full cover, no zoom animation.
    不用 width:auto，不然视频会变成小块。
  */
  section[data-module="home-banner"] .hb-video-iframe {
    position: absolute;
    top: 50%;
    left: 50%;

    width: 100vw !important;
    height: 56.25vw !important;

    min-width: 177.77777778vh !important;
    min-height: 100% !important;

    max-width: none !important;
    max-height: none !important;

    transform: translate(-50%, -50%) !important;
    transition: none !important;

    border: 0;
    pointer-events: none;
  }

  section[data-module="home-banner"] .hb-video-wrap {
    opacity: 0;
    transform: none !important;
    transition: opacity 0.45s ease;
    background: #156082;
  }

  section[data-module="home-banner"] .hb-bg.has-video.is-video-ready .hb-video-wrap {
    opacity: 1;
    transform: none !important;
  }

  section[data-module="home-banner"] .hb-bg.has-video .hb-bg-img {
    opacity: 1;
    filter: none !important;
    transform: none !important;
    transition: opacity 0.45s ease;
  }

  section[data-module="home-banner"] .hb-bg.has-video.is-video-ready .hb-bg-img {
    opacity: 0;
    filter: none !important;
    transform: none !important;
  }

  section[data-module="home-banner"] .hb-slide::before {
    background: linear-gradient(
      180deg,
      rgba(21, 96, 130, 0.82) 0%,
      rgba(21, 96, 130, 0.62) 36%,
      rgba(21, 96, 130, 0.36) 68%,
      rgba(21, 96, 130, 0.08) 100%
    );
  }

  section[data-module="home-banner"] .hb-content {
    max-width: 100%;
    padding: 115px 24px 0;
  }

  section[data-module="home-banner"] .hb-title {
    max-width: 330px;
    font-size: 36px;
    line-height: 1.08;
    letter-spacing: -0.5px;
  }

  section[data-module="home-banner"] .hb-desc {
    max-width: 290px;
    font-size: 18px;
    line-height: 1.4;
    margin-top: 16px;
  }

  section[data-module="home-banner"] .hb-title::after {
    width: 14px;
    height: 18px;
    margin-left: 10px;
  }

  section[data-module="home-banner"] .hb-indicator {
    left: 24px;
    top: 360px;
    gap: 9px;
  }

  section[data-module="home-banner"] .hb-dot {
    width: 34px;
    height: 3px;
  }

  section[data-module="home-banner"] .hb-dot.is-active {
    width: 46px;
  }

  section[data-module="home-banner"] .hb-arrow {
    top: auto;
    bottom: 185px;
    width: 40px;
    height: 40px;
    border-radius: 10px;
  }

  section[data-module="home-banner"] .hb-prev {
    left: 20px;
    right: auto;
  }

  section[data-module="home-banner"] .hb-next {
    left: 72px;
    right: auto;
  }

  section[data-module="home-banner"] .hb-arrow span {
    width: 14px;
    height: 14px;
  }

  section[data-module="home-banner"] .hb-wave-wrap {
    height: 185px;
    bottom: -1px;
  }

  section[data-module="home-banner"] .hb-wave-back {
    bottom: 22px;
    height: 118px;
    opacity: 0.08;
  }

  section[data-module="home-banner"] .hb-wave-front {
    bottom: -38px;
    height: 185px;
    opacity: 1;
  }
}

/* Small mobile */
@media (max-width: 480px) {
  section[data-module="home-banner"] .hb-slider {
    min-height: 500px;
  }

  section[data-module="home-banner"] .hb-video-iframe {
    width: 100vw !important;
    height: 56.25vw !important;

    min-width: 177.77777778vh !important;
    min-height: 100% !important;

    max-width: none !important;
    max-height: none !important;

    transform: translate(-50%, -50%) !important;
    transition: none !important;
  }

  section[data-module="home-banner"] .hb-content {
    padding: 80px 20px 0;
  }

  section[data-module="home-banner"] .hb-title {
    max-width: 300px;
    font-size: 32px;
  }

  section[data-module="home-banner"] .hb-desc {
    max-width: 260px;
    font-size: 18px;
  }

  section[data-module="home-banner"] .hb-indicator {
    left: 20px;
    top: 300px;
  }

  section[data-module="home-banner"] .hb-dot {
    width: 30px;
  }

  section[data-module="home-banner"] .hb-dot.is-active {
    width: 42px;
  }

  section[data-module="home-banner"] .hb-arrow {
    bottom: 125px;
  }

  section[data-module="home-banner"] .hb-wave-wrap {
    height: 170px;
    bottom: -1px;
  }

  section[data-module="home-banner"] .hb-wave-back {
    bottom: 20px;
    height: 108px;
  }

  section[data-module="home-banner"] .hb-wave-front {
    bottom: -34px;
    height: 168px;
  }
}