/* 手順カード: 大きな字・1 行 1 手順・右に写真の枠。白黒 */
.tz { position: absolute; left: 12mm; right: 12mm; top: 12mm; bottom: 12mm; display: flex; flex-direction: column; }
.tz h2 { font-size: var(--h, 30pt); line-height: 1.25; margin: 0 0 4mm; border-bottom: 1mm solid #000; padding-bottom: 2mm; }
.tz ol { list-style: none; flex: 1; display: flex; flex-direction: column; gap: 2.5mm; }
.tz li { display: flex; align-items: center; gap: 4mm; border: 0.4mm solid #000; border-radius: 3mm; padding: 2mm 3mm; flex: 1; min-height: 0; }
.tz .no { flex: none; width: var(--n, 15mm); height: var(--n, 15mm); border-radius: 50%; background: #000; color: #fff; font-weight: 700;
  font-size: calc(var(--n, 15mm) * 0.6); display: flex; align-items: center; justify-content: center; }
.tz .tx { flex: 1; font-size: var(--t, 24pt); font-weight: 700; line-height: 1.3; word-break: break-all; }
.tz .tx.empty { border-bottom: 0.3mm dashed #666; align-self: flex-end; height: 1.3em; }
.tz .ph { flex: none; width: var(--p, 42mm); height: 100%; max-height: 100%; display: flex; align-items: center; justify-content: center; }
.tz .ph img { max-width: 100%; max-height: 100%; object-fit: contain; border: 0.3mm solid #000; }
.tz .help { margin-top: 4mm; border: 1mm solid #000; border-radius: 3mm; padding: 3mm 4mm; font-size: var(--t, 24pt); font-weight: 700; line-height: 1.35; }
.tz .help small { display: block; font-size: 0.55em; font-weight: 400; }
.tz .help .line { display: inline-block; min-width: 50mm; border-bottom: 0.4mm solid #000; }
.half { position: absolute; left: 0; right: 0; height: 148.5mm; }
.half + .half { top: 148.5mm; border-top: 0.3mm dashed #000; }
.half .tz { top: 8mm; bottom: 8mm; }
.photo-row { display: flex; align-items: center; gap: 0.7rem; flex-wrap: wrap; margin-bottom: 0.8rem; padding-bottom: 0.6rem; border-bottom: 1px solid var(--border); }
.photo-row img { width: 72px; height: 72px; object-fit: contain; border: 1px solid var(--border); background: #fff; }
.photo-row .ttl { flex: 1 1 12rem; font-weight: 700; }
