/* ===========================
   반려동물 동반 출입 음식점 가이드
   CSS 스타일시트 v1.1 (API 연동 추가)
   =========================== */

/* ==================== API 통계 박스 ==================== */
#api-stats-container { margin-top: 20px; }

.api-loading {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px;
  background: #f8f9fa;
  border-radius: var(--radius-sm);
  font-size: 0.9rem;
  color: var(--text-muted);
  border: 1px solid var(--border);
}

.loading-spinner {
  width: 20px; height: 20px;
  border: 2px solid var(--border);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  flex-shrink: 0;
}

@keyframes spin { to { transform: rotate(360deg); } }

.api-stats-box {
  background: linear-gradient(135deg, #e8f5e9, #f1f8e9);
  border: 1px solid #a5d6a7;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.api-stats-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  background: var(--primary);
  color: white;
  font-weight: 700;
  font-size: 0.9rem;
}

.api-live-badge {
  margin-left: auto;
  background: #ff4444;
  color: white;
  font-size: 0.65rem;
  padding: 2px 8px;
  border-radius: 50px;
  font-weight: 800;
  letter-spacing: 1px;
  animation: pulse-badge 1.5s ease infinite;
}

@keyframes pulse-badge {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}

.api-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #c8e6c9;
  margin-bottom: 1px;
}

.api-stat-item {
  background: var(--bg-card);
  padding: 18px 12px;
  text-align: center;
}

.api-stat-num {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--primary-dark);
  margin-bottom: 4px;
}

.api-stat-label {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.api-items-list {
  padding: 16px 20px;
  background: var(--bg-card);
  margin-bottom: 1px;
}

.api-items-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-muted);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.api-item {
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}

.api-item:last-child { border-bottom: none; }

.api-item-name {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 3px;
}

.api-item-addr {
  font-size: 0.78rem;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 4px;
}

.api-item-addr i { color: var(--primary); font-size: 0.7rem; }

.api-item-meta {
  display: flex;
  gap: 6px;
}

.api-item-type {
  background: #e8f5e9;
  color: var(--primary-dark);
  font-size: 0.7rem;
  padding: 2px 8px;
  border-radius: 50px;
  font-weight: 600;
}

.api-item-status {
  background: var(--bg-section-alt);
  color: var(--text-muted);
  font-size: 0.7rem;
  padding: 2px 8px;
  border-radius: 50px;
  font-weight: 600;
}

.api-item-status.open {
  background: #e8f5e9;
  color: var(--primary);
}

.api-data-source {
  padding: 10px 20px;
  font-size: 0.75rem;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
  background: #f8f9fa;
}

/* API 오류 박스 */
.api-error-box {
  background: #fffde7;
  border: 1px solid #ffe082;
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.api-error-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: #f59e0b;
  color: white;
  font-weight: 700;
  font-size: 0.9rem;
}

.api-error-box p {
  padding: 16px 20px;
  font-size: 0.88rem;
  color: var(--text);
  line-height: 1.6;
}

.api-links {
  display: flex;
  gap: 10px;
  padding: 0 20px 16px;
  flex-wrap: wrap;
}

.api-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  background: var(--primary);
  color: white;
  border-radius: var(--radius-sm);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 600;
  transition: all var(--transition);
}

.api-link-btn:hover { background: var(--primary-dark); transform: translateY(-2px); }
.api-link-btn.secondary { background: #6c757d; }
.api-link-btn.secondary:hover { background: #495057; }

/* API 키 상태 배지 */
.api-key-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #e8f5e9;
  border: 1px solid #a5d6a7;
  color: var(--primary-dark);
  padding: 6px 14px;
  border-radius: 50px;
  font-size: 0.78rem;
  font-weight: 600;
  margin-top: 12px;
}

.api-key-dot {
  width: 8px; height: 8px;
  background: #4caf50;
  border-radius: 50%;
  animation: pulse-badge 1.5s ease infinite;
}

/* 기본 리셋 & 변수 */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ===== 라이트 모드 (기본) ===== */
:root {
  --primary: #2d6a4f;
  --primary-light: #40916c;
  --primary-dark: #1b4332;
  --secondary: #f4a261;
  --accent: #e9c46a;
  --danger: #e63946;
  --warning: #ffd166;
  --info: #4cc9f0;

  /* 배경·표면 */
  --bg: #f4f6f8;
  --bg-card: #ffffff;
  --bg-section-alt: #f0f4f0;
  --bg-input: #ffffff;

  /* 텍스트 */
  --text: #1a1d21;
  --text-muted: #6c757d;
  --text-on-primary: #ffffff;

  /* 테두리·구분선 */
  --border: #e2e8f0;
  --border-strong: #c8d3dc;

  /* 그림자 */
  --shadow-sm: 0 1px 4px rgba(0,0,0,0.07);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.10);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.13);

  /* 반경 */
  --radius: 12px;
  --radius-sm: 8px;
  --radius-lg: 20px;

  /* 헤더 */
  --header-h: 64px;

  /* 전환 */
  --transition: 0.22s ease;

  /* 오버레이 */
  --overlay: rgba(0,0,0,0.45);
}

/* ===== 다크 모드 ===== */
/*
 * WCAG 2.1 AA 기준 (콘트라스트 4.5:1 이상) 적용
 * 배경 계층: #0d1117(최하) → #161b22(섹션) → #1c2128(카드) → #21262d(입력/엘리먼트)
 * 텍스트:    --text #f0f3f6 (배경대비 12:1↑) / --text-muted #9da8b4 (배경대비 4.6:1)
 * 주요 색상: --primary #6ee7b0(밝은 민트, 어두운 배경에 선명)
 */
[data-theme="dark"] {
  /* 브랜드 컬러 — 어두운 배경에서 가독성 확보 */
  --primary:       #6ee7b0;   /* 밝은 민트 — bg대비 8.2:1 */
  --primary-light: #86efac;
  --primary-dark:  #4ade80;
  --secondary:     #fb923c;
  --accent:        #fbbf24;
  --danger:        #f87171;
  --warning:       #fcd34d;
  --info:          #67e8f9;

  /* 배경 계층 — 4단계 깊이 */
  --bg:              #0d1117;   /* 페이지 최하단 */
  --bg-section-alt:  #161b22;   /* 섹션 교차 배경 */
  --bg-card:         #1c2128;   /* 카드·박스 */
  --bg-input:        #21262d;   /* 입력 필드 */
  --bg-elevated:     #2d333b;   /* hover·강조 요소 */

  /* 텍스트 — WCAG AA 충족 */
  --text:            #f0f3f6;   /* 주 텍스트 — 대비 14:1 */
  --text-sub:        #cdd9e5;   /* 부 텍스트 — 대비 8.5:1 */
  --text-muted:      #9da8b4;   /* 보조 텍스트 — 대비 4.6:1 (AA 통과) */
  --text-on-primary: #0d1117;

  /* 테두리 */
  --border:          #30363d;   /* 기본 테두리 */
  --border-strong:   #484f58;   /* 강조 테두리 */

  /* 그림자 */
  --shadow-sm: 0 1px 4px rgba(0,0,0,0.4);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.55);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.65);

  /* 오버레이 */
  --overlay: rgba(0,0,0,0.72);
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
  /* iOS 확대 방지 */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.7;
  overflow-x: hidden;
  /* 색상 전환 애니메이션 */
  transition: background 0.3s ease, color 0.3s ease;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ==================== HEADER ==================== */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--header-h);
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
  z-index: 1000;
  box-shadow: var(--shadow-sm);
  transition: background 0.3s ease, border-color 0.3s ease;
}

/* dark header overrides → 파일 하단 v2.0 블록으로 통합 */

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}

.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  cursor: pointer;
}

.logo-icon {
  font-size: 28px;
  line-height: 1;
}

.logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.logo-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--primary-dark);
}

.logo-sub {
  font-size: 0.7rem;
  color: var(--text-muted);
  font-weight: 400;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 4px;
}

.nav-link {
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  color: var(--text);
  text-decoration: none;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all var(--transition);
}

.nav-link:hover {
  background: var(--primary);
  color: white;
}

/* 스크롤 활성 섹션 하이라이트 */
.nav-link.nav-active {
  background: rgba(45,106,79,0.12);
  color: var(--primary);
  font-weight: 600;
}

.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  z-index: 1100;
}

.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--text);
  border-radius: 2px;
  transition: all 0.3s;
}

.hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

/* ==================== HERO ==================== */
.hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
  margin-top: var(--header-h);
}

.hero-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #1b4332 0%, #2d6a4f 40%, #40916c 70%, #52b788 100%);
  z-index: 0;
}

.hero-bg::after {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.hero-content {
  position: relative;
  z-index: 1;
  padding: 60px 20px;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.3);
  color: white;
  padding: 8px 18px;
  border-radius: 50px;
  font-size: 0.85rem;
  font-weight: 500;
  margin-bottom: 28px;
  backdrop-filter: blur(8px);
}

.hero-title {
  font-size: clamp(1.8rem, 5vw, 3.2rem);
  font-weight: 800;
  color: white;
  line-height: 1.3;
  margin-bottom: 20px;
  text-shadow: 0 2px 8px rgba(0,0,0,0.2);
}

.highlight-text {
  color: var(--accent);
}

.hero-desc {
  font-size: clamp(0.95rem, 2.5vw, 1.15rem);
  color: rgba(255,255,255,0.88);
  margin-bottom: 40px;
  line-height: 1.7;
}

.br-pc { display: block; }

.hero-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin-bottom: 40px;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: var(--radius-lg);
  padding: 20px 40px;
  backdrop-filter: blur(8px);
  display: inline-flex;
}

.stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 30px;
}

.stat-num {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--accent);
}

.stat-label {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.8);
  margin-top: 2px;
}

.stat-divider {
  width: 1px;
  height: 40px;
  background: rgba(255,255,255,0.25);
}

.btn-hero {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,0.95);
  color: var(--primary-dark);
  padding: 16px 36px;
  border-radius: 50px;
  font-weight: 700;
  font-size: 1rem;
  text-decoration: none;
  cursor: pointer;
  transition: all var(--transition);
  box-shadow: 0 4px 20px rgba(0,0,0,0.2);
  border: none;
}

.btn-hero:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 30px rgba(0,0,0,0.25);
  background: var(--accent);
}

.hero-scroll-hint {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.6);
  font-size: 1.2rem;
  animation: bounce 2s infinite;
  z-index: 1;
}

@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(8px); }
}

/* ==================== SECTIONS ==================== */
.section {
  padding: 80px 0;
}

.bg-light {
  background: #f0f4f1;
}

.section-header {
  text-align: center;
  margin-bottom: 60px;
}

.section-badge {
  display: inline-block;
  background: var(--primary);
  color: white;
  padding: 6px 18px;
  border-radius: 50px;
  font-size: 0.82rem;
  font-weight: 600;
  margin-bottom: 14px;
  letter-spacing: 0.5px;
}

.section-title {
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  font-weight: 800;
  color: var(--primary-dark);
  margin-bottom: 14px;
}

.section-desc {
  font-size: 1rem;
  color: var(--text-muted);
  max-width: 600px;
  margin: 0 auto;
}

.sub-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin: 40px 0 20px;
  display: flex;
  align-items: center;
  gap: 10px;
}

/* ==================== SEARCH SECTION ==================== */
.search-section { background: var(--bg-card); }

.search-box {
  max-width: 700px;
  margin: 0 auto 20px;
  position: relative;
}

.search-input-wrap {
  display: flex;
  align-items: center;
  background: var(--bg-card);
  border: 2px solid var(--primary);
  border-radius: var(--radius-lg);
  overflow: visible;
  box-shadow: var(--shadow-md);
  position: relative;
}

.search-icon {
  padding: 0 16px;
  color: var(--primary);
  font-size: 1.1rem;
  flex-shrink: 0;
}

.search-input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 1rem;
  padding: 16px 8px;
  font-family: inherit;
  background: transparent;
  color: var(--text);
}

.search-input::placeholder { color: #aaa; }

.btn-search {
  background: var(--primary);
  color: white;
  border: none;
  padding: 16px 28px;
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: background var(--transition);
  flex-shrink: 0;
}

.btn-search:hover { background: var(--primary-dark); }

.autocomplete-list {
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
  z-index: 500;
  max-height: 240px;
  overflow-y: auto;
  display: none;
}

.autocomplete-list.show { display: block; }

.autocomplete-item {
  padding: 12px 16px;
  cursor: pointer;
  font-size: 0.92rem;
  transition: background var(--transition);
  display: flex;
  align-items: center;
  gap: 8px;
}

.autocomplete-item:hover { background: #f0f4f1; color: var(--primary); }

.search-quick-labels {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  justify-content: center;
}

.quick-label-title {
  font-size: 0.82rem;
  color: var(--text-muted);
  font-weight: 500;
}

.quick-btn {
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  color: var(--text);
  padding: 6px 14px;
  border-radius: 50px;
  font-size: 0.82rem;
  cursor: pointer;
  transition: all var(--transition);
  font-family: inherit;
}

.quick-btn:hover, .quick-btn.active {
  background: var(--primary);
  border-color: var(--primary);
  color: white;
}

/* 검색 결과 */
.region-result {
  max-width: 900px;
  margin: 40px auto 0;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  animation: fadeInUp 0.4s ease;
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.result-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 28px;
  background: linear-gradient(135deg, var(--primary-dark), var(--primary));
  color: white;
}

.result-region-badge {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.3rem;
  font-weight: 700;
}

.result-status-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 50px;
  font-size: 0.85rem;
  font-weight: 600;
}

.status-active { background: rgba(76, 201, 240, 0.25); border: 1px solid rgba(76,201,240,0.5); }
.status-standard { background: rgba(255, 209, 102, 0.25); border: 1px solid rgba(255,209,102,0.5); }
.status-caution { background: rgba(230, 57, 70, 0.25); border: 1px solid rgba(230,57,70,0.5); }

.result-tabs {
  display: flex;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
}

.result-tab {
  flex: 1;
  min-width: 120px;
  padding: 16px 8px;
  border: none;
  background: none;
  font-family: inherit;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-muted);
  cursor: pointer;
  border-bottom: 3px solid transparent;
  transition: all var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
}

.result-tab:hover { color: var(--primary); background: #f8f9fa; }
.result-tab.active { color: var(--primary); border-bottom-color: var(--primary); font-weight: 700; }

.result-tab-content {
  padding: 28px;
}

/* 조건 카드 */
.conditions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

.condition-card {
  background: #f8f9fa;
  border-radius: var(--radius-sm);
  padding: 18px;
  border-left: 4px solid var(--primary);
}

.condition-card.required { border-left-color: var(--danger); }
.condition-card.optional { border-left-color: var(--secondary); }
.condition-card.info { border-left-color: var(--info); }

.condition-card-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 8px;
}

.condition-card-content {
  font-size: 0.95rem;
  color: var(--text);
}

.condition-card-content li {
  padding: 4px 0;
  padding-left: 16px;
  position: relative;
}

.condition-card-content li::before {
  content: '•';
  position: absolute;
  left: 0;
  color: var(--primary);
  font-weight: bold;
}

/* 프로세스 스텝 결과 */
.process-timeline {
  position: relative;
  padding-left: 32px;
}

.process-timeline::before {
  content: '';
  position: absolute;
  left: 12px;
  top: 0; bottom: 0;
  width: 2px;
  background: var(--border);
}

.timeline-item {
  position: relative;
  padding: 0 0 28px 24px;
}

.timeline-item::before {
  content: '';
  position: absolute;
  left: -20px;
  top: 6px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--primary);
  border: 3px solid white;
  box-shadow: 0 0 0 2px var(--primary);
}

.timeline-item .step-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--primary);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 4px;
}

.timeline-item h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 6px;
}

.timeline-item p {
  font-size: 0.88rem;
  color: var(--text-muted);
}

/* 담당 부서 */
.contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
}

.contact-card {
  background: #f8f9fa;
  border-radius: var(--radius-sm);
  padding: 20px;
  text-align: center;
}

.contact-card i {
  font-size: 2rem;
  color: var(--primary);
  margin-bottom: 12px;
}

.contact-card h4 {
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 6px;
}

.contact-card p {
  font-size: 0.85rem;
  color: var(--text-muted);
}

.contact-card a {
  color: var(--primary);
  text-decoration: none;
  font-weight: 600;
}

/* ==================== LAW SECTION ==================== */
.alert-box {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px 24px;
  border-radius: var(--radius-sm);
  margin-bottom: 40px;
}

.alert-box.warning {
  background: #fff8e1;
  border: 1px solid #ffe082;
  border-left: 4px solid #ffc107;
}

.alert-box.warning i {
  color: #f59e0b;
  font-size: 1.3rem;
  margin-top: 2px;
  flex-shrink: 0;
}

.alert-box.info {
  background: #e8f5e9;
  border: 1px solid #a5d6a7;
  border-left: 4px solid var(--primary);
}

.law-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 20px;
  margin-bottom: 50px;
}

.law-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 24px;
  text-align: center;
  transition: all var(--transition);
}

.law-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
  border-color: var(--primary-light);
}

.law-card-icon {
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}

.law-card-icon i {
  font-size: 1.4rem;
  color: white;
}

.law-card h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 10px;
}

.law-card p {
  font-size: 0.88rem;
  color: var(--text-muted);
  line-height: 1.6;
}

/* 처벌 단계 */
.penalty-section {
  background: var(--bg-card);
  border-radius: var(--radius);
  padding: 32px;
  border: 1px solid var(--border);
}

.penalty-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: 20px 0;
}

.penalty-step {
  text-align: center;
  padding: 20px 28px;
  border-radius: var(--radius-sm);
  min-width: 130px;
}

.penalty-step.step1 { background: #fff8e1; border: 2px solid #ffc107; }
.penalty-step.step2 { background: #fff3e0; border: 2px solid #ff9800; }
.penalty-step.step3 { background: #fce4ec; border: 2px solid #e91e63; }

.step-num {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 1px;
  margin-bottom: 8px;
}

.step-title { font-size: 0.82rem; color: var(--text-muted); margin-bottom: 4px; }

.step-value {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--danger);
}

.penalty-arrow { color: var(--border); font-size: 1.2rem; }
.penalty-note { font-size: 0.82rem; color: var(--text-muted); text-align: center; margin-top: 12px; }

/* ==================== PROCESS SECTION ==================== */
.process-section { background: var(--bg-card); }

.process-steps {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 60px;
}

.process-step {
  flex: 1;
  min-width: 200px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 20px;
  text-align: center;
  transition: all var(--transition);
  position: relative;
}

.process-step:hover {
  border-color: var(--primary);
  box-shadow: var(--shadow-md);
  transform: translateY(-4px);
}

.process-step-num {
  display: inline-block;
  background: var(--primary);
  color: white;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 50px;
  letter-spacing: 1px;
  margin-bottom: 16px;
}

.process-step-icon {
  width: 56px;
  height: 56px;
  background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
}

.process-step-icon i {
  font-size: 1.3rem;
  color: var(--primary);
}

.process-step h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 14px;
}

.mini-checklist {
  list-style: none;
  text-align: left;
  padding: 0;
}

.mini-checklist li {
  font-size: 0.82rem;
  color: var(--text-muted);
  padding: 4px 0;
  padding-left: 18px;
  position: relative;
}

.mini-checklist li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--primary);
  font-weight: bold;
}

.process-duration {
  margin-top: 16px;
  font-size: 0.8rem;
  color: var(--primary);
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.process-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--border);
  font-size: 1.4rem;
  flex-shrink: 0;
  margin-top: 60px;
}

/* 서류 */
.doc-section {
  background: #f8f9fa;
  border-radius: var(--radius);
  padding: 32px;
}

.doc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
}

.doc-item {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 18px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  position: relative;
  transition: all var(--transition);
}

.doc-item:hover { border-color: var(--primary); box-shadow: var(--shadow-sm); }

.doc-item.required { border-left: 3px solid var(--danger); }
.doc-item.optional { border-left: 3px solid var(--secondary); }

.doc-item i {
  font-size: 1.3rem;
  color: var(--primary);
  flex-shrink: 0;
  margin-top: 2px;
}

.doc-item span { font-size: 0.85rem; line-height: 1.5; }

.doc-badge {
  position: absolute;
  top: 10px; right: 10px;
  background: var(--danger);
  color: white;
  font-size: 0.68rem;
  padding: 2px 8px;
  border-radius: 50px;
  font-weight: 700;
}

.doc-badge.optional-badge { background: var(--secondary); color: var(--primary-dark); }

/* ==================== FACILITY SECTION ==================== */
.facility-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
}

.facility-card {
  background: var(--bg-card);
  border-radius: var(--radius);
  padding: 28px;
  border: 1px solid var(--border);
  transition: all var(--transition);
}

.facility-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}

.facility-icon {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}

.facility-icon i { font-size: 1.3rem; color: white; }

.facility-icon.entrance { background: linear-gradient(135deg, #4cc9f0, #4361ee); }
.facility-icon.control { background: linear-gradient(135deg, var(--primary), var(--primary-light)); }
.facility-icon.kitchen { background: linear-gradient(135deg, #f4a261, #e76f51); }
.facility-icon.ventilation { background: linear-gradient(135deg, #a8dadc, #457b9d); }
.facility-icon.insurance { background: linear-gradient(135deg, #9b5de5, #7209b7); }
.facility-icon.cctv { background: linear-gradient(135deg, #f72585, #b5179e); }

.facility-card h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.badge-required {
  font-size: 0.68rem;
  background: var(--danger);
  color: white;
  padding: 2px 8px;
  border-radius: 50px;
  font-weight: 600;
}

.facility-list {
  list-style: none;
  padding: 0;
  margin-bottom: 16px;
}

.facility-list li {
  padding: 6px 0;
  font-size: 0.88rem;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  border-bottom: 1px solid #f5f5f5;
}

.facility-list li:last-child { border-bottom: none; }

.facility-list li i { flex-shrink: 0; margin-top: 3px; }

.required-item i { color: var(--primary); }
.warning-item i { color: var(--danger); }
.tip-item i { color: var(--secondary); }
.warning-item { color: var(--danger); font-weight: 600; }

.cost-estimate {
  background: #f8f9fa;
  border-radius: var(--radius-sm);
  padding: 10px 14px;
  font-size: 0.82rem;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
}

.cost-estimate i { color: var(--primary); }

/* ==================== COST SECTION ==================== */
.cost-section { background: var(--bg-section-alt); }

.cost-calculator {
  background: #f8f9fa;
  border-radius: var(--radius);
  padding: 36px;
  margin-bottom: 50px;
}

.calc-options {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 32px;
}

.calc-group { }
.calc-group label {
  display: block;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 10px;
}

.btn-group {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.calc-btn {
  background: var(--bg-card);
  border: 1.5px solid var(--border);
  color: var(--text);
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  font-size: 0.88rem;
  font-weight: 500;
  cursor: pointer;
  transition: all var(--transition);
  font-family: inherit;
}

.calc-btn:hover { border-color: var(--primary); color: var(--primary); }
.calc-btn.active { background: var(--primary); border-color: var(--primary); color: white; font-weight: 700; }

.cost-result {
  background: var(--bg-card);
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid var(--border);
}

.cost-breakdown { padding: 0; }

.cost-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 24px;
  border-bottom: 1px solid var(--border);
  gap: 20px;
}

.cost-row:last-child { border-bottom: none; }

.cost-label {
  font-size: 0.9rem;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 10px;
}

.cost-label i { color: var(--primary); width: 16px; }

.cost-value {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--primary-dark);
  white-space: nowrap;
}

.cost-row.total {
  background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
}

.cost-row.total .cost-label { font-weight: 700; font-size: 1rem; }
.total-value { font-size: 1.2rem; font-weight: 800; color: var(--primary-dark); }

.cost-note {
  background: #f8f9fa;
  padding: 14px 24px;
  font-size: 0.82rem;
  color: var(--text-muted);
  display: flex;
  align-items: flex-start;
  gap: 8px;
  border-top: 1px solid var(--border);
}

.cost-note i { color: var(--primary); flex-shrink: 0; margin-top: 2px; }

/* 비교표 */
.table-scroll { overflow-x: auto; }

.compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.compare-table th {
  background: var(--primary-dark);
  color: white;
  padding: 14px 18px;
  text-align: left;
  font-weight: 600;
}

.compare-table th:first-child { border-radius: var(--radius-sm) 0 0 0; }
.compare-table th:last-child { border-radius: 0 var(--radius-sm) 0 0; }

.compare-table td {
  padding: 14px 18px;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}

.compare-table tr:hover td { background: #f8f9fa; }

/* ==================== CHECKLIST SECTION ==================== */
.progress-bar-wrap {
  margin-bottom: 32px;
}

.progress-label {
  display: flex;
  justify-content: space-between;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-muted);
  margin-bottom: 8px;
}

.progress-bar {
  height: 8px;
  background: #e9ecef;
  border-radius: 50px;
  overflow: hidden;
}

.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--primary), var(--primary-light));
  border-radius: 50px;
  transition: width 0.4s ease;
}

.checklist-groups {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.checklist-group {
  background: var(--bg-card);
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--border);
}

.checklist-group-header {
  padding: 16px 24px;
  font-weight: 700;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  gap: 10px;
  color: white;
}

.checklist-group-header.d30 { background: linear-gradient(135deg, #1565C0, #1976D2); }
.checklist-group-header.d19 { background: linear-gradient(135deg, #2E7D32, #388E3C); }
.checklist-group-header.d9 { background: linear-gradient(135deg, #E65100, #F57C00); }

.checklist-items { padding: 8px 0; }

.checklist-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 24px;
  cursor: pointer;
  transition: background var(--transition);
  border-bottom: 1px solid #f5f5f5;
}

.checklist-item:last-child { border-bottom: none; }
.checklist-item:hover { background: #f8f9fa; }

.checklist-item.done {
  opacity: 0.65;
}

.checklist-item.done .check-title { text-decoration: line-through; }

.check-box {
  width: 24px;
  height: 24px;
  border: 2px solid var(--border);
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
  transition: all var(--transition);
}

.check-box i { color: white; font-size: 0.7rem; display: none; }

.checklist-item.done .check-box {
  background: var(--primary);
  border-color: var(--primary);
}

.checklist-item.done .check-box i { display: block; }

.check-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 3px;
}

.check-desc {
  font-size: 0.82rem;
  color: var(--text-muted);
}

/* ==================== CASES SECTION ==================== */
.cases-section { background: var(--bg-section-alt); }

.cases-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 24px;
  margin-bottom: 50px;
}

.case-card {
  border-radius: var(--radius);
  padding: 28px;
  border: 1px solid var(--border);
}

.case-card.success { border-top: 4px solid #4caf50; }
.case-card.failure { border-top: 4px solid var(--danger); }

.case-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 50px;
  font-size: 0.78rem;
  font-weight: 700;
  margin-bottom: 14px;
  letter-spacing: 0.5px;
}

.success-badge { background: #e8f5e9; color: #2e7d32; }
.failure-badge { background: #fce4ec; color: #c62828; }

.case-card h3 { font-size: 1.1rem; font-weight: 700; color: var(--primary-dark); margin-bottom: 16px; }

.case-detail { margin-bottom: 16px; }

.case-section { margin-bottom: 12px; }
.case-section h4 { font-size: 0.88rem; font-weight: 700; color: var(--text-muted); margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.case-section p { font-size: 0.88rem; color: var(--text); line-height: 1.6; }

.case-tags { display: flex; flex-wrap: wrap; gap: 6px; }

.tag {
  background: #e8f5e9;
  color: var(--primary-dark);
  padding: 4px 12px;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 600;
}

.warning-tag { background: #fce4ec; color: #c62828; }

/* 업종별 */
.biz-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 20px;
}

.biz-card {
  background: #f8f9fa;
  border-radius: var(--radius-sm);
  padding: 24px;
  border: 1px solid var(--border);
  transition: all var(--transition);
}

.biz-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); background: var(--bg-card); }

.biz-icon { font-size: 2.5rem; margin-bottom: 12px; }
.biz-card h4 { font-size: 1rem; font-weight: 700; margin-bottom: 12px; color: var(--primary-dark); }
.risk-label, .strategy-label { font-size: 0.75rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; }
.risk-label { color: var(--danger); }
.strategy-label { color: var(--primary); margin-top: 10px; }
.biz-card p { font-size: 0.85rem; color: var(--text); line-height: 1.5; }

/* ==================== APPENDIX SECTION ==================== */
.appendix-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 24px;
}

.appendix-card {
  background: var(--bg-card);
  border-radius: var(--radius);
  padding: 28px;
  border: 1px solid var(--border);
}

.appendix-card.full-width { grid-column: 1 / -1; }

.appendix-card h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.notice-box {
  background: #f8f9fa;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 20px;
  margin-bottom: 16px;
}

.notice-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 12px;
}

.notice-box p { font-size: 0.88rem; margin-bottom: 12px; }
.notice-box hr { border: none; border-top: 1px dashed var(--border); margin: 12px 0; }

.notice-list { list-style: none; padding: 0; }
.notice-list li { font-size: 0.85rem; padding: 4px 0; }

.script-box { }

.script-item {
  background: #f8f9fa;
  border-radius: var(--radius-sm);
  padding: 16px;
  margin-bottom: 12px;
}

.script-situation {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--primary);
  margin-bottom: 8px;
}

.script-item p { font-size: 0.88rem; line-height: 1.6; }

.emergency-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 16px;
}

.emergency-item {
  background: #f8f9fa;
  border-radius: var(--radius-sm);
  padding: 20px;
  text-align: center;
  border: 1px solid var(--border);
  transition: all var(--transition);
}

.emergency-item:hover { border-color: var(--primary); background: var(--bg-card); }
.emergency-item i { font-size: 1.8rem; color: var(--primary); margin-bottom: 12px; }
.emergency-label { font-size: 0.82rem; font-weight: 700; color: var(--text); margin-bottom: 6px; }
.emergency-value { font-size: 0.85rem; color: var(--primary); font-weight: 600; }

.btn-copy {
  background: var(--primary);
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
  transition: background var(--transition);
}

.btn-copy:hover { background: var(--primary-dark); }

/* ==================== FOOTER ==================== */
.site-footer {
  background: var(--primary-dark);
  color: rgba(255,255,255,0.8);
  padding: 60px 0 0;
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 2fr;
  gap: 40px;
  padding-bottom: 40px;
}

.site-footer .logo-title, .site-footer .logo-sub { color: white; }
.site-footer .logo-icon { filter: none; }

.footer-desc {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.6);
  margin-top: 16px;
  line-height: 1.7;
}

.footer-links h4, .footer-info h4 {
  font-size: 0.9rem;
  font-weight: 700;
  color: white;
  margin-bottom: 16px;
}

.footer-links ul { list-style: none; }
.footer-links ul li { margin-bottom: 10px; }
.footer-links ul li a {
  color: rgba(255,255,255,0.65);
  text-decoration: none;
  font-size: 0.88rem;
  cursor: pointer;
  transition: color var(--transition);
}

.footer-links ul li a:hover { color: var(--accent); }

.footer-info p { font-size: 0.85rem; color: rgba(255,255,255,0.6); line-height: 1.7; margin-bottom: 12px; }
.footer-version { font-size: 0.78rem; color: rgba(255,255,255,0.4); }

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding: 20px 0;
  text-align: center;
  font-size: 0.82rem;
  color: rgba(255,255,255,0.4);
}

/* 맨위로 버튼 */
.scroll-top-btn {
  position: fixed;
  bottom: 30px;
  right: 24px;
  width: 48px;
  height: 48px;
  background: var(--primary);
  color: white;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1rem;
  display: none;
  align-items: center;
  justify-content: center;
  box-shadow: var(--shadow-md);
  transition: all var(--transition);
  z-index: 900;
}

.scroll-top-btn:hover {
  background: var(--primary-dark);
  transform: translateY(-3px);
}

.scroll-top-btn.visible { display: flex; }

/* 네비 오버레이 */
.nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 900;
}

.nav-overlay.active { display: block; }

/* ==================== RESPONSIVE ==================== */
@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
  :root { --header-h: 60px; }

  .hamburger { display: flex; }

  .main-nav {
    position: fixed;
    top: 0; right: -100%;
    width: min(280px, 85vw);
    height: 100vh;
    background: var(--bg-card);
    flex-direction: column;
    justify-content: flex-start;
    padding: 80px 20px 20px;
    gap: 4px;
    transition: right 0.3s ease;
    z-index: 1000;
    box-shadow: var(--shadow-lg);
    overflow-y: auto;
  }

  .main-nav.open { right: 0; }

  .nav-link {
    width: 100%;
    padding: 14px 16px;
    border-radius: var(--radius-sm);
    font-size: 1rem;
  }

  .hero { min-height: 85vh; }
  .hero-stats { flex-direction: column; padding: 20px; }
  .stat-divider { width: 80px; height: 1px; }
  .stat-item { padding: 8px 0; }
  .br-pc { display: none; }

  .section { padding: 60px 0; }
  .section-header { margin-bottom: 40px; }

  .process-steps { flex-direction: column; }
  .process-arrow { transform: rotate(90deg); margin: 0 auto; }

  .penalty-steps { flex-direction: column; align-items: stretch; }
  .penalty-arrow { transform: rotate(90deg); margin: 0 auto; }

  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }

  .result-header { flex-direction: column; gap: 12px; align-items: flex-start; }

  .hero-stats {
    width: 100%;
    border-radius: var(--radius);
  }

  .cases-grid { grid-template-columns: 1fr; }
  .appendix-grid { grid-template-columns: 1fr; }
  .appendix-card.full-width { grid-column: auto; }
  .facility-grid { grid-template-columns: 1fr; }
  .law-cards { grid-template-columns: 1fr 1fr; }
  .emergency-grid { grid-template-columns: 1fr 1fr; }

  .cost-row { flex-direction: column; gap: 4px; }
  .cost-value { font-size: 1rem; }
  .total-value { font-size: 1.1rem; }

  .compare-table { font-size: 0.78rem; }
  .compare-table th, .compare-table td { padding: 10px 12px; }
}

@media (max-width: 480px) {
  .container { padding: 0 14px; }
  .hero-title { font-size: 1.45rem; }
  .hero-badge { font-size: 0.73rem; padding: 6px 12px; }
  .btn-hero { padding: 13px 20px; font-size: 0.88rem; }
  .law-cards { grid-template-columns: 1fr; }
  .penalty-step { min-width: auto; }
  .result-tabs { font-size: 0.75rem; }
  .result-tab { min-width: 68px; padding: 11px 4px; }
  .conditions-grid { grid-template-columns: 1fr; }
  .search-input-wrap { flex-wrap: nowrap; }
  .btn-search { padding: 14px 12px; font-size: 0.82rem; }
  .btn-search span { display: none; }
  .biz-grid { grid-template-columns: 1fr; }
  .emergency-grid { grid-template-columns: 1fr; }
  .stat-item { padding: 0 14px; }
  .stat-num { font-size: 1.25rem; }
  .hero-stats { padding: 14px 0; }
}

/* 태블릿 */
@media (min-width: 769px) and (max-width: 1024px) {
  .process-steps { flex-wrap: wrap; }
  .process-step { min-width: calc(50% - 50px); }
}

/* btn-location 제거됨 */

/* ==================== 카카오 주소 검색 결과 ==================== */
.kakao-addr-list {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0; right: 0;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  z-index: 200;
  overflow: hidden;
}
.kakao-addr-list.show { display: block; }
.kakao-addr-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 16px;
  cursor: pointer;
  border-bottom: 1px solid #f5f5f5;
  transition: background var(--transition);
}
.kakao-addr-item:last-child { border-bottom: none; }
.kakao-addr-item:hover { background: var(--bg-light); }

/* ==================== API 메인 패널 (v3) ==================== */
.api-main-panel {
  background: var(--bg-card);
  border: 1px solid #a5d6a7;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(45, 106, 79, 0.08);
}
.api-main-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  font-weight: 700;
  font-size: 0.9rem;
}
.api-update-time {
  margin-left: auto;
  font-size: 0.72rem;
  font-weight: 400;
  opacity: 0.8;
}
.live-badge {
  background: #ff4444;
  color: white;
  font-size: 0.62rem;
  padding: 2px 8px;
  border-radius: 50px;
  font-weight: 800;
  letter-spacing: 1px;
  animation: pulse-badge 1.5s ease infinite;
}

/* 통계 카드 행 */
.api-stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #e0e0e0;
  border-bottom: 1px solid #e0e0e0;
}
.api-stat-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 16px;
  background: var(--bg-card);
}
.api-stat-icon {
  font-size: 1.4rem;
  width: 44px;
  height: 44px;
  background: #f0f7f4;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.api-stat-num {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--primary-dark);
  line-height: 1.1;
}
.api-stat-desc {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 2px;
}

/* 인허가 변경 섹션 */
.license-section {
  border-bottom: 1px solid #f0f0f0;
}
.license-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: #fafafa;
  border-bottom: 1px solid #f0f0f0;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text);
}
.license-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.license-header-left i { color: var(--primary); }
.license-total {
  margin-left: auto;
  font-size: 0.78rem;
  color: var(--primary);
  font-weight: 700;
}
.license-list { padding: 8px 16px; }
.license-item {
  padding: 12px 4px;
  border-bottom: 1px solid #f5f5f5;
}
.license-item:last-child { border-bottom: none; }
.license-item-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.license-item-name {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text);
}
.license-item-state {
  font-size: 0.7rem;
  padding: 2px 8px;
  border-radius: 50px;
  background: #f5f5f5;
  color: #888;
  font-weight: 700;
}
.license-item-state.open {
  background: #e8f5e9;
  color: var(--primary);
}
.license-item-state.closed {
  background: #fce4ec;
  color: #c62828;
}
.license-item-addr {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-bottom: 4px;
}
.license-item-addr i { color: var(--primary); margin-right: 4px; }
.license-item-meta {
  display: flex;
  gap: 8px;
  font-size: 0.72rem;
  color: #aaa;
}
.license-footer {
  padding: 10px 20px;
  font-size: 0.74rem;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 6px;
  background: #fafafa;
}

/* 인허가 정보 없음 (fallback) */
.license-fallback {
  padding: 24px 20px;
  text-align: center;
  background: #fffde7;
  border-bottom: 1px solid #fff9c4;
}
.license-fallback-icon { font-size: 2rem; margin-bottom: 8px; }
.license-fallback-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 8px;
}
.license-fallback-desc {
  font-size: 0.82rem;
  color: var(--text-muted);
  line-height: 1.6;
  margin-bottom: 16px;
}
.license-fallback-links {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}
.fallback-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  border-radius: var(--radius-sm);
  text-decoration: none;
  font-size: 0.83rem;
  font-weight: 600;
  transition: all var(--transition);
}
.fallback-link.primary {
  background: var(--primary);
  color: white;
}
.fallback-link.primary:hover { background: var(--primary-dark); transform: translateY(-2px); }
.fallback-link.secondary {
  background: #f5f5f5;
  color: var(--text);
  border: 1px solid var(--border);
}
.fallback-link.secondary:hover { background: #e8f5e9; border-color: var(--primary); }

/* 카카오 지도 섹션 */
.map-section {
  padding: 20px;
  background: var(--bg-card);
}
.map-section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}
.map-open-btn {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--primary);
  font-weight: 600;
  text-decoration: none;
  padding: 6px 12px;
  background: #f0f7f4;
  border-radius: 6px;
  transition: all var(--transition);
}
.map-open-btn:hover { background: var(--primary); color: white; }

.map-loading-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-size: 0.88rem;
  color: var(--text-muted);
  z-index: 10;
}

/* 카카오 지도 사이드 패널 */
.kakao-side-panel {
  background: #fafafa;
  border: 1px solid #e8e8e8;
  border-top: none;
  border-radius: 0 0 10px 10px;
  overflow: hidden;
}
.map-panel-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: linear-gradient(135deg, #FEE500, #FFD700);
  color: #333;
  font-size: 0.85rem;
  font-weight: 700;
}
.map-count-badge {
  margin-left: auto;
  background: rgba(0,0,0,0.15);
  padding: 2px 10px;
  border-radius: 50px;
  font-size: 0.75rem;
}
.map-list-scroll {
  max-height: 300px;
  overflow-y: auto;
}
.map-list-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid #f0f0f0;
  cursor: pointer;
  transition: background var(--transition);
}
.map-list-item:hover { background: #f0f7f4; }
.map-list-num {
  width: 22px; height: 22px;
  background: var(--primary);
  color: white;
  border-radius: 50%;
  font-size: 0.72rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}
.map-list-info { flex: 1; min-width: 0; }
.map-list-name {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-bottom: 2px;
}
.map-list-addr {
  font-size: 0.75rem;
  color: var(--text-muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.map-list-phone {
  font-size: 0.72rem;
  color: var(--primary);
}
.map-list-link {
  font-size: 0.72rem;
  color: var(--primary);
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  padding: 4px 8px;
  background: #e8f5e9;
  border-radius: 4px;
  flex-shrink: 0;
  align-self: center;
  transition: all var(--transition);
}
.map-list-link:hover { background: var(--primary); color: white; }
.map-panel-footer {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  font-size: 0.74rem;
  color: var(--text-muted);
  background: var(--bg-card);
  border-top: 1px solid var(--border);
}

.api-source-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  font-size: 0.74rem;
  color: var(--text-muted);
  background: #f8f9fa;
  border-top: 1px solid #f0f0f0;
}

/* ==================== 동물등록 패널 ==================== */
.animal-section {
  border-bottom: 1px solid #f0f0f0;
}
.animal-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 13px 20px;
  background: linear-gradient(135deg, #f0f7f4, #e8f5e9);
  border-bottom: 1px solid #d0ead8;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--text);
}
.animal-header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.animal-header-icon { font-size: 1.2rem; }
.animal-source {
  margin-left: auto;
  font-size: 0.72rem;
  color: var(--primary);
  font-weight: 600;
  background: #d4edda;
  padding: 2px 10px;
  border-radius: 50px;
}
.animal-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: #e8e8e8;
}
.animal-stat {
  background: var(--bg-card);
  padding: 16px 12px;
  text-align: center;
}
.animal-stat-num {
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--primary-dark);
  margin-bottom: 4px;
  line-height: 1.2;
}
.animal-stat-label {
  font-size: 0.72rem;
  color: var(--text-muted);
}
.animal-kinds {
  padding: 10px 16px;
  background: var(--bg-card);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  border-top: 1px solid var(--border);
}
.animal-kinds-label {
  font-size: 0.78rem;
  color: var(--text-muted);
  font-weight: 600;
}
.animal-tag {
  background: #e8f5e9;
  color: var(--primary-dark);
  font-size: 0.75rem;
  padding: 3px 10px;
  border-radius: 50px;
  font-weight: 600;
}
.animal-footer {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  font-size: 0.74rem;
  color: var(--text-muted);
  background: #fafafa;
  border-top: 1px solid #f0f0f0;
}
.animal-fallback {
  padding: 16px 20px;
  background: #f0f7f4;
  border-bottom: 1px solid #d0ead8;
}
.animal-fallback-inner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.animal-fallback-icon { font-size: 1.8rem; }
.animal-fallback-title {
  font-weight: 700;
  font-size: 0.88rem;
  margin-bottom: 4px;
}
.animal-fallback-desc {
  font-size: 0.8rem;
  color: var(--text-muted);
  line-height: 1.6;
}
.animal-fallback-desc a {
  color: var(--primary);
  font-weight: 600;
}

/* 통계 4칸 → 모바일 2칸 */
@media (max-width: 576px) {
  .animal-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .api-stats-row { grid-template-columns: repeat(2, 1fr); }
}

/* 반응형 태블릿 추가 */
@media (max-width: 768px) {
  .animal-stats-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ==================== 히어로 버튼 그룹 ==================== */
.hero-btn-group {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
}
.btn-hero-outline {
  background: transparent !important;
  border: 2px solid white !important;
  color: white !important;
}
.btn-hero-outline:hover {
  background: rgba(255,255,255,0.15) !important;
  transform: translateY(-3px);
}

/* ==================== 지원사업 · 뉴스 섹션 ==================== */
.support-news-section { background: var(--bg); }

/* S/N 탭 */
.sn-tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--border);
  margin-bottom: 28px;
}
.sn-tab {
  flex: 1;
  max-width: 200px;
  padding: 14px 20px;
  border: none;
  background: transparent;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  font-family: inherit;
  transition: all var(--transition);
}
.sn-tab:hover { color: var(--primary); }
.sn-tab.active { color: var(--primary); border-bottom-color: var(--primary); font-weight: 700; }

/* 필터 바 */
.support-filter-bar, .news-filter-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
  padding: 14px 18px;
  background: #f8f9fa;
  border-radius: 10px;
}
.filter-label { font-size: 0.78rem; font-weight: 700; color: var(--text-muted); margin-right: 4px; white-space: nowrap; }
.support-filter-btn, .news-filter-btn {
  padding: 6px 14px;
  border-radius: 20px;
  border: 1.5px solid var(--border);
  background: var(--bg-card);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  font-family: inherit;
  transition: all var(--transition);
}
.support-filter-btn:hover, .news-filter-btn:hover { border-color: var(--primary); color: var(--primary); }
.support-filter-btn.active, .news-filter-btn.active { background: var(--primary); border-color: var(--primary); color: white; }

/* 지원사업 카드 */
.support-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
  margin-bottom: 32px;
}
.support-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px;
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}
.support-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--primary); }
.support-card.is-new::before { background: linear-gradient(90deg, var(--primary), var(--secondary)); }
.support-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.support-card-top { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.support-badge { font-size:0.72rem; font-weight:700; padding:3px 10px; border-radius:50px; }
.cat-startup   { background:#e8f5e9; color:#2d6a4f; }
.cat-loan      { background:#e3f2fd; color:#1565c0; }
.cat-facility  { background:#fff3e0; color:#e65100; }
.cat-guarantee { background:#f3e5f5; color:#7b1fa2; }
.cat-edu       { background:#e8eaf6; color:#283593; }
.cat-pr        { background:#fce4ec; color:#c62828; }
.cat-industry  { background:#e0f7fa; color:#00695c; }
.cat-tour      { background:#fff8e1; color:#f57f17; }
.cat-region    { background:#f1f8e9; color:#33691e; }
.cat-default   { background:#f5f5f5; color:#555; }
.support-new-badge { background:linear-gradient(135deg,#e74c3c,#c0392b); color:white; font-size:0.65rem; font-weight:800; padding:2px 7px; border-radius:50px; }
.support-unconfirmed-badge { background:#fff3cd; color:#856404; border:1px solid #ffc107; font-size:0.62rem; font-weight:700; padding:2px 7px; border-radius:50px; }
.support-amount { margin-left:auto; font-size:0.85rem; font-weight:800; color:var(--primary-dark); white-space:nowrap; }
.support-card-org { font-size:0.72rem; color:var(--text-muted); margin-bottom:4px; display:flex; align-items:center; gap:4px; }
.support-card-name { font-size:0.95rem; font-weight:700; color:var(--text); margin-bottom:8px; line-height:1.4; }
.support-card-desc { font-size:0.82rem; color:var(--text-muted); line-height:1.6; margin-bottom:14px; }
.support-card-footer { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; gap:8px; flex-wrap:wrap; }
.support-deadline { font-size:0.75rem; color:var(--text-muted); display:flex; align-items:center; gap:5px; }
.support-deadline i { color:var(--secondary); }
.support-link { font-size:0.78rem; font-weight:700; color:var(--primary); text-decoration:none; display:flex; align-items:center; gap:5px; padding:4px 10px; border:1.5px solid var(--primary); border-radius:6px; transition:all var(--transition); white-space:nowrap; }
.support-link:hover { background:var(--primary); color:white; }
.support-tags { display:flex; flex-wrap:wrap; gap:5px; }
.support-tag { font-size:0.7rem; color:var(--text-muted); background:#f5f5f5; padding:2px 8px; border-radius:50px; }

/* 공식 포털 */
.support-portals { background:linear-gradient(135deg,#f0f7f4,#e8f5e9); border-radius:12px; padding:20px 24px; border:1px solid #c8e6c9; margin-top:20px; }
.support-portal-title { font-size:0.85rem; font-weight:700; color:var(--primary-dark); margin-bottom:14px; display:flex; align-items:center; gap:7px; }
.support-portal-links { display:flex; flex-wrap:wrap; gap:10px; }
.portal-link { display:flex; align-items:center; gap:7px; padding:8px 16px; background:var(--bg-card); border:1px solid #c8e6c9; border-radius:8px; font-size:0.82rem; font-weight:600; color:var(--primary-dark); text-decoration:none; transition:all var(--transition); }
.portal-link:hover { background:var(--primary); color:white; border-color:var(--primary); }

/* 뉴스 카드 */
.news-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:20px; margin-bottom:24px; }
.news-card { background:var(--bg-card); border:1px solid var(--border); border-radius:14px; padding:18px 20px; transition:all var(--transition); }
.news-card:hover { box-shadow:var(--shadow-md); transform:translateY(-2px); }
.news-card.news-important { border-color:#a5d6a7; background:linear-gradient(135deg,#ffffff,#f9fffe); }
.news-card-top { display:flex; align-items:center; gap:8px; margin-bottom:10px; flex-wrap:wrap; }
.news-cat-badge { font-size:0.7rem; font-weight:700; padding:2px 9px; border-radius:50px; background:#f5f5f5; color:#555; }
.news-hot-badge { font-size:0.68rem; font-weight:700; background:#fff3e0; color:#e65100; padding:2px 8px; border-radius:50px; display:flex; align-items:center; gap:3px; }
.news-date { margin-left:auto; font-size:0.72rem; color:var(--text-muted); font-weight:500; }
.news-card-title { font-size:0.92rem; font-weight:700; line-height:1.5; margin-bottom:8px; }
.news-card-title a { color:var(--text); text-decoration:none; }
.news-card-title a:hover { color:var(--primary); }
.news-card-summary { font-size:0.8rem; color:var(--text-muted); line-height:1.6; margin-bottom:12px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.news-card-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px; }
.news-source { font-size:0.72rem; color:var(--text-muted); display:flex; align-items:center; gap:5px; }
.news-tags { display:flex; flex-wrap:wrap; gap:4px; }
.news-tag { font-size:0.65rem; color:var(--text-muted); background:#f5f5f5; padding:1px 7px; border-radius:50px; }

/* 실시간 RSS */
.live-news-section { background:#fff8e1; border:1px solid #ffe082; border-radius:12px; padding:16px 20px; margin-bottom:24px; }
.live-news-header { display:flex; align-items:center; gap:10px; margin-bottom:12px; font-size:0.85rem; font-weight:700; color:var(--text); }
.live-news-time { margin-left:auto; font-size:0.72rem; color:var(--text-muted); font-weight:400; }
.live-news-list { display:flex; flex-direction:column; gap:8px; }
.live-news-item { display:flex; align-items:center; gap:10px; padding:8px 12px; background:var(--bg-card); border-radius:8px; text-decoration:none; transition:all var(--transition); border:1px solid #ffe082; }
.live-news-item:hover { background:#fff3cd; border-color:#ffc107; }
.live-news-text { flex:1; min-width:0; }
.live-news-title { font-size:0.82rem; font-weight:600; color:var(--text); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.live-news-meta { font-size:0.7rem; color:var(--text-muted); margin-top:2px; }

/* 면책 */
.news-disclaimer { display:flex; align-items:flex-start; gap:8px; padding:12px 16px; background:#f8f9fa; border-radius:8px; font-size:0.75rem; color:var(--text-muted); line-height:1.5; }
.news-disclaimer i { color:var(--primary); flex-shrink:0; margin-top:1px; }
.news-loading { display:flex; align-items:center; gap:14px; padding:40px; color:var(--text-muted); font-size:0.9rem; }

/* 반응형 */
@media (max-width: 768px) {
  .support-grid { grid-template-columns: 1fr; }
  .news-grid    { grid-template-columns: 1fr; }
  .sn-tab       { font-size: 0.85rem; padding: 12px 14px; max-width: unset; }
  .portal-link  { font-size: 0.78rem; padding: 7px 12px; }
}

/* ==================== 개인 반려동물 조회 섹션 ==================== */
.nav-link-highlight {
  background: linear-gradient(135deg, var(--primary), var(--primary-light)) !important;
  color: white !important;
  border-radius: 20px;
  padding: 6px 14px !important;
}
.nav-link-highlight:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

/* 조회 안내 그리드 */
.lookup-info-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: stretch;
  margin-bottom: 28px;
}
.lookup-info-box { margin-bottom: 0 !important; }
.lookup-quick-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--bg-card);
  border-radius: 12px;
  padding: 16px 20px;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--border);
  min-width: 200px;
}
.lookup-quick-label {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.lookup-ext-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border-radius: 8px;
  background: #f0f7f4;
  color: var(--primary-dark);
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  transition: all var(--transition);
  border: 1px solid #d0ead8;
}
.lookup-ext-link:hover {
  background: var(--primary);
  color: white;
  border-color: var(--primary);
  transform: translateX(2px);
}
.lookup-ext-link i { font-size: 0.75rem; }
.lookup-ext-link.secondary {
  background: #f8f9fa;
  color: var(--text-muted);
  border-color: var(--border);
}
.lookup-ext-link.secondary:hover {
  background: #6c757d;
  color: white;
  border-color: #6c757d;
}

/* 조회 카드 */
.pet-lookup-card {
  background: var(--bg-card);
  border-radius: 16px;
  box-shadow: var(--shadow-md);
  overflow: hidden;
  margin-bottom: 40px;
}

/* RFID 탭 API 안내 배너 */
.rfid-api-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  background: #fff8e1;
  border: 1px solid #ffe082;
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 20px;
  font-size: 0.83rem;
  color: #795548;
  line-height: 1.5;
}
.rfid-api-notice i { color: #f57c00; flex-shrink: 0; margin-top: 2px; font-size: 1rem; }
.rfid-api-notice strong { color: #e65100; }

/* 탭 전환 버튼 */
.lookup-method-tabs {
  display: flex;
  border-bottom: 2px solid var(--border);
  background: #f8f9fa;
}
.lookup-method-btn {
  flex: 1;
  padding: 16px 20px;
  border: none;
  background: transparent;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all var(--transition);
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  font-family: inherit;
}
.lookup-method-btn:hover { color: var(--primary); background: #f0f7f4; }
.lookup-method-btn.active {
  color: var(--primary);
  border-bottom-color: var(--primary);
  background: var(--bg-card);
  font-weight: 700;
}

/* 폼 패널 */
.lookup-form-panel { padding: 28px 32px; }
.lookup-form-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 24px;
}
.lookup-form-group { display: flex; flex-direction: column; gap: 8px; }
.lookup-label {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 6px;
}
.lookup-label i { color: var(--primary); }
.required-mark { color: #e63946; font-size: 0.9rem; }
.optional-mark { color: var(--text-muted); font-size: 0.78rem; font-weight: 400; }
.lookup-input {
  padding: 12px 16px;
  border: 2px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 0.95rem;
  font-family: inherit;
  color: var(--text);
  transition: border-color var(--transition);
  background: var(--bg-input);
}
.lookup-input:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(45,106,79,0.1);
}
.lookup-hint {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 4px;
}
.btn-lookup {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  border: none;
  padding: 14px 36px;
  border-radius: var(--radius-lg);
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all var(--transition);
  font-family: inherit;
  box-shadow: 0 4px 14px rgba(45,106,79,0.3);
}
.btn-lookup:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(45,106,79,0.4);
}
.btn-lookup:active { transform: translateY(0); }

/* 조회 결과 영역 */
.pet-lookup-result { border-top: 1px solid var(--border); }

/* 로딩 */
.pet-result-loading {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 32px;
  color: var(--text-muted);
  font-size: 0.9rem;
}

/* 오류 */
.pet-result-error {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 20px 28px;
  background: #fff3f3;
  color: #c62828;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.5;
}
.pet-result-error i { font-size: 1.2rem; flex-shrink: 0; margin-top: 2px; }
.pet-result-empty {
  background: #f0f7ff;
  color: #1565c0;
}
.pet-result-suggest {
  margin-top: 10px;
  font-size: 0.82rem;
  font-weight: 400;
  color: #1565c0;
  background: var(--bg-card);
  border-radius: 8px;
  padding: 12px 16px;
  border: 1px solid #bbdefb;
}
.pet-result-suggest ul {
  margin: 6px 0 0 16px;
  padding: 0;
  line-height: 1.8;
}
.pet-result-suggest code {
  background: #e3f2fd;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.8rem;
}
.pet-result-suggest a {
  color: var(--primary);
  font-weight: 600;
}

/* 결과 헤더 */
.pet-result-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 24px;
  background: #f0f7f4;
  border-bottom: 1px solid #d0ead8;
  font-size: 0.9rem;
  font-weight: 600;
}
.pet-result-clear {
  margin-left: auto;
  background: none;
  border: 1px solid var(--border);
  padding: 5px 12px;
  border-radius: 6px;
  font-size: 0.78rem;
  color: var(--text-muted);
  cursor: pointer;
  font-family: inherit;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: all var(--transition);
}
.pet-result-clear:hover { background: #ffe0e0; border-color: #e63946; color: #e63946; }

/* 결과 카드 목록 */
.pet-result-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 16px;
  padding: 20px 24px;
}

/* 개별 반려동물 카드 */
.pet-result-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  transition: box-shadow var(--transition);
}
.pet-result-card:hover { box-shadow: var(--shadow-md); }

.pet-card-header {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: linear-gradient(135deg, #f0f7f4, #e8f5e9);
  border-bottom: 1px solid #d0ead8;
}
.pet-card-avatar {
  font-size: 2.2rem;
  width: 52px; height: 52px;
  background: var(--bg-section-alt);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.pet-card-title { flex: 1; min-width: 0; }
.pet-card-name {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--primary-dark);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pet-card-kind {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 2px;
}
.pet-card-state {
  font-size: 0.72rem;
  padding: 4px 10px;
  border-radius: 50px;
  font-weight: 700;
  flex-shrink: 0;
}
.state-ok  { background: #e8f5e9; color: var(--primary); }
.state-warn{ background: #fff3e0; color: #e65100; }

.pet-card-body { padding: 16px 18px; background: var(--bg-card); }
.pet-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.pet-info-item { display: flex; flex-direction: column; gap: 2px; }
.pet-info-label {
  font-size: 0.7rem;
  color: var(--text-muted);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.pet-info-value {
  font-size: 0.85rem;
  color: var(--text);
  font-weight: 500;
}
.pet-info-value.mono {
  font-family: 'Courier New', monospace;
  font-size: 0.78rem;
  background: #f5f5f5;
  padding: 2px 6px;
  border-radius: 4px;
  color: var(--primary-dark);
}

/* 결과 푸터 */
.pet-result-footer {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: #f8f9fa;
  font-size: 0.75rem;
  color: var(--text-muted);
  border-top: 1px solid var(--border);
}
.pet-result-footer i { color: var(--primary); }

/* 동물등록 안내 */
.pet-reg-guide { margin-top: 40px; }
.pet-reg-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 20px;
}
.pet-reg-card {
  background: var(--bg-card);
  border-radius: 12px;
  padding: 24px 20px;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--border);
  text-align: center;
  transition: all var(--transition);
}
.pet-reg-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.pet-reg-icon { font-size: 2rem; margin-bottom: 12px; }
.pet-reg-card h4 {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 8px;
}
.pet-reg-card p {
  font-size: 0.82rem;
  color: var(--text-muted);
  line-height: 1.6;
}
.pet-reg-card a {
  color: var(--primary);
  font-weight: 600;
  text-decoration: none;
}
.pet-reg-card a:hover { text-decoration: underline; }

/* 반응형 */
@media (max-width: 768px) {
  .lookup-form-grid { grid-template-columns: 1fr; }
  .lookup-form-panel { padding: 20px 18px; }
  .pet-reg-grid { grid-template-columns: 1fr 1fr; }
  .pet-result-list { grid-template-columns: 1fr; padding: 14px; }
  .pet-info-grid { grid-template-columns: 1fr 1fr; }
  .lookup-method-btn { font-size: 0.82rem; padding: 14px 10px; }
}
@media (max-width: 480px) {
  .pet-reg-grid { grid-template-columns: 1fr; }
  .pet-card-header { gap: 10px; }
  .pet-card-avatar { width: 42px; height: 42px; font-size: 1.8rem; }
}
@media (max-width: 768px) {
  .lookup-info-grid { grid-template-columns: 1fr; }
  .lookup-quick-links { flex-direction: row; flex-wrap: wrap; min-width: unset; }
  .hero-btn-group { flex-direction: column; align-items: center; }
}

/* ============================================================
   🌙 다크모드 토글 버튼
   ============================================================ */
.dark-toggle {
  position: relative;
  width: 48px;
  height: 26px;
  flex-shrink: 0;
}
.dark-toggle input {
  opacity: 0;
  width: 0; height: 0;
  position: absolute;
}
.dark-toggle-track {
  position: absolute;
  inset: 0;
  background: #cbd5e1;
  border-radius: 50px;
  cursor: pointer;
  transition: background 0.3s ease;
  display: flex;
  align-items: center;
  padding: 0 4px;
}
.dark-toggle input:checked + .dark-toggle-track {
  background: var(--primary);
}
.dark-toggle-thumb {
  width: 18px; height: 18px;
  background: white;
  border-radius: 50%;
  transition: transform 0.3s ease;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
}
.dark-toggle input:checked + .dark-toggle-track .dark-toggle-thumb {
  transform: translateX(22px);
}
.dark-toggle-icon { line-height: 1; }

/* 헤더 우측 액션 영역 */
.header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* ============================================================
   🌙 다크모드 전체 오버라이드 (v2.0 — WCAG AA 시인성 개선)
   콘트라스트 기준: 주텍스트 #f0f3f6 on #1c2128 = 13.7:1
                   부텍스트 #cdd9e5 on #1c2128 = 8.5:1
                   보조텍스트 #9da8b4 on #1c2128 = 4.6:1 (AA 통과)
   ============================================================ */

/* ── 기본 ── */
[data-theme="dark"] body { background: var(--bg); color: var(--text); }
[data-theme="dark"] .section { background: var(--bg); }
[data-theme="dark"] .bg-light, [data-theme="dark"] .bg-white { background: var(--bg-section-alt) !important; }

/* ── 헤더 & 내비 ── */
[data-theme="dark"] .site-header { background: rgba(13,17,23,0.97); border-bottom-color: var(--border); }
[data-theme="dark"] .main-nav { background: var(--bg-card); }
[data-theme="dark"] .nav-overlay { background: rgba(0,0,0,0.75); }
[data-theme="dark"] .logo-title { color: var(--text); }
[data-theme="dark"] .logo-sub { color: var(--text-muted); }
[data-theme="dark"] .nav-link { color: var(--text-sub); }
[data-theme="dark"] .nav-link:hover { background: var(--bg-elevated); color: var(--text); }
[data-theme="dark"] .nav-link.nav-active { background: rgba(110,231,176,0.12); color: var(--primary); }

/* ── 텍스트 계층 (전역 p 규칙 제거, 구체 선택자 사용) ── */
[data-theme="dark"] .section-title { color: var(--text); }
[data-theme="dark"] .section-desc { color: var(--text-sub); }
[data-theme="dark"] .section-badge { background: rgba(110,231,176,0.1); color: var(--primary); border-color: rgba(110,231,176,0.25); }
[data-theme="dark"] .sub-title { color: var(--text); }

/* ── 검색 박스 ── */
[data-theme="dark"] .search-input-wrap { background: var(--bg-input); border-color: var(--border-strong); }
[data-theme="dark"] .search-input { background: transparent; color: var(--text); }
[data-theme="dark"] .search-input::placeholder { color: var(--text-muted); }
[data-theme="dark"] .autocomplete-list, [data-theme="dark"] .kakao-addr-list { background: var(--bg-card); border-color: var(--border); }
[data-theme="dark"] .autocomplete-item, [data-theme="dark"] .kakao-addr-item { color: var(--text-sub); border-bottom-color: var(--border); }
[data-theme="dark"] .autocomplete-item:hover, [data-theme="dark"] .kakao-addr-item:hover { background: var(--bg-elevated); color: var(--text); }
[data-theme="dark"] .quick-btn { background: var(--bg-card); border-color: var(--border); color: var(--text-sub); }
[data-theme="dark"] .quick-btn:hover, [data-theme="dark"] .quick-btn.active { background: var(--primary); color: var(--text-on-primary); border-color: var(--primary); }

/* ── 결과 카드 공통 ── */
[data-theme="dark"] .result-card, [data-theme="dark"] .cost-card, [data-theme="dark"] .biz-card,
[data-theme="dark"] .case-card, [data-theme="dark"] .process-step-card, [data-theme="dark"] .facility-card,
[data-theme="dark"] .appendix-card, [data-theme="dark"] .checklist-group, [data-theme="dark"] .pet-lookup-card,
[data-theme="dark"] .support-card, [data-theme="dark"] .news-card, [data-theme="dark"] .pet-result-card,
[data-theme="dark"] .pet-reg-card, [data-theme="dark"] .law-card {
  background: var(--bg-card) !important;
  border-color: var(--border) !important;
}

/* ── 결과 탭 ── */
[data-theme="dark"] .result-tabs { border-bottom-color: var(--border); }
[data-theme="dark"] .result-tab { color: var(--text-muted); background: transparent; }
[data-theme="dark"] .result-tab:hover { color: var(--text-sub); background: var(--bg-elevated); }
[data-theme="dark"] .result-tab.active { color: var(--primary); border-bottom-color: var(--primary); background: transparent; }
[data-theme="dark"] .result-region-name { color: var(--text); }
[data-theme="dark"] #conditions-content, [data-theme="dark"] #process-content,
[data-theme="dark"] #contact-content, [data-theme="dark"] #tips-content { color: var(--text-sub); }

/* ── 조건 카드 ── */
[data-theme="dark"] .condition-card { background: var(--bg-card) !important; border-color: var(--border) !important; }
[data-theme="dark"] .condition-card-title { color: var(--text); }
[data-theme="dark"] .condition-card-content li { color: var(--text-sub); }

/* ── 프로세스 & 담당부서 ── */
[data-theme="dark"] .timeline-item { border-left-color: var(--border-strong); }
[data-theme="dark"] .step-label { background: var(--primary); color: var(--text-on-primary); }
[data-theme="dark"] .step-title { color: var(--text); }
[data-theme="dark"] .step-desc { color: var(--text-sub); }
[data-theme="dark"] .contact-card { background: var(--bg-card) !important; border-color: var(--border) !important; }
[data-theme="dark"] .contact-card h4 { color: var(--text); }
[data-theme="dark"] .contact-card p { color: var(--text-sub); }

/* ── 과태료 단계 (밝은 하드코딩 배경 → 다크 배경) ── */
[data-theme="dark"] .penalty-step.step1 { background: rgba(255,193,7,0.1); border-color: rgba(255,193,7,0.3); }
[data-theme="dark"] .penalty-step.step2 { background: rgba(255,152,0,0.1); border-color: rgba(255,152,0,0.3); }
[data-theme="dark"] .penalty-step.step3 { background: rgba(233,30,99,0.1); border-color: rgba(233,30,99,0.3); }
[data-theme="dark"] .step-num { color: var(--text-muted); }
[data-theme="dark"] .penalty-arrow { color: var(--text-muted); }
[data-theme="dark"] .penalty-note { color: var(--text-muted); }
[data-theme="dark"] .penalty-section .step-title { color: var(--text-sub); }
[data-theme="dark"] .step-value { color: var(--danger); }

/* ── 법안 카드·시설 카드·비즈 카드·부록 카드 타이틀 ── */
[data-theme="dark"] .law-card h3 { color: var(--text); }
[data-theme="dark"] .facility-card h3 { color: var(--text); }
[data-theme="dark"] .biz-card h4 { color: var(--text); }
[data-theme="dark"] .appendix-card h3 { color: var(--text); }
[data-theme="dark"] .case-card h3 { color: var(--text); }

/* ── 성공 뱃지 ── */
[data-theme="dark"] .success-badge { background: rgba(110,231,176,0.1); color: var(--primary); }

/* ── 알림 박스 ── */
[data-theme="dark"] .alert-box { background: var(--bg-elevated) !important; border-color: var(--border-strong) !important; color: var(--text) !important; }
[data-theme="dark"] .alert-box p { color: var(--text-sub) !important; }
[data-theme="dark"] .alert-box strong { color: var(--text); }
[data-theme="dark"] .alert-box.info { background: rgba(103,232,249,0.07) !important; border-color: rgba(103,232,249,0.22) !important; }
[data-theme="dark"] .alert-box.warning { background: rgba(252,211,77,0.07) !important; border-color: rgba(252,211,77,0.22) !important; }

/* ── 테이블 ── */
[data-theme="dark"] .compare-table th { background: var(--bg-elevated); color: var(--text); border-color: var(--border); }
[data-theme="dark"] .compare-table td { background: var(--bg-card); color: var(--text-sub); border-color: var(--border); }
[data-theme="dark"] .compare-table tr:hover td { background: var(--bg-elevated); color: var(--text); }

/* ── API 패널 ── */
[data-theme="dark"] .api-main-panel { background: var(--bg-card) !important; border-color: var(--border) !important; }
[data-theme="dark"] .api-stats-box, [data-theme="dark"] .api-stats-row, [data-theme="dark"] .api-stat-card { background: var(--bg-card) !important; border-color: var(--border) !important; }
[data-theme="dark"] .api-stat-icon { background: rgba(110,231,176,0.1); }
[data-theme="dark"] .api-stat-num { color: var(--primary); }
[data-theme="dark"] .api-stat-desc { color: var(--text-muted); }
[data-theme="dark"] .api-items-list { background: var(--bg-card); }
[data-theme="dark"] .api-item { border-bottom-color: var(--border); }
[data-theme="dark"] .api-item-name { color: var(--text); }
[data-theme="dark"] .api-item-addr, [data-theme="dark"] .api-data-source { color: var(--text-muted); }
[data-theme="dark"] .api-error-box { background: rgba(252,211,77,0.07) !important; border-color: rgba(252,211,77,0.2) !important; color: var(--warning) !important; }
[data-theme="dark"] .api-link-btn.secondary { background: var(--bg-elevated); color: var(--text-sub); }

/* ── 비용 계산기 ── */
[data-theme="dark"] .calc-btn { background: var(--bg-card); border-color: var(--border); color: var(--text-sub); }
[data-theme="dark"] .calc-btn:hover { background: var(--bg-elevated); color: var(--text); }
[data-theme="dark"] .calc-btn.active { background: var(--primary); border-color: var(--primary); color: var(--text-on-primary); font-weight: 700; }
[data-theme="dark"] .cost-row { border-bottom-color: var(--border); }
[data-theme="dark"] .cost-label { color: var(--text-sub); }
[data-theme="dark"] .cost-value { color: var(--text); }
[data-theme="dark"] .cost-total-row { background: rgba(110,231,176,0.07) !important; }
[data-theme="dark"] .total-label { color: var(--text); }
[data-theme="dark"] .total-value { color: var(--primary); }

/* ── 체크리스트 ── */
[data-theme="dark"] .checklist-group-title { color: var(--text); }
[data-theme="dark"] .checklist-item { background: var(--bg-section-alt); border-color: var(--border); color: var(--text-sub); }
[data-theme="dark"] .checklist-item:hover { background: var(--bg-elevated); color: var(--text); }
[data-theme="dark"] .checklist-item.done { background: rgba(110,231,176,0.08); border-color: rgba(110,231,176,0.25); }
[data-theme="dark"] .checklist-item.done .check-text { color: var(--text-muted); }
[data-theme="dark"] .progress-bar { background: var(--border); }
[data-theme="dark"] .progress-fill { background: var(--primary); }
[data-theme="dark"] .progress-text { color: var(--text-sub); }

/* ── 지원사업 ── */
[data-theme="dark"] .support-filter-bar { background: var(--bg-section-alt); border-color: var(--border); }
[data-theme="dark"] .support-filter-btn { background: var(--bg-card); border-color: var(--border); color: var(--text-sub); }
[data-theme="dark"] .support-filter-btn:hover { background: var(--bg-elevated); color: var(--text); }
[data-theme="dark"] .support-filter-btn.active { background: var(--primary); border-color: var(--primary); color: var(--text-on-primary); }
[data-theme="dark"] .support-card-org { color: var(--text-muted); }
[data-theme="dark"] .support-card-name { color: var(--text); }
[data-theme="dark"] .support-card-desc { color: var(--text-sub); }
[data-theme="dark"] .support-deadline { color: var(--text-muted); }
[data-theme="dark"] .support-card-footer { border-top-color: var(--border); }
[data-theme="dark"] .support-tag { background: var(--bg-elevated); color: var(--text-muted); }
[data-theme="dark"] .support-amount { color: var(--primary); }
[data-theme="dark"] .support-portals { background: rgba(110,231,176,0.05) !important; border-color: rgba(110,231,176,0.18) !important; }
[data-theme="dark"] .support-portal-title { color: var(--text-sub); }
[data-theme="dark"] .support-unconfirmed-badge { background: rgba(252,211,77,0.1); border-color: rgba(252,211,77,0.28); color: var(--warning); }
[data-theme="dark"] .portal-link { background: var(--bg-elevated); border-color: var(--border); color: var(--text-sub); }
[data-theme="dark"] .portal-link:hover { background: var(--primary); color: var(--text-on-primary); border-color: var(--primary); }
[data-theme="dark"] .support-notice-bar { background: rgba(110,231,176,0.07) !important; border-color: rgba(110,231,176,0.2) !important; color: var(--primary) !important; }
[data-theme="dark"] .support-notice-bar strong { color: #a7f3d0; }
[data-theme="dark"] .support-live-bar { background: rgba(252,211,77,0.07) !important; border-color: rgba(252,211,77,0.2) !important; color: var(--warning) !important; }
[data-theme="dark"] .support-live-bar a { color: var(--info); }
[data-theme="dark"] .support-live-dot { background: var(--warning); }

/* 카테고리 배지 (다크 — 투명 배경 + 밝은 텍스트) */
[data-theme="dark"] .cat-startup   { background: rgba(110,231,176,0.1); color: #86efac; }
[data-theme="dark"] .cat-loan      { background: rgba(147,197,253,0.1); color: #93c5fd; }
[data-theme="dark"] .cat-facility  { background: rgba(253,186,116,0.1); color: #fdba74; }
[data-theme="dark"] .cat-guarantee { background: rgba(216,180,254,0.1); color: #d8b4fe; }
[data-theme="dark"] .cat-edu       { background: rgba(165,180,252,0.1); color: #a5b4fc; }
[data-theme="dark"] .cat-pr        { background: rgba(249,168,212,0.1); color: #f9a8d4; }
[data-theme="dark"] .cat-industry  { background: rgba(103,232,249,0.1); color: #67e8f9; }
[data-theme="dark"] .cat-tour      { background: rgba(252,211,77,0.1);  color: #fcd34d; }
[data-theme="dark"] .cat-region    { background: rgba(134,239,172,0.1); color: #86efac; }
[data-theme="dark"] .cat-default   { background: var(--bg-elevated); color: var(--text-muted); }

/* ── 뉴스 ── */
[data-theme="dark"] .news-filter-bar { background: var(--bg-section-alt); border-color: var(--border); }
[data-theme="dark"] .news-filter-btn { background: var(--bg-card); border-color: var(--border); color: var(--text-sub); }
[data-theme="dark"] .news-filter-btn:hover { background: var(--bg-elevated); color: var(--text); }
[data-theme="dark"] .news-filter-btn.active { background: var(--primary); border-color: var(--primary); color: var(--text-on-primary); }
[data-theme="dark"] .news-card-title a { color: var(--text); }
[data-theme="dark"] .news-card-title a:hover { color: var(--primary); }
[data-theme="dark"] .news-card-summary { color: var(--text-sub); }
[data-theme="dark"] .news-date { color: var(--text-muted); }
[data-theme="dark"] .news-source { color: var(--text-muted); }
[data-theme="dark"] .news-tag { background: var(--bg-elevated); color: var(--text-muted); }
[data-theme="dark"] .news-card.news-important { background: rgba(110,231,176,0.05) !important; border-color: rgba(110,231,176,0.18) !important; }
[data-theme="dark"] .news-loading { background: var(--bg-card); color: var(--text-sub); }
[data-theme="dark"] .news-disclaimer { background: var(--bg-section-alt); color: var(--text-muted); border-color: var(--border); }
[data-theme="dark"] .news-curated-label { background: var(--bg-elevated); color: var(--text-muted); }
[data-theme="dark"] .live-news-section { background: rgba(252,211,77,0.05); border-color: rgba(252,211,77,0.18); }
[data-theme="dark"] .live-news-header { color: var(--text-sub); }
[data-theme="dark"] .live-news-item { background: var(--bg-card); border-color: var(--border); }
[data-theme="dark"] .live-news-item:hover { background: var(--bg-elevated); }
[data-theme="dark"] .live-news-title { color: var(--text); }
[data-theme="dark"] .live-news-meta { color: var(--text-muted); }

/* ── 지원사업·뉴스 탭 ── */
[data-theme="dark"] .sn-tabs { border-bottom-color: var(--border); }
[data-theme="dark"] .sn-tab { color: var(--text-muted); background: transparent; }
[data-theme="dark"] .sn-tab:hover { color: var(--text-sub); background: var(--bg-elevated); }
[data-theme="dark"] .sn-tab.active { color: var(--primary); border-bottom-color: var(--primary); background: transparent; }

/* ── 개인 반려동물 조회 ── */
[data-theme="dark"] .lookup-method-tabs { background: var(--bg-section-alt); border-bottom-color: var(--border); }
[data-theme="dark"] .lookup-method-btn { color: var(--text-muted); }
[data-theme="dark"] .lookup-method-btn:hover { color: var(--text-sub); }
[data-theme="dark"] .lookup-method-btn.active { color: var(--primary); border-bottom-color: var(--primary); }
[data-theme="dark"] .lookup-form-panel { background: var(--bg-card); }
[data-theme="dark"] .lookup-label { color: var(--text-sub); }
[data-theme="dark"] .lookup-input { background: var(--bg-input); border-color: var(--border-strong); color: var(--text); }
[data-theme="dark"] .lookup-input::placeholder { color: var(--text-muted); }
[data-theme="dark"] .lookup-input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(110,231,176,0.15); }
[data-theme="dark"] .rfid-api-notice { background: rgba(252,211,77,0.07); border-color: rgba(252,211,77,0.2); color: var(--warning); }
[data-theme="dark"] .lookup-quick-links { background: var(--bg-card); border-color: var(--border); }
[data-theme="dark"] .lookup-ext-link { background: rgba(110,231,176,0.07); border-color: rgba(110,231,176,0.2); color: var(--text-sub); }
[data-theme="dark"] .lookup-ext-link:hover { background: var(--primary); color: var(--text-on-primary); }
[data-theme="dark"] .pet-result-header { background: rgba(110,231,176,0.07); border-color: rgba(110,231,176,0.2); color: var(--text); }
[data-theme="dark"] .pet-result-footer { background: var(--bg-section-alt); border-color: var(--border); color: var(--text-muted); }
[data-theme="dark"] .pet-card-header { background: linear-gradient(135deg, rgba(110,231,176,0.09), rgba(74,222,128,0.07)); border-color: rgba(110,231,176,0.2); }
[data-theme="dark"] .pet-card-name { color: var(--text); }
[data-theme="dark"] .pet-card-kind { color: var(--text-muted); }
[data-theme="dark"] .pet-card-body { background: var(--bg-card); }
[data-theme="dark"] .pet-info-label { color: var(--text-muted); }
[data-theme="dark"] .pet-info-value { color: var(--text-sub); }
[data-theme="dark"] .pet-info-value.mono { background: var(--bg-elevated); color: var(--primary); }
[data-theme="dark"] .pet-card-state.ok { background: rgba(110,231,176,0.12); color: #86efac; }
[data-theme="dark"] .pet-card-state.warning { background: rgba(252,211,77,0.12); color: var(--warning); }
[data-theme="dark"] .pet-reg-card h4 { color: var(--text); }
[data-theme="dark"] .pet-reg-card p { color: var(--text-sub); }

/* ── 동물등록 통계 ── */
[data-theme="dark"] .animal-header { background: var(--bg-card) !important; border-color: var(--border) !important; }
[data-theme="dark"] .animal-stat { background: var(--bg-card) !important; border-color: var(--border) !important; color: var(--text-sub); }
[data-theme="dark"] .license-header { background: var(--bg-card) !important; border-color: var(--border) !important; }
[data-theme="dark"] .license-item { background: var(--bg-card) !important; border-color: var(--border) !important; color: var(--text-sub); }
[data-theme="dark"] .license-item:hover { background: var(--bg-elevated) !important; }

/* ── 히어로 stats ── */
[data-theme="dark"] .hero-stats { background: rgba(255,255,255,0.06); }
[data-theme="dark"] .stat-num { color: #fff; }
[data-theme="dark"] .stat-label { color: rgba(255,255,255,0.72); }
[data-theme="dark"] .stat-divider { background: rgba(255,255,255,0.18); }

/* ── 푸터 ── */
[data-theme="dark"] .site-footer { background: #090c10 !important; border-top-color: var(--border); }
[data-theme="dark"] .footer-bottom { border-top-color: var(--border); color: var(--text-muted); }
[data-theme="dark"] .footer-nav a { color: var(--text-muted); }
[data-theme="dark"] .footer-nav a:hover { color: var(--primary); }
[data-theme="dark"] .footer-desc { color: var(--text-muted); }

/* ── 기타 UI ── */
[data-theme="dark"] .toast { background: var(--bg-elevated); color: var(--text); border: 1px solid var(--border-strong); }
[data-theme="dark"] .scroll-top-btn { background: var(--primary); color: var(--text-on-primary); }
[data-theme="dark"] .scroll-top-btn:hover { background: var(--primary-dark); }
[data-theme="dark"] #kakao-map-container { filter: brightness(0.85) contrast(1.05); }

/* ── 지도 패널 ── */
[data-theme="dark"] .map-section { background: var(--bg-card) !important; }
[data-theme="dark"] .map-list-item { border-bottom-color: var(--border); }
[data-theme="dark"] .map-list-item:hover { background: var(--bg-elevated); }

/* ── 라이센스/동물 통계 상세 ── */
[data-theme="dark"] .license-item-state { background: var(--bg-elevated); color: var(--text-muted); }
[data-theme="dark"] .license-item-state.open { background: rgba(110,231,176,0.12); color: #86efac; }
[data-theme="dark"] .license-item-state.closed { background: rgba(248,113,113,0.12); color: #fca5a5; }
[data-theme="dark"] .license-item-meta { color: var(--text-muted); }
[data-theme="dark"] .animal-kinds { border-top-color: var(--border); }

/* ── 케이스 배지 ── */
[data-theme="dark"] .success-badge { background: rgba(110,231,176,0.12); color: #86efac; }
[data-theme="dark"] .failure-badge { background: rgba(248,113,113,0.12); color: #fca5a5; }
[data-theme="dark"] .warning-tag { background: rgba(248,113,113,0.12); color: #fca5a5; }

/* ── 반려동물 조회 quick link 안내 ── */
[data-theme="dark"] .rfid-api-notice { color: var(--warning) !important; }
[data-theme="dark"] .lookup-quick-links { background: var(--bg-card) !important; border-color: var(--border) !important; }

/* ── support-portal ── */
[data-theme="dark"] .portal-link { background: var(--bg-elevated) !important; border-color: var(--border) !important; color: var(--text-sub) !important; }
[data-theme="dark"] .portal-link:hover { background: var(--primary) !important; color: var(--text-on-primary) !important; }

/* ── live news ── */
[data-theme="dark"] .live-news-item { background: rgba(252,211,77,0.06); border-color: rgba(252,211,77,0.2); }
[data-theme="dark"] .live-news-item:hover { background: rgba(252,211,77,0.1); }

/* ── 비용 계산기 계층 ── */
[data-theme="dark"] .cost-calculator { background: var(--bg-section-alt); }
[data-theme="dark"] .calc-group-label { color: var(--text-muted); }

/* ── 프로세스 섹션 ── */
[data-theme="dark"] .process-section { background: var(--bg-section-alt); }
[data-theme="dark"] .doc-item { color: var(--text-sub); }
[data-theme="dark"] .doc-item h4 { color: var(--text); }

/* ── cases 섹션 ── */
[data-theme="dark"] .cases-section { background: var(--bg-section-alt); }
[data-theme="dark"] .case-card { background: var(--bg-card) !important; }
[data-theme="dark"] .case-card-title { color: var(--text); }
[data-theme="dark"] .case-card-desc { color: var(--text-sub); }

/* ── 히어로 버튼 다크모드 ── */
[data-theme="dark"] .btn-hero { background: rgba(255,255,255,0.1); color: #f0f3f6; border: 1px solid rgba(255,255,255,0.2); }
[data-theme="dark"] .btn-hero:hover { background: rgba(255,255,255,0.18); }

/* ── 검색 섹션 배경 ── */
[data-theme="dark"] .search-section { background: var(--bg-section-alt) !important; }

/* ── 밝은 배경 카드/요소 — 다크모드 일괄 오버라이드 ── */

/* biz-card: 텍스트 가독성 보강 (배경은 3205줄에서 처리) */
[data-theme="dark"] .biz-card p { color: var(--text-sub); }
[data-theme="dark"] .risk-label { color: #fca5a5; }
[data-theme="dark"] .strategy-label { color: var(--primary); }

/* process-step-icon: 밝은 녹색 그래디언트 */
[data-theme="dark"] .process-step-icon { background: linear-gradient(135deg, rgba(110,231,176,0.15), rgba(74,222,128,0.1)); }
[data-theme="dark"] .process-step h3 { color: var(--text); }
[data-theme="dark"] .process-step p, [data-theme="dark"] .mini-checklist li { color: var(--text-sub); }
[data-theme="dark"] .process-duration { color: var(--text-muted); }
[data-theme="dark"] .process-arrow { color: var(--text-muted); }

/* facility-list 내 border, cost-estimate 밝은 배경 */
[data-theme="dark"] .facility-list li { border-bottom-color: var(--border); color: var(--text-sub); }
[data-theme="dark"] .facility-list li strong { color: var(--text); }
[data-theme="dark"] .cost-estimate { background: var(--bg-elevated); color: var(--text-muted); }

/* state-ok / state-warn: 밝은 배경 뱃지 */
[data-theme="dark"] .state-ok { background: rgba(110,231,176,0.12); color: #86efac; }
[data-theme="dark"] .state-warn { background: rgba(253,186,116,0.12); color: #fdba74; }

/* news-cat-badge / news-hot-badge: 밝은 배경 */
[data-theme="dark"] .news-cat-badge { background: var(--bg-elevated); color: var(--text-muted); }
[data-theme="dark"] .news-hot-badge { background: rgba(253,186,116,0.12); color: #fdba74; }

/* map-panel-header: 카카오 노란 그래디언트 — 글자 색이 #333이라 OK이지만, 일관성 위해 처리 */
[data-theme="dark"] .map-panel-header { background: linear-gradient(135deg, #b8860b, #a07808); color: #f0f3f6; }

/* ── 다크모드 밝은 배경 일괄 오버라이드 (2차) ── */

/* API 관련 */
[data-theme="dark"] .api-loading { background: var(--bg-card); color: var(--text-muted); }
[data-theme="dark"] .api-item-type { background: rgba(110,231,176,0.12); color: #86efac; }
[data-theme="dark"] .api-item-status.open { background: rgba(110,231,176,0.12); color: #86efac; }
[data-theme="dark"] .api-data-source { background: var(--bg-elevated); color: var(--text-muted); }
[data-theme="dark"] .api-link-btn { background: rgba(110,231,176,0.1); color: var(--primary); border-color: rgba(110,231,176,0.25); }
[data-theme="dark"] .api-source-bar { background: var(--bg-elevated); color: var(--text-muted); }

/* 결과 카드 내부 */
[data-theme="dark"] .condition-card { background: var(--bg-card) !important; border-color: var(--border) !important; }
[data-theme="dark"] .condition-card-title { color: var(--text); }
[data-theme="dark"] .contact-card { background: var(--bg-card) !important; border-color: var(--border) !important; }

/* 태그/뱃지 */
[data-theme="dark"] .tag { background: rgba(110,231,176,0.1); color: var(--primary); }
[data-theme="dark"] .warning-tag { background: rgba(248,113,113,0.12); color: #fca5a5; }

/* 공지/안내 박스 */
[data-theme="dark"] .notice-box { background: var(--bg-elevated); color: var(--text-sub); border-color: var(--border); }
[data-theme="dark"] .emergency-item { background: var(--bg-card); border-color: var(--border); }

/* 조회 관련 */
[data-theme="dark"] .lookup-item-meta { background: var(--bg-elevated); }
[data-theme="dark"] .lookup-warning { background: rgba(252,211,77,0.07); border-color: rgba(252,211,77,0.2); color: var(--warning); }

/* Fallback 링크 */
[data-theme="dark"] .fallback-link.secondary { background: var(--bg-elevated); color: var(--text-sub); }
[data-theme="dark"] .fallback-link.secondary:hover { background: rgba(110,231,176,0.1); border-color: var(--primary); color: var(--primary); }

/* 지도 관련 */
[data-theme="dark"] .map-open-btn { background: var(--bg-elevated); color: var(--text-sub); }
[data-theme="dark"] .map-list-link { background: rgba(110,231,176,0.08); color: var(--primary); }

/* 동물등록 관련 */
[data-theme="dark"] .animal-fallback-desc { background: var(--bg-elevated); color: var(--text-sub); }
[data-theme="dark"] .pet-info-footer { background: var(--bg-elevated); color: var(--text-muted); }

/* ============================================================
   📱 모바일 완전 반응형 (재정의 - 최우선 적용)
   ============================================================ */

/* --- 공통: 모든 그리드 컨테이너 오버플로우 방지 --- */
[class*="-grid"],
[class*="-wrap"],
.result-card,
.pet-lookup-card {
  max-width: 100%;
}

/* --- 768px 이하: 핸드폰/소형 태블릿 --- */
@media screen and (max-width: 768px) {
  :root { --header-h: 58px; }

  /* 컨테이너 */
  .container { padding: 0 16px; }

  /* 헤더 로고 텍스트 축소 */
  .logo-title { font-size: 0.9rem; }
  .logo-sub   { display: none; }

  /* 햄버거 */
  .hamburger { display: flex; }

  /* 모바일 네비 드로어 */
  .main-nav {
    position: fixed;
    top: 0; right: -100%;
    width: min(300px, 88vw);
    height: 100dvh; /* dynamic viewport height - iOS 주소창 대응 */
    background: var(--bg-card);
    flex-direction: column;
    justify-content: flex-start;
    padding: 72px 20px 32px;
    gap: 4px;
    transition: right 0.3s cubic-bezier(.4,0,.2,1);
    z-index: 1001;
    box-shadow: var(--shadow-lg);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .main-nav.open { right: 0; }
  .nav-link {
    width: 100%;
    padding: 14px 16px;
    border-radius: var(--radius-sm);
    font-size: 0.95rem;
  }
  .header-actions { gap: 8px; }

  /* 히어로 */
  .hero { min-height: 92svh; } /* safe area 대응 */
  .hero-content { padding: 40px 0 48px; text-align: center; }
  .hero-badge { font-size: 0.75rem; }
  .hero-title { font-size: clamp(1.5rem, 6vw, 2.2rem); }
  .hero-desc  { font-size: 0.9rem; }
  .hero-stats {
    display: flex;
    flex-direction: row;
    width: 100%;
    justify-content: space-around;
    padding: 16px 8px;
    border-radius: var(--radius);
    gap: 0;
  }
  .stat-item  { padding: 0 8px; }
  .stat-num   { font-size: 1.2rem; }
  .stat-label { font-size: 0.68rem; }
  .stat-divider { width: 1px; height: 36px; }
  .hero-btn-group { flex-direction: column; align-items: stretch; gap: 10px; width: 100%; max-width: 300px; margin: 0 auto; }
  .btn-hero { text-align: center; justify-content: center; }
  .br-pc { display: none; }

  /* 섹션 */
  .section { padding: 48px 0; }
  .section-header { margin-bottom: 28px; }
  .section-title  { font-size: clamp(1.3rem, 5vw, 1.8rem); }

  /* 검색 박스 */
  .search-input-wrap { flex-wrap: nowrap; }
  .search-icon { padding: 0 10px; font-size: 0.95rem; }
  .search-input { font-size: 0.9rem; padding: 14px 8px; }
  .btn-search { padding: 14px 14px; font-size: 0.85rem; }
  .btn-search span { display: none; }
  .search-quick-labels { gap: 6px; }
  .quick-btn { padding: 7px 12px; font-size: 0.78rem; }
  .quick-label-title { display: none; }

  /* 결과 카드 */
  .result-header { flex-direction: column; gap: 10px; align-items: flex-start; }
  .result-tabs { overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; }
  .result-tab { flex-shrink: 0; padding: 12px 10px; font-size: 0.8rem; min-width: 80px; }

  /* 프로세스 */
  .process-steps { flex-direction: column; align-items: stretch; }
  .process-arrow { transform: rotate(90deg); margin: 0 auto; }

  /* 페널티 */
  .penalty-steps { flex-direction: column; align-items: stretch; }
  .penalty-arrow { transform: rotate(90deg); margin: 0 auto; }

  /* 그리드 → 1열 */
  .law-cards        { grid-template-columns: 1fr 1fr; }
  .facility-grid    { grid-template-columns: 1fr; }
  .cases-grid       { grid-template-columns: 1fr; }
  .appendix-grid    { grid-template-columns: 1fr; }
  .appendix-card.full-width { grid-column: auto; }
  .emergency-grid   { grid-template-columns: 1fr 1fr; }

  /* 비용 */
  .cost-row { flex-direction: column; gap: 4px; }

  /* 비교표 */
  .compare-table { font-size: 0.75rem; display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .compare-table th, .compare-table td { padding: 9px 10px; white-space: nowrap; }

  /* 푸터 */
  .footer-grid { grid-template-columns: 1fr; }

  /* 개인조회 */
  .lookup-info-grid   { grid-template-columns: 1fr; }
  .lookup-form-grid   { grid-template-columns: 1fr; }
  .lookup-form-panel  { padding: 20px 16px; }
  .lookup-quick-links { flex-direction: row; flex-wrap: wrap; min-width: unset; }
  .pet-reg-grid { grid-template-columns: 1fr 1fr; }
  .pet-result-list { grid-template-columns: 1fr; padding: 12px; }

  /* API 통계 */
  .api-stats-row { grid-template-columns: 1fr 1fr; }

  /* 지원사업·뉴스 */
  .support-grid { grid-template-columns: 1fr; }
  .news-grid    { grid-template-columns: 1fr; }
  .sn-tab       { font-size: 0.88rem; padding: 12px 12px; max-width: unset; }
  .support-portal-links { gap: 8px; flex-wrap: wrap; }
  .portal-link  { font-size: 0.78rem; padding: 7px 10px; }

  /* 동물등록 통계 */
  .animal-stats-grid { grid-template-columns: 1fr 1fr; }

  /* lookup-method-btn */
  .lookup-method-btn { font-size: 0.85rem; padding: 14px 10px; }
}

/* --- 480px 이하: 소형 폰 (iPhone SE 등) --- */
@media screen and (max-width: 480px) {
  .container { padding: 0 14px; }
  .hero-title { font-size: clamp(1.3rem, 7vw, 1.6rem); }
  .hero-badge { font-size: 0.72rem; padding: 6px 12px; }
  .hero-stats { gap: 0; }
  .stat-item  { padding: 0 6px; }
  .stat-num   { font-size: 1.1rem; }
  .stat-label { font-size: 0.63rem; }

  .law-cards { grid-template-columns: 1fr; }
  .emergency-grid { grid-template-columns: 1fr; }
  .pet-reg-grid   { grid-template-columns: 1fr; }
  .api-stats-row  { grid-template-columns: 1fr 1fr; }
  .animal-stats-grid { grid-template-columns: 1fr 1fr; }

  .result-tab { min-width: 70px; font-size: 0.75rem; padding: 11px 4px; }
  .btn-hero   { padding: 12px 18px; font-size: 0.87rem; }
  .section    { padding: 36px 0; }

  .support-filter-bar, .news-filter-bar { padding: 10px 12px; gap: 6px; }
  .support-filter-btn, .news-filter-btn { padding: 5px 10px; font-size: 0.75rem; }
  .sn-tab { font-size: 0.82rem; padding: 11px 10px; }

  .pet-card-header { gap: 10px; }
  .pet-card-avatar { width: 42px; height: 42px; font-size: 1.8rem; }
  .pet-info-grid { grid-template-columns: 1fr 1fr; }
}

/* --- 360px 이하: 초소형 폰 --- */
@media screen and (max-width: 360px) {
  .container { padding: 0 10px; }
  .hero-title { font-size: 1.25rem; }
  .stat-num   { font-size: 1rem; }
  .stat-label { font-size: 0.6rem; }
  .result-tab { min-width: 62px; font-size: 0.72rem; padding: 10px 2px; }
  .nav-link   { font-size: 0.9rem; }
}

/* --- 터치 디바이스: hover 비활성화 (성능 최적화) --- */
@media (hover: none) and (pointer: coarse) {
  .support-card:hover,
  .news-card:hover,
  .pet-result-card:hover,
  .portal-link:hover,
  .live-news-item:hover {
    transform: none;
    box-shadow: var(--shadow-sm);
  }
  /* 버튼 탭 피드백은 유지 */
  .btn-lookup:active,
  .btn-hero:active,
  .btn-search:active { transform: scale(0.97); }
}

/* --- 가로 모드 (landscape) 소형 폰 --- */
@media screen and (max-height: 500px) and (orientation: landscape) {
  .hero { min-height: auto; padding: 20px 0; }
  .hero-content { padding: 20px 0 24px; }
  .hero-stats { padding: 10px; }
  .hero-scroll-hint { display: none; }
}

/* --- 고해상도(Retina) 선명도 보정 --- */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .loading-spinner { border-width: 1.5px; }
}

/* --- Safe Area (iPhone 노치/홈바) 대응 --- */
@supports (padding: max(0px)) {
  .site-header {
    padding-left: max(0px, env(safe-area-inset-left));
    padding-right: max(0px, env(safe-area-inset-right));
  }
  .hero {
    padding-bottom: max(0px, env(safe-area-inset-bottom));
  }
  .site-footer {
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }
  .scroll-top-btn {
    bottom: max(24px, calc(env(safe-area-inset-bottom) + 16px));
    right:  max(24px, calc(env(safe-area-inset-right)  + 16px));
  }
}

/* ============================================================
   📱 모바일 완전 반응형 추가 보완 (최신 기기 대응 v1.2)
   ============================================================ */

/* --- 360px 이하: 구형/저사양 소형폰 --- */
@media screen and (max-width: 360px) {
  .container { padding: 0 12px; }
  .hero-title { font-size: 1.25rem; }
  .stat-num { font-size: 1rem; }
  .stat-label { font-size: 0.6rem; }
  .btn-hero { padding: 11px 14px; font-size: 0.82rem; }
  .section { padding: 28px 0; }
  .section-title { font-size: 1.2rem; }
  .result-tab { min-width: 60px; font-size: 0.7rem; padding: 10px 2px; }
  .support-filter-btn, .news-filter-btn { font-size: 0.7rem; padding: 4px 8px; }
  .logo-title { font-size: 0.82rem; }
  .logo-sub   { display: none; }
  .nav-link   { font-size: 0.88rem; padding: 12px 14px; }
  .sn-tab     { font-size: 0.78rem; padding: 10px 6px; }
}

/* --- 태블릿 세로 (601~900px) --- */
@media screen and (min-width: 601px) and (max-width: 900px) {
  .support-grid { grid-template-columns: 1fr 1fr; }
  .news-grid    { grid-template-columns: 1fr 1fr; }
  .facility-grid { grid-template-columns: 1fr 1fr; }
  .pet-reg-grid  { grid-template-columns: 1fr 1fr; }
  .api-stats-row { grid-template-columns: repeat(3, 1fr); }
}

/* --- 태블릿 가로 / 소형 노트북 (901~1200px) --- */
@media screen and (min-width: 901px) and (max-width: 1200px) {
  .support-grid { grid-template-columns: repeat(3, 1fr); }
  .main-nav { gap: 2px; }
  .nav-link { padding: 8px 10px; font-size: 0.82rem; }
}

/* --- 폴더블폰 / 갤럭시 Z Fold (너비 320~380px 세로 모드) --- */
@media screen and (max-width: 380px) {
  .hero-stats { flex-direction: column; }
  .stat-divider { width: 60px; height: 1px; }
  .stat-item { padding: 6px 0; }
  .search-input-wrap { flex-wrap: nowrap; }
}

/* --- 가로 모드 핸드폰 (height ≤ 420px) --- */
@media screen and (max-height: 420px) and (orientation: landscape) {
  .hero { min-height: auto; padding: 8px 0; }
  .hero-content { padding: 16px 0 20px; }
  .hero-title { font-size: 1.3rem; }
  .hero-stats { display: none; }
  .hero-scroll-hint { display: none; }
  :root { --header-h: 52px; }
}

/* --- 큰 폰 / 패블릿 (481~600px) --- */
@media screen and (min-width: 481px) and (max-width: 600px) {
  .hero-title { font-size: 1.7rem; }
  .support-grid { grid-template-columns: 1fr 1fr; }
  .law-cards { grid-template-columns: 1fr 1fr; }
  .pet-reg-grid { grid-template-columns: 1fr 1fr; }
}

/* --- 인쇄 스타일 --- */
@media print {
  .site-header, .hero, .scroll-top-btn, .hamburger,
  .nav-overlay, .dark-toggle, .support-news-section { display: none !important; }
  body { background: white; color: black; }
  .section { padding: 20px 0; break-inside: avoid; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 0.7rem; color: #666; }
}

/* --- 지원사업 안내 배너 스타일 --- */
.support-notice-bar {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
  background: #f0f9f4;
  border: 1px solid #a5d6a7;
  border-radius: var(--radius-sm);
  font-size: 0.82rem;
  color: #2d6a4f;
  margin-bottom: 16px;
  line-height: 1.5;
}
.support-notice-bar i { margin-top: 2px; flex-shrink: 0; }

.support-live-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: #fff8e1;
  border: 1px solid #ffe082;
  border-radius: var(--radius-sm);
  font-size: 0.82rem;
  color: #856404;
  margin-bottom: 16px;
}
.support-live-dot {
  width: 8px; height: 8px;
  background: #ff9800;
  border-radius: 50%;
  animation: pulse-badge 1.5s ease infinite;
  flex-shrink: 0;
}
.support-live-bar a { color: #0d6efd; text-decoration: none; }
.support-live-bar a:hover { text-decoration: underline; }

/* --- 지원사업 카드 보완 --- */
.support-card {
  transition: transform var(--transition), box-shadow var(--transition);
}
.support-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}
.support-amount {
  margin-left: auto;
  font-weight: 800;
  color: var(--primary-dark);
  font-size: 0.88rem;
  white-space: nowrap;
}
[data-theme="dark"] .support-amount { color: var(--primary); }

/* --- 뉴스 섹션 보완 --- */
.news-update-time {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-left: auto;
}
.news-curated-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: #f8f9fa;
  border-radius: var(--radius-sm);
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-bottom: 12px;
}
[data-theme="dark"] .news-curated-label { background: var(--bg-card); }

/* --- 내비게이션 모바일 드로어 다크모드 --- */
[data-theme="dark"] .main-nav {
  background: var(--bg-card) !important;
}
[data-theme="dark"] .nav-overlay { background: rgba(0,0,0,0.7); }

/* --- 모바일 헤더 actions 개선 --- */
@media screen and (max-width: 380px) {
  .header-actions { gap: 6px; }
  .dark-toggle { width: 42px; height: 22px; }
  .dark-toggle-thumb { width: 15px; height: 15px; font-size: 9px; }
  .dark-toggle input:checked + .dark-toggle-track .dark-toggle-thumb { transform: translateX(19px); }
}

/* --- 스크롤바 커스텀 (webkit) --- */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }

/* --- 포커스 접근성 --- */
:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
  border-radius: 3px;
}

/* --- 텍스트 선택 색상 --- */
::selection { background: var(--primary); color: white; }
[data-theme="dark"] ::selection { background: var(--primary-dark); color: white; }

