/* ===========================================
   Webify Hero Slider - Main Styles
   =========================================== */

.whs-slider {
    position: relative;
    width: 100%;
    height: 500px;
    overflow: hidden;
    direction: ltr;
}

/* ----- Slides Container ----- */
.whs-slides {
    position: relative;
    width: 100%;
    height: 100%;
}

/* ----- Single Slide ----- */
.whs-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity var(--whs-transition-speed, 700ms) ease-in-out;
    z-index: 1;
    display: block;
    text-decoration: none;
    cursor: default;
}

a.whs-slide {
    cursor: pointer;
}

.whs-slide--active {
    opacity: 1;
    z-index: 2;
}

/* ----- Slide Image ----- */
.whs-slide__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.whs-slide__image--mobile {
    display: none;
}

@media (max-width: 767px) {
    .whs-slide__image--desktop {
        display: none;
    }
    .whs-slide__image--mobile {
        display: block;
    }
}

/* ===========================================
   Ken Burns Effect
   =========================================== */
.whs-ken-burns {
    will-change: transform;
}

.whs-ken-burns--in {
    transform: scale(1);
    transition: transform linear;
}

.whs-slide--active .whs-ken-burns--in {
    transform: scale(var(--whs-ken-burns-scale, 1.3));
}

.whs-ken-burns--out {
    transform: scale(var(--whs-ken-burns-scale, 1.3));
    transition: transform linear;
}

.whs-slide--active .whs-ken-burns--out {
    transform: scale(1);
}

/* ===========================================
   Navigation Arrows
   =========================================== */
.whs-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.3);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease, opacity 0.3s ease;
    padding: 0;
    opacity: 0;
}

.whs-slider:hover .whs-arrow {
    opacity: 1;
}

.whs-arrow:hover {
    background-color: rgba(0, 0, 0, 0.6);
}

.whs-arrow svg {
    width: 50%;
    height: 50%;
}

.whs-arrow--prev {
    left: 15px;
}

.whs-arrow--next {
    right: 15px;
}

/* ===========================================
   Bullets - Base Styles
   =========================================== */
.whs-bullets {
    position: absolute;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 8px;
    --whs-bullet-size: 12px;
    --whs-bullet-offset: 20px;
}

/* Positions */
.whs-bullets--bottom-center {
    bottom: var(--whs-bullet-offset, 20px);
    left: 50%;
    transform: translateX(-50%);
}

.whs-bullets--bottom-left {
    bottom: var(--whs-bullet-offset, 20px);
    left: var(--whs-bullet-offset, 20px);
}

.whs-bullets--bottom-right {
    bottom: var(--whs-bullet-offset, 20px);
    right: var(--whs-bullet-offset, 20px);
}

.whs-bullets--top-center {
    top: var(--whs-bullet-offset, 20px);
    left: 50%;
    transform: translateX(-50%);
}

/* Bullet Base */
.whs-bullet {
    position: relative;
    border: none;
    padding: 0;
    cursor: pointer;
    outline: none;
    background: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s ease;
    --whs-bullet-color: rgba(255, 255, 255, 0.4);
    --whs-bullet-active-color: #ffffff;
}

.whs-bullet:hover {
    transform: scale(1.2);
}

/* ===========================================
   Bullet Style: Dots
   =========================================== */
.whs-bullet--dots {
    width: var(--whs-bullet-size, 12px);
    height: var(--whs-bullet-size, 12px);
    border-radius: 50%;
    background-color: var(--whs-bullet-color);
    overflow: hidden;
}

.whs-bullet--dots.whs-bullet--active {
    background-color: transparent;
}

.whs-bullet--dots .whs-bullet__progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: var(--whs-bullet-active-color);
    transform: scale(0);
    transform-origin: center;
    transition: none;
}

.whs-bullet--dots.whs-bullet--active .whs-bullet__progress {
    animation: whs-dot-fill var(--whs-bullet-duration, 5000ms) linear forwards;
}

@keyframes whs-dot-fill {
    0% { transform: scale(0); }
    100% { transform: scale(1); }
}

/* ===========================================
   Bullet Style: Lines
   =========================================== */
.whs-bullet--lines {
    width: calc(var(--whs-bullet-size, 12px) * 3);
    height: 3px;
    background-color: var(--whs-bullet-color);
    border-radius: 0;
    overflow: hidden;
}

.whs-bullet--lines .whs-bullet__progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background-color: var(--whs-bullet-active-color);
    transition: none;
}

.whs-bullet--lines.whs-bullet--active .whs-bullet__progress {
    animation: whs-line-fill var(--whs-bullet-duration, 5000ms) linear forwards;
}

@keyframes whs-line-fill {
    0% { width: 0; }
    100% { width: 100%; }
}

/* ===========================================
   Bullet Style: Dashes
   =========================================== */
.whs-bullet--dashes {
    width: calc(var(--whs-bullet-size, 12px) * 2);
    height: 4px;
    background-color: var(--whs-bullet-color);
    border-radius: 2px;
    overflow: hidden;
}

.whs-bullet--dashes .whs-bullet__progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background-color: var(--whs-bullet-active-color);
    border-radius: 2px;
    transition: none;
}

.whs-bullet--dashes.whs-bullet--active .whs-bullet__progress {
    animation: whs-line-fill var(--whs-bullet-duration, 5000ms) linear forwards;
}

/* ===========================================
   Bullet Style: Rounded Bars
   =========================================== */
.whs-bullet--rounded_bars {
    width: calc(var(--whs-bullet-size, 12px) * 3);
    height: calc(var(--whs-bullet-size, 12px) * 0.5);
    background-color: var(--whs-bullet-color);
    border-radius: calc(var(--whs-bullet-size, 12px) * 0.25);
    overflow: hidden;
}

.whs-bullet--rounded_bars .whs-bullet__progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background-color: var(--whs-bullet-active-color);
    border-radius: calc(var(--whs-bullet-size, 12px) * 0.25);
    transition: none;
}

.whs-bullet--rounded_bars.whs-bullet--active .whs-bullet__progress {
    animation: whs-line-fill var(--whs-bullet-duration, 5000ms) linear forwards;
}

/* ===========================================
   Bullet Style: Numbers
   =========================================== */
.whs-bullet--numbers {
    width: var(--whs-bullet-size, 12px);
    height: var(--whs-bullet-size, 12px);
    min-width: 24px;
    min-height: 24px;
    border-radius: 50%;
    background-color: var(--whs-bullet-color);
    overflow: hidden;
}

.whs-bullet--numbers .whs-bullet__number {
    position: relative;
    z-index: 2;
    font-size: calc(var(--whs-bullet-size, 12px) * 0.65);
    min-font-size: 10px;
    color: #fff;
    font-weight: 600;
    line-height: 1;
    pointer-events: none;
}

.whs-bullet--numbers .whs-bullet__progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--whs-bullet-active-color);
    border-radius: 50%;
    transform: scaleY(0);
    transform-origin: bottom center;
    transition: none;
}

.whs-bullet--numbers.whs-bullet--active .whs-bullet__progress {
    animation: whs-number-fill var(--whs-bullet-duration, 5000ms) linear forwards;
}

@keyframes whs-number-fill {
    0% { transform: scaleY(0); }
    100% { transform: scaleY(1); }
}

/* ===========================================
   Bullet Style: Ring
   =========================================== */
.whs-bullet--ring {
    width: var(--whs-bullet-size, 12px);
    height: var(--whs-bullet-size, 12px);
    border-radius: 50%;
    background: transparent;
    overflow: visible;
}

.whs-bullet--ring::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40%;
    height: 40%;
    background-color: var(--whs-bullet-color);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: background-color 0.3s ease;
}

.whs-bullet--ring.whs-bullet--active::before {
    background-color: var(--whs-bullet-active-color);
}

.whs-bullet--ring .whs-bullet__progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    opacity: 0;
}

.whs-bullet--ring.whs-bullet--active .whs-bullet__progress {
    opacity: 1;
}

/* Ring SVG progress is handled via JS */

/* ===========================================
   Accessibility & Print
   =========================================== */
@media (prefers-reduced-motion: reduce) {
    .whs-slide {
        transition: none;
    }
    .whs-ken-burns {
        transition: none !important;
        transform: none !important;
    }
    .whs-bullet__progress {
        animation: none !important;
    }
}

@media print {
    .whs-arrow,
    .whs-bullets {
        display: none;
    }
}
