/* =========================================================
   Custom Gallery Slider — Frontend Styles
   ========================================================= */

.cgs-wrapper {
    position: relative;
    overflow: hidden;
    display: block;
    line-height: 0;
}

/* ── Slide base ── */
.cgs-slide {
    position: absolute;
    inset: 0;           /* top:0 right:0 bottom:0 left:0 */
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;
    will-change: transform, opacity;
}

.cgs-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Active slide is visible */
.cgs-slide.cgs-active {
    opacity: 1;
    pointer-events: auto;
    z-index: 2;
}


/* =========================================================
   TRANSITIONS — applied by data-transition attribute
   ========================================================= */

/* ── FADE (default) ── */
[data-transition="fade"] .cgs-slide {
    transition: opacity var(--cgs-dur, 0.8s) ease;
}

/* ── SLIDE-UP ── */
[data-transition="slide-up"] .cgs-slide {
    transform: translateY(100%);
    transition: transform var(--cgs-dur, 0.8s) ease, opacity var(--cgs-dur, 0.8s) ease;
}
[data-transition="slide-up"] .cgs-slide.cgs-active {
    transform: translateY(0);
    opacity: 1;
}
/* leaving slide goes up */
[data-transition="slide-up"] .cgs-slide.cgs-leaving {
    transform: translateY(-100%);
    opacity: 0;
}

/* ── SLIDE-DOWN ── */
[data-transition="slide-down"] .cgs-slide {
    transform: translateY(-100%);
    transition: transform var(--cgs-dur, 0.8s) ease, opacity var(--cgs-dur, 0.8s) ease;
}
[data-transition="slide-down"] .cgs-slide.cgs-active {
    transform: translateY(0);
    opacity: 1;
}
[data-transition="slide-down"] .cgs-slide.cgs-leaving {
    transform: translateY(100%);
    opacity: 0;
}

/* ── ZOOM-IN ── */
[data-transition="zoom-in"] .cgs-slide {
    transform: scale(1.15);
    transition: transform var(--cgs-dur, 0.8s) ease, opacity var(--cgs-dur, 0.8s) ease;
}
[data-transition="zoom-in"] .cgs-slide.cgs-active {
    transform: scale(1);
    opacity: 1;
}
[data-transition="zoom-in"] .cgs-slide.cgs-leaving {
    transform: scale(0.85);
    opacity: 0;
}

/* ── ZOOM-OUT ── */
[data-transition="zoom-out"] .cgs-slide {
    transform: scale(0.85);
    transition: transform var(--cgs-dur, 0.8s) ease, opacity var(--cgs-dur, 0.8s) ease;
}
[data-transition="zoom-out"] .cgs-slide.cgs-active {
    transform: scale(1);
    opacity: 1;
}
[data-transition="zoom-out"] .cgs-slide.cgs-leaving {
    transform: scale(1.15);
    opacity: 0;
}


/* =========================================================
   DOT NAVIGATION
   ========================================================= */
.cgs-dots {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 10;
    line-height: 1;
}

.cgs-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.8);
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: background 0.3s ease, transform 0.2s ease;
}

.cgs-dot:hover {
    background: rgba(255, 255, 255, 0.6);
    transform: scale(1.2);
}

.cgs-dot.cgs-dot-active {
    background: #ffffff;
    transform: scale(1.2);
}
