.elgmvp2-gallery-wrap {
    overflow-x: clip;
}

.elgmvp2-gallery {
    --elgmvp2-gap: 10px;
    --elgmvp2-content-width-desktop: 100%;
    --elgmvp2-content-width-tablet: 100%;
    --elgmvp2-content-width-mobile: 100%;
    --elgmvp2-acf-gallery-cols-desktop: 3;
    --elgmvp2-acf-gallery-cols-tablet: 2;
    --elgmvp2-acf-gallery-cols-mobile: 2;
    --elgmvp2-content-width: var(--elgmvp2-content-width-desktop);
    --elgmvp2-fullwidth-vpad: 0px;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--elgmvp2-gap);
    max-width: 100%;
}

.elgmvp2-section {
    grid-column: span var(--elgmvp2-span, 6);
    min-width: 0;
}

.elgmvp2-section--full-width {
    --elgmvp2-span: 12;
}

.elgmvp2-grid {
    --elgmvp2-cols: 3;
    display: grid;
    grid-template-columns: repeat(var(--elgmvp2-cols), minmax(0, 1fr));
    gap: var(--elgmvp2-gap);
    width: min(100%, var(--elgmvp2-content-width));
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--elgmvp2-gap);
    padding-right: var(--elgmvp2-gap);
    box-sizing: border-box;
}

.elgmvp2-gallery--acf-gallery .elgmvp2-grid {
    --elgmvp2-cols: var(--elgmvp2-acf-gallery-cols-desktop);
}

.elgmvp2-featured-row {
    margin-bottom: var(--elgmvp2-gap);
}

.elgmvp2-smart {
    display: grid;
    gap: var(--elgmvp2-gap);
    width: 100%;
    min-width: 0;
}

.elgmvp2-smart-row {
    display: flex;
    gap: var(--elgmvp2-gap);
    width: min(100%, var(--elgmvp2-content-width));
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--elgmvp2-gap);
    padding-right: var(--elgmvp2-gap);
    box-sizing: border-box;
}

.elgmvp2-smart-row--has-starred {
    padding-left: var(--elgmvp2-gap);
    padding-right: var(--elgmvp2-gap);
}

.elgmvp2-smart-row--has-starred-viewport {
    padding-left: 0;
    padding-right: 0;
}

.elgmvp2-smart-row--has-starred-viewport {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
}

.elgmvp2-smart-row--has-starred-contained {
    width: min(100%, var(--elgmvp2-content-width));
    margin-left: auto;
    margin-right: auto;
}

.elgmvp2-fullwidth-row {
    margin-top: 0;
    margin-bottom: 0;
}

.elgmvp2-fullwidth-row.elgmvp2-fullwidth-row--first {
    margin-bottom: var(--elgmvp2-fullwidth-vpad);
}

.elgmvp2-fullwidth-row.elgmvp2-fullwidth-row--middle {
    margin-top: var(--elgmvp2-fullwidth-vpad);
    margin-bottom: var(--elgmvp2-fullwidth-vpad);
}

.elgmvp2-fullwidth-row.elgmvp2-fullwidth-row--last {
    margin-top: var(--elgmvp2-fullwidth-vpad);
}

.elgmvp2-smart-row--single .elgmvp2-smart-item {
    flex: 1 1 100%;
    width: 100%;
}

.elgmvp2-smart-item {
    flex: var(--elgmvp2-ratio, 1.33) 1 0;
    min-width: 0;
}

.elgmvp2-gallery .elgmvp2-grid .elgmvp2-image.elgmvp2-image--starred {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
}

.elgmvp2-gallery .elgmvp2-grid .elgmvp2-image.elgmvp2-image--starred-contained {
    position: relative;
    width: 100%;
    max-width: 100%;
    left: auto;
    right: auto;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.elgmvp2-smart-item--hero {
    flex: 1 1 100%;
}

.elgmvp2-grid--masonry {
    grid-auto-flow: dense;
}

.elgmvp2-grid--masonry .elgmvp2-image:nth-child(1),
.elgmvp2-grid--masonry .elgmvp2-image:nth-child(6n + 1) {
    grid-column: span 2;
    grid-row: span 2;
}

.elgmvp2-grid--masonry .elgmvp2-image:nth-child(4n + 3) {
    aspect-ratio: 4 / 5;
}

.elgmvp2-image {
    margin: 0;
    line-height: 0;
    overflow: hidden;
}

.elgmvp2-smart .elgmvp2-image {
    aspect-ratio: auto;
    --elgmvp2-active-row-height: var(--elgmvp2-smart-row-height, 280px);
    height: calc(var(--elgmvp2-active-row-height) * var(--elgmvp2-row-factor, 1));
}

.elgmvp2-smart-item--hero .elgmvp2-image {
    height: calc(var(--elgmvp2-active-row-height) * var(--elgmvp2-smart-hero-factor, 1.5));
}

.elgmvp2-smart-item--fullrow .elgmvp2-image {
    height: auto;
    max-height: none;
}

.elgmvp2-smart-item--fullrow .elgmvp2-image img {
    height: auto !important;
    object-fit: contain !important;
}

.elgmvp2-smart-item--fullrow.elgmvp2-smart-item--portrait .elgmvp2-image {
    height: auto;
    max-height: none;
}

.elgmvp2-smart-item--fullrow.elgmvp2-smart-item--portrait .elgmvp2-image img {
    width: 100%;
    height: auto !important;
    object-fit: contain !important;
}

.elgmvp2-smart-row--has-starred .elgmvp2-smart-item--starred.elgmvp2-smart-item--portrait .elgmvp2-image {
    height: auto;
    max-height: none;
}

.elgmvp2-smart-row--has-starred .elgmvp2-smart-item--starred.elgmvp2-smart-item--portrait .elgmvp2-image img {
    width: 100%;
    height: auto !important;
    object-fit: contain !important;
}

.elgmvp2-smart-row--single-portrait-adjacent-starred {
    padding-left: 0;
    padding-right: 0;
}

.elgmvp2-smart-row--single-portrait-adjacent-starred .elgmvp2-image {
    height: auto;
    max-height: none;
}

.elgmvp2-smart-row--single-portrait-adjacent-starred .elgmvp2-image img {
    width: 100%;
    height: auto !important;
    object-fit: contain !important;
}

.elgmvp2-smart .elgmvp2-image img {
    height: 100%;
}

.elgmvp2-section--single .elgmvp2-image,
.elgmvp2-section--full-width .elgmvp2-image {
    aspect-ratio: 16 / 10;
}

.elgmvp2-grid .elgmvp2-image {
    aspect-ratio: 4 / 3;
}

.elgmvp2-grid .elgmvp2-image--starred {
    grid-column: 1 / -1;
    margin-left: calc(var(--elgmvp2-gap) * -1);
    margin-right: calc(var(--elgmvp2-gap) * -1);
    aspect-ratio: auto;
    height: auto;
    max-height: none;
}

.elgmvp2-grid .elgmvp2-image--starred-contained {
    grid-column: 1 / -1;
    aspect-ratio: auto;
    height: auto;
    max-height: none;
}

.elgmvp2-grid .elgmvp2-image--starred img {
    height: auto !important;
    object-fit: contain !important;
}

.elgmvp2-grid .elgmvp2-image--starred-contained img {
    height: auto !important;
    object-fit: contain !important;
}

.elgmvp2-grid .elgmvp2-image--starred.elgmvp2-image--portrait {
    height: auto;
    max-height: none;
}

.elgmvp2-grid .elgmvp2-image--starred.elgmvp2-image--portrait img {
    height: auto !important;
    object-fit: contain !important;
}

.elgmvp2-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.elgmvp2-copy {
    margin-bottom: 10px;
}

.elgmvp2-title {
    margin: 0 0 6px;
    font-size: 1.6rem;
    line-height: 1.2;
}

.elgmvp2-text {
    font-size: 1.02rem;
    line-height: 1.55;
}

.elgmvp2-text > :first-child {
    margin-top: 0;
}

.elgmvp2-text > :last-child {
    margin-bottom: 0;
}

.elgmvp2-caption {
    margin-top: 8px;
    text-align: center;
    font-size: 0.95rem;
    line-height: 1.4;
    font-style: italic;
    color: rgba(0, 0, 0, 0.7);
}

.elgmvp2-post-nav {
    --elgmvp2-post-nav-height: 180px;
    --elgmvp2-post-nav-pad-top: 0px;
    --elgmvp2-post-nav-pad-bottom: 0px;
    --elgmvp2-post-nav-label-color: #ffffff;
    --elgmvp2-post-nav-title-color: #ffffff;
    --elgmvp2-post-nav-arrow-color: #ffffff;
    --elgmvp2-post-nav-overlay-opacity: 0.62;
    --elgmvp2-post-nav-overlay-opacity-hover: 0.3;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--elgmvp2-gap);
    width: min(100%, var(--elgmvp2-content-width));
    margin: 0 auto var(--elgmvp2-gap);
    padding-top: var(--elgmvp2-post-nav-pad-top);
    padding-bottom: var(--elgmvp2-post-nav-pad-bottom);
    padding-left: var(--elgmvp2-gap);
    padding-right: var(--elgmvp2-gap);
    box-sizing: border-box;
}

.elgmvp2-post-nav--viewport {
    width: 100vw;
    max-width: 100vw;
    margin-left: 50%;
    transform: translateX(-50%);
    padding-left: var(--elgmvp2-gap);
    padding-right: var(--elgmvp2-gap);
}

.elgmvp2-post-nav-item {
    position: relative;
    min-height: var(--elgmvp2-post-nav-height);
    display: block;
    overflow: hidden;
    text-decoration: none;
    background-color: #0f1524;
    background-size: cover;
    background-position: center center;
    border-radius: 4px;
}

.elgmvp2-post-nav-item--full {
    grid-column: 1 / -1;
}

.elgmvp2-post-nav-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, calc(var(--elgmvp2-post-nav-overlay-opacity) * 0.4)) 0%, rgba(0, 0, 0, var(--elgmvp2-post-nav-overlay-opacity)) 100%);
    transition: background 220ms ease;
}

.elgmvp2-post-nav-item:hover .elgmvp2-post-nav-overlay,
.elgmvp2-post-nav-item:focus-visible .elgmvp2-post-nav-overlay {
    background: linear-gradient(180deg, rgba(0, 0, 0, calc(var(--elgmvp2-post-nav-overlay-opacity-hover) * 0.4)) 0%, rgba(0, 0, 0, var(--elgmvp2-post-nav-overlay-opacity-hover)) 100%);
}

.elgmvp2-post-nav-inner {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    padding: 16px;
    color: #fff;
}

.elgmvp2-post-nav-item--next .elgmvp2-post-nav-inner {
    flex-direction: row-reverse;
    text-align: left;
}

.elgmvp2-post-nav-item--prev .elgmvp2-post-nav-copy {
    text-align: right;
}

.elgmvp2-post-nav-item--next .elgmvp2-post-nav-copy {
    text-align: left;
}

.elgmvp2-post-nav-arrow {
    font-size: 28px;
    line-height: 1;
    opacity: 0.95;
    color: var(--elgmvp2-post-nav-arrow-color);
}

.elgmvp2-post-nav-copy {
    display: block;
    min-width: 0;
}

.elgmvp2-post-nav-label {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
    line-height: 1.2;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.95;
    color: var(--elgmvp2-post-nav-label-color);
}

.elgmvp2-post-nav-title {
    display: block;
    font-size: 24px;
    line-height: 1.12;
    font-weight: 600;
    word-break: break-word;
    color: var(--elgmvp2-post-nav-title-color);
}

@media (max-width: 1024px) {
    .elgmvp2-gallery {
        --elgmvp2-content-width: var(--elgmvp2-content-width-tablet);
    }

    .elgmvp2-smart .elgmvp2-image {
        --elgmvp2-active-row-height: var(--elgmvp2-smart-row-height-tablet, var(--elgmvp2-smart-row-height, 280px));
    }

    .elgmvp2-grid {
        grid-template-columns: repeat(min(var(--elgmvp2-cols), 2), minmax(0, 1fr));
    }

    .elgmvp2-gallery--acf-gallery .elgmvp2-grid {
        grid-template-columns: repeat(var(--elgmvp2-acf-gallery-cols-tablet), minmax(0, 1fr));
    }

    .elgmvp2-grid--masonry .elgmvp2-image:nth-child(1),
    .elgmvp2-grid--masonry .elgmvp2-image:nth-child(6n + 1) {
        grid-column: span 2;
    }

    .elgmvp2-post-nav-title {
        font-size: 20px;
    }
}

@media (max-width: 767px) {
    .elgmvp2-gallery {
        --elgmvp2-content-width: var(--elgmvp2-content-width-mobile);
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .elgmvp2-section {
        grid-column: span 6;
    }

    .elgmvp2-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .elgmvp2-gallery--acf-gallery .elgmvp2-grid {
        grid-template-columns: repeat(var(--elgmvp2-acf-gallery-cols-mobile), minmax(0, 1fr));
    }

    .elgmvp2-grid--masonry .elgmvp2-image {
        grid-column: span 1 !important;
        grid-row: span 1 !important;
        aspect-ratio: 4 / 3;
    }

    .elgmvp2-smart-row {
        flex-wrap: wrap;
    }

    .elgmvp2-smart-item {
        flex: 1 1 calc(50% - var(--elgmvp2-gap));
    }

    .elgmvp2-smart-row[class*="elgmvp2-smart-row--count-3"] .elgmvp2-smart-item,
    .elgmvp2-smart-row[class*="elgmvp2-smart-row--count-4"] .elgmvp2-smart-item,
    .elgmvp2-smart-row[class*="elgmvp2-smart-row--count-5"] .elgmvp2-smart-item,
    .elgmvp2-smart-row[class*="elgmvp2-smart-row--count-6"] .elgmvp2-smart-item {
        flex: 1 1 calc(33.333% - var(--elgmvp2-gap));
    }

    .elgmvp2-smart-row--mixed-portrait {
        align-items: stretch;
    }

    .elgmvp2-smart-row--mixed-portrait .elgmvp2-smart-item {
        display: flex;
    }

    .elgmvp2-smart .elgmvp2-image {
        --elgmvp2-active-row-height: var(--elgmvp2-smart-row-height-mobile, var(--elgmvp2-smart-row-height-tablet, var(--elgmvp2-smart-row-height, 280px)));
        height: clamp(110px, calc(var(--elgmvp2-active-row-height) * var(--elgmvp2-row-factor, 1)), 300px);
    }

    .elgmvp2-smart-item--hero .elgmvp2-image {
        height: clamp(180px, calc(var(--elgmvp2-active-row-height) * var(--elgmvp2-smart-hero-factor, 1.5)), 420px);
    }

    .elgmvp2-smart-item--fullrow .elgmvp2-image {
        height: auto;
        max-height: none;
    }

    .elgmvp2-smart-item--fullrow.elgmvp2-smart-item--portrait .elgmvp2-image {
        height: auto;
        max-height: none;
    }

    .elgmvp2-grid .elgmvp2-image--starred {
        height: auto;
        max-height: none;
    }

    .elgmvp2-grid .elgmvp2-image--starred.elgmvp2-image--portrait {
        height: auto;
        max-height: none;
    }

    .elgmvp2-grid .elgmvp2-image--starred.elgmvp2-image--portrait img {
        width: 100%;
        height: auto !important;
        object-fit: contain !important;
    }

    .elgmvp2-post-nav-item {
        min-height: clamp(120px, 30vw, var(--elgmvp2-post-nav-height));
    }

    .elgmvp2-post-nav-label {
        margin-bottom: 0;
        font-size: 14px;
    }

    .elgmvp2-post-nav-title {
        font-size: 18px;
    }

    .elgmvp2-smart-item--starred.elgmvp2-smart-item--portrait .elgmvp2-image {
        height: auto;
        max-height: none;
    }

    .elgmvp2-smart-item--starred.elgmvp2-smart-item--portrait .elgmvp2-image img {
        width: 100%;
        height: auto !important;
        object-fit: contain !important;
    }

    /* On mobile, avoid cropping portrait images where possible. */
    .elgmvp2-image--portrait {
        aspect-ratio: auto !important;
        height: auto !important;
    }

    .elgmvp2-image--portrait img {
        width: 100%;
        height: auto !important;
        object-fit: contain !important;
    }

    .elgmvp2-smart-row--mixed-portrait .elgmvp2-image--landscape {
        height: 100% !important;
        flex: 1 1 auto;
    }

    .elgmvp2-smart-row--mixed-portrait .elgmvp2-image--landscape img {
        height: 100% !important;
        object-fit: cover !important;
    }
}
