/* v7 token application only for opted-in Zeetoc widgets */
.elementor-widget[class*="elementor-widget-zeetoc_"].zt7-use-tokens-yes{--zt-accent:var(--zt7-primary);--zt-studio-accent:var(--zt7-primary);--zt7-fx-ink:var(--zt7-ink);--zt7-fx-surface:var(--zt7-surface);color:var(--zt7-ink);font-family:var(--zt7-font)}
.elementor-widget[class*="elementor-widget-zeetoc_"].zt7-use-tokens-yes > .elementor-widget-container{font-size:calc(1rem * var(--zt7-scale));}
.elementor-widget[class*="elementor-widget-zeetoc_"].zt7-use-tokens-yes:not([class*="zt-preset-studio-"]):not([class*="zt-preset-custom-"]) > .elementor-widget-container{border-radius:var(--zt7-radius);}
.elementor-widget.zt7-use-tokens-yes :is(h1,h2,h3,h4,h5,h6){font-family:inherit;color:var(--zt7-ink)}
.elementor-widget.zt7-use-tokens-yes :is(p,li){color:var(--zt7-muted)}
.elementor-widget.zt7-use-tokens-yes :is(.zeetoc-btn,.zt-btn,.zt-cartbtn){border-radius:var(--zt7-button-radius)}
/* Explicit per-widget visual effects. No global changes to existing designs. */
.elementor-widget[class*="elementor-widget-zeetoc_"].zt7-fx-glass > .elementor-widget-container{background:color-mix(in srgb,var(--zt7-fx-surface,#fff) 64%,transparent)!important;backdrop-filter:blur(var(--zt7-glass-blur,16px)) saturate(140%);-webkit-backdrop-filter:blur(var(--zt7-glass-blur,16px)) saturate(140%);border:1px solid color-mix(in srgb,var(--zt-accent,#635bff) 18%,#fff)!important;box-shadow:0 18px 55px rgba(19,25,52,.10)}
.elementor-widget[class*="elementor-widget-zeetoc_"].zt7-fx-gradient > .elementor-widget-container{background:linear-gradient(var(--zt7-gradient-angle,130deg),color-mix(in srgb,var(--zt-accent,#635bff) 17%,#fff),var(--zt7-fx-surface,#fff),color-mix(in srgb,var(--zt7-secondary,#12b8a6) 15%,#fff));background-size:250% 250%}
.elementor-widget[class*="elementor-widget-zeetoc_"].zt7-fx-animated-gradient > .elementor-widget-container{background:linear-gradient(var(--zt7-gradient-angle,120deg),var(--zt-accent,#635bff),color-mix(in srgb,var(--zt-accent,#635bff) 25%,#fff),var(--zt7-secondary,#12b8a6));background-size:280% 280%;animation:zt7-gradient-flow 9s ease-in-out infinite alternate;color:var(--zt7-fx-ink,#1e2540)}
@keyframes zt7-gradient-flow{0%{background-position:0 40%}100%{background-position:100% 60%}}
.elementor-widget[class*="elementor-widget-zeetoc_"].zt7-fx-glow-border > .elementor-widget-container{border:1px solid var(--zt-accent,#635bff)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--zt-accent,#635bff) 35%,transparent),0 0 25px color-mix(in srgb,var(--zt-accent,#635bff) 19%,transparent)}
.elementor-widget[class*="elementor-widget-zeetoc_"].zt7-fx-spotlight > .elementor-widget-container{position:relative;isolation:isolate}
.elementor-widget.zt7-fx-spotlight > .elementor-widget-container:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .35s;background:radial-gradient(360px circle at var(--zt7-pointer-x,50%) var(--zt7-pointer-y,50%),color-mix(in srgb,var(--zt-accent,#635bff) 16%,transparent),transparent 70%)}
.elementor-widget.zt7-fx-spotlight:hover > .elementor-widget-container:before,.elementor-widget.zt7-fx-spotlight:focus-within > .elementor-widget-container:before{opacity:1}
/* Extended entrances require the v6 observer; content remains visible before JS starts */
body.zt-motion-on .elementor-widget.zt-enter-blur-up.zt-enter-playing > .elementor-widget-container{animation:zt7-in-blur var(--zt-enter-duration,650ms) var(--zt7-ease,cubic-bezier(.2,.7,.2,1)) var(--zt-enter-delay,0ms) both}
body.zt-motion-on .elementor-widget.zt-enter-wipe-up.zt-enter-playing > .elementor-widget-container{animation:zt7-in-wipe var(--zt-enter-duration,650ms) var(--zt7-ease,cubic-bezier(.2,.7,.2,1)) var(--zt-enter-delay,0ms) both}
body.zt-motion-on .elementor-widget.zt-enter-rotate-in.zt-enter-playing > .elementor-widget-container{animation:zt7-in-rotate var(--zt-enter-duration,650ms) var(--zt7-ease,cubic-bezier(.2,.7,.2,1)) var(--zt-enter-delay,0ms) both}
body.zt-motion-on .elementor-widget.zt-enter-pop.zt-enter-playing > .elementor-widget-container{animation:zt7-in-pop var(--zt-enter-duration,650ms) var(--zt7-ease,cubic-bezier(.2,.7,.2,1)) var(--zt-enter-delay,0ms) both}
body.zt-motion-on .elementor-widget.zt-enter-blur-up.zt-enter-pending > .elementor-widget-container,body.zt-motion-on .elementor-widget.zt-enter-wipe-up.zt-enter-pending > .elementor-widget-container,body.zt-motion-on .elementor-widget.zt-enter-rotate-in.zt-enter-pending > .elementor-widget-container,body.zt-motion-on .elementor-widget.zt-enter-pop.zt-enter-pending > .elementor-widget-container{opacity:0}
@keyframes zt7-in-blur{from{opacity:0;filter:blur(14px);transform:translateY(26px)}to{opacity:1;filter:blur(0);transform:none}}
@keyframes zt7-in-wipe{from{opacity:0;clip-path:inset(100% 0 0)}to{opacity:1;clip-path:inset(0)}}
@keyframes zt7-in-rotate{from{opacity:0;transform:perspective(900px) rotateX(-13deg) translateY(20px)}to{opacity:1;transform:none}}
@keyframes zt7-in-pop{from{opacity:0;transform:scale(.82)}65%{opacity:1;transform:scale(1.025)}to{transform:scale(1)}}
body.zt-motion-on .elementor-widget.zt-hover-tilt > .elementor-widget-container{transform:perspective(1100px) rotateX(var(--zt7-tilt-x,0deg)) rotateY(var(--zt7-tilt-y,0deg));transition:transform .28s ease,box-shadow .28s ease;will-change:transform}
body.zt-motion-on .elementor-widget.zt-hover-shine > .elementor-widget-container{position:relative;overflow:hidden;isolation:isolate}
body.zt-motion-on .elementor-widget.zt-hover-shine > .elementor-widget-container:after{content:"";pointer-events:none;position:absolute;inset:0;z-index:5;background:linear-gradient(112deg,transparent 35%,rgba(255,255,255,.32) 48%,transparent 60%);transform:translateX(-130%);transition:transform .8s ease}
body.zt-motion-on .elementor-widget.zt-hover-shine:hover > .elementor-widget-container:after{transform:translateX(130%)}
body.zt-motion-on .elementor-widget.zt-hover-border-glow > .elementor-widget-container{transition:box-shadow .35s ease,outline-color .35s ease}
body.zt-motion-on .elementor-widget.zt-hover-border-glow:hover > .elementor-widget-container{box-shadow:0 0 0 2px var(--zt-accent,#635bff),0 15px 40px color-mix(in srgb,var(--zt-accent,#635bff) 24%,transparent)}
.elementor-widget.zt7-magnetic-yes :is(.zeetoc-btn,.zt-btn,.zt-cartbtn,a.elementor-button){translate:var(--zt7-magnet-x,0px) var(--zt7-magnet-y,0px);transition:translate .2s ease-out}
/* Decorative pointer accent. Never hide the browser cursor. */
.elementor-widget:is(.zt7-cursor-dot,.zt7-cursor-ring) > .elementor-widget-container{position:relative;isolation:isolate}
.elementor-widget .zt7-cursor-follower{position:absolute;z-index:20;left:var(--zt7-cursor-x,50%);top:var(--zt7-cursor-y,50%);display:block;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .15s ease;will-change:left,top}
.elementor-widget.zt7-cursor-dot .zt7-cursor-follower{width:11px;height:11px;border-radius:100%;background:var(--zt-accent,#635bff);box-shadow:0 0 22px color-mix(in srgb,var(--zt-accent,#635bff) 60%,transparent)}
.elementor-widget.zt7-cursor-ring .zt7-cursor-follower{width:45px;height:45px;border:1.5px solid var(--zt-accent,#635bff);border-radius:50%;background:color-mix(in srgb,var(--zt-accent,#635bff) 8%,transparent);box-shadow:0 0 25px color-mix(in srgb,var(--zt-accent,#635bff) 18%,transparent)}
.elementor-widget:is(.zt7-cursor-dot,.zt7-cursor-ring):hover .zt7-cursor-follower{opacity:.95}
.elementor-widget.zt7-parallax-yes img{translate:0 var(--zt7-parallax-y,0px);transition:translate .08s linear}
body.zt-motion-on .elementor-widget.zt7-stagger-yes.zt7-stagger-playing > .elementor-widget-container > :is(div,article,section,ul) > :is(div,article,li){animation:zt7-stagger-up .7s both;animation-delay:calc(var(--zt7-stagger-step,90ms) * var(--zt7-stagger-index,0))}
body.zt-motion-on .elementor-widget.zt7-stagger-yes.zt7-stagger-playing > .elementor-widget-container > :is(div,article,section,ul) > :is(div,article,li):nth-child(2){--zt7-stagger-index:1}
body.zt-motion-on .elementor-widget.zt7-stagger-yes.zt7-stagger-playing > .elementor-widget-container > :is(div,article,section,ul) > :is(div,article,li):nth-child(3){--zt7-stagger-index:2}
body.zt-motion-on .elementor-widget.zt7-stagger-yes.zt7-stagger-playing > .elementor-widget-container > :is(div,article,section,ul) > :is(div,article,li):nth-child(4){--zt7-stagger-index:3}
body.zt-motion-on .elementor-widget.zt7-stagger-yes.zt7-stagger-playing > .elementor-widget-container > :is(div,article,section,ul) > :is(div,article,li):nth-child(n+5){--zt7-stagger-index:4}
@keyframes zt7-stagger-up{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@media(hover:none),(pointer:coarse){.elementor-widget .zt7-cursor-follower{display:none!important}.elementor-widget.zt7-magnetic-yes :is(.zeetoc-btn,.zt-btn,.zt-cartbtn,a.elementor-button){translate:none!important}.elementor-widget.zt-hover-tilt > .elementor-widget-container{transform:none!important}}
@media(prefers-reduced-motion:reduce){body.zt-motion-on .elementor-widget[class*="zt-enter-"] > .elementor-widget-container{animation:none!important;filter:none!important;clip-path:none!important;opacity:1!important;transform:none!important}.elementor-widget.zt7-fx-animated-gradient > .elementor-widget-container,body.zt-motion-on .elementor-widget.zt7-stagger-yes.zt7-stagger-playing > .elementor-widget-container *{animation:none!important}.elementor-widget.zt7-parallax-yes img,.elementor-widget.zt7-magnetic-yes :is(.zeetoc-btn,.zt-btn,.zt-cartbtn,a.elementor-button){translate:none!important;transition:none!important}.elementor-widget.zt-hover-tilt > .elementor-widget-container{transform:none!important}.elementor-widget.zt-hover-shine > .elementor-widget-container:after{display:none!important}.elementor-widget .zt7-cursor-follower{display:none!important}}
