/* Edge-to-edge homepage hero and accessible category-strip controls. */
.home-hero-band {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #10251a;
}

.home-minimal .home-carousel {
  width: 100%;
  max-width: none;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
}

.home-minimal .home-slide {
  min-height: clamp(360px, 42vw, 590px);
}

.home-minimal .home-carousel .carousel-control-prev,
.home-minimal .home-carousel .carousel-control-next {
  z-index: 2;
  width: clamp(54px, 6vw, 82px);
  opacity: .82;
}

.home-minimal .home-carousel .carousel-control-prev-icon,
.home-minimal .home-carousel .carousel-control-next-icon {
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 50%;
  background-color: rgba(8, 24, 17, .38);
  background-size: 42%;
  backdrop-filter: blur(8px);
}

.home-minimal .home-carousel .carousel-control-prev:hover,
.home-minimal .home-carousel .carousel-control-next:hover {
  opacity: 1;
}

.home-minimal .home-carousel .carousel-indicators {
  margin-bottom: 1.25rem;
}

.service-category-carousel {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  align-items: center;
  gap: .65rem;
  min-width: 0;
}

.service-category-carousel:not(.has-overflow) {
  grid-template-columns: minmax(0, 1fr) 0 0;
  gap: 0;
}

.service-category-carousel .service-category-strip {
  display: flex;
  min-width: 0;
  flex-wrap: nowrap;
  align-items: center;
  gap: .55rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  padding: .2rem 0;
  margin: 0;
}

.service-category-carousel .service-category-strip::-webkit-scrollbar {
  display: none;
}

.service-category-carousel .service-category-strip a {
  display: inline-flex;
  min-height: 44px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: .55rem .95rem;
  border: 1px solid #e0e8e2;
  border-radius: 999px;
  background: #e9efeb;
  color: #30453a;
  font-size: .92rem;
  font-weight: 650;
  line-height: 1.2;
  scroll-snap-align: start;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.service-category-carousel .service-category-strip a:hover {
  transform: translateY(-1px);
  border-color: #b7d1c0;
  background: #deebe2;
  color: #173f2c;
}

.service-category-carousel .service-category-strip a.active {
  border-color: #142b20;
  background: #142b20;
  color: #fff;
}

.category-scroll-arrow {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid #d9e3dc;
  border-radius: 50%;
  background: #fff;
  color: #1d6542;
  box-shadow: 0 4px 14px rgba(18, 47, 31, .09);
  font-size: 1rem;
  transition: background-color .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.category-scroll-arrow:not(:disabled):hover {
  transform: translateY(-1px);
  border-color: #176b46;
  background: #176b46;
  color: #fff;
  box-shadow: 0 7px 18px rgba(18, 88, 54, .2);
}

.category-scroll-arrow:disabled {
  background: #edf1ee;
  color: #9aa79f;
  box-shadow: none;
  cursor: default;
}

.category-scroll-arrow[hidden] {
  display: none !important;
}

@media (max-width: 575.98px) {
  .home-minimal .home-slide {
    min-height: 330px;
    padding-inline: clamp(3.5rem, 12vw, 4.5rem);
  }

  .home-minimal .home-carousel .carousel-control-prev,
  .home-minimal .home-carousel .carousel-control-next {
    width: 54px;
  }

  .home-minimal .home-carousel .carousel-control-prev-icon,
  .home-minimal .home-carousel .carousel-control-next-icon {
    width: 38px;
    height: 38px;
  }

  .home-minimal .home-carousel .carousel-indicators {
    margin-bottom: .9rem;
  }

  .service-category-carousel {
    grid-template-columns: 38px minmax(0, 1fr) 38px;
    gap: .4rem;
  }

  .service-category-carousel:not(.has-overflow) {
    grid-template-columns: minmax(0, 1fr) 0 0;
    gap: 0;
  }

  .category-scroll-arrow {
    width: 36px;
    height: 36px;
  }

  .service-category-carousel .service-category-strip {
    gap: .4rem;
  }

  .service-category-carousel .service-category-strip a {
    min-height: 40px;
    padding: .45rem .78rem;
    font-size: .84rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-category-carousel .service-category-strip {
    scroll-behavior: auto;
  }

  .service-category-carousel .service-category-strip a,
  .category-scroll-arrow {
    transition: none;
  }
}
