/* ==========================================================================
   CRRA Country Carousel Module
   ========================================================================== */

.crra-country-carousel-module {
    max-width: 1600px;
    margin: 0 auto;
    padding: 0;
    overflow-x: hidden;
}

/* ---------- Header ---------- */
.crra-carousel-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: clamp(24px, 2.5vw, 40px);
}

.crra-carousel-label {
    display: block;
    font-family: 'Segoe UI', sans-serif;
    font-weight: 700;
    font-style: normal;
    font-size: clamp(14px, 1.125vw, 18px);
    letter-spacing: 1.7px;
    text-transform: uppercase;
    color: var(--crra-coral);
    margin-bottom: 0;
}

.crra-carousel-heading {
    font-family: 'Segoe UI', sans-serif;
    font-weight: 700;
    font-style: italic;
    font-size: var(--crra-h2-size);
    line-height: 1.25em;
    color: var(--crra-brown);
    margin: 0;
    padding: 0;
}

/* ---------- Nav Arrows ---------- */
.crra-carousel-nav {
    display: flex;
    gap: clamp(6px, 0.5625vw, 9px);
    flex-shrink: 0;
}

.crra-carousel-nav-btn {
    width: clamp(48px, 4.0625vw, 65px);
    height: clamp(46px, 4vw, 64px);
    border: none;
    background: var(--crra-beige);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s ease;
    padding: 0;
}

.crra-carousel-nav-btn:hover {
    background: #dddcca;
}

.crra-carousel-nav-btn svg,
.crra-carousel-nav-btn img {
    width: clamp(16px, 1.4375vw, 23px);
    height: clamp(16px, 1.4375vw, 23px);
    display: block;
}

/* ---------- Carousel Viewport ---------- */
.crra-carousel-viewport {
    overflow: hidden;
}

.crra-carousel-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 3 * clamp(10px, 1.0625vw, 17px)) / 4);
    gap: clamp(10px, 1.0625vw, 17px);
    overflow-x: scroll;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-behavior: smooth;
}

.crra-carousel-track::-webkit-scrollbar {
    display: none;
}

/* ---------- Country Slide ---------- */
.crra-country-slide {
    position: relative;
    aspect-ratio: 356 / 324;
    overflow: hidden;
    display: block;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    scroll-snap-align: start;
    cursor: pointer;
    transition: filter 0.25s ease;
    text-decoration: none;
    clip-path: polygon(5.38% 0, 99.89% 0, 94.62% 100%, 0 100%);
}

.crra-country-slide:hover {
    filter: brightness(1.3);
}

/* Dark overlay */
.crra-country-slide__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
}

/* Diagonal arrow (top-right) */
.crra-country-slide__arrow {
    position: absolute;
    top: clamp(14px, 1.3125vw, 21px);
    right: clamp(16px, 1.5vw, 24px);
    width: clamp(28px, 2.5vw, 40px);
    height: clamp(29px, 2.5625vw, 41px);
    z-index: 3;
    pointer-events: none;
}

/* Country name (bottom-left) */
.crra-country-slide__name {
    position: absolute;
    bottom: clamp(20px, 2.25vw, 36px);
    left: clamp(18px, 1.875vw, 30px);
    font-family: 'Segoe UI', sans-serif;
    font-weight: 700;
    font-style: italic;
    font-size: var(--crra-h3-size);
    line-height: 1.33em;
    color: #FFFFFF;
    z-index: 3;
    text-decoration: none;
}

.crra-country-slide--empty {
    background: #ccc;
}

/* ---------- Responsive grid columns ---------- */
@media (max-width: 979px) {
    .crra-carousel-track {
        grid-auto-columns: calc((100% - clamp(10px, 1.0625vw, 17px)) / 2);
    }
}

@media (max-width: 767px) {
    .crra-country-carousel-module {
        padding: 0 25px;
    }

    .crra-carousel-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .crra-carousel-track {
        grid-auto-columns: 100%;
    }
}


@media (max-width: 1366px) {
    .crra-carousel-heading {
        font-size: var(--crra-h2-size, 35px);
    }
}
