/* Lightweight SPA Trainer hero. Slide content is database-managed in WP BO. */
.spa-hero{position:relative;z-index:20;isolation:isolate;overflow:hidden;width:100vw;max-width:none;margin-left:calc(50% - 50vw);height:clamp(430px,48.6vw,750px);background:#43342f;color:white}
.spa-hero *{box-sizing:border-box}
.spa-hero__slides,.spa-hero__slide,.spa-hero__image,.spa-hero__shade{position:absolute;inset:0;width:100%;height:100%}
.spa-hero__slide{opacity:0;visibility:hidden;transition:opacity .7s ease,visibility .7s;z-index:1}
.spa-hero__slide.is-active{opacity:1;visibility:visible;z-index:2}
.spa-hero__image{object-fit:cover;object-position:center center;display:block}
.spa-hero__shade{background:linear-gradient(90deg,rgba(19,15,14,.43),rgba(19,15,14,.05) 83%);pointer-events:none}
.spa-hero__content{position:absolute;left:max(6vw,calc((100vw - 1170px)/2));right:16px;top:50%;max-width:710px;transform:translateY(-50%);z-index:2;padding:24px 12px;color:white;text-align:left}
.spa-hero__eyebrow{color:#fff;font-size:clamp(16px,1.8vw,23px);letter-spacing:.035em;margin:0 0 14px!important;text-shadow:0 2px 14px #0008}
.spa-hero__heading{color:#fff!important;font-weight:500;font-size:clamp(35px,5vw,74px);line-height:1.1;margin:0 0 26px!important;text-shadow:0 3px 25px #0007}
.spa-hero__button{display:inline-block;border:1px solid rgba(255,255,255,.9);padding:13px 26px;color:white!important;background:rgba(50,30,22,.35);text-decoration:none!important;font-size:15px;line-height:1.4;letter-spacing:.04em;transition:background .18s,border-color .18s}
.spa-hero__button:hover,.spa-hero__button:focus-visible{background:#694e42;border-color:#694e42;color:#fff}
.spa-hero__arrow{position:absolute;z-index:5;top:50%;transform:translateY(-50%);height:44px;width:42px;display:grid;place-items:center;background:#2c211b46;border:1px solid #ffffff69;color:#fff;cursor:pointer;padding:0!important;font-size:38px;line-height:1}
.spa-hero__arrow--prev{left:12px}.spa-hero__arrow--next{right:12px}
.spa-hero__arrow:hover,.spa-hero__arrow:focus-visible{background:#34231acc;color:#fff}
.spa-hero__dots{position:absolute;z-index:5;bottom:10px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:11px}
.spa-hero__dot{width:28px;height:28px;min-width:28px;min-height:28px;display:grid;place-items:center;padding:0!important;border:0;background:transparent;cursor:pointer;box-shadow:none}.spa-hero__dot::after{content:"";display:block;width:10px;height:10px;border:1px solid #fff;border-radius:50%;background:#ffffff77;box-shadow:0 1px 5px #0006}
.spa-hero__dot.is-active::after{background:white;transform:scale(1.15)}
.spa-hero button:focus-visible,.spa-hero a:focus-visible{outline:2px solid #fff;outline-offset:4px}
@media(max-width:767px){
 .spa-hero{height:100vw;min-height:360px;max-height:600px}
 .spa-hero__shade{background:linear-gradient(0deg,rgba(10,8,7,.55),rgba(10,8,7,.05) 75%)}
 .spa-hero__content{top:auto;bottom:44px;left:20px;right:20px;transform:none;max-width:none;padding:8px 4px;text-align:center}
 .spa-hero__eyebrow{font-size:15px;margin-bottom:6px!important}
 .spa-hero__heading{font-size:clamp(29px,7.7vw,45px);margin-bottom:16px!important}
 .spa-hero__button{font-size:13px;padding:9px 17px;background:#533f3599}
 .spa-hero__arrow{width:30px;height:34px;font-size:30px;top:46%;background:transparent;border-color:transparent}
 .spa-hero__arrow--prev{left:0}.spa-hero__arrow--next{right:0}
 .spa-hero__dots{bottom:7px}
}
@media(prefers-reduced-motion:reduce){.spa-hero__slide,.spa-hero__button{transition:none!important}}

/* Keep navigation above adjacent Elementor sections with negative spacing. */
body.home .elementor-element.elementor-element-4bad3a9{position:relative;z-index:20}
