/* ITlinks Motion — add these classes in Elementor > Advanced > CSS Classes */
:root{--itm-blue:#4F7BFF;--itm-violet:#8B5CF6;--itm-cyan:#22D3EE;--itm-ink:#070B1A;--itm-line:rgba(255,255,255,.09);--itm-ease:cubic-bezier(.2,.8,.2,1)}

/* Animated gradient orbs behind a section */
.itl-orbs{position:relative;isolation:isolate;overflow:hidden}
.itl-orbs:before,.itl-orbs:after{content:"";position:absolute;z-index:-1;width:620px;height:620px;border-radius:50%;filter:blur(90px);opacity:.55;pointer-events:none;animation:itm-orb 18s ease-in-out infinite alternate}
.itl-orbs:before{background:radial-gradient(circle,var(--itm-blue),transparent 65%);top:-220px;left:-160px}
.itl-orbs:after{background:radial-gradient(circle,var(--itm-violet),transparent 65%);bottom:-260px;right:-180px;animation-delay:-9s}
@keyframes itm-orb{0%{transform:translate(0,0) scale(1)}50%{transform:translate(120px,60px) scale(1.15)}100%{transform:translate(-60px,120px) scale(.95)}}

/* Faint grid lines */
.itl-grid-bg{position:relative;isolation:isolate}
.itl-grid-bg>.e-con-inner:before,.itl-grid-bg.e-con-full:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(var(--itm-line) 1px,transparent 1px),linear-gradient(90deg,var(--itm-line) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%)}

/* Mouse spotlight */
.itl-spotlight{position:relative;isolation:isolate}
.itl-spotlight:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(600px circle at var(--mx,50%) var(--my,30%),rgba(79,123,255,.18),transparent 45%);transition:background .2s}

/* Glass card */
.itl-glass{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02))!important;border:1px solid rgba(255,255,255,.1)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}

/* Gradient border that glows on hover */
.itl-glow{position:relative;isolation:isolate;transition:transform .45s var(--itm-ease),box-shadow .45s var(--itm-ease)}
.itl-glow:before{content:"";position:absolute;inset:-1px;z-index:-1;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(79,123,255,.0),rgba(79,123,255,.0));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:background .45s}
.itl-glow:hover{transform:translateY(-6px);box-shadow:0 30px 60px -20px rgba(79,123,255,.45)}
.itl-glow:hover:before{background:linear-gradient(135deg,var(--itm-blue),var(--itm-violet),var(--itm-cyan))}

/* 3D tilt (JS sets --rx/--ry) */
.itl-tilt{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(var(--ty,0));transition:transform .25s ease-out;transform-style:preserve-3d;will-change:transform}

/* Gradient text */
.itl-gradient-all .elementor-heading-title,.itl-gt{background:linear-gradient(90deg,#fff 0%,#B9C8FF 30%,var(--itm-blue) 55%,var(--itm-violet) 80%,#fff 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-fill-color:transparent;animation:itm-shine-text 6s linear infinite}
@keyframes itm-shine-text{to{background-position:200% center}}

/* Floating */
.itl-float{animation:itm-float 6s ease-in-out infinite}
.itl-float-slow{animation:itm-float 9s ease-in-out infinite}
@keyframes itm-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* Button shine sweep */
.itl-shine .elementor-button,.itl-shine.elementor-button{position:relative;overflow:hidden;isolation:isolate}
.itl-shine .elementor-button:after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;z-index:1;background:linear-gradient(110deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:itm-sweep 3.2s ease-in-out infinite}
@keyframes itm-sweep{0%,60%{left:-60%}100%{left:130%}}

/* Pulse dot / badge glow */
.itl-pulse{position:relative}
.itl-pulse:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#22C55E;margin-right:8px;vertical-align:middle;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:itm-pulse 2s infinite}
@keyframes itm-pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}70%{box-shadow:0 0 0 10px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}

/* Reveal on scroll (JS adds .itm-in) */
.itl-reveal,.itl-stagger>*{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .9s var(--itm-ease),transform .9s var(--itm-ease),filter .9s var(--itm-ease)}
.itl-reveal.itm-in,.itl-stagger.itm-in>*{opacity:1;transform:none;filter:none}
.itl-stagger.itm-in>*:nth-child(2){transition-delay:.08s}.itl-stagger.itm-in>*:nth-child(3){transition-delay:.16s}.itl-stagger.itm-in>*:nth-child(4){transition-delay:.24s}.itl-stagger.itm-in>*:nth-child(5){transition-delay:.32s}.itl-stagger.itm-in>*:nth-child(6){transition-delay:.4s}.itl-stagger.itm-in>*:nth-child(7){transition-delay:.48s}.itl-stagger.itm-in>*:nth-child(8){transition-delay:.56s}
.elementor-editor-active .itl-reveal,.elementor-editor-active .itl-stagger>*{opacity:1;transform:none;filter:none}

/* Infinite marquee (JS duplicates children) */
.itl-marquee{overflow:hidden!important;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.itl-marquee>.e-con-inner,.itl-marquee.e-con-full{flex-wrap:nowrap!important}
.itm-track{display:flex;gap:inherit;width:max-content;flex-wrap:nowrap;animation:itm-marquee var(--itm-speed,40s) linear infinite}
.itl-marquee:hover .itm-track{animation-play-state:paused}
@keyframes itm-marquee{to{transform:translateX(-50%)}}

/* Scroll progress bar */
.itm-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:99999;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--itm-blue),var(--itm-violet),var(--itm-cyan));pointer-events:none}

@media (prefers-reduced-motion:reduce){.itl-orbs:before,.itl-orbs:after,.itl-float,.itl-float-slow,.itm-track,.itl-gt,.itl-shine .elementor-button:after{animation:none!important}.itl-reveal,.itl-stagger>*{opacity:1!important;transform:none!important;filter:none!important}}

/* ---------- Dark theme for ITlinks widgets (add class itl-dark on a section) ---------- */
.itl-dark .itlp-card{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border-color:rgba(255,255,255,.1);box-shadow:none;backdrop-filter:blur(12px)}
.itl-dark .itlp-card:hover{box-shadow:0 30px 60px -20px rgba(79,123,255,.45);border-color:rgba(124,150,255,.45)}
.itl-dark .itlp-card.is-featured{border:1px solid transparent;background:linear-gradient(#0E1430,#0E1430) padding-box,linear-gradient(135deg,var(--itm-blue),var(--itm-violet),var(--itm-cyan)) border-box;box-shadow:0 30px 80px -30px rgba(139,92,246,.6)}
.itl-dark .itlp-name{color:#fff}
.itl-dark .itlp-amount{color:#fff}
.itl-dark .itlp-per,.itl-dark .itlp-eq,.itl-dark .itlp-feat li{color:#A7B1CC}
.itl-dark .itlp-feat{border-top-color:rgba(255,255,255,.08)}
.itl-dark .itlp-feat li:before{background:rgba(34,211,238,.12);color:var(--itm-cyan)}
.itl-dark .itlp-save{background:rgba(34,197,94,.12);color:#4ADE80}
.itl-dark .itlp-btn{background:rgba(255,255,255,.08);color:#fff}
.itl-dark .itlp-btn:hover,.itl-dark .is-featured .itlp-btn{background:linear-gradient(135deg,var(--itm-blue),var(--itm-violet));color:#fff}
.itl-dark .itlp-ribbon{background:linear-gradient(135deg,var(--itm-blue),var(--itm-violet))}
.itl-dark .itlp-sw{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08)}
.itl-dark .itlp-sw button{color:#C9D3EC}
.itl-dark .itlp-sw button.on{background:linear-gradient(135deg,var(--itm-blue),var(--itm-violet))!important;color:#fff}
.itl-dark .itld-wrap{border-color:rgba(255,255,255,.1)}
.itl-dark .itld-table{background:transparent}
.itl-dark .itld-table th{background:rgba(255,255,255,.05);color:#A7B1CC}
.itl-dark .itld-table td{background:transparent!important;color:#C9D3EC;border-top-color:rgba(255,255,255,.07)}
.itl-dark .itld-table td.tld{color:#fff}
.itl-dark .itld-btn{background:linear-gradient(135deg,var(--itm-blue),var(--itm-violet))}
.itl-dark .itld-search{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:#fff}
.itl-dark .itld-more{background:transparent!important;color:#fff!important;border-color:rgba(255,255,255,.2)!important}
.itl-dark .itlds-card{background-color:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);box-shadow:0 40px 100px -40px rgba(79,123,255,.55);backdrop-filter:blur(16px)}
.itl-dark .itlds-results .itlds-hero,.itl-dark .itlds-list{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1)}
.itl-dark .itlds-hero strong,.itl-dark .itlds-name{color:#fff}
.itl-dark .itlds-row{border-top-color:rgba(255,255,255,.06)}
.itl-dark .itlds-sub,.itl-dark .itlds-price{color:#C9D3EC}
.itl-dark .elementor-accordion .elementor-tab-title,.itl-dark .elementor-accordion .elementor-tab-content{background:transparent!important;border-color:rgba(255,255,255,.08)!important}

/* overflow guard: Elementor sets .e-con overflow:visible */
.e-con.itl-orbs,.e-con.itl-marquee,.e-con.itl-spotlight{overflow:clip!important}
html,body{overflow-x:clip}

/* ---------- GSAP engine (v2.2): itg-split, itg-now, itg-up, itg-stagger, itg-clip, itg-parallax, itg-xscroll, itg-magnetic ---------- */
.itg-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.itg-wi{display:inline-block;will-change:transform}
.itg-js .itg-up,.itg-js .itg-split .elementor-heading-title{visibility:hidden}
.itg-js .itg-split .itg-ready{visibility:visible}
.e-con.itg-xscroll{overflow:clip!important}
.itg-xscroll>.e-con-inner,.itg-xscroll.e-con-full{flex-wrap:nowrap!important;width:max-content!important;max-width:none!important}
.itg-xscroll .elementor-heading-title{white-space:nowrap}
.itg-outline .elementor-heading-title{color:transparent!important;-webkit-text-stroke:1.5px #0B0D12}
.itg-row{transition:background .4s cubic-bezier(.2,.8,.2,1)}
.itg-row:hover{background:#F2F2EE!important}
.itg-row .elementor-button-icon{transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.itg-row:hover .elementor-button-icon{transform:translateX(6px) rotate(-45deg)}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}
@media (prefers-reduced-motion:reduce){.itg-js .itg-up,.itg-js .itg-split .elementor-heading-title{visibility:visible}}
