/* 사업계획서 — A4 규격·11pt 최소 가독성·여백 최적화 */

.plan-page {
  --plan-min: 11pt;
  --plan-body: 11.5pt;
  --plan-lead-size: 12pt;
  --plan-page-w: 210mm;
  --plan-page-h: 297mm;
  --plan-pad-x: 18mm;
  --plan-pad-top: 16mm;
  --plan-pad-bottom: 13mm;
  --plan-foot-offset: 8mm;
  --plan-section-yellow: #b87a00;
}

@page {
  size: A4;
  margin: 0;
}

/* A4 페이지 규격 */
.plan-page .plan-book {
  width: min(var(--plan-page-w), calc(100% - 32px));
}

.plan-page .plan-sheet {
  width: 100%;
  min-height: var(--plan-page-h);
  box-sizing: border-box;
}

.plan-page .plan-frame {
  min-height: var(--plan-page-h);
  padding: var(--plan-pad-top) var(--plan-pad-x) var(--plan-pad-bottom);
  box-sizing: border-box;
}

.plan-page .plan-foot {
  left: var(--plan-pad-x);
  right: var(--plan-pad-x);
  bottom: var(--plan-foot-offset);
  font-size: var(--plan-min);
}

/* 본문 최소 11pt */
.plan-page .plan-head,
.plan-page .plan-foot,
.plan-page .plan-kicker,
.plan-page .plan-lead,
.plan-page .plan-subtitle,
.plan-page .plan-card p,
.plan-page .plan-card ul,
.plan-page .plan-card li,
.plan-page .plan-steps p,
.plan-page .plan-steps small,
.plan-page .stage-badge,
.plan-page .fact-table,
.plan-page .fact-table th,
.plan-page .fact-table td,
.plan-page .agenda-grid small,
.plan-page .agenda-grid span,
.plan-page .agenda-grid b,
.plan-page .stat-strip small,
.plan-page .stat-strip span,
.plan-page .flow-step small,
.plan-page .flow-step b,
.plan-page .flow-step span,
.plan-page .matrix,
.plan-page .matrix > div,
.plan-page .matrix .matrix-head,
.plan-page .finance-band p,
.plan-page .fund-item,
.plan-page .fund-item span,
.plan-page .finance-notice,
.plan-page .risk-grid p,
.plan-page .risk-grid span,
.plan-page .checklist div,
.plan-page .checklist b,
.plan-page .tiny-note,
.plan-page .section-subhead,
.plan-page .cover-brand span,
.plan-page .cover-meta,
.plan-page .cover-meta div,
.plan-page .plan-quote small,
.plan-page .source-grid-intro,
.plan-page .source-card small,
.plan-page .source-card__desc,
.plan-page .source-card__cta,
.plan-page .source-card__no {
  font-size: var(--plan-min);
}

.plan-page .plan-head {
  font-size: var(--plan-min);
  padding-bottom: 6px;
}

.plan-page .plan-head .page-no {
  font-size: 12pt;
}

/* 01–15 페이지 번호·섹션 라벨 — 짙은 노랑 */
.plan-page .plan-head .page-no,
.plan-page .plan-frame > .plan-kicker {
  color: var(--plan-section-yellow) !important;
  font-weight: 900;
}

.plan-page .plan-sheet:not(.cover-sheet) .plan-frame > .plan-kicker,
.plan-page .plan-head + .plan-kicker {
  letter-spacing: 0.2em;
}

/* 00 표지 키커만 기존 녹색 유지 */
.plan-page .plan-book > .cover-sheet:first-child .plan-frame > .plan-kicker {
  color: var(--leaf) !important;
  letter-spacing: 0.19em;
}

.plan-page .plan-kicker {
  font-size: var(--plan-min);
  margin-top: 12px !important;
}

.plan-page .plan-lead {
  font-size: var(--plan-lead-size);
  line-height: 1.62;
  max-width: none;
}

.plan-page .plan-heading {
  font-size: 22pt;
  line-height: 1.16;
  margin: 10px 0 14px;
}

.plan-page .plan-subtitle {
  font-size: 12pt;
  line-height: 1.62;
  margin: 14px 0 0;
}

.plan-page .plan-card {
  padding: 12px 14px;
}

.plan-page .plan-card .card-index {
  font-size: var(--plan-min);
}

.plan-page .plan-card h3 {
  font-size: 13pt;
  margin: 6px 0;
}

.plan-page .plan-card p,
.plan-page .plan-card li {
  font-size: var(--plan-body);
  line-height: 1.58;
}

.plan-page .document-download {
  margin-top: 12px;
  padding: 10px 13px;
  font-size: var(--plan-min);
  line-height: 1.2;
}

.plan-page .plan-steps article {
  padding: 10px 0;
}

.plan-page .plan-steps h3 {
  font-size: 13pt;
}

.plan-page .plan-steps p {
  font-size: var(--plan-body);
  line-height: 1.58;
}

.plan-page .plan-steps small,
.plan-page .stage-badge {
  font-size: var(--plan-min);
}

.plan-page .plan-quote {
  margin: 14px 0 0 !important;
  padding: 14px 16px;
}

.plan-page .plan-quote p {
  font-size: 13pt;
  line-height: 1.48;
}

.plan-page .agenda-grid,
.plan-page .stat-strip {
  gap: 6px;
  margin-top: 14px !important;
}

.plan-page .agenda-grid article {
  padding: 10px 12px;
}

.plan-page .agenda-grid b {
  font-size: 12pt;
}

.plan-page .stat-strip b {
  font-size: 20pt;
}

.plan-page .stat-strip {
  margin-top: 14px !important;
}

.plan-page .fact-table {
  margin-top: 12px;
  font-size: var(--plan-body);
}

.plan-page .fact-table th,
.plan-page .fact-table td {
  padding: 8px 7px;
  line-height: 1.52;
}

.plan-page .flow-rail {
  margin: 14px 0 0 !important;
}

.plan-page .flow-dot {
  width: 62px;
  height: 62px;
  font-size: 12pt;
}

.plan-page .two-col,
.plan-page .three-col {
  gap: 12px;
  margin-top: 14px !important;
}

.plan-page .matrix {
  margin-top: 14px !important;
  font-size: var(--plan-body);
}

.plan-page .matrix > div {
  padding: 8px 7px;
  line-height: 1.48;
}

.plan-page .matrix .matrix-head {
  font-size: var(--plan-min);
}

.plan-page .finance-band {
  margin-top: 14px !important;
  padding: 16px 18px;
  gap: 14px;
}

.plan-page .finance-band p {
  font-size: var(--plan-body);
}

.plan-page .finance-notice {
  font-size: var(--plan-min);
  line-height: 1.55;
}

.plan-page .risk-grid {
  margin-top: 14px !important;
  gap: 8px;
}

.plan-page .risk-grid b {
  font-size: 12pt;
}

.plan-page .risk-grid p {
  font-size: var(--plan-body);
}

.plan-page .risk-grid span {
  font-size: var(--plan-min);
}

.plan-page .checklist {
  margin-top: 14px !important;
  gap: 6px;
}

.plan-page .checklist div {
  font-size: var(--plan-body);
  padding: 8px 10px;
  line-height: 1.48;
}

.plan-page .checklist b {
  font-size: var(--plan-min);
}

.plan-page .tiny-note {
  font-size: var(--plan-min);
  line-height: 1.55;
  margin-top: 8px;
}

.plan-page .section-subhead {
  font-size: 12pt;
  font-weight: 850;
  color: var(--green);
  margin: 0 0 6px;
}

.plan-page .plan-steps {
  margin-top: 14px !important;
}

.plan-page .source-grid {
  margin-top: 12px !important;
  gap: 8px;
}

.plan-page .source-card {
  min-height: 0;
  padding: 12px 12px 10px;
}

.plan-page .source-card b {
  font-size: 12pt;
}

.plan-page .source-card__desc {
  font-size: var(--plan-body);
  line-height: 1.52;
}

.plan-page .source-card__cta {
  position: static;
  display: inline-flex;
  width: fit-content;
  min-height: 0;
  margin-top: 7px;
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 9pt;
  line-height: 1.15;
  letter-spacing: 0;
}

.plan-page .source-grid-intro {
  font-size: var(--plan-body);
  margin: 12px 0 0;
  padding: 10px 12px;
}

/* 표지 */
.plan-page .cover-brand {
  margin-bottom: 28px;
}

.plan-page .cover-brand b {
  font-size: 14pt;
}

.plan-page .cover-brand span {
  font-size: var(--plan-min);
}

.plan-page .cover-sheet .plan-title {
  font-size: 34pt;
  margin-top: 12px;
}

.plan-page .cover-art {
  right: 24px;
  bottom: 22px;
  width: 280px;
  height: 230px;
}

.plan-page .cover-meta {
  left: var(--plan-pad-x);
  bottom: 16mm;
  font-size: var(--plan-body);
}

/* 본문 띄어쓰기 우선 줄바꿈 */
.plan-page .plan-frame,
.plan-page .plan-frame p,
.plan-page .plan-frame li,
.plan-page .plan-frame td,
.plan-page .plan-frame th,
.plan-page .plan-frame h2,
.plan-page .plan-frame h3,
.plan-page .source-card {
  word-break: keep-all;
  overflow-wrap: break-word;
  line-break: strict;
  text-wrap: pretty;
}

.plan-page .plan-heading,
.plan-page .plan-title {
  text-wrap: balance;
}

@media print {
  .plan-page .plan-main {
    padding: 0;
  }

  .plan-page .plan-book {
    width: var(--plan-page-w);
    box-shadow: none;
  }

  .plan-page .plan-sheet {
    min-height: var(--plan-page-h);
    page-break-after: always;
    break-after: page;
  }

  .plan-page .plan-frame {
    min-height: var(--plan-page-h);
    padding: var(--plan-pad-top) var(--plan-pad-x) var(--plan-pad-bottom);
  }

  .plan-page .source-card__cta,
  .plan-page .source-card::after {
    font-size: var(--plan-min) !important;
  }
}

@media (max-width: 920px) {
  .plan-page .plan-frame {
    min-height: auto;
    padding: 18px 16px 52px;
  }

  .plan-page .plan-sheet {
    min-height: auto;
  }

  .plan-page .plan-foot {
    left: 16px;
    right: 16px;
  }

  .plan-page .cover-meta {
    left: 16px;
    position: relative;
    bottom: auto;
    margin-top: 20px;
  }

  .plan-page .cover-art {
    position: relative;
    right: auto;
    bottom: auto;
    margin: 16px auto 0;
  }
}
