/* ===== 紙面（共通テストの問題冊子の体裁）=====
   B5判 516×728pt。本文 10pt・行送り 20pt・版面 x68〜448pt。
   明朝＝Noto Serif JP（欧文は Noto Serif），ゴシック＝Noto Sans JP。紙面は常に白黒。 */
.pg{
  --min:'Noto Serif','Noto Serif JP',serif;
  --got:'Noto Sans JP',sans-serif;
  --hvy:'Noto Serif JP',serif;
  width:516pt;height:728pt;position:relative;background:#fff;color:#000;overflow:hidden;flex:none;
  font-family:var(--min);font-size:10pt;line-height:20pt;font-weight:400;
  font-kerning:none;line-break:strict;word-break:normal;overflow-wrap:anywhere;
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
}
.pg *{box-sizing:border-box}
.pg .bd{position:absolute;left:68pt;top:80pt;width:380pt;height:572pt;display:flex;flex-direction:column}
.pg .bd>*{flex:none}
.pg .bd>.vf{flex:1 1 0;min-height:0}
.pg.sp .bd{top:80pt}
.pg .hd{position:absolute;top:50pt;left:68pt;width:380pt;font-family:var(--got);font-weight:500;font-size:12pt;line-height:14pt;letter-spacing:.02em}
.pg.odd .hd{text-align:right}
.pg .fo{position:absolute;left:0;right:0;top:var(--foy,681pt);text-align:center;font-size:10pt;line-height:12pt}
.pg .co{position:absolute;right:64pt;top:calc(var(--foy,681pt) + 2.5pt);font-size:8pt;line-height:10pt}
.pg .cn-note{position:absolute;right:0;bottom:0;font-size:8pt;line-height:12pt}
.pg .tab{position:absolute;width:30pt;height:48pt;background:#b4b4b4}
.pg.odd .tab{right:0}.pg.even .tab{left:0}
.pg .blk{position:absolute;left:0;width:14pt;height:9pt;background:#231815}

/* --- 縦書き（国語） --- */
.pg.v .bd{left:63pt;top:76pt;width:392pt;height:580pt;writing-mode:vertical-rl;display:block;line-height:20pt}
.pg.v .bd>*{margin-block:0}
.pg.v .p{text-indent:1em}
.pg.v .dai{font-size:10pt}
.pg.v .dai .lb{font-size:14pt;font-family:var(--got);font-weight:700;margin-inline-end:1em}
.pg.v .bx,.pg.v .sel>span,.pg.v .fl,.pg.v .no{text-orientation:upright}
.pg.v .tcy{text-combine-upright:all}
.pg.v .ul{text-decoration:none;border-right:.6pt solid #000;padding-right:1pt}
.pg .vtitle2{position:absolute;left:0;right:0;top:92pt;display:flex;flex-direction:column;align-items:center;gap:26pt}
.pg .vtitle2>.t{writing-mode:vertical-rl;font-family:var(--got);font-weight:700;font-size:22pt;letter-spacing:1.6em;line-height:1}
.pg .vtitle2>.s{writing-mode:vertical-rl;font-size:9.5pt;line-height:14pt}
.pg .vtitle2 .rg .pp{transform:none;font-size:12pt}
.pg .vtitle2 .no{text-combine-upright:all;min-width:0;width:16pt;height:auto;min-height:34pt;padding:5pt 0;margin:2pt 0}
.pg .vtitle2 .rg .pp{transform:rotate(90deg) scaleX(.6)}
.pg.v .no,.pg.v .bx{min-width:0;min-block-size:34pt;width:16pt;height:auto;padding:5pt 0;margin:2pt 0;text-combine-upright:all}
.pg .m .up .v{font-style:normal}
.pg.v .vtitle{display:flex;flex-direction:column;align-items:center;gap:30pt;margin-inline-start:150pt;font-family:var(--got);font-weight:700;font-size:22pt;line-height:24pt}
.pg.v .vtitle .s{font-size:10pt;font-weight:500;line-height:14pt}

/* --- 段落と見出し --- */
.pg .p{text-indent:1em;text-align:justify;margin-left:var(--lv,0)}
.pg .p.ni,.pg .p.cont{text-indent:0}
.pg .brk{text-align-last:justify}
.pg .gap{height:20pt}
.pg .half{height:10pt}
.pg .hang{text-align:justify}
.pg .hang>.lb{display:inline-block;text-indent:0;width:var(--lw,2em);font-family:var(--got);font-weight:500;white-space:nowrap}
.pg .hang.cont,.pg .dai.cont{text-indent:0!important}
.pg .hang>.lb.mn{font-family:var(--min);font-weight:400}
.pg table.tb td.nw{white-space:nowrap}
.pg .dai{padding-left:2em;text-indent:-2em;text-align:justify;margin-left:-2pt}
.pg .dai>.lb{display:inline-block;text-indent:0;font-family:var(--got);font-weight:700;font-size:14pt;line-height:20pt;margin-right:10pt;white-space:nowrap;letter-spacing:.02em}
.pg .subj{text-align:center;padding-top:6pt;margin-bottom:14pt}
.pg .subj .t{font-family:var(--got);font-weight:700;font-size:22pt;line-height:28pt;letter-spacing:.04em}
.pg .subj .s{font-family:var(--got);font-weight:500;font-size:12pt;line-height:22pt;margin-top:4pt}
.pg .head{font-family:var(--got);font-weight:700;margin-left:var(--lv,0)}
.pg .center{text-align:center}
.pg .right{text-align:right}
.pg .note8{font-size:8pt;line-height:12pt;text-align:right}
.pg .boxnote{border:.8pt solid #000;text-align:center;font-family:var(--got);font-weight:500;font-size:12pt;line-height:30pt}

/* 注意事項などの番号付き項目（2行目以降は2字下げ） */
.pg .ni2{position:relative;padding-left:calc(var(--lv,0) + 2em);text-indent:1em;text-align:justify}
.pg .ni2.cont{text-indent:0}
.pg .ni2>.nl{position:absolute;left:calc(var(--lv,0) + 1.1em);text-indent:0;font-size:9.1pt}
.pg .ni2.cont>.nl{display:none}

/* --- 空欄・解答番号・選択肢番号 --- */
.pg .bx,.pg .sel,.pg .no,.pg .fl,.pg .th{display:inline-flex;align-items:center;justify-content:center;vertical-align:-4.5pt;text-indent:0;font-family:var(--got);font-weight:500;white-space:nowrap;line-height:1;margin:0 2pt}
.pg .bx{min-width:34pt;height:16pt;border:1.13pt solid #000;padding:0 5pt;font-size:10pt;letter-spacing:.08em}
.pg .sel{min-width:34pt;height:16pt;border:1.13pt solid #000;padding:1.6pt}
.pg .sel>span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border:.35pt solid #000;padding:0 4pt;font-size:10pt;letter-spacing:.08em}
.pg .fl{min-width:34pt;height:16pt;border:.9pt solid #000;padding:0 6pt;font-size:10pt}
.pg .no{min-width:34pt;height:16pt;border:1.13pt solid #000;padding:0 5pt;font-size:9.5pt;font-weight:400}
.pg .th{min-width:34pt;height:16pt;border:.5pt solid #555;padding:1.4pt;color:#333}
.pg .th>span{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border:.3pt solid #777;padding:0 4pt;font-size:10pt;font-family:var(--min);font-weight:400}
.pg .fr .bx,.pg .fr .sel{margin:1pt 0}
.pg .cn{display:inline-flex;align-items:center;justify-content:center;width:8.6pt;height:10.4pt;border:.75pt solid #000;border-radius:50%;font-family:var(--got);font-size:7pt;font-weight:500;line-height:1;vertical-align:-1.2pt;text-indent:0;margin:0 .5pt}
.pg .cn.k{width:10.4pt}
.pg .sq{display:inline-flex;align-items:center;justify-content:center;width:16pt;height:16pt;border:.8pt solid #000;font-family:var(--min);font-weight:700;font-size:12pt;vertical-align:-4pt;margin-right:6pt}
.pg .g{font-family:var(--got);font-weight:500}
.pg .gh{font-family:var(--got);font-weight:700}
.pg .ul{text-decoration:underline;text-decoration-thickness:.6pt;text-underline-offset:2.5pt}
.pg .sm{font-size:8pt}
.pg .ht{font-size:9.1pt}
.pg ruby rt{font-size:5pt;font-family:var(--min)}
.pg .rg{display:inline-flex;align-items:center;gap:2pt;font-size:9.5pt}
.pg .rg .pp{font-size:18pt;font-weight:300;line-height:1;transform:scaleX(.6)}

/* --- 数式 --- */
.pg .m{font-family:'Noto Serif','Noto Serif JP',serif;white-space:nowrap}
.pg .m .v{font-style:italic;padding-right:.04em}
.pg .m .rm{font-style:normal}
.pg .m .op{padding:0 .14em}
.pg .m .fn{font-style:normal}
.pg .m .fn+sub{margin-right:.12em}
.pg .m .fn+.v,.pg .m .fn+.rm{margin-left:.15em}
.pg .m sup,.pg .m sub{font-size:68%;line-height:0;position:relative;vertical-align:baseline}
.pg .m sup{top:-.55em}
.pg .m sub{top:.3em}
.pg .fr{display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;line-height:1.1;margin:0 .12em;text-indent:0}
.pg .fr>.nu,.pg .fr>.de{display:block;padding:0 .2em;text-align:center}
.pg .fr>.nu{border-bottom:.5pt solid #000;padding-bottom:1pt;align-self:stretch}
.pg .fr>.de{padding-top:1pt}
.pg .fr .bx,.pg .fr .sel{vertical-align:0}
.pg .sq2{display:inline-flex;align-items:flex-end}
.pg .sq2>.rad{font-size:1.15em;line-height:1;transform:scaleY(1.05)}
.pg .sq2>.ins{border-top:.5pt solid #000;padding:1pt .1em 0}
.pg .ovl{border-top:.5pt solid #000;padding-top:.5pt}
.pg .vec{position:relative;display:inline-block}
.pg .vec::before{content:'→';position:absolute;left:0;right:0;top:-.85em;text-align:center;font-size:.7em;font-style:normal}
.pg .bigp{font-size:1.7em;line-height:.5;vertical-align:-.12em;font-weight:300}
.pg .dm{display:flex;align-items:center;margin-left:calc(var(--lv,0) + 3em);min-height:20pt;padding:4pt 0}
.pg .dm.c{justify-content:center;margin-left:var(--lv,0)}
.pg .dm .rows{display:flex;flex-direction:column}
.pg .dm .ld{flex:1;min-width:20pt;height:2pt;margin:0 4pt 0 18pt;background-image:radial-gradient(circle,#000 .45pt,transparent .6pt);background-size:3pt 2pt;background-repeat:repeat-x;align-self:center}
.pg .dm .tg{flex:none}

/* --- 解答群・選択肢 --- */
.pg .ch{margin-left:var(--lv,0);padding:2pt 0}
.pg .ch .h{line-height:20pt;margin-bottom:6pt}
.pg .ch.boxed .ls{border:.6pt solid #000;padding:5pt 10pt}
.pg .ch .ls{display:grid;grid-template-columns:repeat(var(--c,2),minmax(0,1fr));column-gap:12pt}
.pg .ch .it{display:flex;gap:9pt;line-height:20pt;min-width:0}
.pg .ch .it>.cn{margin-top:4.6pt;flex:none}
.pg .ch .it>.t{min-width:0;flex:1}
.pg .ch.plain .ls{padding-left:0}

/* --- 枠・表・図 --- */
.pg .frm{margin-left:var(--lv,0)}
.pg .frm>.ft{font-family:var(--got);font-weight:500;line-height:20pt;margin-bottom:2pt}
.pg .frm>.fb{border:.6pt solid #000;padding:6pt 12pt}
.pg .frm.r>.fb{border-radius:6pt}
.pg .frm.dash>.fb{border-style:dashed}
.pg .frm.shadow>.fb{box-shadow:3pt 3pt 0 #bbb}
.pg .frm .fb .p{margin-left:0}
.pg .tbw{margin-left:var(--lv,0)}
.pg .tbw .cap{font-family:var(--got);font-weight:500;line-height:20pt;margin-bottom:2pt}
.pg .tbw.cc .cap{text-align:center}
.pg table.tb{border-collapse:collapse;margin:0 auto 0 0}
.pg .tbw.cc table.tb{margin:0 auto}
.pg table.tb td{border:.6pt solid #000;padding:1pt 8pt;line-height:19pt;vertical-align:middle;text-align:center}
.pg table.tb td.l{text-align:left}
.pg table.tb td.r{text-align:right}
.pg table.tb tr.hd td{font-family:var(--min)}
.pg table.tb td.nb{border:none}
.pg .fig{display:flex;justify-content:center;align-items:flex-end;gap:16pt;margin-left:var(--lv,0);padding:4pt 0}
.pg .fig figure{margin:0;display:flex;flex-direction:column;align-items:center;min-width:0}
.pg .fig img{display:block;max-width:100%;height:auto}
.pg .fig figcaption{line-height:20pt;margin-top:4pt;text-align:center}
.pg .fig .ph{display:flex;align-items:center;justify-content:center;border:.6pt dashed #888;color:#777;font-family:var(--got);font-size:9pt;width:100%;height:90pt}
.pg .cols{display:grid;grid-template-columns:repeat(var(--c,2),minmax(0,1fr));column-gap:14pt;margin-left:var(--lv,0)}
.pg .cols>div{min-width:0}
.pg .cols .p{margin-left:0}

/* --- マーク例 --- */
.pg .mk{margin-left:var(--lv,0);display:flex;align-items:flex-start;gap:8pt}
.pg .mk table{border-collapse:collapse;border:1.1pt solid #000}
.pg .mk td{border:.5pt solid #000;padding:0 6pt;height:18pt;text-align:center;line-height:18pt}
.pg .mk td.lb{font-family:var(--got);font-weight:500;width:26pt}
.pg .mk .bb{display:inline-flex;gap:3.2pt;align-items:center}
.pg .mk .bub{display:inline-flex;align-items:center;justify-content:center;width:9.4pt;height:12pt;border:.7pt solid #000;border-radius:50%;font-family:var(--got);font-size:6.8pt;line-height:1}
.pg .mk .bub.on{background:#2a2a2a;color:#2a2a2a}
.pg .mk .hh td{font-family:var(--got);font-weight:500;letter-spacing:1.2em;text-indent:1.2em}

/* --- 表紙 --- */
.pg .warn{align-self:center;border:.6pt solid #000;font-family:var(--got);font-weight:500;padding:0 10pt;line-height:16pt;margin-top:2pt}
.pg .ct{display:flex;align-items:center;gap:6pt;margin-top:10pt;position:relative;min-height:50pt}
.pg .ct .t{font-family:var(--got);font-weight:500;font-size:22pt;line-height:26pt;white-space:nowrap;flex:none}
.pg .ct .k,.pg .ct .sc{flex:none;white-space:nowrap}
.pg .ct .k{font-family:var(--got);font-weight:700;font-size:12pt;line-height:15pt;display:flex;align-items:center}
.pg .ct .k .lines{display:flex;flex-direction:column;padding:0 2pt}
.pg .ct .k .br{font-size:30pt;font-weight:300;transform:scaleX(.5)}
.pg .ct .sc{margin-left:auto;display:flex;align-items:center;font-size:9.1pt;line-height:20pt}
.pg .ct .sc .pp{font-size:34pt;font-weight:200;line-height:1;transform:scaleX(.4)}
.pg .ct .sc .lines{display:flex;flex-direction:column;align-items:flex-end}
.pg .ct .L{position:absolute;right:4pt;top:-16pt;width:14pt;height:14pt;border:.8pt solid #000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--hvy);font-weight:900;font-size:10pt;line-height:1}
.pg .notes .it{display:flex;line-height:20pt}
.pg .notes .it>.lb{flex:none;width:2em;text-align:center}

@media print{
  @page{size:182mm 257mm;margin:0}
  html,body{margin:0;background:none}
  .pg{box-shadow:none!important;margin:0!important;break-after:page}
}

/* --- 本試の空き：ブロックの前後に半行〜1行 --- */
.pg .bd>.dai{margin-top:14pt}
.pg .bd>.dai:first-child,.pg .subj+.dai{margin-top:0}
.pg .bd>.k-mon,.pg .bd>.k-sho{margin-top:12pt}
.pg .bd>.k-sub{margin-top:8pt}
.pg .bd>.cont{margin-top:0!important}
.pg .dm{padding:9pt 0}
.pg .bd>.ch,.pg .bd>.frm,.pg .bd>.tbw,.pg .bd>.fig,.pg .bd>.cols,.pg .bd>.mk{margin-top:9pt;margin-bottom:9pt}
.pg .bd>.boxnote{margin-top:auto}
.pg .tbw.full table.tb{width:100%}
.pg .mk{flex-direction:column;gap:2pt}
.pg .mk table{margin-left:2em}
.pg .dm .ld{min-width:12pt;margin-left:10pt}

.pg .ct .k.multi{align-items:stretch;gap:0;margin-left:4pt}
.pg .ct .k .bkl,.pg .ct .k .bkr{width:5pt;border:1.1pt solid #000}
.pg .ct .k .bkl{border-right:0}.pg .ct .k .bkr{border-left:0}
.pg .ct .k.multi .lines{padding:1pt 3pt;line-height:14.5pt}
.pg .ct .sc .pl,.pg .ct .sc .pr{align-self:stretch;width:6pt;border:.8pt solid #000}
.pg .ct .sc .pl{border-right:0;border-radius:8pt 0 0 8pt/50% 0 0 50%}
.pg .ct .sc .pr{border-left:0;border-radius:0 8pt 8pt 0/0 50% 50% 0}
.pg .ct .sc .lines{padding:0 2pt;line-height:20pt}
.pg .ct .L{top:-22pt}
.pg .mk .hh td.lb{letter-spacing:0;text-indent:0;white-space:nowrap;width:auto}

/* 編集で使う要素（書き出しには出ない） */
.pg b{font-family:var(--got);font-weight:500}
.pg b.gh{font-weight:700}
.pg u{text-decoration:underline;text-decoration-thickness:.6pt;text-underline-offset:2.5pt}
.pg .par{min-height:20pt}
.pg table.tb td>div{display:block}
