/* Continuous web reading: navigation stays available; the footer closes the page.
   Excluded from the separately composed A4 edition. */
html { scroll-padding-top: 112px; }
.web-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--paper);
  background-image: url("03_%E7%BA%B8%E5%BC%A0%E7%BA%B9%E7%90%86/editorial-paper.svg");
  background-size: 640px 640px;
  border-bottom: 1px solid var(--rule);
}
.web-header .masthead {
  min-height: 0;
  padding-block: 16px;
  margin: 0;
  border: 0;
  gap: 16px 32px;
}
.web-header .brand {
  color: var(--ink);
  font-family: var(--type-title);
  font-style: normal;
  text-decoration: none;
  font-variation-settings: normal;
}
.web-header .brand-mark { width: 32px; height: 32px; flex-basis: 32px; }
.web-header .brand-en { font-size: 17px; }
.web-header .document-nav a { padding: 6px 14px; }
.skip-link { z-index: 30; }
.web-footer {
  margin-top: 64px;
  padding-block: 40px 48px;
  border-top: 1px solid var(--rule);
  font-family: var(--type-title);
  font-variation-settings: normal;
}
.footer-inner { display: flex; justify-content: space-between; gap: 32px; align-items: flex-start; }
.footer-title { font-size: 18px; line-height: 28px; font-weight: 600; letter-spacing: 0; }
.footer-description { margin-top: 8px; color: var(--muted); font-size: 12px; line-height: 24px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: baseline; font-size: 13px; line-height: 24px; }
.footer-links a { font-family: var(--type-title); font-style: normal; font-variation-settings: normal; }
@media (max-width: 1023px) {
  html { scroll-padding-top: 152px; }
}
@media (max-width: 599px) {
  .web-header .masthead { padding-block: 12px; gap: 12px; }
  .web-header .brand-en { font-size: 16px; }
  .web-header .document-nav { gap: 6px; }
  .web-header .document-nav a { padding: 5px 11px; }
  .web-footer { margin-top: 48px; padding-block: 32px; }
  .footer-inner { flex-direction: column; gap: 24px; }
}
