/*
Theme Name: 데일리 웰니스 저널
Theme URI: https://bioday.dailyvitalist.com/
Description: 낙산균과 장 건강 정보를 사실 기반으로 기록하는 데일리 웰니스 저널 전용 테마. 페일 옐로, 차콜, 초록의 비대칭 벤토 레이아웃과 저널 날짜 표식, 주제 인덱스를 갖춘 고유 디자인 시스템.
Author: 워프대디
Version: 1.0.0
Text Domain: dv-bioday-journal
*/

/* ============================================================
   데일리 웰니스 저널 — 디자인 시스템 (dv-bioday-journal)
   팔레트: 페일 옐로 / 차콜 / 초록  ·  8pt 간격 스케일
   ============================================================ */
:root{
  --dv-bg:#fbf6e9;            /* 페일 옐로 배경 */
  --dv-bg-soft:#f5ecd2;       /* 살짝 진한 페일 옐로 */
  --dv-paper:#fffdf6;         /* 카드/종이 */
  --dv-ink:#26261f;           /* 차콜 본문 */
  --dv-ink-soft:#55554b;      /* 보조 텍스트 */
  --dv-line:#e4dcc2;          /* 보더 */
  --dv-green:#356b46;         /* 메인 초록 */
  --dv-green-deep:#264f34;    /* 진한 초록 */
  --dv-green-soft:#eaf1e8;    /* 연한 초록 배경 */
  --dv-accent:#c9a227;        /* 머스터드 액센트(선/포인트) */
  --dv-danger:#8a5a2b;

  --dv-r-s:8px; --dv-r-m:14px; --dv-r-l:22px;
  --dv-sp-1:8px; --dv-sp-2:16px; --dv-sp-3:24px; --dv-sp-4:32px;
  --dv-sp-6:48px; --dv-sp-8:64px; --dv-sp-10:80px; --dv-sp-14:112px;
  --dv-shadow:0 1px 2px rgba(38,38,31,.04),0 8px 28px rgba(38,38,31,.06);
  --dv-shadow-lg:0 12px 44px rgba(38,38,31,.12);
  --dv-maxw:1160px; --dv-readw:760px;
  --dv-serif:"Noto Serif KR",serif;
  --dv-sans:"Pretendard","Pretendard Variable",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--dv-bg);color:var(--dv-ink);
  font-family:var(--dv-sans);font-size:17px;line-height:1.75;
  -webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 0;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--dv-green);text-decoration:none}
a:hover{color:var(--dv-green-deep);text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--dv-green);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--dv-serif);color:var(--dv-ink);line-height:1.35;letter-spacing:-.01em;font-weight:700}
.dv-wrap{max-width:var(--dv-maxw);margin:0 auto;padding:0 24px}

/* ---------- 헤더 ---------- */
.dv-header{position:sticky;top:0;z-index:50;background:rgba(251,246,233,.9);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--dv-line)}
.dv-header-in{display:flex;align-items:center;gap:20px;height:72px}
.dv-brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.dv-logo{width:40px;height:40px;border-radius:11px;flex-shrink:0}
.dv-brand-t{display:flex;flex-direction:column;line-height:1.15}
.dv-brand-name{font-family:var(--dv-serif);font-weight:700;font-size:18px;color:var(--dv-ink)}
.dv-brand-sub{font-size:11px;letter-spacing:.14em;color:var(--dv-green);text-transform:uppercase}
.dv-nav{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap}
.dv-nav a{color:var(--dv-ink-soft);font-size:15px;font-weight:500;padding:8px 12px;border-radius:8px}
.dv-nav a:hover{background:var(--dv-green-soft);color:var(--dv-green-deep);text-decoration:none}
.dv-search-btn,.dv-menu-btn{display:none;background:none;border:1px solid var(--dv-line);border-radius:9px;width:44px;height:44px;cursor:pointer;color:var(--dv-ink)}
.dv-searchbox{display:flex;align-items:center;gap:8px;border:1px solid var(--dv-line);background:var(--dv-paper);border-radius:999px;padding:6px 8px 6px 14px}
.dv-searchbox input{border:0;background:transparent;font-size:14px;color:var(--dv-ink);width:120px;font-family:inherit}
.dv-searchbox input:focus{outline:none}
.dv-searchbox button{border:0;background:var(--dv-green);color:#fff;border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer;font-family:inherit}

/* ---------- 공통 섹션/타이틀 ---------- */
.dv-section{padding:var(--dv-sp-10) 0}
.dv-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--dv-green);font-weight:700}
.dv-eyebrow::before{content:"";width:26px;height:2px;background:var(--dv-accent);display:inline-block}
.dv-h2{font-size:clamp(26px,3.4vw,38px);margin:14px 0 10px}
.dv-lead{color:var(--dv-ink-soft);max-width:640px;font-size:17px}

/* ---------- 히어로 ---------- */
.dv-hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#fdfaf0,var(--dv-bg))}
.dv-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:var(--dv-sp-14) 0 var(--dv-sp-10)}
.dv-hero h1{font-size:clamp(34px,5.2vw,58px);line-height:1.16;margin:16px 0 20px}
.dv-hero p{font-size:18px;color:var(--dv-ink-soft);max-width:520px}
.dv-hero-cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.dv-datemark{display:inline-flex;align-items:center;gap:10px;font-family:var(--dv-serif);color:var(--dv-green-deep);border:1px solid var(--dv-line);background:var(--dv-paper);padding:6px 14px;border-radius:999px;font-size:13px}
.dv-datemark b{color:var(--dv-accent)}
.dv-hero-visual{position:relative}
.dv-hero-visual .dv-ph{border-radius:var(--dv-r-l);box-shadow:var(--dv-shadow-lg);aspect-ratio:4/5;object-fit:cover;width:100%}
.dv-hero-chip{position:absolute;left:-18px;bottom:26px;background:var(--dv-paper);border:1px solid var(--dv-line);border-radius:var(--dv-r-m);box-shadow:var(--dv-shadow);padding:14px 18px;max-width:220px}
.dv-hero-chip span{font-size:12px;color:var(--dv-green);letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.dv-hero-chip p{font-size:14px;color:var(--dv-ink);margin:6px 0 0}

/* ---------- 버튼 ---------- */
.dv-btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;padding:13px 24px;border-radius:999px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;min-height:44px;cursor:pointer;border:1px solid transparent}
.dv-btn-primary{background:var(--dv-green);color:#fff}
.dv-btn-primary:hover{background:var(--dv-green-deep);color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:var(--dv-shadow)}
.dv-btn-ghost{background:transparent;color:var(--dv-green-deep);border-color:var(--dv-green)}
.dv-btn-ghost:hover{background:var(--dv-green-soft);text-decoration:none}

/* ---------- 벤토 그리드(비대칭) ---------- */
.dv-bento{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}
.dv-card{background:var(--dv-paper);border:1px solid var(--dv-line);border-radius:var(--dv-r-l);overflow:hidden;box-shadow:var(--dv-shadow);transition:transform .2s ease,box-shadow .2s ease;display:flex;flex-direction:column}
.dv-card:hover{transform:translateY(-3px);box-shadow:var(--dv-shadow-lg)}
.dv-card a.dv-card-link{color:inherit;text-decoration:none;display:flex;flex-direction:column;height:100%}
.dv-card .dv-thumb{aspect-ratio:16/10;object-fit:cover;width:100%;background:var(--dv-bg-soft)}
.dv-card-body{padding:20px 22px 24px;display:flex;flex-direction:column;gap:8px;flex:1}
.dv-card-cat{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--dv-green);font-weight:700}
.dv-card h3{font-size:20px;margin:2px 0}
.dv-card p{color:var(--dv-ink-soft);font-size:14.5px;margin:0}
.dv-card-meta{margin-top:auto;padding-top:12px;font-size:12.5px;color:var(--dv-ink-soft);display:flex;gap:10px;align-items:center;border-top:1px dashed var(--dv-line)}
.dv-span-3{grid-column:span 3}.dv-span-2{grid-column:span 2}.dv-span-4{grid-column:span 4}.dv-span-6{grid-column:span 6}
.dv-card-feature .dv-thumb{aspect-ratio:16/9}
.dv-card-feature h3{font-size:26px}

/* ---------- 주제 인덱스 ---------- */
.dv-index{background:var(--dv-bg-soft)}
.dv-index-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:28px}
.dv-index-item{display:flex;align-items:center;gap:12px;background:var(--dv-paper);border:1px solid var(--dv-line);border-radius:var(--dv-r-m);padding:14px 16px;color:var(--dv-ink);font-weight:500}
.dv-index-item:hover{border-color:var(--dv-green);background:var(--dv-green-soft);text-decoration:none;color:var(--dv-green-deep)}
.dv-index-no{font-family:var(--dv-serif);color:var(--dv-accent);font-size:13px;min-width:26px}

/* ---------- 기록 예시 체크시트 모듈 ---------- */
.dv-note{background:var(--dv-paper);border:1px solid var(--dv-line);border-radius:var(--dv-r-l);padding:26px 28px;box-shadow:var(--dv-shadow)}
.dv-note-tag{display:inline-block;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dv-danger);background:#f6ecd9;border:1px solid #e7d4ad;border-radius:999px;padding:4px 12px;font-weight:700}
.dv-check{list-style:none;padding:0;margin:16px 0 0;display:grid;gap:10px}
.dv-check li{display:flex;align-items:center;gap:12px;color:var(--dv-ink-soft);font-size:15px}
.dv-check li::before{content:"";width:20px;height:20px;border:2px solid var(--dv-green);border-radius:6px;flex-shrink:0;background:transparent}
.dv-note small{display:block;margin-top:16px;color:var(--dv-ink-soft);font-size:12.5px}

/* ---------- 본문(글/페이지) ---------- */
.dv-single{padding:var(--dv-sp-8) 0 var(--dv-sp-10)}
.dv-article-head{max-width:var(--dv-readw);margin:0 auto var(--dv-sp-4)}
.dv-crumbs{font-size:13px;color:var(--dv-ink-soft);margin-bottom:16px}
.dv-crumbs a{color:var(--dv-green)}
.dv-article-head h1{font-size:clamp(28px,4vw,42px);line-height:1.25;margin:8px 0 14px}
.dv-article-meta{display:flex;gap:14px;align-items:center;font-size:13.5px;color:var(--dv-ink-soft);flex-wrap:wrap}
.dv-article-hero{max-width:var(--dv-maxw);margin:0 auto var(--dv-sp-6)}
.dv-article-hero img{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:var(--dv-r-l);box-shadow:var(--dv-shadow)}
.dv-content{max-width:var(--dv-readw);margin:0 auto}
.dv-content p{margin:0 0 1.25em;color:#33332b}
.dv-content h2{font-size:26px;margin:2em 0 .6em;padding-top:.4em;border-top:2px solid var(--dv-line)}
.dv-content h2:first-of-type{border-top:0;padding-top:0}
.dv-content h3{font-size:20px;color:var(--dv-green-deep);margin:1.6em 0 .5em}
.dv-content img{border-radius:var(--dv-r-m);margin:1.6em auto;box-shadow:var(--dv-shadow)}
.dv-content ul,.dv-content ol{margin:0 0 1.4em;padding-left:1.3em}
.dv-content li{margin:.4em 0}
.dv-content figure{margin:1.6em 0}
.dv-content figcaption{font-size:13px;color:var(--dv-ink-soft);text-align:center;margin-top:8px}
.dv-content a{text-decoration:underline;text-underline-offset:3px}
blockquote.dv-callout{margin:1.8em 0;background:var(--dv-green-soft);border-left:4px solid var(--dv-green);border-radius:0 var(--dv-r-m) var(--dv-r-m) 0;padding:18px 22px;color:var(--dv-green-deep)}
blockquote.dv-callout p{margin:0;color:var(--dv-green-deep)}
.dv-content table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:14.5px;background:var(--dv-paper);border:1px solid var(--dv-line);border-radius:var(--dv-r-m);overflow:hidden}
.dv-content th{background:var(--dv-green);color:#fff;text-align:left;padding:12px 14px;font-family:var(--dv-sans);font-weight:600;font-size:14px}
.dv-content td{padding:11px 14px;border-top:1px solid var(--dv-line);vertical-align:top}
.dv-content tr:nth-child(even) td{background:#fdfbf3}
.dv-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* 인라인 CSS 바 차트 */
.dv-bars{margin:1.6em 0;display:grid;gap:12px}
.dv-bar{display:grid;grid-template-columns:130px 1fr;gap:12px;align-items:center;font-size:14px}
.dv-bar-track{background:var(--dv-bg-soft);border-radius:999px;height:20px;overflow:hidden;border:1px solid var(--dv-line)}
.dv-bar-fill{height:100%;background:linear-gradient(90deg,var(--dv-green),var(--dv-green-deep));border-radius:999px}
.dv-bar-label{color:var(--dv-ink-soft)}

/* 목차(ez-toc 오버라이드 + 자체) */
#ez-toc-container,.dv-toc{background:var(--dv-paper)!important;border:1px solid var(--dv-line)!important;border-radius:var(--dv-r-m)!important;box-shadow:var(--dv-shadow);max-width:var(--dv-readw);margin:0 auto 2em}
.dv-toc{padding:18px 22px}
.dv-toc b{font-family:var(--dv-serif);color:var(--dv-green-deep)}
.dv-toc ol{margin:10px 0 0;padding-left:1.2em}
.dv-toc a{color:var(--dv-ink-soft)}

/* 요약 박스 */
.dv-summary{max-width:var(--dv-readw);margin:0 auto 2em;background:var(--dv-green-soft);border:1px solid #cfe0cd;border-radius:var(--dv-r-m);padding:20px 24px}
.dv-summary b{color:var(--dv-green-deep);font-family:var(--dv-serif)}
.dv-summary ul{margin:10px 0 0;padding-left:1.2em}
.dv-summary li{margin:.3em 0;color:#3a4a3a}

/* Q&A(GEO) */
.dv-qa{max-width:var(--dv-readw);margin:2em auto}
.dv-qa dt{font-weight:700;color:var(--dv-green-deep);margin-top:1em;font-family:var(--dv-serif)}
.dv-qa dd{margin:.4em 0 0;color:var(--dv-ink-soft)}

/* 관련글 */
.dv-related{background:var(--dv-bg-soft);padding:var(--dv-sp-8) 0}
.dv-related .dv-bento{grid-template-columns:repeat(3,1fr)}
.dv-related .dv-span-3,.dv-related .dv-span-2,.dv-related .dv-span-4{grid-column:auto}

/* 고지 */
.legal-notice,.ai-notice{max-width:var(--dv-readw);margin-left:auto;margin-right:auto}

/* ---------- 푸터 ---------- */
.dv-footer{background:var(--dv-green-deep);color:#e9efe6;padding:var(--dv-sp-10) 0 var(--dv-sp-4);margin-top:var(--dv-sp-8)}
.dv-footer a{color:#cfe0cd}
.dv-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.dv-footer h4{color:#fff;font-size:15px;margin:0 0 14px;font-family:var(--dv-sans);letter-spacing:.02em}
.dv-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:9px;font-size:14px}
.dv-footer .dv-brand-name{color:#fff}
.dv-footer .dv-brand-sub{color:#a9c6ac}
.dv-foot-note{border-top:1px solid rgba(255,255,255,.14);margin-top:var(--dv-sp-6);padding-top:var(--dv-sp-3);font-size:12.5px;line-height:1.7;color:#bcd0ba}
.dv-copy{margin-top:16px;font-size:13px;color:#9fbba3}

/* ---------- 모바일 ---------- */
@media (max-width:960px){
  .dv-hero-grid{grid-template-columns:1fr;gap:36px;padding:var(--dv-sp-10) 0 var(--dv-sp-8)}
  .dv-hero-visual{max-width:420px}
  .dv-bento{grid-template-columns:repeat(2,1fr)}
  .dv-span-3,.dv-span-2,.dv-span-4,.dv-span-6{grid-column:span 2}
  .dv-related .dv-bento{grid-template-columns:1fr 1fr}
  .dv-footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  body{font-size:16px}
  .dv-nav,.dv-searchbox{display:none}
  .dv-nav.open{display:flex;position:absolute;top:72px;left:0;right:0;flex-direction:column;background:var(--dv-bg);border-bottom:1px solid var(--dv-line);padding:12px 24px;gap:4px}
  .dv-nav.open a{padding:12px}
  .dv-search-btn,.dv-menu-btn{display:inline-flex;align-items:center;justify-content:center}
  .dv-menu-btn{margin-left:auto}
  .dv-bento,.dv-related .dv-bento{grid-template-columns:1fr}
  .dv-span-3,.dv-span-2,.dv-span-4,.dv-span-6{grid-column:span 1}
  .dv-footer-grid{grid-template-columns:1fr}
  .dv-section{padding:var(--dv-sp-8) 0}
  .dv-bar{grid-template-columns:96px 1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ============================================================
   기사 본문 컴포넌트 보강 — dv-bioday-journal 기사 HTML 전용
   (엔진 산출 클래스: dv-lead/dv-fig/dv-chart/dv-faq/dv-list/dv-steps/dv-sources 등)
   ============================================================ */
.dv-content{max-width:var(--dv-readw);margin:0 auto;font-family:var(--dv-sans);color:var(--dv-ink);font-size:17px;line-height:1.8}
.dv-content>h2{font-family:var(--dv-serif);font-size:26px;line-height:1.35;color:var(--dv-green-deep);margin:var(--dv-sp-8) 0 var(--dv-sp-3);padding-left:14px;border-left:5px solid var(--dv-green);scroll-margin-top:90px}
.dv-content p{margin:0 0 var(--dv-sp-3)}
.dv-lead{font-size:19px;line-height:1.85;color:var(--dv-ink);background:var(--dv-green-soft);border-radius:var(--dv-r-m);padding:var(--dv-sp-3) var(--dv-sp-3);margin:0 0 var(--dv-sp-4);border:1px solid #dbe6d7}

/* 목차 */
.dv-toc{background:var(--dv-paper);border:1px solid var(--dv-line);border-radius:var(--dv-r-m);padding:var(--dv-sp-3);margin:0 0 var(--dv-sp-4);box-shadow:var(--dv-shadow)}
.dv-toc-h{font-family:var(--dv-serif);font-weight:600;margin:0 0 var(--dv-sp-1);color:var(--dv-green-deep)}
.dv-toc ol{margin:0;padding-left:20px}
.dv-toc li{margin:6px 0}

/* 콜아웃 / 정의 Q&A */
.dv-callout{margin:var(--dv-sp-4) 0;padding:var(--dv-sp-3) var(--dv-sp-3);background:#fffaf0;border:1px solid var(--dv-line);border-left:5px solid var(--dv-accent);border-radius:0 var(--dv-r-m) var(--dv-r-m) 0}
.dv-callout .dv-q{font-weight:700;color:var(--dv-green-deep);margin:0 0 8px}
.dv-callout .dv-a{margin:0;color:var(--dv-ink)}

/* 리스트 / 단계 */
.dv-list,.dv-steps{background:var(--dv-paper);border:1px solid var(--dv-line);border-radius:var(--dv-r-m);padding:var(--dv-sp-3);margin:var(--dv-sp-3) 0 var(--dv-sp-4);box-shadow:var(--dv-shadow)}
.dv-list-h{font-weight:700;color:var(--dv-green-deep);margin:0 0 var(--dv-sp-1)}
.dv-list ul{margin:0;padding-left:20px}
.dv-list li,.dv-steps li{margin:8px 0}
.dv-steps ol{margin:0;padding-left:22px;counter-reset:dv}

/* 표 */
.dv-tablewrap{overflow-x:auto;margin:var(--dv-sp-3) 0 var(--dv-sp-4);-webkit-overflow-scrolling:touch}
.dv-table{width:100%;border-collapse:collapse;font-size:15px;min-width:420px;background:var(--dv-paper);border-radius:var(--dv-r-m);overflow:hidden;box-shadow:var(--dv-shadow)}
.dv-table caption{caption-side:top;text-align:left;font-weight:700;color:var(--dv-green-deep);padding:0 0 10px;font-size:15px}
.dv-table th,.dv-table td{padding:12px 14px;border-bottom:1px solid var(--dv-line);text-align:left;vertical-align:top}
.dv-table thead th{background:var(--dv-green-soft);color:var(--dv-green-deep);font-weight:700}
.dv-table tbody th{background:#faf7ec;font-weight:600;white-space:nowrap}
.dv-table tr:last-child td,.dv-table tr:last-child th{border-bottom:0}
.dv-check .dv-blank{display:inline-block;min-width:64px;color:#b8b096;border-bottom:1px dashed #cfc7ad;font-size:13px}
.dv-note{font-size:13px;color:var(--dv-ink-soft);margin:8px 0 0}

/* 본문 이미지 */
.dv-fig{margin:var(--dv-sp-4) 0;border-radius:var(--dv-r-l);overflow:hidden;box-shadow:var(--dv-shadow);background:var(--dv-bg-soft)}
.dv-fig img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.dv-fig figcaption{font-size:13px;color:var(--dv-ink-soft);padding:10px 14px;background:var(--dv-paper)}

/* 인라인 CSS 막대(예시) */
.dv-chart{margin:var(--dv-sp-4) 0;padding:var(--dv-sp-3);background:var(--dv-paper);border:1px solid var(--dv-line);border-radius:var(--dv-r-m);box-shadow:var(--dv-shadow)}
.dv-chart figcaption{font-weight:700;color:var(--dv-green-deep);margin:0 0 var(--dv-sp-2)}
.dv-bars{display:flex;flex-direction:column;gap:12px}
.dv-bar-row{display:grid;grid-template-columns:120px 1fr 84px;align-items:center;gap:10px}
.dv-bar-label{font-size:14px;color:var(--dv-ink)}
.dv-bar-track{height:14px;background:var(--dv-bg-soft);border-radius:999px;overflow:hidden}
.dv-bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--dv-green),var(--dv-green-deep));border-radius:999px}
.dv-bar-note{font-size:12px;color:var(--dv-ink-soft);text-align:right}

/* FAQ */
.dv-faq{margin:var(--dv-sp-6) 0 var(--dv-sp-4)}
.dv-faq>h2{font-family:var(--dv-serif);font-size:24px;color:var(--dv-green-deep);margin:0 0 var(--dv-sp-3);padding-left:14px;border-left:5px solid var(--dv-green)}
.dv-faq-item{background:var(--dv-paper);border:1px solid var(--dv-line);border-radius:var(--dv-r-m);margin:0 0 12px;box-shadow:var(--dv-shadow)}
.dv-faq-item summary{cursor:pointer;padding:14px 18px;font-weight:600;color:var(--dv-ink);list-style:none;position:relative}
.dv-faq-item summary::-webkit-details-marker{display:none}
.dv-faq-item summary::after{content:"+";position:absolute;right:18px;color:var(--dv-green);font-weight:700}
.dv-faq-item[open] summary::after{content:"–"}
.dv-faq-a{padding:0 18px 16px;color:var(--dv-ink-soft)}

/* 출처 / 관련 글(본문 하단) */
.dv-sources{margin:var(--dv-sp-6) 0 var(--dv-sp-3);padding:var(--dv-sp-3);background:var(--dv-green-soft);border-radius:var(--dv-r-m);border:1px solid #dbe6d7}
.dv-sources ul{margin:8px 0 0;padding-left:20px}
.dv-sources li{margin:6px 0}
.dv-content aside.dv-related{margin:var(--dv-sp-6) 0 var(--dv-sp-3);padding:var(--dv-sp-3);background:var(--dv-paper);border:1px dashed var(--dv-line);border-radius:var(--dv-r-m)}
.dv-content aside.dv-related .dv-related-h{font-weight:700;color:var(--dv-green-deep);margin:0 0 10px}
.dv-content aside.dv-related ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dv-content aside.dv-related li{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}
.dv-content aside.dv-related li a{font-weight:600}
.dv-content aside.dv-related li span{color:var(--dv-ink-soft);font-size:13px}

/* 본문 하단 고지 가독성 */
.dv-content .legal-notice,.dv-content .ai-notice{max-width:100%}

@media (max-width:640px){
  .dv-content{font-size:16px}
  .dv-content>h2{font-size:22px}
  .dv-bar-row{grid-template-columns:88px 1fr;grid-template-areas:"l t" "n n"}
  .dv-bar-label{grid-area:l}.dv-bar-track{grid-area:t}.dv-bar-note{grid-area:n;text-align:left}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
