/* Qlaack — Locations (homepage teaser + catalogue page) */

/* ---------- HOMEPAGE TEASER ---------- */
#locations{background:var(--black);border-top:1px solid var(--line);}
#locations .section-head{max-width:720px;}
#locations .section-head .eyebrow{display:block;margin-bottom:14px;}

.loc-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);margin-bottom:48px;
}
.loc-stat{background:var(--black);padding:26px 26px 24px;}
.loc-stat b{
  display:block;font-family:'Anton',sans-serif;font-weight:400;font-size:clamp(30px,3.6vw,44px);
  line-height:1;color:var(--yellow);letter-spacing:0.01em;
}
.loc-stat span{display:block;margin-top:10px;color:var(--muted);font-size:14px;line-height:1.5;}
@media (max-width:760px){.loc-stats{grid-template-columns:repeat(2,1fr);}.loc-stat{padding:20px 18px;}}

.ch-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.ch-tile{
  position:relative;display:block;aspect-ratio:4/5;overflow:hidden;border-radius:6px;
  background:#111;border:1px solid var(--line);isolation:isolate;
}
.ch-tile img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transition:transform .8s cubic-bezier(.2,.7,.2,1), filter .4s ease;filter:saturate(.92);
}
.ch-tile::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(6,6,7,.05) 30%,rgba(6,6,7,.55) 62%,rgba(6,6,7,.94) 100%);
}
.ch-tile:hover img,.ch-tile:focus-visible img{transform:scale(1.06);filter:saturate(1.05);}
.ch-tile .ch-in{position:absolute;left:0;right:0;bottom:0;padding:20px 20px 18px;}
.ch-tile .ch-num{
  font-family:'Oswald',sans-serif;font-size:12px;letter-spacing:0.22em;color:var(--yellow);font-weight:600;
}
.ch-tile h3{font-size:clamp(20px,1.9vw,26px);margin:8px 0 6px;color:var(--paper);line-height:1.02;}
.ch-tile p{color:rgba(244,242,236,.72);font-size:13.5px;line-height:1.5;}
.ch-tile .ch-count{
  position:absolute;top:14px;right:14px;
  font-family:'Oswald',sans-serif;font-size:11.5px;letter-spacing:0.14em;text-transform:uppercase;
  background:rgba(10,10,12,.55);backdrop-filter:blur(6px);border:1px solid rgba(244,242,236,.2);
  padding:5px 10px;border-radius:3px;color:var(--paper);
}
@media (max-width:1000px){.ch-grid{grid-template-columns:repeat(3,1fr);}}
@media (max-width:760px){
  .ch-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .ch-tile{aspect-ratio:3/4;}
  .ch-tile .ch-in{padding:14px 14px 13px;}
  .ch-tile p{display:none;}
}
.loc-cta{margin-top:44px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.loc-cta small{color:var(--muted);font-size:14px;}

/* ---------- CATALOGUE PAGE ---------- */
body.page-locations header{
  background:rgba(10,10,12,0.94);backdrop-filter:blur(10px);
  padding:14px 0;border-bottom:1px solid var(--line);
}
nav a.active::after{width:100%;}

.lp-intro{padding:150px 0 44px;background:
  radial-gradient(120% 90% at 85% 0%, rgba(74,163,219,.16) 0%, rgba(10,10,12,0) 55%), var(--black);}
.lp-intro .eyebrow{display:block;margin-bottom:16px;}
.lp-intro h1{font-size:clamp(42px,7vw,88px);max-width:14ch;}
.lp-intro p{margin-top:22px;max-width:60ch;color:var(--muted);font-size:17.5px;line-height:1.65;}
.lp-intro p strong{color:var(--paper);font-weight:600;}
@media (max-width:760px){.lp-intro{padding:112px 0 28px;}}

/* filter bar */
.lp-filters{
  position:sticky;top:59px;z-index:50;
  background:rgba(10,10,12,.94);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);border-top:1px solid var(--line);
}
.lp-filters .wrap{padding-top:14px;padding-bottom:14px;}
.chips{
  display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;
  -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);mask-image:linear-gradient(90deg,#000 92%,transparent);
}
.chips::-webkit-scrollbar{display:none;}
.chip{
  flex:none;font-family:'Oswald',sans-serif;font-size:12.5px;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;
  color:var(--paper);background:transparent;border:1px solid rgba(244,242,236,.2);
  padding:9px 14px;border-radius:40px;cursor:pointer;white-space:nowrap;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.chip i{font-style:normal;color:var(--muted);margin-left:6px;font-size:11px;}
.chip:hover{border-color:rgba(244,242,236,.5);}
.chip[aria-pressed="true"]{background:var(--yellow);border-color:var(--yellow);color:#0a0a0c;}
.chip[aria-pressed="true"] i{color:rgba(10,10,12,.6);}

.lp-row2{display:flex;gap:12px;align-items:center;margin-top:12px;flex-wrap:wrap;}
.lp-search{position:relative;flex:1 1 260px;max-width:420px;}
.lp-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none;}
.lp-search input{
  width:100%;background:var(--panel);border:1px solid var(--line);color:var(--paper);
  font:inherit;font-size:14.5px;padding:11px 14px 11px 40px;border-radius:var(--radius);
}
.lp-search input::placeholder{color:#6f6c66;}
.lp-search input:focus{outline:none;border-color:var(--yellow);}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.seg button{
  font-family:'Oswald',sans-serif;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;
  background:transparent;color:var(--muted);border:0;padding:11px 14px;cursor:pointer;
}
.seg button+button{border-left:1px solid var(--line);}
.seg button[aria-pressed="true"]{background:var(--panel-2);color:var(--paper);}
.lp-count{margin-left:auto;color:var(--muted);font-size:13.5px;white-space:nowrap;}
.lp-count b{color:var(--paper);font-weight:600;}
@media (max-width:760px){
  /* on phones only the chapter chips stay pinned; search + int/ext scroll away */
  .lp-filters{top:-78px;}
  .lp-filters .wrap{display:flex;flex-direction:column;padding-top:12px;padding-bottom:12px;}
  .lp-row2{order:-1;margin:0 0 12px;row-gap:12px;}
  .lp-search{max-width:none;flex-basis:100%;}
  .lp-search input{font-size:16px;}
  .seg button{padding:10px 12px;}
}

/* grid */
.lp-body{padding:36px 0 140px;}
.lp-group{margin-bottom:64px;scroll-margin-top:190px;}
.lp-group-head{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--line);}
.lp-group-head .n{font-family:'Oswald',sans-serif;font-size:13px;letter-spacing:0.2em;color:var(--yellow);font-weight:600;}
.lp-group-head h2{font-size:clamp(26px,3.2vw,38px);}
.lp-group-head p{color:var(--muted);font-size:15px;flex-basis:100%;}
.lp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:1000px){.lp-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.lp-grid{grid-template-columns:1fr;gap:16px;}}

.lcard{
  position:relative;background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden;
  display:flex;flex-direction:column;transition:border-color .25s ease, transform .25s ease;
}
.lcard:hover{border-color:rgba(244,242,236,.28);transform:translateY(-2px);}
.lcard-open{all:unset;cursor:pointer;display:flex;flex-direction:column;flex:1;}
.lcard-open:focus-visible{outline:2px solid var(--yellow);outline-offset:-2px;}
.lcard-media{position:relative;aspect-ratio:4/3;background:#0c0c0e;overflow:hidden;}
.lcard-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.lcard:hover .lcard-media img{transform:scale(1.045);}
.badge-no{
  position:absolute;top:12px;left:12px;background:var(--yellow);color:#0a0a0c;
  font-family:'Oswald',sans-serif;font-weight:600;font-size:12.5px;letter-spacing:0.04em;padding:4px 9px;border-radius:3px;
}
.lcard-photos{
  position:absolute;bottom:10px;left:12px;font-family:'Oswald',sans-serif;font-size:11px;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--paper);background:rgba(10,10,12,.55);backdrop-filter:blur(6px);padding:4px 8px;border-radius:3px;
}
.lcard-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:6px;flex:1;}
.lcard-tags{font-family:'Oswald',sans-serif;font-size:11.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--blue);}
.lcard-title{font-family:'Oswald',sans-serif;font-size:19px;font-weight:600;line-height:1.25;color:var(--paper);letter-spacing:0.01em;}
.lcard-local{color:var(--muted);font-size:13px;}
.lcard-reads{
  color:rgba(244,242,236,.78);font-size:14px;line-height:1.55;margin-top:6px;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.lcard-meta{margin-top:auto;padding-top:12px;display:flex;gap:8px;flex-wrap:wrap;}
.pill{
  font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:30px;padding:4px 10px;line-height:1.3;
}

.sl-btn{
  position:absolute;top:10px;right:10px;z-index:2;width:38px;height:38px;border-radius:50%;
  background:rgba(10,10,12,.55);backdrop-filter:blur(6px);border:1px solid rgba(244,242,236,.28);
  color:var(--paper);display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.sl-btn svg{width:16px;height:16px;}
.sl-btn:hover{border-color:var(--yellow);}
.sl-btn[aria-pressed="true"]{background:var(--yellow);border-color:var(--yellow);color:#0a0a0c;}

.lp-empty{padding:80px 0;text-align:center;color:var(--muted);}
.lp-empty h3{font-size:30px;color:var(--paper);margin-bottom:10px;}
.lp-empty button{margin-top:18px;}

.lp-credits{color:#6f6c66;font-size:12px;line-height:1.6;margin-top:24px;}

/* ---------- MODAL ---------- */
.lm{position:fixed;inset:0;z-index:300;display:none;}
.lm.open{display:block;}
.lm-scrim{position:absolute;inset:0;background:rgba(5,5,6,.92);backdrop-filter:blur(6px);}
.lm-box{
  position:absolute;inset:24px;display:grid;grid-template-columns:minmax(0,1fr) 400px;
  background:var(--black);border:1px solid var(--line);border-radius:8px;overflow:hidden;
}
.lm-gallery{position:relative;background:#050506;display:flex;flex-direction:column;min-height:0;}
.lm-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;}
.lm-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:opacity .25s ease;}
.lm-stage img.loading{opacity:.25;}
.lm-counter{
  position:absolute;left:16px;top:16px;font-family:'Oswald',sans-serif;font-size:12px;letter-spacing:0.14em;
  background:rgba(10,10,12,.6);padding:5px 10px;border-radius:3px;color:var(--paper);
}
.lm-thumbs{display:flex;gap:8px;padding:12px;overflow-x:auto;border-top:1px solid var(--line);flex:none;scrollbar-width:thin;}
.lm-thumbs button{flex:none;width:92px;height:64px;padding:0;border:2px solid transparent;border-radius:3px;overflow:hidden;cursor:pointer;background:#111;opacity:.6;transition:opacity .2s ease,border-color .2s ease;}
.lm-thumbs button:hover{opacity:1;}
.lm-thumbs button[aria-current="true"]{border-color:var(--yellow);opacity:1;}
.lm-thumbs img{width:100%;height:100%;object-fit:cover;}

.lm-info{overflow-y:auto;padding:34px 32px 28px;border-left:1px solid var(--line);display:flex;flex-direction:column;}
.lm-info .badge-no{position:static;display:inline-block;align-self:flex-start;}
.lm-info .lcard-tags{margin-top:18px;}
.lm-info h2{font-family:'Oswald',sans-serif;text-transform:none;font-weight:600;font-size:28px;line-height:1.18;margin-top:8px;letter-spacing:0;}
.lm-info .lm-local{color:var(--muted);font-size:14.5px;margin-top:6px;}
.lm-rule{width:44px;height:3px;background:var(--yellow);margin:22px 0;}
.lm-label{font-family:'Oswald',sans-serif;font-size:11.5px;letter-spacing:0.2em;text-transform:uppercase;color:var(--blue);margin-bottom:8px;}
.lm-reads{font-size:17px;line-height:1.6;color:var(--paper);}
.lm-dl{margin-top:24px;display:grid;grid-template-columns:110px 1fr;gap:10px 14px;font-size:14.5px;line-height:1.5;}
.lm-dl dt{font-family:'Oswald',sans-serif;font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--blue);padding-top:3px;}
.lm-dl dd{color:rgba(244,242,236,.86);}
.lm-actions{margin-top:28px;display:flex;flex-direction:column;gap:10px;}
.lm-actions .btn{justify-content:center;}
.btn-ghost[aria-pressed="true"]{background:rgba(255,212,0,.1);border-color:var(--yellow);color:var(--yellow);}
.lm-note{color:var(--muted);font-size:13px;line-height:1.55;margin-top:14px;}
.lm-credit{color:#6f6c66;font-size:12px;margin-top:16px;line-height:1.5;}
.lm-nav{margin-top:auto;padding-top:26px;display:flex;justify-content:space-between;gap:10px;}
.lm-nav button{
  background:none;border:0;color:var(--muted);font-family:'Oswald',sans-serif;font-size:12.5px;letter-spacing:0.12em;
  text-transform:uppercase;cursor:pointer;padding:6px 0;display:flex;align-items:center;gap:8px;
}
.lm-nav button:hover{color:var(--paper);}
.lm-nav svg{width:14px;height:14px;}

.lm-close{
  position:absolute;top:14px;right:14px;z-index:5;width:42px;height:42px;border-radius:50%;
  background:rgba(10,10,12,.7);border:1px solid rgba(244,242,236,.28);color:var(--paper);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.lm-close:hover{border-color:var(--yellow);}
.lm-close svg{width:18px;height:18px;}
.lm-stage .fs-arrow{width:46px;height:46px;}

@media (max-width:980px){
  .lm-box{inset:0;border-radius:0;border:0;grid-template-columns:1fr;grid-template-rows:auto 1fr;overflow-y:auto;display:block;}
  .lm-gallery{height:auto;}
  .lm-stage{height:58vh;height:58svh;flex:none;}
  .lm-info{border-left:0;border-top:1px solid var(--line);padding:26px 20px 110px;overflow:visible;}
  .lm-stage .fs-arrow{width:38px;height:38px;}
  .lm-stage .fs-arrow.left{left:8px;} .lm-stage .fs-arrow.right{right:8px;}
  .lm-thumbs button{width:72px;height:50px;}
}

/* ---------- SHORTLIST BAR ---------- */
.sl-bar{
  position:fixed;left:50%;bottom:20px;z-index:250;transform:translate(-50%,140%);
  width:min(760px,calc(100% - 32px));
  background:rgba(21,21,25,.97);backdrop-filter:blur(12px);border:1px solid rgba(244,242,236,.16);
  border-radius:8px;box-shadow:0 18px 50px rgba(0,0,0,.5);
  display:flex;align-items:center;gap:16px;padding:12px 12px 12px 18px;
  transition:transform .35s cubic-bezier(.65,0,.35,1);
}
.sl-bar.show{transform:translate(-50%,0);}
body.modal-open .sl-bar{transform:translate(-50%,160%);}
.sl-bar .sl-count{font-family:'Oswald',sans-serif;font-size:13px;letter-spacing:0.12em;text-transform:uppercase;white-space:nowrap;}
.sl-bar .sl-count b{color:var(--yellow);font-weight:600;}
.sl-thumbs{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;}
.sl-thumbs::-webkit-scrollbar{display:none;}
.sl-thumb{position:relative;flex:none;width:52px;height:38px;border-radius:3px;overflow:hidden;border:1px solid var(--line);padding:0;cursor:pointer;background:#111;}
.sl-thumb img{width:100%;height:100%;object-fit:cover;}
.sl-thumb span{position:absolute;left:2px;bottom:2px;background:var(--yellow);color:#0a0a0c;font:600 9.5px 'Oswald',sans-serif;padding:0 3px;border-radius:2px;}
.sl-bar .btn{padding:12px 18px;white-space:nowrap;}
.sl-clear{background:none;border:0;color:var(--muted);font-size:12.5px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;}
.sl-clear:hover{color:var(--paper);}
@media (max-width:620px){
  .sl-bar{gap:10px;padding:10px 10px 10px 14px;bottom:12px;}
  .sl-thumbs{display:none;}
  .sl-bar .sl-count{flex:1;}
}

.toast{
  position:fixed;left:50%;top:84px;transform:translate(-50%,-20px);z-index:400;opacity:0;pointer-events:none;
  background:var(--paper);color:#0a0a0c;font-size:14px;font-weight:600;padding:10px 16px;border-radius:4px;
  transition:opacity .25s ease,transform .25s ease;
}
.toast.show{opacity:1;transform:translate(-50%,0);}

@media (prefers-reduced-motion: reduce){
  .ch-tile img,.lcard-media img,.lcard,.sl-bar{transition:none;}
}
