.gallery-section{background:var(--soft);color:var(--ink)}
.gallery-section .section-top{border-color:#18171935}
.gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:46px}
.gallery-heading>p{font-size:14px;max-width:280px;color:#65545d}
.gallery-overview{font-size:11px;letter-spacing:.07em;color:#65545d;margin-bottom:22px;text-transform:uppercase;display:flex;gap:12px}
.gallery-albums{display:grid;gap:18px}
.gallery-album{border:1px solid #18171926;background:#ffffff30}
.gallery-album>summary{list-style:none;cursor:pointer}
.gallery-album>summary::-webkit-details-marker{display:none}
.album-summary{display:grid;grid-template-columns:200px minmax(0,1fr) auto;align-items:center;gap:30px;padding:14px}
.album-cover{width:200px;height:130px;object-fit:cover;object-position:center 35%;background:#decbd2}
.album-info{display:flex;flex-direction:column;gap:9px;min-width:0}
.album-count{font-size:9px;letter-spacing:.16em;color:#65545d}
.album-name{font-size:clamp(21px,2.5vw,32px);letter-spacing:-.03em;font-weight:500;line-height:1.15}
.album-location{font-size:12px;line-height:1.6;color:#65545d}
.album-action{font-size:10px;white-space:nowrap;margin:0 20px}
.album-action b{font-size:24px;font-weight:400;margin-left:16px;vertical-align:middle}
.album-close{display:none}.gallery-album[open] .album-open{display:none}.gallery-album[open] .album-close{display:inline}
.gallery-album[open]{border-color:#18171960}.gallery-album[open] .album-summary{border-bottom:1px solid #18171920}
.album-summary:hover{background:#ffffff40}
.album-content{padding:26px}
.album-instruction{font-size:11px;color:#65545d;margin-bottom:22px}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;list-style:none;margin:0;padding:0;align-items:start}
.gallery-card{min-width:0;margin:0}
.gallery-photo{display:flex;align-items:center;justify-content:center;background:#e4d7dd;aspect-ratio:1;overflow:hidden;border:1px solid #1817190c}
.gallery-photo img{display:block;width:100%;height:100%;object-fit:contain;transition:opacity .2s}
.gallery-photo:hover img{opacity:.85}
.gallery-card figcaption{display:none}
.gallery-section a:focus-visible,.gallery-section button:focus-visible,.gallery-section summary:focus-visible{outline:3px solid #b32d60;outline-offset:5px}
.gallery-viewer:not([open]){display:none}
.gallery-viewer{width:min(1180px,calc(100% - 40px));max-width:none;max-height:calc(100dvh - 40px);padding:22px;border:1px solid #ffffff30;background:var(--ink);color:var(--paper);overflow:auto}
.gallery-viewer::backdrop{background:#111012e8}
.gallery-viewer-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}
.gallery-viewer-top p{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.gallery-viewer button,.gallery-viewer a{color:var(--paper);font:12px Arial,sans-serif;min-height:44px;background:transparent;border:1px solid #ffffff70;padding:12px 18px;cursor:pointer}
.gallery-viewer button:hover,.gallery-viewer a:hover{background:#ffffff15}
.gallery-viewer button:focus-visible,.gallery-viewer a:focus-visible{outline:3px solid var(--pink);outline-offset:4px}
.gallery-viewer figure img{width:100%;max-height:calc(100dvh - 250px);height:auto;object-fit:contain;min-height:80px}
.gallery-viewer figcaption{font-size:13px;line-height:1.6;margin-top:16px;text-align:center}
.gallery-viewer figcaption small{display:block;font-size:11px;color:var(--muted);margin-top:5px}
.gallery-viewer-bottom{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:20px}
.gallery-viewer-bottom a{display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:4px;border-color:transparent;text-align:center}
.gallery-viewer-status{font-size:12px;color:var(--pink);text-align:center;margin-top:12px}
body.gallery-open{overflow:hidden}
@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.album-summary{grid-template-columns:160px minmax(0,1fr) auto;gap:22px}.album-cover{width:160px;height:112px}.album-action{margin-right:8px;margin-left:5px}}
@media(max-width:600px){.gallery-heading{display:block;margin-bottom:28px}.gallery-heading h2{font-size:clamp(43px,10vw,60px)}.gallery-heading>p{max-width:320px;font-size:13px;margin-top:25px}.gallery-overview{font-size:9px;margin-bottom:18px}.gallery-albums{gap:12px}.album-summary{grid-template-columns:86px minmax(0,1fr);gap:15px;padding:12px;position:relative;min-height:126px}.album-cover{width:86px;height:98px}.album-info{gap:6px;padding-bottom:24px}.album-count{font-size:7px;letter-spacing:.1em}.album-name{font-size:21px}.album-location{font-size:10px}.album-action{position:absolute;bottom:13px;left:113px;margin:0;font-size:9px}.album-action b{font-size:18px;margin-left:10px}.album-content{padding:18px 12px}.album-instruction{font-size:10px;margin-bottom:15px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-viewer{width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:14px}.gallery-viewer figure img{max-height:calc(100dvh - 260px)}.gallery-viewer-bottom{gap:6px;flex-wrap:wrap}.gallery-viewer-bottom button{padding:11px 12px;font-size:11px}.gallery-viewer-bottom a{font-size:11px}.gallery-viewer figcaption{font-size:12px}.gallery-viewer-top{margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){.gallery-photo img{transition:none}}
