
.gallery-link,.back-link { display:inline-block; padding:10px 16px; border:1px solid #222; font-weight:700; text-decoration:none; font-size:16px; }
.gallery-link:hover,.gallery-link:focus-visible,.back-link:hover,.back-link:focus-visible { background:#222; color:#fff; }
.gallery-highlights { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:26px 0 8px; }
.highlight { text-decoration:none; display:block; }
.highlight img { display:block; width:100%; height:160px; object-fit:contain; background:#eee7dc; border-radius:3px; }
.highlight span { display:block; font-size:14px; margin-top:8px; }
.gallery-page { padding:48px 0 72px; min-height:60vh; }
.gallery-page h1 { font-size:clamp(32px,5vw,54px); letter-spacing:-.04em; line-height:1.18; margin:24px 0 12px; }
.gallery-topbar { background:#ff6200; }
.gallery-page .subtext { color:#5b534a; margin-bottom:28px; }
.gallery-filters { display:flex; gap:18px; flex-wrap:wrap; margin:28px 0 18px; }
.gallery-filters label { font-size:14px; font-weight:700; display:grid; gap:6px; min-width:180px; }
.gallery-filters select { font:inherit; font-size:16px; padding:11px 38px 11px 12px; border:1px solid #9c9184; background:white; color:#222; border-radius:3px; }
.album-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:22px; }
.album-card { display:block; text-decoration:none; border:1px solid #ded3c4; background:#fffaf3; border-radius:4px; overflow:hidden; }
.album-card:hover,.album-card:focus-visible { outline:2px solid #c64b00; outline-offset:3px; }
.album-card img { display:block; width:100%; aspect-ratio:3/2; object-fit:contain; background:#eee7dc; }
.album-card .album-info { padding:18px; }
.album-card h2 { font-size:22px; letter-spacing:-.03em; margin:3px 0 8px; }
.album-card p { font-size:14px; margin:0; color:#5b534a; }
.album-card strong { font-size:14px; color:#b74300; }
.album-open { display:block; font-weight:700; margin-top:16px; font-size:15px; }
[hidden] { display:none !important; }
.album-photo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-top:30px; }
.album-photo-grid img { height:150px; width:100%; object-fit:contain; background:#eee7dc; }
.album-photo-grid figcaption { position:static; width:auto; height:auto; margin:8px 0 0; overflow:visible; clip:auto; white-space:normal; font-size:14px; line-height:1.5; color:#5b534a; }
.gallery-dialog { width:min(1100px,calc(100% - 24px)); }
.gallery-dialog img { max-height:calc(100dvh - 200px); }
.viewer-controls { display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:0 20px 16px; }
.viewer-controls button { border:1px solid #fff8; color:white; background:none; padding:9px 14px; font:inherit; cursor:pointer; }
.viewer-controls button:hover,.viewer-controls button:focus-visible { background:#fff; color:#222; }
.viewer-controls span { font-size:14px; }
@media(max-width:850px) { .album-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } .album-photo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) { .gallery-highlights { grid-template-columns:1fr; } .highlight img { height:140px; } .album-cards { grid-template-columns:1fr; gap:18px; } .album-card img { max-height:220px; } .album-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } .album-photo-grid img { height:110px; } .gallery-filters label { flex:1; min-width:140px; } .gallery-page { padding-top:28px; } .gallery-topbar header { align-items:start; } }
