
:root{
  --brand-blue: #0d6efd; /* 상단바 파란색 */
  --brand-sky: #a7d8ff;  /* 하단바 하늘색 */
  --text-primary: #03396c;
  --bg-soft: #e6f0ff; /* part5와 유사 배경 */
}

/* 공통 레이아웃/색상 */
body{
  color: var(--text-primary);
  background-color: var(--bg-soft);
}

/* 네비게이션 바: main.html 테마 기반으로 강제 통일 */
.navbar, header.navbar{
  background-color: var(--brand-blue) !important;
}
.navbar .nav-link, .navbar-brand, .navbar .navbar-nav .nav-link{
  color: #fff !important;
}
.navbar .nav-link.active, .navbar .nav-link:focus, .navbar .nav-link:hover{
  opacity: .9;
}

/* 푸터 */
.site-footer{
  background-color: var(--brand-sky);
  color: #03396c;
}

/* 섹션 카드 스타일 (part5와 유사하게 깔끔한 느낌) */
.card, .panel, .box{
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.06);
}

.container-narrow{
  max-width: 960px;
  margin: 0 auto;
}

/* 간격 시스템 */
.section{ padding: 24px 0; }


/* ====== Global Fixes (2025-09-07) ====== */
:root{
  --gfix-header-height: 64px;
  --gfix-subnav-height: 48px;
}

/* 제목이 고정바에 가려지지 않게 오프셋 */
h1, h2, h3 { scroll-margin-top: calc(var(--gfix-header-height) + 12px); }

/* 부동산 임장 하위바(공통 subnav 클래스 사용) 고정 & 줄바꿈 */
.subnav{
  position: sticky !important;
  top: var(--gfix-header-height) !important;
  z-index: 1040;
  background: #f1f5f9;
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.subnav .nav{ display: flex; flex-wrap: wrap; gap: 6px; }
.subnav .nav .nav-link{ background: #fff; border-radius: 10px; padding: 6px 10px; }
.subnav .nav .nav-link:hover{ background: #e8f0ff; }
.subnav .nav .nav-link.active{ background: #e0edff; font-weight: 700; }

/* 상단 네비게이션 항목도 줄바꿈 허용 */
.navbar-nav{ flex-wrap: wrap; }

/* 작은 화면에서 서브바 패딩/정렬 */
@media (max-width: 768px){
  .subnav .container, .subnav .container-fluid{ padding-left: 10px; padding-right: 10px; }
  .subnav .nav{ gap: 4px; }
}

/* 본문 기본 여백 보정: 기존 margin-top이 과하면 줄여 균형 */
main{ margin-top: max(80px, 12vh); }


/* ===== Minimal Safe Fixes (2025-09-07) ===== */
:root{ --gfix-header-height: 64px; }
h1, h2, h3 { scroll-margin-top: calc(var(--gfix-header-height) + 12px); }
.navbar-nav { flex-wrap: wrap; }
.subnav { position: sticky; top: var(--gfix-header-height); z-index: 1040; background: #f1f5f9; }
.subnav .nav { display:flex; flex-wrap:wrap; gap:6px; }
.subnav .nav .nav-link { background:#fff; border-radius:10px; padding:6px 10px; }


/* ===== GLOBAL TYPOGRAPHY OVERRIDE (统一) ===== */
:root {
  --font-main: 'Noto Sans KR', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* 모든 텍스트 기본 폰트 통일 */
body, h1, h2, h3, h4, h5, h6,
.navbar-brand, .nav-link,
.btn, .form-control, .card-title, .card-body, .lead,
.table, .table th, .table td,
label, input, textarea, select {
  font-family: var(--font-main) !important;
}

/* 페이지 메인 타이틀 통일 */
h1, .page-title {
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: var(--text-primary, #03396c) !important;
  margin-bottom: 0.75rem !important;
}

/* 섹션 제목 통일 */
h2, .section-title {
  font-size: 1.4rem !important;
  font-weight: 600 !important;
  color: var(--text-primary, #03396c) !important;
  margin-bottom: 0.5rem !important;
}

/* 카드/박스 제목 통일 */
.card-title {
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  margin-bottom: 0.5rem !important;
}

/* 본문 텍스트 통일 */
p, li {
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
}


/* ===== Home page layout & Kakao ad placeholders ===== */
.home-hero {
  background: linear-gradient(135deg, #e6f0ff, #ffffff);
  border-radius: 1.25rem;
  padding: 2rem 1.75rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.04);
}

.home-hero-lead {
  margin-top: 0.5rem;
  margin-bottom: 1.25rem;
}

.home-hero-actions .btn {
  min-width: 180px;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
}

.feature-card {
  background-color: #ffffff;
  border-radius: 1rem;
  padding: 1.25rem 1.25rem 1rem;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.03);
  border: 1px solid rgba(3, 57, 108, 0.06);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.feature-title {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.feature-desc {
  font-size: 0.9rem;
  margin-bottom: 0.75rem;
  color: #4a4a4a;
}

.ad-banner {
  background-color: #f9fafc;
  border-radius: 0.75rem;
  border: 1px dashed rgba(3, 57, 108, 0.25);
  padding: 1rem;
  text-align: center;
}

.ad-placeholder {
  font-size: 0.85rem;
  color: #6c757d;
}

/* 반응형 여백 */
@media (min-width: 992px) {
  .home-hero {
    padding: 2.5rem 2.25rem;
  }
}

