.images-carousel {
    width: 100%;
    max-width: 100%;
	margin: var(--block-margin) auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
    align-items: start;
    overflow: hidden;
}

.images-carousel [data-animation].animate__animated {
    animation-name: fadeIn;
    
}

.images-carousel > * {
    margin-left: calc( 50vw - var(--wide-width) / 2 );
    margin-right: calc( 50vw - var(--wide-width) / 2 );
}

.images-carousel-header {
    max-width: var(--wide-width);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    column-gap: var(--column-gap);
    row-gap: var(--title-and-body-gap);
    align-items: center;
}

h2.images-carousel-title {
    margin-bottom: 0;
}

.images-carousel-title:last-child{
    margin-bottom: 0;
}

.images-carousel-text {
    display: flex;
    flex-direction: column;
    row-gap: var(--body-and-buttons-gap);
}

.images-carousel-text p {
    margin-bottom: 0;
}

.images-carousel-text:last-child > *:last-child{
    margin-bottom: 0;
}

.images-carousel-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--small-row-gap);
    align-items: center;
}

.images-carousel-list-wrapper {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    column-gap: var(--column-gap);
    row-gap: var(--row-gap);
    width: var(--wide-width);
    margin: 0 auto;
}

.images-carousel-list {
    width: 100%;
    max-width: 100%;
}

.images-carousel-list .swiper-wrapper {
    align-items: flex-start;
    height: auto;
}

/*.images-carousel-list .swiper-slide {
    width: 100%;
}*/

.images-carousel-list-item {
    text-align: center;
}

.images-carousel-list:is([data-slidesperview="1"]) .images-carousel-list-item :is(svg, img) {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
}

.images-carousel-list-item :is(svg, img) {
    height: 60rem;
    display: block;
    margin: auto;
    aspect-ratio: 9/16;
    object-fit: cover;
    border-radius: var(--element-border-radius);
}

.images-carousel-list-item-caption {
    margin-top: var(--small-row-gap);
    display: flex;
}

.images-carousel-pagination,
.images-carousel-navigation {
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    column-gap: var(--item-column-gap);
    max-width: var(--wide-width);
}

.images-carousel-list-wrapper:has(.images-carousel-pagination) .images-carousel-navigation {
    transform: translateY(-100%);
}

.images-carousel-navigation {
    margin: 0;
    height: fit-content;
    display: flex;
    justify-content: space-between;
    align-items: center;
    column-gap: var(--item-column-gap);
    top: 50%;
    left: 0;
    bottom: 0;
    right: 0;
    position: absolute;
    transform: translateY(-50%);
    z-index: 2;
    max-width: 100%;
    pointer-events: none;
}

.images-carousel-navigation-prev {
    transform: translateX(-25%);
    pointer-events: all;
}

.images-carousel-navigation-next {
    transform: translateX(25%);
    pointer-events: all;
}

.images-carousel-pagination .swiper-pagination-bullet {
    opacity: 1;
    background-color: var(--link-color);
}

.images-carousel-pagination .swiper-pagination-bullet-active {
    opacity: 1;
    background-color: var(--accent-color);
}

:is(.images-carousel-navigation-prev, .images-carousel-navigation-next) {
    pointer-events: all;
}

:is(.images-carousel-navigation-prev, .images-carousel-navigation-next):is(:focus) {
    outline: 0;
}

:is(.images-carousel-navigation-prev, .images-carousel-navigation-next)[disabled]{
    opacity: 0;
    pointer-events: none;
}

:is(.images-carousel-navigation-prev, .images-carousel-navigation-next) svg {
    height: auto;
}

:is(.images-carousel-navigation-prev, .images-carousel-navigation-next) svg rect {
    fill: var(--color-vibrant-blue);
    transition: all 0.3s ease;
}

:is(.images-carousel-navigation-prev, .images-carousel-navigation-next):is(:hover, :focus, :active) svg rect {
    fill: var(--color-deepest-blue);
    transition: all 0.3s ease;
}

/* Adding margin to section background that is wrapping the images carousel in a content page */
.single-post-content .section-background:has(.images-carousel) {
    margin: var(--block-margin) 0 0;
    padding: var(--block-margin) 0;
}

@media (min-width: 768px) {
    .images-carousel {
        row-gap: var(--large-row-gap);
    }

    .images-carousel-header {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: flex-end;
    }

    .images-carousel-buttons {
        justify-content: flex-end;
    }

    .images-carousel > * {
        margin-right: auto;
    }

    .images-carousel-list .swiper-slide {
        width: min(40%, 40rem);
    }

    .images-carousel-navigation {
        max-width: var(--wide-width);
    }

    .images-carousel-navigation-prev {
        transform: translateX(-50%);
    }
    
    .images-carousel-navigation-next {
        transform: translateX(50%);
    }
}