:root {
    --max-width-image: 800px;
}

/* "VISUAL" LANDING PAGE */

.series-wrapper {
    background: var(--color-foregr);
    cursor: pointer;
    text-align: center;
}

.series-wrapper span {
    text-transform: uppercase;
    display: inline-block;
    margin: 5px 0;
    padding-bottom: 5px;
    color: var(--color-dark-text);
}

.visual-wrapper {
    display: grid;
    width: var(--width);
    max-width: var(--max-width);
    gap: 25px;
    justify-content: center;
    padding: 40px 0;
    margin-right: auto;
    margin-left: auto;
}

/* 2 columns on large screens */
@media screen and (min-width: 600px) {
    .visual-wrapper {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* "VISUAL" SLIDESHOW */

.slideshow-wrapper {
    display: grid;
    width: var(--width);
    max-width: var(--max-width);
    grid-template-columns: repeat(1, 1fr);
    gap: 25px;
    justify-content: center;
    padding: 40px 0;
    margin-right: auto;
    margin-left: auto;
}

.slideshow-container {
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    background-color: var(--color-foregr);
}

/* limit width of container for smaller screens */
@media screen and (max-height: 800px) {
    .slideshow-container {
        max-width: var(--max-width-image);
    }
}

#photos {
    position: relative;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

#photos img {
    position: absolute;
    transition: opacity 0.5s ease-in-out;
    opacity: 0;
    filter: alpha(opacity=0);
    cursor: pointer;
}

.spacer {
    /* spacer with same aspect ratio as images to 
    fill space of absolutely positioned images */
    padding-bottom: calc(1000/1500 * 100%);
}

#photos img.opaque {
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
    filter: alpha(opacity=1);
}

/* under_photos for big screens */

@media screen and (min-width: 600px) {
    #under_photos {
        width: 95%;
        margin: 10px auto;
        display: flex;
        justify-content: space-between;
        color: var(--color-dark-text);
    }

    #photos_controls {
        width: 200px;
    }

    #photos_controls span {
        padding-right: 25px;
        cursor: pointer;
    }

    #photos_controls span.selected {
        font-style: italic;
    }

    #description {
        width: 350px;
        vertical-align: top;
        text-align: right;
    }
}

/* under_photos for small screens */

@media screen and (max-width: 600px) {
    #under_photos {
        width: 100%;
        margin: 10px auto;
        display: flex;
        text-align: center;
        color: var(--color-dark-text);
    }

    #photos_controls {
        display: none;
    }

    #photos_controls span {
        display: none;
    }

    #description {
        width: 100%;
        vertical-align: top;
        text-align: center;
        display: inline-block;
    }
}

#description span.show {
    display: grid;
}

#description span {
    display: none;
}