:root{
  --bg:#fafbfc;--surface:#fff;--surface-2:#f6f8fa;--border:#e8eaed;--border-2:#d7dce1;
  --text:#0d0d0d;--text-2:#3f4651;--text-3:#6b7280;--text-4:#9aa1ac;
  --brand:#2563eb;--brand-hover:#1d4ed8;--brand-soft:#eef4ff;--brand-text:#1d4ed8;
  --red:#dc2626;--green:#059669;
  --radius:10px;--radius-lg:14px;--shadow-sm:0 1px 2px rgba(0,0,0,.05);
  --shadow:0 4px 14px rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.02);--shadow-lg:0 14px 40px -10px rgba(0,0,0,.12);
}
*{box-sizing:border-box}
body{margin:0;font-family:'Pretendard',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.55;letter-spacing:-.01em;-webkit-font-smoothing:antialiased;padding-bottom:40px}
a{color:inherit;text-decoration:none}
.wrap{max-width:1040px;margin:0 auto;padding:22px 20px 50px}

/* topbar + nav */
.topbar{background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}
.tb-in{max-width:1040px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:12px 20px}
.logo{font-size:19px;font-weight:800;color:var(--brand-text);white-space:nowrap;letter-spacing:-.03em}.logo b{color:var(--text)}
.tb-search{display:flex;flex:1;max-width:420px;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;overflow:hidden}
.tb-search input{flex:1;padding:9px 14px;border:0;background:transparent;font-size:14px;outline:none;font-family:inherit}
.tb-search button{padding:0 14px;background:transparent;border:0;cursor:pointer;font-size:15px}
.catnav{border-top:1px solid var(--border);background:rgba(255,255,255,.92)}
.catnav-in{max-width:1040px;margin:0 auto;display:flex;gap:1px;padding:0 12px;overflow-x:auto;scrollbar-width:none}
.catnav-in::-webkit-scrollbar{display:none}
.cn{white-space:nowrap;padding:11px 12px;font-size:13.5px;font-weight:700;color:var(--text-3);border-bottom:2px solid transparent}
.cn:hover{color:var(--text)}.cn.on{color:var(--brand-text);border-bottom-color:var(--brand)}

/* hero */
.hero{text-align:center;padding:50px 20px 40px;margin:-22px -20px 22px;background:radial-gradient(900px 420px at 50% -10%,var(--brand-soft),transparent 70%)}
.hero h1{font-size:34px;font-weight:900;letter-spacing:-.045em;margin:0 0 12px;line-height:1.15}
.hero h1 .accent{color:var(--brand)}
.hero-sub{font-size:15.5px;color:var(--text-3);margin:0 0 22px}
.hsearch{max-width:520px;margin:0 auto;display:flex;gap:8px;background:#fff;padding:8px;border-radius:14px;border:1px solid var(--border);box-shadow:0 10px 34px -12px rgba(37,99,235,.25)}
.hsearch input{flex:1;border:0;outline:0;font-size:15px;padding:0 12px;font-family:inherit}
.hsearch button{background:var(--brand);color:#fff;border:0;border-radius:10px;padding:0 22px;font-size:15px;font-weight:800;cursor:pointer;font-family:inherit}

/* sections */
.sec{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm);margin-bottom:16px}
.sec h1{margin:0 0 6px;font-size:23px;font-weight:800;letter-spacing:-.03em}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.sec-head h2{margin:0;font-size:18px;font-weight:800;letter-spacing:-.02em}
.dt-h2{font-size:17px;font-weight:800;margin:0 0 12px;letter-spacing:-.02em}
.lead{color:var(--text-3);margin:0 0 16px;font-size:14px}
.cnt{color:var(--brand);font-size:15px;font-weight:800}
.crumb{font-size:12.5px;color:var(--text-4);margin-bottom:12px}.crumb a{color:var(--text-3);font-weight:600}
.empty{color:var(--text-3);text-align:center;padding:30px}

/* stats */
.statband{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center}
.stat{padding:18px 8px;background:var(--brand-soft);border-radius:var(--radius)}
.stat .sv{display:block;font-size:25px;font-weight:900;color:var(--brand-text);letter-spacing:-.03em}
.stat .sl{font-size:12.5px;color:var(--text-3);font-weight:700}

/* region grid */
.region-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px}
.region-card{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px;font-weight:700;transition:.14s}
.region-card:hover{border-color:var(--brand);background:var(--brand-soft)}
.rc-cnt{color:var(--text-4);font-size:12px;font-weight:700}.rc-cnt i{font-style:normal;margin-left:2px}
/* gu grid */
.gu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.gu-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:.14s}
.gu-card:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}
.gu-name{display:block;font-size:15px;font-weight:800;margin-bottom:4px}
.gu-meta{font-size:12.5px;color:var(--text-3)}.gu-meta b{color:var(--brand-text)}

/* rank list (최고가) */
.rank-list{display:flex;flex-direction:column;gap:2px}
.rk-item{display:flex;align-items:center;gap:12px;padding:11px 8px;border-radius:10px;transition:.12s}
.rk-item:hover{background:var(--surface-2)}
.rk-no{flex:0 0 26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border-radius:8px;font-size:13px;font-weight:800;color:var(--text-3)}
.rk-no.top{background:var(--brand);color:#fff}
.rk-main{flex:1;min-width:0;display:flex;flex-direction:column}
.rk-main b{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-main span{font-size:12px;color:var(--text-3)}
.rk-price{font-size:15px;font-weight:800;color:var(--red);white-space:nowrap}

/* apt list (단지) */
.apt-list{display:flex;flex-direction:column;gap:8px}
.apt-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:.14s}
.apt-row:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}
.apt-name{font-size:15px;font-weight:700;min-width:0}.apt-name i{font-style:normal;font-size:12px;color:var(--text-4);margin-left:7px;font-weight:600}
.apt-stat{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}
.apt-cnt{font-size:12px;color:var(--text-4);font-weight:700}
.apt-avg{font-size:14.5px;font-weight:800;color:var(--brand-text)}

/* detail summary */
.dt-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:6px}
.ds{padding:16px;background:var(--surface-2);border-radius:var(--radius);text-align:center}
.ds-l{display:block;font-size:12px;color:var(--text-3);font-weight:700;margin-bottom:5px}
.ds-v{display:block;font-size:20px;font-weight:900;color:var(--brand-text);letter-spacing:-.03em}
.ds-s{display:block;font-size:11px;color:var(--text-4);margin-top:4px}

/* trend bars */
.trend{display:flex;align-items:flex-end;gap:8px;height:160px;padding:8px 4px 0;overflow-x:auto}
.tb{display:flex;flex-direction:column;align-items:center;gap:5px;flex:1;min-width:36px;justify-content:flex-end;height:100%}
.tb-v{font-size:11px;font-weight:800;color:var(--brand-text)}
.tb-bar{width:62%;max-width:34px;background:linear-gradient(180deg,var(--brand),#60a5fa);border-radius:5px 5px 0 0;min-height:6px}
.tb-l{font-size:10.5px;color:var(--text-4);font-weight:600}
.trend-note{font-size:11.5px;color:var(--text-4);margin:10px 0 0}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl thead th{text-align:left;padding:10px 12px;background:var(--surface-2);font-size:12.5px;color:var(--text-3);font-weight:700;border-bottom:1px solid var(--border)}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--border)}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl .price{font-weight:800;color:var(--brand-text);white-space:nowrap}
.muted{color:var(--text-4);font-size:.92em}

.dt-text p{font-size:14.5px;line-height:1.78;color:var(--text-2);margin:0 0 12px}.dt-text p:last-child{margin:0}
.ad-mid{margin:16px 0;text-align:center}

/* pager */
.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:24px 0 2px}
.pg{min-width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;padding:0 11px;border:1px solid var(--border);border-radius:9px;background:#fff;font-size:14px;font-weight:700;color:var(--text)}
.pg:hover{border-color:var(--brand);color:var(--brand-text)}.pg.on{background:var(--brand);border-color:var(--brand);color:#fff}
.pg-gap{color:var(--text-4);padding:0 2px}

/* footer */
.ft{border-top:1px solid var(--border);margin-top:30px;background:#fff}
.ft-in{max-width:1040px;margin:0 auto;padding:24px 20px}
.ft-regions{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:14px}
.ft-regions a{font-size:13px;color:var(--text-3);font-weight:600}.ft-regions a:hover{color:var(--brand-text)}
.ft-note{font-size:12px;color:var(--text-4);line-height:1.6;margin:0 0 8px}
.ft-copy{font-size:12px;color:var(--text-4);margin:0}

@media(max-width:640px){
  .hero h1{font-size:27px}.sec{padding:18px}
  .dt-summary{grid-template-columns:1fr;gap:8px}.statband{gap:8px}
  .stat .sv{font-size:21px}.ds-v{font-size:18px}
  .apt-row{padding:12px 13px}
}

/* 실거래 탭 */
.dt-tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--border)}
.dtb{background:none;border:0;border-bottom:2px solid transparent;padding:9px 14px;font-size:14.5px;font-weight:700;color:var(--text-3);cursor:pointer;font-family:inherit;margin-bottom:-1px}
.dtb.on{color:var(--brand-text);border-bottom-color:var(--brand)}
.dtb i{font-style:normal;font-size:11.5px;color:var(--text-4);font-weight:700}
.dtp{display:none}.dtp.on{display:block}
/* 필터 */
.filter-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.fbtn{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:7px 16px;font-size:13.5px;font-weight:700;color:var(--text-2)}
.fbtn.on{background:var(--brand);border-color:var(--brand);color:#fff}
/* 매물 카드 */
.listing-list{display:flex;flex-direction:column;gap:10px}
.listing-card{display:flex;gap:13px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}
.lc-type{flex:0 0 auto;font-size:12px;font-weight:800;color:#fff;border-radius:7px;padding:4px 10px;margin-top:2px}
.lc-type.t-sale{background:var(--red)}.lc-type.t-jeonse{background:var(--brand)}.lc-type.t-wolse{background:#7c3aed}
.lc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.lc-title{font-size:14.5px;font-weight:700}.lc-loc{font-size:12px;color:var(--text-4);font-weight:600;margin-left:4px}
.lc-price{font-size:17px;font-weight:900;color:var(--brand-text);letter-spacing:-.02em}
.lc-spec{font-size:13px;color:var(--text-3)}
.lc-desc{font-size:13px;color:var(--text-2);line-height:1.5}
.lc-link{font-size:12.5px;font-weight:700;color:var(--brand-text);margin-top:2px}
.lc-contact{flex:0 0 auto;font-size:13px;font-weight:800;color:var(--brand-text);background:var(--brand-soft);padding:8px 12px;border-radius:9px;white-space:nowrap}
/* 뉴스 */
.news-list{display:flex;flex-direction:column;gap:12px}
.news-card{display:flex;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;transition:.14s}
.news-card:hover{border-color:var(--brand);box-shadow:var(--shadow-sm)}
.nc-thumb{flex:0 0 110px;height:80px;border-radius:9px;background:var(--surface-2) center/cover no-repeat}
.nc-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.nc-cat{align-self:flex-start;font-size:11.5px;font-weight:800;color:var(--brand-text);background:var(--brand-soft);border-radius:999px;padding:3px 10px}
.nc-body b{font-size:16px;font-weight:800;line-height:1.35}
.nc-sum{font-size:13px;color:var(--text-3);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nc-meta{font-size:11.5px;color:var(--text-4)}
.press-thumb{max-width:100%;border-radius:10px;margin:6px 0 16px}
.press-content{font-size:15px;line-height:1.82;color:var(--text-2)}
.press-content h2{font-size:19px;font-weight:800;margin:26px 0 12px}.press-content p{margin:0 0 14px}.press-content img{max-width:100%;border-radius:8px}
.guide-meta{font-size:12.5px;color:var(--text-4);margin:0 0 16px}
.rel-news{display:flex;flex-direction:column;gap:8px}
.rel-news a{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--surface-2);border-radius:9px;font-size:13.5px}
.rel-news a b{font-weight:700}.rel-news a span{color:var(--text-4);font-size:12px;white-space:nowrap}
/* 관리자 폼 */
.adm-form{display:flex;flex-direction:column;gap:9px;margin-bottom:10px}
.af-row{display:flex;gap:8px;flex-wrap:wrap}
.adm-form input,.adm-form select,.adm-form textarea{flex:1;min-width:120px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit}
.adm-form button{flex:0 0 auto;background:var(--brand);color:#fff;border:0;border-radius:8px;padding:9px 20px;font-weight:800;cursor:pointer}
.del{background:none;border:1px solid var(--border);border-radius:7px;padding:5px 12px;font-size:12px;color:var(--red);cursor:pointer}

/* 인기 단지 그리드 */
.sec-tag{font-size:12px;font-weight:700;color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 11px}
.pop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.pop-card{display:flex;flex-direction:column;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:.14s}
.pop-card:hover{border-color:var(--brand);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.pop-name{font-size:14.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pop-loc{font-size:12px;color:var(--text-4)}
.pop-meta{display:flex;justify-content:space-between;align-items:baseline;margin-top:5px}
.pop-avg{font-size:15px;font-weight:900;color:var(--brand-text)}
.pop-cnt{font-size:11.5px;color:var(--text-4);font-weight:700}

/* 평형 선택 칩 + 인터랙티브 시세 */
.area-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
.ac{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:7px 13px;font-size:13px;font-weight:700;color:var(--text-2);cursor:pointer;font-family:inherit}
.ac span{font-size:11px;color:var(--text-4);font-weight:600;margin-left:3px}
.ac:hover{border-color:var(--brand);color:var(--brand-text)}
.ac.on{background:var(--brand);border-color:var(--brand);color:#fff}.ac.on span{color:rgba(255,255,255,.8)}
.rp-sub{font-size:15px;font-weight:800;margin:18px 0 12px;letter-spacing:-.02em}
.rp-sub .muted{font-size:12.5px;font-weight:600}
.area-row{cursor:pointer}.area-row:hover{background:var(--brand-soft)}

/* 아파트 시세 지도 */
.amap{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);height:calc(100vh - 210px);min-height:520px}
.amap-side{flex:0 0 320px;display:flex;flex-direction:column;border-right:1px solid var(--border);min-width:0}
.amap-head{padding:16px 18px 10px}.amap-head h1{margin:0 0 5px;font-size:18px;font-weight:800}
.amap-sub{margin:0;font-size:12.5px;color:var(--text-3)}.amap-sub b{color:var(--brand-text);font-weight:800}
.amap-sido{display:flex;flex-wrap:wrap;gap:5px;padding:8px 16px 12px;border-bottom:1px solid var(--border)}
.asd{background:transparent;border:1px solid var(--border);border-radius:7px;padding:6px 10px;font-size:12.5px;font-weight:700;color:var(--text-3);cursor:pointer;font-family:inherit}
.asd.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-text)}
.amap-gu{display:flex;flex-wrap:wrap;gap:5px;padding:12px 16px;border-bottom:1px solid var(--border);max-height:130px;overflow-y:auto}
.amap-gu:empty{display:none}
.agu{background:transparent;border:1px solid var(--border);border-radius:7px;padding:5px 9px;font-size:12px;font-weight:600;color:var(--text-3);cursor:pointer;font-family:inherit;white-space:nowrap}
.agu.on{background:var(--brand);border-color:var(--brand);color:#fff}
.amap-list{flex:1;overflow-y:auto;padding:6px}
.ali{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:8px;font-size:13px}
.ali:hover{background:var(--surface-2)}.ali-n{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ali-p{font-weight:800;color:var(--brand-text);white-space:nowrap}
.amap-map{flex:1;min-width:0;position:relative}.amap-canvas{position:absolute;inset:0}
.price-pin{display:flex;flex-direction:column;align-items:center;cursor:pointer;transform:translateY(-4px)}
.price-pin b{background:var(--brand);color:#fff;font-size:12px;font-weight:800;padding:3px 8px;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.25);white-space:nowrap}
.price-pin span{font-size:10px;color:var(--text);background:#fff;padding:1px 5px;border-radius:5px;margin-top:2px;box-shadow:0 1px 3px rgba(0,0,0,.18);white-space:nowrap;max-width:90px;overflow:hidden;text-overflow:ellipsis}
.price-pin:hover b{background:var(--brand-hover)}
@media(max-width:860px){.amap{flex-direction:column;height:auto}.amap-map{order:-1;height:46vh;min-height:300px}.amap-side{flex:none;border-right:0}.amap-list{max-height:40vh}}

/* 관심단지 */
.dt-titlebar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px}
.dt-titlebar h1{margin:0}
.fav-btn{flex:0 0 auto;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:8px 14px;font-size:13.5px;font-weight:800;color:var(--text-3);cursor:pointer;font-family:inherit;white-space:nowrap}
.fav-btn.on{background:#fff7ed;border-color:#fdba74;color:#ea580c}
.fav-x{background:none;border:0;color:var(--text-4);font-size:13px;cursor:pointer;padding:2px 4px;margin-left:8px}
.fav-x:hover{color:var(--red)}

/* 가이드 */
.guide-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.guide-card{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);transition:.16s}
.guide-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:transparent}
.guide-card h2{margin:0;font-size:17px;font-weight:800;line-height:1.35}
.guide-card p{margin:0;font-size:13px;color:var(--text-3);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.guide-cat{align-self:flex-start;font-size:11.5px;font-weight:800;color:var(--brand-text);background:var(--brand-soft);border-radius:999px;padding:3px 11px}
.guide-more{margin-top:auto;font-size:13px;font-weight:700;color:var(--brand-text)}
.guide-meta{font-size:12.5px;color:var(--text-4);margin:8px 0 18px}
.guide-content{font-size:15px;line-height:1.82;color:var(--text-2)}
.guide-content h2{font-size:19px;font-weight:800;color:var(--text);margin:28px 0 12px;padding-top:16px;border-top:1px solid var(--border)}
.guide-content h2:first-child{margin-top:0;padding-top:0;border-top:0}
.guide-content p{margin:0 0 14px}.guide-content ul{margin:0 0 16px;padding-left:22px}.guide-content li{margin-bottom:7px}
.guide-content b{font-weight:700;color:var(--text)}.guide-content a:hover{text-decoration:underline}
.guide-faq{margin-top:28px;padding-top:8px;border-top:1px solid var(--border)}
.faq-item{padding:13px 0;border-bottom:1px solid var(--border)}.faq-item:last-child{border-bottom:0}
.faq-q{margin:0 0 6px;font-size:14.5px;font-weight:800}.faq-q::before{content:'Q ';color:var(--brand)}
.faq-a{margin:0;font-size:14px;line-height:1.65;color:var(--text-3)}
.guide-rel-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.guide-rel-list a{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:13px 15px}
.guide-rel-list a:hover{border-color:var(--brand)}.guide-rel-list b{display:block;font-size:14px;margin-bottom:4px}
.guide-rel-list span{font-size:12px;color:var(--text-3);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 매매가격지수 차트 */
.idx-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.idx-head h2{margin:0}
.idx-now{display:flex;align-items:center;gap:8px}
.idx-val{font-size:22px;font-weight:900;color:var(--brand-text);letter-spacing:-.03em}
.idx-chg{font-size:12px;font-weight:800;padding:3px 8px;border-radius:7px}
.idx-chg.up{background:#fef2f2;color:#dc2626}.idx-chg.down{background:#eff6ff;color:#2563eb}
.idx-chart{width:100%;height:140px;display:block}
.idx-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--text-4);margin-top:2px}
.idx-band{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.idx-pill{flex:1;min-width:150px;display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:11px 14px}
.ip-r{font-size:12.5px;color:var(--text-3);font-weight:700}
.ip-v{font-size:17px;font-weight:900;color:var(--brand-text);margin-left:auto}
.ip-c{font-size:11.5px;font-weight:800;padding:2px 6px;border-radius:6px}
.ip-c.up{background:#fef2f2;color:#dc2626}.ip-c.down{background:#eff6ff;color:#2563eb}

/* 계산기 */
.calc-tabs{display:flex;gap:6px;margin-bottom:18px;border-bottom:1px solid var(--border)}
.ctb{background:none;border:0;border-bottom:2px solid transparent;padding:10px 16px;font-size:14.5px;font-weight:800;color:var(--text-3);cursor:pointer;font-family:inherit;margin-bottom:-1px}
.ctb.on{color:var(--brand-text);border-bottom-color:var(--brand)}
.calc-panel{display:none}.calc-panel.on{display:block}
.cf{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.cf label{flex:0 0 130px;font-size:14px;font-weight:700;color:var(--text-2)}
.cf input,.cf select{flex:1;padding:11px 13px;border:1px solid var(--border);border-radius:9px;font-size:15px;font-family:inherit}
.calc-out{margin-top:6px;background:var(--brand-soft);border-radius:12px;padding:18px}
.co-main{font-size:15px;font-weight:700;color:var(--text-2);margin-bottom:10px}.co-main b{font-size:22px;font-weight:900;color:var(--brand-text);margin-left:6px;letter-spacing:-.02em}
.co-row{display:flex;justify-content:space-between;font-size:13.5px;padding:5px 0;color:var(--text-3)}.co-row b{color:var(--text);font-weight:800}
.calc-note{font-size:12px;color:var(--text-4);line-height:1.6;margin:12px 0 0}

/* 단지 지도/로드뷰/주변 */
.mtb{background:none;border:0;border-bottom:2px solid transparent;padding:9px 16px;font-size:14px;font-weight:800;color:var(--text-3);cursor:pointer;font-family:inherit;margin-bottom:-1px}
.mtb.on{color:var(--brand-text);border-bottom-color:var(--brand)}
.amini{width:100%;height:300px;border-radius:12px;overflow:hidden;border:1px solid var(--border);margin-bottom:14px}
.poi-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.poi-col b{display:block;font-size:13.5px;font-weight:800;margin-bottom:7px}
.poi-col ul{list-style:none;margin:0;padding:0}
.poi-col li{font-size:12.5px;color:var(--text-2);padding:3px 0;display:flex;justify-content:space-between;gap:8px}
.poi-col li span{color:var(--text-4);font-size:11.5px;white-space:nowrap}

/* 거래유형 */
.re-badge{font-size:13px;font-weight:800;color:#fff;background:#7c3aed;border-radius:7px;padding:3px 10px;vertical-align:middle;margin-left:6px}
a.dtb{text-decoration:none}

/* 단지 정보 (K-apt) */
.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:14px}
.ig{background:var(--surface-2);border-radius:10px;padding:11px 13px}
.ig span{display:block;font-size:11.5px;color:var(--text-3);font-weight:700;margin-bottom:3px}
.ig b{font-size:14.5px;font-weight:800;color:var(--text)}
.info-life{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);padding-top:14px}
.il{display:flex;gap:10px;font-size:13px;line-height:1.5}
.il b{flex:0 0 78px;font-weight:800;color:var(--text-2)}
.il span{flex:1;color:var(--text-2)}

/* 거래유형 스크롤 탭 */
.dt-tabs-scroll{overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
.dt-tabs-scroll::-webkit-scrollbar{display:none}
.dt-tabs-scroll .dtb{white-space:nowrap;flex:0 0 auto}

/* ═══ 프차넷 참고 디자인 보강 (토스풍) ═══ */
:root{
  --brand:#3182f6; --brand-hover:#1b64da; --brand-soft:#e8f3ff; --brand-text:#1b64da;
  --border-strong:#d4d4d8;
  --shadow-sm:0 1px 2px rgba(0,0,0,.04);
  --shadow:0 4px 12px rgba(0,0,0,.04),0 0 0 1px rgba(0,0,0,.02);
  --shadow-lg:0 12px 40px -8px rgba(0,0,0,.08),0 0 0 1px rgba(0,0,0,.04);
  --ease:cubic-bezier(.4,0,.2,1);
}
body{background:var(--bg)}
/* 카드 호버 리프트 (전 카드 통일) */
.region-card,.gu-card,.pop-card,.apt-row,.guide-card,.news-card,.rk-item,.stat,.ds,.idx-pill{transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}
.region-card:hover,.gu-card:hover,.pop-card:hover,.apt-row:hover,.guide-card:hover,.news-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px -8px rgba(0,0,0,.1);border-color:transparent}
/* 버튼 폴리시 — 브랜드 그림자 + 리프트 */
.hsearch button,.calc-out + * .ctb.on{box-shadow:0 4px 14px rgba(49,130,246,.25)}
.hsearch button{transition:.18s var(--ease)}
.hsearch button:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(49,130,246,.35)}
.fbtn,.dtb,.ac,.gc,.pg,.cn{transition:.15s var(--ease)}
.fbtn.on{box-shadow:0 3px 10px rgba(49,130,246,.22)}
/* 섹션 헤더 — eyebrow + 링크 화살표 애니메이션 */
.eyebrow{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.04em;color:var(--brand-text);text-transform:uppercase;margin-bottom:6px}
.sec-head>a{display:inline-flex;align-items:center;gap:3px;transition:gap .15s var(--ease),color .15s}
.sec-head>a:hover{gap:7px;color:var(--brand-text)}
/* 히어로 — 그라데이션 텍스트 강조 + 미세 입체 */
.hero h1 .accent{background:linear-gradient(135deg,#3182f6,#1b64da);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.hsearch{box-shadow:0 12px 40px -12px rgba(49,130,246,.28),var(--shadow-sm)}
.hsearch:focus-within{box-shadow:0 16px 46px -8px rgba(49,130,246,.34),0 0 0 4px rgba(49,130,246,.12);transform:translateY(-1px)}
/* 통계밴드 — 입체감 */
.stat{box-shadow:var(--shadow-sm)}
.stat:hover{transform:translateY(-2px);box-shadow:0 8px 20px -8px rgba(49,130,246,.18)}
/* 단지 요약 카드 그라데이션 */
.dt-summary .ds{background:linear-gradient(135deg,var(--brand-soft),#f4f9ff);border:1px solid #dbeafe}
/* 섹션 카드 테두리 부드럽게 */
.sec{border-color:var(--border)}
/* 가격 강조색 통일 */
.lc-price,.pop-avg,.apt-avg,.ds-v,.idx-val,.ip-v{letter-spacing:-.02em}
/* 탭 활성 밑줄 두께 */
.dtb.on,.ctb.on,.mtb.on,.cn.on{border-bottom-width:2.5px}
/* 단지 정보 그리드 카드 호버 */
.ig{transition:.15s var(--ease)}
.ig:hover{background:var(--brand-soft)}

/* 스크롤 미니 상단바 (프차넷 sticky-mini 참고) */
.sticky-mini{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border);transform:translateY(-100%);opacity:0;transition:transform .25s var(--ease),opacity .25s var(--ease);box-shadow:var(--shadow-sm)}
.sticky-mini.show{transform:translateY(0);opacity:1}
.sm-in{max-width:1040px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:10px 20px}
.sm-name{font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}
.sm-loc{font-size:12px;color:var(--text-4);white-space:nowrap}
.sm-price{margin-left:auto;font-size:16px;font-weight:900;color:var(--brand-text);letter-spacing:-.02em;white-space:nowrap}
.sm-fav{flex:0 0 auto;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:800;color:var(--text-3);cursor:pointer;font-family:inherit;white-space:nowrap}
.sm-fav.on{background:#fff7ed;border-color:#fdba74;color:#ea580c}
@media(max-width:560px){.sm-loc{display:none}.sm-name{max-width:50%}}

/* ═══ 전체 디자인 보강 2 ═══ */
/* 로고 아이콘 */
.logo{display:inline-flex;align-items:center;gap:8px}
.logo-ic{width:24px;height:24px;flex:0 0 auto}
/* 히어로 — 그리드 배경 + 배지 + 칩 */
.hero{position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(49,130,246,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(49,130,246,.05) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(ellipse 680px 320px at 50% 0,#000,transparent 72%);mask-image:radial-gradient(ellipse 680px 320px at 50% 0,#000,transparent 72%);pointer-events:none}
.hero>*{position:relative;z-index:1}
.hero-badge{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--border);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:700;color:var(--text-2);margin-bottom:16px;box-shadow:var(--shadow-sm)}
.hero-badge i{width:7px;height:7px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 3px rgba(49,130,246,.18)}
.hero-chips{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.hero-chips a{background:#fff;border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;color:var(--text-2);box-shadow:var(--shadow-sm);transition:.15s var(--ease)}
.hero-chips a:hover{border-color:var(--brand);color:var(--brand-text);transform:translateY(-1px)}
/* 푸터 컬럼 */
.ft-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-bottom:22px;margin-bottom:18px;border-bottom:1px solid var(--border)}
.ft-col b{display:block;font-size:13px;font-weight:800;color:var(--text-2);margin-bottom:10px}
.ft-col a{display:block;font-size:13px;color:var(--text-3);padding:4px 0;transition:color .12s}
.ft-col a:hover{color:var(--brand-text)}
/* 모바일 하단 탭바 */
.tabbar{display:none}
@media(max-width:760px){
  body{padding-bottom:64px}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:saturate(180%) blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}
  .tb{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 9px;font-size:10.5px;font-weight:700;color:var(--text-4)}
  .tb-ic{font-size:19px;line-height:1}
  .tb.on{color:var(--brand-text)}
  .ft-cols{grid-template-columns:1fr 1fr;gap:14px}
}
/* 스티키 헤더 z-index 정리 */
.topbar{z-index:40}

/* ═══ 지역 드롭다운 메가메뉴 ═══ */
.catnav-in{align-items:stretch}
.cn-drop{position:relative;display:flex}
.cn-trigger{background:none;border:0;border-bottom:2px solid transparent;font-family:inherit;cursor:pointer}
.cn-trigger .caret{font-size:10px;transition:transform .2s var(--ease);display:inline-block}
.cn-drop.open .cn-trigger,.cn-drop:hover .cn-trigger{color:var(--brand-text);border-bottom-color:var(--brand)}
.cn-drop.open .cn-trigger .caret{transform:rotate(180deg)}
.cn-panel{position:absolute;top:100%;left:0;min-width:340px;background:#fff;border:1px solid var(--border);border-radius:0 0 14px 14px;box-shadow:var(--shadow-lg);padding:14px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s var(--ease);z-index:45}
.cn-drop.open .cn-panel,.cn-drop:hover .cn-panel{opacity:1;visibility:visible;transform:translateY(0)}
.cn-panel-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.cn-pl{text-align:center;padding:9px 6px;border-radius:9px;font-size:13px;font-weight:700;color:var(--text-2);background:var(--surface-2);border:1px solid transparent;transition:.13s var(--ease)}
.cn-pl:hover{background:var(--brand-soft);color:var(--brand-text);transform:translateY(-1px)}
.cn-pl.on{background:var(--brand);color:#fff}
@media(max-width:560px){ .cn-panel{position:fixed;left:8px;right:8px;min-width:0;width:auto} .cn-panel-grid{grid-template-columns:repeat(4,1fr)} }

/* 단지 비교 */
.dt-acts{display:flex;gap:8px;flex:0 0 auto}
.cmp-wrap{overflow-x:auto}
.cmp-table{border-collapse:collapse;width:100%;min-width:480px;font-size:13.5px}
.cmp-table th,.cmp-table td{border:1px solid var(--border);padding:11px 12px;text-align:center;vertical-align:middle}
.cmp-table thead th{background:var(--brand-soft);font-weight:800;position:relative}
.cmp-table thead th a{color:var(--brand-text);font-size:14px;font-weight:800}
.cmp-lbl{background:var(--surface-2);font-weight:800;color:var(--text-2);text-align:left !important;white-space:nowrap;position:sticky;left:0;z-index:1}
.cmp-hi{color:var(--brand-text);font-size:15px}
.cmp-sub{font-size:11px;color:var(--text-4)}
.cmp-x{position:absolute;top:6px;right:6px;background:none;border:0;color:var(--text-4);cursor:pointer;font-size:12px}
.cmp-x:hover{color:var(--red)}

/* ═══ SVG 아이콘 ═══ */
.ic{width:16px;height:16px;display:inline-block;vertical-align:-3px;flex:0 0 auto;stroke-width:2}
.ih{width:18px;height:18px;vertical-align:-4px;color:var(--brand)}
.catnav-in a .ic,.cn-trigger .ic{margin-right:1px}
.tb-search button .ic{width:18px;height:18px;vertical-align:-4px;color:var(--text-3)}
.hero-chips a .ic{color:var(--brand-text)}
.il b .ic{color:var(--brand);vertical-align:-3px}
.poi-col b .ic{color:var(--brand);width:15px;height:15px;vertical-align:-2px;margin-right:3px}
/* 탭바 아이콘 (이모지→svg) */
.tabbar .tb-ic{width:22px;height:22px;font-size:0}

/* 관심/비교 버튼 아이콘 */
.fav-btn{display:inline-flex;align-items:center;gap:6px}
.fav-btn .ic{width:15px;height:15px;vertical-align:0}
.fav-btn.on .ic{fill:currentColor}
.sm-fav{display:inline-flex;align-items:center;gap:5px}
.sm-fav .ic{width:14px;height:14px}
.sm-fav.on .ic{fill:currentColor}

/* ═══ 다크모드 ═══ */
.theme-toggle{flex:0 0 auto;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--text-3);transition:.15s var(--ease)}
.theme-toggle:hover{border-color:var(--brand);color:var(--brand-text)}
.theme-toggle .ic{width:18px;height:18px}
.theme-toggle .ic-moon{display:none}
html[data-theme=dark] .theme-toggle .ic-sun{display:none}
html[data-theme=dark] .theme-toggle .ic-moon{display:inline-block}

html[data-theme=dark]{
  --bg:#0f1115; --surface:#181b21; --surface-2:#212530; --border:#2b3039; --border-strong:#3a414d;
  --text:#f0f1f3; --text-2:#c7cbd2; --text-3:#9aa1ac; --text-4:#6b727d;
  --brand:#4d94ff; --brand-hover:#6aa6ff; --brand-soft:#16243a; --brand-text:#86b7ff;
  --red:#f87171; --green:#34d399;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow:0 4px 14px rgba(0,0,0,.45);
  --shadow-lg:0 14px 40px -10px rgba(0,0,0,.6);
  color-scheme:dark;
}
/* 하드코딩 흰색/밝은 배경 다크 대응 */
html[data-theme=dark] .topbar,html[data-theme=dark] .catnav,html[data-theme=dark] .sticky-mini,html[data-theme=dark] .tabbar{background:rgba(24,27,33,.92)}
html[data-theme=dark] .hero{background:radial-gradient(900px 420px at 50% -10%,rgba(77,148,255,.1),transparent 70%)}
html[data-theme=dark] .hero::before{background-image:linear-gradient(rgba(77,148,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(77,148,255,.07) 1px,transparent 1px)}
html[data-theme=dark] .hero-badge,html[data-theme=dark] .hero-chips a,html[data-theme=dark] .cn-panel{background:var(--surface)}
html[data-theme=dark] .hsearch{background:var(--surface)}
html[data-theme=dark] .stat,html[data-theme=dark] .dt-summary .ds{background:var(--brand-soft);border-color:#23344d}
html[data-theme=dark] .tbl thead th,html[data-theme=dark] .cmp-table thead th{background:var(--surface-2)}
html[data-theme=dark] .cmp-table thead th{background:var(--brand-soft)}
html[data-theme=dark] .idx-chg.up,html[data-theme=dark] .ip-c.up{background:#3a1c1c;color:#f87171}
html[data-theme=dark] .idx-chg.down,html[data-theme=dark] .ip-c.down{background:#16243a;color:#86b7ff}
html[data-theme=dark] .fav-btn.on,html[data-theme=dark] .sm-fav.on{background:#3a2a14;border-color:#7c5a23;color:#fbbf24}
html[data-theme=dark] .rk-no.top,html[data-theme=dark] .ac.on,html[data-theme=dark] .cn-pl.on,html[data-theme=dark] .fbtn.on{color:#fff}
html[data-theme=dark] .price-pin span{background:var(--surface);color:var(--text)}
html[data-theme=dark] .price-pin b{background:var(--brand)}
html[data-theme=dark] .lc-type.t-jeonse{background:#2563eb}
html[data-theme=dark] .logo .logo-ic rect[fill="#fff"]{fill:#181b21}
html[data-theme=dark] img,html[data-theme=dark] .amini{filter:brightness(.92)}
html[data-theme=dark] .guide-content code{background:var(--surface-2)}

/* 계산기 탭 가로 스크롤 */
.dt-tabs-scroll{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.dt-tabs-scroll::-webkit-scrollbar{display:none}
.dt-tabs-scroll .ctb{flex:0 0 auto;white-space:nowrap}

/* ═══════════ 프차넷 스타일 메가 네비 ═══════════ */
.mnav{position:sticky;top:0;z-index:200;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}
html[data-theme=dark] .mnav{background:rgba(24,27,33,.92)}
.mnav-in{max-width:1200px;margin:0 auto;padding:0 20px;height:62px;display:flex;align-items:center;gap:10px}
.mnav .logo{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:800;color:var(--text);text-decoration:none;white-space:nowrap}
.mnav .logo-ic{width:26px;height:26px}
.mnav .logo b{color:var(--brand)}
/* 로고 실시간 통계 드롭다운 */
.logo-mega{position:relative}
.logo-stats{position:absolute;top:calc(100% + 10px);left:0;width:320px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);padding:16px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s var(--ease);z-index:210}
.logo-mega:hover .logo-stats{opacity:1;visibility:visible;transform:translateY(0)}
.logo-stats h4{margin:0 0 10px;font-size:12px;font-weight:700;color:var(--text-3);display:flex;align-items:center;gap:5px}
.logo-stats h4 .ic{width:14px;height:14px}
.ls-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ls{background:var(--surface-2);border-radius:10px;padding:10px 12px}
.ls-n{font-size:18px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.ls-l{font-size:11px;color:var(--text-3);margin-top:2px}
.ls-foot{margin-top:10px;font-size:10.5px;color:var(--text-4);line-height:1.5}
/* 메뉴 */
.mmenu{display:flex;align-items:center;gap:2px;margin-left:6px}
.mega{position:relative}
.mtrig{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;font-size:14.5px;font-weight:700;color:var(--text-2);text-decoration:none;border-radius:9px;cursor:pointer;transition:.13s var(--ease);white-space:nowrap}
.mtrig:hover,.mega:hover .mtrig{background:var(--brand-soft);color:var(--brand-text)}
.mtrig.on{color:var(--brand-text)}
.mtrig .chev{width:14px;height:14px;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s var(--ease)}
.mega:hover .mtrig .chev{transform:rotate(180deg)}
.mpanel{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(6px);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);padding:14px;opacity:0;visibility:hidden;transition:.18s var(--ease);z-index:205}
.mega:hover .mpanel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.mpanel::before{content:'';position:absolute;top:-8px;left:0;right:0;height:8px}
.mcols{display:grid;gap:18px}
.mcol h4{margin:0 0 8px;font-size:11px;font-weight:700;color:var(--text-4);text-transform:uppercase;letter-spacing:.04em;padding:0 8px}
.mi{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;text-decoration:none;transition:.12s var(--ease)}
.mi:hover{background:var(--surface-2)}
.mi-ic{flex:0 0 auto;width:34px;height:34px;border-radius:9px;background:var(--surface-2);display:flex;align-items:center;justify-content:center}
.mi:hover .mi-ic{background:var(--bg)}
.mi-ic .ic{width:17px;height:17px}
.mi-t{display:flex;flex-direction:column;line-height:1.3}
.mi-t b{font-size:13.5px;font-weight:700;color:var(--text)}
.mi-t i{font-size:11.5px;color:var(--text-3);font-style:normal}
.region-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 8px}
.rchip{padding:6px 11px;border-radius:8px;background:var(--surface-2);font-size:13px;font-weight:600;color:var(--text-2);text-decoration:none;transition:.12s var(--ease)}
.rchip:hover{background:var(--brand);color:#fff}
.rchip.on{background:var(--brand);color:#fff}
/* 우측 */
.mnav-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.mnav-right .tb-search{display:flex;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:0 4px 0 12px;height:38px;transition:.13s var(--ease)}
.mnav-right .tb-search:focus-within{border-color:var(--brand);background:var(--surface)}
.mnav-right .tb-search input{border:0;background:transparent;outline:0;font-size:13.5px;width:150px;color:var(--text)}
.mnav-right .tb-search button{border:0;background:transparent;cursor:pointer;color:var(--text-3);display:flex;align-items:center;padding:6px}
.mnav-right .tb-search button .ic{width:17px;height:17px}
.nav-act{position:relative;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--text-3);text-decoration:none;transition:.13s var(--ease)}
.nav-act:hover{border-color:var(--brand);color:var(--brand-text)}
.nav-act .ic{width:18px;height:18px}
.nav-cnt{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--brand);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.nav-burger{display:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);cursor:pointer;align-items:center;justify-content:center}
.nav-burger svg{width:20px;height:20px}
/* 모바일 메뉴 */
.mob-menu{display:none;border-top:1px solid var(--border);background:var(--surface);padding:14px 20px;max-height:0;overflow:hidden}
.mob-menu.open{display:block;max-height:600px}
.mm-a{display:block;padding:10px 0;font-weight:700;color:var(--text);text-decoration:none}
.mm-sec{margin-top:10px;font-size:11px;font-weight:700;color:var(--text-4);text-transform:uppercase;letter-spacing:.04em}
.mm-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.mm-chips a{padding:7px 12px;border-radius:8px;background:var(--surface-2);font-size:13px;font-weight:600;color:var(--text-2);text-decoration:none}
.mm-chips a:active{background:var(--brand);color:#fff}
@media(max-width:980px){
  .mmenu{display:none}
  .logo-stats{display:none}
  .nav-burger{display:flex}
  .mnav-right .tb-search input{width:110px}
  .nav-act{display:none}
}
@media(max-width:560px){
  .mnav-in{padding:0 14px;gap:6px}
  .mnav-right .tb-search{width:auto}
  .mnav-right .tb-search input{width:90px}
}

/* 홈 거래유형 그리드 */
.type-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}
.type-card{display:flex;flex-direction:column;align-items:center;gap:5px;padding:18px 8px;background:var(--surface);border:1px solid var(--border);border-radius:14px;text-decoration:none;text-align:center;transition:.15s var(--ease)}
.type-card:hover{transform:translateY(-3px);border-color:var(--brand);box-shadow:var(--shadow)}
.tc-ic{width:44px;height:44px;border-radius:12px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;transition:.15s var(--ease)}
.type-card:hover .tc-ic{background:var(--brand-soft)}
.tc-ic .ic{width:22px;height:22px}
.tc-n{font-size:14px;font-weight:700;color:var(--text)}
.tc-d{font-size:11px;color:var(--text-3)}
/* 인기 시군구 그리드 (홈) */
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.area-card{display:flex;align-items:center;gap:11px;padding:13px 15px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-decoration:none;transition:.13s var(--ease)}
.area-card:hover{border-color:var(--brand);background:var(--brand-soft)}
.ar-rk{flex:0 0 auto;width:26px;height:26px;border-radius:8px;background:var(--surface-2);color:var(--text-3);font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}
.area-card:nth-child(-n+3) .ar-rk{background:var(--brand);color:#fff}
.ar-main{display:flex;flex-direction:column;line-height:1.4;min-width:0}
.ar-main b{font-size:14px;font-weight:700;color:var(--text)}
.ar-main span{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){
  .type-grid{grid-template-columns:repeat(4,1fr)}
  .area-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:460px){ .type-grid{grid-template-columns:repeat(3,1fr)} .area-grid{grid-template-columns:1fr} }

/* 단지정보 네이버식 테이블 */
.info-table{width:100%;border-collapse:collapse;border-top:2px solid var(--text);font-size:13.5px;margin-bottom:6px}
.info-table th,.info-table td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}
.info-table th{background:var(--surface-2);color:var(--text-3);font-weight:600;width:108px;white-space:nowrap}
.info-table td{color:var(--text);font-weight:600}
.info-table .it-sub{color:var(--text-3);font-weight:500;font-size:12px}
.it-tel{color:var(--brand-text);font-weight:700}
@media(max-width:560px){ .info-table th{width:84px;padding:9px 8px;font-size:12px} .info-table td{padding:9px 8px;font-size:12.5px} }
/* 면적별 세대 분포 */
.area-dist{display:flex;flex-direction:column;gap:7px;margin:8px 0 4px}
.ad-row{display:flex;align-items:center;gap:10px;font-size:13px}
.ad-l{flex:0 0 92px;color:var(--text-2);font-weight:600}
.ad-bar{flex:1;height:9px;background:var(--surface-2);border-radius:5px;overflow:hidden}
.ad-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-hover));border-radius:5px}
.ad-v{flex:0 0 auto;color:var(--text-3);font-weight:600;font-variant-numeric:tabular-nums;min-width:60px;text-align:right}

/* 관리비 정보 */
.mgmt-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px}
.mg-main{display:flex;flex-direction:column;gap:3px;padding:14px 16px;background:var(--surface-2);border-radius:12px}
.mg-main.hi{background:var(--brand-soft)}
.mg-l{font-size:12px;color:var(--text-3);font-weight:600}
.mg-v{font-size:20px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.mg-v.sm{font-size:15px}
.mg-main.hi .mg-v{color:var(--brand-text)}
.mg-s{font-size:11px;color:var(--text-4)}
.mg-items{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mgi{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--border);border-radius:10px}
.mgi span{font-size:11.5px;color:var(--text-3)}
.mgi b{font-size:14px;color:var(--text);font-weight:700}
@media(max-width:680px){ .mgmt-summary{grid-template-columns:1fr}.mg-items{grid-template-columns:repeat(2,1fr)} }

/* 단지명 자동완성 드롭다운 */
.ac-box{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden;z-index:260;display:none}
.ac-box.open{display:block}
.ac-i{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;text-decoration:none;border-bottom:1px solid var(--border)}
.ac-i:last-child{border-bottom:0}
.ac-i:hover,.ac-i.on{background:var(--brand-soft)}
.ac-n{font-size:13.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-l{font-size:11.5px;color:var(--text-3);white-space:nowrap;flex:0 0 auto}
.hsearch .ac-box{text-align:left}
.hsearch .ac-n{font-size:15px}

/* 분양·청약 */
.subs-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.subs-card{display:flex;flex-direction:column;gap:6px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:14px;text-decoration:none;transition:.15s var(--ease)}
.subs-card:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:var(--shadow)}
.sc-top{display:flex;align-items:center;gap:8px}
.sc-badge{font-size:11px;font-weight:800;padding:3px 9px;border-radius:7px}
.b-live{background:#fee2e2;color:#dc2626}
.b-soon{background:var(--brand-soft);color:var(--brand-text)}
.b-done{background:var(--surface-2);color:var(--text-4)}
.b-tbd{background:var(--surface-2);color:var(--text-3)}
html[data-theme=dark] .b-live{background:#3a1c1c;color:#f87171}
.sc-region{font-size:12px;color:var(--text-3);font-weight:600}
.sc-name{font-size:16px;font-weight:800;color:var(--text)}
.sc-addr{font-size:12.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12.5px;color:var(--text-2);margin-top:2px}
.sc-meta b{color:var(--text-4);font-weight:600;font-size:11px;margin-right:3px}
.sc-price{font-size:14px;font-weight:800;color:var(--brand-text);margin-top:2px}
.subs-links{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 4px}
.sl-btn{padding:11px 18px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);font-size:13.5px;font-weight:700;color:var(--text);text-decoration:none;transition:.13s var(--ease)}
.sl-btn:hover{border-color:var(--brand)}
.sl-btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}
.sl-btn.primary:hover{background:var(--brand-hover)}
@media(max-width:620px){ .subs-list{grid-template-columns:1fr} }

/* 전세가율 */
.rp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.jeonse-ratio{font-size:13px;color:var(--text-3);font-weight:600;background:var(--surface-2);padding:6px 12px;border-radius:9px;white-space:nowrap}
.jeonse-ratio b{color:var(--brand-text);font-size:15px;margin-left:3px}

/* 이 지역 다른 단지 */
.near-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.near-card{display:flex;flex-direction:column;gap:5px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;text-decoration:none;transition:.13s var(--ease)}
.near-card:hover{border-color:var(--brand);background:var(--brand-soft)}
.near-nm{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.near-meta{display:flex;align-items:baseline;justify-content:space-between;gap:6px}
.near-meta b{font-size:14px;font-weight:800;color:var(--brand-text)}
.near-meta i{font-size:11.5px;color:var(--text-3);font-style:normal}
@media(max-width:560px){ .near-grid{grid-template-columns:1fr 1fr} }

/* ═══ 네이버식 지도 탐색 ═══ */
.mapx{margin:-16px -16px 0;display:flex;flex-direction:column}
.mapx-bar{display:flex;gap:8px;align-items:center;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;position:sticky;top:62px;z-index:50}
.mx-sel{height:38px;padding:0 12px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);color:var(--text);font-size:13.5px;font-weight:600;cursor:pointer}
.mx-sel:focus{border-color:var(--brand);outline:none}
.mx-hint{font-size:12px;color:var(--text-4);margin-left:auto}
.mapx-body{display:flex;height:calc(100vh - 62px - 59px)}
.mapx-map{flex:1;height:100%}
.mapx-side{width:340px;flex:0 0 340px;height:100%;overflow-y:auto;border-left:1px solid var(--border);background:var(--bg)}
.mxs-head{padding:12px 16px;font-size:13px;color:var(--text-3);border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface);z-index:2}
.mxs-head b{color:var(--brand-text);font-size:16px;font-weight:800}
.mxs-list{display:flex;flex-direction:column}
.mxi{display:flex;flex-direction:column;gap:3px;padding:12px 16px;border-bottom:1px solid var(--border);text-decoration:none;transition:.1s var(--ease)}
.mxi:hover{background:var(--brand-soft)}
.mxi-nm{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mxi-meta{display:flex;align-items:baseline;gap:8px}
.mxi-meta b{font-size:15px;font-weight:800;color:var(--brand-text)}
.mxi-meta i{font-size:11.5px;color:var(--text-3);font-style:normal}
.mxs-empty{padding:24px 16px;font-size:13px;color:var(--text-4);text-align:center}
/* 가격 마커 */
.mx-pin{display:inline-block;position:relative;background:var(--surface);border:1.5px solid var(--brand);border-radius:14px;padding:4px 9px;box-shadow:var(--shadow-sm);cursor:pointer;transform:translate(-50%,0);transition:.1s var(--ease)}
.mx-pin b{font-size:12px;font-weight:800;color:var(--brand-text);white-space:nowrap}
.mx-pin::after{content:'';position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--brand)}
.mx-pin:hover{background:var(--brand);z-index:10;transform:translate(-50%,-2px)}
.mx-pin:hover b{color:#fff}
.mx-pin:hover::after{border-top-color:var(--brand)}
@media(max-width:760px){
  .mapx-body{flex-direction:column;height:auto}
  .mapx-map{height:55vh}
  .mapx-side{width:100%;flex:none;height:38vh;border-left:0;border-top:1px solid var(--border)}
  .mapx-bar{top:56px}
  .mx-hint{display:none}
}

/* 랭킹 평당 단위 */
.rk-unit{font-size:11px;color:var(--text-4);font-weight:600;font-style:normal;margin-left:1px}

/* 관심단지 카드 */
.fav-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.fav-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:14px;transition:.13s var(--ease)}
.fav-card:hover{border-color:var(--brand);box-shadow:var(--shadow)}
.fc-main{display:flex;flex-direction:column;gap:4px;padding:16px;text-decoration:none}
.fc-nm{font-size:15px;font-weight:700;color:var(--text);padding-right:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-loc{font-size:12px;color:var(--text-3)}
.fc-stat{display:flex;align-items:baseline;gap:8px;margin-top:4px;flex-wrap:wrap}
.fc-avg{font-size:17px;font-weight:800;color:var(--brand-text)}
.fc-extra{font-size:11.5px;color:var(--text-3)}
.fc-x{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-4);font-size:17px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.fc-x:hover{border-color:var(--red);color:var(--red)}
@media(max-width:560px){ .fav-grid{grid-template-columns:1fr} }

/* ═══ 지도 도구 (네이버급) ═══ */
.mapx-mapwrap{flex:1;position:relative;height:100%;min-width:0}
.mapx-map{position:absolute;inset:0;width:100%;height:100%}
/* 지도 타입 */
.map-type{position:absolute;top:12px;right:12px;z-index:20;display:flex;background:var(--surface);border:1px solid var(--border);border-radius:9px;overflow:hidden;box-shadow:var(--shadow-sm)}
.mtt{border:0;background:transparent;padding:7px 12px;font-size:12.5px;font-weight:700;color:var(--text-3);cursor:pointer;border-right:1px solid var(--border)}
.mtt:last-child{border-right:0}
.mtt.on{background:var(--brand);color:#fff}
/* 도구 버튼 */
.map-tools{position:absolute;top:12px;left:12px;z-index:20;display:flex;flex-direction:column;gap:6px}
.mtool{display:flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);border-radius:9px;padding:8px 11px;font-size:12.5px;font-weight:700;color:var(--text-2);cursor:pointer;box-shadow:var(--shadow-sm)}
.mtool .ic{width:15px;height:15px}
.mtool.on{background:var(--brand);color:#fff;border-color:var(--brand)}
/* POI 칩 */
.map-poi{position:absolute;bottom:14px;left:12px;z-index:20;display:flex;flex-wrap:wrap;gap:6px;max-width:60%}
.poic{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:6px 12px;font-size:12.5px;font-weight:700;color:var(--text-2);cursor:pointer;box-shadow:var(--shadow-sm)}
.poic i{width:8px;height:8px;border-radius:50%}
.poic.on{background:var(--text);color:#fff;border-color:var(--text)}
html[data-theme=dark] .poic.on{background:var(--brand);border-color:var(--brand)}
/* 거리재기 바 */
.measure-bar{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:25;display:none;align-items:center;gap:10px;background:var(--text);color:#fff;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;box-shadow:var(--shadow-lg)}
.measure-bar.on{display:flex}
.measure-bar button{border:0;background:rgba(255,255,255,.2);color:#fff;border-radius:7px;padding:4px 10px;font-size:12px;font-weight:700;cursor:pointer}
.measure-cursor{cursor:crosshair!important}
.road-cursor{cursor:pointer!important}
/* 로드뷰 패널 */
.mx-road{position:absolute;inset:0;z-index:30;display:none}
.mx-road.on{display:block}
.road-close{position:absolute;top:14px;right:14px;z-index:45;display:inline-flex;align-items:center;gap:6px;border:0;background:rgba(17,24,39,.88);color:#fff;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:800;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.4);backdrop-filter:blur(4px)}
/* POI 마커 */
.poi-pin{display:flex;align-items:center;gap:4px;transform:translate(-50%,-100%);white-space:nowrap;pointer-events:none}
.poi-pin i{width:9px;height:9px;border-radius:50%;background:var(--pc);border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.3);flex:0 0 auto}
.poi-pin span{font-size:11px;font-weight:700;color:#222;background:rgba(255,255,255,.92);padding:1px 5px;border-radius:5px;box-shadow:0 1px 2px rgba(0,0,0,.15)}
@media(max-width:760px){
  .map-poi{max-width:90%;bottom:8px}
  .map-tools{top:8px;left:8px}
  .map-type{top:8px;right:8px}
  .poic span{display:inline}
}

/* 거래유형 탭 (지도) */
.mapx-types{display:flex;gap:2px;padding:8px 16px 0;background:var(--surface);overflow-x:auto;scrollbar-width:none}
.mapx-types::-webkit-scrollbar{display:none}
.mxt{flex:0 0 auto;padding:9px 16px;font-size:13.5px;font-weight:700;color:var(--text-3);text-decoration:none;border-bottom:2.5px solid transparent;white-space:nowrap}
.mxt:hover{color:var(--text)}
.mxt.on{color:var(--brand-text);border-bottom-color:var(--brand)}
/* 지도 본문 높이 재계산(탭 추가분) */
.mapx-body{height:calc(100vh - 62px - 44px - 56px)}
/* 지역 평균가 버블 (줌아웃 드릴다운) */
.reg-bubble{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:62px;height:62px;padding:0 8px;background:linear-gradient(135deg,var(--brand),var(--brand-hover));border:2px solid #fff;border-radius:50%;box-shadow:0 3px 10px rgba(49,130,246,.4);cursor:pointer;transform:translate(-50%,-50%);transition:.12s var(--ease)}
.reg-bubble:hover{transform:translate(-50%,-50%) scale(1.08);z-index:5}
.rb-n{font-size:11px;font-weight:700;color:rgba(255,255,255,.92);line-height:1.1}
.rb-p{font-size:13px;font-weight:800;color:#fff;line-height:1.1}
.mxi-reg{cursor:pointer}
.mxi-reg:hover{background:var(--brand-soft)}
/* 단지 가격 마커 — 네이버식 재정의 */
.mx-pin{display:inline-block;position:relative;background:var(--surface);border:1.5px solid var(--brand);border-radius:16px;padding:5px 11px;box-shadow:0 2px 6px rgba(0,0,0,.18);cursor:pointer;transform:translate(-50%,0);transition:.1s var(--ease);font-variant-numeric:tabular-nums}
.mx-pin b{font-size:12.5px;font-weight:800;color:var(--brand-text);white-space:nowrap}
.mx-pin::after{content:'';position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--brand)}
.mx-pin:hover{background:var(--brand);z-index:10;transform:translate(-50%,-2px) scale(1.05)}
.mx-pin:hover b{color:#fff}
@media(max-width:760px){ .mapx-body{height:auto} }

/* ═══ 지도 풀사이즈 + 디자인 폴리시 (override) ═══ */
.mapx{width:100%;height:calc(100vh - 62px);margin:0;display:flex;flex-direction:column;background:var(--surface)}
.mapx-body{flex:1;min-height:0;height:auto;display:flex}
.mapx-types{padding:0 18px;border-bottom:1px solid var(--border);gap:0}
.mxt{padding:12px 18px;font-size:14px}
.mapx-bar{padding:10px 18px;gap:7px;border-bottom:1px solid var(--border)}
.mx-sel{height:36px;border-radius:18px;padding:0 14px;font-size:13px;background:var(--surface);transition:.12s var(--ease)}
.mx-sel:hover{border-color:var(--brand)}
.mapx-side{width:360px;flex:0 0 360px}
.mxs-head{display:flex;align-items:baseline;gap:5px;padding:13px 18px;font-size:13px}
.mxi{padding:13px 18px}
.mxi:hover{background:var(--brand-soft)}
/* 마커 디자인 업그레이드 */
.mx-pin{padding:5px 12px;border-radius:18px;border-width:1.5px;box-shadow:0 2px 8px rgba(20,40,80,.16);backdrop-filter:saturate(160%) blur(2px)}
.mx-pin b{font-size:13px;letter-spacing:-.2px}
.mx-pin::after{border-top-width:7px}
.reg-bubble{min-width:66px;height:66px;border-width:3px;box-shadow:0 4px 14px rgba(49,130,246,.45)}
.rb-p{font-size:14px}
html[data-theme=dark] .mapx{background:var(--bg)}
/* 모바일 풀사이즈 */
@media(max-width:760px){
  .mapx{height:calc(100vh - 56px)}
  .mapx-body{flex-direction:column}
  .mapx-mapwrap{flex:1;min-height:0}
  .mapx-side{width:100%;flex:0 0 40%;height:auto;border-left:0;border-top:1px solid var(--border)}
}

/* ═══ 네이버 부동산식 디자인 폴리시 (override 2) ═══ */
/* 리스트 패널 좌측 배치(네이버 레이아웃) */
.mapx-side{order:-1;border-left:0;border-right:1px solid var(--border);box-shadow:2px 0 12px rgba(0,0,0,.04)}
.mxs-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 16px}
.mxs-cnt b{color:var(--brand-text);font-size:16px;font-weight:800}
.mxs-cnt span{font-size:13px;color:var(--text-3);margin-left:3px}
.mxs-sort{height:30px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);font-size:12px;font-weight:600;color:var(--text-2);padding:0 8px;cursor:pointer}
.mxi-nm{font-size:14.5px}
.mxi-meta b{font-size:14.5px}
/* 거래유형 탭 — 네이버식 강조 */
.mapx-types{box-shadow:inset 0 -1px 0 var(--border)}
.mxt{position:relative;transition:.12s var(--ease)}
.mxt.on{color:var(--brand-text)}
.mxt.on::after{content:'';position:absolute;left:14px;right:14px;bottom:-1px;height:3px;background:var(--brand);border-radius:3px 3px 0 0}
.mxt{border-bottom:none}
/* 필터 셀렉트 — 네이버식 펄 */
.mapx-bar{gap:8px}
.mx-sel{height:38px;border-radius:19px;border:1px solid var(--border);background:var(--surface);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.05);appearance:none;-webkit-appearance:none;padding-right:30px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2399a1ac' stroke-width='2'><path d='M2 4l4 4 4-4'/></svg>");background-repeat:no-repeat;background-position:right 12px center}
.mx-sel:hover{border-color:var(--brand);color:var(--brand-text)}
/* 맵 컨트롤 — 깔끔한 흰 버튼 */
.map-type{border-radius:11px;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.mtt{padding:8px 14px}
.map-tools .mtool,.map-poi .poic{box-shadow:0 2px 10px rgba(0,0,0,.12);border-radius:11px}
.map-poi .poic{border-radius:18px}
/* 단지 마커 — 네이버식(둥근 말풍선, 가격 강조) */
.mx-pin{padding:5px 12px;border-radius:9px;border:1px solid var(--brand);background:var(--surface);box-shadow:0 3px 10px rgba(20,40,80,.2)}
.mx-pin b{font-size:13px;color:var(--brand-text);font-weight:800}
.mx-pin::after{bottom:-7px;border-top-width:7px;border-left-width:6px;border-right-width:6px}
.mx-pin:hover{background:var(--brand);border-color:var(--brand);transform:translate(-50%,-3px) scale(1.06)}
/* 지역 버블 — 네이버식 원형 */
.reg-bubble{border:3px solid #fff;box-shadow:0 5px 16px rgba(49,130,246,.5)}
@media(max-width:760px){ .mapx-side{order:0;border-right:0;border-top:1px solid var(--border);box-shadow:none} }

/* ═══ 단지 정보 카드 (마커 클릭) ═══ */
.mp-card{position:relative;width:230px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 36px -6px rgba(20,40,80,.32);padding:16px 16px 14px;transform:translate(-50%,0);animation:mpPop .14s var(--ease)}
@keyframes mpPop{from{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%,0)}}
.mp-card::after{content:'';position:absolute;left:50%;bottom:-9px;transform:translateX(-50%);border-left:9px solid transparent;border-right:9px solid transparent;border-top:9px solid var(--surface)}
.mpc-x{position:absolute;top:9px;right:9px;width:24px;height:24px;border:0;background:var(--surface-2);border-radius:7px;color:var(--text-4);cursor:pointer;display:flex;align-items:center;justify-content:center}
.mpc-x:hover{color:var(--text);background:var(--border)}
.mpc-x .ic{width:13px;height:13px}
.mpc-nm{font-size:15px;font-weight:800;color:var(--text);padding-right:26px;line-height:1.3;margin-bottom:6px}
.mpc-price{font-size:21px;font-weight:800;color:var(--brand-text);line-height:1.1}
.mpc-price span{font-size:11px;font-weight:600;color:var(--text-4);margin-left:5px}
.mpc-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 10px;margin:11px 0 12px}
.mpc-grid div{display:flex;justify-content:space-between;font-size:12px;border-bottom:1px dashed var(--border);padding-bottom:3px}
.mpc-grid span{color:var(--text-3)}
.mpc-grid b{color:var(--text);font-weight:700}
.mpc-btn{display:flex;align-items:center;justify-content:center;gap:5px;background:var(--brand);color:#fff;font-size:13px;font-weight:700;padding:9px;border-radius:10px;text-decoration:none;transition:.12s var(--ease)}
.mpc-btn:hover{background:var(--brand-hover)}
.mpc-btn .ic{width:15px;height:15px}
/* 도구 버튼 아이콘 정렬 강화 */
.mtool .ic{width:16px;height:16px}
.mtool.on .ic{color:#fff}
html[data-theme=dark] .mp-card::after{border-top-color:var(--surface)}

/* 지도 거래유형 탭 — button/a 통일 리셋 (깨짐 수정) */
.mapx-types .mxt{appearance:none;-webkit-appearance:none;border:0;background:transparent;font-family:inherit;font-size:14px;font-weight:700;color:var(--text-3);padding:13px 16px;margin:0;cursor:pointer;white-space:nowrap;text-decoration:none;line-height:1.2;display:inline-flex;align-items:center;border-radius:0;box-shadow:none}
.mapx-types .mxt:hover{color:var(--text);background:transparent}
.mapx-types .mxt.on{color:var(--brand-text);background:transparent}

/* 단지 카드 보강 (지하철·최근실거래) */
.mp-card{width:248px}
.mpc-sub{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text-3);margin:-2px 0 6px;font-weight:600}
.mpc-sub .ic{width:13px;height:13px;color:#16a34a}
.mpc-recent{font-size:11.5px;color:var(--text-3);background:var(--surface-2);border-radius:8px;padding:6px 9px;margin:8px 0 0}
.mpc-recent b{color:var(--text);font-weight:800;font-size:13px}
.mpc-recent i{font-style:normal;color:var(--text-4);font-size:10.5px;display:block;margin-top:1px}
.mpc-grid{margin-top:10px}

/* 개별 거래(단독·상가·토지) / 분양 마커 */
.mx-pin.etc{border-color:#ea580c}
.mx-pin.etc b{color:#ea580c}
.mx-pin.etc::after{border-top-color:#ea580c}
.mx-pin.etc:hover{background:#ea580c;border-color:#ea580c}
.mx-pin.etc:hover b{color:#fff}
.mx-pin.sub{border-color:#dc2626;background:#dc2626}
.mx-pin.sub b{color:#fff}
.mx-pin.sub::after{border-top-color:#dc2626}
.mx-pin.sub:hover{background:#b91c1c;transform:translate(-50%,-3px) scale(1.08)}
.mxi.etc{cursor:default}
.mxi.etc:hover{background:var(--surface-2)}

/* ═══════════ 디자인 정제 패스 (2026-06-22) ═══════════ */
:root{
  --shadow-sm:0 1px 3px rgba(16,24,40,.06);
  --shadow:0 6px 22px -8px rgba(16,24,40,.12),0 0 0 1px rgba(16,24,40,.02);
  --shadow-lg:0 24px 56px -16px rgba(16,24,40,.22);
  --ease:cubic-bezier(.22,1,.36,1);
}
html{scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;letter-spacing:-.01em}
h1,h2,h3,.dt-h2{letter-spacing:-.025em}
h1{letter-spacing:-.035em}
/* 섹션 카드 더 부드럽게 */
.sec{border-radius:18px;padding:24px;border-color:var(--border)}
@media(max-width:560px){ .sec{padding:18px;border-radius:16px} }
/* 카드류 hover 리프트 통일 */
.region-card,.gu-card,.apt-row,.type-card,.area-card,.pop-card,.near-card,.subs-card,.fav-card,.mxi{transition:transform .16s var(--ease),box-shadow .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease)}
.region-card:hover,.gu-card:hover,.apt-row:hover,.pop-card:hover,.near-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.type-card:hover,.subs-card:hover,.fav-card:hover{box-shadow:var(--shadow)}
/* 히어로 정제 */
.hero{padding:60px 20px 46px}
.hero-badge{box-shadow:var(--shadow-sm)}
.hsearch{box-shadow:var(--shadow)}
.hsearch button{transition:.15s var(--ease)}
.hsearch button:hover{background:var(--brand-hover);transform:translateY(-1px)}
.hero-chips a{transition:.15s var(--ease)}
.hero-chips a:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
/* 통계 숫자 더 또렷 */
.stat .sv,.ds-v,.mpc-price,.mg-v{font-variant-numeric:tabular-nums}
/* eyebrow 라벨 정제 */
.eyebrow{letter-spacing:.08em;font-weight:800;font-size:11px;opacity:.9}
/* 섹션 헤더 정렬 */
.sec-head{margin-bottom:16px}
.sec-head h2{font-size:19px;display:flex;align-items:center;gap:7px}
.sec-head>a{font-size:13px;font-weight:700;color:var(--brand-text);text-decoration:none;transition:.12s var(--ease)}
.sec-head>a:hover{gap:6px;opacity:.8}
/* 포커스 접근성 */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}
/* 사이드 패널 스크롤바 */
.mxs-list::-webkit-scrollbar,.mapx-side::-webkit-scrollbar{width:8px}
.mxs-list::-webkit-scrollbar-thumb,.mapx-side::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:4px}
.mxs-list::-webkit-scrollbar-thumb:hover,.mapx-side::-webkit-scrollbar-thumb:hover{background:var(--text-4)}
/* 표 정제 */
.tbl thead th{font-weight:700;letter-spacing:-.01em}
.tbl tbody tr{transition:background .1s}
.tbl tbody tr:hover{background:var(--brand-soft)}
/* 버튼 공통 호버 부드럽게 */
.fbtn,.dtb,.ctb,.mtb,.dtb{transition:.14s var(--ease)}

/* ═══ 지도 리스트↔마커 연동 ═══ */
.mx-pin.hi{background:var(--brand)!important;border-color:var(--brand)!important;z-index:20;transform:translate(-50%,-3px) scale(1.12)}
.mx-pin.hi b{color:#fff!important}
.mx-pin.hi::after{border-top-color:var(--brand)!important}
.mxi[data-key]{cursor:pointer}
.mxi.sel{background:var(--brand-soft);box-shadow:inset 3px 0 0 var(--brand)}
/* 로딩 인디케이터 */
.mapx-side{position:relative}
.mapx-side.loading .mxs-head::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--brand),transparent);background-size:50% 100%;animation:mxLoad 1s linear infinite}
@keyframes mxLoad{0%{background-position:-50% 0}100%{background-position:150% 0}}

/* 무한스크롤 더보기 힌트 */
.mxs-more{padding:11px 16px;text-align:center;font-size:11.5px;color:var(--text-4);background:var(--surface-2);border-bottom:1px solid var(--border)}

/* 목록 패널 접기/펼치기 */
.mapx-side{transition:flex-basis .22s var(--ease),width .22s var(--ease)}
.mapx.side-collapsed .mapx-side{flex-basis:0;width:0;overflow:hidden;border-right:0}
.side-toggle{position:absolute;left:0;top:50%;transform:transl(-0,-50%);z-index:22;width:22px;height:46px;border:1px solid var(--border);border-left:0;background:var(--surface);color:var(--text-3);border-radius:0 9px 9px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:2px 0 8px rgba(0,0,0,.08);transform:translateY(-50%)}
.side-toggle:hover{color:var(--brand-text)}
.side-toggle .ic{width:15px;height:15px;transform:rotate(180deg);transition:transform .2s var(--ease)}
.mapx.side-collapsed .side-toggle .ic{transform:rotate(0deg)}
@media(max-width:760px){ .side-toggle{display:none} .mapx.side-collapsed .mapx-side{flex-basis:40%;width:100%} }

/* 마커 클러스터 */
.mx-cluster{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:linear-gradient(135deg,var(--brand),var(--brand-hover));color:#fff;border:2.5px solid #fff;border-radius:50%;box-shadow:0 4px 12px rgba(49,130,246,.45);cursor:pointer;font-weight:800;transform:translate(-50%,-50%);transition:transform .12s var(--ease)}
.mx-cluster b{font-size:13px}
.mx-cluster.md{width:46px;height:46px;background:linear-gradient(135deg,#f59e0b,#ea580c);box-shadow:0 4px 14px rgba(234,88,12,.45)}
.mx-cluster.md b{font-size:14px}
.mx-cluster.lg{width:56px;height:56px;background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 5px 16px rgba(220,38,38,.5)}
.mx-cluster.lg b{font-size:16px}
.mx-cluster:hover{transform:translate(-50%,-50%) scale(1.12);z-index:30}

/* 지도 단지 검색 */
.mx-search{position:relative;display:flex;align-items:center;height:38px;background:var(--surface);border:1px solid var(--border);border-radius:19px;padding:0 12px;box-shadow:0 1px 3px rgba(0,0,0,.05);min-width:190px}
.mx-search:focus-within{border-color:var(--brand)}
.mxsr-ic{width:16px;height:16px;color:var(--text-4);flex:0 0 auto}
.mx-search input{border:0;background:transparent;outline:0;font-size:13.5px;padding:0 8px;width:100%;color:var(--text)}
.mx-sgst{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:260px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden;display:none;z-index:300}
.mx-sgst.open{display:block}
.mx-sgi{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px;cursor:pointer;border-bottom:1px solid var(--border)}
.mx-sgi:last-child{border-bottom:0}
.mx-sgi:hover,.mx-sgi.on{background:var(--brand-soft)}
.mx-sgi b{font-size:13.5px;font-weight:700;color:var(--text)}
.mx-sgi span{font-size:11.5px;color:var(--text-3);white-space:nowrap}
@media(max-width:560px){ .mx-search{min-width:140px;flex:1} }

/* 마커 단지명 표시 */
.mx-pin.named{border-radius:11px;padding:4px 11px;display:flex;flex-direction:column;align-items:center;gap:0;line-height:1.15}
.mx-pin.named .mp-nm{font-size:10.5px;font-weight:700;color:var(--text-2);max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:normal}
.mx-pin.named b{font-size:12.5px}
.mx-pin.named:hover .mp-nm{color:#fff}

/* 주변 인프라 (카드 내) */
.mpc-infra{margin:10px 0 0;border-top:1px solid var(--border);padding-top:9px}
.ifr-h{font-size:11px;font-weight:700;color:var(--text-4);margin-bottom:5px}
.ifr{display:flex;align-items:center;gap:6px;font-size:11.5px;padding:2px 0}
.ifr-d{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
.ifr b{color:var(--text-2);font-weight:700;flex:0 0 38px}
.ifr-n{color:var(--text-3);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ifr i{color:var(--brand-text);font-weight:700;font-style:normal;flex:0 0 auto}
.ifr-empty{font-size:11px;color:var(--text-4)}
/* 인프라 마커 점 */
.infra-dot{width:11px;height:11px;border-radius:50%;background:var(--ic);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);transform:translate(-50%,-50%)}

/* 지도 토스트 */
.map-toast{position:absolute;bottom:20px;left:50%;transform:translateX(-50%) translateY(10px);z-index:40;background:var(--text);color:#fff;font-size:13px;font-weight:600;padding:10px 18px;border-radius:10px;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:.22s var(--ease)}
.map-toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* 지도 카드 비교 버튼 + 플로팅 비교 배지 */
.mpc-btns{display:flex;gap:7px;margin-top:2px}
.mpc-cmp{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-size:12.5px;font-weight:700;padding:9px 12px;border-radius:10px;cursor:pointer;transition:.12s var(--ease)}
.mpc-cmp .ic{width:14px;height:14px}
.mpc-cmp:hover{border-color:var(--brand);color:var(--brand-text)}
.mpc-cmp.on{background:var(--brand);border-color:var(--brand);color:#fff}
.mpc-btns .mpc-btn{flex:1}
.cmp-fab{position:absolute;bottom:18px;right:18px;z-index:35;display:inline-flex;align-items:center;gap:6px;background:var(--brand);color:#fff;font-size:14px;font-weight:800;padding:11px 18px;border-radius:24px;box-shadow:0 8px 24px -4px rgba(49,130,246,.55);text-decoration:none;transition:.14s var(--ease)}
.cmp-fab:hover{background:var(--brand-hover);transform:translateY(-2px)}
.cmp-fab .ic{width:17px;height:17px}
.cmp-fab b{background:rgba(255,255,255,.25);border-radius:11px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
@media(max-width:760px){ .cmp-fab{bottom:auto;top:8px;right:8px;padding:8px 14px;font-size:13px} }

/* ═══ 지도 단지 리스트 리디자인 ═══ */
.mxs-list .mxi{display:flex;align-items:center;gap:11px;padding:13px 16px;flex-direction:row;text-decoration:none}
.mxi-ic{flex:0 0 auto;width:38px;height:38px;border-radius:11px;background:var(--brand-soft);color:var(--brand-text);display:flex;align-items:center;justify-content:center}
.mxi-ic .ic{width:19px;height:19px}
.mxi-ic.etc{background:#fff2e8;color:#ea580c}
.mxi-ic.sub{background:#fee2e2;color:#dc2626}
html[data-theme=dark] .mxi-ic.etc{background:#3a2414}
html[data-theme=dark] .mxi-ic.sub{background:#3a1c1c}
.mxi-body{flex:1;min-width:0}
.mxi-nm{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px}
.mxb{flex:0 0 auto;font-size:9.5px;font-weight:800;padding:1px 5px;border-radius:5px;letter-spacing:-.02em}
.mxb.new{background:#dcfce7;color:#16a34a}
.mxb.hot{background:#ffedd5;color:#ea580c}
.mxb.big{background:var(--brand-soft);color:var(--brand-text)}
html[data-theme=dark] .mxb.new{background:#14331f;color:#34d399}
html[data-theme=dark] .mxb.hot{background:#3a2414;color:#fb923c}
.mxi-tags{display:flex;flex-wrap:wrap;gap:4px 8px;margin-top:3px}
.mxi-tags span{font-size:11px;color:var(--text-3);position:relative}
.mxi-tags span:not(:last-child)::after{content:'·';position:absolute;right:-6px;color:var(--text-4)}
.mxi-pr{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.mxi-pr b{font-size:15px;font-weight:800;color:var(--brand-text);font-variant-numeric:tabular-nums}
.mxi-pr i{font-size:10.5px;color:var(--text-4);font-style:normal;margin-top:1px}

/* 패널 헤더 평균가 */
.mxs-avg{font-size:12px;color:var(--brand-text);font-weight:700;margin-left:4px}

/* 필터 활성 표시 + 초기화 */
.mx-sel.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-text);font-weight:700}
.mx-reset{display:inline-flex;align-items:center;gap:4px;height:36px;padding:0 13px;border:1px solid var(--border);background:var(--surface);border-radius:18px;font-size:12.5px;font-weight:700;color:var(--text-3);cursor:pointer;white-space:nowrap;transition:.12s var(--ease)}
.mx-reset:hover{border-color:var(--red);color:var(--red)}
.mx-reset .ic{width:12px;height:12px}
.mx-reset b{background:var(--brand);color:#fff;border-radius:9px;min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;font-size:10px}

/* FAQ (SEO) */
.faq-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.faq-item{border:1px solid var(--border);border-radius:11px;background:var(--surface-2);overflow:hidden}
.faq-item summary{padding:13px 16px;font-size:14px;font-weight:700;color:var(--text);cursor:pointer;list-style:none;position:relative;padding-right:38px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:20px;font-weight:400;color:var(--text-4);transition:.2s var(--ease)}
.faq-item[open] summary::after{content:'−';color:var(--brand-text)}
.faq-item p{padding:0 16px 14px;font-size:13.5px;line-height:1.65;color:var(--text-2);margin:0}

/* 분양 카드 오버플로 버그 픽스 (그리드 셀이 긴 이름에 밀리는 현상) */
.subs-card{min-width:0}
.sc-name{overflow-wrap:anywhere;word-break:break-word;line-height:1.3}
.sc-meta{min-width:0}
.sc-price{overflow-wrap:anywhere}

/* 카드 그리드 오버플로 일괄 방지 (긴 단지명 ellipsis/줄바꿈 보장) */
.pop-card,.near-card,.fav-card,.area-card,.gu-card,.region-card,.type-card{min-width:0}
.apt-name,.rk-main b,.gu-name,.mxi-pr b{overflow-wrap:anywhere}
.rk-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}

.road-close:hover{background:#111827}
.road-close .ic{width:15px;height:15px}

/* ═══════════ 모바일 드로어 (프차넷식) ═══════════ */
.md-overlay{position:fixed;inset:0;background:rgba(15,20,30,.5);opacity:0;visibility:hidden;transition:.25s var(--ease);z-index:300}
.md-overlay.open{opacity:1;visibility:visible}
.mdrawer{position:fixed;top:0;right:0;bottom:0;width:85%;max-width:340px;background:var(--surface);box-shadow:-10px 0 44px rgba(0,0,0,.22);transform:translateX(100%);transition:transform .28s var(--ease);z-index:301;display:flex;flex-direction:column;overflow:hidden}
.mdrawer.open{transform:translateX(0)}
body.md-lock{overflow:hidden}
.md-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--border);flex:0 0 auto}
.md-logo{display:flex;align-items:center;gap:7px;font-size:18px;font-weight:800;color:var(--text);text-decoration:none}
.md-logo .logo-ic{width:24px;height:24px}.md-logo b{color:var(--brand)}
.md-close{width:36px;height:36px;border:0;background:var(--surface-2);border-radius:9px;color:var(--text-3);cursor:pointer;display:flex;align-items:center;justify-content:center}
.md-close .ic{width:18px;height:18px}
.md-search{display:flex;align-items:center;gap:8px;margin:14px 18px 2px;padding:0 14px;height:46px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex:0 0 auto}
.md-search .ic{width:18px;height:18px;color:var(--text-4);flex:0 0 auto}
.md-search input{flex:1;min-width:0;border:0;background:transparent;outline:0;font-size:15px;color:var(--text)}
.md-body{flex:1;overflow-y:auto;padding:6px 0 32px;-webkit-overflow-scrolling:touch}
.md-sec{padding:15px 18px 5px;font-size:11px;font-weight:800;color:var(--text-4);text-transform:uppercase;letter-spacing:.05em}
.md-item{display:flex;align-items:center;gap:12px;padding:13px 18px;font-size:15.5px;font-weight:600;color:var(--text);text-decoration:none}
.md-item:active{background:var(--brand-soft)}
.md-ic{flex:0 0 auto;width:34px;height:34px;border-radius:10px;background:var(--surface-2);display:flex;align-items:center;justify-content:center}
.md-ic .ic{width:18px;height:18px}
.md-arr{width:17px;height:17px;margin-left:auto;color:var(--text-4);flex:0 0 auto}
.md-chips{display:flex;flex-wrap:wrap;gap:8px;padding:6px 18px 8px}
.md-chips a{padding:9px 14px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);font-size:14px;font-weight:600;color:var(--text-2);text-decoration:none}
.md-chips a:active{background:var(--brand);color:#fff;border-color:var(--brand)}
/* 모바일 토픽바 정리 */
@media(max-width:600px){
  .mnav-right .tb-search{display:none}
  .mnav-in{height:56px;padding:0 14px;gap:8px}
  .mnav .logo{font-size:17px}
  .mnav .logo-ic{width:24px;height:24px}
}

/* ═══════════ 모바일 레이아웃 보정 ═══════════ */
@media(max-width:768px){ body{overflow-x:hidden} }
@media(max-width:560px){
  .wrap{padding:16px 14px 42px}
  .hero{margin-left:-14px;margin-right:-14px;padding:36px 16px 28px}
  .hero h1{font-size:25px}
  .hero-sub{font-size:14px}
  /* 통계밴드: 3~4개가 자연스럽게 배치(좁으면 줄바꿈) */
  .statband{grid-template-columns:repeat(auto-fit,minmax(84px,1fr))}
  .stat{padding:14px 6px}
  .stat .sv{font-size:19px;overflow-wrap:anywhere}
  .stat .sl{font-size:11px}
  /* 매매지수 가로 스크롤 */
  .idx-band{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .idx-band::-webkit-scrollbar{display:none}
  .idx-pill{flex:0 0 auto}
  /* 섹션 헤더/타이틀바 줄바꿈 허용 */
  .sec-head{flex-wrap:wrap;gap:4px 8px}
  .sec-head h2{font-size:17px}
  .dt-titlebar{flex-wrap:wrap}
  .dt-titlebar h1{font-size:21px;line-height:1.25}
  /* 상세 요약: 가격 안 깨지게 */
  .ds-v{font-size:17px;overflow-wrap:anywhere}
  /* 탭 가로 스크롤(평형/유형 탭) */
  .dt-tabs{overflow-x:auto;scrollbar-width:none}
  .dt-tabs::-webkit-scrollbar{display:none}
  .dtb{flex:0 0 auto;white-space:nowrap}
}
@media(max-width:380px){
  .type-grid{grid-template-columns:repeat(3,1fr)}
  .near-grid{grid-template-columns:1fr}
}

/* 모바일 드로어 거래유형 버튼 (프차넷식 카드) */
.md-types{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px 18px 8px}
.md-type{display:flex;align-items:center;gap:9px;padding:11px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;text-decoration:none;transition:.12s var(--ease)}
.md-type:active{background:var(--brand-soft);border-color:var(--brand)}
.md-type-ic{flex:0 0 auto;width:30px;height:30px;border-radius:9px;background:var(--surface);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}
.md-type-ic .ic{width:17px;height:17px}
.md-type-t{font-size:13.5px;font-weight:700;color:var(--text);line-height:1.2;overflow-wrap:anywhere}

/* 모바일: 지도 도구 버튼 아이콘만 (텍스트 숨김) */
@media(max-width:760px){
  .map-tools .mtool span{display:none}
  .map-tools .mtool{padding:0;width:40px;height:40px;justify-content:center;gap:0}
  .map-tools .mtool .ic{width:18px;height:18px}
}

/* ═══ 지도 필터: 데스크탑=원본 그대로 / 모바일=바를 카드로 펼침 ═══ */
.mxf-title,.mxf-apply,.mx-filt-toggle{display:none}   /* 데스크탑 숨김 */
@media(max-width:760px){
  .mapx-bar{flex-wrap:nowrap;gap:8px;padding:9px 14px}
  .mapx-bar .mx-search{flex:1;min-width:0}
  .mx-filt-toggle{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;height:38px;padding:0 14px;border:1px solid var(--border);background:var(--surface);border-radius:19px;font-size:13.5px;font-weight:700;color:var(--text-2);cursor:pointer}
  .mx-filt-toggle .ic{width:16px;height:16px}
  .mx-filt-toggle.on{background:var(--brand);color:#fff;border-color:var(--brand)}
  .mxft-n{display:none;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--brand);color:#fff;font-size:10px;font-weight:800;align-items:center;justify-content:center}
  .mx-filt-toggle.on .mxft-n{background:#fff;color:var(--brand)}
  /* 접힘: 검색창 + 필터버튼만, 셀렉트/제목/버튼 숨김 */
  .mapx-bar .mx-sel,.mapx-bar .mx-reset,.mapx-bar .mxf-apply,.mapx-bar .mxf-title{display:none}
  /* 펼침: 바를 카드로 — 검색 조건 폼 */
  .mapx-bar.filt-open{flex-wrap:wrap;align-items:stretch;padding:12px 14px 14px;box-shadow:0 10px 24px -10px rgba(0,0,0,.18)}
  .mapx-bar.filt-open .mx-search{flex:1 1 calc(100% - 86px)}
  .mapx-bar.filt-open .mxf-title{display:block;width:100%;order:2;font-size:14px;font-weight:800;color:var(--text);margin:12px 0 2px}
  .mapx-bar.filt-open .mx-sel{display:block;order:3;width:calc(50% - 4px);height:46px;border-radius:11px;font-size:14px;padding:0 12px;background-position:right 12px center}
  .mapx-bar.filt-open .mx-reset{display:inline-flex;order:4;flex:1;justify-content:center;height:46px;border-radius:11px}
  .mapx-bar.filt-open .mxf-apply{display:block;order:4;flex:1;height:46px;border:0;background:var(--brand);color:#fff;font-size:14.5px;font-weight:800;border-radius:11px;cursor:pointer}
  .mapx-bar.filt-open .mx-hint{display:none}
}
@media(max-width:380px){ .mapx-bar.filt-open .mx-sel{width:100%} }

/* ═══ 단지 정보 카드: 모바일 하단 고정 시트(안 잘림) ═══ */
@media(max-width:760px){
  .mp-card.mp-sheet{position:fixed;left:10px;right:10px;bottom:10px;width:auto;max-width:480px;margin:0 auto;padding:16px 16px 16px;transform:none;max-height:72vh;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:1200;border-radius:18px;box-shadow:0 -6px 30px -6px rgba(20,40,80,.28),0 12px 36px -6px rgba(20,40,80,.32);animation:mpSheetUp .2s var(--ease)}
  .mp-card.mp-sheet::after{display:none}            /* 말풍선 꼬리 제거 */
  .mp-card.mp-sheet::before{content:'';display:block;width:38px;height:4px;border-radius:2px;background:var(--border);margin:-4px auto 10px}  /* 그랩 핸들 */
  .mp-card.mp-sheet .mpc-x{top:12px;right:12px;width:28px;height:28px}
}
@keyframes mpSheetUp{from{transform:translateY(110%)}to{transform:translateY(0)}}
