/**
 * LN Core - Global Styles & Widget Stylesheet
 * 
 * @package ln-core
 * @version 1.0.4
 */

/* ==========================================================================
   1. LN Text Slider (Ultra-Smooth GPU Accelerated Infinite Marquee)
   ========================================================================== */

.ln-text-slider-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    --ln-marquee-duration: 25s;
    --ln-marquee-gap: 40px;
}

.ln-text-slider-inner {
    display: flex;
    width: max-content;
    overflow: visible;
    user-select: none;
    position: relative;
}

.ln-text-slider-track {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    width: max-content;
    animation: lnMarqueeScroll var(--ln-marquee-duration, 25s) linear infinite;
    will-change: transform;
}

.ln-text-slider-inner.is-reverse .ln-text-slider-track {
    animation-direction: reverse;
}

.ln-text-slider-inner.has-pause-on-hover:hover .ln-text-slider-track {
    animation-play-state: paused;
}

@keyframes lnMarqueeScroll {
    0% {
        transform: translateX(0%);
    }
    100% {
        transform: translateX(-100%);
    }
}

.ln-text-slider-slide {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.ln-text-slider-item {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    cursor: default;
    white-space: nowrap;
    color: #0e1118;
    transition: color 0.3s ease, -webkit-text-stroke-color 0.3s ease, -webkit-text-fill-color 0.3s ease;
}

a.ln-text-slider-item {
    cursor: pointer;
}

.ln-text-slider-item-text {
    display: inline-block;
    line-height: 1.2;
    transition: inherit;
}

/* 1. Filled / Solid Text Style */
.ln-text-slider-item.is-filled .ln-text-slider-item-text {
    color: #0e1118;
    -webkit-text-fill-color: #0e1118;
}

/* 2. Stroke / Outline Text Style (Fully visible outline with hollow interior) */
.ln-text-slider-item.is-stroke .ln-text-slider-item-text {
    color: #0e1118;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke-width: 1.5px;
    -webkit-text-stroke-color: #0e1118;
    text-stroke-width: 1.5px;
    text-stroke-color: #0e1118;
}

.ln-text-slider-item.is-stroke:hover .ln-text-slider-item-text {
    -webkit-text-fill-color: #0e1118;
    color: #0e1118;
}

/* 3. Gradient Text Style */
.ln-text-slider-item.is-gradient .ln-text-slider-item-text {
    background: linear-gradient(135deg, #0e1118 0%, #10b981 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Fallback spacing when separator is hidden */
.ln-text-slider-item.no-separator {
    margin-right: var(--ln-marquee-gap, 40px);
}

/* Separator Style - perfectly centered between texts */
.ln-text-slider-separator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    margin-left: 25px;
    margin-right: 25px;
    color: #10b981;
    fill: #10b981;
    transition: color 0.3s ease, fill 0.3s ease, transform 0.3s ease;
    flex-shrink: 0;
}

.ln-text-slider-separator svg,
.ln-text-slider-separator i {
    display: inline-block;
    line-height: 1;
}

.ln-text-slider-separator img {
    display: block;
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

/* ==========================================================================
   2. Global GSAP Heading & Paragraph Text Animations (SplitType Support)
   ========================================================================== */

.ln-has-gsap-anim,
.ln-has-heading-anim {
    position: relative;
}

.ln-has-gsap-anim .line,
.ln-has-gsap-anim .word,
.ln-has-gsap-anim .char,
.ln-has-heading-anim .line,
.ln-has-heading-anim .word,
.ln-has-heading-anim .char {
    display: inline-block;
    position: relative;
    box-sizing: border-box;
}

.ln-has-gsap-anim .line,
.ln-has-heading-anim .line {
    display: block;
}

.ln-has-gsap-anim .word,
.ln-has-heading-anim .word {
    white-space: nowrap;
}

.ln-word-inner,
.ln-line-inner {
    display: inline-block;
    position: relative;
}

/* Perspective on headings for 3D animations */
.ln-has-gsap-anim[data-ln-heading-anim] h1,
.ln-has-gsap-anim[data-ln-heading-anim] h2,
.ln-has-gsap-anim[data-ln-heading-anim] h3,
.ln-has-gsap-anim[data-ln-heading-anim] h4,
.ln-has-gsap-anim[data-ln-heading-anim] h5,
.ln-has-gsap-anim[data-ln-heading-anim] h6,
.ln-has-gsap-anim[data-ln-heading-anim] .elementor-heading-title {
    perspective: 1000px;
    transform-style: preserve-3d;
}

/* Smooth letter-spacing and rendering for paragraph scroll fill */
.ln-has-gsap-anim[data-ln-para-anim] p,
.ln-has-gsap-anim[data-ln-para-anim] .elementor-text-editor {
    position: relative;
    will-change: opacity;
}
