/*!
 * Themeasy — Sticky Zoom Hero
 *
 * Scroll-scrubbed hero: the media starts as a centered rounded card behind the
 * headline and expands to full-bleed while the section stays pinned; the
 * contrast scrim deepens, the media settles from a slight zoom and the content
 * drifts back for depth.
 *
 * Layering:
 * - The BASE rendering below is the complete end state — a full-bleed hero
 *   with scrim, centered content and a focusable CTA — so the widget is fully
 *   usable with no JavaScript, without GSAP, in the editor (--static), on
 *   touch breakpoints and under prefers-reduced-motion.
 * - GSAP + ScrollTrigger layer the pinned card-to-full-bleed zoom on top
 *   (desktop, motion-allowed only) behind the JS-applied --enhanced class,
 *   driving transforms inline; gsap.matchMedia reverts them automatically.
 * - Text sits over a fixed dark scrim in every state, so the light content
 *   defaults are legible in light and dark themes alike.
 *
 * Tokens consumed: --tms-primary-color, --tms-heading-font,
 * --tms-heading-font-weight, --tms-h1-font-size, --tms-font-size-sm,
 * --tms-body-line-height, --tms-bold-font-weight, --tms-button-bg-color,
 * --tms-button-text-color, --tms-semibold-font-weight, --tms-radius-pill,
 * --tms-transition-base, --tms-container-width, --tms-container-gutter
 * (public --tms-* design API).
 *
 * @author Themeasy
 * @link https://themeasy.co
 * @since 1.0.0
 */
.tms-sticky-zoom-hero{--tms-sticky-zoom-hero-accent:var(--tms-primary-color,#5b6cff);--tms-sticky-zoom-hero-icon-gap:10px;--tms-sticky-zoom-hero-edge:clamp(1.25rem, 5vw, 4rem);--tms-sticky-zoom-hero-media-zoom-start:1.15;--tms-sticky-zoom-hero-overlay-start:.45;width:100%;position:relative}.tms-sticky-zoom-hero--edge-container{--tms-sticky-zoom-hero-edge:max(var(--tms-container-gutter,1rem), calc((100% - var(--tms-container-width,1240px)) / 2))}.tms-sticky-zoom-hero__stage{width:100%;min-height:100vh;padding:clamp(3rem, 9vh, 6rem) var(--tms-sticky-zoom-hero-edge);isolation:isolate;flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.tms-sticky-zoom-hero__frame{z-index:1;transform-origin:50%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.tms-sticky-zoom-hero--card-right{--tms-sticky-zoom-hero-start-x:calc((100% * (1 - var(--tms-sticky-zoom-hero-start-scale,.55)) / 2) - var(--tms-sticky-zoom-hero-edge))}.tms-sticky-zoom-hero--card-left{--tms-sticky-zoom-hero-start-x:calc(var(--tms-sticky-zoom-hero-edge) - (100% * (1 - var(--tms-sticky-zoom-hero-start-scale,.55)) / 2))}@media (scripting:enabled) and (min-width:768px) and (prefers-reduced-motion:no-preference){.tms-sticky-zoom-hero:not(.tms-sticky-zoom-hero--static):not(.tms-sticky-zoom-hero--no-motion) .tms-sticky-zoom-hero__frame{border-radius:var(--tms-sticky-zoom-hero-start-radius,28px);transform:translateX(var(--tms-sticky-zoom-hero-start-x,0px)) scale(var(--tms-sticky-zoom-hero-start-scale,.55))}.tms-sticky-zoom-hero:not(.tms-sticky-zoom-hero--static):not(.tms-sticky-zoom-hero--no-motion) .tms-sticky-zoom-hero__overlay{opacity:var(--tms-sticky-zoom-hero-overlay-start)}.tms-sticky-zoom-hero--media-zoom:not(.tms-sticky-zoom-hero--static):not(.tms-sticky-zoom-hero--no-motion) .tms-sticky-zoom-hero__media{transform:scale(var(--tms-sticky-zoom-hero-media-zoom-start))}}.tms-sticky-zoom-hero__frame .tms-sticky-zoom-hero__media{object-fit:cover;width:100%;height:100%;display:block}.tms-sticky-zoom-hero--enhanced .tms-sticky-zoom-hero__frame,.tms-sticky-zoom-hero--enhanced .tms-sticky-zoom-hero__media{will-change:transform}.tms-sticky-zoom-hero__overlay{position:absolute;top:0;bottom:0;left:0;right:0}.tms-sticky-zoom-hero__overlay:before{content:"";background-image:linear-gradient(#080a1259 0%,#080a12a6 100%);position:absolute;top:0;bottom:0;left:0;right:0}.tms-sticky-zoom-hero--overlay-custom .tms-sticky-zoom-hero__overlay:before{content:none}.tms-sticky-zoom-hero__content{z-index:2;text-align:center;flex-direction:column;align-items:center;width:100%;max-width:760px;margin-inline-start:auto;margin-inline-end:auto;display:flex;position:relative}.tms-sticky-zoom-hero__eyebrow{font-family:var(--tms-accent-font);font-size:var(--tms-font-size-sm,.875rem);font-weight:var(--tms-bold-font-weight,700);letter-spacing:.16em;text-transform:uppercase;color:#ffffffb8;margin-bottom:1rem;display:block}.tms-sticky-zoom-hero__title{color:#fff;font-size:var(--tms-h1-font-size,clamp(2.5rem, 6vw, 4.25rem));font-family:var(--tms-heading-font);font-weight:var(--tms-heading-font-weight,600);margin:0 0 1.25rem;line-height:1.08}.tms-sticky-zoom-hero__description{line-height:var(--tms-body-line-height,1.6);color:#ffffffc7;margin:0 0 2rem}.tms-sticky-zoom-hero__actions{display:flex}.tms-sticky-zoom-hero__button{gap:var(--tms-sticky-zoom-hero-icon-gap);border-radius:var(--tms-radius-pill,999px);min-height:44px;font-weight:var(--tms-semibold-font-weight,600);color:var(--tms-button-text-color,#fff);background-color:var(--tms-button-bg-color,var(--tms-sticky-zoom-hero-accent));transition:color var(--tms-transition-base,.3s ease), background-color var(--tms-transition-base,.3s ease), border-color var(--tms-transition-base,.3s ease), box-shadow var(--tms-transition-base,.3s ease), transform var(--tms-transition-base,.3s ease);border:1px solid #0000;justify-content:center;align-items:center;padding:14px 32px;line-height:1.2;text-decoration:none;display:inline-flex}a.tms-sticky-zoom-hero__button:hover{box-shadow:0 14px 32px -12px var(--tms-sticky-zoom-hero-accent);transform:translateY(-2px)}a.tms-sticky-zoom-hero__button:focus-visible{outline-offset:4px;outline:2px solid #fff}a.tms-sticky-zoom-hero__button:active{transform:translateY(0)}.tms-sticky-zoom-hero__button--static{cursor:default}.tms-sticky-zoom-hero__button-icon{transition:transform var(--tms-transition-base,.3s ease);flex:none;justify-content:center;align-items:center;font-size:1.15em;line-height:0;display:inline-flex}.tms-sticky-zoom-hero__button-icon svg{fill:currentColor;width:1em;height:1em}.tms-sticky-zoom-hero__button-icon svg[fill=none]{fill:none;stroke:currentColor}.tms-sticky-zoom-hero__button-icon img{width:1em;height:1em}.tms-sticky-zoom-hero__button-icon i{font-size:inherit;line-height:1}a.tms-sticky-zoom-hero__button:hover .tms-sticky-zoom-hero__button-icon{transform:translate(4px)}a.tms-sticky-zoom-hero__button:focus-visible .tms-sticky-zoom-hero__button-icon{transform:translate(4px)}.tms-sticky-zoom-hero--icon-left .tms-sticky-zoom-hero__button{flex-direction:row-reverse}.tms-sticky-zoom-hero--icon-left a.tms-sticky-zoom-hero__button:hover .tms-sticky-zoom-hero__button-icon{transform:translate(-4px)}.tms-sticky-zoom-hero--icon-left a.tms-sticky-zoom-hero__button:focus-visible .tms-sticky-zoom-hero__button-icon{transform:translate(-4px)}@media (prefers-reduced-motion:reduce){.tms-sticky-zoom-hero__button,.tms-sticky-zoom-hero__button-icon{transition:none}a.tms-sticky-zoom-hero__button:hover,a.tms-sticky-zoom-hero__button:hover .tms-sticky-zoom-hero__button-icon,.tms-sticky-zoom-hero--icon-left a.tms-sticky-zoom-hero__button:hover .tms-sticky-zoom-hero__button-icon{transform:none}a.tms-sticky-zoom-hero__button:focus-visible .tms-sticky-zoom-hero__button-icon{transform:none}.tms-sticky-zoom-hero--icon-left a.tms-sticky-zoom-hero__button:focus-visible .tms-sticky-zoom-hero__button-icon{transform:none}}