@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@500;700;900&family=IBM+Plex+Mono:wght@500;600&display=swap');

/* ============ 디자인 토큰 ============ */
:root{
  --ink:      #17293a;   /* 짙은 네이비 잉크 - 본문/헤드라인 */
  --ink-soft: #45596b;   /* 보조 텍스트 */
  --paper:    #f5f6f1;   /* 따뜻한 오프화이트 (크림 아님, 살짝 그린 언더톤) */
  --paper-2:  #ffffff;
  --pine:     #2f5d50;   /* 짙은 파인그린 - 브랜드 프라이머리 */
  --pine-dark:#213f37;
  --ochre:    #c9860f;   /* 따뜻한 오커골드 - 숫자/강조 */
  --ochre-soft:#f2e3c2;
  --card:     #ece6d3;   /* 카드 배경 */
  --line:     #d8d2bd;   /* 헤어라인 */
  --danger:   #a13d2c;

  --serif: 'Noto Serif KR', serif;
  --sans:  'Pretendard', -apple-system, BlinkMacSystemFont, 'Malgun Gothic', sans-serif;
  --mono:  'IBM Plex Mono', monospace;

  --radius: 14px;
  --max: 1080px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--serif); line-height:1.35; margin:0 0 .5em; letter-spacing:-0.01em; word-break:keep-all; overflow-wrap:break-word; }
p{ margin:0 0 1em; word-break:keep-all; overflow-wrap:break-word; }
.wrap{ max-width:var(--max); margin:0 auto; padding:0 24px; }

/* 접근성: 포커스 표시 */
a:focus-visible, button:focus-visible, input:focus-visible{
  outline:3px solid var(--ochre);
  outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* ============ 헤더 ============ */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(245,246,241,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:16px; padding-bottom:16px;
  gap:16px; flex-wrap:wrap;
}
.brand{
  font-family:var(--serif); font-weight:900; font-size:22px;
  color:var(--pine-dark); text-decoration:none;
  display:flex; align-items:center; gap:8px;
}
.brand .mark{
  width:30px; height:30px; border-radius:50%;
  background:var(--pine); color:var(--paper);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:16px; font-weight:900;
  flex-shrink:0;
}
nav.main-nav{ display:flex; gap:4px; flex-wrap:wrap; }
nav.main-nav a{
  text-decoration:none; font-size:16px; font-weight:600;
  color:var(--ink-soft); padding:8px 12px; border-radius:8px;
}
nav.main-nav a:hover, nav.main-nav a[aria-current="page"]{
  color:var(--pine-dark); background:var(--card);
}

/* ============ 히어로 ============ */
.hero{ padding:56px 0 24px; }
.hero .eyebrow{
  font-family:var(--mono); font-size:14px; letter-spacing:.12em;
  color:var(--pine); font-weight:600; margin-bottom:14px;
}
.hero h1{
  font-size:clamp(32px, 5vw, 52px); color:var(--ink);
}
.hero h1.short{ max-width:16ch; }
.hero h1 .accent{ color:var(--ochre); }
.hero .lede{
  font-size:19px; color:var(--ink-soft); max-width:52ch; margin-bottom:0;
}

/* ============ 계산기 (시그니처 요소) ============ */
.calc{
  margin:36px 0 8px;
  background:var(--paper-2);
  border:1px solid var(--line);
  border-radius:20px;
  padding:28px;
  box-shadow: 0 18px 40px -28px rgba(23,41,58,0.35);
}
.calc-title{
  font-family:var(--serif); font-weight:700; font-size:22px;
  margin-bottom:4px;
}
.calc-sub{ color:var(--ink-soft); font-size:15px; margin-bottom:20px; }
.calc-row{ margin-bottom:18px; }
.calc-label{ display:block; font-weight:700; font-size:15px; margin-bottom:8px; }
.seg{ display:inline-flex; background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:4px; }
.seg button{
  border:none; background:transparent; padding:10px 20px; font-size:16px;
  font-weight:700; border-radius:7px; cursor:pointer; color:var(--ink-soft);
  font-family:var(--sans);
}
.seg button[aria-pressed="true"]{ background:var(--pine); color:#fff; }
.calc input[type="range"]{ width:100%; accent-color:var(--pine); }
.calc-amount{
  font-family:var(--mono); font-size:26px; font-weight:600; color:var(--pine-dark);
  margin-top:8px;
}
.calc-result{
  margin-top:20px; padding:18px 20px; border-radius:12px;
  font-weight:700; font-size:17px; display:flex; gap:12px; align-items:flex-start;
}
.calc-result.pass{ background:#e7efe6; color:var(--pine-dark); border:1px solid #bcd3bd; }
.calc-result.fail{ background:#f6ece7; color:var(--danger); border:1px solid #e3c6ba; }
.calc-result .num{ font-family:var(--mono); }
.calc-note{ font-size:13px; color:var(--ink-soft); margin-top:14px; }

/* ============ 버튼 ============ */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--pine); color:#fff; text-decoration:none;
  padding:13px 22px; border-radius:10px; font-weight:700; font-size:16px;
  border:none; cursor:pointer; font-family:var(--sans);
}
.btn:hover{ background:var(--pine-dark); }
.btn.outline{
  background:transparent; color:var(--pine-dark); border:1.5px solid var(--pine);
}

/* ============ 섹션 공통 ============ */
section{ padding:52px 0; }
.section-head{ margin-bottom:32px; }
.section-head .eyebrow{
  font-family:var(--mono); font-size:13px; letter-spacing:.12em;
  color:var(--pine); font-weight:600; margin-bottom:10px;
}
.section-head h2{ font-size:clamp(24px,3vw,32px); }

/* 숫자 카드 (2026년 변경사항) */
.stat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.stat-card{
  background:var(--card); border-radius:16px; padding:24px;
  border:1px solid var(--line);
}
.stat-card .num{
  font-family:var(--mono); font-size:30px; font-weight:600; color:var(--ochre);
  display:block; margin-bottom:8px;
}
.stat-card .label{ font-weight:700; margin-bottom:4px; }
.stat-card .desc{ font-size:15px; color:var(--ink-soft); margin:0; }

/* 카테고리 카드 그리드 */
.card-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(210px,1fr)); gap:16px; }
.cat-card{
  display:block; text-decoration:none; color:var(--ink);
  background:var(--paper-2); border:1px solid var(--line); border-radius:16px;
  padding:24px; transition:transform .15s ease, box-shadow .15s ease;
}
.cat-card:hover{ transform:translateY(-3px); box-shadow:0 14px 30px -22px rgba(23,41,58,0.4); }
.cat-card .idx{ font-family:var(--mono); color:var(--pine); font-size:13px; margin-bottom:10px; display:block;}
.cat-card h3{ font-size:19px; margin-bottom:6px; }
.cat-card p{ font-size:15px; color:var(--ink-soft); margin:0; }

/* 상담사 신뢰 섹션 */
.trust{
  background:var(--pine-dark); color:var(--paper);
  border-radius:24px; padding:44px;
  display:grid; grid-template-columns:1.2fr 1fr; gap:32px; align-items:center;
}
.trust h2{ color:#fff; font-size:26px; }
.trust p{ color:#d8e2dd; }
.trust .quote{
  font-family:var(--serif); font-size:20px; font-style:italic; color:#fff;
  border-left:3px solid var(--ochre); padding-left:18px;
}

/* 본문 페이지 공통 */
.content-page article{ max-width:72ch; }
.content-page h2{ font-size:26px; margin-top:2em; }
.content-page h3{ font-size:20px; margin-top:1.6em; }
.table-scroll{ overflow-x:auto; margin:20px 0; -webkit-overflow-scrolling:touch; }
.content-page table{ width:100%; min-width:420px; border-collapse:collapse; margin:0; font-size:16px; }
.content-page th, .content-page td{
  text-align:left; padding:12px 14px; border-bottom:1px solid var(--line);
}
.content-page th{ background:var(--card); font-family:var(--sans); }
.content-page td.num, .content-page th.num{ font-family:var(--mono); }
.callout{
  background:var(--ochre-soft); border-left:4px solid var(--ochre);
  padding:18px 22px; border-radius:0 12px 12px 0; margin:24px 0;
}
.callout strong{ display:block; margin-bottom:4px; }

.formula{
  background:var(--ink); color:#eef2ef; font-family:var(--mono);
  padding:18px 20px; border-radius:12px; margin:18px 0; font-size:15px;
  line-height:1.8; overflow-x:auto;
}
.formula .op{ color:var(--ochre); }

.example{
  border:1px solid var(--line); border-radius:12px; padding:18px 20px; margin:18px 0;
  background:var(--paper-2);
}
.example .ex-label{
  font-family:var(--mono); font-size:12px; letter-spacing:.08em; color:var(--pine);
  font-weight:700; margin-bottom:8px; display:block;
}
.example ol{ margin:8px 0 0; padding-left:20px; }
.example li{ margin-bottom:6px; }
.example .result{ font-weight:700; color:var(--pine-dark); }
.steps{ list-style:none; margin:0; padding:0; counter-reset:step; }
.steps li{
  counter-increment:step; position:relative; padding:0 0 0 52px; margin-bottom:28px;
}
.steps li::before{
  content:counter(step); position:absolute; left:0; top:0;
  width:36px; height:36px; border-radius:50%; background:var(--pine); color:#fff;
  font-family:var(--mono); font-weight:600; display:flex; align-items:center; justify-content:center;
}
.steps h3{ margin-top:0; }

/* FAQ */
.faq-item{ border-bottom:1px solid var(--line); }
.faq-item summary{
  cursor:pointer; font-weight:700; font-size:17px; padding:20px 4px;
  list-style:none; display:flex; justify-content:space-between; gap:16px;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{ content:'+'; font-family:var(--mono); color:var(--pine); font-size:22px; }
.faq-item[open] summary::after{ content:'–'; }
.faq-item .a{ padding:0 4px 22px; color:var(--ink-soft); }

/* 푸터 */
footer.site-footer{
  border-top:1px solid var(--line); margin-top:40px; padding:40px 0;
}
footer.site-footer .disclaimer{
  font-size:13.5px; color:var(--ink-soft); line-height:1.6;
  background:var(--card); padding:18px 20px; border-radius:12px; margin-bottom:20px;
}
footer.site-footer nav{ display:flex; gap:18px; flex-wrap:wrap; font-size:14px; margin-bottom:12px; }
footer.site-footer nav a{ text-decoration:none; color:var(--ink-soft); }
footer.site-footer .copy{ font-size:13px; color:var(--ink-soft); }

/* 반응형 */
@media (max-width: 860px){
  .stat-grid{ grid-template-columns:1fr; }
  .card-grid{ grid-template-columns:1fr 1fr; }
  .trust{ grid-template-columns:1fr; padding:28px; }
  nav.main-nav{ gap:0; }
}
@media (max-width: 560px){
  body{ font-size:17px; }
  .card-grid{ grid-template-columns:1fr; }
  .calc{ padding:20px; }
  .trust{ padding:22px; }
}

/* ============ 광고 슬롯 ============ */
.ad-slot{ margin:36px 0; }
.ad-slot-label{
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--ink-soft);
  text-align:center; margin-bottom:6px;
}
.ad-slot-placeholder{
  min-height:100px; display:flex; align-items:center; justify-content:center;
  border:1.5px dashed var(--line); border-radius:12px;
  color:var(--ink-soft); font-size:13px; background:var(--paper-2);
}

/* ============ 게시판 ============ */
.post-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.post-row{
  display:flex; align-items:baseline; gap:14px;
  padding:18px 4px; border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink);
}
.post-row:hover .post-row-title{ color:var(--pine-dark); }
.post-row .cat-tag{
  font-family:var(--mono); font-size:12px; color:var(--pine); background:var(--card);
  padding:3px 8px; border-radius:6px; flex-shrink:0;
}
.post-row-title{ font-weight:700; flex:1; }
.post-row-meta{ font-size:13px; color:var(--ink-soft); font-family:var(--mono); flex-shrink:0; }

.pagination{ display:flex; gap:6px; justify-content:center; margin:32px 0; flex-wrap:wrap; }
.pagination a, .pagination span{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:36px; height:36px; border-radius:8px; text-decoration:none;
  font-family:var(--mono); font-size:14px; color:var(--ink-soft); border:1px solid var(--line);
}
.pagination a:hover{ background:var(--card); }
.pagination .current{ background:var(--pine); color:#fff; border-color:var(--pine); }

.post-view-head{ border-bottom:1px solid var(--line); padding-bottom:20px; margin-bottom:24px; }
.post-view-meta{ font-size:14px; color:var(--ink-soft); font-family:var(--mono); }
.post-view-body{ white-space:pre-line; line-height:1.9; font-size:17px; }

.form-row{ margin-bottom:18px; }
.form-row label{ display:block; font-weight:700; margin-bottom:8px; }
.form-row input[type="text"],
.form-row input[type="password"],
.form-row select,
.form-row textarea{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:10px;
  font-family:var(--sans); font-size:16px; background:var(--paper-2); color:var(--ink);
}
.form-row textarea{ min-height:220px; resize:vertical; line-height:1.7; }
.form-error{
  background:#f6ece7; color:var(--danger); border:1px solid #e3c6ba;
  padding:12px 16px; border-radius:10px; margin-bottom:18px; font-size:14px;
}
