/*! Corwell Core: shared section styles (generated by tools/sync_wp.py). */
/* =========================================================
   CORWELL — Hero slider engine (.hs)
   Markup:
   <section class="hs hs--fade" data-autoplay="7000" aria-roledescription="carousel" aria-label="…">
     <div class="hs__slides">
       <article class="hs__slide" aria-roledescription="slide" aria-label="1 of 3">…</article>
     </div>
     [data-hs-prev] [data-hs-next] [data-hs-toggle] [data-hs-go="0"] (+ .hs__bar inside for progress)
     [data-hs-current] [data-hs-total] .hs__live (aria-live)
   </section>
   Effects (class on .hs): hs--fade · hs--curtain · hs--slide · hs--stack · hs--zoom
   Text animation hooks inside a slide:
     [data-anim]            fade-up, delay from --i
     .hs-lines > span > span  masked line reveal, delay from --i
   ========================================================= */
.hs{position:relative;isolation:isolate;--hs-dur:7000ms;--hs-speed:1.1s;touch-action:pan-y}
.hs__slides{position:relative;display:grid}
.hs__slide{grid-area:1/1;position:relative;visibility:hidden;min-width:0}
/* until the page has loaded, only the first slide's photo renders (hidden slides would otherwise still download) */
.hs:not(.is-warm) .hs__slide:not(.is-active) .hs__media img{display:none}
.hs__slide.is-active,.hs__slide.is-leaving{visibility:visible}
.hs__slide.is-active{z-index:2}
.hs__slide.is-leaving{z-index:1}

/* --- Effect: fade (+ Ken Burns on .hs__media img) --- */
.hs--fade .hs__slide{opacity:0;transition:opacity var(--hs-speed) var(--ease),visibility 0s linear var(--hs-speed)}
.hs--fade .hs__slide.is-active{opacity:1;transition:opacity var(--hs-speed) var(--ease),visibility 0s}
.hs--fade .hs__slide.is-leaving{opacity:1}
.hs__media{position:absolute;inset:0;overflow:hidden;z-index:-1;background:var(--ink-2)}
.hs__media img{width:100%;height:100%;object-fit:cover}
.hs--kenburns .hs__slide.is-active .hs__media img{animation:hsKen calc(var(--hs-dur) + 2s) linear both}
.hs--kenburns .hs__slide:nth-child(even).is-active .hs__media img{animation-name:hsKen2}
@keyframes hsKen{from{transform:scale(1.14) translate3d(-1.5%,1%,0)}to{transform:scale(1) translate3d(0,0,0)}}
@keyframes hsKen2{from{transform:scale(1) translate3d(1%,0,0)}to{transform:scale(1.14) translate3d(-1%,-1%,0)}}

/* --- Effect: curtain (clip-path wipe; direction follows data-dir) --- */
.hs--curtain .hs__slide{clip-path:inset(0 0 0 0)}
.hs--curtain .hs__slide.is-active{animation:hsCurtainIn var(--hs-speed) cubic-bezier(.77,0,.18,1) both}
.hs--curtain[data-dir="prev"] .hs__slide.is-active{animation-name:hsCurtainInPrev}
.hs--curtain .hs__slide.is-active .hs__media img{animation:hsCurtainImg calc(var(--hs-speed) * 1.6) cubic-bezier(.2,.7,.2,1) both}
@keyframes hsCurtainIn{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
@keyframes hsCurtainInPrev{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes hsCurtainImg{from{transform:scale(1.25)}to{transform:scale(1)}}

/* --- Effect: slide (horizontal with parallax media) --- */
.hs--slide .hs__slides{overflow:hidden}
.hs--slide .hs__slide{transform:translateX(100%);transition:transform var(--hs-speed) cubic-bezier(.77,0,.18,1)}
.hs--slide .hs__slide .hs__media img{transform:translateX(-40%);transition:transform var(--hs-speed) cubic-bezier(.77,0,.18,1)}
.hs--slide .hs__slide.is-active,.hs--slide .hs__slide.is-active .hs__media img{transform:none}
.hs--slide .hs__slide.is-leaving{transform:translateX(-100%)}
.hs--slide .hs__slide.is-leaving .hs__media img{transform:translateX(40%)}
.hs--slide[data-dir="prev"] .hs__slide:not(.is-active):not(.is-leaving){transform:translateX(-100%)}
.hs--slide[data-dir="prev"] .hs__slide.is-leaving{transform:translateX(100%)}
.hs--slide[data-dir="prev"] .hs__slide.is-leaving .hs__media img{transform:translateX(-40%)}
.hs--slide[data-dir="prev"] .hs__slide:not(.is-active):not(.is-leaving) .hs__media img{transform:translateX(40%)}
.hs--slide.is-jump .hs__slide:not(.is-active):not(.is-leaving),.hs--slide.is-jump .hs__slide:not(.is-active):not(.is-leaving) .hs__media img{transition:none}

/* --- Effect: zoom (incoming scales down from 1.08, outgoing fades) --- */
.hs--zoom .hs__slide{opacity:0;transform:scale(1.06);transition:opacity var(--hs-speed) var(--ease),transform calc(var(--hs-speed) * 1.4) var(--ease)}
.hs--zoom .hs__slide.is-active{opacity:1;transform:none}
.hs--zoom .hs__slide.is-leaving{opacity:0;transform:scale(.97)}

/* --- Effect: stack (3D card deck; use with .hs__card children) --- */
.hs--stack .hs__slides{perspective:1400px}
.hs--stack .hs__slide{visibility:visible;transform-origin:50% 100%;transition:transform var(--hs-speed) cubic-bezier(.2,.8,.2,1),opacity var(--hs-speed) var(--ease),filter var(--hs-speed);opacity:0;transform:translate3d(0,40px,-160px) rotateX(8deg);pointer-events:none}
.hs--stack .hs__slide.is-active{opacity:1;transform:none;pointer-events:auto}
.hs--stack .hs__slide.is-next{opacity:.55;transform:translate3d(0,-26px,-90px) scale(.94);filter:saturate(.6)}
.hs--stack .hs__slide.is-next2{opacity:.25;transform:translate3d(0,-50px,-180px) scale(.88);filter:saturate(.4)}
.hs--stack .hs__slide.is-leaving{opacity:0;transform:translate3d(0,80px,40px) rotateX(-10deg)}

/* --- Text animation hooks --- */
.hs [data-anim]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .9s var(--ease)}
.hs .is-active [data-anim]{opacity:1;transform:none;transition-delay:calc(.35s + var(--i,0) * .1s)}
.hs .is-leaving [data-anim]{opacity:0;transform:translateY(-14px);transition-duration:.4s;transition-delay:0s}
.hs-lines{display:block}
.hs-lines>span{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.hs-lines>span>span{display:inline-block;transform:translateY(105%);transition:transform 1s cubic-bezier(.2,.75,.2,1)}
.hs .is-active .hs-lines>span>span{transform:none;transition-delay:calc(.25s + var(--i,0) * .09s)}
.hs .is-leaving .hs-lines>span>span{transform:translateY(-105%);transition-duration:.55s;transition-delay:0s}

/* --- Controls --- */
.hs__btn{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(255,255,255,.3);color:#fff;transition:.25s var(--ease);flex:none}
.hs__btn:hover{background:#fff;border-color:#fff;color:var(--ink)}
.hs__btn .ico{width:18px;height:18px}
.hs__btn--prev .ico{transform:rotate(180deg)}
.hs__btn--toggle .ico{width:16px;height:16px;fill:currentColor;stroke:none}
.hs--light .hs__btn{border-color:var(--line);color:var(--ink)}
.hs--light .hs__btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.hs__count{font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:baseline;gap:6px}
.hs__count [data-hs-current]{font-size:1.5rem}
.hs__count [data-hs-total]{opacity:.55}
/* progress bar inside a pager item: .hs__bar > i */
.hs__bar{display:block;height:2px;background:rgba(255,255,255,.22);border-radius:2px;overflow:hidden}
.hs__bar i{display:block;height:100%;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.hs--light .hs__bar{background:var(--line)}
.hs--light .hs__bar i{background:var(--primary)}
[data-hs-go][aria-current="true"] .hs__bar i{animation:hsBar var(--hs-dur) linear forwards}
.hs.is-paused [data-hs-go][aria-current="true"] .hs__bar i{animation-play-state:paused}
.hs:not(.is-playing) [data-hs-go][aria-current="true"] .hs__bar i{animation:none;transform:scaleX(1)}
@keyframes hsBar{to{transform:scaleX(1)}}
.hs__live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

@media (prefers-reduced-motion:reduce){
  .hs__slide,.hs__slide *{animation:none!important;transition:none!important}
  .hs [data-anim],.hs-lines>span>span{opacity:1!important;transform:none!important}
  .hs__slide:not(.is-active){visibility:hidden!important}
}

/* ============================================================
   Elementor integration (wp/_src/sections.css)
   ============================================================ */
/* Sections inside Elementor: the widget wrapper must not add spacing around full-width sections. */
.elementor-widget[class*="elementor-widget-corwell-"]{margin-bottom:0!important;width:100%}
.elementor-widget[class*="elementor-widget-corwell-"]>.elementor-widget-container{padding:0;margin:0}
.e-con.corwell-section-host,.e-con.corwell-section-host>.e-con-inner{padding:0!important;gap:0!important;max-width:none!important}
.elementor-editor-active .reveal{opacity:1!important;transform:none!important}
