html {
  scroll-behavior: smooth;
}

[id] {
  scroll-margin-top: 70px;
}

.skip-link {
  position: fixed;
  z-index: 9999;
  top: 0;
  left: 0;
  padding: 10px 16px;
  background: #fff;
  color: #016e32;
  transform: translateY(-120%);
}

.skip-link:focus {
  transform: translateY(0);
}

a:focus-visible,
button:focus-visible,
label:focus-visible {
  outline: 3px solid #ffb917;
  outline-offset: 3px;
}

.news_detail .detail {
  overflow-wrap: anywhere;
}

.news_detail .detail img,
.news_detail .detail iframe,
.news_detail .detail table {
  max-width: 100%;
}

.news-pagination {
  margin: 32px 0 8px;
}

.news-pagination ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  padding: 0;
  list-style: none;
}

.news-pagination a,
.news-pagination span {
  display: block;
  min-width: 40px;
  padding: 9px 11px;
  border-radius: 4px;
  background: #2e2000;
  color: #fff;
  text-align: center;
  text-decoration: none;
}

.news-pagination a:hover,
.news-pagination span[aria-current="page"] {
  background: #016e32;
}

.section-page-intro {
  margin-top: 24px;
  margin-bottom: 32px;
  text-align: center;
}

.section-page-intro p {
  max-width: 760px;
  margin: 0 auto;
}

.section-page-link,
.section-page-links {
  margin-top: 24px;
  text-align: center;
}

.section-page-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 24px;
}

.section-page-link a,
.section-page-links a {
  font-weight: bold;
}

.section-page .d-page-title {
  margin-top: 0;
}

.managed-menu-section { padding-bottom: 72px; }
.d-globalnav-box {
  height: 100vh;
  height: 100dvh;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
}
.d-globalnav-box ul.d-globalnav-nav li.menu-type-nav-item a { padding-left: 2.5em; font-size: .92em; }
.d-globalnav-box ul.d-globalnav-nav li.menu-type-nav-item a::before { content: "\f105"; }
.menu-page-body { max-width: 850px; margin: 0 auto 30px; }
.sub_visual.sub_visual--single { font-size: 28px; }
.menu-type-grid { display: grid; grid-template-columns: 1fr; gap: 20px; max-width: 920px; margin: 32px auto 0; }
.menu-type-card { display: block; min-height: 0; border: 1px solid #d2dfd6; border-radius: 8px; padding: 24px; background: #fff; box-shadow: 0 7px 22px rgb(31 74 50 / 9%); color: #28431f; text-decoration: none; }
.menu-type-card:hover { border-color: #178348; color: #28431f; text-decoration: none; transform: translateY(-2px); }
.menu-type-card h3 { margin: 12px 0 8px; font-size: 24px; }
.menu-type-card p { margin: 0 0 16px; }
.menu-type-card-link { color: #08723c; font-weight: bold; }
.managed-menu-type { padding-bottom: 70px; }
.page-menu-type .menu-article-title { margin: 0 0 1em; font-size: 36px; font-weight: 500; line-height: 1.1; }
.page-menu-type .menu-article-title small { color: inherit; font-size: 75%; }
.menu-article-separator { height: 1px; margin: 56px 0; background: rgb(41 80 58 / 22%); }

.section-page #coach .con-coach-cntr {
  margin-top: 0;
}

#coach .coach-separator {
  width: min(1080px, calc(100% - 30px));
  height: 1px;
  margin: 56px auto;
  background: rgb(41 80 58 / 22%);
}

#coach .coach-message p:last-of-type {
  margin-bottom: 0;
}

#coach .coach-message {
  font-size: 16px;
  line-height: 1.42857143;
}

#coach dl.d-dl-center ul {
  padding-left: 1.5em;
}

.not-found {
  min-height: 55vh;
  padding-top: 130px;
  padding-bottom: 80px;
  text-align: center;
}

@media (max-width: 767px) {
  .menu-type-grid { grid-template-columns: 1fr; }
  .menu-type-card { min-height: 0; }
  .news_list li a .date {
    display: block;
    width: auto;
    margin-bottom: 4px;
  }

  #single_navi .post a {
    padding: 11px 13px;
  }
}
