/* Mood Indovina Ronsisvalle 1.3.5 — editorial gallery layout.
 * Only galleries inside article/page content are affected, not product galleries.
 * The column count is saved by WordPress, not inferred from the image size.
 */
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery, .wp-block-gallery) {
    --mir-gallery-columns: 3;
    --mir-gallery-gap: clamp(12px, 2vw, 22px);
    display: grid;
    grid-template-columns: repeat(var(--mir-gallery-columns), minmax(0, 1fr));
    gap: var(--wp--style--block-gap, var(--mir-gallery-gap));
    align-items: start;
    clear: both;
    width: 100%;
    max-width: 100%;
    margin: 30px 0;
    padding: 0;
    list-style: none;
}
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery-columns-1, .wp-block-gallery.columns-1) { --mir-gallery-columns: 1; }
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery-columns-2, .wp-block-gallery.columns-2) { --mir-gallery-columns: 2; }
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery-columns-3, .wp-block-gallery.columns-3) { --mir-gallery-columns: 3; }
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery-columns-4, .wp-block-gallery.columns-4) { --mir-gallery-columns: 4; }
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery-columns-5, .wp-block-gallery.columns-5) { --mir-gallery-columns: 5; }
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery-columns-6, .wp-block-gallery.columns-6) { --mir-gallery-columns: 6; }
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery-columns-7, .wp-block-gallery.columns-7) { --mir-gallery-columns: 7; }
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery-columns-8, .wp-block-gallery.columns-8) { --mir-gallery-columns: 8; }
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery-columns-9, .wp-block-gallery.columns-9) { --mir-gallery-columns: 9; }
/* Classic HTML5 figure and older dl markup. Hide only core row separators. */
:is(.mir-article-content, .mir-page, .mir-richtext) .gallery > :is(.gallery-item, figure, dl) {
    float: none !important;
    clear: none;
    width: auto !important;
    max-width: none;
    min-width: 0;
    margin: 0 !important;
    padding: 0;
    text-align: left;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .gallery > br { display: none; }
:is(.mir-article-content, .mir-page, .mir-richtext) .gallery .gallery-icon {
    margin: 0;
    padding: 0;
    min-width: 0;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .gallery .gallery-icon a {
    display: block;
    margin: 0;
    border: 0;
    text-decoration: none;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .gallery .gallery-icon img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
    border: 0;
    border-radius: var(--radius, 4px);
    object-fit: contain;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .gallery .gallery-caption {
    display: block;
    margin: 10px 0 0;
    padding: 0;
    color: inherit;
    font-size: 13px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}
/* Block galleries: modern nested figures and the pre-5.9 ul wrapper. */
:is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery.has-nested-images {
    display: grid;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery.has-nested-images > .wp-block-image {
    width: auto !important;
    max-width: none;
    min-width: 0;
    margin: 0 !important;
    flex: none;
}
:is(.mir-article-content, .mir-page, .mir-richtext) figure.wp-block-gallery:not(.has-nested-images) {
    display: block;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery .blocks-gallery-grid {
    display: grid;
    grid-template-columns: repeat(var(--mir-gallery-columns), minmax(0, 1fr));
    gap: var(--wp--style--block-gap, var(--mir-gallery-gap));
    align-items: start;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery .blocks-gallery-item {
    width: auto !important;
    min-width: 0;
    max-width: none;
    margin: 0 !important;
    flex: none;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery .blocks-gallery-item > figure {
    margin: 0;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery :is(.wp-block-image, .blocks-gallery-item) img {
    display: block;
    max-width: 100%;
    border-radius: var(--radius, 4px);
}
:is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery:not(.is-cropped) :is(.wp-block-image, .blocks-gallery-item) img {
    width: 100%;
    height: auto;
    object-fit: contain;
}
:is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery > :is(figcaption, .blocks-gallery-caption) {
    grid-column: 1 / -1;
    width: 100%;
    margin: 10px 0 0;
}
:is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery, .wp-block-gallery) a:focus-visible {
    outline: 3px solid var(--accent, #975940);
    outline-offset: 4px;
}
/* Never increase a one-column gallery on a smaller screen. */
@media (max-width: 900px) {
    :is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery, .wp-block-gallery) {
        grid-template-columns: repeat(min(2, var(--mir-gallery-columns)), minmax(0, 1fr));
    }
    :is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery .blocks-gallery-grid {
        grid-template-columns: repeat(min(2, var(--mir-gallery-columns)), minmax(0, 1fr));
    }
}
@media (max-width: 600px) {
    :is(.mir-article-content, .mir-page, .mir-richtext) :is(.gallery, .wp-block-gallery),
    :is(.mir-article-content, .mir-page, .mir-richtext) .wp-block-gallery .blocks-gallery-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
/* Full-viewport viewer; loaded locally, no dependencies or external resources. */
body.mir-gallery-open { overflow: hidden; }
dialog.mir-gallery-dialog {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    height: 100dvh;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: #fff;
    background: #0c100e;
    font-family: var(--body, Arial, sans-serif);
    font-size: 15px;
    line-height: 1.5;
    overscroll-behavior: contain;
}
dialog.mir-gallery-dialog:not([open]) { display: none; }
dialog.mir-gallery-dialog[open] { display: flex; flex-direction: column; }
dialog.mir-gallery-dialog::backdrop { background: rgba(0, 0, 0, .6); }
.mir-gallery-dialog .mir-gallery-toolbar {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 16px;
    padding: max(12px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left));
    border-bottom: 1px solid #ffffff36;
}
.mir-gallery-dialog .mir-gallery-tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.mir-gallery-dialog :is(button, .mir-gallery-original) {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-width: 44px;
    min-height: 44px;
    padding: 9px 14px;
    border: 1px solid #ffffff65;
    border-radius: 4px;
    background: #1f2724;
    color: #fff;
    text-decoration: none;
    font: 600 14px/1.3 var(--body, Arial, sans-serif);
    letter-spacing: 0;
    white-space: normal;
    cursor: pointer;
    box-shadow: none;
}
.mir-gallery-dialog :is(button, .mir-gallery-original):hover { background: #35433c; }
.mir-gallery-dialog :is(button, a):focus-visible { outline: 3px solid #f4d6ac; outline-offset: 3px; }
.mir-gallery-dialog button:disabled { opacity: .45; cursor: default; }
.mir-gallery-dialog .mir-gallery-close { background: #faf7ef; color: #16281f; border-color: #faf7ef; }
.mir-gallery-dialog .mir-gallery-close:hover { background: #e2d7c2; }
.mir-gallery-dialog .mir-gallery-body {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 48px;
    gap: 12px;
    align-items: center;
    flex: 1;
    min-height: 0;
    padding: 18px;
}
.mir-gallery-dialog .mir-gallery-stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    touch-action: pan-y pinch-zoom;
    overscroll-behavior: contain;
}
.mir-gallery-dialog .mir-gallery-stage img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    margin: auto;
    border: 0;
    border-radius: 0;
    object-fit: contain;
}
.mir-gallery-dialog.is-zoomed .mir-gallery-stage {
    display: block;
    overflow: auto;
    touch-action: auto;
}
.mir-gallery-dialog.is-zoomed .mir-gallery-stage img {
    max-width: none;
    max-height: none;
    margin: 0 auto;
    object-fit: initial;
}
.mir-gallery-dialog .mir-gallery-status { padding: 24px; margin: auto; text-align: center; }
.mir-gallery-dialog .mir-gallery-arrow { padding: 8px; font-size: 28px; }
.mir-gallery-dialog .mir-gallery-caption {
    flex-shrink: 0;
    max-height: 20vh;
    overflow: auto;
    padding: 10px max(22px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));
    margin: 0;
    color: #fff;
    font-size: 14px;
    text-align: center;
    overflow-wrap: anywhere;
}
.mir-gallery-dialog .mir-gallery-caption:empty { padding-top: 0; padding-bottom: 10px; }
.mir-gallery-dialog .mir-gallery-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
@media (max-width: 600px) {
    .mir-gallery-dialog .mir-gallery-toolbar { padding-inline: 10px; gap: 6px; }
    .mir-gallery-dialog .mir-gallery-tools { gap: 6px; }
    .mir-gallery-dialog :is(button, .mir-gallery-original) { font-size: 12px; padding-inline: 9px; }
    .mir-gallery-dialog .mir-gallery-body { grid-template-columns: 44px minmax(0, 1fr) 44px; gap: 4px; padding: 10px 4px; }
    .mir-gallery-dialog .mir-gallery-caption { font-size: 13px; }
}
@media print {
    dialog.mir-gallery-dialog { display: none !important; }
    body.mir-gallery-open { overflow: visible; }
}
