/* 기타 양식(서울중앙지방법원 공개서식): 영수증, 금전대차계약서, 차용증 */
.sheet.of { padding: 20mm 20mm 0; font-size: 10.6pt; line-height: 2.05; letter-spacing: -0.01em; }
.of .sheet-body { height: 270mm; width: 170mm; }
.of.tight .sheet-body { zoom: 0.96; width: calc(170mm / 0.96); height: calc(270mm / 0.96); }
.of.tighter .sheet-body { zoom: 0.92; width: calc(170mm / 0.92); height: calc(270mm / 0.92); }
.of.dense { font-size: 9.9pt; line-height: 1.78; }

/* 제목: 글자 사이를 띄우고 아래에 겹줄 */
.of-title {
  position: relative; margin: 4mm auto 11mm; width: 78mm; padding: 0 0 1mm 0.7em; text-align: center;
  font-size: 20pt; font-weight: 800; letter-spacing: 0.7em; line-height: 1.5; border-bottom: 1.6pt solid #000;
}
.of-title::after { content: ''; position: absolute; left: 0; right: 0; bottom: -3.4pt; border-top: 0.6pt solid #000; }
.of-title.t-loan { width: 80mm; letter-spacing: 0.3em; padding-left: 0.3em; }
.of p { margin: 0; }
.nw { white-space: nowrap; }
.of-sub { margin: 4mm 0 0 !important; font-weight: 700; text-decoration: underline; text-underline-offset: 0.18em; }
.of-sub + p { margin-top: 0; }

/* 값 칸과 빈 줄 */
.of .v.ul { border-bottom: 0.6pt solid #000; }
.of-ln { display: inline-block; width: var(--w, 30mm); height: 1em; border-bottom: 0.6pt solid #000; vertical-align: baseline; }
.of-amt { white-space: nowrap; }
.of-amt .v { text-align: center; }
.of-p { text-align: left; }
.of-cb { padding-left: 3mm; }
.of-cb .cb { margin-right: 0.5em; }
.of-date { text-align: center; margin-top: 7mm !important; margin-bottom: 4mm !important; }

/* 이름·주소 등 서명란 */
.of-pb { display: grid; grid-template-columns: 34mm 1fr; margin-top: 4mm; }
.of-pb.ind { margin-left: 23mm; grid-template-columns: 24.5mm 1fr; }
.of-role { line-height: inherit; white-space: nowrap; }
.of-role span { display: block; }
.of-ls p { display: flex; align-items: baseline; gap: 1.5mm; white-space: nowrap; }
.of-ls .v { flex: 0 1 auto; }
.of-ls .s { white-space: nowrap; }
.of-gap { height: 12mm; }

/* 금전대차계약서 */
.of-party { margin: 0 0 0 0; }
.of-party .pn { display: block; }
.of-party .row { display: flex; align-items: baseline; gap: 1.2mm; padding-left: 3mm; white-space: nowrap; }
.of-party .row .v { flex: 0 1 auto; }
.of-art { margin-top: 3.2mm !important; font-weight: 700; }
.of-body { text-align: left; word-break: keep-all; }
.of-body .in1 { padding-left: 3mm; display: block; }
.of-r { text-align: right; }
.of-bank { padding-left: 3mm; white-space: nowrap; }
.of-bank .row2 { display: flex; align-items: baseline; gap: 1.2mm; }
.of-bank .row2 .gap { width: 6mm; }
.of-rule {
  display: block; width: auto; white-space: pre-wrap; text-align: left; height: var(--h, 26mm);
  line-height: 1.9em; margin-top: 0.8mm; background-image: linear-gradient(to top, #8a8a8a 0.5pt, transparent 0.5pt);
  background-size: 100% 1.9em; background-repeat: repeat-y;
}
.of-sgs { margin: 5mm 0 0 56mm; }
.of-sg { display: flex; align-items: baseline; gap: 1.5mm; white-space: nowrap; margin-top: 0; }
.of-sg .who { min-width: 26mm; font-weight: 400; }
.of-sg.sub { margin-left: 0; font-size: 0.94em; }
.of-sg.sub .who { width: auto; }
.of-sgs .blk { margin-top: 5mm; }
.of-sgs .blk:first-child { margin-top: 0; }
.of .pgno { bottom: 9mm; }

/* 부동산 매매계약서(사이트 자체 양식) */
.sc .of-title.t-loan { width: 96mm; }
.of.sc { line-height: 1.66; }
.sc .of-art { margin-top: 2.6mm !important; }
/* 쪽 번호 자리(아래 9mm)를 본문 높이에서 빼서, 넘치면 배율이 먼저 줄어들게 한다 */
.of.sc .sheet-body { height: 261mm; }
.of.sc.tight .sheet-body { height: calc(261mm / 0.96); }
.of.sc.tighter .sheet-body { height: calc(261mm / 0.92); }
.sc-cap { margin-top: 3mm !important; }
.sc-tbl { width: 100%; border-collapse: collapse; table-layout: fixed; margin-top: 1mm; font-size: 0.95em; line-height: 1.4; }
.sc-tbl th, .sc-tbl td { border: 0.6pt solid #000; padding: 0.8mm 1.5mm; vertical-align: middle; }
.sc-tbl th { font-weight: 400; text-align: center; background: #f2f2f2; white-space: nowrap; }
.sc-tbl th.t2 { white-space: normal; line-height: 1.2; font-size: 0.86em; }
.sc-tbl th.l { text-align: left; font-weight: 700; background: none; }
.sc-tbl td.r { text-align: right; white-space: nowrap; }
.sc-v { display: block; width: auto; }
.sc-v.w { white-space: normal; word-break: keep-all; overflow-wrap: anywhere; max-height: 2.8em; line-height: 1.4; }
.sc-tbl td.r .sc-v { display: inline-block; width: calc(100% - 1.4em); }
.sc-in { padding-left: 1.6mm; }
.sc-pay td.amt { white-space: nowrap; }
.sc-pay td.amt .sc-v { display: inline-block; width: calc(100% - 1.6em); vertical-align: bottom; border-bottom: 0.6pt solid #000; }
.sc-pay td:last-child { word-break: keep-all; }
.sc-cb { margin-right: 2.5mm; white-space: nowrap; }
.sc-cb .cb { margin-right: 0.3em; }
.sc-close { margin-top: 3mm !important; }
.sc .of-date { margin-top: 3mm !important; margin-bottom: 2mm !important; }
.sc-sign { margin-top: 2mm; }
.sc-sign th.role, .sc-docs th.role { letter-spacing: 0.15em; writing-mode: vertical-rl; text-orientation: upright; padding: 0; }
.sc-sign th.who { white-space: normal; line-height: 1.2; }
.sc-sign td.seal { text-align: center; padding: 0; font-size: 1.15em; }
.sc-docs { margin-top: 2mm; font-size: 0.84em; line-height: 1.45; }
.sc-docs td { word-break: keep-all; }
/* 기타 항목: 줄의 남은 너비를 모두 적는 칸으로 쓴다 */
.sc-docs td { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 0.6em; }
.sc-etc { flex: 1 1 24mm; min-width: 24mm; }
.sc-etc::after { content: ""; display: inline-block; width: calc(100% - 3.2em); height: 1em; vertical-align: baseline; border-bottom: 0.5pt solid #000; }
.sc-note { margin: 0; }

/* 종류 고르기 줄이 길어지는 경우 */
.kindsel.of-kinds { max-width: 100%; }
