html {
    overflow-x: clip;
}

.oml-gallery-align {
    min-width: 0;
    margin-block: 2rem;
}

.oml-gallery {
    --gallery-height: 800px;

    /* Full-screen track, centred around the container */
    width: 100vw;
    max-width: none;
    min-width: 0;
    margin-left: calc(50% - 50vw);
}

.oml-gallery .splide__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.oml-gallery .splide__slide {
    /* Each slide's width follows its image's proportions */
    width: calc(var(--gallery-height) * var(--image-ratio));
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
}

.oml-gallery .splide__slide img {
    display: block;
    width: 100%;
    height: var(--gallery-height);
    max-width: none;
    object-fit: contain;
    border-radius: 1rem;
}

.oml-gallery__caption {
    margin-top: 0.75rem;
}

/* Keep photos available if JavaScript does not load */
.oml-gallery:not(.is-initialized) {
    visibility: visible;
}

.oml-gallery:not(.is-initialized) .splide__track {
    overflow-x: auto;
}

.oml-gallery:not(.is-initialized) .splide__list {
    display: flex;
    gap: 1rem;
}

/* Reduce image height on tablets and smaller screens */
@media (max-width: 1400px) {
    .oml-gallery {
        --gallery-height: min(800px, 90vh);
    }
}

/* Smaller images on mobile */
@media (max-width: 640px) {
    .oml-gallery {
        --gallery-height: min(600px, 90vw);
    }

    .oml-gallery:not(.is-initialized) .splide__list {
        gap: 0.75rem;
    }
}