/* Opt-in styles for standard content pages; preserve existing colors. */
body.site-page {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.7;
}
.site-page #content {
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  margin: 24px auto;
  overflow-wrap: anywhere;
}
.site-page #header, .site-page #empty { width: 100%; }
.site-page #menu {
  box-sizing: border-box;
  width: 100%;
  display: flow-root;
  line-height: 1.4;
}
.site-page #left, .site-page #right, .site-page #regcont {
  box-sizing: border-box;
  float: none;
  width: 100%;
  padding: 26px 8px 0;
}
.site-page #right:empty { padding: 0; }
.site-page.two-column #left, .site-page.two-column #right {
  float: left;
  width: 50%;
}
.site-page.two-column #left { padding-right: 20px; }
.site-page.two-column #right { padding-left: 20px; }
.site-page img { max-width: 100%; height: auto; }
.site-page #content > img { width: 100%; }
.site-page table { max-width: 100%; }
.site-page td { font-size: inherit; line-height: inherit; overflow-wrap: anywhere; }
.site-page h3 { margin-top: 24px; margin-bottom: 12px; font-size: 20px; line-height: 1.5; color: #40563d; }
.site-page h4 { margin-top: 24px; margin-bottom: 12px; font-size: 18px; line-height: 1.5; color: #40563d; }
.site-page p { margin: 0 0 16px; }
@media (max-width: 799.98px) {
  .site-page #content { margin: 12px auto; }
  .site-page #left, .site-page #right, .site-page #regcont {
    float: none;
    width: 100%;
    padding: 20px 8px 0;
  }
  .site-page.two-column #left, .site-page.two-column #right {
    float: none;
    width: 100%;
    padding: 20px 8px 0;
  }
}

/* Photo galleries and the single-column extension project pages. */
.site-page #photo { box-sizing: border-box; width: 100%; padding: 26px 8px 0; }
.site-page .photo-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.site-page .photo-item { min-width: 0; }
.site-page .photo-item img { display: inline-block; vertical-align: top; }
.extension-page #content { padding: 5px; }
.extension-page #header { margin-bottom: 16px; }
.extension-page #cont { padding: 0 8px; }
.extension-page h2 { margin: 32px 0 12px; font-size: 24px; line-height: 1.5; color: #40563d; }
.extension-page li + li { margin-top: 12px; }
.extension-page #footer { text-align: right; }
@media (max-width: 799.98px) {
  .site-page #photo { padding-top: 20px; }
  .site-page .photo-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}
@media (max-width: 479.98px) {
  .site-page .photo-gallery { grid-template-columns: minmax(0, 1fr); }
}
