.hero-slider{position:relative;height:clamp(620px,72vh,720px);overflow:hidden;background:var(--off-white)}
.hero-track,.hero-slide{height:100%}
.hero-slide{position:absolute;inset:0;visibility:hidden;opacity:0;transition:opacity .7s ease,visibility .7s}
.hero-slide.is-active{z-index:2;visibility:visible;opacity:1}
.hero-slide::after{content:"";position:absolute;z-index:1;inset:0;background:rgba(0,0,0,var(--hero-overlay));pointer-events:none}
.hero-slide-copy{position:relative;z-index:3;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;width:min(calc(100% - 48px),600px);height:100%;margin-left:max(24px,calc((100vw - var(--container))/2));padding-right:3rem}
.hero-slide.align-center .hero-slide-copy{text-align:center;align-items:center}
.hero-slide.text-light .hero-slide-copy,.hero-slide.text-light h1{color:var(--white)}
.hero-slide-copy h1{font-size:clamp(3.6rem,6vw,6.7rem)}
.hero-slide-copy h1 em{display:block;font-weight:400}
.hero-description{max-width:580px;margin-bottom:2rem;color:inherit}
.hero-slide-media{position:absolute;z-index:0;inset:0;overflow:hidden;background:#ddd}
.hero-slide__picture,.hero-slide__image{display:block;width:100%;height:100%;opacity:1;visibility:visible}
.hero-slide__image{object-fit:cover;object-position:var(--hero-position);transform:scale(1.03)}
.hero-slide.is-active .hero-slide-media img{animation:heroZoom 1.4s ease forwards}
.hero-slide.is-active .eyebrow,.hero-slide.is-active h1,.hero-slide.is-active .hero-description,.hero-slide.is-active .button-row{animation:heroReveal .75s cubic-bezier(.2,.7,.2,1) both}
.hero-slide.is-active h1{animation-delay:.12s}
.hero-slide.is-active .hero-description{animation-delay:.26s}
.hero-slide.is-active .button-row{animation-delay:.4s}
.hero-controls{position:absolute;z-index:5;right:0;bottom:2rem;left:0;display:flex;align-items:center;justify-content:center;gap:1rem}
.hero-prev,.hero-next{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--black);background:var(--white)}
.hero-dots{display:flex;gap:.4rem}
.hero-dots button{width:28px;height:18px;padding:0;border:0;background:none}
.hero-dots span{display:block;height:2px;background:#aaa}
.hero-dots button[aria-selected=true] span{background:var(--black)}
.hero-progress{position:absolute;z-index:5;right:0;bottom:0;left:0;height:2px;background:rgba(0,0,0,.15)}
.hero-progress span{display:block;width:0;height:100%;background:var(--black)}
.hero-slider.is-playing .hero-progress span{animation:heroProgress var(--hero-speed,6000ms) linear}
.button svg{margin-left:.4rem;transition:transform .2s}
.button:hover svg{transform:translateX(4px)}
@keyframes heroReveal{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes heroZoom{to{transform:scale(1)}}
@keyframes heroProgress{to{width:100%}}
@media(max-width:767px){
	.hero-slider{height:clamp(620px,86vh,760px)}
	.hero-slide-media::after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(247,247,245,.93),rgba(247,247,245,.58) 58%,rgba(247,247,245,.08));pointer-events:none}
	.hero-slide.text-light .hero-slide-media::after{background:rgba(0,0,0,.42)}
	.hero-slide-copy{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:3rem 1.25rem 5rem;justify-content:flex-start}
	.hero-slide-copy h1{font-size:clamp(2.5rem,11vw,4rem)}
	.hero-slide .button-row{width:100%;flex-direction:column}
	.hero-slide .button{width:100%}
	.hero-controls{bottom:1rem}
}


/* Keep dynamic WordPress banner copy inside the original hero composition. */
.hero-slider,.hero-track,.hero-slide,.hero-slide-copy{box-sizing:border-box}
.hero-slide-copy{min-width:0;padding-top:clamp(2.75rem,5vh,4.5rem);padding-bottom:clamp(5rem,8vh,6.5rem)}
.hero-slide-copy h1{max-width:100%;margin-bottom:.45em;line-height:.94;overflow-wrap:normal;word-break:normal}
.hero-slide.is-long-title .hero-slide-copy h1{font-size:clamp(3.25rem,5.35vw,5.9rem)}
.hero-slide.is-very-long-title .hero-slide-copy h1{font-size:clamp(2.8rem,4.75vw,5.15rem)}
.hero-slide-copy .button-row{max-width:100%}
@media(max-width:767px){
  .hero-slide-copy{padding-top:clamp(2.5rem,8vh,4.5rem);padding-bottom:5.5rem}
  .hero-slide.is-long-title .hero-slide-copy h1{font-size:clamp(2.25rem,10vw,3.65rem)}
  .hero-slide.is-very-long-title .hero-slide-copy h1{font-size:clamp(2rem,9vw,3.2rem)}
}
