.gallery-section{background:var(--paper);padding-top:52px}.gallery-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:38px}.gallery-toolbar h2{font-size:clamp(28px,3vw,39px);max-width:650px}.gallery-search{flex:0 0 320px}.gallery-search label{display:block;font-size:13px;font-weight:600;margin-bottom:9px}.gallery-search>div{display:flex;gap:8px}.gallery-search input{min-width:0;width:100%;border:1px solid var(--line);border-radius:6px;padding:12px;font-size:15px;background:white}.gallery-search .button{padding:12px 16px;min-height:48px}.gallery-search-result{font-size:15px}.gallery-search-result a{text-decoration:underline}
.gallery-events{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.gallery-event-card{display:block;background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:box-shadow .2s,transform .2s}.gallery-event-card:hover{box-shadow:0 15px 35px #001a3f12;transform:translateY(-3px)}.gallery-event-cover{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--navy)}.gallery-event-cover img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery-event-card:hover img{transform:scale(1.035)}.gallery-cover-placeholder{height:100%;display:grid;place-items:center;color:white;font-size:70px;font-weight:800;opacity:.75}.gallery-photo-count{position:absolute;right:14px;bottom:14px;background:#001a3fee;color:white;border-radius:30px;padding:6px 13px;font-size:12px;font-weight:600}.gallery-event-copy{padding:24px}.gallery-event-date{font-size:13px;font-weight:600;color:var(--deep-red);margin:0 0 12px}.gallery-event-date:empty{display:none}.gallery-event-copy h3{font-size:23px;letter-spacing:-.5px;margin:0 0 12px}.gallery-event-location{font-size:14px;color:var(--muted);margin:0 0 20px}.gallery-open{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:16px;font-size:14px;font-weight:700}.gallery-open span{color:var(--deep-red);font-size:22px}.gallery-empty{padding:55px 30px;text-align:center;background:white;border:1px dashed #bcc8d7;border-radius:12px}.gallery-empty h3{font-size:26px;margin:0 0 15px}.gallery-empty p{color:var(--muted);margin:0}.gallery-pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:40px}.gallery-pagination .page-numbers{padding:8px 16px;border:1px solid var(--line);border-radius:5px;background:white}.gallery-pagination .current{background:var(--navy);color:white}.gallery-event-intro{margin:30px 0}.gallery-event-date span{color:var(--muted)}.gallery-event-description{max-width:850px;color:var(--muted);font-size:17px;line-height:1.8}.gallery-instruction{font-size:14px;color:var(--muted)}
.gallery-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.gallery-photo{display:block;position:relative;aspect-ratio:4/3;overflow:hidden;background:#dfe5ec;border-radius:8px}.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery-photo:hover img{transform:scale(1.035)}.gallery-photo>span{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:36px;height:36px;background:#001a3fcc;color:white;border-radius:50%}
#gallery-dialog{width:min(1280px,calc(100% - 32px));height:min(900px,94dvh);max-height:94dvh;padding:0;border:1px solid #ffffff30;background:#08152a;color:white;overflow:hidden;border-radius:12px}#gallery-dialog::backdrop{background:#000d}.gallery-modal-toolbar{display:flex;gap:20px;align-items:center;padding:12px 18px;border-bottom:1px solid #ffffff26;height:68px}.gallery-modal-toolbar p{margin:0;margin-right:auto;font-size:14px}.gallery-modal-toolbar a{font-size:13px;text-decoration:underline}.gallery-close{flex-shrink:0;width:44px;height:44px;border:1px solid #ffffff50;border-radius:50%;background:transparent;color:white;font-size:29px;line-height:1}.gallery-viewer{display:grid;grid-template-columns:50px minmax(0,1fr) 50px;align-items:center;gap:12px;padding:16px;height:calc(100% - 68px)}.gallery-viewer>button{width:44px;height:54px;border:1px solid #ffffff50;border-radius:6px;background:#ffffff12;color:white;font-size:38px}.gallery-viewer>button:disabled{opacity:.25;cursor:default}.gallery-viewer figure{margin:0;min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px}.gallery-viewer img{min-height:0;width:100%;flex:1;object-fit:contain;touch-action:pan-y}.gallery-viewer img[hidden]{display:none}.gallery-viewer figcaption{font-size:14px;text-align:center;max-height:90px;overflow:auto;flex-shrink:0;white-space:pre-line}.gallery-viewer figcaption:empty,.gallery-viewer [role=status]:empty{display:none}.gallery-viewer [role=status]{font-size:14px;margin:0;text-align:center}
@media(max-width:950px){.gallery-toolbar{display:block}.gallery-search{max-width:420px;margin-top:25px}.gallery-events,.gallery-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-events{gap:20px}}
@media(max-width:600px){.gallery-events{grid-template-columns:1fr}.gallery-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-photo>span{width:28px;height:28px;right:7px;bottom:7px}.gallery-event-copy{padding:22px}.gallery-viewer{grid-template-columns:34px minmax(0,1fr) 34px;gap:4px;padding:8px}.gallery-viewer>button{width:32px;height:48px;font-size:30px}.gallery-modal-toolbar{padding:10px;gap:12px}.gallery-modal-toolbar a{font-size:12px}#gallery-dialog{width:calc(100% - 12px)}.gallery-viewer figcaption{font-size:13px}}
@media(prefers-reduced-motion:reduce){.gallery-event-card,.gallery-event-cover img,.gallery-photo img{transition:none}}
