/* CSS 스타일은 그대로 유지되므로 생략 (원본 스타일 사용) */
:root {
    --premium-gold: #d4af37;
    --partner-blue: #0984e3;
    --homecare-purple: #6c5ce7;
    --text-main: #2d3436;
    --text-sub: #636e72;
    --primary-color: #6c5ce7;
    --open-color: #00b894;
    --closed-color: #b2bec3;
}
body { background:#f8f9fa; font-family:'Noto Sans KR', sans-serif; color: var(--text-main); margin:0; padding:0; }
.nearby-wrap { max-width:1200px; margin:0 auto; padding:20px 10px; }
.nearby-header { text-align:center; margin-bottom:25px; }
.header-title { display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:12px; }
.header-title i { font-size: 20px; color: var(--primary-color); }
.header-title h2 { font-size:24px; font-weight:700; margin:0; letter-spacing:-1px; }
.location-box { background:#fff; display:inline-block; padding:10px 20px; border-radius:50px; box-shadow:0 4px 12px rgba(0,0,0,0.05); }
#geoStatus { font-size:13px; margin:0; color:var(--primary-color); font-weight:700; }
.geo-address { font-size:12px; color:var(--text-sub); margin:3px 0 0 0; }
.retry-btn { display:none; margin-top:8px; border:none; background:none; color:var(--text-sub); font-size:11px; cursor:pointer; text-decoration:underline; }
.filter-container { margin-bottom:25px; display: flex; flex-direction: column; gap: 15px; }
.filter-scroll-box { display: flex; gap: 8px; overflow-x: auto; padding: 5px 2px 10px 2px; -webkit-overflow-scrolling: touch; }
.filter-scroll-box::-webkit-scrollbar { display: none; } 
.filter-btn { flex: 0 0 auto; background: #fff; border: 1px solid #eee; padding: 10px 20px; border-radius: 30px; font-size: 14px; font-weight: 500; color: #666; transition: all 0.2s; cursor:pointer; }
.filter-btn.active { background: var(--primary-color); color: #fff; border-color: var(--primary-color); font-weight: 700; }
.radius-select-wrapper { display: flex; justify-content: flex-end; }
#radiusFilter { border: 1px solid #eee; border-radius: 10px; padding: 8px 12px; background: #fff; font-size: 13px; color: var(--text-sub); }
.shop-list { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:20px; }
.shop-card { background:#fff; border-radius:18px; overflow:hidden; position:relative; display:flex; flex-direction:column; border:1px solid #f1f2f6; transition: 0.3s; }
.shop-card.premium { border:2.5px solid var(--premium-gold); }
.card-link-layer { position: absolute; top:0; left:0; right:0; bottom:0; z-index: 1; }
.card-badge { position:absolute; top:0; left:15px; padding:6px 10px; font-family:'Montserrat', sans-serif; font-weight:700; font-size:10px; color:#fff; z-index:5; border-radius:0 0 6px 6px; }
.card-badge.premium { background: linear-gradient(to bottom, #f1c40f, #d4af37); }
.card-badge.partner { background: #3498db; }
.card-badge.homecare { background: var(--homecare-purple); }
.thumb-area { width:100%; height:190px; position:relative; overflow:hidden; background:#eee; }
.thumb-area img { width:100%; height:100%; object-fit:cover; }
.status-tag { position: absolute; bottom: 12px; left: 12px; z-index: 6; padding: 4px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; color: #fff; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.status-tag.open { background: var(--open-color); }
.status-tag.closed { background: var(--closed-color); }
.dist-tag { position:absolute; bottom:12px; right:12px; background:rgba(0,0,0,0.6); color:#fff; padding:4px 10px; border-radius:20px; font-size:11px; backdrop-filter:blur(4px); z-index: 6; }
.card-action-btns { position: absolute; top: 12px; right: 12px; display: flex; flex-direction: column; gap: 8px; z-index: 10; }
.btn-wish, .btn-cart { width: 36px; height: 36px; border-radius: 50%; border: none; background: rgba(255, 255, 255, 0.9); box-shadow: 0 2px 5px rgba(0,0,0,0.1); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.btn-wish.active i { color: #ff7675; }
.info-area { padding:15px; flex-grow:1; }
.shop-meta { display:flex; justify-content:space-between; margin-bottom:8px; font-size:11px; }
.shop-name { font-size:17px; font-weight:700; margin:0 0 12px 0; color:var(--text-main); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.price-area { padding-top:12px; border-top:1px solid #f8f9fa; display:flex; align-items:baseline; gap:3px; }
.price-value { font-family:'Montserrat', sans-serif; font-size:20px; font-weight:700; color: #e74c3c; }
.loading-state, .empty-state { grid-column:1/-1; text-align:center; padding:60px 0; color:var(--text-sub); }
@media (max-width: 600px) { .shop-list { grid-template-columns: 1fr; } }