/*==============================*/
/*=====----- TEMPLATE -----=====*/
/*==============================*/

.marquee-side-by-side {
    --title-overflow: 30px;

    position: relative;
    padding-bottom: 32px;
    margin: var(--title-overflow) 0 var(--widget-margin-bottom);
    background: var(--black);
    color: var(--white);
}

.marquee-side-by-side.no-title {
    --title-overflow: 0;

    padding-top: 32px;
}

.marquee-side-by-side .template-header {
    display: flex;
    margin-bottom: 46px;
}

.marquee-side-by-side .template-title {
    padding: 15px 14px 7px;
    margin-top: calc(var(--title-overflow) * -1);
    background: var(--white);
    font-family: var(--alternate);
    font-weight: var(--font-weight-semilight);
    font-size: 50px;
    line-height: 1;
    text-transform: uppercase;
    color: var(--black);
}

.marquee-side-by-side .template-title b {
    font-weight: var(--font-weight-demi);
}

.marquee-side-by-side .slides {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 0 20px;
}

.marquee-side-by-side .template-footer {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

/*----- white style -----*/

.marquee-side-by-side.white {
    padding: 0;
    margin-top: 0;
    background: none;
    color: var(--black);
}

.marquee-side-by-side.white .template-header {
    margin-bottom: 30px;
}

.marquee-side-by-side.white .template-title {
    margin: 0;
    background: var(--black);
    font-size: 30px;
    color: var(--white);
}

/*============================*/
/*=====----- SLIDES -----=====*/
/*============================*/

.marquee-side-by-side .slide,
.marquee-side-by-side .img-cont,
.marquee-side-by-side .slide-img {
    position: relative;
    z-index: 1;
}

.marquee-side-by-side .img-cont a {
    padding: 0;
}

.marquee-side-by-side .slide-img {
    width: 100%;
}

.marquee-side-by-side .subtitle {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 6px;
    font-family: var(--avenir-heavy-1);
    font-weight: normal;
    line-height: 1;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: inherit;
}

.marquee-side-by-side .subtitle::before {
    display: block;
    width: 16px;
    height: 2px;
    flex-shrink: 0;
    background: currentColor;
    content: '';
}

.marquee-side-by-side .slide-title {
    font-family: var(--avenir-black-1);
    font-weight: normal;
    line-height: 1.25;
    color: inherit;
}

.marquee-side-by-side .slide-desc {
    margin-top: 6px;
    font-family: var(--avenir);
    font-weight: normal;
    font-size: 14px;
    line-height: calc(11/7);
    color: inherit;
}

/*----- promoted slide -----*/

.marquee-side-by-side .slide.promoted {
    margin-bottom: 5px;
}

.marquee-side-by-side .slide.promoted .img-cont {
    margin-bottom: 30px;
}

.marquee-side-by-side .slide.promoted .subtitle {
    font-size: 14px;
}

.marquee-side-by-side .slide.promoted .slide-title {
    font-size: 24px;
}

/*----- minor slides -----*/

.marquee-side-by-side .slide.minor .inner {
    display: grid;
    grid-template: auto / 38.8% minmax(0, 1fr);
    align-items: start;
    gap: 14px;
}

.marquee-side-by-side .slide.minor .subtitle {
    font-size: 11px;
}

.marquee-side-by-side .slide.minor .slide-title {
    font-size: 14px;
    line-height: calc(10/7);
}

.marquee-side-by-side .slide.minor .slide-desc {
    display: none;
}

/*----- white style -----*/

.marquee-side-by-side.white .subtitle {
    color: var(--gray-alt);
}

/*===================================*/
/*=====----- MEDIA QUERIES -----=====*/
/*===================================*/

@media (min-width: 40em) {
    .marquee-side-by-side .slides {
        grid-template: auto / repeat(3, minmax(0, 1fr));
    }

    .marquee-side-by-side .template-footer,
    .marquee-side-by-side .slide.promoted {
        grid-column: span 3;
    }

    .marquee-side-by-side .slide.minor .inner {
        grid-template: auto / minmax(0, 1fr);
    }
}

@media (min-width: 64em) {
    .marquee-side-by-side {
        padding-bottom: 60px;
    }

    .marquee-side-by-side.no-title {
        padding-top: 60px;
    }

    .marquee-side-by-side .slides {
        grid-template: auto auto auto auto / 61.45% minmax(0, 1fr);
        align-items: start;
        gap: 30px;
        padding: 0 14px 0 33px;
    }

    .marquee-side-by-side .template-footer,
    .marquee-side-by-side .slide.promoted {
        grid-column: span 1;
    }

    .marquee-side-by-side .template-footer {
        margin: 0;
        justify-content: flex-start;
    }

    .marquee-side-by-side .slide.promoted {
        grid-row: span 4;
        margin: 0;
    }

    .marquee-side-by-side .slide.minor .inner {
        grid-template: auto / 49.31% minmax(0, 1fr);
        gap: 28px;
    }

    .marquee-side-by-side .slide.minor .slide-desc {
        display: block;
        font-size: 12px;
    }
}

@media (min-width: 90em) {
    .marquee-side-by-side {
        --title-overflow: 54px;
    }

    .marquee-side-by-side.no-title {
        --title-overflow: 0;
    }

    .marquee-side-by-side .template-header {
        margin-bottom: 78px;
    }

    .marquee-side-by-side .template-title {
        padding-left: 30px;
        padding-right: 30px;
        font-size: 100px;
    }

    .marquee-side-by-side .slide-desc {
        font-size: 18px;
        line-height: calc(14/9);
    }

    /*----- promoted slide -----*/

    .marquee-side-by-side .slide.promoted .img-cont {
        margin-bottom: 25px;
    }

    .marquee-side-by-side .slide.promoted .subtitle {
        margin-bottom: 10px;
        font-size: 16px;
    }

    .marquee-side-by-side .slide.promoted .slide-title {
        font-size: 30px;
    }
    
    /*----- minor slides -----*/

    .marquee-side-by-side .slide.minor .subtitle {
        margin-bottom: 14px;
        font-size: 12px;
    }

    .marquee-side-by-side .slide.minor .slide-title {
        font-size: 18px;
        line-height: calc(11/9);
    }

    .marquee-side-by-side .slide.minor .slide-desc {
        font-size: 14px;
        line-height: calc(11/7);
    }

    /*----- white style -----*/

    .marquee-side-by-side.white .template-header {
        margin-bottom: 30px;
    }

    .marquee-side-by-side.white .template-title {
        font-size: 40px;
    }
}