.hero {
  position: relative;
  margin-top: 30px;
}
.hero-carousel {
  width: 100%;
  overflow: hidden;
}
/* Use a fixed aspect ratio like 16:6 to mimic reference */
.hero-carousel .carousel-item {
  height: 0;
  padding-top: 37.5%;
  position: relative;
}
.hero-carousel .carousel-item img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Controls (left/right arrows) */
.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next {
  width: 56px;
  height: 56px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0; /* hidden by default */
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s step-end;
}
.hero-carousel:hover .carousel-control-prev,
.hero-carousel:hover .carousel-control-next {
  opacity: 1; /* show on hover */
  visibility: visible;
  transition: opacity 0.25s ease, visibility 0s;
}
.hero-carousel .carousel-control-prev-icon,
.hero-carousel .carousel-control-next-icon {
  background-color: #000000; /* default white background */
  border-radius: 50%;
  background-size: 60%;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.15);
  filter: invert(1); /* make arrow black by default */
  transition: background-color 0.25s ease, filter 0.25s ease;
}
.hero-carousel .carousel-control-prev:hover .carousel-control-prev-icon,
.hero-carousel .carousel-control-next:hover .carousel-control-next-icon {
  background-color: #000; /* black background on hover */
  filter: invert(0); /* arrow stays white */
}
.hero-carousel .carousel-control-prev {
  left: 10px;
}
.hero-carousel .carousel-control-next {
  right: 10px;
}
/* Indicators (small dots) */
.hero-carousel .carousel-indicators {
  gap: 10px;
  margin-bottom: 14px;
}
.hero-carousel .carousel-indicators [data-bs-target] {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ddd;
  opacity: 1;
  border: 0;
  transition: background-color 0.25s ease, transform 0.25s ease;
}
.hero-carousel .carousel-indicators .active {
  background: #fff;
  transform: scale(1.15);
}

/* Responsive fine-tuning */
@media (max-width: 1200px) {
  .hero-carousel .carousel-item {
    padding-top: 40%;
  }
}
@media (max-width: 992px) {
  .hero-carousel .carousel-item {
    padding-top: 45%;
  }
}
@media (max-width: 576px) {
  .hero-carousel .carousel-item {
    padding-top: 60%;
  }
  .hero-carousel .carousel-control-prev,
  .hero-carousel .carousel-control-next {
    width: 44px;
    height: 44px;
  }
}