/* 4050 혜택노트 — 본문(글 내용) 스타일. 사이트와 편집기 양쪽에 적용됩니다. */
.bn-content { font-size: 18px; line-height: 1.9; color: var(--bn-text, #1d2430); }
.bn-content > * + * { margin-top: 1.1em; }
.bn-content p { margin: 0 0 1.1em; }
.bn-content h2 {
	font-size: 25px; line-height: 1.45; letter-spacing: -0.02em; font-weight: 800;
	margin: 2.2em 0 .8em; padding: 0 0 0 16px; border-left: 6px solid var(--bn-accent, #d9661f);
	scroll-margin-top: 90px;
}
.bn-content h3 { font-size: 21px; line-height: 1.5; font-weight: 800; margin: 1.8em 0 .6em; color: var(--bn-navy, #1f3a68); scroll-margin-top: 90px; }
.bn-content h4 { font-size: 19px; font-weight: 700; margin: 1.5em 0 .5em; }
.bn-content ul, .bn-content ol { padding-left: 1.4em; margin: 0 0 1.2em; }
.bn-content li { margin: .35em 0; }
.bn-content strong { font-weight: 700; }
.bn-content mark, .bn-content .has-inline-color { padding: 0 .1em; }
.bn-content a { text-decoration: underline; text-underline-offset: 3px; }
.bn-content hr { border: 0; border-top: 1px solid var(--bn-line, #e4dfd5); margin: 2.4em 0; }
.bn-content blockquote {
	margin: 1.6em 0; padding: 16px 20px; border-left: 4px solid var(--bn-navy, #1f3a68);
	background: var(--bn-navy-soft, #e9eef7); border-radius: 0 12px 12px 0;
}
.bn-content blockquote p:last-child { margin-bottom: 0; }

/* 표 — 모바일에서 가로 스크롤 */
.bn-content .wp-block-table, .bn-content figure.wp-block-table { margin: 1.6em 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.bn-content table { width: 100%; border-collapse: collapse; font-size: 16.5px; line-height: 1.6; min-width: 520px; background: #fff; }
.bn-content th, .bn-content td { border: 1px solid var(--bn-line, #e4dfd5); padding: 12px 14px; text-align: left; vertical-align: top; }
.bn-content thead th, .bn-content tr:first-child th { background: var(--bn-navy, #1f3a68); color: #fff; font-weight: 700; border-color: var(--bn-navy, #1f3a68); }
.bn-content tbody tr:nth-child(even) td { background: #fbfaf7; }
.bn-content figcaption, .bn-content .wp-element-caption { font-size: 14px; color: var(--bn-muted, #5a6272); margin-top: 8px; }
.bn-content > table { display: block; overflow-x: auto; }

/* 자동 목차 */
.bn-toc {
	margin: 1.8em 0; padding: 20px 24px; border-radius: 14px;
	background: var(--bn-bg, #f7f5f0); border: 1px solid var(--bn-line, #e4dfd5);
}
.bn-toc__title { font-weight: 800; font-size: 17px; margin: 0 0 8px; }
.bn-toc ol { margin: 0; padding-left: 1.3em; font-size: 16.5px; }
.bn-toc li { margin: .3em 0; }
.bn-toc a { text-decoration: none; color: var(--bn-text, #1d2430); }
.bn-toc a:hover { color: var(--bn-navy, #1f3a68); text-decoration: underline; }

/* 정보 박스 공통 */
.bn-box { margin: 1.6em 0; padding: 22px 24px; border-radius: 14px; border: 1px solid; }
.bn-box > :first-child { margin-top: 0; }
.bn-box > :last-child { margin-bottom: 0; }
.bn-box .bn-box__title, .bn-box h3.bn-box__title, .bn-box p.bn-box__title {
	font-size: 18px; font-weight: 800; margin: 0 0 10px; color: inherit; padding: 0; border: 0;
}
.bn-box ul { margin-bottom: 0; }

/* 한눈에 보기(요약) */
.bn-summary { background: var(--bn-navy-soft, #e9eef7); border-color: #cdd8ea; color: var(--bn-navy-dark, #142847); }
.bn-summary ul { list-style: none; padding: 0; }
.bn-summary li { padding: 6px 0; border-bottom: 1px dashed #c3cfe3; }
.bn-summary li:last-child { border-bottom: 0; }

/* 자격 체크리스트 */
.bn-check { background: var(--bn-green-soft, #eaf5ef); border-color: #c7e3d3; }
.bn-check .bn-box__title { color: var(--bn-green, #2c7a55); }
.bn-check ul { list-style: none; padding: 0; }
.bn-check li { position: relative; padding-left: 32px; margin: .5em 0; }
.bn-check li::before {
	content: "✓"; position: absolute; left: 0; top: .2em; width: 22px; height: 22px; border-radius: 50%;
	background: var(--bn-green, #2c7a55); color: #fff; font-size: 13px; font-weight: 800; line-height: 22px; text-align: center;
}

/* 주의 */
.bn-warn { background: var(--bn-accent-soft, #fdf1e7); border-color: #f3d2b8; }
.bn-warn .bn-box__title { color: #b2501a; }

/* 출처·기준일 */
.bn-source { background: #fff; border-color: var(--bn-line, #e4dfd5); font-size: 15.5px; color: var(--bn-muted, #5a6272); line-height: 1.75; }
.bn-source .bn-box__title { font-size: 16px; color: var(--bn-text, #1d2430); }
.bn-source ul { padding-left: 1.2em; }

/* 신청 단계 */
.bn-steps ol, ol.bn-steps { list-style: none; counter-reset: bnstep; padding: 0; margin: 1.4em 0; }
.bn-steps li, ol.bn-steps li { counter-increment: bnstep; position: relative; padding: 14px 16px 14px 58px; margin: 10px 0; background: #fff; border: 1px solid var(--bn-line, #e4dfd5); border-radius: 12px; }
.bn-steps li::before, ol.bn-steps li::before {
	content: counter(bnstep); position: absolute; left: 16px; top: 14px; width: 30px; height: 30px; border-radius: 50%;
	background: var(--bn-navy, #1f3a68); color: #fff; font-weight: 800; font-size: 15px; line-height: 30px; text-align: center;
}

/* FAQ (details 블록) */
.bn-content details, .bn-faq details {
	border: 1px solid var(--bn-line, #e4dfd5); border-radius: 12px; padding: 0 18px; margin: 10px 0; background: #fff;
}
.bn-content details summary {
	cursor: pointer; font-weight: 700; padding: 14px 0; list-style: none; position: relative; padding-right: 28px;
}
.bn-content details summary::-webkit-details-marker { display: none; }
.bn-content details summary::after { content: "+"; position: absolute; right: 0; top: 12px; font-size: 22px; color: var(--bn-navy, #1f3a68); }
.bn-content details[open] summary::after { content: "−"; }
.bn-content details[open] { padding-bottom: 14px; }
.bn-content details > :not(summary) { margin-top: 0; }

/* 버튼 */
.bn-content .wp-block-button__link { background: var(--bn-navy, #1f3a68); color: #fff; border-radius: 12px; padding: 14px 24px; font-weight: 700; text-decoration: none; }
.bn-content .wp-block-button__link:hover { background: var(--bn-navy-dark, #142847); color: #fff; }

@media (max-width: 760px) {
	.bn-content { font-size: 17px; }
	.bn-content h2 { font-size: 22px; }
	.bn-content h3 { font-size: 19px; }
	.bn-box { padding: 18px; }
}
