.ng {
    width:100%;
    min-width:0;
    container-type:inline-size;
    --ng-cols:3;
    --ng-gap:16px;
    color:inherit
}
.ng * {
    box-sizing:border-box
}
.ng-grid {
    display:grid;
    grid-template-columns:repeat(var(--ng-cols),minmax(0,1fr));
    gap:var(--ng-gap);
    align-items:start
}
.ng-item {
    margin:0;
    min-width:0;
    position:relative
}
.ng-item[hidden],.ng [hidden],.ng-viewer [hidden] {
    display:none!important
}
.ng-image {
    display:block;
    width:100%;
    overflow:hidden;
    border-radius:var(--site-radius,6px)
}
.ng-image img {
    display:block;
    width:100%;
    height:100%;
    aspect-ratio:4/3;
    object-fit:cover
}
.ng-ratio-auto .ng-image img {
    aspect-ratio:auto;
    height:auto
}
.ng-ratio-square .ng-image img {
    aspect-ratio:1
}
.ng-ratio-portrait .ng-image img {
    aspect-ratio:3/4
}
.ng-ratio-wide .ng-image img {
    aspect-ratio:16/9
}
.ng-fit-contain .ng-image img {
    object-fit:contain
}
.ng-item figcaption {
    display:grid;
    gap:4px;
    padding:12px 0;
    font-size:14px;
    line-height:1.5;
    overflow-wrap:anywhere
}
.ng-item figcaption a {
    font-weight:600
}
.ng-captions-hidden figcaption {
    display:none
}
.ng-captions-overlay .ng-item figcaption {
    position:absolute;
    inset:auto 0 0;
    padding:32px 14px 14px;
    background:linear-gradient(transparent,#071c32ed);
    color:#fff;
    pointer-events:none
}
.ng-captions-overlay .ng-item figcaption a {
    pointer-events:auto;
    color:#fff
}
.ng-filters,.ng-controls {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    flex-wrap:wrap;
    margin:0 0 18px
}
.ng-controls {
    margin:18px 0 0
}
.ng button {
    font:inherit;
    min-height:44px;
    padding:9px 14px;
    border:1px solid currentColor;
    border-radius:6px;
    background:transparent;
    color:inherit;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px
}
.ng-filters [aria-pressed=true] {
    background:var(--template-primary,#123c5a);
    color:var(--template-on-primary,#fff);
    border-color:transparent
}
.ng a:focus-visible,.ng button:focus-visible,.ng-viewer button:focus-visible {
    outline:3px solid var(--template-accent,#b94e22);
    outline-offset:3px
}
.ng-masonry .ng-grid {
    display:block;
    columns:var(--ng-cols);
    column-gap:var(--ng-gap)
}
.ng-masonry .ng-item {
    break-inside:avoid;
    margin-bottom:var(--ng-gap)
}
.ng-masonry .ng-image img {
    aspect-ratio:auto;
    height:auto
}
.ng-justified .ng-grid {
    display:flex;
    flex-wrap:wrap
}
.ng-justified .ng-item {
    flex:1 1 240px;
    min-width:0;
    max-width:100%
}
.ng-justified .ng-image {
    height:220px
}
.ng-justified .ng-image img {
    height:100%;
    aspect-ratio:auto
}
.ng-mosaic .ng-grid {
    grid-template-columns:repeat(12,minmax(0,1fr));
    grid-auto-rows:minmax(120px,auto);
    align-items:stretch
}
.ng-mosaic .ng-item {
    grid-column:span 4;
    display:flex;
    flex-direction:column
}
.ng-mosaic .ng-item:nth-child(6n+1) {
    grid-column:span 8;
    grid-row:span 2
}
.ng-mosaic .ng-image {
    flex:1;
    min-height:120px
}
.ng-mosaic .ng-image img {
    height:100%;
    aspect-ratio:4/3
}
.ng-carousel .ng-grid {
    grid-auto-flow:column;
    grid-template-columns:none;
    grid-auto-columns:calc((100% - (var(--ng-cols) - 1)*var(--ng-gap))/var(--ng-cols));
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    align-items:start;
    padding-bottom:8px
}
.ng-carousel .ng-item {
    scroll-snap-align:start
}
.ng-thumbnails.ng-ready .ng-grid {
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:90px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    margin-top:12px
}
.ng-thumbnails.ng-ready .ng-item figcaption {
    display:none
}
.ng-thumbnails.ng-ready .ng-image {
    border:3px solid transparent;
    padding:2px
}
.ng-thumbnails.ng-ready .ng-image[aria-current=true] {
    border-color:var(--template-accent,#b94e22)
}
.ng-thumbnails.ng-ready .ng-image img {
    aspect-ratio:4/3;
    height:auto
}
.ng-stage {
    text-align:center;
    background:var(--template-background,#f4f6f8);
    border-radius:6px;
    overflow:hidden
}
.ng-stage button {
    display:block;
    width:100%;
    padding:0;
    border:0
}
.ng-stage img {
    display:block;
    width:100%;
    height:min(60vh,560px);
    object-fit:contain
}
.ng-stage p {
    margin:0;
    padding:12px
}
.ng-empty {
    text-align:center;
    padding:24px
}
.ng-viewer {
    width:100vw;
    height:100dvh;
    max-width:none;
    max-height:none;
    margin:0;
    border:0;
    background:#071523f5;
    color:#fff;
    padding:16px;
    overflow:auto
}
.ng-viewer::backdrop {
    background:#071523ed
}
.ng-viewer-toolbar {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    position:sticky;
    top:0;
    z-index:2;
    background:#071523e8;
    padding:8px;
    border-radius:8px
}
.ng-viewer button {
    min-width:44px;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px;
    border:1px solid #ffffff70;
    color:#fff;
    background:transparent;
    border-radius:6px;
    cursor:pointer
}
.ng-viewer figure {
    margin:12px auto;
    display:grid;
    justify-items:center;
    gap:12px
}
.ng-viewer img {
    display:block;
    max-width:100%;
    max-height:calc(100dvh - 180px);
    width:auto;
    height:auto;
    object-fit:contain;
    touch-action:pan-y
}
.ng-viewer figcaption {
    text-align:center;
    max-width:75ch;
    overflow-wrap:anywhere
}
.ng-viewer.ng-zoomed img {
    max-width:none;
    max-height:none
}
.ng-viewer.ng-zoomed figure {
    display:block;
    text-align:center
}
.ng-viewer.ng-zoomed img {
    margin:auto;
    touch-action:auto
}
@media(max-width:767px) {
    .ng-viewer {
        padding:8px
    }
    .ng-viewer-toolbar {
        gap:6px
    }
    .ng-stage img {
        height:360px
    }
    .ng-mosaic .ng-item,.ng-mosaic .ng-item:nth-child(6n+1) {
        grid-column:span 12;
        grid-row:auto
    }
}
@container(max-width:560px) {
    .ng-mosaic .ng-item,.ng-mosaic .ng-item:nth-child(6n+1) {
        grid-column:span 12;
        grid-row:auto
    }
    .ng-justified .ng-image {
        height:180px
    }
}
@media(prefers-reduced-motion:reduce) {
    .ng-grid {
        scroll-behavior:auto
    }
}
.ng-d1 {
    --ng-cols:1
}
.ng-d2 {
    --ng-cols:2
}
.ng-d3 {
    --ng-cols:3
}
.ng-d4 {
    --ng-cols:4
}
.ng-d5 {
    --ng-cols:5
}
.ng-d6 {
    --ng-cols:6
}
@media(min-width:768px) and (max-width:991px) {
    .ng-t1 {
        --ng-cols:1
    }
    .ng-t2 {
        --ng-cols:2
    }
    .ng-t3 {
        --ng-cols:3
    }
    .ng-t4 {
        --ng-cols:4
    }
    .ng-t5 {
        --ng-cols:5
    }
    .ng-t6 {
        --ng-cols:6
    }
}
@media(max-width:767px) {
    .ng-m1 {
        --ng-cols:1
    }
    .ng-m2 {
        --ng-cols:2
    }
    .ng-m3 {
        --ng-cols:3
    }
    .ng-m4 {
        --ng-cols:4
    }
    .ng-m5 {
        --ng-cols:5
    }
    .ng-m6 {
        --ng-cols:6
    }
}
.ng-gap-0 {
    --ng-gap:0px
}
.ng-gap-8 {
    --ng-gap:8px
}
.ng-gap-16 {
    --ng-gap:16px
}
.ng-gap-24 {
    --ng-gap:24px
}
.ng-gap-32 {
    --ng-gap:32px
}
.ng-justified .ng-ar5 {
    flex-grow:0.25;
    flex-basis:55px
}
.ng-justified .ng-ar6 {
    flex-grow:0.3;
    flex-basis:66px
}
.ng-justified .ng-ar7 {
    flex-grow:0.35;
    flex-basis:77px
}
.ng-justified .ng-ar8 {
    flex-grow:0.4;
    flex-basis:88px
}
.ng-justified .ng-ar9 {
    flex-grow:0.45;
    flex-basis:99px
}
.ng-justified .ng-ar10 {
    flex-grow:0.5;
    flex-basis:110px
}
.ng-justified .ng-ar11 {
    flex-grow:0.55;
    flex-basis:121px
}
.ng-justified .ng-ar12 {
    flex-grow:0.6;
    flex-basis:132px
}
.ng-justified .ng-ar13 {
    flex-grow:0.65;
    flex-basis:143px
}
.ng-justified .ng-ar14 {
    flex-grow:0.7;
    flex-basis:154px
}
.ng-justified .ng-ar15 {
    flex-grow:0.75;
    flex-basis:165px
}
.ng-justified .ng-ar16 {
    flex-grow:0.8;
    flex-basis:176px
}
.ng-justified .ng-ar17 {
    flex-grow:0.85;
    flex-basis:187px
}
.ng-justified .ng-ar18 {
    flex-grow:0.9;
    flex-basis:198px
}
.ng-justified .ng-ar19 {
    flex-grow:0.95;
    flex-basis:209px
}
.ng-justified .ng-ar20 {
    flex-grow:1;
    flex-basis:220px
}
.ng-justified .ng-ar21 {
    flex-grow:1.05;
    flex-basis:231px
}
.ng-justified .ng-ar22 {
    flex-grow:1.1;
    flex-basis:242px
}
.ng-justified .ng-ar23 {
    flex-grow:1.15;
    flex-basis:253px
}
.ng-justified .ng-ar24 {
    flex-grow:1.2;
    flex-basis:264px
}
.ng-justified .ng-ar25 {
    flex-grow:1.25;
    flex-basis:275px
}
.ng-justified .ng-ar26 {
    flex-grow:1.3;
    flex-basis:286px
}
.ng-justified .ng-ar27 {
    flex-grow:1.35;
    flex-basis:297px
}
.ng-justified .ng-ar28 {
    flex-grow:1.4;
    flex-basis:308px
}
.ng-justified .ng-ar29 {
    flex-grow:1.45;
    flex-basis:319px
}
.ng-justified .ng-ar30 {
    flex-grow:1.5;
    flex-basis:330px
}
.ng-justified .ng-ar31 {
    flex-grow:1.55;
    flex-basis:341px
}
.ng-justified .ng-ar32 {
    flex-grow:1.6;
    flex-basis:352px
}
.ng-justified .ng-ar33 {
    flex-grow:1.65;
    flex-basis:363px
}
.ng-justified .ng-ar34 {
    flex-grow:1.7;
    flex-basis:374px
}
.ng-justified .ng-ar35 {
    flex-grow:1.75;
    flex-basis:385px
}
.ng-justified .ng-ar36 {
    flex-grow:1.8;
    flex-basis:396px
}
.ng-justified .ng-ar37 {
    flex-grow:1.85;
    flex-basis:407px
}
.ng-justified .ng-ar38 {
    flex-grow:1.9;
    flex-basis:418px
}
.ng-justified .ng-ar39 {
    flex-grow:1.95;
    flex-basis:429px
}
.ng-justified .ng-ar40 {
    flex-grow:2;
    flex-basis:440px
}
.ng-justified .ng-ar41 {
    flex-grow:2.05;
    flex-basis:451px
}
.ng-justified .ng-ar42 {
    flex-grow:2.1;
    flex-basis:462px
}
.ng-justified .ng-ar43 {
    flex-grow:2.15;
    flex-basis:473px
}
.ng-justified .ng-ar44 {
    flex-grow:2.2;
    flex-basis:484px
}
.ng-justified .ng-ar45 {
    flex-grow:2.25;
    flex-basis:495px
}
.ng-justified .ng-ar46 {
    flex-grow:2.3;
    flex-basis:506px
}
.ng-justified .ng-ar47 {
    flex-grow:2.35;
    flex-basis:517px
}
.ng-justified .ng-ar48 {
    flex-grow:2.4;
    flex-basis:528px
}
.ng-justified .ng-ar49 {
    flex-grow:2.45;
    flex-basis:539px
}
.ng-justified .ng-ar50 {
    flex-grow:2.5;
    flex-basis:550px
}
.ng-justified .ng-ar51 {
    flex-grow:2.55;
    flex-basis:561px
}
.ng-justified .ng-ar52 {
    flex-grow:2.6;
    flex-basis:572px
}
.ng-justified .ng-ar53 {
    flex-grow:2.65;
    flex-basis:583px
}
.ng-justified .ng-ar54 {
    flex-grow:2.7;
    flex-basis:594px
}
.ng-justified .ng-ar55 {
    flex-grow:2.75;
    flex-basis:605px
}
.ng-justified .ng-ar56 {
    flex-grow:2.8;
    flex-basis:616px
}
.ng-justified .ng-ar57 {
    flex-grow:2.85;
    flex-basis:627px
}
.ng-justified .ng-ar58 {
    flex-grow:2.9;
    flex-basis:638px
}
.ng-justified .ng-ar59 {
    flex-grow:2.95;
    flex-basis:649px
}
.ng-justified .ng-ar60 {
    flex-grow:3;
    flex-basis:660px
}
.ng-justified .ng-ar61 {
    flex-grow:3.05;
    flex-basis:671px
}
.ng-justified .ng-ar62 {
    flex-grow:3.1;
    flex-basis:682px
}
.ng-justified .ng-ar63 {
    flex-grow:3.15;
    flex-basis:693px
}
.ng-justified .ng-ar64 {
    flex-grow:3.2;
    flex-basis:704px
}
.ng-justified .ng-ar65 {
    flex-grow:3.25;
    flex-basis:715px
}
.ng-justified .ng-ar66 {
    flex-grow:3.3;
    flex-basis:726px
}
.ng-justified .ng-ar67 {
    flex-grow:3.35;
    flex-basis:737px
}
.ng-justified .ng-ar68 {
    flex-grow:3.4;
    flex-basis:748px
}
.ng-justified .ng-ar69 {
    flex-grow:3.45;
    flex-basis:759px
}
.ng-justified .ng-ar70 {
    flex-grow:3.5;
    flex-basis:770px
}
.ng-justified .ng-ar71 {
    flex-grow:3.55;
    flex-basis:781px
}
.ng-justified .ng-ar72 {
    flex-grow:3.6;
    flex-basis:792px
}
.ng-justified .ng-ar73 {
    flex-grow:3.65;
    flex-basis:803px
}
.ng-justified .ng-ar74 {
    flex-grow:3.7;
    flex-basis:814px
}
.ng-justified .ng-ar75 {
    flex-grow:3.75;
    flex-basis:825px
}
.ng-justified .ng-ar76 {
    flex-grow:3.8;
    flex-basis:836px
}
.ng-justified .ng-ar77 {
    flex-grow:3.85;
    flex-basis:847px
}
.ng-justified .ng-ar78 {
    flex-grow:3.9;
    flex-basis:858px
}
.ng-justified .ng-ar79 {
    flex-grow:3.95;
    flex-basis:869px
}
.ng-justified .ng-ar80 {
    flex-grow:4;
    flex-basis:880px
}
+.ng-mosaic .ng-item {
    display:flex;
    flex-direction:column
}
.ng-mosaic .ng-image {
    flex:1;
    min-height:0
}
.ng-mosaic .ng-image img {
    height:100%;
    aspect-ratio:auto;
    min-height:180px
}
.ng-mosaic .ng-grid {
    grid-auto-rows:260px
}
.ng-mosaic .ng-item {
    height:100%;
    min-height:0
}
.ng-mosaic .ng-image {
    height:0;
    min-height:0
}
.ng-mosaic .ng-image img {
    height:100%;
    min-height:0
}
@container(max-width:560px) {
    .ng-mosaic .ng-grid {
        grid-auto-rows:auto
    }
    .ng-mosaic .ng-item {
        height:auto
    }
    .ng-mosaic .ng-image {
        height:auto;
        flex:initial
    }
    .ng-mosaic .ng-image img {
        height:auto;
        aspect-ratio:4/3
    }
}
@media(max-width:767px) {
    .ng-mosaic .ng-grid {
        grid-auto-rows:auto
    }
    .ng-mosaic .ng-item {
        height:auto
    }
    .ng-mosaic .ng-image {
        height:auto;
        flex:initial
    }
    .ng-mosaic .ng-image img {
        height:auto;
        aspect-ratio:4/3
    }
}

.ng-stage [data-gallery-stage-open]{display:block;width:100%;padding:0;border:0}.ng-hover-zoom .ng-image img{transition:transform .2s ease}@media(hover:hover) and (pointer:fine){.ng-hover-zoom .ng-image:hover img{transform:scale(1.7)}}@media(prefers-reduced-motion:reduce){.ng-hover-zoom .ng-image img{transition:none}}

.ng-hover-zoom .ng-stage img{transition:transform .2s ease}@media(hover:hover) and (pointer:fine){.ng-hover-zoom .ng-stage button:hover img,.ng-hover-zoom .ng-stage a:hover img{transform:scale(1.7)}}@media(prefers-reduced-motion:reduce){.ng-hover-zoom .ng-stage img{transition:none}}
