* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif; background:#f5f5f5; color:#1a1a1a; line-height:1.6; }

/* 헤더 */
.header { background:linear-gradient(135deg,#1e40af,#3b82f6); color:#fff; padding:16px 0; position:sticky; top:0; z-index:50; box-shadow:0 2px 8px rgba(0,0,0,.15); }
.header-inner { max-width:1200px; margin:0 auto; padding:0 16px; display:flex; align-items:center; gap:12px; }
.header a { color:#fff; text-decoration:none; }
.header h1 { font-size:20px; font-weight:700; }
.header .sub { font-size:13px; opacity:.7; }

/* 컨테이너 */
.container { max-width:1200px; margin:0 auto; padding:16px; }

/* 검색 */
.search-box { background:#fff; border-radius:12px; padding:16px; margin-bottom:16px; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.search-form { display:flex; gap:8px; }
.search-form input { flex:1; padding:10px 14px; border:1px solid #d1d5db; border-radius:8px; font-size:15px; outline:none; }
.search-form input:focus { border-color:#3b82f6; box-shadow:0 0 0 2px rgba(59,130,246,.2); }
.search-form button { padding:10px 20px; background:#3b82f6; color:#fff; border:none; border-radius:8px; font-size:15px; font-weight:600; cursor:pointer; white-space:nowrap; }
.search-form button:hover { background:#2563eb; }

/* 탭 (시도/시군구/분야) */
.tabs { display:flex; flex-wrap:wrap; gap:6px; padding:12px 0 4px; }
.tab { padding:5px 12px; border-radius:20px; font-size:13px; font-weight:500; text-decoration:none; white-space:nowrap; transition:all .15s; }
.tab-default { background:#f3f4f6; color:#4b5563; }
.tab-default:hover { background:#e5e7eb; }
.tab-active { background:#3b82f6; color:#fff; }
.tab-realm { background:#fef3c7; color:#92400e; }
.tab-realm:hover { background:#fde68a; }
.tab-realm-active { background:#f59e0b; color:#fff; }

/* 결과 헤더 */
.result-header { display:flex; justify-content:space-between; align-items:center; padding:12px 4px; }
.result-header .count { font-size:14px; color:#6b7280; }
.result-header .count b { color:#3b82f6; }

/* 카드 그리드 */
.card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:12px; }
.card { background:#fff; border-radius:12px; padding:16px; text-decoration:none; color:inherit; display:block; box-shadow:0 1px 3px rgba(0,0,0,.06); transition:box-shadow .2s,transform .15s; }
.card:hover { box-shadow:0 4px 12px rgba(0,0,0,.12); transform:translateY(-1px); }
.card-header { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; margin-bottom:8px; }
.card-name { font-size:16px; font-weight:600; color:#111; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.badge { padding:3px 8px; border-radius:6px; font-size:11px; font-weight:600; white-space:nowrap; }
.card-info { font-size:13px; color:#6b7280; }
.card-info .row { display:flex; gap:6px; margin-bottom:2px; }
.card-info .label { color:#9ca3af; flex-shrink:0; }
.card-info .value { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.card-meta { display:flex; gap:12px; margin-top:8px; font-size:12px; color:#9ca3af; }

/* 인피드 광고 */
.ad-infeed { grid-column:1/-1; min-height:100px; text-align:center; }

/* 페이지네이션 */
.pagination { display:flex; justify-content:center; align-items:center; gap:4px; margin-top:20px; padding:12px 0; flex-wrap:wrap; }
.pagination a, .pagination span { display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; padding:0 8px; border-radius:8px; font-size:14px; text-decoration:none; }
.pagination a { color:#374151; background:#fff; border:1px solid #e5e7eb; }
.pagination a:hover { background:#f3f4f6; }
.pagination .current { background:#3b82f6; color:#fff; font-weight:600; }

/* 브레드크럼 */
.breadcrumb { font-size:13px; color:#6b7280; margin-bottom:12px; }
.breadcrumb a { color:#3b82f6; text-decoration:none; }
.breadcrumb a:hover { text-decoration:underline; }

/* 상세 히어로 */
.hero { background:linear-gradient(135deg,#1e3a5f,#2563eb); color:#fff; border-radius:16px; padding:24px; margin-bottom:16px; position:relative; }
.hero-name { font-size:26px; font-weight:700; margin-bottom:4px; }
.hero-addr { font-size:14px; opacity:.85; margin-bottom:8px; }
.hero-badges { display:flex; gap:8px; flex-wrap:wrap; }
.hero-badge { padding:4px 10px; border-radius:6px; font-size:12px; font-weight:600; background:rgba(255,255,255,.2); }

/* 섹션 */
.section { background:#fff; border-radius:12px; box-shadow:0 1px 3px rgba(0,0,0,.06); margin-bottom:16px; overflow:hidden; }
.section-title { padding:14px 20px; font-size:16px; font-weight:600; background:#f9fafb; border-bottom:1px solid #f3f4f6; }

/* 정보 그리드 */
.info-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:1px; background:#f3f4f6; }
.info-item { background:#fff; padding:14px 20px; }
.info-label { font-size:12px; color:#9ca3af; margin-bottom:2px; }
.info-value { font-size:15px; color:#111; font-weight:500; }
.info-value a { color:#3b82f6; text-decoration:none; }

/* 상세 그리드 */
.detail-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1px; background:#f3f4f6; }
.detail-item { background:#fff; padding:12px 20px; display:flex; justify-content:space-between; gap:12px; }
.detail-item .dl { font-size:13px; color:#9ca3af; white-space:nowrap; }
.detail-item .dv { font-size:14px; color:#374151; text-align:right; word-break:break-all; }

/* 수강료 테이블 */
.tuition-table { width:100%; border-collapse:collapse; }
.tuition-table th { background:#f9fafb; padding:10px 16px; font-size:13px; font-weight:600; color:#374151; text-align:left; border-bottom:1px solid #e5e7eb; }
.tuition-table td { padding:10px 16px; font-size:14px; color:#374151; border-bottom:1px solid #f3f4f6; }
.tuition-table tr:last-child td { border-bottom:none; }

/* 블로그 */
.blog-item { padding:14px 20px; border-bottom:1px solid #f3f4f6; }
.blog-item:last-child { border:none; }
.blog-title { font-size:15px; font-weight:600; margin-bottom:4px; }
.blog-title a { color:#1e40af; text-decoration:none; }
.blog-title a:hover { text-decoration:underline; }
.blog-desc { font-size:13px; color:#6b7280; line-height:1.5; }
.blog-meta { font-size:12px; color:#9ca3af; margin-top:4px; }
.blog-empty { padding:30px 20px; text-align:center; color:#9ca3af; }

/* 공유 바 */
.share-bar { background:#fff; border-radius:12px; box-shadow:0 1px 3px rgba(0,0,0,.06); padding:16px 20px; margin-top:16px; display:flex; align-items:center; gap:16px; }
.share-label { font-size:14px; color:#6b7280; font-weight:600; white-space:nowrap; }
.share-buttons { display:flex; gap:10px; flex-wrap:wrap; }
.share-btn { width:40px; height:40px; border-radius:50%; border:none; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:transform .15s,box-shadow .15s; font-size:17px; color:#fff; }
.share-btn:hover { transform:scale(1.1); box-shadow:0 3px 10px rgba(0,0,0,.2); }
.share-kakao { background:#FEE500; color:#3C1E1E; }
.share-facebook { background:#1877F2; }
.share-x { background:#000; }
.share-naver { background:#03C75A; }
.share-copy { background:#6b7280; }
.toast { position:fixed; bottom:30px; left:50%; transform:translateX(-50%); background:#333; color:#fff; padding:10px 24px; border-radius:8px; font-size:14px; z-index:999; display:none; }

/* 광고 */
.ad-display { margin-bottom:16px; text-align:center; min-height:90px; }

/* 신고 모달 */
.report-link { display:inline-flex; align-items:center; gap:6px; color:rgba(255,255,255,.6); font-size:12px; cursor:pointer; transition:color .2s; position:absolute; right:30px; bottom:16px; }
.report-link:hover { color:#fff; }
.report-link i { font-size:12px; }
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:9999; align-items:center; justify-content:center; }
.modal-overlay.active { display:flex; }
.modal-box { background:#fff; border-radius:16px; width:90%; max-width:480px; max-height:90vh; overflow-y:auto; padding:28px 24px; box-shadow:0 20px 60px rgba(0,0,0,.3); animation:modalIn .2s ease; }
@keyframes modalIn { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
.modal-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.modal-header h3 { font-size:18px; font-weight:700; color:#111; margin:0; }
.modal-close { background:none; border:none; font-size:22px; color:#9ca3af; cursor:pointer; padding:4px; line-height:1; }
.modal-close:hover { color:#333; }
.report-form label { display:block; font-size:13px; font-weight:600; color:#374151; margin-bottom:6px; margin-top:16px; }
.report-form label:first-child { margin-top:0; }
.report-form .required { color:#ef4444; }
.report-type-group { display:flex; gap:8px; flex-wrap:wrap; }
.report-type-btn { padding:8px 16px; border:1.5px solid #e5e7eb; border-radius:8px; background:#fff; font-size:13px; color:#374151; cursor:pointer; transition:all .15s; }
.report-type-btn:hover { border-color:#3b82f6; color:#3b82f6; }
.report-type-btn.selected { background:#3b82f6; color:#fff; border-color:#3b82f6; }
.report-form textarea { width:100%; min-height:100px; border:1.5px solid #e5e7eb; border-radius:10px; padding:12px; font-size:14px; resize:vertical; box-sizing:border-box; font-family:inherit; }
.report-form textarea:focus { outline:none; border-color:#3b82f6; box-shadow:0 0 0 3px rgba(59,130,246,.1); }
.report-form input[type=text] { width:100%; border:1.5px solid #e5e7eb; border-radius:10px; padding:10px 12px; font-size:14px; box-sizing:border-box; font-family:inherit; }
.report-form input[type=text]:focus { outline:none; border-color:#3b82f6; box-shadow:0 0 0 3px rgba(59,130,246,.1); }
.report-submit { width:100%; padding:12px; background:#3b82f6; color:#fff; border:none; border-radius:10px; font-size:15px; font-weight:600; cursor:pointer; margin-top:20px; transition:background .15s; }
.report-submit:hover { background:#2563eb; }
.report-submit:disabled { background:#9ca3af; cursor:not-allowed; }
.report-msg { text-align:center; padding:8px; border-radius:8px; font-size:13px; margin-top:12px; display:none; }
.report-msg.success { display:block; background:#ecfdf5; color:#059669; }
.report-msg.error { display:block; background:#fef2f2; color:#dc2626; }
.report-page-info { background:#f9fafb; border-radius:8px; padding:10px 12px; font-size:12px; color:#6b7280; margin-bottom:4px; }
.report-page-info strong { color:#374151; }

/* 푸터 */
.footer { text-align:center; padding:20px; font-size:12px; color:#9ca3af; border-top:1px solid #e5e7eb; margin-top:24px; }
.footer a { color:#6b7280; text-decoration:none; }

/* 빈 결과 */
.empty { text-align:center; padding:60px 20px; color:#9ca3af; }

/* 교습과정 태그 */
.course-tags { padding:14px 20px; display:flex; flex-wrap:wrap; gap:8px; }
.course-tag { padding:5px 12px; background:#eff6ff; color:#1d4ed8; border-radius:20px; font-size:13px; font-weight:500; }

/* 통계 비교 카드 */
.stats-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#f3f4f6; }
.stats-summary .stat-box { background:#fff; padding:16px 20px; text-align:center; }
.stats-summary .stat-label { font-size:12px; color:#9ca3af; margin-bottom:4px; }
.stats-summary .stat-value { font-size:18px; font-weight:700; color:#111; }

/* 수강료 테이블 */
.tuition-table { width:100%; border-collapse:collapse; }
.tuition-table th { padding:10px 20px; background:#f9fafb; font-size:13px; font-weight:600; color:#374151; border-bottom:1px solid #e5e7eb; }
.tuition-table td { padding:10px 20px; font-size:14px; color:#374151; border-bottom:1px solid #f3f4f6; }
.tuition-range { padding:12px 20px; font-size:14px; color:#3b82f6; font-weight:600; background:#eff6ff; border-bottom:1px solid #dbeafe; }

/* 카드 가격/더보기 */
.card-price { color:#3b82f6; font-weight:600; font-size:12px; }
.more-count { font-size:11px; color:#3b82f6; font-weight:600; }

/* 정렬 드롭다운 */
.sort-dropdown select { padding:6px 12px; border:1px solid #d1d5db; border-radius:8px; font-size:13px; color:#374151; background:#fff; cursor:pointer; outline:none; }
.sort-dropdown select:focus { border-color:#3b82f6; }

/* 관련 학원 */
.related-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; padding:16px 20px; }
.related-card { padding:14px; background:#f9fafb; border-radius:10px; text-decoration:none; color:inherit; transition:background .15s; display:block; }
.related-card:hover { background:#f3f4f6; }
.related-name { font-size:15px; font-weight:600; color:#1e40af; margin-bottom:4px; }
.related-info { font-size:13px; color:#6b7280; }

/* 지역 현황 */
.area-context { padding:16px 20px; font-size:14px; color:#374151; line-height:1.8; }
.area-context b { color:#1e40af; }

@media(max-width:640px) {
    .card-grid { grid-template-columns:1fr; }
    .header h1 { font-size:17px; }
    .hero-name { font-size:22px; }
    .info-grid { grid-template-columns:repeat(2,1fr); }
    #map { height:250px; }
    .report-link { position:static; display:flex; justify-content:flex-end; margin-top:12px; }
    .stats-summary { grid-template-columns:repeat(3,1fr); }
    .related-grid { grid-template-columns:1fr; }
}

@media(max-width:480px) {
    .report-link { position:static; display:flex; justify-content:flex-end; margin-top:12px; }
}
