.ktr-gallery{--ktr-ink:#342825;--ktr-rose:#9a554f;--ktr-line:#e5d8d1;--ktr-paper:#fcf9f5;color:var(--ktr-ink);padding:70px 0;background:var(--ktr-paper);clear:both}
.ktr-gallery *{box-sizing:border-box}.ktr-inner{width:min(1180px,calc(100% - 48px));margin:auto}.ktr-heading{margin-bottom:30px}.ktr-eyebrow{display:block;font:11px/1.4 Arial,sans-serif;letter-spacing:2.5px;text-transform:uppercase;color:var(--ktr-rose);margin-bottom:14px}.ktr-heading h2{font:42px/1.12 Georgia,serif;margin:0 0 14px}.ktr-heading p{color:#72615c;font:15px/1.7 Arial,sans-serif;margin:0;max-width:620px}
.ktr-grid{display:grid;grid-template-columns:repeat(var(--ktr-columns,3),minmax(0,1fr));gap:24px}.ktr-card{margin:0;min-width:0}.ktr-image-link{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:5px;background:#f1e4df}.ktr-image-link>img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .3s}.ktr-image-link:hover>img{transform:scale(1.035)}.ktr-zoom{position:absolute;bottom:14px;right:14px;background:#fffdfaeb;color:var(--ktr-ink);width:34px;height:34px;text-align:center;line-height:34px;border-radius:50%;font-size:20px}.ktr-card figcaption{font:16px/1.5 Georgia,serif;padding-top:12px;overflow-wrap:anywhere}.ktr-gallery a:focus-visible,.ktr-gallery button:focus-visible{outline:3px solid var(--ktr-rose);outline-offset:4px}
.ktr-lightbox:not([open]){display:none}.ktr-lightbox{border:0;border-radius:10px;background:#fffdfa;color:var(--ktr-ink);padding:48px 48px 20px;width:max-content;max-width:94vw;max-height:94dvh;overflow:auto}.ktr-lightbox::backdrop{background:#181212c9}.ktr-full-wrap{text-align:center;min-width:0}.ktr-full{display:block;max-width:min(80vw,1400px);max-height:76dvh;width:auto;height:auto;margin:auto;object-fit:contain}.ktr-caption{font:13px/1.5 Arial,sans-serif;margin:12px 0 0;max-width:75vw;overflow-wrap:anywhere}.ktr-lightbox button{font:30px/1 Arial,sans-serif;color:var(--ktr-ink);border:0;background:#f1e4df;border-radius:50%;width:34px;height:34px;padding:0;cursor:pointer}.ktr-close{position:absolute;right:10px;top:8px}.ktr-prev,.ktr-next{position:absolute;top:45%}.ktr-prev{left:7px}.ktr-next{right:7px}.ktr-lightbox [hidden]{display:none!important}
@media(max-width:900px){.ktr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.ktr-gallery{padding:45px 0}.ktr-inner{width:calc(100% - 36px)}.ktr-heading h2{font-size:34px}.ktr-grid{grid-template-columns:1fr;gap:24px}.ktr-lightbox{padding:46px 35px 18px}.ktr-full{max-width:72vw;max-height:70dvh}}
@media(prefers-reduced-motion:reduce){.ktr-image-link>img{transition:none}}

/* Editorial mosaic: preserve source/focus order; no dense reordering. */
.ktr-layout-mosaic .ktr-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(140px,16vw,210px);gap:16px;grid-auto-flow:row}
.ktr-layout-mosaic .ktr-card{position:relative;min-height:0;overflow:hidden;border-radius:8px;isolation:isolate}
.ktr-layout-mosaic .ktr-card:nth-child(6n+1){grid-column:span 2;grid-row:span 2}
.ktr-layout-mosaic .ktr-card:nth-child(6n+4),.ktr-layout-mosaic .ktr-card:nth-child(6n+5),.ktr-layout-mosaic .ktr-card:nth-child(6n+6){grid-column:span 2}
.ktr-layout-mosaic .ktr-image-link{height:100%;aspect-ratio:auto;border-radius:8px}
.ktr-layout-mosaic .ktr-image-link>img{height:100%;object-fit:cover}
.ktr-layout-mosaic .ktr-card figcaption{position:absolute;bottom:0;left:0;right:0;margin:0;padding:38px 18px 16px;color:#fffdfa;background:linear-gradient(transparent,#251a17c9);font:17px/1.4 Georgia,serif;pointer-events:none}
.ktr-layout-mosaic .ktr-card:has(figcaption) .ktr-zoom{top:12px;bottom:auto;right:12px;width:30px;height:30px;line-height:30px;font-size:17px}
/* Incomplete final groups also fill complete rows. */
.ktr-layout-mosaic .ktr-card:nth-child(6n+1):last-child{grid-column:1/-1}
.ktr-layout-mosaic .ktr-card:nth-child(6n+1):nth-last-child(2){grid-row:span 1}
.ktr-layout-mosaic .ktr-card:nth-child(6n+2):last-child{grid-column:span 2}
.ktr-layout-mosaic .ktr-card:nth-child(6n+2):nth-last-child(2),.ktr-layout-mosaic .ktr-card:nth-child(6n+3):last-child{grid-column:span 2}
.ktr-layout-mosaic .ktr-card:nth-child(6n+5):last-child{grid-column:1/-1}
.ktr-layout-mosaic .ktr-grid[data-ktr-count="1"]{grid-auto-rows:clamp(220px,34vw,420px)}
.ktr-layout-mosaic .ktr-grid[data-ktr-count="1"] .ktr-card{grid-row:span 1}
.ktr-layout-mosaic .ktr-grid[data-ktr-count="2"]{grid-auto-rows:clamp(240px,30vw,380px)}
@media(max-width:900px){
 .ktr-layout-mosaic .ktr-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:190px;gap:12px}
 .ktr-layout-mosaic .ktr-card:nth-child(n){grid-column:span 1;grid-row:span 1}
 .ktr-layout-mosaic .ktr-card:nth-child(3n+1){grid-column:span 2;grid-row:span 2}
 .ktr-layout-mosaic .ktr-card:nth-child(3n+2):last-child{grid-column:span 2}
 .ktr-layout-mosaic .ktr-grid[data-ktr-count="2"] .ktr-card{grid-column:span 1;grid-row:span 1}
}
@media(max-width:600px){
 .ktr-layout-mosaic .ktr-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(130px,39vw,210px);gap:10px}
 .ktr-layout-mosaic .ktr-grid[data-ktr-count="1"],.ktr-layout-mosaic .ktr-grid[data-ktr-count="2"]{grid-auto-rows:clamp(160px,48vw,240px)}
 .ktr-layout-mosaic .ktr-card figcaption{font-size:13px;padding:28px 10px 11px}
 .ktr-layout-mosaic .ktr-card:nth-child(3n+1) figcaption{font-size:18px;padding:38px 15px 15px}
 .ktr-layout-mosaic .ktr-card:has(figcaption) .ktr-zoom{width:26px;height:26px;line-height:26px;top:8px;right:8px}
}
