/**
 * BIOTA Galeria Google Drive
 * Compatível com Bootstrap 5.2.2.
 */

.bgdg-gallery {
    --bgdg-columns: 3;
    --bgdg-gap: 1rem;
    --bgdg-radius: 12px;
    --bgdg-aspect-ratio: 4 / 3;
    --bs-aspect-ratio: 75%;
    --bgdg-masonry-row-height: 8px;
    display: grid;
    grid-template-columns: repeat(var(--bgdg-columns), minmax(0, 1fr));
    gap: var(--bgdg-gap);
    margin: 1.5rem 0;
    overflow-anchor: none;
}


.bgdg-gallery.row {
    display: grid;
    margin-right: 0;
    margin-left: 0;
}

.bgdg-gallery > .col {
    width: auto;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
}

.bgdg-gallery.g-0 { --bgdg-gap: 0; }
.bgdg-gallery.g-1 { --bgdg-gap: .25rem; }
.bgdg-gallery.g-2 { --bgdg-gap: .5rem; }
.bgdg-gallery.g-3 { --bgdg-gap: 1rem; }
.bgdg-gallery.g-4 { --bgdg-gap: 1.5rem; }
.bgdg-gallery.g-5 { --bgdg-gap: 3rem; }

.bgdg-gallery__figure,
.bgdg-gallery__item {
    position: relative;
    min-width: 0;
    margin: 0;
    overflow-anchor: none;
}

.bgdg-gallery__link {
    display: block;
    position: relative;
    overflow: hidden;
    aspect-ratio: var(--bgdg-aspect-ratio);
    border-radius: var(--bgdg-radius);
    background: #f8f9fa;
    color: inherit;
    text-decoration: none;
}

.bgdg-gallery__link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background: rgba(0, 0, 0, 0);
    pointer-events: none;
    transition: var(--t-smooth, opacity .25s ease, background .25s ease);
}

.bgdg-gallery__link:hover::after,
.bgdg-gallery__link:focus-visible::after {
    background: rgba(0, 0, 0, 0.18);
}

.bgdg-gallery__image {
    position: relative;
    z-index: 1;
}

.bgdg-gallery__link.ratio {
    --bs-aspect-ratio: inherit;
}

.bgdg-gallery__image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.bgdg-gallery__image.bgdg-gallery__image--error {
    visibility: hidden;
}

.bgdg-gallery--masonry .bgdg-gallery__image {
    transition: var(--t-smooth, transform .25s ease, filter .25s ease);
}

.bgdg-gallery--masonry .bgdg-gallery__link:hover .bgdg-gallery__image,
.bgdg-gallery--masonry .bgdg-gallery__link:focus-visible .bgdg-gallery__image {
    filter: brightness(0.82);
}


.bgdg-gallery--original .bgdg-gallery__link {
    aspect-ratio: auto;
}

.bgdg-gallery--original .bgdg-gallery__image {
    height: auto;
    object-fit: contain;
}

.bgdg-gallery--masonry-grid {
    display: grid !important;
    grid-auto-flow: row dense;
    grid-auto-rows: var(--bgdg-masonry-row-height);
    align-items: start;
}

.bgdg-gallery--masonry-grid .bgdg-gallery__figure,
.bgdg-gallery--masonry-grid .bgdg-gallery__link {
    width: 100%;
}

.bgdg-gallery--masonry-horizontal-span .bgdg-gallery__item--horizontal {
    grid-column-end: span 2;
}

.bgdg-gallery__caption {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.35;
    color: inherit;
    opacity: 0.78;
    word-break: break-word;
}

.bgdg-gallery__link:focus-visible,
.bgdg-lightbox button:focus-visible,
.bgdg-lightbox a:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

.bgdg-gallery-message {
    padding: 0.85rem 1rem;
    border: 1px solid rgba(0, 0, 0, 0.12);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.035);
}

.bgdg-gallery-message--error {
    border-color: rgba(160, 20, 20, 0.35);
    background: rgba(160, 20, 20, 0.075);
}

.bgdg-lightbox-open {
    overflow: hidden;
}

.bgdg-lightbox {
    --bgdg-radius: 12px;
    --bgdg-lightbox-padding: clamp(1rem, 3vw, 2.5rem);
    --bgdg-lightbox-side-padding: clamp(4.25rem, 8vw, 6rem);
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
}

.bgdg-lightbox.is-open {
    display: block;
}

.bgdg-lightbox__backdrop {
    position: fixed;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, 0.88);
}

.bgdg-lightbox__panel {
    position: fixed;
    inset: 0;
    z-index: 2;
}

.bgdg-lightbox__stage {
    position: fixed;
    inset: 0;
    z-index: 2;
    overflow: hidden;
    touch-action: none;
    cursor: grab;
}

.bgdg-lightbox__stage:active {
    cursor: grabbing;
}

.bgdg-lightbox__track {
    width: 100%;
    height: 100dvh;
    display: flex;
    transform: translate3d(0, 0, 0);
    transition: transform var(--t-smooth, 0.38s cubic-bezier(.22, .61, .36, 1));
    will-change: transform;
}

.bgdg-lightbox__slide {
    flex: 0 0 100%;
    width: 100%;
    height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--bgdg-lightbox-padding) var(--bgdg-lightbox-side-padding);
    box-sizing: border-box;
}

.bgdg-lightbox__image {
    display: block;
    max-width: min(100%, 1400px);
    max-height: calc(100dvh - 7rem);
    width: auto;
    height: auto;
    border-radius: var(--bgdg-radius);
    box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.45);
    background: rgba(255, 255, 255, 0.04);
    object-fit: contain;
    user-select: none;
    -webkit-user-drag: none;
}

.bgdg-lightbox--radius-disabled .bgdg-lightbox__image {
    border-radius: 0 !important;
}

.bgdg-lightbox--hide-title .bgdg-lightbox__slide {
    padding-top: var(--bgdg-lightbox-padding);
    padding-bottom: var(--bgdg-lightbox-padding);
}

.bgdg-lightbox--hide-title .bgdg-lightbox__image {
    max-height: calc(100dvh - (var(--bgdg-lightbox-padding) * 2));
}

.bgdg-lightbox__bar {
    position: fixed;
    left: 50%;
    bottom: clamp(0.75rem, 2vw, 1.5rem);
    z-index: 5;
    width: min(100% - 2rem, 900px);
    transform: translateX(-50%);
    color: #fff;
    text-align: center;
    pointer-events: none;
}

.bgdg-lightbox--hide-title .bgdg-lightbox__bar {
    display: none;
}

.bgdg-lightbox__title {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.35;
    opacity: 0.9;
    word-break: break-word;
}

.bgdg-lightbox {
    /*
     * Os controlos do fullscreen alinham pelo "container" do site.
     * Usa primeiro as variáveis globais do WordPress; se não existirem,
     * usa a largura máxima do container Bootstrap 5.2.2.
     */
    --bgdg-lightbox-container-max: var(--wp--style--global--wide-size, var(--wp--style--global--content-size, 1320px));
    --bgdg-control-container-gutter: clamp(0.75rem, 2vw, 1.5rem);
    --bgdg-control-container-offset: max(
        var(--bgdg-control-container-gutter),
        calc((100vw - min(100vw, var(--bgdg-lightbox-container-max))) / 2 + var(--bgdg-control-container-gutter))
    );
    --bgdg-control-offset-x-left: calc(env(safe-area-inset-left, 0px) + var(--bgdg-control-container-offset));
    --bgdg-control-offset-x-right: calc(env(safe-area-inset-right, 0px) + var(--bgdg-control-container-offset));
    --bgdg-control-offset-y-top: calc(env(safe-area-inset-top, 0px) + var(--bgdg-control-container-gutter));
}

.bgdg-lightbox #prevCard[data-bgdg-prev],
.bgdg-lightbox #nextCard[data-bgdg-next] {
    position: fixed !important;
    top: 50% !important;
    z-index: 10 !important;
}

.bgdg-lightbox #prevCard[data-bgdg-prev] {
    left: var(--bgdg-control-offset-x-left) !important;
    right: auto !important;
    transform: translateY(-50%) !important;
}

.bgdg-lightbox #nextCard[data-bgdg-next] {
    right: var(--bgdg-control-offset-x-right) !important;
    left: auto !important;
    transform: translateY(-50%) !important;
}

.bgdg-lightbox__corner-controls {
    position: fixed !important;
    top: var(--bgdg-control-offset-y-top) !important;
    right: var(--bgdg-control-offset-x-right) !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 11 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 0.75rem !important;
    transform: none !important;
}

.bgdg-lightbox__corner-controls > .carousel-btn {
    position: static !important;
    inset: auto !important;
    transform: none !important;
}

.bgdg-lightbox #downloadCard[data-bgdg-download-control] {
    order: 1;
}

.bgdg-lightbox #closeCard[data-bgdg-close] {
    order: 2;
}

.bgdg-lightbox .carousel-btn {
    z-index: 10;
}

.bgdg-lightbox [data-bgdg-download-control][hidden],
.bgdg-lightbox [data-bgdg-prev][hidden],
.bgdg-lightbox [data-bgdg-next][hidden] {
    display: none !important;
}

.bgdg-lightbox--carousel-disabled [data-bgdg-prev],
.bgdg-lightbox--carousel-disabled [data-bgdg-next] {
    display: none !important;
}

.bgdg-lightbox .carousel-btn i {
    pointer-events: none;
}

@media (max-width: 767.98px) {
    .bgdg-lightbox {
        --bgdg-lightbox-padding: 0.75rem;
        --bgdg-lightbox-side-padding: 0.75rem;
        --bgdg-control-container-gutter: 0.75rem;
        --bgdg-control-container-offset: 0.75rem;
        --bgdg-control-offset-x-left: calc(env(safe-area-inset-left, 0px) + var(--bgdg-control-container-offset));
        --bgdg-control-offset-x-right: calc(env(safe-area-inset-right, 0px) + var(--bgdg-control-container-offset));
        --bgdg-control-offset-y-top: calc(env(safe-area-inset-top, 0px) + var(--bgdg-control-container-gutter));
    }

    .bgdg-lightbox #prevCard[data-bgdg-prev],
    .bgdg-lightbox #nextCard[data-bgdg-next] {
        display: none !important;
    }

    .bgdg-lightbox__corner-controls {
        top: var(--bgdg-control-offset-y-top) !important;
        right: var(--bgdg-control-offset-x-right) !important;
        gap: 0.625rem !important;
    }

    .bgdg-lightbox #closeCard[data-bgdg-close],
    .bgdg-lightbox #downloadCard[data-bgdg-download-control] {
        display: inline-flex;
    }

    .bgdg-lightbox #downloadCard[data-bgdg-download-control][hidden] {
        display: none !important;
    }

    .bgdg-lightbox__image {
        max-width: 100%;
        max-height: calc(100dvh - 1.5rem);
    }

    .bgdg-lightbox__bar {
        bottom: calc(env(safe-area-inset-bottom, 0px) + 0.75rem);
        width: calc(100% - 1.5rem);
    }
}




.bgdg-gallery--columns-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.bgdg-gallery--columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bgdg-gallery--columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bgdg-gallery--columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bgdg-gallery--columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.bgdg-gallery--columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.bgdg-gallery--columns-7 { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.bgdg-gallery--columns-8 { grid-template-columns: repeat(8, minmax(0, 1fr)); }

@media (max-width: 1100px) {
    .bgdg-gallery--columns-5,
    .bgdg-gallery--columns-6,
    .bgdg-gallery--columns-7,
    .bgdg-gallery--columns-8 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .bgdg-gallery--columns-4,
    .bgdg-gallery--columns-5,
    .bgdg-gallery--columns-6,
    .bgdg-gallery--columns-7,
    .bgdg-gallery--columns-8 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}


/* Estabilização mobile: em ecrãs pequenos o masonry passa para grelha normal.
   Isto evita saltos de scroll causados por recálculos enquanto as imagens carregam. */
@media (max-width: 767.98px) {
    .bgdg-gallery--masonry-grid {
        grid-auto-flow: row !important;
        grid-auto-rows: auto !important;
        align-items: start !important;
    }

    .bgdg-gallery--masonry-grid [data-bgdg-masonry-item] {
        grid-column: auto !important;
        grid-row: auto !important;
    }

    .bgdg-gallery--masonry-grid .bgdg-gallery__link,
    .bgdg-gallery--masonry-grid .bgdg-gallery__image {
        transform: translateZ(0);
        backface-visibility: hidden;
    }
}

@media (max-width: 680px) {
    .bgdg-gallery--columns-3,
    .bgdg-gallery--columns-4,
    .bgdg-gallery--columns-5,
    .bgdg-gallery--columns-6,
    .bgdg-gallery--columns-7,
    .bgdg-gallery--columns-8 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bgdg-gallery--masonry-horizontal-span .bgdg-gallery__item--horizontal {
        grid-column-end: span 1;
    }

}

@media (max-width: 480px) {
    .bgdg-gallery {
        grid-template-columns: 1fr;
    }

    .bgdg-gallery--masonry-horizontal-span .bgdg-gallery__item--horizontal {
        grid-column-end: span 1;
    }

}
