/* ==================================================
   WŁASNE ELEMENTY – WSPÓLNE
   ================================================== */

.wp-block-wlasne-elementy-container,
.wp-block-wlasne-elementy-info-box,
.wp-block-wlasne-elementy-buttons,
.wp-block-wlasne-elementy-button,
.wp-block-wlasne-elementy-faq {
    box-sizing:border-box;
}

/* ==================================================
   KONTENER
   ================================================== */

.we-container {
    position:relative;
    box-sizing:border-box;
    min-width:0;
    justify-self:var(--we-self-justify-desktop,auto);
}

/* Kontener może być całym odnośnikiem po wybraniu znacznika <a>. */
.we-container[href] {
    display:block;
    color:inherit;
    text-decoration:none;
}
.we-container[href]:hover,
.we-container[href]:focus,
.we-container[href]:active {
    color:inherit;
    text-decoration:none;
}

/* Każdy zagnieżdżony Kontener zaczyna od własnych wartości domyślnych.
   Bez resetu zmienne CSS dziedziczyły padding, marginesy i układ po rodzicu. */
:where(.we-container) {
    --we-display-desktop:block;
    --we-display-tablet:block;
    --we-display-mobile:block;
    --we-columns-desktop:1;
    --we-columns-tablet:1;
    --we-columns-mobile:1;
    --we-grid-template-desktop:repeat(var(--we-columns-desktop,1),minmax(0,1fr));
    --we-grid-template-tablet:repeat(var(--we-columns-tablet,1),minmax(0,1fr));
    --we-grid-template-mobile:repeat(var(--we-columns-mobile,1),minmax(0,1fr));
    --we-flex-direction-desktop:row;
    --we-flex-direction-tablet:row;
    --we-flex-direction-mobile:column;
    --we-flex-wrap-desktop:nowrap;
    --we-flex-wrap-tablet:wrap;
    --we-flex-wrap-mobile:wrap;
    --we-justify-desktop:flex-start;
    --we-justify-tablet:flex-start;
    --we-justify-mobile:flex-start;
    --we-align-desktop:stretch;
    --we-align-tablet:stretch;
    --we-align-mobile:stretch;
    --we-content-justify-desktop:var(--we-justify-desktop);
    --we-content-justify-tablet:var(--we-justify-tablet);
    --we-content-justify-mobile:var(--we-justify-mobile);
    --we-content-align-desktop:var(--we-align-desktop);
    --we-content-align-tablet:var(--we-align-tablet);
    --we-content-align-mobile:var(--we-align-mobile);
    --we-content-justify-items-desktop:normal;
    --we-content-justify-items-tablet:normal;
    --we-content-justify-items-mobile:normal;
    --we-content-align-content-desktop:normal;
    --we-content-align-content-tablet:normal;
    --we-content-align-content-mobile:normal;
    --we-gap-desktop:0px;
    --we-gap-tablet:0px;
    --we-gap-mobile:0px;
    --we-row-gap-desktop:0px;
    --we-row-gap-tablet:0px;
    --we-row-gap-mobile:0px;
    --we-column-gap-desktop:0px;
    --we-column-gap-tablet:0px;
    --we-column-gap-mobile:0px;
    --we-padding-desktop:0px 0px 0px 0px;
    --we-padding-tablet:0px 0px 0px 0px;
    --we-padding-mobile:0px 0px 0px 0px;
    --we-margin-desktop:40px 0px 40px 0px;
    --we-margin-tablet:30px 0px 30px 0px;
    --we-margin-mobile:30px 0px 30px 0px;
    --we-self-justify-desktop:auto;
    --we-self-justify-tablet:auto;
    --we-self-justify-mobile:auto;
}

/* Klasa pozostaje wyłącznie w HTML starszych bloków. Od wersji 0.5.3 nie wymusza centrowania. */
.we-container--centered {
}

.we-container--viewport,
.we-container--breakout {
    position:relative;
    left:50%;
    max-width:none !important;
    transform:translateX(-50%);
}

.we-container--viewport {
    width:100vw !important;
    width:100dvw !important;
}

.we-container__inner {
    box-sizing:border-box;
    width:100%;
    height:100%;
    min-width:0;
    min-height:100%;
}

.we-container__inner > * {
    min-width:0;
}

/* ==================================================
   INFO BOX
   ================================================== */

.we-info-box {
    display:flex;
    box-sizing:border-box;
    width:var(--we-info-width,100%);
    max-width:var(--we-info-max-width,none);
    flex-direction:var(--we-info-direction-desktop,var(--we-info-legacy-direction,row));
    justify-content:var(--we-info-justify-desktop,var(--we-info-justify-content,flex-start));
    align-items:var(--we-info-items-desktop,var(--we-info-align-items,normal));
    gap:var(--we-info-gap-desktop,var(--we-info-gap,18px));
    text-align:var(--we-info-text-align-desktop,var(--we-info-legacy-text-align,left));
    margin:var(--we-info-margin,0);
    padding:var(--we-info-padding,5px);
    color:var(--we-info-text-color,inherit);
    background:var(--we-info-bg,transparent);
    border-width:var(--we-info-border-width,0);
    border-style:var(--we-info-border-style,solid);
    border-color:var(--we-info-border-color,#dbe3ef);
    border-radius:var(--we-info-radius,12px);
    box-shadow:var(--we-info-shadow,none);
}

.we-info-box--horizontal {
    --we-info-legacy-direction:row;
}

.we-info-box--horizontal-reverse {
    --we-info-legacy-direction:row-reverse;
}

.we-info-box--vertical {
    --we-info-legacy-direction:column;
}

.we-info-box--align-left {
    --we-info-legacy-text-align:left;
}

.we-info-box--align-center {
    --we-info-legacy-text-align:center;
}

.we-info-box--align-right {
    --we-info-legacy-text-align:right;
}

.we-info-box__icon {
    display:flex;
    box-sizing:border-box;
    flex:0 0 var(--we-icon-box-size,56px);
    align-items:center;
    justify-content:center;
    width:var(--we-icon-box-size,56px);
    height:var(--we-info-icon-height-desktop,var(--we-icon-box-size,56px));
    min-height:var(--we-icon-box-size,56px);
    align-self:var(--we-info-icon-self-desktop,auto);
    color:var(--we-icon-color,#146ef5);
    background:var(--we-icon-bg,#eaf2ff);
    border-width:var(--we-icon-border-width,1px);
    border-style:var(--we-icon-border-style,none);
    border-color:var(--we-icon-border-color,#dbe3ef);
    border-radius:var(--we-icon-radius,50%);
}

.we-icon-svg {
    display:block;
    flex:0 0 auto;
    width:1em;
    height:1em;
    overflow:visible;
}

.we-info-box__icon .we-icon-svg {
    width:var(--we-icon-size,28px);
    height:var(--we-icon-size,28px);
}

.we-info-box__icon-image {
    display:block;
    width:var(--we-icon-size,28px);
    height:var(--we-icon-size,28px);
    object-fit:contain;
}

.we-info-box__content {
    flex:1 1 auto;
    min-width:0;
}

.we-info-box__text {
    min-width:0;
}

.we-info-box__link-wrap {
    display:flex;
    box-sizing:border-box;
    margin-top:var(--we-info-link-margin-top,14px);
}

.we-info-box--link-below-left .we-info-box__link-wrap {
    justify-content:flex-start;
}

.we-info-box--link-below-center .we-info-box__link-wrap {
    justify-content:center;
}

.we-info-box--link-below-right .we-info-box__link-wrap {
    justify-content:flex-end;
}

.we-info-box--link-side-left .we-info-box__content,
.we-info-box--link-side-right .we-info-box__content {
    display:flex;
    align-items:center;
    gap:var(--we-info-link-layout-gap,24px);
}

.we-info-box--link-side-left .we-info-box__text,
.we-info-box--link-side-right .we-info-box__text {
    flex:1 1 auto;
}

.we-info-box--link-side-left .we-info-box__link-wrap,
.we-info-box--link-side-right .we-info-box__link-wrap {
    flex:0 0 auto;
    margin-top:0;
}

.we-info-box--link-side-left .we-info-box__link-wrap {
    order:-1;
}

.we-info-box__title {
    margin:0 0 var(--we-info-title-margin-bottom,8px);
    color:var(--we-info-title-color,inherit);
    font-family:var(--we-info-title-font-family,inherit);
    font-size:var(--we-info-title-font-size,inherit);
    font-weight:var(--we-info-title-font-weight,inherit);
    line-height:var(--we-info-title-line-height,inherit);
    letter-spacing:var(--we-info-title-letter-spacing,normal);
    text-transform:var(--we-info-title-text-transform,none);
}

/* Motywy, np. Astra, nie mogą nadpisywać odstępu ustawionego dla tytułu Info Boxa. */
.entry-content .we-info-box .we-info-box__title,
.editor-styles-wrapper .we-info-box .we-info-box__title {
    margin-top:0 !important;
    margin-right:0 !important;
    margin-bottom:var(--we-info-title-margin-bottom,8px) !important;
    margin-left:0 !important;
}

.we-info-box__description {
    margin-bottom:var(--we-info-text-margin-bottom,0);
    color:var(--we-info-text-color,inherit);
    font-family:var(--we-info-text-font-family,inherit);
    font-size:var(--we-info-text-font-size,inherit);
    font-weight:var(--we-info-text-font-weight,inherit);
    line-height:var(--we-info-text-line-height,inherit);
    letter-spacing:var(--we-info-text-letter-spacing,normal);
    text-transform:var(--we-info-text-text-transform,none);
}

.we-info-box__description > :first-child {
    margin-top:0;
}

.we-info-box__description > :last-child {
    margin-bottom:0;
}

.we-info-box__link {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:var(--we-info-link-icon-gap,8px);
    color:var(--we-info-link-color,#146ef5);
    font-family:var(--we-info-link-font-family,inherit);
    font-size:var(--we-info-link-font-size,inherit);
    font-weight:var(--we-info-link-font-weight,700);
    line-height:var(--we-info-link-line-height,inherit);
    letter-spacing:var(--we-info-link-letter-spacing,normal);
    text-transform:var(--we-info-link-text-transform,none);
    text-decoration:none;
}

.we-info-box__link-icon {
    display:block;
    flex:0 0 auto;
    width:var(--we-info-link-icon-size,14px);
    height:var(--we-info-link-icon-size,14px);
}

.we-info-box__link--button {
    padding:var(--we-info-link-button-padding-y,12px) var(--we-info-link-button-padding-x,20px);
    color:var(--we-info-link-button-color,#fff);
    background:var(--we-info-link-button-bg,#146ef5);
    border-radius:var(--we-info-link-button-radius,6px);
}

.entry-content .we-info-box .we-info-box__link--button,
.editor-styles-wrapper .we-info-box .we-info-box__link--button {
    color:var(--we-info-link-button-color,#fff);
    background:var(--we-info-link-button-bg,#146ef5);
    text-decoration:none;
}

.we-info-box__link:hover,
.we-info-box__link:focus {
    text-decoration:underline;
}

.we-info-box__link--button:hover,
.we-info-box__link--button:focus,
.entry-content .we-info-box .we-info-box__link--button:hover,
.entry-content .we-info-box .we-info-box__link--button:focus,
.editor-styles-wrapper .we-info-box .we-info-box__link--button:hover,
.editor-styles-wrapper .we-info-box .we-info-box__link--button:focus {
    color:var(--we-info-link-button-color,#fff);
    text-decoration:none;
}

/* ==================================================
   PRZYCISKI
   ================================================== */

.we-buttons {
    display:flex;
    width:100%;
    min-width:0;
}

.we-buttons__inner {
    display:flex;
    flex:1 1 auto;
    flex-wrap:var(--we-buttons-wrap,wrap);
    width:100%;
    height:100%;
    min-width:0;
}

.we-button-block {
    display:flex;
}

.we-button {
    display:inline-flex;
    box-sizing:border-box;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-height:42px;
    color:var(--we-button-color,#fff);
    font-weight:700;
    line-height:1.2;
    text-align:center;
    text-decoration:none;
    background:var(--we-button-bg,#146ef5);
    border:1px solid var(--we-button-border-color,#146ef5);
    border-radius:var(--we-button-radius,8px);
    cursor:pointer;
    transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}

.we-button:hover,
.we-button:focus {
    color:var(--we-button-hover-color,#fff);
    text-decoration:none;
    background:var(--we-button-hover-bg,#0b56c7);
}

/*
 * Keep colours set in the Button block stronger than generic container
 * typography helpers such as `.black-fonts span` / `.black-fonts a`.
 * The duplicated class intentionally raises specificity without !important.
 */
.we-button.we-button {
    color:var(--we-button-color,#fff);
}

.we-button.we-button.we-button--secondary,
.we-button.we-button.we-button--outline,
.we-button.we-button.we-button--link {
    color:var(--we-button-color,#146ef5);
}

.we-button.we-button:hover,
.we-button.we-button:focus {
    color:var(--we-button-hover-color,#fff);
}

.we-button.we-button.we-button--link:hover,
.we-button.we-button.we-button--link:focus {
    color:var(--we-button-hover-color,#0b56c7);
}

.we-button.we-button .we-button__text,
.we-button.we-button .we-button__icon {
    color:inherit;
}

.we-button:active {
    transform:translateY(1px);
}

.we-button--small {
    min-height:36px;
    padding:var(--we-button-padding-desktop,8px 14px);
    font-size:14px;
}

.we-button--medium {
    padding:var(--we-button-padding-desktop,11px 20px);
    font-size:16px;
}

.we-button--large {
    min-height:50px;
    padding:var(--we-button-padding-desktop,14px 28px);
    font-size:18px;
}

.we-button--full {
    width:100%;
}

.we-button--secondary {
    color:var(--we-button-color,#146ef5);
    background:var(--we-button-bg,#eaf2ff);
}

.we-button--outline {
    color:var(--we-button-color,#146ef5);
    background:transparent;
}

.we-button--link {
    min-height:0;
    padding:var(--we-button-padding-desktop,0);
    color:var(--we-button-color,#146ef5);
    background:transparent;
    border-color:transparent;
    border-radius:0;
}

.we-button--link:hover,
.we-button--link:focus {
    color:var(--we-button-hover-color,#0b56c7);
    background:transparent;
    text-decoration:underline;
}

.we-button__icon {
    width:1em;
    height:1em;
}

/* ==================================================
   FAQ
   ================================================== */

.we-faq {
    display:flex;
    flex-direction:column;
    gap:var(--we-faq-gap,12px);
}

.we-faq__item {
    overflow:hidden;
    background:var(--we-faq-answer-bg,#fff);
    border:var(--we-faq-border-width,1px) var(--we-faq-border-style,solid) var(--we-faq-border-color,#dbe3ef);
    border-radius:var(--we-faq-radius,10px);
}

.we-faq__question {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:18px 20px;
    color:var(--we-faq-question-color,#101828);
    font-weight:700;
    background:var(--we-faq-question-bg,#fff);
    cursor:pointer;
    list-style:none;
}

.we-faq__question::-webkit-details-marker {
    display:none;
}

.we-faq__question > span:first-child {
    min-width:0;
}

.we-faq__toggle {
    display:flex;
    flex:0 0 var(--we-faq-icon-size,18px);
    align-items:center;
    justify-content:center;
    width:var(--we-faq-icon-size,18px);
    height:var(--we-faq-icon-size,18px);
    color:var(--we-faq-icon-color,#146ef5);
}

.we-faq__toggle-svg {
    display:block;
    width:100%;
    height:100%;
}

.we-faq__toggle--open {
    display:none;
}

.we-faq__item[open] .we-faq__toggle--closed,
.we-faq__item.is-open .we-faq__toggle--closed {
    display:none;
}

.we-faq__item[open] .we-faq__toggle--open,
.we-faq__item.is-open .we-faq__toggle--open {
    display:flex;
}

.we-faq__answer {
    padding:0 20px 20px;
    color:var(--we-faq-answer-color,#475467);
    background:var(--we-faq-answer-bg,#fff);
}

.we-faq__answer > :first-child {
    margin-top:0;
}

.we-faq__answer > :last-child {
    margin-bottom:0;
}

/* ==================================================
   KONTENER – DOMYŚLNE WARTOŚCI DLA GENEROWANEGO CSS
   ================================================== */

.we-container {
    width:100%;
    max-width:none;
    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;
    border-style:none;
    border-width:0;
    border-color:#dbe3ef;
    border-radius:0;
    overflow:visible;
}


/* ==================================================
   GALERIA MOZAIKOWA
   ================================================== */

.we-mosaic-gallery {
    display:block;
    box-sizing:border-box;
    width:100%;
}

.we-mosaic-gallery__group {
    display:grid;
    box-sizing:border-box;
    grid-template-columns:repeat(12,minmax(0,1fr));
    grid-auto-flow:dense;
    gap:var(--we-mosaic-gap-y,14px) var(--we-mosaic-gap-x,14px);
    margin:0 0 var(--we-mosaic-gap-y,14px);
}

.we-mosaic-gallery__group:last-child {
    margin-bottom:0;
}

/* Pełny zestaw dziesięciu zdjęć odtwarza układ ze wzoru. */
.we-mosaic-gallery__group--complete {
    grid-template-rows:repeat(10,var(--we-mosaic-row-height,78px));
}

.we-mosaic-gallery__group--complete > :nth-child(1) { grid-column:1 / 7; grid-row:1 / 5; }
.we-mosaic-gallery__group--complete > :nth-child(2) { grid-column:7 / 10; grid-row:1 / 5; }
.we-mosaic-gallery__group--complete > :nth-child(3) { grid-column:10 / 13; grid-row:1 / 3; }
.we-mosaic-gallery__group--complete > :nth-child(4) { grid-column:10 / 13; grid-row:3 / 5; }
.we-mosaic-gallery__group--complete > :nth-child(5) { grid-column:1 / 4; grid-row:5 / 8; }
.we-mosaic-gallery__group--complete > :nth-child(6) { grid-column:4 / 10; grid-row:5 / 8; }
.we-mosaic-gallery__group--complete > :nth-child(7) { grid-column:10 / 13; grid-row:5 / 8; }
.we-mosaic-gallery__group--complete > :nth-child(8) { grid-column:1 / 4; grid-row:8 / 11; }
.we-mosaic-gallery__group--complete > :nth-child(9) { grid-column:4 / 10; grid-row:8 / 11; }
.we-mosaic-gallery__group--complete > :nth-child(10) { grid-column:10 / 13; grid-row:8 / 11; }

/* Niepełny zestaw wypełnia przestrzeń bez pustych bloków. */
.we-mosaic-gallery__group--partial {
    grid-auto-rows:var(--we-mosaic-row-height,78px);
}

.we-mosaic-gallery__group--partial > * {
    grid-column:span 4;
    grid-row:span 2;
}

.we-mosaic-gallery__group--partial > :nth-child(1) {
    grid-column:span 8;
    grid-row:span 4;
}

.we-mosaic-gallery__group--partial > :nth-child(2) {
    grid-column:span 4;
    grid-row:span 4;
}

.we-mosaic-gallery__item {
    position:relative;
    min-width:0;
    min-height:0;
    margin:0 !important;
    overflow:hidden;
    background:#eef2f6;
    border-radius:var(--we-mosaic-radius,14px);
}

.we-mosaic-gallery__link,
.we-mosaic-gallery__item > img {
    display:block;
    width:100%;
    height:100%;
}

.we-mosaic-gallery__image {
    display:block;
    width:100%;
    height:100%;
    object-fit:var(--we-mosaic-object-fit,cover);
    transition:transform .35s ease;
}

.we-mosaic-gallery__link:hover .we-mosaic-gallery__image,
.we-mosaic-gallery__link:focus-visible .we-mosaic-gallery__image {
    transform:scale(1.025);
}

.we-mosaic-gallery__caption {
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    margin:0;
    padding:28px 14px 10px;
    color:#fff;
    font-size:13px;
    line-height:1.35;
    background:linear-gradient(transparent,rgba(0,0,0,.68));
    pointer-events:none;
}

@media (max-width:1024px) {
    .we-mosaic-gallery__group,
    .we-mosaic-gallery__group--complete,
    .we-mosaic-gallery__group--partial {
        grid-template-columns:repeat(2,minmax(0,1fr));
        grid-template-rows:none;
        grid-auto-rows:var(--we-mosaic-tablet-height,220px);
    }

    .we-mosaic-gallery__group > * {
        grid-column:span 1 !important;
        grid-row:span 1 !important;
    }

    .we-mosaic-gallery__group > :nth-child(1),
    .we-mosaic-gallery__group > :nth-child(6),
    .we-mosaic-gallery__group > :nth-child(9) {
        grid-column:span 2 !important;
    }
}

@media (max-width:600px) {
    .we-mosaic-gallery__group,
    .we-mosaic-gallery__group--complete,
    .we-mosaic-gallery__group--partial {
        grid-template-columns:1fr;
        grid-auto-rows:var(--we-mosaic-mobile-height,240px);
        gap:var(--we-mosaic-gap-y,14px) var(--we-mosaic-gap-x,14px);
    }

    .we-mosaic-gallery__group > * {
        grid-column:1 !important;
        grid-row:span 1 !important;
    }
}


/* Szybki wariant dla standardowego bloku Galeria WordPressa. */
.wp-block-gallery.is-style-we-mosaic {
    display:grid !important;
    grid-template-columns:repeat(12,minmax(0,1fr)) !important;
    grid-template-rows:repeat(10,78px);
    grid-auto-flow:dense;
    gap:14px !important;
    align-items:stretch;
}

.wp-block-gallery.is-style-we-mosaic > figure.wp-block-image {
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    overflow:hidden;
    border-radius:14px;
}

.wp-block-gallery.is-style-we-mosaic > figure.wp-block-image img {
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
}

.wp-block-gallery.is-style-we-mosaic > :nth-child(1) { grid-column:1 / 7; grid-row:1 / 5; }
.wp-block-gallery.is-style-we-mosaic > :nth-child(2) { grid-column:7 / 10; grid-row:1 / 5; }
.wp-block-gallery.is-style-we-mosaic > :nth-child(3) { grid-column:10 / 13; grid-row:1 / 3; }
.wp-block-gallery.is-style-we-mosaic > :nth-child(4) { grid-column:10 / 13; grid-row:3 / 5; }
.wp-block-gallery.is-style-we-mosaic > :nth-child(5) { grid-column:1 / 4; grid-row:5 / 8; }
.wp-block-gallery.is-style-we-mosaic > :nth-child(6) { grid-column:4 / 10; grid-row:5 / 8; }
.wp-block-gallery.is-style-we-mosaic > :nth-child(7) { grid-column:10 / 13; grid-row:5 / 8; }
.wp-block-gallery.is-style-we-mosaic > :nth-child(8) { grid-column:1 / 4; grid-row:8 / 11; }
.wp-block-gallery.is-style-we-mosaic > :nth-child(9) { grid-column:4 / 10; grid-row:8 / 11; }
.wp-block-gallery.is-style-we-mosaic > :nth-child(10) { grid-column:10 / 13; grid-row:8 / 11; }

@media (max-width:1024px) {
    .wp-block-gallery.is-style-we-mosaic {
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        grid-template-rows:none;
        grid-auto-rows:220px;
    }
    .wp-block-gallery.is-style-we-mosaic > figure.wp-block-image {
        grid-column:span 1 !important;
        grid-row:span 1 !important;
    }
    .wp-block-gallery.is-style-we-mosaic > :nth-child(1),
    .wp-block-gallery.is-style-we-mosaic > :nth-child(6),
    .wp-block-gallery.is-style-we-mosaic > :nth-child(9) {
        grid-column:span 2 !important;
    }
}

@media (max-width:600px) {
    .wp-block-gallery.is-style-we-mosaic {
        grid-template-columns:1fr !important;
        grid-auto-rows:240px;
        gap:10px !important;
    }
    .wp-block-gallery.is-style-we-mosaic > figure.wp-block-image {
        grid-column:1 !important;
        grid-row:span 1 !important;
    }
}

/* Lightbox */
.we-mosaic-lightbox {
    position:fixed;
    inset:0;
    z-index:100000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:32px 78px;
    background:rgba(2,8,23,.94);
    backdrop-filter:blur(7px);
}

.we-mosaic-lightbox.is-open {
    display:flex;
}

.we-mosaic-lightbox-open {
    overflow:hidden;
}

.we-mosaic-lightbox__figure {
    max-width:min(1320px,92vw);
    max-height:88vh;
    margin:0;
    text-align:center;
}

.we-mosaic-lightbox__image {
    display:block;
    max-width:100%;
    max-height:82vh;
    margin:auto;
    object-fit:contain;
    border-radius:10px;
    box-shadow:0 24px 80px rgba(0,0,0,.45);
}

.we-mosaic-lightbox__caption {
    margin-top:10px;
    color:#fff;
    font-size:14px;
}

.we-mosaic-lightbox__close,
.we-mosaic-lightbox__nav {
    position:absolute;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    color:#fff;
    background:rgba(255,255,255,.09);
    border:1px solid rgba(255,255,255,.22);
    cursor:pointer;
}

.we-mosaic-lightbox__close:hover,
.we-mosaic-lightbox__nav:hover,
.we-mosaic-lightbox__close:focus-visible,
.we-mosaic-lightbox__nav:focus-visible {
    background:rgba(20,110,245,.75);
    outline:2px solid #fff;
    outline-offset:2px;
}

.we-mosaic-lightbox__close {
    top:20px;
    right:20px;
    width:44px;
    height:44px;
    border-radius:50%;
    font-size:30px;
    line-height:1;
}

.we-mosaic-lightbox__nav {
    top:50%;
    width:48px;
    height:64px;
    border-radius:10px;
    font-size:42px;
    transform:translateY(-50%);
}

.we-mosaic-lightbox__nav--prev { left:20px; }
.we-mosaic-lightbox__nav--next { right:20px; }

@media (max-width:700px) {
    .we-mosaic-lightbox { padding:64px 14px 24px; }
    .we-mosaic-lightbox__nav { top:auto; bottom:14px; width:48px; height:48px; transform:none; }
    .we-mosaic-lightbox__nav--prev { left:calc(50% - 58px); }
    .we-mosaic-lightbox__nav--next { right:calc(50% - 58px); }
    .we-mosaic-lightbox__image { max-height:72vh; }
}
