/* ══════════════════════════════════════════════════════
 *  place/index.php 전용 스타일
 *  /place/css/place-index.css
 *  ※ 원본 인라인 규칙 그대로 이관 (시각 동일성 우선)
 * ══════════════════════════════════════════════════════ */

        * { margin:0; padding:0; box-sizing:border-box; }
        body { font-family:-apple-system,BlinkMacSystemFont,'Pretendard',sans-serif; background:#f8faf9; }

        /* ── 히어로 검색 영역 (컴팩트) ── */
        .search-hero {
            position:relative; overflow:hidden;
            background:linear-gradient(135deg,#4a3f8a 0%,#6b4c9a 20%,#9b6bb0 40%,#c78dbd 60%,#e8a7c8 80%,#f2c4d0 100%);
            padding:28px 20px 24px; color:var(--place-paper); text-align:center;
        }
        .search-hero::before {
            content:''; position:absolute; top:-50%; left:-10%; width:60%; height:180%;
            background:radial-gradient(ellipse at center, rgba(255,255,255,.08) 0%, transparent 60%);
            pointer-events:none;
        }
        .hero-deco { position:absolute; top:0; left:0; right:0; bottom:0; pointer-events:none; overflow:hidden; }
        .hero-deco span {
            position:absolute; display:block; border-radius:50%;
            background:rgba(255,255,255,.06); animation:heroFloat 8s infinite ease-in-out;
        }
        .hero-deco span:nth-child(1) { width:50px; height:50px; top:10%; left:8%; animation-delay:0s; }
        .hero-deco span:nth-child(2) { width:70px; height:70px; top:30%; right:12%; animation-delay:2s; }
        .hero-deco span:nth-child(3) { width:35px; height:35px; bottom:15%; left:35%; animation-delay:4s; }
        @keyframes heroFloat {
            0%,100% { transform:translateY(0) scale(1); opacity:.4; }
            50% { transform:translateY(-12px) scale(1.1); opacity:.7; }
        }
        .hero-content { position:relative; z-index:2; max-width:640px; margin:0 auto; }
        .search-hero h1 { font-size:var(--fs-22); font-weight:700; margin-bottom:14px; line-height:1.3;
            text-shadow:0 1px 4px rgba(0,0,0,.1); }
        /* 검색바 */
        .hero-search-bar { max-width:540px; margin:0 auto; display:flex; gap:0;
            background:rgba(255,255,255,.12); backdrop-filter:blur(6px);
            border-radius:12px; padding:4px; border:1px solid rgba(255,255,255,.18); }
        .hero-search-bar input { flex:1; padding:11px 16px; border:none; border-radius:9px; font-size:var(--fs-14);
            background:var(--place-paper); box-shadow:0 1px 6px rgba(0,0,0,.06); }
        .hero-search-bar input:focus { outline:none; box-shadow:0 2px 12px rgba(79,70,229,.15); }
        .hero-search-bar button { padding:11px 22px; background:linear-gradient(135deg,#6b4c9a,#4a3f8a); color:var(--place-paper); border:none; border-radius:9px;
            font-size:var(--fs-13); font-weight:700; cursor:pointer; white-space:nowrap; margin-left:4px;
            transition:all .2s; display:flex; align-items:center; gap:5px; }
        .hero-search-bar button:hover { opacity:.9; transform:translateY(-1px); }
        /* 인기 키워드 */
        .hero-quick-links { margin-top:12px; display:flex; justify-content:center; gap:6px; flex-wrap:wrap; }
        .hero-quick-link { padding:4px 11px; border-radius:16px; font-size:var(--fs-11); font-weight:500;
            background:rgba(255,255,255,.14); color:rgba(255,255,255,.85); cursor:pointer;
            border:1px solid rgba(255,255,255,.15); transition:all .2s; text-decoration:none; }
        .hero-quick-link:hover { background:rgba(255,255,255,.25); color:var(--place-paper); }

        /* ── 카테고리 탭 바 (에어비앤비/오늘의집 스타일) ── */
        .cat-tab-bar { background:var(--place-paper); border-bottom:1px solid var(--place-ink-15); z-index:49; transition:box-shadow .2s; }
        .cat-tab-bar.fixed { position:fixed; top:0; left:0; right:0; box-shadow:0 2px 8px rgba(0,0,0,.08); }
        .cat-tab-placeholder { display:none; }
        .cat-tab-placeholder.show { display:block; }
        .cat-tab-inner { max-width:1200px; margin:0 auto; display:flex; align-items:center; gap:0; }
        .cat-tab-scroll { flex:1; overflow-x:auto; overflow-y:hidden; display:flex; gap:0; scrollbar-width:none; -ms-overflow-style:none; }
        .cat-tab-scroll::-webkit-scrollbar { display:none; }
        .cat-tab { display:flex; flex-direction:column; align-items:center; gap:4px; padding:12px 16px; cursor:pointer;
            border-bottom:2px solid transparent; transition:all .2s; flex-shrink:0; min-width:64px; text-decoration:none; }
        .cat-tab:hover { border-bottom-color:var(--place-ink-30); }
        .cat-tab.active { border-bottom-color:var(--place-ink); }
        .cat-tab-icon { width:24px; height:24px; opacity:.65; transition:opacity .2s; }
        .cat-tab:hover .cat-tab-icon, .cat-tab.active .cat-tab-icon { opacity:1; }
        .cat-tab-label { font-size:var(--fs-11); color:var(--place-ink-60); white-space:nowrap; font-weight:500; transition:color .2s; }
        .cat-tab:hover .cat-tab-label { color:var(--place-ink-70); }
        .cat-tab.active .cat-tab-label { color:var(--place-ink); font-weight:700; }
        /* 스크롤 화살표 */
        .cat-tab-arrow { width:36px; height:100%; display:flex; align-items:center; justify-content:center; cursor:pointer;
            background:var(--place-paper); border:none; color:var(--place-ink-60); font-size:var(--fs-16); flex-shrink:0; border-left:1px solid var(--place-ink-10); }
        .cat-tab-arrow:hover { color:var(--place-ink); background:var(--place-ink-05); }
        .cat-tab-arrow.left { border-left:none; border-right:1px solid var(--place-ink-10); }

        /* ── 서브필터 바 ── */
        .sub-filter-bar { background:var(--place-paper); border-bottom:1px solid var(--place-ink-10); padding:8px 20px; }
        .sub-filter-inner { max-width:1200px; margin:0 auto; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
        .sf-btn { display:inline-flex; align-items:center; gap:5px; padding:7px 14px; border:1px solid var(--place-ink-30); border-radius:10px;
            font-size:var(--fs-13); background:var(--place-paper); cursor:pointer; color:var(--place-ink-70); transition:all .2s; white-space:nowrap; }
        .sf-btn:hover { border-color:var(--place-primary); color:var(--place-primary); }
        .sf-btn.active { background:var(--place-primary-light); border-color:var(--place-primary); color:var(--place-primary); font-weight:600; }
        .sf-btn svg { width:14px; height:14px; }
        .sf-divider { width:1px; height:24px; background:var(--place-ink-15); margin:0 4px; }
        .result-count { font-size:var(--fs-13); color:var(--place-ink-60); white-space:nowrap; margin-left:auto; }

        /* 활성 필터 칩 */
        .active-filters { display:flex; gap:6px; flex-wrap:wrap; padding:8px 20px 0; max-width:1200px; margin:0 auto; }
        .af-chip { display:inline-flex; align-items:center; gap:4px; padding:4px 10px; background:var(--place-primary-light);
            color:var(--place-primary); border-radius:16px; font-size:var(--fs-12); font-weight:500; }
        .af-chip button { background:none; border:none; color:var(--place-primary); cursor:pointer; font-size:var(--fs-14); padding:0 2px; line-height:1; }
        .af-chip button:hover { color:var(--place-primary-dark); }

        /* ── 드롭다운 메뉴 ── */
        .sf-dropdown { position:relative; display:inline-block; }
        .sf-dropdown-menu { display:none; position:absolute; top:calc(100% + 4px); left:0; min-width:180px; background:var(--place-paper);
            border-radius:12px; box-shadow:0 8px 32px rgba(0,0,0,.12); border:1px solid var(--place-ink-15); z-index:60; padding:6px 0;
            max-height:360px; overflow-y:auto; }
        .sf-dropdown-menu.show { display:block; }
        .sf-dropdown-menu.right { left:auto; right:0; }
        .sf-dd-item { padding:9px 16px; font-size:var(--fs-13); color:var(--place-ink-70); cursor:pointer; transition:background .15s; }
        .sf-dd-item:hover { background:var(--place-ink-10); }
        .sf-dd-item.active { color:var(--place-primary); font-weight:600; background:var(--place-primary-light); }
        .sf-dd-section { padding:6px 16px 4px; font-size:var(--fs-11); font-weight:700; color:var(--place-ink-hint); text-transform:uppercase; letter-spacing:.5px; }

        /* ── 모바일 필터 ── */
        .m-filter-btn { display:none; }
        .m-filter-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:200; opacity:0; transition:opacity .3s; }
        .m-filter-overlay.show { display:block; opacity:1; }
        .m-filter-panel { display:none; position:fixed; bottom:0; left:0; right:0; background:var(--place-paper); border-radius:20px 20px 0 0;
            z-index:201; max-height:85vh; overflow-y:auto; transform:translateY(100%); transition:transform .35s cubic-bezier(.4,0,.2,1);
            padding:0 0 env(safe-area-inset-bottom); }
        .m-filter-panel.show { display:block; transform:translateY(0); }
        .m-filter-header { display:flex; justify-content:space-between; align-items:center; padding:16px 20px;
            border-bottom:1px solid var(--place-ink-10); position:sticky; top:0; background:var(--place-paper); border-radius:20px 20px 0 0; z-index:2; }
        .m-filter-header h3 { font-size:var(--fs-17); font-weight:700; }
        .m-filter-close { background:none; border:none; font-size:var(--fs-20); cursor:pointer; color:var(--place-ink-60); padding:4px; }
        .m-filter-body { padding:16px 20px; }
        .m-filter-section { margin-bottom:20px; }
        .m-filter-section h4 { font-size:var(--fs-14); font-weight:700; color:var(--place-ink); margin-bottom:10px; }
        .m-filter-chips { display:flex; flex-wrap:wrap; gap:8px; }
        .m-filter-chip { padding:8px 16px; border:1px solid var(--place-ink-30); border-radius:20px; font-size:var(--fs-13);
            color:var(--place-ink-70); background:var(--place-paper); cursor:pointer; transition:all .2s; }
        .m-filter-chip:hover, .m-filter-chip.active { background:var(--place-primary-light); border-color:var(--place-primary); color:var(--place-primary); font-weight:600; }
        .m-filter-actions { padding:16px 20px; border-top:1px solid var(--place-ink-10); display:flex; gap:10px;
            position:sticky; bottom:0; background:var(--place-paper); }
        .m-filter-actions button { flex:1; padding:14px; border-radius:12px; font-size:var(--fs-15); font-weight:700; cursor:pointer; }
        .m-filter-reset { background:var(--place-ink-10); border:none; color:var(--place-ink-70); }
        .m-filter-apply { background:var(--place-primary); border:none; color:var(--place-paper); }

        /* ── 결과 그리드 (4열 컴팩트) ── */
        .search-container { max-width:1280px; margin:0 auto; padding:20px; }
        .result-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }

        /* ── 업체 카드 (컴팩트) ── */
        .place-card { background:var(--place-paper); border-radius:12px; overflow:hidden; box-shadow:0 1px 3px rgba(0,0,0,.05);
            transition:all .25s ease; cursor:pointer; position:relative; }
        .place-card:hover { transform:translateY(-3px); box-shadow:0 8px 20px rgba(0,0,0,.1); }
        .card-image { width:100%; aspect-ratio:4/3; background:var(--place-ink-10); position:relative; overflow:hidden; }
        .card-image img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
        .place-card:hover .card-image img { transform:scale(1.04); }
        .card-image .no-img { display:flex; align-items:center; justify-content:center; width:100%; height:100%;
            aspect-ratio:4/3; color:var(--place-ink-hint); font-size:var(--fs-12); background:linear-gradient(135deg,var(--place-ink-10),var(--place-ink-15)); }
        .card-badges { position:absolute; top:10px; left:10px; display:flex; gap:4px; }
        .card-badge { padding:4px 10px; border-radius:8px; font-size:var(--fs-11); font-weight:700;
            backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
        .badge-verified { background:rgba(5,150,105,.85); color:var(--place-paper); }
        .badge-premium { background:rgba(124,58,237,.85); color:var(--place-paper); }
        .card-wish { position:absolute; top:10px; right:10px; width:34px; height:34px; border-radius:50%;
            background:rgba(255,255,255,.8); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
            display:flex; align-items:center; justify-content:center;
            cursor:pointer; border:none; font-size:var(--fs-16); transition:all .2s; }
        .card-wish:hover, .card-wish.active { background:var(--place-paper); color:var(--place-danger-700); transform:scale(1.1); }
        .card-body { padding:10px 12px; }
        .card-category { font-size:var(--fs-10); font-weight:600; color:#6b4c9a; text-transform:uppercase; letter-spacing:.3px; }
        .card-name { font-size:var(--fs-14); font-weight:700; color:var(--place-ink); margin-top:2px;
            white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .card-region { font-size:var(--fs-12); color:var(--place-ink-60); margin-top:2px; }
        .card-intro { font-size:var(--fs-12); color:var(--place-ink-60); margin-top:4px; line-height:1.4;
            display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
        .card-footer { display:flex; justify-content:space-between; align-items:center; padding:8px 12px;
            border-top:1px solid var(--place-ink-10); }
        .card-rating { display:flex; align-items:center; gap:3px; font-size:var(--fs-12); }
        .card-rating .star { color:var(--place-warning-700); }
        .card-rating .count { color:var(--place-ink-hint); }
        .card-price { font-size:var(--fs-12); font-weight:600; color:#6b4c9a; }
        .card-price-pp { font-size:var(--fs-10); color:var(--place-ink-60); margin-top:1px; }
        .card-promo { display:flex; flex-wrap:wrap; gap:3px; padding:0 12px 6px; }
        .card-promo-tag { font-size:var(--fs-9); font-weight:600; padding:2px 6px; border-radius:8px; }
        .promo-discount { background:var(--place-primary-light); color:var(--place-primary); }
        .promo-surcharge { background:var(--place-danger-50); color:var(--place-danger-700); }
        .promo-special { background:var(--place-warning-lt); color:#d97706; }

        /* 비교함 */
        .card-compare { position:absolute; top:10px; right:48px; width:34px; height:34px; border-radius:50%;
            background:rgba(255,255,255,.8); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
            display:flex; align-items:center; justify-content:center;
            cursor:pointer; border:none; font-size:var(--fs-14); transition:all .2s; }
        .card-compare:hover, .card-compare.active { background:var(--place-info-lt); color:#2563eb; transform:scale(1.1); }
        .compare-bar { position:fixed; bottom:0; left:0; right:0; background:var(--place-paper); border-top:2px solid var(--place-primary);
            padding:12px 20px; z-index:100; display:none; box-shadow:0 -4px 16px rgba(0,0,0,.1); }
        .compare-bar.show { display:flex; align-items:center; justify-content:center; gap:14px; }
        .compare-chips { display:flex; gap:8px; flex:1; overflow-x:auto; }
        .compare-chip { display:inline-flex; align-items:center; gap:4px; padding:6px 12px; background:var(--place-ink-10);
            border-radius:20px; font-size:var(--fs-13); white-space:nowrap; }
        .compare-chip .chip-del { background:none; border:none; color:var(--place-ink-hint); cursor:pointer; font-size:var(--fs-14); }
        .compare-chip .chip-del:hover { color:var(--place-danger-700); }
        .btn-compare { padding:10px 24px; background:var(--place-primary); color:var(--place-paper); border:none; border-radius:8px;
            font-size:var(--fs-14); font-weight:600; cursor:pointer; white-space:nowrap; }
        .btn-compare:hover { background:var(--place-primary-dark); }
        .btn-compare:disabled { background:var(--place-ink-40); cursor:not-allowed; }

        /* ── 로딩 ── */
        .loading-more { text-align:center; padding:24px; }
        .loading-spinner { display:inline-block; width:32px; height:32px; border:3px solid var(--place-ink-15);
            border-top-color:var(--place-primary); border-radius:50%; animation:spin .6s linear infinite; }
        @keyframes spin { to { transform:rotate(360deg); } }

        .no-results { text-align:center; padding:60px 20px; }
        .no-results h3 { font-size:var(--fs-18); color:var(--place-ink-70); margin-bottom:8px; }
        .no-results p { font-size:var(--fs-14); color:var(--place-ink-hint); }

        /* ── 상단 네비 (메인사이트 톤 통일) ── */
        .search-nav { background:var(--place-paper); padding:0 24px; height:56px;
            display:flex; justify-content:space-between; align-items:center;
            border-bottom:1px solid var(--place-ink-15); z-index:60; position:relative; }
        .search-nav .nav-logo { font-size:var(--fs-17); font-weight:800; color:#4a3f8a; text-decoration:none;
            letter-spacing:-.3px; }
        .search-nav .nav-links { display:flex; gap:6px; font-size:var(--fs-14); }
        .search-nav .nav-links a { color:var(--place-ink-60); text-decoration:none; padding:8px 12px; border-radius:8px;
            transition:all .2s; font-weight:500; }
        .search-nav .nav-links a:hover { color:#4a3f8a; background:var(--place-primary-50); }
        .search-nav .nav-links a.nav-link-active { color:#4a3f8a; font-weight:700; background:var(--place-primary-50); }

        /* 모바일 네비 */
        .nav-hamburger { display:none; background:none; border:none; cursor:pointer; padding:6px;
            color:var(--place-ink-70); line-height:1; }
        .nav-right-mobile { display:none; }
        .m-nav-search-btn { background:none; border:none; cursor:pointer; padding:6px; color:#6b4c9a; }

        /* 모바일 드로어 메뉴 */
        .m-nav-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:300;
            opacity:0; transition:opacity .3s; }
        .m-nav-overlay.show { display:block; opacity:1; }
        .m-nav-drawer { position:fixed; top:0; right:-280px; width:280px; height:100%; background:var(--place-paper);
            z-index:301; transition:right .3s cubic-bezier(.4,0,.2,1); padding:0;
            box-shadow:-4px 0 20px rgba(0,0,0,.12); overflow-y:auto; }
        .m-nav-drawer.show { right:0; }
        .m-nav-header { display:flex; justify-content:space-between; align-items:center; padding:16px 20px;
            border-bottom:1px solid var(--place-ink-10); }
        .m-nav-header strong { font-size:var(--fs-17); font-weight:800; color:#4a3f8a; }
        .m-nav-close { background:none; border:none; font-size:var(--fs-20); cursor:pointer; color:var(--place-ink-60); padding:4px; }
        .m-nav-links { padding:8px 0; }
        .m-nav-links a { display:flex; align-items:center; gap:10px; padding:14px 20px; color:var(--place-ink-70);
            text-decoration:none; font-size:var(--fs-15); font-weight:500; transition:background .15s; }
        .m-nav-links a:hover, .m-nav-links a.m-active { background:var(--place-primary-50); color:#4a3f8a; }
        .m-nav-links a svg { width:20px; height:20px; color:#6b4c9a; }
        .m-nav-divider { height:1px; background:var(--place-ink-10); margin:4px 16px; }
        .m-nav-section-label { padding:10px 20px 4px; font-size:var(--fs-11); font-weight:700; color:var(--place-ink-hint);
            text-transform:uppercase; letter-spacing:.5px; }

        /* 모바일 고정 검색 모달 */
        .m-search-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:250;
            opacity:0; transition:opacity .3s; }
        .m-search-overlay.show { display:flex; align-items:flex-start; padding-top:60px; justify-content:center; opacity:1; }
        .m-search-modal { width:calc(100% - 32px); max-width:480px; background:var(--place-paper); border-radius:16px;
            box-shadow:0 12px 40px rgba(0,0,0,.2); padding:20px; transform:translateY(-20px);
            transition:transform .3s; }
        .m-search-overlay.show .m-search-modal { transform:translateY(0); }
        .m-search-modal h3 { font-size:var(--fs-16); font-weight:700; margin-bottom:12px; color:#1a1410; }
        .m-search-bar { display:flex; gap:8px; }
        .m-search-bar input { flex:1; padding:12px 14px; border:2px solid var(--place-border-input); border-radius:12px;
            font-size:var(--fs-15); outline:none; transition:border-color .2s; }
        .m-search-bar input:focus { border-color:#6b4c9a; }
        .m-search-bar button { padding:12px 18px; background:#4a3f8a; color:var(--place-paper); border:none; border-radius:12px;
            font-size:var(--fs-14); font-weight:700; cursor:pointer; white-space:nowrap; }
        .m-search-recent { margin-top:14px; }
        .m-search-recent h4 { font-size:var(--fs-12); font-weight:600; color:var(--place-ink-hint); margin-bottom:8px; }
        .m-search-recent-tags { display:flex; flex-wrap:wrap; gap:6px; }
        .m-search-recent-tag { padding:6px 12px; background:var(--place-primary-50); color:#6b4c9a; border-radius:16px;
            font-size:var(--fs-13); cursor:pointer; border:none; transition:background .2s; }
        .m-search-recent-tag:hover { background:#ede9fe; }

        /* ── 2컬럼 레이아웃 ── */
        .search-layout { display:grid; grid-template-columns:1fr 280px; gap:24px; }
        .search-main { min-width:0; }

        /* ── 사이드바 ── */
        .search-sidebar { display:flex; flex-direction:column; gap:16px; position:sticky; top:90px; align-self:start; }
        .sb-section { background:var(--place-paper); border-radius:14px; padding:16px; border:1px solid #f0f0f0; }
        .sb-title { font-size:var(--fs-14); font-weight:700; color:#1a1410; margin-bottom:12px;
            display:flex; align-items:center; gap:6px; }
        .sb-title svg { color:#6b4c9a; }
        /* 인기 업체 랭킹 */
        .sb-rank-list { display:flex; flex-direction:column; gap:8px; }
        .sb-rank-item { display:flex; align-items:center; gap:10px; padding:6px 8px; border-radius:10px;
            cursor:pointer; transition:background .2s; text-decoration:none; color:inherit; }
        .sb-rank-item:hover { background:#f9f7ff; }
        .sb-rank-num { width:22px; height:22px; border-radius:6px; font-size:var(--fs-11); font-weight:800;
            display:flex; align-items:center; justify-content:center; flex-shrink:0; }
        .sb-rank-num.top3 { background:#6b4c9a; color:var(--place-paper); }
        .sb-rank-num.normal { background:var(--place-ink-10); color:var(--place-ink-70); }
        .sb-rank-info { flex:1; min-width:0; }
        .sb-rank-name { font-size:var(--fs-13); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
        .sb-rank-cat { font-size:var(--fs-11); color:var(--place-ink-hint); }
        .sb-rank-rating { font-size:var(--fs-12); font-weight:700; color:var(--place-warning-700); white-space:nowrap; }
        .sb-rank-placeholder { font-size:var(--fs-13); color:var(--place-ink-hint); text-align:center; padding:12px; }
        /* 인기 검색어 태그 */
        .sb-tags { display:flex; flex-wrap:wrap; gap:6px; }
        .sb-tag { padding:5px 11px; border-radius:16px; font-size:var(--fs-12); font-weight:500;
            background:var(--place-primary-50); color:#6b4c9a; cursor:pointer; transition:all .2s; text-decoration:none; }
        .sb-tag:hover { background:#ede9fe; }
        /* 최근 리뷰 */
        .sb-review-item { padding:10px 0; border-bottom:1px solid var(--place-ink-10); }
        .sb-review-item:last-child { border-bottom:none; }
        .sb-review-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
        .sb-review-place { font-size:var(--fs-12); font-weight:600; color:var(--place-ink-70); }
        .sb-review-stars { font-size:var(--fs-11); color:var(--place-warning-700); }
        .sb-review-text { font-size:var(--fs-12); color:var(--place-ink-60); line-height:1.4;
            display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
        /* 두근두근 배너 */
        .sb-banner { background:linear-gradient(135deg,var(--place-primary-50),#fdf2f8); border-color:#ede9fe; }
        .sb-banner-inner { text-align:center; }
        .sb-banner-icon { margin-bottom:6px; }
        .sb-banner-icon svg { color:#c78dbd; }
        .sb-banner-inner strong { font-size:var(--fs-14); display:block; margin-bottom:4px; color:#4a3f8a; }
        .sb-banner-inner p { font-size:var(--fs-12); color:var(--place-ink-60); margin-bottom:10px; line-height:1.4; }
        .sb-banner-btn { display:inline-block; padding:8px 18px; background:linear-gradient(135deg,#6b4c9a,#9b6bb0);
            color:var(--place-paper); border-radius:8px; font-size:var(--fs-13); font-weight:600; text-decoration:none; transition:opacity .2s; }
        .sb-banner-btn:hover { opacity:.9; }

        /* ── 푸터 ── */
        .place-footer { background:#1a1410; color:var(--place-ink-40); margin-top:40px; }
        .footer-inner { max-width:1200px; margin:0 auto; padding:28px 20px; }
        .footer-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px;
            padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,.08); }
        .footer-brand strong { font-size:var(--fs-15); color:var(--place-paper); display:block; margin-bottom:2px; }
        .footer-brand span { font-size:var(--fs-12); }
        .footer-links { display:flex; gap:16px; }
        .footer-links a { color:var(--place-ink-40); text-decoration:none; font-size:var(--fs-13); font-weight:500; transition:color .2s; }
        .footer-links a:hover { color:#c78dbd; }
        .footer-bottom { font-size:var(--fs-12); text-align:center; }

        /* ── 태블릿 ── */
        @media (max-width:1024px) {
            .search-layout { grid-template-columns:1fr 240px; gap:16px; }
            .result-grid { grid-template-columns:repeat(3,1fr); }
        }
        @media (max-width:768px) {
            .search-layout { grid-template-columns:1fr; }
            .search-sidebar { display:none; }
            .result-grid { grid-template-columns:repeat(2,1fr); gap:10px; }
            .search-hero h1 { font-size:var(--fs-18); }
            .search-hero { padding:20px 16px 18px; }
            .hero-search-bar input { padding:10px 12px; font-size:var(--fs-13); min-width:0; }
            .hero-search-bar button { padding:10px 14px; font-size:var(--fs-12); margin-left:4px; flex-shrink:0; }

            /* 모바일 네비 */
            .search-nav .nav-links { display:none; }
            .nav-hamburger { display:flex; align-items:center; }
            .nav-right-mobile { display:flex; align-items:center; gap:4px; }

            /* 카테고리 탭 */
            .cat-tab-bar { top:56px; }
            .cat-tab { padding:10px 12px; min-width:56px; }
            .cat-tab-label { font-size:var(--fs-10); }
            .cat-tab-arrow { display:none; }

            /* 서브필터 → 모바일 필터 */
            .sub-filter-bar { display:none; }
            .active-filters { display:none; }
            .m-filter-row {
                display:flex !important; gap:8px; padding:8px 16px;
                background:var(--place-paper); border-bottom:1px solid var(--place-ink-10);
            }
            .m-filter-btn {
                display:inline-flex; align-items:center; gap:5px;
                padding:8px 14px; background:var(--place-paper); color:var(--place-ink-70);
                border:1px solid var(--place-ink-30); border-radius:10px; font-size:var(--fs-13); font-weight:600;
                cursor:pointer; transition:all .2s; white-space:nowrap;
            }
            .m-filter-btn:hover { border-color:#6b4c9a; color:#6b4c9a; }
            .m-filter-btn.map-btn { color:#6b4c9a; background:var(--place-primary-50); border-color:#d8b4fe; }
            .m-filter-badge {
                display:inline-flex !important; align-items:center; justify-content:center;
                min-width:18px; height:18px; padding:0 5px;
                background:#6b4c9a; color:var(--place-paper); border-radius:9px;
                font-size:var(--fs-11); font-weight:700;
            }
            /* 푸터 반응형 */
            .footer-top { flex-direction:column; gap:12px; text-align:center; }
            .footer-links { justify-content:center; }
        }
        @media (max-width:480px) {
            .result-grid { grid-template-columns:1fr; }
            .search-hero h1 { font-size:var(--fs-16); }
            .hero-quick-links { gap:4px; }
            .hero-quick-link { font-size:var(--fs-10); padding:3px 8px; }
            .search-nav .nav-links { gap:2px; font-size:var(--fs-12); }
            .search-nav .nav-links a { padding:6px 8px; }
        }
    
