/* Layout exists before images or JavaScript load. Core column choices are retained. */
.main-article-content :is(.gallery, .wp-block-gallery) {
    --kn-gallery-columns: 3;
    display: grid !important;
    grid-template-columns: repeat(var(--kn-gallery-columns), minmax(0, 1fr)) !important;
    grid-auto-rows: auto !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 2rem 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
    clear: both;
}
.main-article-content :is(.gallery-columns-1, .wp-block-gallery.columns-1) { --kn-gallery-columns: 1; }
.main-article-content :is(.gallery-columns-2, .wp-block-gallery.columns-2) { --kn-gallery-columns: 2; }
.main-article-content :is(.gallery-columns-3, .wp-block-gallery.columns-3) { --kn-gallery-columns: 3; }
.main-article-content :is(.gallery-columns-4, .wp-block-gallery.columns-4) { --kn-gallery-columns: 4; }
.main-article-content :is(.gallery-columns-5, .wp-block-gallery.columns-5) { --kn-gallery-columns: 5; }
.main-article-content :is(.gallery-columns-6, .wp-block-gallery.columns-6) { --kn-gallery-columns: 6; }
.main-article-content :is(.gallery-columns-7, .wp-block-gallery.columns-7) { --kn-gallery-columns: 7; }
.main-article-content :is(.gallery-columns-8, .wp-block-gallery.columns-8) { --kn-gallery-columns: 8; }
.main-article-content :is(.gallery-columns-9, .wp-block-gallery.columns-9) { --kn-gallery-columns: 9; }

.main-article-content :is(.gallery, .wp-block-gallery) > br { display: none; }
.main-article-content :is(.gallery-item, .wp-block-gallery > .wp-block-image, .blocks-gallery-item) {
    display: block !important;
    float: none !important;
    grid-column: auto !important;
    grid-row: auto !important;
    min-width: 0;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative;
}
.main-article-content .wp-block-gallery > .blocks-gallery-grid {
    display: contents;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}
.main-article-content :is(.gallery-icon, .blocks-gallery-item > figure) { margin: 0; }
.main-article-content :is(.gallery-icon > a, .wp-block-gallery .wp-block-image > a, .blocks-gallery-item figure > a) {
    display: block;
    width: 100%;
}
.main-article-content :is(.gallery, .wp-block-gallery) img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3;
    object-fit: cover !important;
    border: 0;
    border-radius: 10px !important;
    margin: 0 !important;
    transform: none !important;
    transition: none !important;
    cursor: zoom-in;
}
.main-article-content .wp-block-gallery:not(.is-cropped) img { object-fit: contain !important; }
.main-article-content :is(.gallery-caption, .wp-block-gallery figcaption) {
    position: static !important;
    grid-column: 1 / -1;
    width: auto !important;
    max-height: none !important;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    color: #555 !important;
    background: none !important;
    font-size: 12px;
    line-height: 1.8;
    text-align: center;
    overflow-wrap: anywhere;
}
.main-article-content :is(.gallery, .wp-block-gallery) :focus-visible,
.kn-gallery-viewer button:focus-visible { outline: 3px solid #00a754; outline-offset: 3px; }
@media (max-width: 1023px) {
    .main-article-content :is(.gallery, .wp-block-gallery) {
        grid-template-columns: repeat(min(3, var(--kn-gallery-columns)), minmax(0, 1fr)) !important;
    }
}
@media (max-width: 639px) {
    .main-article-content :is(.gallery, .wp-block-gallery) {
        grid-template-columns: repeat(min(2, var(--kn-gallery-columns)), minmax(0, 1fr)) !important;
    }
}
.kn-gallery-viewer {
    width: 100vw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    margin: 0;
    border: 0;
    padding: 64px 16px 24px;
    box-sizing: border-box;
    color: white;
    background: #101720;
}
.kn-gallery-viewer::backdrop { background: rgb(0 0 0 / 85%); }
.kn-gallery-viewer[open] { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.kn-gallery-viewer img { flex: 1; min-height: 0; width: 100%; object-fit: contain; }
.kn-gallery-viewer button { border: 1px solid #666; border-radius: 8px; padding: 10px 16px; background: #263241; color: white; cursor: pointer; font: inherit; }
.kn-gallery-close { position: absolute; top: 12px; right: 16px; }
.kn-gallery-controls { display: flex; align-items: center; gap: 20px; direction: rtl; }
.kn-gallery-status { margin: 0; text-align: center; }
