/* =============================================
   GlideKit Horizontal Marquee Styles
   (UNCHANGED)
   ============================================= */

.glidekit-marquee-wrapper {
    --gradient-color: #ffffff;
    --gradient-opacity: 1;
    display: flex;
    overflow: hidden;
    width: 100%;
    position: relative;
}

.glidekit-marquee-inner {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    gap: 40px; /* Default gap, will be overridden by controls */
    
    animation-name: glidekit-marquee-animation;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-duration: 20s; /* Default, will be overridden by controls */
    animation-direction: normal;
    will-change: transform;
}

/* Reverse direction */
.glidekit-marquee-wrapper.reverse-direction .glidekit-marquee-inner {
    animation-direction: reverse;
}

.glidekit-marquee-item {
    display: flex;
    align-items: center;
    white-space: nowrap;
    flex-shrink: 0;
    text-decoration: none;
    transition: all 0.3s ease;
}

.glidekit-marquee-item-text {
    display: inline-block;
}

.glidekit-marquee-item-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

/* Image styles */
.glidekit-marquee-item-image {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    overflow: hidden;
}

.glidekit-marquee-item-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: all 0.3s ease;
}

/* Content wrapper for text and icon */
.glidekit-marquee-item-content {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Layout variations */
.glidekit-marquee-item.has-image {
    display: flex;
    align-items: center;
}

/* Image positioning */
.glidekit-marquee-item.image-before { flex-direction: row; }
.glidekit-marquee-item.image-after { flex-direction: row-reverse; }
.glidekit-marquee-item.image-above { flex-direction: column; align-items: center; }
.glidekit-marquee-item.image-below { flex-direction: column-reverse; align-items: center; }

/* Adjust spacing for vertical layouts */
.glidekit-marquee-item.image-above .glidekit-marquee-item-image,
.glidekit-marquee-item.image-below .glidekit-marquee-item-image { margin: 0 0 10px 0; }
.glidekit-marquee-item.image-below .glidekit-marquee-item-image { margin: 10px 0 0 0; }

/* Icon positioning within content wrapper */
.glidekit-marquee-item.icon-after .glidekit-marquee-item-content { flex-direction: row-reverse; }

/* Pause on hover */
.glidekit-marquee-wrapper.pause-on-hover:hover .glidekit-marquee-inner { animation-play-state: paused !important; }

/* Animation keyframes */
@keyframes glidekit-marquee-animation {
    from { transform: translateX(0%); }
    to   { transform: translateX(-50%); }
}

/* Smooth edges with gradient masks */
.glidekit-marquee-wrapper.show-gradient::before,
.glidekit-marquee-wrapper.show-gradient::after {
    content: '';
    position: absolute;
    top: 0;
    width: 100px;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

.glidekit-marquee-wrapper.show-gradient::before {
    left: 0;
    background: linear-gradient(to right, var(--gradient-color, #ffffff) 0%, transparent 100%);
    opacity: var(--gradient-opacity, 1);
}

.glidekit-marquee-wrapper.show-gradient::after {
    right: 0;
    background: linear-gradient(to left, var(--gradient-color, #ffffff) 0%, transparent 100%);
    opacity: var(--gradient-opacity, 1);
}

/* =============================================
   GlideKit Vertical Marquee (rAF-driven seamless loop)
   ============================================= */

.glidekit-marquee-v-wrapper {
    --gradient-color: #ffffff;
    --gradient-opacity: 1;
    --item-gap: 20px; /* Default gap, overridden by controls */
    /* Optional: allow Elementor to set --marquee-duration to control speed */
    display: flex;
    flex-direction: column;
    overflow: hidden;
    height: 300px; /* Default height, overridden by controls */
    position: relative;
}

.glidekit-marquee-v-inner {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    gap: 0 !important;              /* groups control spacing */
    will-change: transform;
    transform: translateZ(0);       /* perf hint */
    backface-visibility: hidden;    /* perf hint */

    /* IMPORTANT: no CSS animation here; JS controls transform */
    animation: none !important;
}

/* Each logical group of items (A and B) */
.glidekit-group {
    display: flex;
    flex-direction: column;
    row-gap: var(--item-gap, 20px);
}

/* Spacer at end of Group A for seam spacing */
.glidekit-gap-spacer {
    height: var(--item-gap, 20px);
    flex: 0 0 auto;
}

.glidekit-marquee-v-item {
    display: flex;
    align-items: center;
    white-space: nowrap;
    flex-shrink: 0;
    text-decoration: none;
    transition: all 0.3s ease;
}

/* Text orientation styles remain the same */
.glidekit-marquee-orientation-horizontal .glidekit-marquee-v-item { writing-mode: horizontal-tb; }
.glidekit-marquee-orientation-sideways   .glidekit-marquee-v-item { writing-mode: vertical-rl; text-orientation: mixed; }
.glidekit-marquee-orientation-stacked    .glidekit-marquee-v-item { writing-mode: vertical-lr; text-orientation: upright; }
.glidekit-marquee-orientation-stacked-reversed .glidekit-marquee-v-item { writing-mode: vertical-rl; text-orientation: upright; }

/* Vertical gradients */
.glidekit-marquee-v-wrapper.show-gradient::before,
.glidekit-marquee-v-wrapper.show-gradient::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 50px;
    z-index: 2;
    pointer-events: none;
}

.glidekit-marquee-v-wrapper.show-gradient::before {
    top: 0;
    background: linear-gradient(to bottom, var(--gradient-color, #ffffff) 0%, transparent 100%);
    opacity: var(--gradient-opacity, 1);
}

.glidekit-marquee-v-wrapper.show-gradient::after {
    bottom: 0;
    background: linear-gradient(to top, var(--gradient-color, #ffffff) 0%, transparent 100%);
    opacity: var(--gradient-opacity, 1);
}

/* Reverse + pause handled by JS, keep classes for semantics */
.glidekit-marquee-v-wrapper.reverse-direction .glidekit-marquee-v-inner { }
.glidekit-marquee-v-wrapper.pause-on-hover:hover .glidekit-marquee-v-inner { }

/* =============================================
   Shared Marquee Styles
   ============================================= */

/* Performance optimization */
.glidekit-marquee-wrapper *,
.glidekit-marquee-v-wrapper * {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Accessibility - Reduce motion */
@media (prefers-reduced-motion: reduce) {
    /* Horizontal uses CSS animations */
    .glidekit-marquee-inner { animation-play-state: paused !important; }
    /* Vertical is JS-driven; JS will minimize speed, but keep transform static via CSS */
    .glidekit-marquee-v-inner { transform: none !important; }
}
