    :root {
      --page-width: 210mm;
      --page-height: 297mm;
      --text: #111;
      --rule: #333;
    }

    * { box-sizing: border-box; }

    html, body {
      margin: 0;
      padding: 0;
      background: #ececec;
      color: var(--text);
      font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
      font-size: 10.5pt;
      line-height: 1.55;
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }

    .document { padding: 12mm 0; }

    .page {
      width: var(--page-width);
      min-height: var(--page-height);
      margin: 0 auto 12mm;
      padding: 29mm 26mm 24mm;
      background: #fff;
      box-shadow: 0 2mm 7mm rgba(0, 0, 0, .18);
      position: relative;
    }

    h1 {
      margin: 0 0 7mm;
      text-align: center;
      font-size: 14pt;
      font-weight: 500;
      letter-spacing: .01em;
    }

    .lead {
      margin: 0;
      text-align: justify;
      text-justify: inter-ideograph;
    }

    .rule {
      border: 0;
      border-top: .35mm solid var(--rule);
      margin: 7mm 0 6mm;
    }

    .definition { margin: 0 0 6mm; }

    .bracket-heading {
      margin: 0 0 1mm;
      font-weight: 600;
    }

    .definition p { margin: 0; }

    .square-list,
    .dot-list,
    .plain-list {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .square-list li,
    .dot-list li {
      position: relative;
      padding-left: 1.3em;
    }

    .square-list li::before {
      content: "■";
      position: absolute;
      left: 0;
      top: 0;
      font-size: .82em;
    }

    .dot-list li::before {
      content: "•";
      position: absolute;
      left: .12em;
      top: -.02em;
      font-weight: 700;
    }

    .example {
      margin: 0;
      padding-left: 1.3em;
    }

    .section { margin-top: 8mm; }
    .section:first-of-type { margin-top: 0; }

    h2 {
      margin: 0 0 5mm;
      font-size: 11.5pt;
      font-weight: 500;
    }

    h3 {
      margin: 0 0 1.5mm 4mm;
      font-size: 10.5pt;
      font-weight: 500;
    }

    .section-body { margin-left: 8mm; }
    .section-body + h3 { margin-top: 4mm; }

    .label {
      margin: 0 0 1mm;
      font-weight: 500;
    }

    .dot-list li { margin-bottom: 1.4mm; }
    .dot-list li:last-child { margin-bottom: 0; }

    .block { margin-bottom: 4.5mm; }

    .contact {
      margin: 5mm 0 0;
    }

    .contact-title {
      margin: 0 0 1.5mm;
      font-weight: 600;
    }

    .email { margin: 0 0 4mm 0; }
    .notes p { margin: 0; }

    .footer {
      margin-top: 9mm;
      text-align: right;
      line-height: 1.7;
    }

    @media print {
      @page { size: A4; margin: 0; }
      html, body { background: #fff; }
      .document { padding: 0; }
      .page {
        width: 210mm;
        height: 297mm;
        min-height: 297mm;
        margin: 0;
        box-shadow: none;
        break-after: page;
        page-break-after: always;
        overflow: hidden;
      }
      .page:last-child {
        break-after: auto;
        page-break-after: auto;
      }
    }

    @media screen and (max-width: 820px) {
      .document { padding: 0; }
      .page {
        width: 100%;
        min-height: auto;
        margin: 0;
        padding: 24px 22px 36px;
        box-shadow: none;
      }
    }
  
