/* ==== TCG Lanka catalogue pages (v2) ==== */
/* 8px spacing scale */
:root{--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:40px;--s6:48px;--s8:64px;--s10:80px;--s12:96px;
  --bg:#09090b;--surface:#121215;--surface-2:#17171b;--line:rgba(255,255,255,.08);--line-2:rgba(255,255,255,.14);
  --fg:#f4f2ee;--fg-2:#b9b5ad;--fg-3:#86827a;--display:"Bricolage Grotesque",Inter,system-ui,sans-serif}
/* themes: a1 main accent, a2 secondary, on = text on a1 */
.theme-all{--a1:#e8c873;--a2:#9c7426;--on:#111}
.theme-pokemon{--a1:#ffcb05;--a2:#e3350d;--on:#141005}
.theme-one-piece{--a1:#ef4444;--a2:#1e3a8a;--on:#fff}
.theme-riftbound{--a1:#a78bfa;--a2:#14b8a6;--on:#0d0a1a}
.theme-lorcana{--a1:#e8c873;--a2:#3b5bdb;--on:#0b1230}
.theme-collectibles{--a1:#e8c873;--a2:#b07d2b;--on:#141005}
.theme-gems{--a1:#34d399;--a2:#a855f7;--on:#04130d}

body.cat-page{background:var(--bg);color:var(--fg);font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.6}
.cat-page .ph{color:var(--fg-3);opacity:1;border-color:rgba(255,255,255,.22);font-size:.78rem;padding:1px 8px;border-radius:999px}
.c-wrap{width:min(1200px,100% - 48px);margin-inline:auto}

/* header polish */
.cat-page .nav{background:rgba(9,9,11,.72);backdrop-filter:saturate(160%) blur(16px);-webkit-backdrop-filter:saturate(160%) blur(16px);border-bottom:1px solid var(--line);padding:12px max(24px,calc((100% - 1200px)/2));height:68px}
.cat-page .nav-logo img{height:38px}
.cat-page .nav-links{gap:28px}
.cat-page .nav-links a{font-size:.875rem;color:var(--fg-2);font-weight:500}
.cat-page .nav-links a.is-active{color:var(--fg)}
.cat-page .nav-links .btn-gold{padding:8px 18px;color:#111}

/* buttons */
.cbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 24px;border-radius:999px;font:600 .9375rem/1 var(--display);letter-spacing:-.005em;text-decoration:none;transition:transform .2s ease,box-shadow .25s ease,background .2s,border-color .2s;white-space:nowrap}
.cbtn svg{width:18px;height:18px;flex:none}
.cbtn-primary{background:linear-gradient(180deg,#f2d48a,#d4a94f);color:#14100a;box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 8px 24px -10px rgba(212,169,79,.7)}
.cbtn-primary:hover{transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 12px 30px -10px rgba(212,169,79,.9)}
.cbtn-ghost{border:1px solid var(--line-2);color:var(--fg);background:rgba(255,255,255,.03)}
.cbtn-ghost:hover{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.06)}
.cbtn-sm{height:40px;padding:0 16px;font-size:.875rem}
.cbtn-icon{width:40px;height:40px;padding:0;border:1px solid var(--line-2);color:var(--fg-2);background:transparent}
.cbtn-icon:hover{color:var(--fg);border-color:rgba(255,255,255,.35)}

/* hero */
.c-hero{position:relative;overflow:hidden;padding:var(--s10) 0 var(--s12);isolation:isolate}
.c-hero-bg{position:absolute;inset:0;z-index:-1;
  background:
   radial-gradient(60% 80% at 85% 20%,color-mix(in srgb,var(--a1) 28%,transparent),transparent 70%),
   radial-gradient(50% 70% at 10% 100%,color-mix(in srgb,var(--a2) 30%,transparent),transparent 70%),
   linear-gradient(180deg,#0c0c0f,var(--bg))}
.c-hero-bg::after{content:"";position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:48px 48px;-webkit-mask-image:radial-gradient(70% 70% at 70% 40%,#000,transparent);mask-image:radial-gradient(70% 70% at 70% 40%,#000,transparent)}
.c-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--s8);align-items:center}
.crumbs{display:flex;gap:8px;align-items:center;font-size:.8125rem;color:var(--fg-3);margin-bottom:var(--s4)}
.crumbs a{color:var(--fg-2);text-decoration:none}.crumbs a:hover{color:var(--fg)}
.crumbs [aria-current]{color:var(--fg)}
.c-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--a1) 35%,transparent);background:color-mix(in srgb,var(--a1) 8%,transparent);color:var(--a1);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--s3)}
.hero-ico{width:16px;height:16px}
.c-hero h1{font-family:var(--display);font-weight:800;font-size:clamp(2.75rem,6.4vw,5.25rem);line-height:.98;letter-spacing:-.035em;margin:0 0 var(--s2);
  background:linear-gradient(180deg,#fff 30%,color-mix(in srgb,var(--a1) 55%,#fff));-webkit-background-clip:text;background-clip:text;color:transparent}
.c-tagline{font-family:var(--display);font-size:clamp(1.25rem,2.2vw,1.625rem);font-weight:500;color:var(--a1);letter-spacing:-.01em;margin-bottom:var(--s3)}
.c-desc{max-width:560px;color:var(--fg-2);font-size:1.0625rem;line-height:1.7}
.hero-note{margin-top:var(--s2)}
.c-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--s5)}

/* hero visuals */
.c-hero-visual{display:grid;place-items:center;min-height:380px}
.hv-photo{position:relative;width:min(380px,100%);aspect-ratio:1;border-radius:28px;padding:var(--s3);
  background:linear-gradient(160deg,rgba(255,255,255,.10),rgba(255,255,255,.02));border:1px solid var(--line-2);box-shadow:0 40px 80px -30px rgba(0,0,0,.8);transform:rotate(2deg)}
.hv-photo img{width:100%;height:100%;object-fit:cover;border-radius:18px;position:relative}
.hv-glow{position:absolute;inset:10%;border-radius:50%;background:var(--a1);filter:blur(70px);opacity:.35}
.hv-caption{position:absolute;left:var(--s3);bottom:-14px;background:#0f0f12;border:1px solid var(--line-2);color:var(--fg);font:600 .8125rem var(--display);padding:8px 14px;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.hv-stack{position:relative;width:240px;height:330px}
.cb{position:absolute;inset:0;border-radius:18px;border:1px solid rgba(255,255,255,.18);box-shadow:0 30px 60px -20px rgba(0,0,0,.8);
  background:
   radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--a1) 40%,transparent),transparent 60%),
   repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 1px,transparent 1px 12px),
   repeating-linear-gradient(-45deg,rgba(255,255,255,.05) 0 1px,transparent 1px 12px),
   linear-gradient(160deg,color-mix(in srgb,var(--a2) 70%,#000),#0d0d10)}
.cb::after{content:"";position:absolute;inset:10px;border-radius:12px;border:1px solid color-mix(in srgb,var(--a1) 45%,transparent)}
.cb1{transform:rotate(-14deg) translate(-46px,10px);opacity:.55}
.cb2{transform:rotate(-5deg) translate(-18px,2px);opacity:.8}
.cb3{transform:rotate(6deg) translate(22px,-6px);display:grid;place-items:center}
.cb-ico{width:84px;height:84px;color:var(--a1);filter:drop-shadow(0 0 18px color-mix(in srgb,var(--a1) 60%,transparent))}

/* sticky tabs */
.c-tabs-wrap{position:sticky;top:68px;z-index:40;background:rgba(9,9,11,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-block:1px solid var(--line)}
.c-tabs{display:flex;gap:8px;overflow-x:auto;padding:12px 0;scrollbar-width:none;scroll-behavior:smooth}
.c-tabs::-webkit-scrollbar{display:none}
.c-tab{flex:none;display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px 0 12px;border-radius:999px;border:1px solid var(--line-2);color:var(--fg-2);text-decoration:none;font:500 .875rem Inter,sans-serif;transition:.2s}
.c-tab svg{width:16px;height:16px;color:var(--a1)}
.c-tab em{font-style:normal;font-size:.75rem;color:var(--fg-3);background:rgba(255,255,255,.06);border-radius:999px;padding:1px 8px}
.c-tab:hover{color:var(--fg);border-color:rgba(255,255,255,.28)}
.c-tab[aria-current="page"]{background:color-mix(in srgb,var(--a1) 14%,transparent);border-color:color-mix(in srgb,var(--a1) 55%,transparent);color:var(--fg)}
.c-tab[aria-current="page"] em{background:var(--a1);color:var(--on)}

/* shop */
.c-shop{padding:var(--s6) 0 var(--s12)}
.c-shop-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s2);flex-wrap:wrap;margin-bottom:var(--s4)}
.c-shop-head h2{font-family:var(--display);font-size:1.5rem;font-weight:700;margin:0;color:var(--fg)}
.c-note{color:var(--fg-3);font-size:.875rem;max-width:520px}
.c-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s3)}

/* product card */
.pc{display:flex;flex-direction:column;background:linear-gradient(180deg,var(--surface-2),var(--surface));border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s;animation:pcIn .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes pcIn{from{opacity:0;transform:translateY(12px)}}
.pc:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--a1) 35%,transparent);box-shadow:0 24px 50px -24px rgba(0,0,0,.9),0 0 0 1px color-mix(in srgb,var(--a1) 15%,transparent)}
.pc-media{position:relative;aspect-ratio:4/5;margin:8px 8px 0;border-radius:14px;overflow:hidden;
  background:radial-gradient(80% 60% at 50% 40%,color-mix(in srgb,var(--a1) 22%,#1d1d22),#141417)}
.pc-media img{width:100%;height:100%;object-fit:contain;padding:var(--s3);transition:transform .5s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 18px 24px rgba(0,0,0,.45))}
.pc:hover .pc-media img{transform:scale(1.04)}
.cardback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s2);color:var(--a1);
  background:
   radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--a1) 22%,transparent),transparent 55%),
   repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 1px,transparent 1px 14px),
   repeating-linear-gradient(-45deg,rgba(255,255,255,.035) 0 1px,transparent 1px 14px),
   linear-gradient(160deg,color-mix(in srgb,var(--a2) 35%,#121215),#0e0e11)}
.cardback::before{content:"";position:absolute;inset:14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--a1) 28%,transparent)}
.cardback svg{width:56px;height:56px;opacity:.9;filter:drop-shadow(0 0 16px color-mix(in srgb,var(--a1) 50%,transparent))}
.cardback span{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3)}
.pc-flag{position:absolute;top:12px;right:12px;font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2);background:rgba(9,9,11,.6);backdrop-filter:blur(8px);border:1px dashed rgba(255,255,255,.25);padding:4px 10px;border-radius:999px}
.pc-ribbon{position:absolute;left:12px;bottom:12px;font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--on);background:var(--a1);padding:4px 10px;border-radius:999px}
.pc-body{display:flex;flex-direction:column;flex:1;padding:var(--s2) var(--s3) var(--s3)}
.pc-cat{font-size:.6875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--a1);margin-bottom:6px}
.pc h3{font-family:var(--display);font-size:1.125rem;font-weight:700;line-height:1.25;letter-spacing:-.015em;margin:0 0 var(--s1);color:var(--fg)}
.pc p{color:var(--fg-2);font-size:.875rem;line-height:1.55;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--s2)}
.pc-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s1);padding-top:var(--s2);border-top:1px solid var(--line);margin-bottom:var(--s2);min-height:44px}
.pc-price b{font-family:var(--display);font-size:1.125rem;color:var(--fg)}
.badge{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}
.badge i{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.badge.in{color:#4ade80;background:rgba(74,222,128,.1)}
.badge.low{color:#fbbf24;background:rgba(251,191,36,.1)}
.badge.out{color:#f87171;background:rgba(248,113,113,.1)}
.badge.preorder{color:#93c5fd;background:rgba(147,197,253,.1)}
.pc-actions{display:grid;grid-template-columns:1fr auto;gap:var(--s1)}
.c-empty{color:var(--fg-3);text-align:center;padding:var(--s8) 0}

/* CTA */
.c-cta{margin-top:var(--s10);display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center;justify-content:space-between;padding:var(--s5);border-radius:24px;border:1px solid var(--line-2);
  background:radial-gradient(60% 120% at 100% 0%,color-mix(in srgb,var(--a1) 16%,transparent),transparent 60%),linear-gradient(180deg,var(--surface-2),var(--surface))}
.c-cta h3{font-family:var(--display);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:4px}
.c-cta p{color:var(--fg-2)}
.c-cta-actions{display:flex;gap:12px;flex-wrap:wrap}

/* footer */
.c-footer{background:#060607;border-top:1px solid var(--line);padding:var(--s8) 0 var(--s4);color:var(--fg-3)}
.c-foot{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--s5);align-items:start;text-align:left}
.c-foot .foot-logo{height:48px;margin-bottom:var(--s2)}
.c-foot-brand p{font-size:.875rem;line-height:1.7}
.c-foot-links{display:flex;flex-direction:column;gap:10px;font-size:.875rem}
.c-foot-links a{color:var(--fg-2);text-decoration:none}.c-foot-links a:hover{color:var(--fg)}
.c-foot-links .ph{align-self:flex-start}
.c-legal{margin-top:var(--s6);padding-top:var(--s3);border-top:1px solid var(--line);font-size:.75rem;color:var(--fg-3)}

/* responsive */
@media (max-width:980px){
  .c-hero-grid{grid-template-columns:1fr;gap:var(--s5)}
  .c-hero-visual{min-height:0}
  .c-hero{padding:var(--s6) 0 var(--s8)}
  .cat-page .nav{padding:12px 24px}
  .c-foot{grid-template-columns:1fr 1fr}
  .c-foot-brand{grid-column:1/-1}
}
@media (max-width:620px){
  .c-wrap{width:calc(100% - 32px)}
  .cat-page .nav{padding:12px 16px;height:60px}
  .c-tabs-wrap{top:60px}
  .c-hero{padding:var(--s4) 0 var(--s6)}
  .crumbs{margin-bottom:var(--s3)}
  .c-desc{font-size:1rem}
  .c-hero-cta{margin-top:var(--s4)}
  .c-hero-cta .cbtn{flex:1}
  .hv-photo{width:min(260px,80%)}
  .hv-stack{width:170px;height:234px}
  .cb-ico{width:60px;height:60px}
  .c-grid{grid-template-columns:1fr 1fr;gap:12px}
  .pc{border-radius:16px}
  .pc-media{margin:6px 6px 0;border-radius:12px}
  .pc-media img{padding:var(--s2)}
  .pc-body{padding:12px 12px 14px}
  .pc h3{font-size:.9375rem}
  .pc p{font-size:.8125rem;-webkit-line-clamp:3}
  .pc-foot{flex-direction:column;align-items:flex-start;gap:6px;min-height:0}
  .pc-flag{top:8px;right:8px;font-size:.625rem;padding:3px 8px}
  .pc-ribbon{left:8px;bottom:8px;font-size:.5625rem;padding:3px 8px}
  .cardback svg{width:40px;height:40px}
  .cardback span{font-size:.625rem}
  .c-cta{padding:var(--s3)}
  .c-cta-actions{width:100%}.c-cta-actions .cbtn{flex:1}
  .c-shop-head h2{font-size:1.25rem}
}
@media (max-width:360px){.c-grid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.pc{animation:none}.pc,.pc-media img{transition:none}}
/* iteration 2 fixes */
.cat-page .ph{white-space:normal}
.cat-page .draft-banner .ph{color:#111;border-color:rgba(0,0,0,.45);opacity:.85}
.pc-media img.is-round{object-fit:cover;padding:0;width:78%;height:auto;aspect-ratio:1;border-radius:50%;position:absolute;inset:0;margin:auto;filter:none;box-shadow:0 20px 40px -12px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.12)}
.pc:hover .pc-media img.is-round{transform:scale(1.04)}
@media (min-width:621px){.c-grid:has(> .pc:nth-child(2):last-child),.c-grid:has(> .pc:only-child){grid-template-columns:repeat(auto-fill,minmax(260px,288px))}}
@media (max-width:620px){.c-hero-visual{margin-top:8px}.hv-photo{transform:rotate(1.5deg)}}
@media (max-width:980px){.cat-page .nav{backdrop-filter:none;-webkit-backdrop-filter:none;background:#09090b}}
/* v3: product illustrations, sample label, featured strip */
.pc-art{position:absolute;inset:0;width:100%;height:100%;padding:8% 6% 4%;filter:drop-shadow(0 16px 22px rgba(0,0,0,.45));transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.pc:hover .pc-art{transform:translateY(-4px) scale(1.03)}
.pc.is-sample .pc-flag{border-style:solid;border-color:rgba(255,255,255,.18);color:var(--fg-3)}
.c-sample{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--a1,#e8c873);margin-right:8px}
.pc-view{width:100%;height:40px}
.featured{background:#09090b;color:#f4f2ee;padding:var(--s10) 0;border-top:1px solid rgba(255,255,255,.06)}
.featured .kicker{color:#e8c873}
.featured h2{color:#fff;margin:0}
.f-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.featured .c-note{margin-bottom:var(--s4);color:#86827a}
.f-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3)}
.featured .pc h3{font-size:1.0625rem}
@media (max-width:980px){.f-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.f-grid{gap:12px}.featured{padding:var(--s8) 0}.pc-view{font-size:.75rem;padding:0 8px}}
/* v4: contact, hours, open status, floating WhatsApp */
.open-pill{display:inline-flex;align-items:center;gap:8px;font:500 .875rem Inter,sans-serif;padding:6px 14px 6px 12px;border-radius:999px;margin-bottom:16px;border:1px solid}
.open-pill[hidden]{display:none}
.open-pill i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:pulse 2s infinite}
.open-pill b{font-weight:700}
.open-pill span{opacity:.8}
.open-pill.is-open{color:#15803d;background:rgba(22,163,74,.08);border-color:rgba(22,163,74,.3)}
.open-pill.is-closed{color:#b45309;background:rgba(217,119,6,.08);border-color:rgba(217,119,6,.3)}
.open-pill.is-closed i{animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.5)}70%{box-shadow:0 0 0 8px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
.open-pill.sm{font-size:.75rem;padding:3px 10px 3px 8px;margin:0;vertical-align:middle}
.cat-page .open-pill.is-open,.footer .open-pill.is-open{color:#4ade80;background:rgba(74,222,128,.08);border-color:rgba(74,222,128,.3)}
.cat-page .open-pill.is-closed,.footer .open-pill.is-closed{color:#fbbf24;background:rgba(251,191,36,.08);border-color:rgba(251,191,36,.3)}
.hours-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:20px 22px;margin:8px 0 24px;box-shadow:0 12px 30px -18px rgba(0,0,0,.35);max-width:440px}
.hours-card h3{font-size:1.05rem;margin-bottom:10px}
.hours{width:100%;border-collapse:collapse;font-size:.92rem}
.hours th,.hours td{padding:8px 10px;text-align:left;border-bottom:1px solid rgba(0,0,0,.06)}
.hours th{font-weight:500;color:#333}
.hours td{text-align:right;font-weight:600;color:#111;font-variant-numeric:tabular-nums}
.hours tr:last-child th,.hours tr:last-child td{border-bottom:0}
.hours tr.closed td{color:#9a9488;font-weight:500}
.hours tr.is-today{background:linear-gradient(90deg,rgba(212,169,79,.18),rgba(212,169,79,.06))}
.hours tr.is-today th{font-weight:700;color:#111}
.hours tr.is-today th:first-child{border-radius:10px 0 0 10px}.hours tr.is-today td{border-radius:0 10px 10px 0}
.hours em{font-style:normal;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:#111;color:#e8c873;padding:2px 7px;border-radius:999px;margin-left:6px;vertical-align:1px}
.hours-tz{font-size:.75rem;color:#86827a;margin-top:8px}
.contact-list a{color:#111;font-weight:600}
.foot-contact{font-size:.9rem;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;justify-content:center}
.foot-contact a{color:var(--gold-l,#f2d48a)}
.c-foot-contact{margin-top:12px;font-size:.875rem;line-height:1.7}
.c-foot-contact a{color:#f2d48a;text-decoration:none;font-weight:600}
.c-foot-closed{color:#86827a}
.c-foot-brand .open-pill{margin-top:12px}
.c-cta p a{color:#f2d48a;font-weight:600;text-decoration:none}
.c-cta-hours{margin-top:6px;font-size:.875rem;color:var(--fg-3)!important;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.wa-fab{position:fixed;right:20px;bottom:20px;z-index:70;display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 18px 0 14px;border-radius:999px;
  background:rgba(12,12,14,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fff;text-decoration:none;font:600 .9rem "Bricolage Grotesque",Inter,sans-serif;
  border:1px solid rgba(212,169,79,.45);box-shadow:0 14px 34px -12px rgba(0,0,0,.7),0 0 0 4px rgba(37,211,102,.08);transition:transform .2s,box-shadow .2s}
.wa-fab svg{width:24px;height:24px;color:#25D366}
.wa-fab:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px rgba(0,0,0,.8),0 0 0 6px rgba(37,211,102,.12)}
@media (max-width:620px){.wa-fab{right:14px;bottom:14px;height:52px;width:52px;padding:0;justify-content:center}.wa-fab span{display:none}.hours-card{padding:16px}}
@media print{.wa-fab{display:none}}
/* ===== v5: filters / search / sort ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.c-layout{display:grid;grid-template-columns:272px minmax(0,1fr);gap:var(--s4);align-items:start}
.c-results{min-width:0}
.c-filters{position:sticky;top:140px;max-height:calc(100vh - 160px);overflow:auto;padding:var(--s3);border:1px solid var(--line);border-radius:20px;background:linear-gradient(180deg,var(--surface-2),var(--surface));scrollbar-width:thin;scrollbar-color:#333 transparent;outline:none}
.cf-sheet-head,.cf-sheet-foot{display:none}
.cf-group{border:0;padding:0 0 var(--s3);margin:0 0 var(--s3);border-bottom:1px solid var(--line)}
.cf-group legend{font:600 .75rem Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-bottom:12px;padding:0}
.cf-chips{display:flex;flex-wrap:wrap;gap:8px}
.cf-chip input{position:absolute;opacity:0;pointer-events:none}
.cf-chip span{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px 0 10px;border-radius:999px;border:1px solid var(--line-2);color:var(--fg-2);font-size:.8125rem;font-weight:500;cursor:pointer;transition:.2s}
.cf-chip svg{width:14px;height:14px;color:var(--a1)}
.cf-chip input:checked+span{background:color-mix(in srgb,var(--a1) 16%,transparent);border-color:color-mix(in srgb,var(--a1) 60%,transparent);color:var(--fg)}
.cf-chip input:focus-visible+span{outline:2px solid var(--a1);outline-offset:2px}
.cf-check{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;padding:6px 0;cursor:pointer;font-size:.875rem;color:var(--fg-2)}
.cf-check input{position:absolute;opacity:0;pointer-events:none}
.cf-box{width:18px;height:18px;border-radius:6px;border:1px solid rgba(255,255,255,.25);display:grid;place-items:center;transition:.15s}
.cf-check input:checked+.cf-box{background:#e8c873;border-color:#e8c873}
.cf-check input:checked+.cf-box::after{content:"";width:9px;height:5px;border:2px solid #111;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.cf-check input:focus-visible+.cf-box{outline:2px solid #e8c873;outline-offset:2px}
.cf-check:hover .cf-lab{color:var(--fg)}
.cf-check input:checked~.cf-lab{color:var(--fg)}
.cf-check em{font-style:normal;font-size:.75rem;color:var(--fg-3);background:rgba(255,255,255,.05);border-radius:999px;padding:1px 8px}
.cf-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--s2)}
.cf-preset{height:30px;padding:0 10px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--fg-2);font:500 .75rem Inter,sans-serif;cursor:pointer;transition:.2s}
.cf-preset:hover{color:var(--fg);border-color:rgba(255,255,255,.3)}
.cf-preset[aria-pressed="true"]{background:#e8c873;border-color:#e8c873;color:#111}
.cf-range{position:relative;height:28px;margin:4px 6px 10px}
.cf-track{position:absolute;left:0;right:0;top:12px;height:4px;border-radius:4px;background:linear-gradient(90deg,rgba(255,255,255,.12) var(--a),#e8c873 var(--a),#d4a94f var(--b),rgba(255,255,255,.12) var(--b))}
.cf-range input{position:absolute;inset:0;width:100%;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none;height:28px}
.cf-range input::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#f2d48a;border:3px solid #111;box-shadow:0 0 0 1px #e8c873,0 4px 10px rgba(0,0,0,.5);cursor:grab}
.cf-range input::-moz-range-thumb{pointer-events:auto;width:14px;height:14px;border-radius:50%;background:#f2d48a;border:3px solid #111;box-shadow:0 0 0 1px #e8c873;cursor:grab}
.cf-range input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px rgba(232,200,115,.5)}
.cf-minmax{display:flex;align-items:flex-end;gap:8px;margin-bottom:12px}
.cf-minmax label{flex:1;display:flex;flex-direction:column;gap:4px;font-size:.6875rem;color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em}
.cf-minmax input{width:100%;height:38px;border-radius:10px;border:1px solid var(--line-2);background:#0d0d10;color:var(--fg);padding:0 10px;font:500 .875rem Inter,sans-serif;-moz-appearance:textfield}
.cf-minmax input:focus{outline:none;border-color:#e8c873}
.cf-dash{color:var(--fg-3);padding-bottom:10px}
.cf-toggle{display:flex;align-items:center;gap:10px;font-size:.8125rem;color:var(--fg-2);cursor:pointer;margin-top:8px;line-height:1.35}
.cf-toggle input{position:absolute;opacity:0;pointer-events:none}
.cf-switch{flex:none;width:34px;height:20px;border-radius:999px;background:rgba(255,255,255,.15);position:relative;transition:.2s}
.cf-switch::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#fff;transition:.2s}
.cf-toggle input:checked+.cf-switch{background:#d4a94f}
.cf-toggle input:checked+.cf-switch::after{left:17px;background:#111}
.cf-toggle input:focus-visible+.cf-switch{outline:2px solid #e8c873;outline-offset:2px}
.cf-clear-d{width:100%}
/* toolbar */
.c-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:var(--s2)}
.cf-search{flex:1;position:relative;display:flex;align-items:center}
.cf-search svg{position:absolute;left:16px;width:18px;height:18px;color:var(--fg-3);pointer-events:none}
.cf-search input{width:100%;height:48px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);padding:0 18px 0 46px;font:400 .9375rem Inter,sans-serif;transition:border-color .2s,box-shadow .2s}
.cf-search input::placeholder{color:var(--fg-3)}
.cf-search input:focus{outline:none;border-color:#e8c873;box-shadow:0 0 0 4px rgba(232,200,115,.12)}
.cf-sort{display:flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--fg-3)}
.cf-sort select{height:48px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b9b5ad' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center/16px;color:var(--fg);padding:0 40px 0 16px;font:500 .875rem Inter,sans-serif;-webkit-appearance:none;appearance:none;cursor:pointer}
.cf-sort select:focus{outline:none;border-color:#e8c873}
.cf-sort select option{background:#121215}
.cf-open{display:none;height:48px}
.cf-open svg{width:18px;height:18px}
.cf-badge{font-style:normal;min-width:20px;height:20px;border-radius:999px;background:#e8c873;color:#111;font:700 .7rem Inter;display:inline-grid;place-items:center;padding:0 6px}
.cf-badge[hidden]{display:none}
.c-active{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:34px;margin-bottom:var(--s3)}
.c-result-count{font:600 .9375rem "Bricolage Grotesque",Inter,sans-serif;color:var(--fg);margin-right:4px}
.c-chips{display:flex;flex-wrap:wrap;gap:8px}
.c-chip{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 8px 0 12px;border-radius:999px;border:1px solid rgba(232,200,115,.4);background:rgba(232,200,115,.08);color:var(--fg);font:500 .8125rem Inter,sans-serif;cursor:pointer;transition:.2s}
.c-chip span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.1);font-size:.85rem;line-height:1}
.c-chip:hover{border-color:#e8c873}.c-chip:hover span{background:#e8c873;color:#111}
.c-chip-clear{height:30px;padding:0 6px;border:0;background:none;color:var(--fg-2);font:600 .8125rem Inter,sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.c-chip-clear:hover{color:var(--fg)}
.c-results .c-grid{grid-template-columns:repeat(auto-fill,minmax(232px,1fr))}
.c-grid[hidden]{display:none}
.c-empty{text-align:center;padding:var(--s10) var(--s3);border:1px dashed var(--line-2);border-radius:24px;background:radial-gradient(50% 80% at 50% 0%,rgba(232,200,115,.08),transparent 70%)}
.c-empty-ico{font-size:2rem;color:#e8c873;margin-bottom:8px}
.c-empty h3{font-family:var(--display);font-size:1.375rem;margin-bottom:8px}
.c-empty p{color:var(--fg-2);max-width:420px;margin:0 auto var(--s3)}
.c-empty .c-cta-actions{justify-content:center}
.c-cta-actions button.cbtn{border:0;cursor:pointer}
button.cbtn-ghost{border:1px solid var(--line-2)!important;background:rgba(255,255,255,.03);color:var(--fg);cursor:pointer}
/* drawer (tablet/mobile) */
@media (max-width:980px){
  .c-layout{grid-template-columns:1fr}
  .cf-open{display:inline-flex}
  .cf-sort span{display:none}
  .c-filters{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:90;max-height:88vh;border-radius:24px 24px 0 0;padding:0;display:flex;flex-direction:column;transform:translateY(105%);transition:transform .35s cubic-bezier(.2,.7,.2,1);visibility:hidden;background:#111114;border:1px solid var(--line-2);box-shadow:0 -20px 60px rgba(0,0,0,.6)}
  .c-filters.is-open{transform:none;visibility:visible}
  .cf-sheet-head{display:flex;justify-content:space-between;align-items:center;padding:20px 20px 12px;border-bottom:1px solid var(--line);position:relative}
  .cf-sheet-head::before{content:"";position:absolute;top:8px;left:50%;width:40px;height:4px;border-radius:4px;background:rgba(255,255,255,.2);transform:translateX(-50%)}
  .cf-sheet-head h3{font-family:var(--display);font-size:1.25rem}
  .cf-close{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2);background:none;color:var(--fg);font-size:1.4rem;cursor:pointer}
  .cf-form{overflow:auto;padding:20px;flex:1}
  .cf-clear-d{display:none}
  .cf-sheet-foot{display:grid;grid-template-columns:1fr 1.6fr;gap:10px;padding:14px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#111114}
  .cf-backdrop{position:fixed;inset:0;z-index:85;background:rgba(0,0,0,.6);backdrop-filter:blur(2px)}
  .cf-backdrop[hidden]{display:none}
  body.cf-lock{overflow:hidden}
  body.cf-lock .wa-fab{display:none}
}
@media (max-width:620px){
  .c-toolbar{flex-wrap:wrap;gap:8px}
  .cf-search{flex:1 1 100%}
  .cf-sort{flex:1}.cf-sort select{width:100%;height:44px}
  .cf-open{height:44px;flex:none}
  .cf-search input{height:46px}
  .c-results .c-grid{grid-template-columns:1fr 1fr}
}
