/* =========================================================
   MNMA MAIN ACADEMY SLIDER
   ========================================================= */

.academy-main-carousel {

    position: relative;

    width: 100%;
    height: 450px;

    margin: 0;
    padding: 0;

    overflow: hidden;

    background: #274797;

    box-sizing: border-box;
}


/* =========================================================
   FLICKITY VIEWPORT
   ========================================================= */

.academy-main-carousel .flickity-viewport {

    width: 100%;

    height: 450px !important;

    margin: 0;
    padding: 0;

    overflow: hidden;

    box-sizing: border-box;
}


/* =========================================================
   FLICKITY SLIDER
   ========================================================= */

.academy-main-carousel .flickity-slider {

    width: 100%;
    height: 100%;

    margin: 0;
    padding: 0;
}


/* =========================================================
   SLIDE
   ========================================================= */

.academy-slide {

    position: relative;

    width: 100%;
    height: 450px;

    margin: 0;
    padding: 0;

    overflow: hidden;

    background: #274797;

    box-sizing: border-box;
}


/* =========================================================
   IMAGE LINK
   ========================================================= */

.academy-slide-link {

    position: absolute;

    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    display: block;

    width: 100%;
    height: 100%;

    margin: 0;
    padding: 0;

    text-decoration: none;

    z-index: 1;
}


/* =========================================================
   IMAGE
   ========================================================= */

.academy-slide-image {

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    display: block;

    margin: 0;
    padding: 0;

    /*
     * IMPORTANT:
     *
     * cover fills the complete slide.
     * This prevents empty space.
     */

    object-fit: cover;

    object-position: center center;

    background: #274797;

    border: 0;

    z-index: 1;

    transition:
        transform 0.45s ease;
}


/* =========================================================
   IMAGE HOVER
   ========================================================= */

.academy-slide:hover .academy-slide-image {

    transform: scale(1.015);
}


/* =========================================================
   BOTTOM GRADIENT
   ========================================================= */

.academy-slide-gradient {

    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    width: 100%;
    height: 52%;

    margin: 0;
    padding: 0;

    background:

        linear-gradient(
            to top,

            rgba(0, 0, 0, 0.92) 0%,

            rgba(0, 0, 0, 0.78) 25%,

            rgba(0, 0, 0, 0.48) 55%,

            rgba(0, 0, 0, 0.18) 78%,

            rgba(0, 0, 0, 0) 100%
        );

    pointer-events: none;

    z-index: 2;
}


/* =========================================================
   CAPTION CONTAINER
   ========================================================= */

.academy-slide-caption {

    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    width: 100%;

    margin: 0;
    padding:

        22px
        30px
        32px;

    box-sizing: border-box;

    color: #ffffff;

    text-align: left;

    z-index: 3;

    pointer-events: none;
}


/* =========================================================
   TITLE
   ========================================================= */

.academy-slide-title {

    width: 100%;

    margin: 0 0 7px;
    padding: 0;

    color: #ffffff;

    font-family:
        "Segoe UI",
        Arial,
        sans-serif;

    font-size: 22px;

    font-weight: 700;

    line-height: 1.25;

    letter-spacing: 0.3px;

    text-transform: uppercase;

    text-shadow:

        0 1px 2px rgba(0, 0, 0, 0.6),

        0 2px 5px rgba(0, 0, 0, 0.35);

    overflow: hidden;

    white-space: nowrap;

    text-overflow: ellipsis;
}


/* =========================================================
   DESCRIPTION
   ========================================================= */

.academy-slide-description {

    width: 100%;

    max-width: 900px;

    margin: 0;
    padding: 0;

    color: rgba(255, 255, 255, 0.96);

    font-family:
        "Segoe UI",
        Arial,
        sans-serif;

    font-size: 14px;

    font-weight: 400;

    line-height: 1.5;

    text-align: left;

    text-shadow:

        0 1px 2px rgba(0, 0, 0, 0.65);

    overflow: hidden;

    display: -webkit-box;

    -webkit-box-orient: vertical;

    -webkit-line-clamp: 3;

    line-clamp: 3;
}


/* =========================================================
   FLICKITY PREVIOUS / NEXT BUTTONS
   ========================================================= */

.academy-main-carousel .flickity-button {

    width: 38px;
    height: 38px;

    background: rgba(
        255,
        255,
        255,
        0.94
    );

    border: 1px solid rgba(
        255,
        255,
        255,
        0.9
    );

    border-radius: 50%;

    box-shadow:

        0 3px 10px
        rgba(0, 0, 0, 0.20);

    transition:

        background-color 0.2s ease,

        border-color 0.2s ease,

        transform 0.2s ease;
}


.academy-main-carousel .flickity-button:hover {

    background: #1e3a8a;

    border-color: #1e3a8a;

    transform: scale(1.05);
}


.academy-main-carousel
.flickity-button-icon {

    fill: #1e3a8a;
}


.academy-main-carousel
.flickity-button:hover
.flickity-button-icon {

    fill: #ffffff;
}


.academy-main-carousel
.flickity-button:disabled {

    opacity: 0.35;

    cursor: not-allowed;
}


/* =========================================================
   FLICKITY DOTS
   ========================================================= */

.academy-main-carousel
.flickity-page-dots {

    position: absolute;

    right: 0;
    bottom: 10px;
    left: 0;

    z-index: 5;

    margin: 0;

    padding: 0;

    line-height: 1;
}


.academy-main-carousel
.flickity-page-dots .dot {

    width: 8px;
    height: 8px;

    margin: 0 4px;

    background: #ffffff;

    opacity: 0.55;

    transition:

        transform 0.2s ease,

        opacity 0.2s ease;
}


.academy-main-carousel
.flickity-page-dots
.dot:hover {

    opacity: 0.9;

    transform: scale(1.15);
}


.academy-main-carousel
.flickity-page-dots
.dot.is-selected {

    opacity: 1;

    transform: scale(1.2);
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 768px) {

    .academy-main-carousel {

        height: 380px;
    }


    .academy-main-carousel
    .flickity-viewport {

        height: 380px !important;
    }


    .academy-slide {

        height: 380px;
    }


    .academy-slide-caption {

        padding:

            18px
            22px
            28px;
    }


    .academy-slide-title {

        font-size: 18px;

        margin-bottom: 6px;
    }


    .academy-slide-description {

        font-size: 13px;

        line-height: 1.45;

        -webkit-line-clamp: 3;

        line-clamp: 3;
    }


    .academy-main-carousel
    .flickity-button {

        width: 34px;
        height: 34px;
    }
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 576px) {

    .academy-main-carousel {

        height: 300px;
    }


    .academy-main-carousel
    .flickity-viewport {

        height: 300px !important;
    }


    .academy-slide {

        height: 300px;
    }


    .academy-slide-caption {

        padding:

            14px
            16px
            25px;
    }


    .academy-slide-title {

        font-size: 15px;

        line-height: 1.25;

        margin-bottom: 5px;
    }


    .academy-slide-description {

        font-size: 12px;

        line-height: 1.4;

        -webkit-line-clamp: 2;

        line-clamp: 2;
    }


    .academy-slide-gradient {

        height: 58%;
    }


    .academy-main-carousel
    .flickity-button {

        width: 30px;
        height: 30px;
    }


    .academy-main-carousel
    .flickity-button-icon {

        width: 40%;
        height: 40%;
    }


    .academy-main-carousel
    .flickity-page-dots {

        bottom: 7px;
    }
}


/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 380px) {

    .academy-main-carousel {

        height: 270px;
    }


    .academy-main-carousel
    .flickity-viewport {

        height: 270px !important;
    }


    .academy-slide {

        height: 270px;
    }


    .academy-slide-caption {

        padding:

            12px
            13px
            22px;
    }


    .academy-slide-title {

        font-size: 14px;
    }


    .academy-slide-description {

        font-size: 11px;

        line-height: 1.35;
    }


    .academy-slide-gradient {

        height: 62%;
    }
}


/* =========================================================
   ACCESSIBILITY
   ========================================================= */

.academy-slide-link:focus-visible {

    outline:

        2px solid #ffffff;

    outline-offset: -4px;
}


/* =========================================================
   REDUCE MOTION
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

    .academy-slide-image {

        transition: none;
    }


    .academy-main-carousel
    .flickity-button {

        transition: none;
    }


    .academy-main-carousel
    .flickity-page-dots
    .dot {

        transition: none;
    }
}