/* =============================================
   GlideKit Horizontal Marquee Styles
   ============================================= */

.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 removed - will handle spacing with margins */
    
    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;
}

/* Add spacing as margin-right to each item */
.glidekit-marquee-item {
    display: flex;
    align-items: center;
    white-space: nowrap;
    flex-shrink: 0;
    text-decoration: none;
    transition: all 0.3s ease;
    margin-right: var(--item-spacing, 40px);
}

/* Reverse direction */
.glidekit-marquee-wrapper.reverse-direction .glidekit-marquee-inner {
    animation-direction: reverse;
}

.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 Styles (Simplified)
   ============================================= */

.glidekit-marquee-v-wrapper {
    --gradient-color: #ffffff;
    --gradient-opacity: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    height: 400px; /* Default height, will be overridden by controls */
    position: relative;
}

.glidekit-marquee-v-inner {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    /* gap removed - will handle spacing with margins */
    
    animation-name: glidekit-marquee-v-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-v-wrapper.reverse-direction .glidekit-marquee-v-inner {
    animation-direction: reverse;
}
.glidekit-marquee-v-item {
    display: flex;
    align-items: center;
    white-space: nowrap;
    flex-shrink: 0;
    text-decoration: none;
    transition: all 0.3s ease;
    margin-bottom: var(--item-spacing, 20px);
}

.glidekit-marquee-v-item-text {
    display: inline-block;
}

.glidekit-marquee-v-item-icon {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

/* Image styles */
.glidekit-marquee-v-item-image {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    overflow: hidden;
}

.glidekit-marquee-v-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-v-item-content {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Layout variations */
.glidekit-marquee-v-item.has-image {
    display: flex;
    align-items: center;
}

/* Image positioning for vertical marquee */
.glidekit-marquee-v-item.image-left { flex-direction: row; }
.glidekit-marquee-v-item.image-right { flex-direction: row-reverse; }
.glidekit-marquee-v-item.image-above { flex-direction: column; align-items: center; }
.glidekit-marquee-v-item.image-below { flex-direction: column-reverse; align-items: center; }

/* Adjust spacing for vertical layouts */
.glidekit-marquee-v-item.image-above .glidekit-marquee-v-item-image,
.glidekit-marquee-v-item.image-below .glidekit-marquee-v-item-image { margin: 0 0 10px 0; }
.glidekit-marquee-v-item.image-below .glidekit-marquee-v-item-image { margin: 10px 0 0 0; }

/* Icon positioning within content wrapper */
.glidekit-marquee-v-item.icon-after .glidekit-marquee-v-item-content { flex-direction: row-reverse; }

/* Text orientation styles */
.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; 
}

/* Pause on hover */
.glidekit-marquee-v-wrapper.pause-on-hover:hover .glidekit-marquee-v-inner { 
    animation-play-state: paused !important; 
}

/* Animation keyframes for vertical marquee */
@keyframes glidekit-marquee-v-animation {
    0% { 
        transform: translateY(0); 
    }
    100% { 
        /* Move by exactly 50% - this works because we duplicate all items including gaps */
        transform: translateY(-50%); 
    }
}

/* Smooth edges with gradient masks for vertical */
.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);
}

/* =============================================
   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) {
    .glidekit-marquee-inner,
    .glidekit-marquee-v-inner {
        animation-play-state: paused !important;
    }
}