.gallery.template-2 {
    width: 100%;

    & .section-container {
        margin: 0 auto;
        width: 100%;
    }

    & .gallery-grid {
        display: grid;
        grid-gap: 1rem;
        grid-template-columns: repeat(auto-fit, minmax(15.625rem, 1fr));
        grid-auto-rows: 12.5rem;
        grid-auto-flow: dense;
    }

    & .gallery-item {
        position: relative;
        display: block;
        overflow: hidden;

        grid-column: span 1;
        grid-row: span 1;

        &:nth-child(4n + 2) {
            grid-column: span 2;
            grid-row: span 1;
        }

        &:nth-child(4n + 3) {
            grid-column: span 1;
            grid-row: span 2;
        }

        &:nth-child(4n + 4) {
            grid-column: span 2;
            grid-row: span 2;
        }
    }

    & .gallery-link {
        display: block;
        width: 100%;
        height: 100%;
    }

    & .gallery-grid-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
        display: block;
        transition: transform 0.3s ease;

        &:hover {
            transform: scale(1.05);
        }
    }

    & .gallery-button-wrapper {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        padding: 0 1.75rem;
        padding-top: 1.5rem;
    }

    & .gallery-button {
        font-weight: 600;
        font-size: 1.25rem;
    }

}


@container page-container (max-width: 48rem) {
    .gallery.template-2 {
        & .gallery-grid {
            grid-template-columns: 1fr;
        }

        & .gallery-item {
            grid-column: span 1 !important;
            grid-row: auto !important;
        }
    }
}


.gallery.template-2 {
    justify-self: center;
    background: var(--section-background-mobile-color, rgba(0, 0, 0, 0.00));
    

    margin: calc(var(--section-margin-mobile-top, 0) * 1rem) calc(var(--section-margin-mobile-right, 0) * 1rem) calc(var(--section-margin-mobile-bottom, 0) * 1rem) calc(var(--section-margin-mobile-left, 0) * 1rem);

    padding: calc(var(--section-padding-mobile-top, 3) * 1rem) calc(var(--section-padding-mobile-right, 1) * 1rem) calc(var(--section-padding-mobile-bottom, 3) * 1rem) calc(var(--section-padding-mobile-left, 1) * 1rem);

    border-style: var(--section-border-mobile-top-style, solid) var(--section-border-mobile-right-style, solid) var(--section-border-mobile-bottom-style, solid) var(--section-border-mobile-left-style, solid);

    border-width: calc(var(--section-border-mobile-top-width, 0) * 1rem) calc(var(--section-border-mobile-right-width, 0) * 1rem) calc(var(--section-border-mobile-bottom-width, 0) * 1rem) calc(var(--section-border-mobile-left-width, 0) * 1rem);

    border-color: var(--section-border-mobile-top-color, rgba(255, 255, 255, 1.00)) var(--section-border-mobile-right-color, rgba(255, 255, 255, 1.00)) var(--section-border-mobile-bottom-color, rgba(255, 255, 255, 1.00)) var(--section-border-mobile-left-color, rgba(255, 255, 255, 1.00));

    border-radius: calc(var(--section-border-mobile-left-radius, 0) * 1rem) calc(var(--section-border-mobile-top-radius, 0) * 1rem) calc(var(--section-border-mobile-right-radius, 0) * 1rem) calc(var(--section-border-mobile-bottom-radius, 0) * 1rem);

    & .section-container {
        width: var(--section-dimensions-mobile-width, auto);
        height: var(--section-dimensions-mobile-height, auto);

         & .gallery-title {
            color: var(--title-font-mobile-textColor);
            margin: calc(var(--title-margin-mobile-top, 0) * 1rem) calc(var(--title-margin-mobile-right, 0) * 1rem) calc(var(--title-margin-mobile-bottom, 0) * 1rem) calc(var(--title-margin-mobile-left, 0) * 1rem);
            padding: calc(var(--title-padding-mobile-top, 0) * 1rem) calc(var(--title-padding-mobile-right, 0.5) * 1rem) calc(var(--title-padding-mobile-bottom, 0) * 1rem) calc(var(--title-padding-mobile-left, 0.5) * 1rem);
            font-size: calc(var(--title-font-mobile-fontSize, 1.75) * 1rem);
            font-weight: var(--title-font-mobile-fontWeight, 700);
            line-height: var(--title-font-mobile-lineHeight, 1);
            text-align: var(--title-font-mobile-textAlign, center);
            font-family: var(--title-font-mobile-fontFamily, var(--heading-font-family));
            text-transform: var(--title-font-mobile-textTransform, none);
        }

        & .gallery-desc {
            color: var(--description-font-mobile-textColor);
            margin: calc(var(--description-margin-mobile-top, 1) * 1rem) calc(var(--description-margin-mobile-right, 0) * 1rem) calc(var(--description-margin-mobile-bottom, 1) * 1rem) calc(var(--description-margin-mobile-left, 0) * 1rem);
            padding: calc(var(--description-padding-mobile-top, 0) * 1rem) calc(var(--description-padding-mobile-right, 0.5) * 1rem) calc(var(--description-padding-mobile-bottom, 0) * 1rem) calc(var(--description-padding-mobile-left, 0.5) * 1rem);
            font-size: calc(var(--description-font-mobile-fontSize, 1) * 1rem);
            font-weight: var(--description-font-mobile-fontWeight, 400);
            line-height: var(--description-font-mobile-lineHeight, 1);
            text-align: var(--description-font-mobile-textAlign, center);
            font-family: var(--description-font-mobile-fontFamily, var(--global-font-family));
            text-transform: var(--description-font-mobile-textTransform, none);
        }
    }

    & .gallery-grid-image {
        padding: calc(var(--cardMedia-padding-mobile-top, 0) * 1rem) calc(var(--cardMedia-padding-mobile-right, 0) * 1rem) calc(var(--cardMedia-padding-mobile-bottom, 0) * 1rem) calc(var(--cardMedia-padding-mobile-left, 0) * 1rem);
        margin: calc(var(--cardMedia-margin-mobile-top, 0) * 1rem) calc(var(--cardMedia-margin-mobile-right, 0) * 1rem) calc(var(--cardMedia-margin-mobile-bottom, 0) * 1rem) calc(var(--cardMedia-margin-mobile-left, 0) * 1rem);
        border-width: calc(var(--cardMedia-border-mobile-top-width, 0) * 1rem) calc(var(--cardMedia-border-mobile-right-width, 0) * 1rem) calc(var(--cardMedia-border-mobile-bottom-width, 0) * 1rem) calc(var(--cardMedia-border-mobile-left-width, 0) * 1rem);
        border-style: var(--cardMedia-border-mobile-top-style, solid) var(--cardMedia-border-mobile-right-style, solid) var(--cardMedia-border-mobile-bottom-style, solid) var(--cardMedia-border-mobile-left-style, solid);
        border-color: var(--cardMedia-border-mobile-top-color, rgba(255, 255, 255, 1.00)) var(--cardMedia-border-mobile-right-color, rgba(255, 255, 255, 1.00)) var(--cardMedia-border-mobile-bottom-color, rgba(255, 255, 255, 1.00)) var(--cardMedia-border-mobile-left-color, rgba(255, 255, 255, 1.00));
        border-radius: calc(var(--cardMedia-border-mobile-left-radius, 1.5) * 1rem) calc(var(--cardMedia-border-mobile-top-radius, 1.5) * 1rem) calc(var(--cardMedia-border-mobile-right-radius, 1.5) * 1rem) calc(var(--cardMedia-border-mobile-bottom-radius, 1.5) * 1rem);

        &:hover {
            border-color: var(--cardMedia-border-mobile-top-colorHover, rgba(255, 255, 255, 1.00)) var(--cardMedia-border-mobile-right-colorHover, rgba(255, 255, 255, 1.00)) var(--cardMedia-border-mobile-bottom-colorHover, rgba(255, 255, 255, 1.00)) var(--cardMedia-border-mobile-left-colorHover, rgba(255, 255, 255, 1.00));
        }
    }
}

@container page-container (min-width: 768px) {
    .gallery.template-2 {
        justify-self: center;

        margin: calc(var(--section-margin-tablet-top, 0) * 1rem) calc(var(--section-margin-tablet-right, 0) * 1rem) calc(var(--section-margin-tablet-bottom, 0) * 1rem) calc(var(--section-margin-tablet-left, 0) * 1rem);
        padding: calc(var(--section-padding-tablet-top, 3) * 1rem) calc(var(--section-padding-tablet-right, 1) * 1rem) calc(var(--section-padding-tablet-bottom, 3) * 1rem) calc(var(--section-padding-tablet-left, 1) * 1rem);

        border-width: calc(var(--section-border-tablet-top-width, 0) * 1rem) calc(var(--section-border-tablet-right-width, 0) * 1rem) calc(var(--section-border-tablet-bottom-width, 0) * 1rem) calc(var(--section-border-tablet-left-width, 0) * 1rem);
        border-radius: calc(var(--section-border-tablet-left-radius, 0) * 1rem) calc(var(--section-border-tablet-top-radius, 0) * 1rem) calc(var(--section-border-tablet-right-radius, 0) * 1rem) calc(var(--section-border-tablet-bottom-radius, 0) * 1rem);

        & .section-container {
            width: var(--section-dimensions-tablet-width, auto);
            height: var(--section-dimensions-tablet-height, auto);

            & .gallery-title {
                margin: calc(var(--title-margin-tablet-top, 0) * 1rem) calc(var(--title-margin-tablet-right, 0) * 1rem) calc(var(--title-margin-tablet-bottom, 0) * 1rem) calc(var(--title-margin-tablet-left, 0) * 1rem);
                padding: calc(var(--title-padding-tablet-top, 0) * 1rem) calc(var(--title-padding-tablet-right, 0.5) * 1rem) calc(var(--title-padding-tablet-bottom, 0) * 1rem) calc(var(--title-padding-tablet-left, 0.5) * 1rem);

                font-size: calc(var(--title-font-tablet-fontSize, 2.5) * 1rem);
                line-height: var(--title-font-tablet-lineHeight, 1);
                text-align: var(--title-font-tablet-textAlign, center);
            }

            & .gallery-desc {
                margin: calc(var(--description-margin-tablet-top, 1) * 1rem) calc(var(--description-margin-tablet-right, 0) * 1rem) calc(var(--description-margin-tablet-bottom, 1) * 1rem) calc(var(--description-margin-tablet-left, 0) * 1rem);
                padding: calc(var(--description-padding-tablet-top, 0) * 1rem) calc(var(--description-padding-tablet-right, 0.5) * 1rem) calc(var(--description-padding-tablet-bottom, 0) * 1rem) calc(var(--description-padding-tablet-left, 0.5) * 1rem);

                font-size: calc(var(--description-font-tablet-fontSize, 1) * 1rem);
                line-height: var(--description-font-tablet-lineHeight, 1);
                text-align: var(--description-font-tablet-textAlign, center);
            }
        }

        & .gallery-grid-image {
            padding: calc(var(--cardMedia-padding-tablet-top, 0) * 1rem) calc(var(--cardMedia-padding-tablet-right, 0) * 1rem) calc(var(--cardMedia-padding-tablet-bottom, 0) * 1rem) calc(var(--cardMedia-padding-tablet-left, 0) * 1rem);
            margin: calc(var(--cardMedia-margin-tablet-top, 0) * 1rem) calc(var(--cardMedia-margin-tablet-right, 0) * 1rem) calc(var(--cardMedia-margin-tablet-bottom, 0) * 1rem) calc(var(--cardMedia-margin-tablet-left, 0) * 1rem);
            border-width: calc(var(--cardMedia-border-tablet-top-width, 0) * 1rem) calc(var(--cardMedia-border-tablet-right-width, 0) * 1rem) calc(var(--cardMedia-border-tablet-bottom-width, 0) * 1rem) calc(var(--cardMedia-border-tablet-left-width, 0) * 1rem);
            border-radius: calc(var(--cardMedia-border-tablet-left-radius, 1.5) * 1rem) calc(var(--cardMedia-border-tablet-top-radius, 1.5) * 1rem) calc(var(--cardMedia-border-tablet-right-radius, 1.5) * 1rem) calc(var(--cardMedia-border-tablet-bottom-radius, 1.5) * 1rem);
        }
    }
}

@container page-container (min-width: 992px) {
    .gallery.template-2 {
        justify-self: center;

        margin: calc(var(--section-margin-desktop-top, 0) * 1rem) calc(var(--section-margin-desktop-right, 0) * 1rem) calc(var(--section-margin-desktop-bottom, 0) * 1rem) calc(var(--section-margin-desktop-left, 0) * 1rem);
        padding: calc(var(--section-padding-desktop-top, 3) * 1rem) calc(var(--section-padding-desktop-right, 1) * 1rem) calc(var(--section-padding-desktop-bottom, 3) * 1rem) calc(var(--section-padding-desktop-left, 1) * 1rem);
        border-width: calc(var(--section-border-desktop-top-width, 0) * 1rem) calc(var(--section-border-desktop-right-width, 0) * 1rem) calc(var(--section-border-desktop-bottom-width, 0) * 1rem) calc(var(--section-border-desktop-left-width, 0) * 1rem);
        border-radius: calc(var(--section-border-desktop-left-radius, 0) * 1rem) calc(var(--section-border-desktop-top-radius, 0) * 1rem) calc(var(--section-border-desktop-right-radius, 0) * 1rem) calc(var(--section-border-desktop-bottom-radius, 0) * 1rem);

        & .section-container {
            max-width: var(--section-dimensions-desktop-width, 82.5rem);
            height: var(--section-dimensions-desktop-height, auto);
            width: 100%;

            & .gallery-title {
                margin: calc(var(--title-margin-desktop-top, 0) * 1rem) calc(var(--title-margin-desktop-right, 0) * 1rem) calc(var(--title-margin-desktop-bottom, 0) * 1rem) calc(var(--title-margin-desktop-left, 0) * 1rem);
                padding: calc(var(--title-padding-desktop-top, 0) * 1rem) calc(var(--title-padding-desktop-right, 0.5) * 1rem) calc(var(--title-padding-desktop-bottom, 0) * 1rem) calc(var(--title-padding-desktop-left, 0.5) * 1rem);

                font-size: calc(var(--title-font-desktop-fontSize, 3) * 1rem);
                line-height: var(--title-font-desktop-lineHeight, 1);
                text-align: var(--title-font-desktop-textAlign, center);
            }

            & .gallery-desc {
                margin: calc(var(--description-margin-desktop-top, 1) * 1rem) calc(var(--description-margin-desktop-right, 0) * 1rem) calc(var(--description-margin-desktop-bottom, 1) * 1rem) calc(var(--description-margin-desktop-left, 0) * 1rem);
                padding: calc(var(--description-padding-desktop-top, 0) * 1rem) calc(var(--description-padding-desktop-right, 0.5) * 1rem) calc(var(--description-padding-desktop-bottom, 0) * 1rem) calc(var(--description-padding-desktop-left, 0.5) * 1rem);

                font-size: calc(var(--description-font-desktop-fontSize, 1) * 1rem);
                line-height: var(--description-font-desktop-lineHeight, 1);
                text-align: var(--description-font-desktop-textAlign, center);
            }
        }

        & .gallery-grid-image {
            padding: calc(var(--cardMedia-padding-desktop-top, 0) * 1rem) calc(var(--cardMedia-padding-desktop-right, 0) * 1rem) calc(var(--cardMedia-padding-desktop-bottom, 0) * 1rem) calc(var(--cardMedia-padding-desktop-left, 0) * 1rem);
            margin: calc(var(--cardMedia-margin-desktop-top, 0) * 1rem) calc(var(--cardMedia-margin-desktop-right, 0) * 1rem) calc(var(--cardMedia-margin-desktop-bottom, 0) * 1rem) calc(var(--cardMedia-margin-desktop-left, 0) * 1rem);
            border-width: calc(var(--cardMedia-border-desktop-top-width, 0) * 1rem) calc(var(--cardMedia-border-desktop-right-width, 0) * 1rem) calc(var(--cardMedia-border-desktop-bottom-width, 0) * 1rem) calc(var(--cardMedia-border-desktop-left-width, 0) * 1rem);
            border-radius: calc(var(--cardMedia-border-desktop-left-radius, 1.5) * 1rem) calc(var(--cardMedia-border-desktop-top-radius, 1.5) * 1rem) calc(var(--cardMedia-border-desktop-right-radius, 1.5) * 1rem) calc(var(--cardMedia-border-desktop-bottom-radius, 1.5) * 1rem);
        }
    }
}

.caption {
    color: rgb(255, 255, 255);
    background: rgba(35,35,35,.65);
    padding: 8px 14px;
    font-size: 16px;
    display: flex;
    justify-content: center;
    width: clamp(200px, 60%, 1280px);
    z-index: 9999999999;
    position: absolute;
    bottom: 5px;
    left: 50%;
    transform: translateX(-50%);
}

.caption:empty {
    display: none;
}