.event-gallery {
    padding: 86px 0 110px;
    background: #fbf9f6
}

@keyframes event-gallery-skeleton {
    to { background-position-x: -200% }
}

.event-gallery.is-loading .event-gallery-intro .treatment-kicker,
.event-gallery.is-loading .event-gallery-intro h2,
.event-gallery.is-loading .event-gallery-intro p,
.event-gallery.is-loading .event-gallery-heading span,
.event-gallery.is-loading .event-gallery-heading h3,
.event-gallery.is-loading .event-gallery-heading p,
.event-gallery-photo.is-loading::before,
.event-gallery-lightbox figure.is-loading::before {
    color: transparent !important;
    background: linear-gradient(100deg, #e9e1d9 25%, #f5f0eb 50%, #e9e1d9 75%);
    background-size: 200% 100%;
    border-radius: 4px;
    animation: event-gallery-skeleton 1.5s linear infinite
}

.event-gallery.is-loading .event-gallery-intro .treatment-kicker {
    display: inline-block;
    width: 180px
}

.event-gallery.is-loading .event-gallery-intro h2 { width: min(480px, 80%) }
.event-gallery.is-loading .event-gallery-intro p { width: min(700px, 100%) }
.event-gallery.is-loading .event-gallery-date { width: 170px }
.event-gallery.is-loading .event-gallery-heading h3 { width: min(420px, 80%) }
.event-gallery.is-loading .event-gallery-heading p { width: min(700px, 100%) }
.event-gallery.is-loading .event-gallery-count { width: 75px }

.event-gallery-intro {
    max-width: 100%;
    margin: 0 0 70px
}

.event-gallery-intro h2 {
    font: 500 clamp(36px, 5vw, 60px)/1.15 'Playfair Display', Georgia, serif;
    color: #302b28;
    margin: 18px 0
}

.event-gallery-intro p {
    max-width: 100%;
    font-size: 16px;
    line-height: 1.8;
    color: #766e67;
    margin: 0
}

.event-gallery-event {
    padding: 34px 0 65px;
    border-top: 1px solid #ddd4cb
}

.event-gallery-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 28px
}

.event-gallery-date, .event-gallery-count {
    display: block;
    color: #a46e4e;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .15em;
    text-transform: uppercase
}

.event-gallery-heading h3 {
    font: 500 clamp(29px, 3.5vw, 43px)/1.2 'Playfair Display', Georgia, serif;
    color: #302b28;
    margin: 12px 0
}

.event-gallery-heading p {
    max-width: 100%;
    white-space: pre-line;
    font-size: 15px;
    line-height: 1.8;
    color: #766e67;
    margin: 0
}

.event-gallery-count {
    white-space: nowrap;
    color: #96897e;
    margin-top: 5px
}

.event-gallery-heading > div {
    flex: 1;
    min-width: 0
}

.event-gallery-carousel {
    min-width: 0
}

.event-gallery-swiper {
    width: 100%
}

.event-gallery-photo {
    position: relative;
    display: block;
    overflow: hidden;
    background: #eee8e1
}

.event-gallery-photo.is-loading::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1
}

.event-gallery-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    transition: transform .35s ease
}

.event-gallery-photo:hover img {
    transform: scale(1.035)
}

.event-gallery-photo:focus-visible,
.event-gallery-controls button:focus-visible,
.event-gallery-lightbox button:focus-visible {
    outline: 2px solid #a46e4e;
    outline-offset: 3px
}

.event-gallery-controls {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 16px;
    margin-top: 18px
}

.event-gallery-controls button {
    display: grid;
    place-items: center;
    flex: none;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid #b9aa9d;
    border-radius: 50%;
    background: transparent;
    color: #302b28;
    font-size: 20px;
    line-height: 1;
    cursor: pointer
}

.event-gallery-controls button:disabled {
    opacity: .35;
    cursor: not-allowed
}

.event-gallery-position {
    min-width: 42px;
    text-align: center;
    color: #766e67;
    font-size: 13px
}

.event-gallery-lightbox {
    position: fixed;
    width: min(1000px, calc(100vw - 32px));
    max-width: none;
    max-height: calc(100dvh - 32px);
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    overflow: visible
}

.event-gallery-lightbox::backdrop {
    background: rgba(21, 17, 15, .9)
}

.event-gallery-lightbox-content {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 200px
}

.event-gallery-lightbox figure {
    margin: 0;
    max-width: 100%;
    text-align: center
}

.event-gallery-lightbox figure.is-loading {
    width: min(800px, calc(100vw - 32px))
}

.event-gallery-lightbox figure.is-loading::before {
    content: '';
    display: block;
    width: 100%;
    aspect-ratio: 4/3;
    max-height: calc(100dvh - 120px)
}

.event-gallery-lightbox figure.is-loading img {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0
}

.event-gallery-lightbox img {
    display: block;
    max-width: 100%;
    max-height: calc(100dvh - 100px);
    margin: auto;
    object-fit: contain
}

.event-gallery-lightbox figcaption {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-top: 12px;
    font-size: 13px
}

.event-gallery-lightbox-close,
.event-gallery-lightbox-prev,
.event-gallery-lightbox-next {
    position: absolute;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(30, 25, 22, .75);
    color: #fff;
    font-size: 24px;
    line-height: 1;
    cursor: pointer
}

.event-gallery-lightbox-close {
    top: 10px;
    right: 10px;
    font-size: 30px
}

.event-gallery-lightbox-prev { left: 10px }
.event-gallery-lightbox-next { right: 10px }

.event-gallery-lightbox button:disabled {
    display: none
}

.event-gallery-empty {
    border-top: 1px solid #ddd4cb;
    padding: 45px 0 80px
}

.event-gallery-empty h3 {
    font: 500 30px 'Playfair Display', Georgia, serif;
    color: #302b28
}

.event-gallery-empty p {
    color: #766e67
}

.event-gallery-pagination {
    margin-top: 20px
}

@media (prefers-reduced-motion: reduce) {
    .event-gallery.is-loading .event-gallery-intro .treatment-kicker,
    .event-gallery.is-loading .event-gallery-intro h2,
    .event-gallery.is-loading .event-gallery-intro p,
    .event-gallery.is-loading .event-gallery-heading span,
    .event-gallery.is-loading .event-gallery-heading h3,
    .event-gallery.is-loading .event-gallery-heading p,
    .event-gallery-photo.is-loading::before,
    .event-gallery-lightbox figure.is-loading::before {
        animation: none
    }
}

@media (max-width: 760px) {
    .event-gallery {
        padding: 60px 0 75px
    }

    .event-gallery-intro {
        margin-bottom: 45px
    }

    .event-gallery-heading {
        display: block
    }

    .event-gallery-count {
        margin-top: 16px
    }

    .event-gallery-lightbox-prev { left: 4px }
    .event-gallery-lightbox-next { right: 4px }
    .event-gallery-lightbox img {
        max-height: calc(100dvh - 120px)
    }
}
