/*
 * Widgetor Frontend Styles
 * Custom widgets styling for Elementor
 */

/* Gradient Text Widget */
.widgetor-gradient-text-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
}

.widgetor-gradient-text {
    display: inline-block;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-size: 100% 100%;
    font-weight: bold;
    line-height: 1.2;
    position: relative;
}

/* Fallback for browsers that don't support background-clip: text */
@supports not (background-clip: text) {
    .widgetor-gradient-text {
        color: #8B5CF6; /* Fallback color */
        -webkit-text-fill-color: initial;
    }
}

/* Animation Classes */
.widgetor-animated {
    animation-fill-mode: both;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
    animation-duration: 3s;
}

/* Non-animated state - ensure no animations */
.widgetor-gradient-text:not(.widgetor-animated) {
    animation: none !important;
    background-size: 100% 100% !important;
}

/* Ensure animated elements have proper background size */
.widgetor-animated:not(.widgetor-animation-pulse) {
    background-size: 200% 200%;
}

/* Gradient Shift Animation */
.widgetor-animated.widgetor-animation-gradient-shift {
    background-size: 200% 200%;
    animation-name: widgetor-gradient-shift;
}

@keyframes widgetor-gradient-shift {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

/* Gradient Flow Animation */
.widgetor-animated.widgetor-animation-gradient-flow {
    background-size: 400% 400%;
    animation-name: widgetor-gradient-flow;
}

@keyframes widgetor-gradient-flow {
    0% {
        background-position: 0% 0%;
    }
    25% {
        background-position: 100% 0%;
    }
    50% {
        background-position: 100% 100%;
    }
    75% {
        background-position: 0% 100%;
    }
    100% {
        background-position: 0% 0%;
    }
}

/* Pulse Animation */
.widgetor-animated.widgetor-animation-pulse {
    animation-name: widgetor-pulse;
}

@keyframes widgetor-pulse {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.8;
        transform: scale(1.05);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Responsive Design */
@media (max-width: 1024px) {
    .widgetor-gradient-text {
        line-height: 1.1;
    }
}

@media (max-width: 768px) {
    .widgetor-gradient-text {
        line-height: 1.15;
    }
}

@media (max-width: 480px) {
    .widgetor-gradient-text {
        line-height: 1.2;
    }
}

/* Performance Optimizations */
.widgetor-gradient-text-wrapper {
    will-change: auto;
}

.widgetor-animated {
    will-change: background-position, transform, opacity;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
    .widgetor-animated {
        animation: none;
    }
}

/* Print Styles */
@media print {
    .widgetor-gradient-text {
        -webkit-text-fill-color: inherit;
        color: #000;
        background: none;
    }
    
    .widgetor-animated {
        animation: none;
    }
}

/* High Contrast Mode Support */
@media (prefers-contrast: high) {
    .widgetor-gradient-text {
        -webkit-text-fill-color: inherit;
        background: none;
        color: inherit;
        text-shadow: none;
    }
}

/* Dark Mode Support */
@media (prefers-color-scheme: dark) {
    .widgetor-gradient-text {
        /* Enhanced contrast for dark mode */
        filter: brightness(1.1);
    }
}

/* Safari Specific Fixes */
@supports (-webkit-appearance: none) {
    .widgetor-gradient-text {
        -webkit-text-stroke: 0;
    }
}

/* Firefox Specific Fixes */
@-moz-document url-prefix() {
    .widgetor-gradient-text {
        background-attachment: fixed;
    }
}

/* ====================================
   SCROLL PROGRESS BAR WIDGET STYLES
   ==================================== */

/* Main wrapper */
.widgetor-scroll-progress-wrapper {
    position: relative;
    width: 100%;
    font-family: inherit;
}

/* Label styling */
.widgetor-progress-label {
    display: block;
    font-weight: 600;
    margin-bottom: 15px;
    line-height: 1.4;
}

/* Progress container */
/* Horizontal Timeline: visibility toggles */
.widgetor-timeline-wrapper.hide-line .widgetor-timeline-line { display: none !important; }
.widgetor-timeline-wrapper.hide-dot .widgetor-timeline-dot { display: none !important; }
.widgetor-timeline-wrapper.hide-scrollbar .widgetor-timeline-progress { display: none !important; }
.widgetor-timeline-wrapper.hide-title .widgetor-timeline-main-title { display: none !important; }
.widgetor-timeline-wrapper.hide-description .widgetor-timeline-description { display: none !important; }
.widgetor-timeline-wrapper.hide-date .widgetor-timeline-date { display: none !important; }
.widgetor-progress-container {
    position: relative;
    width: 100%;
}

/* Progress bar wrapper for flex layout */
.widgetor-progress-bar-wrapper {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 10px;
}

/* Progress bar track */
.widgetor-progress-bar {
    position: relative;
    width: 100%;
    height: 8px;
    background-color: #E5E7EB;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Progress bar fill */
.widgetor-progress-bar-fill {
    position: relative;
    height: 100%;
    width: 0%;
    background: linear-gradient(45deg, #3B82F6, #8B5CF6);
    border-radius: inherit;
    transition: width 0.3s ease-out;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 8px;
    box-sizing: border-box;
}

/* Percentage display */
.widgetor-progress-percentage {
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    color: #1F2937;
    white-space: nowrap;
}

/* Percentage positions */
.widgetor-progress-percentage.position-top {
    margin-bottom: 10px;
    text-align: left;
}

.widgetor-progress-percentage.position-bottom {
    margin-top: 10px;
    text-align: left;
}

.widgetor-progress-percentage.position-inside {
    color: white;
    font-size: 12px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    min-width: 30px;
}

.widgetor-progress-percentage.position-right {
    margin-left: 10px;
    flex-shrink: 0;
}

/* Animation Effects */

/* Pulse Effect */
.widgetor-progress-bar-fill.pulse-effect {
    animation: widgetor-progress-pulse 2s ease-in-out infinite;
}

@keyframes widgetor-progress-pulse {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
    }
    50% {
        box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1);
    }
}

/* Glow Effect */
.widgetor-progress-bar-fill.glow-effect {
    box-shadow: 0 0 10px var(--glow-color, #3B82F6),
                0 0 20px var(--glow-color, #3B82F6),
                0 0 30px var(--glow-color, #3B82F6);
}

/* Striped Animation */
.widgetor-progress-bar-fill.striped-animation {
    background-image: linear-gradient(
        45deg,
        rgba(255, 255, 255, 0.15) 25%,
        transparent 25%,
        transparent 50%,
        rgba(255, 255, 255, 0.15) 50%,
        rgba(255, 255, 255, 0.15) 75%,
        transparent 75%,
        transparent
    );
    background-size: 20px 20px;
    animation: widgetor-progress-stripes 1s linear infinite;
}

@keyframes widgetor-progress-stripes {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 20px 0;
    }
}

/* Responsive Design */
@media (max-width: 768px) {
    .widgetor-progress-bar-wrapper {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    
    .widgetor-progress-percentage.position-right {
        margin-left: 0;
        margin-top: 8px;
        text-align: left;
    }
    
    .widgetor-progress-percentage.position-inside {
        font-size: 11px;
        padding-right: 6px;
    }
}

@media (max-width: 480px) {
    .widgetor-progress-bar {
        height: 6px;
    }
    
    .widgetor-progress-percentage {
        font-size: 13px;
    }
    
    .widgetor-progress-percentage.position-inside {
        font-size: 10px;
        padding-right: 4px;
    }
}

/* Performance Optimizations */
.widgetor-scroll-progress-wrapper {
    will-change: auto;
}

.widgetor-progress-bar-fill {
    will-change: width;
    transform: translateZ(0);
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
    .widgetor-progress-bar-fill {
        transition: none;
    }
    
    .widgetor-progress-bar-fill.pulse-effect,
    .widgetor-progress-bar-fill.striped-animation {
        animation: none;
    }
}

/* High Contrast Mode */
@media (prefers-contrast: high) {
    .widgetor-progress-bar {
        background-color: #000;
        border: 1px solid #fff;
    }
    
    .widgetor-progress-bar-fill {
        background: #fff;
    }
    
    .widgetor-progress-percentage {
        color: inherit;
    }
}

/* Print Styles */
@media print {
    .widgetor-scroll-progress-wrapper {
        display: none;
    }
}

/* Safari Specific */
@supports (-webkit-appearance: none) {
    .widgetor-progress-bar-fill {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
    }
}

/* ====================================
   GLASSMORPHISM CARD WIDGET STYLES
   ==================================== */

/* Main wrapper */
.widgetor-glass-wrapper {
    position: relative;
    width: 100%;
}

/* Glass card */
.widgetor-glass-card {
    position: relative;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

/* Glass card pseudo-element for enhanced glass effect */
.widgetor-glass-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    pointer-events: none;
}

/* Title styling */
.widgetor-glass-title {
    margin: 0 0 15px 0;
    color: #ffffff;
    font-size: 24px;
    font-weight: 600;
    line-height: 1.3;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Subtitle styling */
.widgetor-glass-subtitle {
    margin: 0 0 10px 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
}

/* Description styling */
.widgetor-glass-description {
    margin: 0 0 20px 0;
    color: rgba(255, 255, 255, 0.9);
    font-size: 14px;
    line-height: 1.6;
    opacity: 0.95;
}

/* Items container */
.widgetor-glass-items {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* Individual item */
.widgetor-glass-item {
    display: flex;
    align-items: center;
    transition: all 0.2s ease;
    position: relative;
}

/* Item link */
.widgetor-glass-item-link {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: inherit;
    width: 100%;
    padding: 8px 0;
    border-radius: 8px;
    transition: all 0.2s ease;
}

.widgetor-glass-item-link:hover {
    background: rgba(255, 255, 255, 0.1);
    padding-left: 12px;
    padding-right: 12px;
    color: inherit;
    text-decoration: none;
}

/* Item icon */
.widgetor-glass-item-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
    color: #ffffff;
    font-size: 16px;
    min-width: 20px;
    transition: all 0.2s ease;
}

/* Item text */
.widgetor-glass-item-text {
    color: rgba(255, 255, 255, 0.9);
    font-size: 14px;
    line-height: 1.5;
    flex: 1;
    transition: all 0.2s ease;
}

/* Layout variations */

/* Horizontal layout */
.widgetor-glass-layout-horizontal .widgetor-glass-items {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 15px 20px;
}

.widgetor-glass-layout-horizontal .widgetor-glass-item {
    flex: 0 0 auto;
}

/* Grid layout */
.widgetor-glass-layout-grid .widgetor-glass-items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}

/* Hover effects */

/* Hover enabled */
.widgetor-glass-card.hover-enabled {
    cursor: pointer;
}

/* Move up effect */
.widgetor-glass-card.hover-enabled.hover-translateY:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

/* Scale effect */
.widgetor-glass-card.hover-enabled.hover-scale:hover {
    transform: scale(1.02);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
}

/* Rotate effect */
.widgetor-glass-card.hover-enabled.hover-rotate:hover {
    transform: rotate(1deg);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.1);
}

/* Enhanced glass effects for hover */
.widgetor-glass-card.hover-enabled:hover {
    border-color: rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
}

/* Responsive design */
@media (max-width: 768px) {
    .widgetor-glass-card {
        padding: 20px;
        border-radius: 15px;
    }
    
    .widgetor-glass-title {
        font-size: 20px;
        margin-bottom: 12px;
    }
    
    .widgetor-glass-subtitle {
        font-size: 14px;
        margin-bottom: 8px;
    }
    
    .widgetor-glass-description {
        font-size: 13px;
        margin-bottom: 15px;
    }
    
    .widgetor-glass-items {
        gap: 12px;
    }
    
    .widgetor-glass-layout-horizontal .widgetor-glass-items {
        flex-direction: column;
        gap: 12px;
    }
    
    .widgetor-glass-layout-grid .widgetor-glass-items {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    
    .widgetor-glass-item-icon {
        font-size: 14px;
        margin-right: 8px;
    }
    
    .widgetor-glass-item-text {
        font-size: 13px;
    }
}

@media (max-width: 480px) {
    .widgetor-glass-card {
        padding: 15px;
        border-radius: 12px;
    }
    
    .widgetor-glass-title {
        font-size: 18px;
    }
    
    .widgetor-glass-subtitle {
        font-size: 13px;
    }
    
    .widgetor-glass-description {
        font-size: 12px;
    }
    
    .widgetor-glass-item-text {
        font-size: 12px;
    }
}

/* Performance optimizations */
.widgetor-glass-card {
    will-change: transform;
    transform: translateZ(0);
}

.widgetor-glass-item-link {
    will-change: background, padding;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
    .widgetor-glass-card,
    .widgetor-glass-item,
    .widgetor-glass-item-link,
    .widgetor-glass-item-icon,
    .widgetor-glass-item-text {
        transition: none;
    }
    
    .widgetor-glass-card.hover-enabled:hover {
        transform: none;
    }
}

/* High contrast mode */
@media (prefers-contrast: high) {
    .widgetor-glass-card {
        background: rgba(0, 0, 0, 0.9);
        border-color: #ffffff;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
    
    .widgetor-glass-title,
    .widgetor-glass-subtitle,
    .widgetor-glass-description,
    .widgetor-glass-item-text,
    .widgetor-glass-item-icon {
        color: #ffffff;
    }
}

/* Print styles */
@media print {
    .widgetor-glass-card {
        background: #ffffff;
        color: #000000;
        border: 1px solid #cccccc;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        box-shadow: none;
    }
    
    .widgetor-glass-title,
    .widgetor-glass-subtitle,
    .widgetor-glass-description,
    .widgetor-glass-item-text {
        color: #000000;
    }
    
    .widgetor-glass-item-icon {
        color: #666666;
    }
}

/* Dark backgrounds enhancement */
.widgetor-glass-card {
    /* Enhanced visibility on dark backgrounds */
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

/* Entrance animations */
.widgetor-glass-card {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}

.widgetor-glass-card.widgetor-glass-visible {
    opacity: 1;
    transform: translateY(0);
}

.widgetor-glass-item {
    opacity: 0;
    transform: translateX(-20px);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.widgetor-glass-item.widgetor-item-animated {
    opacity: 1;
    transform: translateX(0);
}

/* Focus states for accessibility */
.widgetor-glass-item.focused,
.widgetor-glass-item-link.focused {
    outline: 2px solid rgba(255, 255, 255, 0.5);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Touch device adjustments */
.widgetor-glass-card.touch-device {
    transform: none;
}

.widgetor-glass-card.touch-device:hover {
    transform: none;
}

/* Browser-specific enhancements */

/* Firefox */
@-moz-document url-prefix() {
    .widgetor-glass-card {
        background: rgba(255, 255, 255, 0.15);
    }
}

/* Safari */
@supports (-webkit-backdrop-filter: blur(10px)) {
    .widgetor-glass-card {
        -webkit-backdrop-filter: blur(10px);
        backdrop-filter: blur(10px);
    }
}

/* HORIZONTAL TIMELINE SLIDER V2 styles removed */



/* ====================================
   HORIZONTAL TIMELINE WIDGET STYLES (V1)
   ==================================== */

/* Main timeline wrapper */
.widgetor-timeline-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding: 40px 0;
}

/* ==============================================
   INFINITE HORIZONTAL SCROLL (MARQUEE) STYLES
   ============================================== */

.widgetor-infinite-scroll-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.widgetor-infinite-scroll {
    width: 100%;
}

.widgetor-scroll-track {
    display: flex;
    width: max-content;
    gap: var(--gap, 24px);
    align-items: center;
    will-change: transform;
    animation: widgetor-marquee-left var(--duration, 20s) linear infinite;
}

/* Direction control via data attribute */
.widgetor-infinite-scroll-wrapper[data-direction="right"] .widgetor-scroll-track {
    animation-name: widgetor-marquee-right;
}

.widgetor-scroll-sequence {
    display: flex;
    gap: var(--gap, 24px);
    align-items: center;
}

.widgetor-infinite-scroll-item {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.widgetor-infinite-scroll-item.is-text .scroll-text {
    line-height: 1;
}

.widgetor-infinite-scroll-item.is-icon i {
    display: inline-block;
}

.widgetor-infinite-scroll-item.is-image img {
    display: inline-block;
    height: 48px; /* default; can be overridden by control */
    width: auto;
}

/* Pause on hover */
.widgetor-infinite-scroll-wrapper.pause-on-hover:hover .widgetor-scroll-track {
    animation-play-state: paused;
}

/* Keyframes for marquee */
@keyframes widgetor-marquee-left {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

@keyframes widgetor-marquee-right {
    from { transform: translateX(-50%); }
    to   { transform: translateX(0); }
}

/* Reduced motion: disable animation */
@media (prefers-reduced-motion: reduce) {
    .widgetor-scroll-track { animation: none !important; }
}

/* ==================================
   NEON GLOW CONTAINER WIDGET STYLES
   ================================== */

.widgetor-neon-wrapper {
    position: relative;
    width: 100%;
}

.widgetor-neon-container {
    position: relative;
    --neon-color: #39d2ff;
    --neon-blur: 28px;
    --neon-spread: 0px;
    --pulse-speed: 3s;
    border-radius: 12px;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
    box-shadow:
        0 0 calc(var(--neon-blur) * 0.35) var(--neon-color),
        0 0 calc(var(--neon-blur) * 0.7) var(--neon-color),
        0 0 var(--neon-blur) var(--neon-color);
}

.widgetor-neon-container.neon-border {
    border: 1px solid currentColor;
    color: var(--neon-color);
}

.widgetor-neon-container .widgetor-neon-content {
    position: relative;
    z-index: 2;
}

/* Optional subtle hover lift */
.widgetor-neon-container:hover {
    transform: translateY(-1px);
}

/* Pulse effect using pseudo-element for smoother animation */
.widgetor-neon-container.pulse-enabled::after {
    content: '';
    position: absolute;
    inset: -6%;
    border-radius: inherit;
    box-shadow: 0 0 var(--neon-blur) var(--neon-color);
    opacity: 0.5;
    z-index: 1;
    animation: widgetor-neon-pulse var(--pulse-speed, 3s) ease-in-out infinite;
    pointer-events: none;
}

@keyframes widgetor-neon-pulse {
    0%, 100% { opacity: 0.5; }
    50% { opacity: 0.15; }
}

/* Reduced motion: no pulse */
@media (prefers-reduced-motion: reduce) {
    .widgetor-neon-container.pulse-enabled::after { animation: none; }
}

/* =============================================
   SIMPLE HORIZONTAL SCROLL CONTAINERS (VARIANT)
   ============================================= */

.widgetor-scroll-containers-wrapper {
    position: relative;
    width: 100%;
}

.widgetor-scroll-containers {
    width: 100%;
    /* Height adapts to content by default; can be overridden by control */
    height: auto;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

/* Hide scrollbar cross-browser when toggled */
.widgetor-scroll-containers.hide-scrollbar {
    scrollbar-width: none; /* Firefox */
}
.widgetor-scroll-containers.hide-scrollbar::-webkit-scrollbar { /* Chrome/Safari */
    display: none;
}

.widgetor-scroll-containers-track {
    display: flex;
    align-items: stretch;
    gap: 40px; /* overridden by control */
    width: max-content;
    min-height: 100%;
}

.widgetor-scroll-item {
    flex: 0 0 350px; /* overridden by control */
    display: flex;
}

.widgetor-scroll-item-content {
    display: flex;
    width: 100%;
    height: 100%;
    background: #fff;
    border-radius: 10px;
    box-sizing: border-box;
}

/* Ensure media inside items scales responsively */
.widgetor-scroll-image img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Smooth mode */
.widgetor-scroll-containers.scroll-mode-smooth {
    scroll-behavior: smooth;
}

/* Snap mode */
.widgetor-scroll-containers.scroll-mode-snap {
    scroll-snap-type: x mandatory;
}
.widgetor-scroll-containers.scroll-mode-snap .widgetor-scroll-item {
    scroll-snap-align: start;
}

/* Timeline header */
.widgetor-timeline-header {
    text-align: center;
    margin-bottom: 50px;
    padding: 0 20px;
}

.widgetor-timeline-main-title {
    font-size: 32px;
    font-weight: 700;
    color: #333333;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.widgetor-timeline-subtitle {
    font-size: 16px;
    color: #666666;
    margin: 0;
    line-height: 1.6;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Timeline container */
.widgetor-timeline-container {
    position: relative;
    width: 100%;
    height: 500px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 20px 0;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
}

.widgetor-timeline-container::-webkit-scrollbar {
    height: 8px;
}

.widgetor-timeline-container::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.05);
    border-radius: 4px;
}

.widgetor-timeline-container::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
}

.widgetor-timeline-container::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.3);
}

/* Timeline track */
.widgetor-timeline-track {
    display: flex;
    align-items: flex-start;
    position: relative;
    height: 100%;
    min-width: 100%;
    padding: 0 50px;
}

/* Timeline line */
.widgetor-timeline-line {
    position: absolute;
    top: 60px;
    left: 50px;
    right: 50px;
    height: 3px;
    background-color: #e0e0e0;
    z-index: 1;
}

/* Timeline items */
.widgetor-timeline-item {
    position: relative;
    flex-shrink: 0;
    width: 350px;
    margin-right: 50px;
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.widgetor-timeline-item.animate-in {
    opacity: 1;
    transform: translateY(0);
}

.widgetor-timeline-item:last-child {
    margin-right: 0;
}

/* Timeline dot */
.widgetor-timeline-dot {
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 12px;
    height: 12px;
    background-color: #3498db;
    border-radius: 50%;
    z-index: 2;
    border: 3px solid #ffffff;
    box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.2);
    transition: all 0.3s ease;
}

.widgetor-timeline-item.animate-in .widgetor-timeline-dot {
    transform: translateX(-50%) scale(1.2);
    box-shadow: 0 0 0 8px rgba(52, 152, 219, 0.3);
}

/* Timeline content */
.widgetor-timeline-content {
    background: #ffffff;
    border-radius: 10px;
    padding: 25px;
    margin-top: 20px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
    min-height: 400px;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.widgetor-timeline-content::before {
    content: '';
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-bottom: 20px solid #ffffff;
    z-index: 1;
}

.widgetor-timeline-item:hover .widgetor-timeline-content {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

/* Timeline date */
.widgetor-timeline-date {
    font-size: 14px;
    font-weight: 600;
    color: #3498db;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    padding: 5px 12px;
    background: rgba(52, 152, 219, 0.1);
    border-radius: 20px;
    display: inline-block;
    align-self: flex-start;
}

/* Timeline title */
.widgetor-timeline-title {
    font-size: 20px;
    font-weight: 600;
    color: #2c3e50;
    margin: 0 0 15px 0;
    line-height: 1.4;
}

/* Timeline description */
.widgetor-timeline-description {
    font-size: 14px;
    line-height: 1.6;
    color: #7f8c8d;
    margin: 0;
    flex: 1;
}

/* Timeline body */
.widgetor-timeline-body {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Timeline image */
.widgetor-timeline-image {
    width: 100%;
    margin-top: 15px;
    border-radius: 8px;
    overflow: hidden;
}

.widgetor-timeline-image img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.3s ease;
}

.widgetor-timeline-item:hover .widgetor-timeline-image img {
    transform: scale(1.05);
}

/* Timeline template placeholder */
.widgetor-timeline-template {
    padding: 40px 20px;
    text-align: center;
    background: #f8f9fa;
    border-radius: 8px;
    margin-top: 15px;
    color: #6c757d;
    border: 2px dashed #dee2e6;
}

.widgetor-timeline-template i {
    font-size: 24px;
    margin-right: 8px;
    color: #e74c3c;
}

/* Timeline shortcode */
.widgetor-timeline-shortcode {
    margin-top: 15px;
    padding: 15px;
    background: #f1f2f6;
    border-radius: 6px;
    border-left: 4px solid #3498db;
}

.widgetor-timeline-shortcode code {
    background: transparent;
    color: #2c3e50;
    font-family: 'Courier New', monospace;
    font-size: 13px;
}

/* Progress bar */
.widgetor-timeline-progress {
    position: sticky;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    width: 200px;
    height: 4px;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 2px;
    overflow: hidden;
    z-index: 10;
}

.widgetor-timeline-progress-bar {
    height: 100%;
    background: linear-gradient(90deg, #3498db, #2ecc71);
    border-radius: 2px;
    width: 0%;
    transition: width 0.3s ease;
}

/* Animation types */

/* Slide animation */
.widgetor-timeline-wrapper[data-animation-type="slide"] .widgetor-timeline-item {
    transform: translateX(-50px);
}

.widgetor-timeline-wrapper[data-animation-type="slide"] .widgetor-timeline-item.animate-in {
    transform: translateX(0);
}

/* Fade animation */
.widgetor-timeline-wrapper[data-animation-type="fade"] .widgetor-timeline-item {
    transform: none;
    opacity: 0;
}

.widgetor-timeline-wrapper[data-animation-type="fade"] .widgetor-timeline-item.animate-in {
    opacity: 1;
}

/* Scale animation */
.widgetor-timeline-wrapper[data-animation-type="scale"] .widgetor-timeline-item {
    transform: scale(0.8);
    opacity: 0;
}

.widgetor-timeline-wrapper[data-animation-type="scale"] .widgetor-timeline-item.animate-in {
    transform: scale(1);
    opacity: 1;
}

/* Rotate animation */
.widgetor-timeline-wrapper[data-animation-type="rotate"] .widgetor-timeline-item {
    transform: rotateY(90deg);
    opacity: 0;
}

.widgetor-timeline-wrapper[data-animation-type="rotate"] .widgetor-timeline-item.animate-in {
    transform: rotateY(0deg);
    opacity: 1;
}

/* Vertical layout for mobile */
.widgetor-timeline-wrapper[data-scroll-direction="vertical"] .widgetor-timeline-track {
    flex-direction: column;
    align-items: center;
    padding: 20px;
}

.widgetor-timeline-wrapper[data-scroll-direction="vertical"] .widgetor-timeline-line {
    width: 3px;
    height: 100%;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    right: auto;
}

.widgetor-timeline-wrapper[data-scroll-direction="vertical"] .widgetor-timeline-item {
    width: 100%;
    max-width: 500px;
    margin-right: 0;
    margin-bottom: 40px;
}

.widgetor-timeline-wrapper[data-scroll-direction="vertical"] .widgetor-timeline-dot {
    left: 50%;
    top: -6px;
}

.widgetor-timeline-wrapper[data-scroll-direction="vertical"] .widgetor-timeline-container {
    height: auto;
    overflow-x: hidden;
    overflow-y: visible;
}

/* Responsive design */
@media (max-width: 1024px) {
    .widgetor-timeline-item {
        width: 300px;
        margin-right: 30px;
    }
    
    .widgetor-timeline-main-title {
        font-size: 28px;
    }
    
    .widgetor-timeline-content {
        padding: 20px;
        min-height: 350px;
    }
}

@media (max-width: 768px) {
    .widgetor-timeline-wrapper {
        padding: 20px 0;
    }
    
    .widgetor-timeline-header {
        margin-bottom: 30px;
        padding: 0 15px;
    }
    
    .widgetor-timeline-main-title {
        font-size: 24px;
    }
    
    .widgetor-timeline-subtitle {
        font-size: 14px;
    }

    /* =============================================
       ANIMATION POWER HUB
       ============================================= */
    .widgetor-aph {
        position: relative;
        width: 100%;
        will-change: transform, opacity;
    }
    .widgetor-aph-content {
        position: relative;
        width: 100%;
        box-sizing: border-box;
    }
    .widgetor-aph-content img {
        max-width: 100%;
        height: auto;
        display: block;
    }
    /* Hover underline effect helper */
    .widgetor-aph.hover-underline .widgetor-aph-content {
        transition: border-bottom-width 0.25s ease, border-color 0.25s ease;
        border-top-width: 0 !important;
        border-right-width: 0 !important;
        border-left-width: 0 !important;
        border-bottom-width: 0 !important;
        border-style: solid;
    }
    .widgetor-aph.hover-underline:hover .widgetor-aph-content {
        border-bottom-width: var(--aph-underline-width, 2px) !important;
    }
    /* Morph presets (border-radius blob as default) */
    .widgetor-aph.morph-blob .widgetor-aph-content {
        transition: border-radius 0.3s ease;
        border-radius: 24% 76% 61% 39% / 41% 23% 77% 59%;
        overflow: hidden;
    }
    .widgetor-aph.morph-clip .widgetor-aph-content {
        overflow: hidden;
        -webkit-clip-path: polygon(0% 10%, 90% 0%, 100% 90%, 10% 100%);
        clip-path: polygon(0% 10%, 90% 0%, 100% 90%, 10% 100%);
    }
    
    .widgetor-timeline-container {
        height: 400px;
    }
    
    .widgetor-timeline-item {
        width: 280px;
        margin-right: 25px;
    }
    
    .widgetor-timeline-content {
        padding: 18px;
        min-height: 300px;
    }
    
    .widgetor-timeline-title {
        font-size: 18px;
    }

    /* =============================================
       IMAGE SEQUENCE SCRUBBER
       ============================================= */
    .widgetor-seq-scrub { position: relative; width: 100%; }
    .widgetor-seq-frames { position: relative; width: 100%; }
    .widgetor-seq-frame { display: none; width: 100%; height: auto; }
    .widgetor-seq-frame.active { display: block; }

     /* =============================================
         MEDIA SCRUBBER (images/video)
         ============================================= */
     .widgetor-media-scrub { position: relative; width: 100%; }
     .widgetor-media-frames { position: relative; width: 100%; }
     .widgetor-media-frame { display: none; width: 100%; height: auto; }
     .widgetor-media-video { width: 100%; height: auto; display: block; }
    
    .widgetor-timeline-description {
        font-size: 13px;
    }
    
    .widgetor-timeline-track {
        padding: 0 25px;
    }
    
    .widgetor-timeline-line {
        left: 25px;
        right: 25px;
    }
}

@media (max-width: 480px) {
    /* Force vertical layout on very small screens */
    .widgetor-timeline-wrapper .widgetor-timeline-track {
        flex-direction: column;
        align-items: center;
        padding: 20px;
    }
    
    .widgetor-timeline-wrapper .widgetor-timeline-line {
        width: 3px;
        height: 100%;
        left: 50%;
        top: 0;
        transform: translateX(-50%);
        right: auto;
    }
    
    .widgetor-timeline-wrapper .widgetor-timeline-item {
        width: 100%;
        margin-right: 0;
        margin-bottom: 30px;
    }
    
    .widgetor-timeline-wrapper .widgetor-timeline-container {
        height: auto;
        overflow: visible;
    }
    
    .widgetor-timeline-main-title {
        font-size: 20px;
    }
}

/* Performance optimizations */
.widgetor-timeline-item {
    will-change: transform, opacity;
}

.widgetor-timeline-content {
    will-change: transform;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
    .widgetor-timeline-item,
    .widgetor-timeline-content,
    .widgetor-timeline-dot,
    .widgetor-timeline-image img {
        transition: none;
    }
    
    .widgetor-timeline-item.animate-in {
        opacity: 1;
        transform: none;
    }
}

/* High contrast mode */
@media (prefers-contrast: high) {
    .widgetor-timeline-content {
        background: #ffffff;
        border: 2px solid #000000;
    }
    
    .widgetor-timeline-line {
        background-color: #000000;
    }
    
    .widgetor-timeline-dot {
        background-color: #000000;
        border-color: #ffffff;
    }
}

/* Print styles */
@media print {
    .widgetor-timeline-container {
        overflow: visible;
        height: auto;
    }
    
    .widgetor-timeline-track {
        flex-direction: column;
    }
    
    .widgetor-timeline-item {
        width: 100%;
        margin: 0 0 20px 0;
        opacity: 1;
        transform: none;
    }
    
    .widgetor-timeline-progress {
        display: none;
    }
}

/* =============================================
         IMAGE SWAP
         ============================================= */
.widgetor-image-swap { position: relative; display: inline-block; --is-duration: 300ms; --is-ease: ease; --is-soft: 20px; }
.widgetor-image-swap .wis-inner { position: relative; display: block; overflow: hidden; }
.widgetor-image-swap .wis-img { display: block; width: 100%; height: auto; }
.widgetor-image-swap .wis-img-1 { position: relative; z-index: 1; }
.widgetor-image-swap .wis-img-2 { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; object-fit: cover; will-change: opacity, transform; }

/* Fade */
.widgetor-image-swap.wis-effect-fade .wis-img-2 { opacity: 0; transition: opacity var(--is-duration) var(--is-ease); }
.widgetor-image-swap.wis-effect-fade:hover .wis-img-2 { opacity: 1; }

/* Slide */
.widgetor-image-swap.wis-effect-slide .wis-img-2 { opacity: 1; transition: transform var(--is-duration) var(--is-ease); transform: translate(var(--is-off-x, 100%), var(--is-off-y, 0)); }
.widgetor-image-swap.wis-effect-slide:hover .wis-img-2 { transform: translate(0,0); }
.widgetor-image-swap.wis-dir-left  { --is-off-x: 100%; --is-off-y: 0; }
.widgetor-image-swap.wis-dir-right { --is-off-x: -100%; --is-off-y: 0; }
.widgetor-image-swap.wis-dir-up    { --is-off-x: 0; --is-off-y: 100%; }
.widgetor-image-swap.wis-dir-down  { --is-off-x: 0; --is-off-y: -100%; }

/* Zoom */
.widgetor-image-swap.wis-effect-zoom .wis-img-2 { opacity: 0; transform: scale(var(--is-zoom-start, 1.15)); transition: transform var(--is-duration) var(--is-ease), opacity var(--is-duration) var(--is-ease); transform-origin: 50% 50%; }
.widgetor-image-swap.wis-effect-zoom:hover .wis-img-2 { opacity: 1; transform: scale(1); }
.widgetor-image-swap.wis-zoom-in { --is-zoom-start: 1.15; }
.widgetor-image-swap.wis-zoom-out { --is-zoom-start: 0.85; }

/* Reveal (follow cursor horizontally) */
.widgetor-image-swap.wis-effect-reveal .wis-img-2 {
        /* Reveal left-to-right portion equal to --isx with soft edge --is-soft */
        -webkit-mask-image: linear-gradient(to right,
                #000 0,
                #000 calc(var(--isx, 0%) - var(--is-soft, 0px)),
                transparent calc(var(--isx, 0%) + var(--is-soft, 0px)),
                transparent 100%);
        mask-image: linear-gradient(to right,
                #000 0,
                #000 calc(var(--isx, 0%) - var(--is-soft, 0px)),
                transparent calc(var(--isx, 0%) + var(--is-soft, 0px)),
                transparent 100%);
}

/* Reduced motion: minimize animated transitions */
@media (prefers-reduced-motion: reduce){
    .widgetor-image-swap.wis-effect-fade .wis-img-2,
    .widgetor-image-swap.wis-effect-slide .wis-img-2,
    .widgetor-image-swap.wis-effect-zoom .wis-img-2 { transition: none; }
}

/* =============================================
         PAGE PRELOADER
         ============================================= */
.widgetor-preloader { position: relative; }
.widgetor-preloader .wpl-overlay { position: fixed; inset: 0; z-index: 99999; background: var(--wpl-bg, rgba(255,255,255,0.98)); display: grid; place-items: center; transition: opacity var(--wpl-fade, 400ms) ease; }
.widgetor-preloader.is-done .wpl-overlay { opacity: 0; pointer-events: none; }
.widgetor-preloader .wpl-inner { text-align: center; color: var(--wpl-color, #111); }
.widgetor-preloader .wpl-logo { max-width: min(40vw, 180px); height: auto; display: block; margin: 0 auto 16px; }

/* Ring spinner */
.widgetor-preloader .wpl-ring { width: var(--wpl-size, 56px); height: var(--wpl-size, 56px); position: relative; display: inline-block; }
.widgetor-preloader .wpl-ring span, .wbl-overlay .wpl-ring span { box-sizing: border-box; position: absolute; width: 100%; height: 100%; border: calc(var(--wpl-size,56px) * 0.08) solid transparent; border-top-color: var(--wpl-color,#111); border-radius: 50%; animation: wpl-rotate 1s linear infinite; }

@keyframes wpl-rotate { 0% { transform: rotate(0deg);} 100% { transform: rotate(360deg);} }

/* Dots spinner */
.widgetor-preloader .wpl-dots, .wbl-overlay .wpl-dots { display: inline-flex; gap: calc(var(--wpl-size,56px) * 0.15); align-items: center; justify-content: center; }
.widgetor-preloader .wpl-dots span, .wbl-overlay .wpl-dots span { width: calc(var(--wpl-size,56px) * 0.18); height: calc(var(--wpl-size,56px) * 0.18); background: var(--wpl-color,#111); border-radius: 50%; display: inline-block; animation: wpl-bounce 0.9s ease-in-out infinite; }
.widgetor-preloader .wpl-dots span:nth-child(2), .wbl-overlay .wpl-dots span:nth-child(2){ animation-delay: 0.15s; }
.widgetor-preloader .wpl-dots span:nth-child(3), .wbl-overlay .wpl-dots span:nth-child(3){ animation-delay: 0.3s; }

@keyframes wpl-bounce { 0%, 80%, 100% { transform: translateY(0); opacity: 0.6; } 40% { transform: translateY(-30%); opacity: 1; } }

@media (prefers-reduced-motion: reduce){
    .widgetor-preloader .wpl-ring span, .widgetor-preloader .wpl-dots span { animation: none; }
}

    /* =============================================
             BLOCK LOADER (section-level overlay)
             ============================================= */
    .wbl-overlay { position: absolute; inset: 0; z-index: 99; background: var(--wpl-bg, rgba(255,255,255,0.98)); display: grid; place-items: center; transition: opacity var(--wpl-fade, 400ms) ease; }
    .wbl-overlay.is-done { opacity: 0; pointer-events: none; }

    /* =============================================
             EFFECTS BLOCK (Container)
             ============================================= */
    .widgetor-effects-block { position: relative; width: 100%; }
    .widgetor-effects-block .wef-inner { position: relative; width: 100%; box-sizing: border-box; }

    /* Glassmorphism visuals via CSS variables */
    .widgetor-effects-block.wef-glass .wef-inner {
        background: var(--wef-glass-bg, rgba(255,255,255,0.12));
        backdrop-filter: blur(var(--wef-glass-blur, 10px));
        -webkit-backdrop-filter: blur(var(--wef-glass-blur, 10px));
        border: 1px solid var(--wef-glass-border, rgba(255,255,255,0.25));
    }

    /* Gradient background using CSS variables */
    .widgetor-effects-block.wef-gradient .wef-inner {
        --wef-angle: var(--wef-angle, 45deg);
        --wef-g1: var(--wef-g1, #7c3aed);
        --wef-g2: var(--wef-g2, #06b6d4);
        background-image: linear-gradient(var(--wef-angle), var(--wef-g1), var(--wef-g2));
        background-size: 200% 200%;
        background-position: calc(50% + var(--wef-bgx, 0%)) calc(50% + var(--wef-bgy, 0%));
    }

    /* Hover tilt hint (transform applied via JS) */
    .widgetor-effects-block.wef-tilt .wef-inner { will-change: transform; transition: transform 0.15s ease-out; }

    @media (prefers-reduced-motion: reduce){
        .widgetor-effects-block.wef-tilt .wef-inner { transition: none; }
    }

    /* Effects Block content items (repeater) */
    .widgetor-effects-block .wef-item { position: relative; }
    .widgetor-effects-block .wef-ti { --wef-gap: 12px; display: flex; gap: var(--wef-gap, 12px); align-items: center; }
    .widgetor-effects-block .wef-ti.wef-pos-image-top { flex-direction: column; align-items: flex-start; }
    .widgetor-effects-block .wef-ti.wef-pos-image-bottom { flex-direction: column-reverse; align-items: flex-start; }
    .widgetor-effects-block .wef-ti.wef-pos-image-left { flex-direction: row; }
    .widgetor-effects-block .wef-ti.wef-pos-image-right { flex-direction: row-reverse; }
    .widgetor-effects-block .wef-ti-img { line-height: 0; max-width: 100%; }
    .widgetor-effects-block .wef-ti-img img { display: block; width: 100%; height: auto; }
    .widgetor-effects-block .wef-ti-text { width: 100%; }

/* =============================================
                 ADVANCED MENU
                 ============================================= */
.widgetor-advanced-menu { position: relative; display: inline-block; --wam-size: 50px; --wam-dur: 250ms; --wam-gap: 8px; }
.widgetor-advanced-menu .wam-shell { position: relative; width: var(--wam-size); height: var(--wam-size); transition: width var(--wam-dur) ease, height var(--wam-dur) ease, margin var(--wam-dur) ease; overflow: visible; }
/* Horizontal expansion */
.widgetor-advanced-menu.orient-horizontal.is-open .wam-shell,
.widgetor-advanced-menu.orient-horizontal:hover .wam-shell { width: calc(var(--wam-size) + var(--wam-gap, 0px) + var(--wam-menu-w, 0px)); }
/* Vertical expansion */
.widgetor-advanced-menu.orient-vertical.is-open .wam-shell,
.widgetor-advanced-menu.orient-vertical:hover .wam-shell { height: calc(var(--wam-size) + var(--wam-gap, 0px) + var(--wam-menu-h, 0px)); }
.widgetor-advanced-menu .wam-inner { position: relative; display: inline-flex; align-items: center; height: 100%; gap: var(--wam-gap); }
.widgetor-advanced-menu.dir-left .wam-inner { flex-direction: row-reverse; }
.widgetor-advanced-menu.orient-vertical .wam-inner { flex-direction: column; align-items: flex-start; }
.widgetor-advanced-menu.orient-vertical.vdir-up .wam-inner { flex-direction: column-reverse; }
.widgetor-advanced-menu .wam-trigger { width: var(--wam-size); height: var(--wam-size); display: inline-flex; align-items: center; justify-content: center; border-radius: var(--wam-radius, 10px); background: var(--wam-bg, #111); color: var(--wam-fg, #fff); cursor: pointer; user-select: none; flex: 0 0 auto; }
.widgetor-advanced-menu .wam-trigger:focus { outline: 2px solid rgba(0,0,0,0.35); outline-offset: 2px; }
/* Menu base */
.widgetor-advanced-menu .wam-menu { display: inline-flex; align-items: center; gap: var(--wam-item-gap, 10px); white-space: nowrap; }
.widgetor-advanced-menu.orient-vertical .wam-menu { flex-direction: column; white-space: normal; width: 100%; }
/* Animations */
.widgetor-advanced-menu.wam-anim-fade .wam-menu { opacity: 0; transition: opacity var(--wam-dur) ease; }
.widgetor-advanced-menu.wam-anim-fade.is-open .wam-menu,
.widgetor-advanced-menu.wam-anim-fade:hover .wam-menu { opacity: 1; }
.widgetor-advanced-menu.wam-anim-slide.orient-horizontal .wam-menu { opacity: 0; transform: translateX(var(--wam-off-x, 8px)); transition: opacity var(--wam-dur) ease, transform var(--wam-dur) ease; }
.widgetor-advanced-menu.wam-anim-slide.dir-left .wam-menu { --wam-off-x: -8px; }
.widgetor-advanced-menu.wam-anim-slide.orient-vertical .wam-menu { opacity: 0; transform: translateY(var(--wam-off-y, 8px)); transition: opacity var(--wam-dur) ease, transform var(--wam-dur) ease; }
.widgetor-advanced-menu.wam-anim-slide.vdir-up .wam-menu { --wam-off-y: -8px; }
.widgetor-advanced-menu.wam-anim-slide.is-open .wam-menu,
.widgetor-advanced-menu.wam-anim-slide:hover .wam-menu { opacity: 1; transform: translate(0,0); }
/* Stretch: rely only on shell expansion */
/* Stretch animation removed */
/* Vertical width handling (full/custom) */
.widgetor-advanced-menu.orient-vertical .wam-shell { width: var(--wam-vw, var(--wam-size)); }
.widgetor-advanced-menu .wam-menu a { display: inline-flex; align-items: center; padding: 6px 10px; border-radius: 8px; text-decoration: none; color: inherit; background: var(--wam-item-bg, transparent); transition: background 150ms ease, color 150ms ease; }
.widgetor-advanced-menu .wam-menu a:hover { background: var(--wam-item-hover-bg, rgba(0,0,0,0.05)); }

@media (max-width: 768px){
    .widgetor-advanced-menu { --wam-size: 44px; }
}

@media (prefers-reduced-motion: reduce){
    .widgetor-advanced-menu .wam-shell, .widgetor-advanced-menu .wam-menu { transition: none; }
}

/* =============================================
     HORIZONTAL SCROLLING PAGE (GSAP) STYLES
     ============================================= */
.widgetor-hscroll-wrapper { position: relative; width: 100%; overflow: hidden; }
.widgetor-hscroll { position: relative; width: 100%; min-height: 100vh; }
.widgetor-hscroll-track { position: relative; display: flex; align-items: stretch; gap: 40px; width: max-content; min-height: 100%; }
.widgetor-hscroll-panel { flex: 0 0 auto; width: 100vw; display: flex; }
.widgetor-hscroll-panel-inner { background: #ffffff; border-radius: 12px; width: 100%; min-height: 100vh; box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; padding: 40px; }
.widgetor-hscroll-title { font-size: 32px; line-height: 1.25; margin: 0 0 15px 0; color: #111; font-weight: 700; }
.widgetor-hscroll-description { font-size: 16px; line-height: 1.7; color: #444; margin: 0; }
.widgetor-hscroll-image img { max-width: 100%; height: auto; display: block; border-radius: 8px; }
.widgetor-hscroll-template { padding: 40px 20px; text-align: center; background: #f8f9fa; border-radius: 8px; color: #6c757d; border: 2px dashed #dee2e6; }
.widgetor-hscroll-shortcode { margin-top: 15px; padding: 15px; background: #f1f2f6; border-radius: 6px; border-left: 4px solid #3498db; }

@media (max-width: 768px){
    .widgetor-hscroll-title { font-size: 24px; }
    .widgetor-hscroll-panel-inner { padding: 24px; }
}

    /* =============================================
         COUNTER / COUNTDOWN STYLES
         ============================================= */
    .widgetor-counter-wrapper { width: 100%; }
    .widgetor-counter { display: inline-block; }
    .widgetor-counter-value { display: inline-block; font-variant-numeric: tabular-nums; }

    /* =============================================
        SPECIAL TEXT EFFECTS
        ============================================= */
    .widgetor-special-text { position: relative; display: inline-block; line-height: 1.2; }

    /* Glow */
    .widgetor-special-text.wst-glow { text-shadow: 0 0 calc(var(--wst-glow-blur, 24px) * 0.35) var(--wst-glow-color, #8B5CF6), 0 0 var(--wst-glow-blur, 24px) var(--wst-glow-color, #8B5CF6); }
    .widgetor-special-text.wst-glow.wst-glow-pulse { animation: wst-glow-pulse 2.6s ease-in-out infinite; }
    @keyframes wst-glow-pulse { 0%,100% { text-shadow: 0 0 calc(var(--wst-glow-blur, 24px) * 0.2) var(--wst-glow-color, #8B5CF6), 0 0 calc(var(--wst-glow-blur, 24px) * 0.6) var(--wst-glow-color, #8B5CF6);} 50% { text-shadow: 0 0 calc(var(--wst-glow-blur, 24px) * 0.5) var(--wst-glow-color, #8B5CF6), 0 0 calc(var(--wst-glow-blur, 24px) * 1) var(--wst-glow-color, #8B5CF6);} }

    /* Unblur on hover (letters) */
    .widgetor-special-text.wst-unblur-hover .wst-char { display:inline-block; filter: blur(var(--wst-blur, 6px)); transition: filter .25s ease, transform .25s ease; }
    .widgetor-special-text.wst-unblur-hover .wst-char:hover { filter: blur(0); transform: translateY(-2px); }

    /* Image fill (with parallax vars) */
    .widgetor-special-text.wst-image-fill { background-image: var(--wst-img); background-size: cover; background-repeat: no-repeat; background-position: calc(50% + var(--wst-bgx, 0%)) calc(50% + var(--wst-bgy, 0%)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }

    /* Neon */
    .widgetor-special-text.wst-neon { color: var(--wst-neon-color, #39d2ff); text-shadow: 0 0 calc(var(--wst-neon-blur,28px) * .35) var(--wst-neon-color, #39d2ff), 0 0 var(--wst-neon-blur,28px) var(--wst-neon-color, #39d2ff); }
    .widgetor-special-text.wst-neon.wst-neon-pulse { animation: wst-neon-pulse 3s ease-in-out infinite; }
    @keyframes wst-neon-pulse { 0%,100% { text-shadow: 0 0 calc(var(--wst-neon-blur,28px) * .2) var(--wst-neon-color), 0 0 calc(var(--wst-neon-blur,28px) * .6) var(--wst-neon-color);} 50% { text-shadow: 0 0 calc(var(--wst-neon-blur,28px) * .5) var(--wst-neon-color), 0 0 calc(var(--wst-neon-blur,28px) * 1) var(--wst-neon-color);} }

    /* Typewriter */
    .widgetor-special-text.wst-typewriter { white-space: nowrap; }
    .widgetor-special-text .wst-type-cursor { display:inline-block; margin-left: 2px; animation: wst-cursor-blink 1s steps(1) infinite; }
    @keyframes wst-cursor-blink { 0%,50% { opacity: 1; } 50.01%, 100% { opacity: 0; } }

    /* Shadow shift */
    .widgetor-special-text.wst-shadow-shift { text-shadow: var(--wst-dx, 8px) var(--wst-dy, 0px) 0 var(--wst-shadow-color, #000000); transition: text-shadow .25s ease; }
    .widgetor-special-text.wst-shadow-shift:hover { text-shadow: 0 0 0 var(--wst-shadow-color, #000000); }
    .widgetor-special-text.wst-shadow-shift.wst-shadow-osc { animation: wst-shadow-osc 2.2s ease-in-out infinite; }
    @keyframes wst-shadow-osc { 0%,100% { text-shadow: var(--wst-dx) var(--wst-dy) 0 var(--wst-shadow-color); } 50% { text-shadow: calc(var(--wst-dx) * -1) calc(var(--wst-dy) * -1) 0 var(--wst-shadow-color); } }
    /* Shadow shift reverse: reveal shadow on hover */
    .widgetor-special-text.wst-shadow-shift.wst-shadow-rev { text-shadow: none; animation: none; }
    .widgetor-special-text.wst-shadow-shift.wst-shadow-rev:hover { text-shadow: var(--wst-dx, 8px) var(--wst-dy, 0px) 0 var(--wst-shadow-color, #000000); }

    /* Glass text (frosted feel) */
    .widgetor-special-text.wst-glass { color: transparent; background: linear-gradient(transparent, rgba(255,255,255,var(--wst-glass, .4)), transparent); -webkit-background-clip: text; background-clip: text; text-shadow: 0 1px 2px rgba(0,0,0,.15); }

    /* Reveal on hover (mask follows cursor) with softness */
    .widgetor-special-text.wst-reveal { --wst-mx: 50%; --wst-my: 50%; --wst-reveal-r: 80px; --wst-reveal-soft: 20px; -webkit-mask-image: radial-gradient(circle var(--wst-reveal-r) at var(--wst-mx) var(--wst-my), #000 0, #000 calc(var(--wst-reveal-r) - var(--wst-reveal-soft)), transparent var(--wst-reveal-r)); mask-image: radial-gradient(circle var(--wst-reveal-r) at var(--wst-mx) var(--wst-my), #000 0, #000 calc(var(--wst-reveal-r) - var(--wst-reveal-soft)), transparent var(--wst-reveal-r)); }

    /* Scale letters */
    .widgetor-special-text.wst-scale-letters .wst-char { display:inline-block; transition: transform .2s ease; will-change: transform; }
    .widgetor-special-text.wst-scale-letters .wst-char:hover { transform: scale(calc(1 + var(--wst-scale-amt, .15))); }
    .widgetor-special-text.wst-scale-letters.wst-wave .wst-char { animation: wst-scale-wave var(--wst-speed, 3s) ease-in-out infinite; animation-delay: var(--wst-delay, 0s); }
    @keyframes wst-scale-wave { 0%, 100% { transform: scale(1); } 50% { transform: scale(calc(1 + var(--wst-scale-amt, .15))); } }

    /* Smooth variants */
    .widgetor-special-text.wst-unblur-hover.wst-smooth .wst-char { transition: filter .45s cubic-bezier(.22,.61,.36,1), transform .45s cubic-bezier(.22,.61,.36,1); will-change: filter, transform; }
    .widgetor-special-text.wst-scale-letters.wst-smooth-scale .wst-char { transition: transform .35s cubic-bezier(.22,.61,.36,1); }

