:root { color: #222; background: #d9e1e8; font-family: "ＭＳ Ｐゴシック", "MS PGothic", Osaka, sans-serif; }
html { min-height: 100%; overflow-x: hidden; overflow-y: auto; }
* { box-sizing: border-box; }
:root a { color: #0000cc; text-decoration: underline; }
body { min-height: 100%; margin: 0; padding: 9px 0 92px; overflow-x: hidden; overflow-y: auto; background-color: #dce6ed; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 42 42'%3E%3Cpath d='M21 6C17 12 12 17 12 24a9 9 0 0 0 18 0c0-7-5-12-9-18Z' fill='none' stroke='%23869caf' stroke-width='1.25' opacity='.62'/%3E%3Cpath d='M16.5 24c0 2.1 1.1 3.7 2.7 4.6' fill='none' stroke='%23869caf' stroke-width='1.1' stroke-linecap='round' opacity='.5'/%3E%3C/svg%3E"); background-size: 42px 42px; font-size: 15px; line-height: 1.55; }
.site-shell { width: 820px; margin: 0 auto; border: 2px solid #6b8096; background: #fff; box-shadow: 2px 2px 0 #aab7c5; }
.site-header { min-height: 99px; padding: 17px 25px 12px; border-bottom: 1px solid #8094a9; background: #eef4f8; }
.site-brand { display: flex; align-items: center; gap: 15px; }
.site-brand img { width: 58px; height: 58px; object-fit: contain; object-position: center; }
.site-header h1 { margin: 0; color: #073777; font: bold 31px/1.2 "ＭＳ 明朝", "MS Mincho", serif; letter-spacing: .08em; }
.site-header p { margin: 11px 0 0; color: #41566b; font: 13px "ＭＳ Ｐゴシック", sans-serif; }
.global-nav { padding: 7px 21px; border-top: 1px solid #b8c6d4; border-bottom: 1px solid #71869c; background: #dbe8f2; color: #526577; font-size: 14px; }
.layout { display: grid; grid-template-columns: 548px 1fr; gap: 13px; padding: 15px 15px 28px; }
main { min-width: 0; }
.intro { margin-bottom: 14px; padding: 9px 12px; border: 1px solid #a6b6c6; background: #f7fbff; }
.intro h2, .entry h2, aside h2 { margin: 0; font-size: 17px; }
.intro h2 { color: #073777; }
.intro p { margin: 8px 0 0; }
.content-list { margin: 12px 8px 4px; padding-left: 22px; }
.content-list li { margin-bottom: 8px; }
.home-greeting p { margin: 12px 4px 0; font-size: 16px; line-height: 1.8; }
.home-profile { margin-top: 18px; }
.home-profile dl { display: grid; grid-template-columns: 124px 1fr; margin: 13px 4px 4px; border-top: 1px solid #b6c4d2; font-size: 15px; }
.home-profile dt, .home-profile dd { min-height: 32px; padding: 6px 8px; margin: 0; border-bottom: 1px solid #b6c4d2; }
.home-profile dt { border-right: 1px solid #b6c4d2; background: #e9f0f6; color: #173e72; font-weight: bold; }
.home-profile h3 { margin: 20px 4px 8px; color: #173e72; font-size: 16px; }
.member-list { width: calc(100% - 8px); margin: 0 4px 4px; border-collapse: collapse; font-size: 14px; }
.member-list th, .member-list td { padding: 5px 8px; border: 1px solid #aebdca; text-align: left; }
.member-list th { background: #dbe7f1; color: #173e72; }
.member-list td:last-child { width: 42%; }
.visitor-counter { margin: 33px 0 0; color: #333; font: 15px/1.4 "ＭＳ Ｐゴシック", sans-serif; text-align: center; }
.visitor-counter span { display: inline-block; padding: 3px 6px; border: 2px inset #aaa; background: #111; color: #00ff28; font-family: "Courier New", monospace; font-weight: bold; letter-spacing: 3px; }
.missing-page { min-height: 270px; padding: 34px 22px; border: 1px solid #9aabba; background: #f8fbfd; }
.missing-page h2 { margin: 0; padding: 6px 8px; border: 1px solid #8ba0b6; background: #d9e6f0; color: #092f69; font-size: 18px; }
.missing-page p { margin: 18px 7px 0; font-size: 16px; line-height: 1.75; }
.entry { padding: 0 0 17px; margin-bottom: 18px; border-bottom: 1px dashed #879bad; }
.entry h2 { padding: 5px 9px; border: 1px solid #8ba0b6; background: #d9e6f0; color: #092f69; font-size: 17px; font-weight: bold; }
.entry-image { width: 460px; max-width: calc(100% - 10px); margin: 12px 5px 0; border: 1px solid #9aabba; background: #fff; }
.entry-image img { display: block; width: 100%; height: auto; }
.entry p { margin: 11px 5px 0; line-height: 1.72; }
.entry-meta { color: #687a8c; font-size: 13px; text-align: right; }
.entry-comments { margin: 16px 5px 0; padding-top: 10px; border-top: 1px solid #aebdca; }
.entry-comments h3 { margin: 0 0 8px; color: #173e72; font-size: 15px; }
.article-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 23px 4px 0; padding: 8px 10px; border-top: 1px solid #b4c1cd; border-bottom: 1px solid #b4c1cd; background: #f4f8fb; font-size: 14px; }
.article-pager span { min-width: 92px; }
.article-pager span:last-child { text-align: right; }
.article-pager a { color: #0000cc; }
.comments-page { border-bottom: 0; }
.comment { margin: 13px 5px 0; padding: 10px; border: 1px solid #b8c6d4; background: #f6f9fc; }
.comment strong { color: #173e72; font-size: 14px; }
.comment small { margin-left: 11px; color: #6c7f91; font-size: 12px; }
.comment p { margin: 7px 0 0; font-size: 14px; }
.comment-closed { padding: 8px 10px; border: 1px solid #d3d9df; background: #f6f6f6; color: #66727d; font-size: 13px; }
.pager { margin-top: 22px; text-align: center; }
aside { padding-top: 0; }
aside section { margin-bottom: 12px; border: 1px solid #8fa3b5; background: #fff; }
aside h2 { padding: 5px 7px; border-bottom: 1px solid #8fa3b5; background: #d5e3ee; color: #102f58; font-size: 15px; }
aside h2 a { color: inherit; }
aside p, aside ul { margin: 8px; line-height: 1.48; }
aside ul { padding-left: 20px; }
aside li { margin-bottom: 5px; font-size: 14px; }
.profile { background: #f5f9fc; }
footer { padding: 10px; border-top: 1px solid #8094a9; background: #e3ebf2; color: #4f6275; font: 12px "ＭＳ Ｐゴシック", sans-serif; text-align: center; }
.staff-only { color: #f2f2f2; background-color: #030303; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='42' viewBox='0 0 42 42'%3E%3Cpath d='M21 6C17 12 12 17 12 24a9 9 0 0 0 18 0c0-7-5-12-9-18Z' fill='none' stroke='%23e8e8e8' stroke-width='1.25' opacity='.22'/%3E%3C/svg%3E"); }
.staff-only .site-shell { border-color: #eee; background: #080808; box-shadow: 2px 2px 0 #626262; }
.staff-only .site-header { border-bottom-color: #d8d8d8; background: #101010; }
.staff-only .site-brand img { filter: grayscale(1) invert(1); }
.staff-only .site-header h1 { color: #fff; }
.staff-only .site-header p { color: #d2d2d2; }
.staff-only .global-nav { border-color: #d6d6d6; background: #202020; color: #eee; }
.staff-only .global-nav a { color: #fff; }
.staff-only .layout { background: #080808; }
.staff-only .staffonly-notice, .staff-only .confidential-entry { border-color: #eee; background: #131313; color: #f4f4f4; }
.staffonly-notice { margin-bottom: 14px; padding: 12px; border: 1px solid; }
.staffonly-label { margin: 0 0 8px; color: #fff; font-weight: bold; letter-spacing: .08em; }
.staff-only .staffonly-notice h2, .staff-only .confidential-entry h2 { border-color: #f3f3f3; background: #2a2a2a; color: #fff; }
.staff-only .confidential-entry { border-left: 6px solid #fff; }
.staff-only .entry-meta { border-color: #777; color: #ddd; }
.staff-directory { border: 1px solid #eee; background: #101010; color: #f7f7f7; }
.staff-directory-count { margin: 0; padding: 9px 11px; border-bottom: 1px solid #eee; background: #252525; color: #fff; font-size: 13px; }
.staff-directory-scroll { overflow-x: auto; }
.staff-directory table { width: 100%; min-width: 650px; border-collapse: collapse; font-size: 13px; }
.staff-directory th, .staff-directory td { padding: 7px 8px; border: 1px solid #8a8a8a; color: #fff; text-align: left; white-space: nowrap; }
.staff-directory th { background: #303030; font-weight: bold; }
.staff-directory tbody tr:nth-child(even) td { background: #1b1b1b; }
.staff-directory tbody tr:nth-child(odd) td { background: #101010; }
.staff-directory td:last-child { min-width: 78px; }
.staff-record-list { padding: 12px; border: 1px solid #eee; background: #131313; color: #f5f5f5; }
.staff-record-list h2 { margin: 0; padding-bottom: 7px; border-bottom: 1px solid #aaa; color: #fff; font-size: 16px; }
.staff-record-list ul { margin: 11px 0 2px; padding-left: 21px; }
.staff-record-list li { margin: 9px 0; }
.staff-record-list a { color: #fff; text-decoration-color: #cfcfcf; text-underline-offset: 2px; }
.staff-record-list a:hover, .staff-record-list a:focus-visible { background: #f2f2f2; color: #111; outline: 0; }
.staff-only .staff-only-menu section { margin-bottom: 12px; border: 1px solid #eee; background: #161616; color: #f5f5f5; }
.staff-only .staff-only-menu h2 { padding: 5px 7px; border-bottom: 1px solid #eee; background: #2a2a2a; color: #fff; font-size: 15px; }
.staff-only .staff-only-menu p, .staff-only .staff-only-menu ul { margin: 8px; line-height: 1.48; }
.staff-only .staff-only-menu ul { padding-left: 20px; }
.staff-only .staff-only-menu li { margin-bottom: 5px; font-size: 14px; }
.staff-only .staff-only-menu a { color: #fff; text-decoration-color: #cfcfcf; text-underline-offset: 2px; }
.staff-only .staff-only-menu a:hover, .staff-only .staff-only-menu a:focus-visible { background: #f2f2f2; color: #111; outline: 0; }
.staff-only .pager a { color: #fff; text-decoration-color: #cfcfcf; text-underline-offset: 2px; }
.staff-only .pager a:hover, .staff-only .pager a:focus-visible { background: #f2f2f2; color: #111; outline: 0; }
.staff-only .article-pager { border-color: #aaa; background: #161616; color: #fff; }
.staff-only .article-pager a { color: #fff; text-decoration-color: #cfcfcf; }
.staff-only .article-pager a:hover, .staff-only .article-pager a:focus-visible { background: #f2f2f2; color: #111; outline: 0; }
.staff-only footer { border-top-color: #eee; background: #101010; color: #eee; }
@media (max-width: 800px) { body { padding: 0; }.site-shell { width: 100%; border: 0; }.layout { grid-template-columns: 1fr; }.layout aside { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.layout aside section { margin-bottom: 0; } }

/* 擬似ブラウザ内ではiframe自身がPC幅を報告する場合があるため、親から渡された
   モバイル表示では実画面幅を基準に旧サイトを一段組へ組み替える。 */
html:has(body.archive-embedded-mobile),
body.archive-embedded-mobile { min-width: 0; overflow-x: hidden; }
body.archive-embedded-mobile {
  min-height: 100%;
  padding: 0 0 108px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
body.archive-embedded-mobile .site-shell {
  width: min(calc(100% - 20px), calc(var(--archive-mobile-frame-width, 390px) - 20px));
  max-width: calc(var(--archive-mobile-frame-width, 390px) - 20px);
  margin: 10px 0 118px 10px;
  border: 1px solid #6b8096;
  box-shadow: none;
}
body.archive-embedded-mobile .site-header { min-height: 0; padding: 14px 15px 12px; }
body.archive-embedded-mobile .site-brand { gap: 10px; }
body.archive-embedded-mobile .site-brand img { width: 38px; height: 38px; flex: 0 0 38px; }
body.archive-embedded-mobile .site-header h1 { font-size: 20px; line-height: 1.3; letter-spacing: .03em; }
body.archive-embedded-mobile .site-header p { margin-top: 5px; font-size: 10px; line-height: 1.45; }
body.archive-embedded-mobile .global-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 7px;
  padding: 8px 12px;
  font-size: 12px;
  line-height: 1.5;
}
body.archive-embedded-mobile .layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  padding: 13px 12px 30px;
}
body.archive-embedded-mobile .intro,
body.archive-embedded-mobile .entry,
body.archive-embedded-mobile .missing-page { min-width: 0; }
body.archive-embedded-mobile .intro { padding: 10px 11px; }
body.archive-embedded-mobile .intro h2,
body.archive-embedded-mobile .entry h2,
body.archive-embedded-mobile .missing-page h2 { font-size: 15px; line-height: 1.45; }
body.archive-embedded-mobile .intro p,
body.archive-embedded-mobile .entry p,
body.archive-embedded-mobile .missing-page p { font-size: 14px; line-height: 1.75; overflow-wrap: anywhere; }
body.archive-embedded-mobile .home-greeting p { font-size: 14px; line-height: 1.75; }
body.archive-embedded-mobile .content-list { padding-left: 19px; }
body.archive-embedded-mobile .content-list li { font-size: 14px; overflow-wrap: anywhere; }
body.archive-embedded-mobile .entry-image { width: calc(100% - 10px); max-width: none; }
body.archive-embedded-mobile .entry-meta { font-size: 11px; text-align: left; }
body.archive-embedded-mobile .article-pager { flex-wrap: wrap; gap: 8px; font-size: 12px; }
body.archive-embedded-mobile .article-pager span { min-width: 0; }
body.archive-embedded-mobile .home-profile dl { grid-template-columns: 92px minmax(0, 1fr); font-size: 13px; }
body.archive-embedded-mobile .home-profile dt,
body.archive-embedded-mobile .home-profile dd { min-width: 0; padding: 6px; overflow-wrap: anywhere; }
body.archive-embedded-mobile .member-list { font-size: 12px; }
body.archive-embedded-mobile .member-list th,
body.archive-embedded-mobile .member-list td { padding: 5px; overflow-wrap: anywhere; }
body.archive-embedded-mobile .layout aside { display: block; min-width: 0; }
body.archive-embedded-mobile .layout aside section { margin-bottom: 12px; }
body.archive-embedded-mobile aside h2 { font-size: 14px; }
body.archive-embedded-mobile aside p,
body.archive-embedded-mobile aside li { font-size: 13px; overflow-wrap: anywhere; }
body.archive-embedded-mobile .staff-directory-scroll { max-width: 100%; }
body.archive-embedded-mobile .staff-directory table { min-width: 540px; font-size: 12px; }
body.archive-embedded-mobile footer { margin-bottom: 108px; padding: 10px 12px; font-size: 10px; line-height: 1.5; }
