.tagline {
    position: relative;
    font-size: min(1.3em, 1.4vw);
    height: 26.75vw;
    width: 39.75em;
    margin: 0 auto;
}

.tagline :is(.left,.right) {
    position: absolute;
    display: flex;
    align-items: center;
    opacity: 0;
}

.tagline.active :is(.left,.right) {
    opacity: 1;
}

.tagline .left {
    left: -5em;
    top: 2.5em;
    transition: left 1.5s ease-out, opacity 1.5s ease-out;
}

.tagline.active .left {
    left: 0;
}

.tagline .right {
    right: -5em;
    top: 3.25em;
    transition: right 1.5s ease-out, opacity 1.5s ease-out;
}

.tagline.active .right {
    right: 0;
}

.tagline-sm {
    font-family: 'Figtree', sans-serif;
    font-weight: 400;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--dark-beige);
}

.tagline-lg {
    margin-left: 0.04em;
    font-family: 'Cormorant Garamond', serif;
    font-size: 4.5em;
    color: var(--light-beige);
    text-shadow: none;
    transition: text-shadow 1.5s ease-out;
}

.tagline.active .tagline-lg {
    text-shadow: 0.02em 0.02em 0.04em rgba(0, 0, 0, 0.2);
}

.tagline-xl {
    margin-left: -0.02em;
    margin-top: -0.15em;
    font-family: 'Imperial Script', cursive;
    font-size: 10em;
    color: var(--light-green);
    text-shadow: none;
    transition: text-shadow 1.5s ease-out;
}

.tagline.active .tagline-xl {
    text-shadow: 0.01em 0.01em 0.02em rgba(0, 0, 0, 0.2);
}

.tagline-decoration {
    position: absolute;
    top: -2em;
    left: 8.25em;
    width: 40.2em;
}

.page-links {
    box-sizing: border-box;
    display: flex;
    background-color: var(--light-beige);
    padding: 2.75em 0.75em 2em;
}

.page-link {
    box-sizing: border-box;
    flex: 0 0 25%;
    border-right: 1px solid rgba(255, 255, 255, 0.6);
    padding: 0 1.2em;
    text-align: center;
}

.page-link:last-child {
    border-right: none;
}

.page-link .image-wrapper {
    position: relative;
    padding: 0.5em;
    overflow: hidden;
}

.page-link .image-wrapper::before {
    content: '';
    height: 4em;
    width: 2em;
    position: absolute;
    top: -2em;
    left: -1.5em;
    rotate: 45deg;
    background-color: var(--light-beige);
    box-shadow: 0.2em 0 0.25em -0.25em rgb(0, 0, 0);
    transform-origin: 33.33% 93.33%;
    z-index: 1;
}

.page-link .image-wrapper::after {
    content: '';
    height: 4em;
    width: 2em;
    position: absolute;
    bottom: -0.25em;
    right: 0.75em;
    rotate: 45deg;
    background-color: var(--light-beige);
    box-shadow: -0.3em 0 0.25em -0.25em rgb(0, 0, 0);
    transform-origin: 33.33% 93.33%;
}

.page-link img {
    width: 100%;
    box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
}

.page-link h3 {
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin: 0.5em;
}

.page-link p {
    margin-bottom: 0;
    font-size: 1.45em;
    line-height: 1.275;
    color: var(--dark-gray);
}

.testimonials .item {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1em 3.8em;
    background-color: rgb(255, 255, 255);
    margin: 0.9em;
    line-height: 1.5;
    box-shadow: 0.2em 0.2em 0.5em rgba(0, 0, 0, 0.25);
}

.testimonials .item p {
    margin-bottom: 0.25em;
    font-size: clamp(12px, 1.75em, 29.7px);
    text-align: center;
    font-weight: 400;
}

.testimony::before {
    content: '\0201C';
    position: relative;
    top: 0.34em;
    left: -0.075em;
    margin-left: -0.25em;
    font-size: 8em;
    line-height: 0;
    color: var(--faint-green);
}

.testimonials .item p.author {
    color: var(--light-beige);
    font-size: 1.2em;
    font-family: 'Figtree', sans-serif;
    margin-top: 0.75em;
}

.testimonials .arrows button {
    box-shadow: 0.15em 0.15em 0.5em rgba(0, 0, 0, 0.15);
}

.testimonials .circle {
    background-color: var(--light-gray);
    opacity: 0.4;
}

.testimonials .circle:hover {
    opacity: 0.5;
}

.testimonials .circle.active {
    opacity: 0.9;
}

/* #region PLUGINS */

.jumbotron .slide p {
    font-family: 'Imperial Script', cursive;
    color: var(--white);
}

.jumbotron .slide button {
    background-color: var(--light-gray);
}

.jumbotron .slide button:hover {
    background-color: var(--white);
}

/* #endregion */

@media (max-width: 1400px) {
    .testimonials .item {
        padding: 1.3vw 4vw;
    }

    .testimonials .item p {
        font-size: 2.07vw;
    }
    
    .testimony::before {
        left: -0.05em;
        margin-left: -0.15em;
        font-size: 17vw;
    }
}

@media (max-width: 1200px) {
    .testimonials {
        aspect-ratio: 24/17;
    }

    .testimony::before {
        left: -0.05em;
        margin-left: -0.15em;
        font-size: 7em;
    }
}

@media (max-width: 1100px) {
    .page-links {
        flex-wrap: wrap;
        padding-bottom: 0;
    }

    .page-link {
        flex: 0 0 50%;
        font-size: 1em;
        margin-bottom: 5vh;
    }

    .page-link:nth-child(even) {
        border: none;
    }

    .page-link:nth-child(odd) {
        border-right: 1px solid rgba(255, 255, 255, 0.4);
    }
}

/* Tablet */
@media (max-width: 1040px) {
    .testimonials .item {
        flex: 0 1 100%;
        /*margin: 0.7em 1.5em;
        padding: 1em 1.75em;*/
    }
}

@media (max-width: 850px) {
    .tagline {
        font-size: 2.2vw;
        height: 36vw;
    }
    
    .testimonials .arrows {
        width: calc(100% + 5vw);
        margin: 0 -2.5vw;
    }

    .testimonials .item p {
        font-size: max(2.7vw, 14px);
    }
    
    .testimonials {
        aspect-ratio: 24/21;
    }
}

@media (max-width: 820px) {
    .page-link p {
        font-size: 1.25em;
    }
}

@media (max-width: 670px) {
    .testimonials {
        height: 29.5em;
    }
    
    .testimony {
        max-height: 20em;
        overflow-y: auto;
    }
    
    .testimony::before {
        content: none;
    }
    
    .testimonials .item p.author {
        margin-top: 0;
    }
}

@media (max-width: 570px) {
    .page-links {
        padding: 8vw 2vw 0;
    }

    .page-link {
        flex: 0 0 100%;
        border-right: none;
    }

    .page-link:nth-child(odd) {
        border-right: none;
    }
}
