/* 本文・見出し・関連リンク。既存の配色と書体を引き継ぐ。 */
body.skip-splash #splash,
body.skip-splash .splashbg1,
body.skip-splash .splashbg2 { display: none; }
body.skip-splash #container { opacity: 1; animation: none; }
.site-main--with-hero { padding-top: 100px; }
.site-page-header,
.site-copy,
.site-related {
  width: calc(100% - 40px);
  max-width: 1000px;
  margin: 56px auto;
  font-size: 1.8rem;
  line-height: 2;
}
.site-page-header h1 {
  margin: 16px 0 24px;
  color: #22633a;
  font-size: clamp(2.6rem, 4vw, 4rem);
  font-weight: 700;
  line-height: 1.6;
}
.site-page-header p + p,
.site-copy p + p { margin-top: 20px; }
.site-source { font-size: 1.5rem; }
.site-breadcrumb {
  width: calc(100% - 40px);
  max-width: 1000px;
  margin: 0 auto;
  padding: 18px 0;
  border-bottom: 1px solid #d4dfd7;
  color: #526456;
  font-size: 1.4rem;
  line-height: 1.8;
}
.site-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 0; padding: 0; list-style: none; }
.site-breadcrumb li { display: flex; align-items: baseline; gap: 12px; max-width: 100%; min-width: 0; }
.site-breadcrumb a,
.site-breadcrumb [aria-current] { min-width: 0; overflow-wrap: anywhere; }
.site-breadcrumb a { color: #22633a; text-decoration: underline; text-underline-offset: .2em; }
.site-breadcrumb a:hover { color: #113f26; }
.site-breadcrumb a:focus-visible { outline: 2px solid #b27611; outline-offset: 4px; }
.site-breadcrumb__separator { flex: none; color: #748378; }
.site-breadcrumb + .site-page-header { margin-top: 32px; }
.site-main--plain > .p-privacy { margin-top: 32px; }
.site-contact-section { padding-top: 32px; }
.site-page-header + .l-philosophy,
.site-page-header + .l-recruitment { margin-top: 64px; }
.site-copy--intro { margin-top: 40px; margin-bottom: 40px; }
.site-section { margin-top: 64px; scroll-margin-top: 120px; }
.site-section h2 {
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid #d4dfd7;
  color: #22633a;
  font-size: clamp(2.1rem, 3vw, 2.8rem);
  font-weight: 700;
  line-height: 1.65;
}
.site-section h3 { margin: 32px 0 16px; font-size: 2rem; font-weight: 700; }
.site-copy ul { margin: 24px 0; padding-left: 1.5em; list-style: disc; }
.site-copy li + li { margin-top: 10px; }
.site-related { padding: 24px 32px; border: 1px solid #d4dfd7; background: #f0f6f1; }
.site-related ul { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 12px; }
.site-context-link { margin: 32px 0; font-size: 1.8rem; line-height: 2; }
.site-text-link,
.site-copy a,
.site-related a,
.site-page-header a { color: #22633a; text-decoration: underline; text-underline-offset: .2em; }
.site-copy a:focus-visible,
.site-related a:focus-visible,
.site-text-link:focus-visible { outline: 3px solid #b27611; outline-offset: 4px; }
.l-preface__text .site-text-link {
  color: #113f26;
  background: #fff;
  padding: .1em .2em;
  font-weight: 700;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}
.l-preface__text .site-text-link:focus-visible { outline-color: #fff; }
.site-article-image { max-width: 800px; margin: 32px auto 0; }
.site-article-image img { display: block; width: 100%; height: auto; }
.site-article-image figcaption { margin-top: 12px; font-size: 1.5rem; }
.l-footer__list,
.l-footer__list--2 { flex-wrap: wrap; gap: 16px 32px; }
.l-footer__item { display: inline-block; margin-right: 0; white-space: nowrap; }
.site-main--plain { padding-top: 120px; }
#site-operator,
#ceo { scroll-margin-top: 120px; }
@media (min-width: 1301px) {
  .l-preface__box { position: relative; z-index: 1; }
  /* 重なりは写真上部の余白に限定し、人物の顔を隠さない。 */
  .l-preface__img__body { position: relative; bottom: auto; margin-top: -60px; z-index: 0; }
  .l-preface__img { display: block; }
  .l-preface + .l-overview { margin-top: 15rem; }
}
@media (max-width: 768px) {
  .site-main--with-hero { padding-top: 70px; }
  .site-main--plain { padding-top: 90px; }
  .site-breadcrumb { padding: 14px 0; font-size: 1.3rem; }
  .site-page-header,
  .site-copy,
  .site-related { margin-top: 32px; margin-bottom: 32px; font-size: 1.6rem; }
  .site-related { padding: 20px; }
  .site-related ul { flex-direction: column; gap: 12px; }
  .site-section,
  .site-page-header + .l-philosophy,
  .site-page-header + .l-recruitment { margin-top: 40px; }
  .site-context-link { font-size: 1.6rem; }
}
