/*
 * 김성태 법무사 사무소 웹사이트 전체 스타일 시트
 * 모든 페이지의 공통 스타일 및 개별 페이지 스타일을 포함합니다.
 */

/* ----------------------------------------------------- */
/* 1. 기본 설정 (Reset & Common) */
/* ----------------------------------------------------- */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Noto Sans KR', sans-serif;
  background: #f8f9fa; /* 기본 배경색 */
  color: #222; /* 기본 텍스트 색상 */
  line-height: 1.6; /* 기본 줄 간격 */
}

a {
  text-decoration: none;
  color: inherit; /* 부모 요소의 텍스트 색상 상속 */
}

ul {
  list-style: none;
}

/* ----------------------------------------------------- */
/* 2. 공통 요소 (General Components) */
/* ----------------------------------------------------- */

/* 페이지 제목 및 소개 */
.page-title { /* h1 태그에 적용 */
  text-align: center;
  font-size: 2rem;
  color: #0a3871;
  margin-bottom: 1rem;
}

.page-intro { /* p 태그에 적용 */
  text-align: center;
  font-size: 1.1rem;
  color: #555;
  line-height: 1.6;
}

/* 카드 공통 스타일 */
.card-grid { /* 카드들을 감싸는 컨테이너 (display: grid) */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

.common-card { /* 개별 카드에 적용되는 공통 스타일 */
  background: #fff;
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  color: #444; /* 카드 내부 텍스트 색상 */
}

.common-card h3 { /* 카드 내부 제목 */
  font-size: 1.2rem;
  color: #0a3871;
  margin-top: 0;
  margin-bottom: 0.8rem; /* 제목과 내용 사이 간격 */
}

.common-card p { /* 카드 내부 문단 */
  font-size: 1rem;
  line-height: 1.6;
}

/* 상담 유도 박스 (Call to Action) */
.consultation-cta-box {
  background-color: #ffffff;
  padding: 2rem;
  margin-top: 3rem;
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  max-width: 600px; /* 상담 박스 최대 너비 */
  margin-left: auto; /* 중앙 정렬 */
  margin-right: auto; /* 중앙 정렬 */
}

.cta-title {
  font-size: 1.5rem;
  color: #0a3871;
  margin-bottom: 0.5rem;
}

.cta-description {
  font-size: 1.1rem;
  color: #555;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.cta-button {
  display: inline-block;
  margin-top: 1rem;
  background: #007bff;
  color: white;
  padding: 0.8rem 1.4rem;
  border-radius: 8px;
  text-decoration: none;
  font-size: 1.1rem;
  transition: background-color 0.3s ease;
}

.cta-button:hover {
  background: #0056b3;
}

/* 유틸리티 클래스 (General Utilities) */
.text-center {
  text-align: center;
}

.mb-2rem { /* margin-bottom: 2rem; */
  margin-bottom: 2rem;
}

.mt-3rem { /* margin-top: 3rem; */
  margin-top: 3rem;
}

/* ----------------------------------------------------- */
/* 3. 헤더 (Header) */
/* ----------------------------------------------------- */
header {
  background: #fff;
  border-bottom: 1px solid #ddd;
  box-shadow: 0 2px 4px rgba(0,0,0,0.03);
  padding: 1rem 2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  position: relative;
}

.logo {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-weight: 700;
  font-size: 1.2rem;
  color: #222;
  margin-right: auto; /* 좌측 정렬 */
}

.logo img {
  width: 28px;
  height: 28px;
}

nav {
  flex: none;
}

nav ul {
  list-style: none;
  display: flex;
  gap: 2rem;
  position: relative;
}

nav li {
  position: relative;
}

nav a {
  text-decoration: none;
  color: #333;
  font-weight: 500;
  padding: 0.5rem 0.3rem;
  display: inline-block;
  transition: color 0.3s ease;
}

nav a:hover {
  color: #007bff; /* 호버 시 색상 변경 */
}

/* 드롭다운 메뉴 */
nav li:hover > ul,
nav li:focus-within > ul,
nav li ul:hover {
  display: block;
}

nav li ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: #fff;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
  border: 1px solid #eee;
  border-radius: 6px;
  min-width: 180px;
  z-index: 999;
  padding: 0.5rem 0; /* 드롭다운 메뉴 내부 패딩 */
}

nav li ul li {
  padding: 0.6rem 1rem;
}

nav li ul li a {
  color: #333;
  font-weight: 400;
  display: block; /* 전체 영역 클릭 가능하도록 */
  padding: 0; /* 드롭다운 내부 링크 패딩 초기화 (li에서 패딩 조절) */
}

nav li ul li:hover {
  background: #f0f0f0;
}

/* ----------------------------------------------------- */
/* 4. 푸터 (Footer) */
/* ----------------------------------------------------- */
footer {
  background-color: #032035;
  color: #ccc;
  text-align: center;
  padding: 2.5rem 1rem;
  margin-top: 4rem; /* 본문과의 여백 */
}

.footer-content { /* 푸터 내부 컨테이너 (max-width 적용) */
  max-width: 1200px;
  margin: 0 auto;
}

.footer-logo-area {
  margin-bottom: 1.2rem;
}

.footer-logo-area img {
  width: 36px;
  vertical-align: middle;
  margin-right: 0.5rem;
}

.footer-office-name {
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
}

.footer-phone {
  margin-top: 0.6rem;
  font-size: 1.6rem;
  font-weight: 700;
  color: #fff;
}

.footer-phone a {
  color: #fff;
  text-decoration: none;
}

.footer-info {
  font-size: 0.95rem;
  line-height: 1.7;
  color: #ccc;
  margin-bottom: 1rem;
}

.footer-info strong {
  color: #eee;
}

.footer-info a {
  color: #bbb;
  text-decoration: underline;
}

.footer-copyright {
  font-size: 0.85rem;
  color: #888;
}

.footer-copyright span {
  color: #ddd;
  font-weight: 600;
}

/* ----------------------------------------------------- */
/* 5. 개별 페이지 섹션 스타일 (Specific Page Sections) */
/* ----------------------------------------------------- */

/* 5.1 자가진단 페이지 (check.html) */
.check-section {
  padding: 3rem 1rem;
  max-width: 800px;
  margin: 0 auto;
}

.check-form-group {
  margin-bottom: 1.5rem;
}

.check-form-group label {
  display: block;
  font-size: 1.1rem;
  color: #333;
  margin-bottom: 0.5rem;
  font-weight: 500;
}

.check-form-group input[type="radio"] {
  margin-right: 0.5rem;
}

.check-form-group input[type="radio"] + label {
  display: inline-block;
  font-weight: normal; /* 라디오 버튼 레이블 굵기 조정 */
}

.check-result-box {
  background-color: #e0f7fa; /* 연한 파란색 배경 */
  border: 1px solid #b2ebf2; /* 테두리 */
  border-radius: 8px;
  padding: 1.5rem;
  margin-top: 2rem;
  text-align: center;
}

.check-result-box p {
  font-size: 1.1rem;
  color: #00796b; /* 진한 초록색 계열 */
  font-weight: bold;
}

.check-submit-button {
  display: block;
  width: 100%;
  padding: 1rem;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 1.2rem;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin-top: 2rem;
}

.check-submit-button:hover {
  background-color: #0056b3;
}

/* 5.2 신고 vs 고소 페이지 (difference.html) */
.diff-section {
  padding: 3rem 1rem;
  max-width: 1000px; /* 전체 너비 조절 */
  margin: 0 auto;
}

.diff-intro-text { /* h1 아래 설명 문단 */
  text-align: center;
  font-size: 1.1rem;
  color: #555;
  margin-bottom: 2rem;
}

.diff-grid-container { /* 두 개의 카드 컨테이너 */
  display: grid;
  grid-template-columns: 1fr 1fr; /* 2열로 구성 */
  gap: 1.5rem;
}

.diff-card-title { /* 카드 내부 h2 */
  font-size: 1.5rem;
  color: #0a3871;
  margin-bottom: 1rem;
  text-align: center;
}

.diff-definition { /* 정의 문단 */
  font-size: 1rem;
  color: #333;
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

.diff-feature-list { /* 특징 리스트 */
  list-style: none;
  padding-left: 0;
  margin-top: 1rem;
}

.diff-feature-list li {
  font-size: 0.95rem;
  color: #555;
  margin-bottom: 0.5rem;
  line-height: 1.4;
  display: flex; /* 아이콘과 텍스트 정렬 */
  align-items: flex-start;
}

.diff-feature-list li strong {
  color: #0a3871;
  margin-right: 0.5rem;
  flex-shrink: 0; /* 아이콘/제목이 줄바꿈되지 않도록 */
}

/* 5.3 자주 묻는 질문 페이지 (faq.html) */
.faq-section { /* section 태그 스타일 대체 */
  padding: 3rem 1rem;
  max-width: 1000px; /* 적절한 최대 너비 설정 */
  margin: 0 auto;
}

/* .page-title, .page-intro 사용 */

.faq-card-grid { /* FAQ 카드들을 감싸는 그리드 */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  margin-top: 2rem;
}

.faq-card { /* 개별 FAQ 카드 */
  background: #fff;
  color: #444;
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.faq-question { /* FAQ 질문 h3 */
  color: #0a3871;
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}

.faq-answer { /* FAQ 답변 p */
  line-height: 1.6;
}

.faq-ordered-list { /* FAQ 답변 내부 ol */
  padding-left: 1.2rem;
  margin: 0;
  line-height: 1.6;
}

/* 5.4 개인회생 비용안내 페이지 (price.html) */
.price-section {
  padding: 3rem 1rem;
  max-width: 1000px; /* 적절한 최대 너비 설정 */
  margin: 0 auto;
}

.price-title { /* h1 스타일 대체 */
  text-align: center;
  font-size: 2rem;
  color: #0a3871;
  margin-bottom: 2rem;
}

.price-card-container { /* 카드 컨테이너 */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

.price-card { /* 개별 가격 카드 */
  background: #fff;
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.price-card h3 {
  font-size: 1.2rem;
  color: #0a3871;
  margin-top: 0;
  margin-bottom: 0.8rem;
}

.price-card p {
  color: #444;
  font-size: 1rem;
  line-height: 1.6;
  margin: 0.4rem 0;
}

.price-highlight {
  font-weight: bold;
  color: #d03a3a; /* 강조 색상 */
}

/* 5.5 개인회생 절차 안내 페이지 (procedure.html) */
.procedure-section {
  padding: 3rem 1rem;
  max-width: 1000px; /* 적절한 최대 너비 설정 */
  margin: 0 auto;
}

/* .page-title, .page-intro 사용 */

.section-divider { /* hr 스타일 대체 */
  border: 0;
  height: 1px;
  background: #ccc;
  margin: 2rem 0;
}

.procedure-heading2 { /* h2 스타일 대체 */
  font-size: 1.8rem;
  color: #0a3871;
  margin-bottom: 1.5rem;
}

/* .card-container와 .common-card는 이미 정의되어 있으므로 그대로 사용 가능 */

.change-list-box { /* 변화 섹션 ul */
  background: #ffffff;
  color: #444;
  padding: 1.5rem;
  border-radius: 12px;
  font-size: 1.1rem;
  line-height: 1.8;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  list-style: none;
  padding-left: 0;
  margin-top: 2rem; /* h2와의 간격 조정 */
}

.change-list-box li {
  margin-bottom: 0.5rem;
}

/* 5.6 개인회생/파산 제도 안내 페이지 (what-is.html) */
.info-section-container { /* 본문 전체를 감싸는 컨테이너 */
  padding: 0 1rem 2rem;
  max-width: 1000px; /* 적절한 최대 너비 설정 */
  margin: 0 auto;
}

.info-title { /* h1 스타일 대체 */
  text-align: center;
  font-size: 2rem;
  color: #0a3871;
  margin: 2rem 0;
}

.info-card-container { /* 카드 컨테이너 */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}

.info-card { /* 개별 정보 카드 */
  background-color: #ffffff;
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.info-card h2 {
  font-size: 1.2rem;
  color: #0a3871;
  margin-top: 0;
  margin-bottom: 0.8rem;
}

.info-card p {
  font-size: 1rem;
  color: #444;
  line-height: 1.6;
}
/* style.css (홈페이지 관련 스타일) */

/* 5.7 홈페이지 섹션 스타일 (index.html) */
.home-intro-section { /* 경력/비용 강조 섹션 */
  background: #f0f2f5;
  padding: 3rem 1.5rem;
}

.home-intro-container {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
}

.home-intro-card { /* 경력/비용 개별 카드 */
  background: white;
  padding: 2rem 1.5rem;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

.home-intro-card.career { /* 경력 카드 특정 스타일 */
  border-left: 6px solid #dc3545;
}

.home-intro-card.cost { /* 비용 카드 특정 스타일 */
  border-left: 6px solid #007bff;
}

.home-intro-card h2 {
  font-size: 1.8rem;
  margin-bottom: 0.8rem;
  font-weight: 700;
  /* color는 .career, .cost 클래스에서 재정의 */
}

.home-intro-card p {
  font-size: 1.05rem;
  color: #444;
  line-height: 1.6;
}

/* 고소장 안내 섹션 */
.home-complaint-section {
  padding: 3rem 1.5rem;
  background: #f8f9fc;
}

.home-rehabilitation-section { /* 개인회생/파산 안내 섹션 */
  padding: 3rem 1.5rem;
  background: #f8f9fc;
}

.home-section-container { /* 각 섹션 내부의 최대 너비 컨테이너 */
  max-width: 1200px;
  margin: 0 auto;
}

.home-section-title { /* 섹션 h2 제목 */
  font-size: 1.8rem;
  color: #0a3871;
  font-weight: 700;
  margin-bottom: 2rem;
}

.home-card-link-grid { /* 링크 카드들을 감싸는 그리드 */
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
}

.home-link-card { /* 섹션 내 개별 링크 카드 */
  background: white;
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.home-link-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 16px rgba(0,0,0,0.1);
}

.home-link-card h3 {
  color: #222;
  font-size: 1.1rem;
  margin-bottom: 0.5rem;
}

.home-link-card p {
  font-size: 0.95rem;
  color: #555;
}

.home-link-card .card-link { /* 카드 내 "자세히 보기" 등 링크 */
  display: inline-block;
  margin-top: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  transition: color 0.2s ease;
}

.home-link-card .card-link.red { /* 고소장 섹션 링크 색상 */
  color: #dc3545;
}

.home-link-card .card-link.green { /* 형사합의, 자가진단 링크 색상 */
  color: #28a745;
}

.home-link-card .card-link.blue { /* 신고 vs 고소, 개인회생 제도 링크 색상 */
  color: #007bff;
}

.home-link-card .card-link.gray { /* 절차 및 비용 링크 색상 */
  color: #6c757d;
}

/* 모바일 반응형 (Home Page Specific) */
@media (max-width: 768px) {
  .home-intro-section,
  .home-complaint-section,
  .home-rehabilitation-section {
    padding: 2rem 1rem; /* 모바일 패딩 조정 */
  }

  .home-intro-card h2,
  .home-section-title {
    font-size: 1.5rem; /* 모바일 제목 크기 조정 */
  }

  .home-intro-card p,
  .home-link-card p {
    font-size: 0.9rem; /* 모바일 본문 텍스트 크기 조정 */
  }
}

/* ----------------------------------------------------- */
/* 6. 모바일 반응형 (Media Queries) */
/* ----------------------------------------------------- */
@media (max-width: 768px) {
  header {
    flex-direction: column;
    align-items: flex-start;
  }

  nav {
    width: 100%;
    margin-top: 1rem;
  }

  nav ul {
    flex-direction: column;
    gap: 0.8rem;
  }

  nav li ul {
    position: static;
    box-shadow: none;
    border: none;
    padding-left: 1rem;
    background: transparent;
  }

  nav li ul li:hover {
    background: #f8f9fa; /* 모바일 드롭다운 호버 색상 */
  }

  /* 모바일에서 섹션 패딩 조정 */
  .check-section,
  .diff-section,
  .faq-section,
  .price-section,
  .procedure-section,
  .info-section-container {
    padding: 2rem 1rem; /* 모바일에서 좌우 패딩 유지하고 상하 패딩 줄임 */
  }

  /* 그리드 컬럼 조정 (선택 사항, minmax가 대부분 처리) */
  .card-grid,
  .diff-grid-container,
  .faq-card-grid,
  .price-card-container,
  .info-card-container {
    grid-template-columns: 1fr; /* 모바일에서 1열로 표시 */
    gap: 1rem; /* 간격 줄임 */
  }

  .page-title,
  .price-title,
  .info-title {
    font-size: 1.8rem; /* 모바일에서 제목 크기 줄임 */
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .page-intro,
  .diff-intro-text {
    font-size: 1rem; /* 모바일에서 소개 텍스트 크기 줄임 */
  }

  .procedure-heading2 {
    font-size: 1.5rem; /* 모바일에서 서브 제목 크기 줄임 */
  }

  .cta-title {
    font-size: 1.3rem;
  }

  .cta-description {
    font-size: 1rem;
  }

  .cta-button {
    font-size: 1rem;
    padding: 0.7rem 1.2rem;
  }

  .footer-office-name,
  .footer-phone {
    font-size: 1.2rem; /* 푸터 글꼴 크기 조정 */
  }
}
.self-check-container {
  max-width: 600px;
  margin: 3rem auto;
  padding: 2rem;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  font-family: 'Noto Sans KR', sans-serif;
}

.self-check-title {
  font-size: 1.8rem;
  color: #0a3871;
  margin-bottom: 1.5rem;
  text-align: center;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.form-group label {
  font-weight: 500;
  color: #333;
}

.form-group input,
.form-group select {
  padding: 0.6rem 1rem;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 8px;
}

.form-group button {
  padding: 0.8rem 1.2rem;
  font-size: 1.1rem;
  background: #007bff;
  color: white;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.form-group button:hover {
  background: #0056b3;
}

.result-link {
  display: inline-block;
  margin-top: 1rem;
  background: #0a3871;
  color: white;
  padding: 0.6rem 1rem;
  border-radius: 8px;
  text-decoration: none;
}

.result-link:hover {
  background: #062a58;
}

.grid-2cols {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 고정된 두 열 */
  gap: 2rem;
  max-width: 1100px;
  margin: 0 auto;
}

/* 표 공통 스타일 */
table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1.5rem;
  font-size: 0.95rem;
  background-color: #ffffff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
  border-radius: 8px;
  overflow: hidden;
}

thead {
  background-color: #0a3871;
  color: white;
}

th, td {
  padding: 1rem;
  text-align: center;
  border: 1px solid #ddd;
}

th {
  font-weight: 600;
}

tr:nth-child(even) {
  background-color: #f9f9f9;
}

caption {
  caption-side: top;
  text-align: left;
  font-weight: bold;
  font-size: 1.1rem;
  color: #0a3871;
  margin-bottom: 0.5rem;
}

