.hero-carousel { isolation: isolate; }
.hero-slides { position: absolute; inset: 0; }
.hero-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .75s ease, visibility .75s; }
.hero-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.hero-slide::after { content: ""; position: absolute; inset: 38% 0 0; background: linear-gradient(transparent, rgba(18,31,23,.72)); pointer-events: none; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.82); transition: transform 7s ease; }
.hero-slide.is-active img { transform: scale(1.035); }
.hero-slide-enquiry { overflow: hidden; background: linear-gradient(145deg,#34483d 0%,#536a59 58%,#829280 100%); }
.hero-slide-enquiry::after { inset: 0; background: linear-gradient(180deg,rgba(18,31,23,.03),rgba(18,31,23,.58)); }
.hero-enquiry-pattern { position: absolute; right: -30px; top: 8%; color: rgba(255,255,255,.055); font: normal clamp(110px,16vw,235px)/1 var(--serif); letter-spacing: -.08em; transform: rotate(-7deg); }
.hero-enquiry-note { position: absolute; z-index: 2; left: 34px; top: 36px; max-width: 300px; color: rgba(255,255,255,.76); font-size: 9px; font-weight: 700; line-height: 1.6; letter-spacing: .14em; text-transform: uppercase; }
.hero-slide-caption { position: absolute; z-index: 2; left: 34px; right: 34px; bottom: 66px; display: grid; gap: 8px; color: #fff; text-shadow: 0 2px 16px rgba(20,31,24,.35); }
.hero-slide-caption small { font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.hero-slide-caption strong { max-width: 410px; font: normal clamp(27px,3vw,43px)/1.08 var(--serif); }
.hero-slide-caption > span { width: max-content; padding-bottom: 4px; border-bottom: 1px solid rgba(255,255,255,.7); font-size: 11px; font-weight: 700; }
.hero-carousel-arrow { position: absolute; z-index: 3; top: 50%; width: 42px; height: 42px; translate: 0 -50%; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; background: rgba(246,244,238,.88); color: var(--forest); font-size: 18px; opacity: 0; transition: opacity .25s, background .25s; }
.hero-carousel:hover .hero-carousel-arrow,.hero-carousel:focus-within .hero-carousel-arrow { opacity: 1; }
.hero-carousel-arrow:hover { background: #fff; }
.hero-carousel-prev { left: 18px; }
.hero-carousel-next { right: 18px; }
.hero-carousel-dots { position: absolute; z-index: 3; left: 34px; bottom: 28px; display: flex; gap: 9px; }
.hero-carousel-dots button { width: 26px; height: 3px; padding: 0; border: 0; background: rgba(255,255,255,.45); transition: width .3s, background .3s; }
.hero-carousel-dots button.is-active { width: 44px; background: #fff; }
.hero-carousel-count { position: absolute; z-index: 3; right: 34px; bottom: 24px; color: rgba(255,255,255,.8); font-size: 10px; letter-spacing: .12em; }
.hero-carousel-count b { color: #fff; font-weight: 700; }
@media (max-width:760px) {
  .hero-slide-caption { left: 22px; right: 22px; bottom: 57px; }
  .hero-slide-caption strong { font-size: 30px; }
  .hero-carousel-dots { left: 22px; bottom: 22px; }
  .hero-carousel-count { right: 22px; bottom: 18px; }
  .hero-carousel-arrow { opacity: 1; width: 38px; height: 38px; }
  .hero-enquiry-note { left: 22px; top: 26px; max-width: 240px; }
}
@media (prefers-reduced-motion:reduce) {
  .hero-slide,.hero-slide img { transition: none; }
}
