.local-stores { color: #0f172a; background: #f7f9fc; padding: 16px 0 28px; font-family: "Noto Sans TC", system-ui, sans-serif; }
.local-stores *, .local-stores *::before, .local-stores *::after { box-sizing: border-box; }
.local-stores [hidden] { display: none !important; }
.local-stores a { color: inherit; text-decoration: none; }
.local-stores button, .local-stores select, .local-stores input { font: inherit; }
.local-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding-bottom: 18px; border-bottom: 1px solid #dce4ef; }
.local-eyebrow { display: inline-block; border-radius: 20px; background: #e0f2fe; color: #036a9c; padding: 4px 12px; font-size: 12px; font-weight: 800; }
.local-heading h2 { font-size: 23px; font-weight: 900; line-height: 1.5; margin: 6px 0 2px; letter-spacing: -.5px; }
.local-heading p { font-size: 14px; color: #52657e; margin: 0; line-height: 1.6; }
.local-regions { display: flex; flex-shrink: 0; gap: 3px; padding: 6px; background: #e2e8f0; border-radius: 18px; }
.local-stores button { cursor: pointer; }
.local-regions button { white-space: nowrap; border: 0; border-radius: 12px; background: transparent; color: #52657e; padding: 9px 13px; font-size: 12px; font-weight: 800; }
.local-regions button[aria-pressed="true"] { background: #fff; color: #0f172a; }
.local-categories { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 16px; }
.local-categories button { border: 1px solid #dce4ef; background: #fff; color: #334155; border-radius: 12px; padding: 9px 16px; font-size: 12px; font-weight: 800; }
.local-categories button[aria-pressed="true"] { color: #fff; background: #0f172a; border-color: #0f172a; }
.local-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 22px; }
.local-tools label, .local-count, .local-stores .store-pagination label { display: flex; align-items: center; gap: 8px; margin: 0; color: #52657e; font-size: 12px; font-weight: 500; }
.local-tools input, .local-tools select, .local-stores .store-pagination select { width: auto; max-width: 100%; min-height: 36px; padding: 6px 10px; border: 1px solid #dce4ef; border-radius: 10px; background: #fff; color: #334155; }
.local-tools input { width: 195px; }
.local-count { margin-left: auto; flex-wrap: wrap; }
.local-count p { font-size: 12px; margin: 0; }
.local-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.local-stores .local-card { display: flex; flex-direction: column; min-width: 0; padding: 0; border: 1px solid #dce4ef; border-radius: 24px; overflow: hidden; background: #fff; box-shadow: 0 2px 3px #0f172a08; }
.local-photo { display: block; position: relative; aspect-ratio: 1.55; overflow: hidden; background: #dceef1; }
.local-photo-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; background: linear-gradient(135deg, #d8eee9, #e3edfa); color: #527d86; font-size: 44px; font-weight: 800; }
.local-photo-placeholder small { font-size: 12px; letter-spacing: 3px; }
.local-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }
.local-photo:hover img { transform: scale(1.035); }
.local-badge { position: absolute; top: 12px; left: 12px; border-radius: 20px; background: #0a8970; color: white; font-size: 11px; padding: 5px 11px; font-weight: 800; line-height: 1.3; }
.local-kind-1 { background: #e91d53; }.local-kind-2 { background: #008abd; }.local-kind-4 { background: #d88400; }.local-kind-5 { background: #7955b2; }
.local-body { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.local-meta { display: flex; justify-content: space-between; gap: 6px; color: #64748b; font-size: 11px; font-weight: 700; line-height: 1.5; }
.local-meta strong { color: #da7900; white-space: nowrap; }
.local-stores .local-card h3 { color: #0f172a; font-size: 17px; font-weight: 900; line-height: 1.5; margin: 6px 0; }
.local-stores .local-description { color: #52657e; font-size: 12px; line-height: 1.5; margin: 0 0 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 36px; }
.local-coupon { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px; border: 1px solid #f5d67f; background: #fffbee; color: #ad5200; border-radius: 12px; font-size: 12px; line-height: 1.4; }
.local-coupon span { flex-shrink: 0; }.local-coupon strong { text-align: right; overflow-wrap: anywhere; }
.local-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.local-actions a { display: flex; justify-content: center; align-items: center; text-align: center; background: #f1f5f9; border-radius: 12px; padding: 9px 4px; font-size: 12px; line-height: 1.4; font-weight: 800; }
.local-actions a.local-primary { background: #008bc5; color: white; }
.local-stores :is(a, button, input, select):focus-visible { outline: 3px solid #0284c7; outline-offset: 3px; }
.local-empty { padding: 32px; text-align: center; color: #64748b; }
.local-stores .store-pagination { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 28px; }
.local-stores .store-pagination button { border: 1px solid #dce4ef; border-radius: 10px; padding: 10px 14px; background: #fff; color: #334155; font-size: 13px; }
.local-stores .store-pagination button:disabled { opacity: .45; cursor: default; }
@media (max-width: 1199px) { .local-heading { flex-wrap: wrap; }.local-count { margin-left: 0; }.local-grid { gap: 16px; }.local-body { padding: 12px; } }
@media (max-width: 991px) { .local-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.local-body { padding: 16px; } }
@media (max-width: 575px) {
    .local-heading h2 { font-size: 21px; }
    .local-regions { width: 100%; overflow-x: auto; border-radius: 14px; }
    .local-regions button { padding: 9px 10px; }
    .local-categories { gap: 6px; margin-top: 18px; }
    .local-categories button { padding: 9px 11px; }
    .local-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .local-tools { gap: 10px; }
    .local-stores .local-tools .local-search { flex-direction: column; align-items: stretch; width: 100%; gap: 6px; }
    .local-stores .local-tools .local-search input { flex: none; width: 100%; height: 48px; min-height: 48px; padding: 10px 14px; font-size: 16px; line-height: normal; }
    .local-count { width: 100%; justify-content: space-between; }
    .local-stores .store-pagination { gap: 8px; }
    .local-stores .store-pagination button { padding: 9px; }
}
@media (prefers-reduced-motion: reduce) { .local-photo img { transition: none; } }
