.raadtac-image-grid {
    --raadtac-columns: 3;
    --raadtac-ratio: 16 / 9;
    --raadtac-object-fit: contain;
    --raadtac-object-position: center center;
    --raadtac-mobile-object-position: center center;
    --raadtac-mobile-card-width: 84%;
    --raadtac-mobile-side-padding: 20px;
    --raadtac-box-height: 220px;
    display: grid;
    grid-template-columns: repeat(var(--raadtac-columns), minmax(0, 1fr));
    width: 100%;
    box-sizing: border-box;
    align-items: stretch;
}

.raadtac-image-grid__link {
    display: block;
    color: inherit;
    text-decoration: none;
    min-width: 0;
}

.raadtac-image-grid__item {
    min-width: 0;
    margin: 0;
}

.raadtac-image-grid__media {
    position: relative;
    width: 100%;
    aspect-ratio: var(--raadtac-ratio);
    overflow: hidden;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
}

.raadtac-image-grid--use-fixed-height .raadtac-image-grid__media {
    height: var(--raadtac-box-height);
    aspect-ratio: auto;
}

.raadtac-image-grid--force-ratio .raadtac-image-grid__media {
    height: auto;
    aspect-ratio: var(--raadtac-ratio);
}

.raadtac-image-grid__image {
    display: block;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: var(--raadtac-object-fit) !important;
    object-position: var(--raadtac-object-position) !important;
    transition-property: transform, filter, opacity;
    transition-timing-function: ease;
    transition-duration: 300ms;
}

.raadtac-image-grid--fit-cover .raadtac-image-grid__image {
    object-fit: cover !important;
}

.raadtac-image-grid--fit-contain .raadtac-image-grid__image,
.raadtac-image-grid--no-crop .raadtac-image-grid__image {
    object-fit: contain !important;
}

.raadtac-image-grid--fit-fill .raadtac-image-grid__image {
    object-fit: fill !important;
}

.raadtac-image-grid__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    transition: opacity 300ms ease;
}

.raadtac-image-grid__caption {
    margin: 0;
}

.raadtac-image-grid--parent-width {
    width: 100%;
    max-width: none !important;
}

.raadtac-image-grid--viewport-width {
    width: 100vw;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}

.raadtac-image-grid:not(.raadtac-image-grid--mobile-scroll) > .raadtac-image-grid__item,
.raadtac-image-grid:not(.raadtac-image-grid--mobile-scroll) > .raadtac-image-grid__link {
    width: 100%;
    min-width: 0;
}

.raadtac-image-grid__item,
.raadtac-image-grid__link,
.raadtac-image-grid__media {
    box-sizing: border-box;
}

.elementor .elementor-widget-raadtac_forced_ratio_image_grid .raadtac-image-grid__media > img.raadtac-image-grid__image,
.elementor .raadtac-image-grid .raadtac-image-grid__media > img.raadtac-image-grid__image {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
}

@media (min-width: 768px) {
    .raadtac-image-grid {
        grid-auto-rows: auto;
        align-items: stretch;
    }
    .raadtac-image-grid > .raadtac-image-grid__item,
    .raadtac-image-grid > .raadtac-image-grid__link {
        align-self: stretch;
    }
    .raadtac-image-grid__link > .raadtac-image-grid__item {
        width: 100%;
        height: 100%;
    }
}

@media (max-width: 767px) {
    .raadtac-image-grid--mobile-scroll {
        display: flex;
        flex-wrap: nowrap;
        grid-template-columns: none;
        width: 100%;
        max-width: 100% !important;
        overflow-x: auto;
        overflow-y: hidden;
        padding-left: var(--raadtac-mobile-side-padding);
        padding-right: var(--raadtac-mobile-side-padding);
        box-sizing: border-box;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
        scroll-padding-left: var(--raadtac-mobile-side-padding);
    }

    .raadtac-image-grid--mobile-scroll::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }

    .raadtac-image-grid--mobile-scroll > .raadtac-image-grid__item,
    .raadtac-image-grid--mobile-scroll > .raadtac-image-grid__link {
        flex: 0 0 var(--raadtac-mobile-card-width);
        width: var(--raadtac-mobile-card-width);
        max-width: var(--raadtac-mobile-card-width);
        min-width: 0;
    }

    .raadtac-image-grid--mobile-scroll.raadtac-image-grid--snap {
        scroll-snap-type: x mandatory;
    }

    .raadtac-image-grid--mobile-scroll.raadtac-image-grid--snap > .raadtac-image-grid__item,
    .raadtac-image-grid--mobile-scroll.raadtac-image-grid--snap > .raadtac-image-grid__link {
        scroll-snap-align: start;
        scroll-snap-stop: normal;
    }

    .elementor .raadtac-image-grid.raadtac-image-grid--mobile-fit-contain .raadtac-image-grid__media > img.raadtac-image-grid__image,
    .elementor .raadtac-image-grid.raadtac-image-grid--mobile-no-crop .raadtac-image-grid__media > img.raadtac-image-grid__image {
        object-fit: contain !important;
        object-position: var(--raadtac-mobile-object-position) !important;
    }

    .elementor .raadtac-image-grid.raadtac-image-grid--mobile-fit-cover:not(.raadtac-image-grid--mobile-no-crop) .raadtac-image-grid__media > img.raadtac-image-grid__image {
        object-fit: cover !important;
        object-position: var(--raadtac-mobile-object-position) !important;
    }

    .elementor .raadtac-image-grid.raadtac-image-grid--mobile-fit-fill:not(.raadtac-image-grid--mobile-no-crop) .raadtac-image-grid__media > img.raadtac-image-grid__image {
        object-fit: fill !important;
        object-position: var(--raadtac-mobile-object-position) !important;
    }
}