/* Unified location archive — uses NORR ATELIER design tokens */
.location-intro{padding-top:clamp(70px,9vw,130px);padding-bottom:clamp(42px,6vw,80px)}
.location-intro__grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(250px,.55fr);gap:clamp(28px,6vw,100px);align-items:end;margin-top:30px}
.location-intro h1 em{color:var(--clay);font-weight:300}
.location-intro__grid .lead{max-width:38ch;margin-bottom:8px}
.location-intro__foot{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding-top:18px;margin-top:48px;color:var(--muted);font-size:12px}
.location-intro__foot strong{color:var(--ink);font-size:16px;margin-right:5px}
.location-archive{padding:0 0 clamp(80px,10vw,140px)}
.location-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;padding:0 0 22px;border-bottom:1px solid var(--line)}
.location-filters{display:flex;gap:8px;flex-wrap:wrap}
.location-filter{border:1px solid var(--line-strong);border-radius:99px;padding:10px 15px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;transition:background .2s,color .2s,border-color .2s}
.location-filter:hover,.location-filter.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.location-search{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line-strong);min-width:min(100%,240px);padding:8px 0;color:var(--muted)}
.location-search input{width:100%;border:0;background:transparent;outline:0;font-size:12px;color:var(--ink)}
.location-results{display:flex;justify-content:space-between;align-items:center;padding:18px 0 22px;color:var(--muted);font-size:11px}
.location-results strong{color:var(--ink);font-size:14px;margin-right:4px}
.location-grid{columns:4 220px;column-gap:14px}
.location-card{display:inline-block;vertical-align:top;width:100%;break-inside:avoid;position:relative;margin:0 0 14px;background:var(--paper-2);cursor:pointer;overflow:hidden}
.location-card[hidden]{display:none}
.location-card img{display:block;width:100%;height:auto;min-height:160px;object-fit:cover;transition:transform .6s var(--ease),filter .4s}
.location-card:hover img,.location-card:focus-visible img{transform:scale(1.035);filter:saturate(.85)}
.location-card__caption{position:absolute;inset:auto 0 0;display:flex;justify-content:space-between;align-items:end;gap:12px;padding:38px 15px 13px;background:linear-gradient(transparent,rgba(23,22,17,.78));color:#fff;opacity:0;transition:opacity .25s}
.location-card:hover .location-card__caption,.location-card:focus-visible .location-card__caption{opacity:1}
.location-card__caption .mono{font-size:9px;letter-spacing:.13em;color:rgba(255,255,255,.72)}
.location-card__caption h2{font-family:var(--display);font-weight:300;font-size:20px;line-height:1.2;margin-top:4px}
.location-card__arrow{font-size:22px;line-height:1}
.location-empty{padding:50px 0;text-align:center;color:var(--muted)}
.location-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;gap:clamp(10px,3vw,40px);padding:70px 3vw 40px;background:rgba(17,17,15,.96);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.location-lightbox.is-open{opacity:1;visibility:visible}
.location-lightbox figure{margin:0;max-width:min(78vw,1200px);max-height:82vh;display:flex;flex-direction:column;align-items:center;gap:12px}
.location-lightbox figure img{max-width:100%;max-height:75vh;width:auto;height:auto;object-fit:contain}
.lb-caption{color:#f4f0e8;font-size:12px;letter-spacing:.08em;text-align:center}
.location-lightbox button{color:#f4f0e8;font-size:38px;padding:8px;line-height:1}
.location-lightbox .lb-close{position:absolute;right:25px;top:15px;font-size:42px}
.location-lightbox .lb-prev,.location-lightbox .lb-next{flex:0 0 auto}
body.lightbox-open{overflow:hidden}
@media(max-width:760px){.location-intro__grid{grid-template-columns:1fr;gap:24px}.location-intro__foot{margin-top:32px}.location-grid{columns:2 145px;column-gap:9px}.location-card{margin-bottom:9px}.location-card__caption{opacity:1;padding:28px 10px 10px}.location-card__caption h2{font-size:16px}.location-toolbar{align-items:stretch}.location-search{width:100%}.location-lightbox{gap:4px;padding-inline:8px}.location-lightbox figure{max-width:82vw}.location-lightbox .lb-prev,.location-lightbox .lb-next{font-size:28px;padding:3px}}
@media(prefers-reduced-motion:reduce){.location-card img,.location-card__caption,.location-lightbox{transition:none}}
