/* ============================================================
   AIRSOFT SHOPS - /nz/airsoft-shops/
   Loaded after styles.css and where-to-play.css (cards, board, faq,
   pitch, panels). Bump SHOPS_CSS_V in nz/airsoft-shops/index.html.
   ============================================================ */

/* Region filter (shown by js/where-to-play.js) */
.shop-filter { display: flex; flex-wrap: wrap; margin-bottom: 22px; width: fit-content; max-width: 100%; }
.shop-filter button span { color: var(--bone-dim); }
.shop-filter button[aria-pressed="true"] span { color: inherit; opacity: .7; }

/* Shop cards: the club card (.cc) plus status, rating and a footer. */
.scards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.sc { position: relative; }
.sc[hidden] { display: none; }
.sc .cc__cover { aspect-ratio: 16 / 6; }
.sc .cc__name { font-size: 21px; overflow-wrap: anywhere; }
.sc__logo img { object-fit: contain; padding: 4px; }
.sc__status {
    position: absolute; top: 12px; right: 12px; z-index: 2;
    padding: 5px 9px; border-radius: 4px;
    font-family: var(--font-mono); font-size: 10px; letter-spacing: 1.4px; text-transform: uppercase;
    color: var(--bone); background: rgba(12,15,8,.78); backdrop-filter: blur(4px);
    border: 1px solid rgba(231,232,214,.18);
}
.sc__status.is-claimed { color: var(--ink); background: var(--lime); border-color: var(--lime); }
.sc__rating { margin-top: 5px; font-size: 15px; color: var(--bone-dim); }
.sc__rating b { color: var(--bone); font-weight: 600; }
.sc__rating.is-none { font-family: var(--font-mono); font-size: 12px; letter-spacing: 1px; text-transform: uppercase; }
.sc__star { color: var(--lime); }
.sc__foot { padding: 0 18px 18px; display: grid; gap: 6px; }
.sc__where { font-family: var(--font-mono); font-size: 12px; letter-spacing: .8px; text-transform: uppercase; color: var(--bone-dim); }
.sc__more { font-size: 11px; color: var(--lime); }
.sc__blurb {
    font-size: 15px; color: var(--bone-dim); line-height: 1.45;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* By-region store lists */
.sregions { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 28px 32px; }
.sregion .dir__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 10px; border-bottom: 1px solid rgba(194,208,70,.2); }
.sregion .dir__head h3 { font-size: 21px; text-transform: uppercase; }
.slist { list-style: none; margin: 0; padding: 0; }
.slist li { border-bottom: 1px dashed rgba(194,208,70,.14); }
.slist a { display: grid; gap: 2px; padding: 12px 0; color: var(--bone); transition: color .2s; }
.slist a:hover .nm { color: var(--lime); }
.slist .nm { font-weight: 600; font-size: 17px; }
.slist .lb { font-weight: 400; color: var(--bone-dim); font-size: 15px; }
.slist .ad { font-size: 15px; color: var(--bone-dim); }
.sregion__more { margin-top: 12px; font-size: 15px; }

@media (max-width: 640px) {
    .scards { grid-template-columns: 1fr; }
    .sregions { grid-template-columns: 1fr; }
    .shop-filter { width: auto; }
}
