.pg-wrapper-e0c31c8a {
    --pg-cols: 3;
    --pg-carousel-cols: 3;
    --pg-gap-col: 20px;
    --pg-gap-row: 20px;
    --pg-image-height: auto;
    width: 100%;
    overflow: hidden;
    position: relative;
}
.pg-grid-e0c31c8a .pg-inner-e0c31c8a {
    display: grid;
    grid-template-columns: repeat(var(--pg-cols), 1fr);
    gap: var(--pg-gap-row) var(--pg-gap-col);
}
.pg-carousel-e0c31c8a .pg-inner-e0c31c8a {
    display: flex;
    transition: transform 0.4s ease;
    gap: var(--pg-gap-col);
}
.pg-carousel-e0c31c8a .pg-item-e0c31c8a {
    flex: 0 0 calc((100% - (var(--pg-gap-col) * (var(--pg-carousel-cols) - 1))) / var(--pg-carousel-cols));
    max-width: calc((100% - (var(--pg-gap-col) * (var(--pg-carousel-cols) - 1))) / var(--pg-carousel-cols));
    box-sizing: border-box;
}

/* Span Column for Grid */
.pg-grid-e0c31c8a .pg-item-e0c31c8a.pg-span-2 {
    grid-column: span 2;
}

/* Item Structure */
.pg-item-e0c31c8a {
    display: flex;
    flex-direction: column;
}

/* Vertical Alignment per Item */
.pg-item-e0c31c8a.pg-align-start { justify-content: flex-start; }
.pg-item-e0c31c8a.pg-align-center { justify-content: center; }
.pg-item-e0c31c8a.pg-align-end { justify-content: flex-end; }

/* Horizontal Alignment per Item */
.pg-item-e0c31c8a.pg-halign-start .pg-image-wrap-e0c31c8a { margin: 0 auto 0 0; }
.pg-item-e0c31c8a.pg-halign-center .pg-image-wrap-e0c31c8a { margin: 0 auto; }
.pg-item-e0c31c8a.pg-halign-end .pg-image-wrap-e0c31c8a { margin: 0 0 0 auto; }
.pg-item-e0c31c8a.pg-halign-stretch .pg-image-wrap-e0c31c8a { width: 100%; margin: 0; }


.pg-image-wrap-e0c31c8a {
    overflow: hidden;
    border-radius: 8px;
    position: relative;
    cursor: default;
    display: flex;
    justify-content: center;
}

/* Explicit widths for non-stretched items */
.pg-item-e0c31c8a:not(.pg-halign-stretch) .pg-image-wrap-e0c31c8a {
    width: auto;
    max-width: 100%;
}

.pg-wrapper-e0c31c8a[data-lightbox="yes"] .pg-image-wrap-e0c31c8a {
    cursor: pointer;
}

.pg-image-wrap-e0c31c8a img {
    width: 100%;
    height: var(--pg-image-height);
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease, filter 0.4s ease;
}

/* Base Ratios when height is auto */
.pg-wrapper-e0c31c8a[style*="--pg-image-height: auto"] .pg-item-e0c31c8a.is-vertical .pg-image-wrap-e0c31c8a img {
    aspect-ratio: 3 / 5;
    height: auto;
}

.pg-wrapper-e0c31c8a[style*="--pg-image-height: auto"] .pg-item-e0c31c8a.is-horizontal .pg-image-wrap-e0c31c8a img {
    aspect-ratio: 5 / 3;
    height: auto;
}


/* Lightbox Enlarge Icon */
.pg-enlarge-icon-e0c31c8a {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.5);
    background: rgba(255,255,255,0.8);
    border-radius: 50%;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: all 0.3s ease;
    color: #333;
    pointer-events: none;
    z-index: 2;
}
.pg-image-wrap-e0c31c8a:hover .pg-enlarge-icon-e0c31c8a {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

/* Caption Styles and Layout */
.pg-caption-e0c31c8a {
    padding: 10px;
    font-size: 14px;
    color: #333;
}

/* Text Position: Bottom */
.pg-text-pos-bottom .pg-item-e0c31c8a {
    flex-direction: column;
}

/* Text Position: Side Vertical */
.pg-text-pos-side_left .pg-item-e0c31c8a,
.pg-text-pos-side_right .pg-item-e0c31c8a {
    flex-direction: row;
    align-items: center;
}
.pg-text-pos-side_left .pg-item-e0c31c8a {
    flex-direction: row-reverse;
}

.pg-text-pos-side_left .pg-caption-e0c31c8a,
.pg-text-pos-side_right .pg-caption-e0c31c8a {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    padding: 10px;
    white-space: nowrap;
}


/* Hover Effects */
.pg-hover-zoom .pg-item-e0c31c8a:hover .pg-image-wrap-e0c31c8a img {
    transform: scale(1.08);
}
.pg-hover-grayscale .pg-image-wrap-e0c31c8a img {
    filter: grayscale(100%);
}
.pg-hover-grayscale .pg-item-e0c31c8a:hover .pg-image-wrap-e0c31c8a img {
    filter: grayscale(0%);
}


/* Carousel Nav */
.pg-nav-prev-e0c31c8a, .pg-nav-next-e0c31c8a {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background-color: rgba(0,0,0,0.6);
    color: white;
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    font-size: 16px;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s;
}
.pg-nav-prev-e0c31c8a { left: 10px; }
.pg-nav-next-e0c31c8a { right: 10px; }
.pg-nav-prev-e0c31c8a:hover, .pg-nav-next-e0c31c8a:hover {
    filter: brightness(1.2);
}

/* Lightbox Modal */
.pg-lightbox-modal-e0c31c8a {
    position: fixed;
    top: 0; left: 0; width: 100vw; height: 100vh;
    background: rgba(0,0,0,0.9);
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease;
}
.pg-lightbox-modal-e0c31c8a.is-active {
    opacity: 1;
    visibility: visible;
}
.pg-lightbox-modal-e0c31c8a img {
    max-width: 90%;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 4px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
    transform: scale(0.9);
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.pg-lightbox-modal-e0c31c8a.is-active img {
    transform: scale(1);
}
.pg-lightbox-close-e0c31c8a {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    color: white;
    font-size: 40px;
    cursor: pointer;
    line-height: 1;
    padding: 10px;
}
