/* =============================================
   FB Agent Slider – Styles
   ============================================= */

.fbas-slider {
    position: relative;
    overflow: hidden;
    margin: 0 auto;
    width: 100%;
    max-width: 1200px;
    border-radius: 8px;
    background: #0a0a0a;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .35);
}

/* Aspect-ratio wrapper — keeps proportion at any screen width.
   Default 1200×400 = 3:1 ratio.
   Uses padding-bottom trick for full browser support. */
.fbas-slider::before {
    content: '';
    display: block;
    padding-bottom: 33.333%;           /* 400 / 1200 */
}

/* ── Track / Slides ── */
.fbas-track {
    position: absolute;
    inset: 0;
    display: flex;
    transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.fbas-slide {
    min-width: 100%;
    height: 100%;
    flex-shrink: 0;
}

.fbas-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;             /* clicks pass through to the <a> */
}

.fbas-slide-link {
    display: block;
    width: 100%;
    height: 100%;
    line-height: 0;
    cursor: pointer;
    text-decoration: none;
    pointer-events: auto;
}

/* ── Loader ── */
.fbas-loader {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
    background: #0a0a0a;
}

.fbas-loader.fbas-hidden {
    display: none;
}

.fbas-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid rgba(255, 255, 255, .15);
    border-top-color: #fff;
    border-radius: 50%;
    animation: fbas-spin .7s linear infinite;
}

@keyframes fbas-spin {
    to { transform: rotate(360deg); }
}

/* ── Navigation Arrows ── */
.fbas-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    cursor: pointer;
    opacity: 0;
    transition: opacity .25s, background .25s;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    /* WCAG minimum 44×44 tap target */
    min-width: 44px;
    min-height: 44px;
}

.fbas-slider:hover .fbas-nav {
    opacity: 1;
}

.fbas-nav:hover {
    background: rgba(0, 0, 0, .8);
}

.fbas-nav--prev { left: 12px; }
.fbas-nav--next { right: 12px; }

/* ── Dot Indicators ── */
.fbas-dots {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 10;
    flex-wrap: wrap;
    justify-content: center;
    max-width: 90%;
}

.fbas-dot {
    width: 10px;
    height: 10px;
    border: 2px solid rgba(255, 255, 255, .7);
    border-radius: 50%;
    background: transparent;
    padding: 0;
    cursor: pointer;
    transition: background .25s, transform .25s;
}

.fbas-dot:hover {
    transform: scale(1.25);
}

.fbas-dot.fbas-active {
    background: #fff;
}

/* =============================================
   RESPONSIVE BREAKPOINTS
   ============================================= */

/* ── Tablet  (≤ 768px) ── */
@media (max-width: 768px) {
    .fbas-slider {
        border-radius: 4px;
    }

    /* Always visible on touch — no hover required */
    .fbas-nav {
        opacity: 0.85;
        width: 38px;
        height: 38px;
        min-width: 38px;
        min-height: 38px;
    }

    .fbas-nav--prev { left: 8px; }
    .fbas-nav--next { right: 8px; }

    .fbas-dots {
        bottom: 8px;
        gap: 6px;
    }

    .fbas-dot {
        width: 8px;
        height: 8px;
    }
}

/* ── Mobile  (≤ 480px) ── */
@media (max-width: 480px) {
    .fbas-slider {
        border-radius: 0;
        box-shadow: none;
    }

    /* Taller aspect ratio on small screens so image isn't a thin sliver */
    .fbas-slider::before {
        padding-bottom: 50%;           /* 2:1 ratio */
    }

    .fbas-nav {
        opacity: 0.9;
        width: 34px;
        height: 34px;
        min-width: 34px;
        min-height: 34px;
        background: rgba(0, 0, 0, .65);
    }

    .fbas-nav svg {
        width: 18px;
        height: 18px;
    }

    .fbas-nav--prev { left: 4px; }
    .fbas-nav--next { right: 4px; }

    .fbas-dots {
        bottom: 6px;
        gap: 5px;
    }

    .fbas-dot {
        width: 7px;
        height: 7px;
        border-width: 1.5px;
    }
}

/* ── Small phones (≤ 360px) ── */
@media (max-width: 360px) {
    .fbas-slider::before {
        padding-bottom: 60%;           /* taller still for tiny screens */
    }

    .fbas-nav {
        width: 30px;
        height: 30px;
        min-width: 30px;
        min-height: 30px;
    }

    .fbas-nav svg {
        width: 16px;
        height: 16px;
    }
}
