.photo-gallery { padding-top: 12px; }
.photo-gallery-summary { margin: 0 0 24px; color: #666; }
.photo-gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.photo-gallery-item { display: block; padding: 0; border: 0; border-radius: 6px; overflow: hidden; background: #202421; cursor: pointer; aspect-ratio: 4 / 3; }
.photo-gallery-item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }
.photo-gallery-item:hover img { transform: scale(1.04); }
.photo-gallery-item:focus-visible { outline: 3px solid #778444; outline-offset: 3px; }
.photo-lightbox { position: fixed; inset: 0; z-index: 11000; display: flex; align-items: center; justify-content: center; background: rgba(8, 10, 8, .96); padding: 70px 70px 80px; }
.photo-lightbox[hidden] { display: none; }
.photo-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }
.photo-lightbox button { position: absolute; border: 0; border-radius: 4px; background: #282d27; color: #fff; min-width: 44px; min-height: 44px; font-size: 26px; cursor: pointer; }
.photo-lightbox button:focus-visible { outline: 2px solid #bfcc86; outline-offset: 3px; }
.photo-lightbox-close { top: 16px; right: 18px; }
.photo-lightbox-prev { left: 14px; top: calc(50% - 22px); }
.photo-lightbox-next { right: 14px; top: calc(50% - 22px); }
.photo-lightbox-caption { position: absolute; bottom: 18px; left: 60px; right: 60px; margin: 0; text-align: center; color: #eee; line-height: 1.5; font-size: 14px; }
@media (max-width: 992px) { .photo-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .photo-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .photo-lightbox { padding: 64px 48px 76px; } }
@media (prefers-reduced-motion: reduce) { .photo-gallery-item img { transition: none; } }
.gallery-stage { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.gallery-stage iframe { width:min(100%,1100px); aspect-ratio:16/9; max-height:100%; border:0; background:#000; }
.gallery-filters { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:28px; }
.gallery-filters label { display:grid; gap:6px; font-weight:normal; flex:1 1 140px; }
.gallery-filters select { width:100%; padding:10px; background:#fff; color:#333; border:1px solid #bbb; border-radius:4px; }
.gallery-album { margin-bottom:42px; }
.gallery-share { border:0; padding:10px 14px; margin-bottom:18px; border-radius:4px; background:#506038; color:white; }
.photo-gallery-item { position:relative; }
.gallery-video-label { position:absolute; bottom:8px; left:8px; padding:5px 10px; color:white; background:#000b; border-radius:4px; }
.album-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.album-card{display:block;width:100%;padding:0;text-align:left;font:inherit;background:#fff;color:#243026;border:1px solid #d6dacd;border-radius:5px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s}.album-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px #17251d14}.album-card:focus-visible,.gallery-back:focus-visible{outline:3px solid #bd2938;outline-offset:4px}.album-card>img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.album-card-copy{display:grid;gap:10px;padding:24px}.album-card-copy strong{font:600 28px/1.2 "Barlow Semi Condensed",sans-serif}.album-meta{font-size:13px;color:#64705d}.album-count{font-size:13px;color:#64705d}.album-open{margin-top:6px;font-size:14px;font-weight:600;color:#48633b}.album-cover-empty{display:grid;place-items:center;aspect-ratio:16/10;background:linear-gradient(135deg,#17251d,#4f6343);color:#fff;font-size:24px}.gallery-back{border:1px solid #b5c1a5;background:white;color:#243026;padding:12px 18px;border-radius:4px;margin:0 0 28px;font:inherit;cursor:pointer}.album-detail{scroll-margin-top:24px}.album-cards[hidden],.album-detail[hidden],.gallery-filters[hidden]{display:none}
@media(max-width:650px){.album-cards{grid-template-columns:1fr;gap:20px}.album-card-copy{padding:20px}.album-card-copy strong{font-size:26px}}
@media(prefers-reduced-motion:reduce){.album-card{transition:none}}
.patch-wall .album-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.patch-wall .album-card>img{object-fit:contain;background:#f4f2ec;padding:18px}.patch-wall .photo-gallery-item{background:#f4f2ec}.patch-wall .photo-gallery-item img{object-fit:contain;padding:12px}.patch-wall .gallery-album p,.photo-lightbox-caption{overflow-wrap:anywhere}
@media(max-width:950px){.patch-wall .album-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.patch-wall .album-cards{grid-template-columns:1fr}}
