/* =============================================================================
   Clever Course Carousel — public styles
   All sizing/colour overrides come from PHP via ET_Builder_Element::set_style().
   This file provides structure only.
   ============================================================================= */

/* Wrapper: position context for inside/outside arrows */
.clever-cc-wrapper {
    position: relative;
}

/* ---- Stage ---------------------------------------------------------------- */
.clever-cc-stage {
    display: flex;
    align-items: center;
    gap: 0;
    width: 100%;
}

/* Track wrap clips overflow */
.clever-cc-track-wrap {
    flex: 1;
    overflow: hidden;
    min-width: 0; /* prevent flex blowout */
}

/* Track: flex row set by JS, gap between slides set via marginRight on slides */
.clever-cc-track {
    display: flex;
    flex-wrap: nowrap;
}

/* ---- Slide ---------------------------------------------------------------- */
.clever-cc-slide {
    box-sizing: border-box;
    flex-shrink: 0;
}

/* ---- Card (mirrors .clever-cl-card structure) ----------------------------- */
.clever-cc-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    height: 100%;
    box-sizing: border-box;
    border-style: solid;
}

.clever-cc-card-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}

/* ---- Image ---------------------------------------------------------------- */
.clever-cc-image-wrap {
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
    border-style: solid;
}

.clever-cc-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ---- Price badge ---------------------------------------------------------- */
.clever-cc-badge-wrap {
    position: absolute;
    top: 12px;
    right: 12px;
}

.clever-cc-badge {
    display: inline-block;
    line-height: 1;
}

/* ---- Typography ----------------------------------------------------------- */
.clever-cc-title {
    margin: 0 0 4px;
    padding: 0;
}

.clever-cc-subtitle {
    display: block;
    margin: 0 0 10px;
}

.clever-cc-body {
    flex: 1;
    margin: 0 0 16px;
}

/* ---- Footer / buttons ----------------------------------------------------- */
.clever-cc-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: auto;
}

/* accessible mode: single button — default left align (overridable via Divi) */
.clever-cc-mode-accessible .clever-cc-footer {
    justify-content: flex-start;
}

/* ---- Arrows --------------------------------------------------------------- */
.clever-cc-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    cursor: pointer;
    border: none;
    border-radius: 50%;
    padding: 0;
    transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
    /* width / height / color / background set by PHP */
}

.clever-cc-arrow svg {
    pointer-events: none;
    display: block;
}

.clever-cc-arrow.is-disabled {
    opacity: 0.35;
    cursor: default;
}

/* Outside: stage already has the buttons flanking the track via flex row */
.clever-cc-arrows-outside .clever-cc-stage {
    gap: 12px;
}

/* Inside: arrows overlap the track */
.clever-cc-arrows-inside .clever-cc-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
}

.clever-cc-arrows-inside .clever-cc-arrow-prev {
    left: 8px;
}

.clever-cc-arrows-inside .clever-cc-arrow-next {
    right: 8px;
}

/* Below: arrows rendered in their own row */
.clever-cc-below-nav {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 16px;
}

/* Hidden when show_arrows = off */
.clever-cc-no-arrows .clever-cc-arrow {
    display: none !important;
}

/* ---- Dot navigation ------------------------------------------------------- */
.clever-cc-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    flex-wrap: wrap;
}

.clever-cc-no-dots .clever-cc-dots {
    display: none !important;
}

.clever-cc-dot {
    display: block;
    border-radius: 50%;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
    /* width / height / background set by PHP */
}

.clever-cc-dot.is-active {
    transform: scale( 1.25 );
    /* background set by PHP */
}

/* ---- Favourites heart button (same as Course List) ----------------------- */
.clever-cc-arrow-prev,
.clever-cc-arrow-next {
    /* ensure specificity doesn't fight with reset button styles */
    -webkit-appearance: none;
    appearance: none;
}

/* Guest / empty messages */
.clever-cc-guest,
.clever-cc-empty {
    padding: 12px;
    opacity: 0.7;
}

/* ---- Mobile: stacked, centred, 90% width, 10px gap ----------------------- */
@media (max-width: 767px) {
    .clever-cc-footer.is-two-btn {
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
        gap: 10px !important;
    }

    .clever-cc-btn-primary-wrap,
    .clever-cc-btn-secondary-wrap {
        width: 90% !important;
        display: flex !important;
        justify-content: center !important;
    }

    .clever-cc-btn-primary-wrap .et_pb_button,
    .clever-cc-btn-secondary-wrap .et_pb_button {
        width: 100% !important;
        text-align: center !important;
        box-sizing: border-box !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}
