@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&display=swap");
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 15px;
  font-family: "Meiryo", sans-serif;
}
@media screen and (max-width: 768px) {
  html {
    font-size: 14px;
  }
}

body {
  -webkit-text-size-adjust: 100%;
  position: relative;
  height: 100%;
  min-height: 100%;
  background-color: #FFFFFF;
  line-height: 1.8;
}

.wrap {
  width: 100%;
  max-width: 1020px;
  margin: 0 auto;
  padding: 0;
}
@media screen and (max-width: 768px) {
  .wrap {
    padding: 0 1rem;
  }
}

.wrap-narrow {
  width: 100%;
  max-width: 870px;
  margin: 0 auto;
  padding: 0;
}
@media screen and (max-width: 768px) {
  .wrap-narrow {
    padding: 0 1rem;
  }
}

.site-container {
  position: relative;
  margin-bottom: 128px;
}
@media screen and (max-width: 768px) {
  .site-container {
    margin-bottom: 64px;
    padding: 0 1rem;
  }
}
.site-container__inner {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 64px 40px;
  padding: 0;
}
@media screen and (max-width: 768px) {
  .site-container__inner {
    flex-wrap: wrap;
  }
}
.site-container__header .page-title {
  width: 100%;
  margin: 64px 0 0;
  font-size: 40px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .site-container__header .page-title {
    margin: 40px 0 0;
    font-size: 32px;
  }
}
.site-container a {
  transition: all 0.3s ease-in-out;
}
.site-container a:hover {
  opacity: 0.75;
  filter: opacity(75%);
}

.youtube {
  width: 100%;
  aspect-ratio: 16/9;
}
.youtube iframe {
  width: 100%;
  height: 100%;
}

/* Header
--------------------------------------------- */
.site-header {
  position: relative;
  background-image: url(../img/common/header_bg.jpg);
  background-repeat: no-repeat;
  background-position: 50% top;
}
.site-header.is-fixed {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  width: 100%;
  transition: all 0.3s ease-in-out;
}
.site-header.is-fixed .site-header-logo {
  padding: 8px 0;
}
.site-header.is-fixed .site-header-sns {
  display: none;
}
@media screen and (max-width: 768px) {
  .site-header {
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
  }
}
@media print {
  .site-header {
    display: none;
  }
}
.site-header-info {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 768px) {
  .site-header-info {
    width: calc(100% - 50px);
  }
}
.site-header-logo {
  padding: 14px 0 30px;
}
@media screen and (max-width: 768px) {
  .site-header-logo {
    padding: 6px 8px;
  }
}
.site-header-logo a {
  color: #333333;
  text-decoration: none;
}
.site-header-logo dl {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .site-header-logo dl {
    gap: 4px;
  }
}
.site-header-logo dt {
  width: 72px;
}
@media screen and (max-width: 768px) {
  .site-header-logo dt {
    width: 42px;
  }
}
.site-header-logo dt img {
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.site-header-logo dd {
  width: calc(100% - 78px);
  font-size: 24px;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .site-header-logo dd {
    width: calc(100% - 42px);
    font-size: 1rem;
  }
}
.site-header-logo dd span {
  display: block;
  font-size: 12px;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .site-header-logo dd span {
    display: none;
  }
}
.site-header-contact {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
@media screen and (max-width: 768px) {
  .site-header-contact {
    display: none;
  }
}
.site-header-contact_link {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  gap: 1rem;
}
.site-header-contact_link .btn-primary {
  font-size: 1rem;
}
.site-header-contact_tel a {
  display: block;
  font-size: 1rem;
  line-height: 1;
  text-decoration: none;
  color: #333333;
  font-weight: 600;
  margin: 0;
}
.site-header-contact_tel a b {
  padding-left: 0.25rem;
  font-size: 21px;
}
.site-header-contact_tel small {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  margin: -4px 0 0;
  line-height: 1;
  gap: 0 1em;
  justify-content: flex-end;
  font-size: 10px;
  color: #666666;
}
.site-header-sns {
  display: block;
}
@media screen and (max-width: 768px) {
  .site-header-sns {
    display: none;
  }
}
.site-header-global {
  position: relative;
  border-top: 1px solid #DDDDDD;
  background-image: url(../img/common/nav_bg.jpg);
  background-repeat: no-repeat;
  background-position: top center;
}
@media screen and (max-width: 768px) {
  .site-header-global {
    display: none;
  }
}
.site-header-global::after {
  content: "";
  display: inline-block;
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 100%;
  height: 5px;
  background-image: linear-gradient(90deg, rgb(98, 162, 208), rgba(230, 241, 247, 0.6) 50%, rgb(98, 162, 208));
}
.site-header-global-list {
  display: -moz-grid;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-template-rows: 1fr;
  gap: 0;
  list-style-type: none;
}
.site-header-global-list li {
  position: relative;
}
.site-header-global-list li a {
  display: block;
  position: relative;
  height: 50px;
  padding: 12px 0;
  border-right: 1px solid #DDDDDD;
  border-left: 1px solid #FFFFFF;
  background-image: url(../img/common/nav_btn.png);
  background-position: 0 -1px;
  background-size: auto;
  background-repeat: no-repeat;
  color: #333333;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}
.site-header-global-list li a:hover {
  background-image: url(../img/common/nav_btn-hover.png);
}
.site-header-global-list li.menu-item-has-children:hover .sub-menu {
  display: block;
  visibility: visible;
  opacity: 1;
}
.site-header-global-list li.menu-item-has-children::after {
  content: "\f0d7";
  display: inline-block;
  position: absolute;
  bottom: 0;
  left: 50%;
  color: #333333;
  font-size: 0.85rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
  transform: translateX(-50%);
}
.site-header-global-list li.menu-item-has-children .sub-menu {
  display: none;
  position: absolute;
  top: 50px;
  left: 0;
  visibility: hidden;
  opacity: 0;
  z-index: 999;
  width: -moz-fit-content;
  width: fit-content;
  min-width: 100%;
  margin: 0;
  padding: 0;
}
.site-header-global-list li.menu-item-has-children .sub-menu li {
  width: 100%;
  padding: 0;
  font-size: 1rem;
  font-weight: 700;
  list-style-type: none;
}
.site-header-global-list li.menu-item-has-children .sub-menu li a {
  width: 100%;
  height: auto;
  padding: 10px 1rem;
  border-top: 1px solid #325f83;
  border-bottom: 1px solid #002c50;
  border-left: none;
  background: rgba(0, 56, 101, 0.95);
  background-image: none;
  color: #FFFFFF;
  text-align: left;
  white-space: nowrap;
}
.site-header-global-list li.menu-item-has-children .sub-menu li a:hover {
  background: rgba(0, 44, 88, 0.95);
}
.site-header-sp-btn {
  display: none;
}
@media screen and (max-width: 768px) {
  .site-header-sp-btn {
    display: block;
  }
}
.site-header-sp-btn a {
  display: block;
  width: 50px;
  height: 50px;
  padding: 4px 0;
  background-color: #D7E2E3;
  color: #333333;
  font-size: 12px;
  font-weight: 400;
  text-align: center;
  text-decoration: none;
  line-height: 0;
}
.site-header-sp-btn i {
  color: #333333;
  font-size: 24px;
  font-weight: 700;
}
.site-header-sp-btn .menu-hide {
  display: none !important;
}
.site-header-sp-nav {
  display: none;
}
.site-header-sp-nav.nav-open {
  display: block;
  position: absolute;
  top: 50px;
  left: 0;
  z-index: 999;
  width: 100%;
  height: calc(100vh - 50px);
  background-color: #FFFFFF;
}
.site-header-sp-nav-list {
  width: 100%;
  margin: 0;
  padding: 0;
}
.site-header-sp-nav-list li {
  border-top: 1px dotted #939999;
  list-style-type: none;
}
.site-header-sp-nav-list li.menu-item a::after {
  content: "\f105";
}
.site-header-sp-nav-list li.menu-item-has-children a::after {
  content: "+";
}
.site-header-sp-nav-list li.main a {
  background-color: #c0d2d4;
}
.site-header-sp-nav-list li a {
  display: block;
  position: relative;
  padding: 0.75rem 1rem;
  background-color: #ebf1f1;
  color: #333333;
  font-size: 1rem;
  text-decoration: none;
}
.site-header-sp-nav-list li a::after {
  position: absolute;
  top: 50%;
  right: 1rem;
  color: #333333;
  font-size: 1rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
  text-align: center;
  transform: translateY(-50%);
}
.site-header-sp-nav-list li .sub-menu {
  display: none;
}
.site-header-sp-nav-list li .sub-menu.menu-open {
  display: block !important;
}
.site-header-sp-nav-list li .sub-menu.menu-open a {
  background-color: #c0d2d4;
}
.site-header-sp-nav .sp-nav-link.main a {
  background-color: #c0d2d4;
}
.site-header-sp-nav .sp-nav-link a {
  display: block;
  padding: 0.5rem 1rem;
  background-color: #ebf1f1;
  color: #333333;
  font-size: 1rem;
}
.site-header-sp-nav .sp-nav-link i {
  margin-right: 4px;
}
.site-header-sp-nav .sp-nav-link.phone {
  text-align: center;
}
.site-header-sp-nav .sp-nav-sns {
  display: none;
}
@media screen and (max-width: 768px) {
  .site-header-sp-nav .sp-nav-sns {
    display: block;
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }
}
.site-header-sp-nav .sp-nav-txt {
  margin-top: 4px;
  font-size: 14px;
  font-family: "Noto Serif JP", serif;
  text-align: center;
}

/* hamburger
--------------------------------------------- */
.hamburger-menu {
  display: none;
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 9999;
  width: 50px;
  height: 50px;
  border: none;
  border-radius: 50%;
  background-color: #333333;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  cursor: pointer;
}
@media screen and (max-width: 1140px) {
  .hamburger-menu {
    display: inline-block;
  }
}
.hamburger-menu__bar {
  display: inline-block;
  position: absolute;
  left: 50%;
  width: 24px;
  height: 1px;
  background-color: #FFFFFF;
  transform: translateX(-50%);
  transition: all 0.3s ease-in-out;
}
.hamburger-menu__bar:nth-of-type(1) {
  top: 18px;
}
.hamburger-menu__bar:nth-of-type(2) {
  top: 24px;
}
.hamburger-menu__bar:nth-of-type(3) {
  top: 30px;
}
.hamburger-menu--open .hamburger-menu__bar {
  top: 50%;
}
.hamburger-menu--open .hamburger-menu__bar:nth-of-type(1) {
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.hamburger-menu--open .hamburger-menu__bar:nth-of-type(2) {
  transform: translateX(-50%) translateY(-50%) rotate(-45deg);
}
.hamburger-menu--open .hamburger-menu__bar:nth-of-type(3) {
  display: none;
}

.sp-header-navigation {
  display: none;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 999;
  width: 100vw;
  max-width: 475px;
  height: 100vh;
  padding: 0.5rem 1.5rem 30px;
  background: #333333;
}
@media screen and (max-width: 768px) {
  .sp-header-navigation {
    max-width: none;
  }
}
.sp-header-navigation__inner {
  overflow-y: scroll;
  width: 100%;
  height: 100vh;
  padding-bottom: 16vh;
}
.sp-header-navigation__logo {
  width: 59px;
  margin-bottom: 1rem;
}
.sp-header-navigation__logo img {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

.sp-header-btn__list {
  display: -moz-grid;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: 1fr;
  gap: 0 0.5rem;
}
.sp-header-btn__listItem {
  width: 100%;
  list-style-type: none;
}
.sp-header-btn__listItem a {
  display: block;
  position: relative;
  padding: 10px 0 6px;
  border-radius: 4px;
  background-color: #FFFFFF;
  color: #333333;
  font-size: 12px;
  text-align: center;
  text-decoration: none;
}
.sp-header-btn__listItem a::after {
  content: "\f054";
  display: inline-block;
  position: absolute;
  bottom: 6px;
  right: 0.5rem;
  font-size: 10px;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
  transition: all 0.3s ease-in-out;
}
.sp-header-btn__listItem a:hover {
  opacity: 0.6;
}
.sp-header-btn__listItem a:hover::after {
  right: 1rem;
}
.sp-header-btn__listItem img {
  display: block;
  width: auto;
  height: 38px;
  margin: 0 auto 8px;
  -o-object-fit: contain;
     object-fit: contain;
}

.sp-header-global-nav__list {
  margin-bottom: 1rem;
}
.sp-header-global-nav__list li {
  margin-top: 0.5rem;
  list-style-type: none;
}
.sp-header-global-nav__list a {
  display: block;
  position: relative;
  padding: 0.75rem 1rem;
  border-radius: 4px;
  background-color: #FFFFFF;
  color: #333333;
  font-size: 1rem;
  font-weight: bold;
  text-decoration: none;
}
.sp-header-global-nav__list a::after {
  content: "\f054";
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 1.5rem;
  font-size: 0.9rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
  transition: all 0.3s ease-in-out;
  transform: translateY(-50%);
}
.sp-header-global-nav__list a:hover {
  opacity: 0.6;
}
.sp-header-global-nav__list a:hover::after {
  right: 1rem;
}

.sp-header-link__site dd {
  width: 100%;
  margin-bottom: 1rem;
}
.sp-header-link__site dd:last-child {
  margin-bottom: 0;
}
.sp-header-link__site dd a {
  display: block;
  position: relative;
  padding: 1rem;
  border: 1px solid #FFFFFF;
  border-radius: 4px;
  color: #FFFFFF;
  font-size: 1rem;
  font-weight: bold;
  text-align: left;
  text-decoration: none;
}
.sp-header-link__site dd a::after {
  content: "\f08e";
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 1rem;
  font-size: 0.9rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
  transform: translateY(-50%);
}
.sp-header-link__site dd a:hover {
  background-color: #FFFFFF;
  color: #333333;
}
.sp-header-link__sns {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
  list-style-type: none;
}
.sp-header-link__sns li {
  margin-left: 1.5rem;
  list-style-type: none;
}
.sp-header-link__sns li:first-child {
  margin-left: 0;
}
.sp-header-link__sns li a:hover {
  opacity: 0.6;
}
.sp-header-link p {
  margin: 1rem 0;
  color: #FFFFFF;
  font-size: 1rem;
}

/* Footer
--------------------------------------------- */
.site-footer {
  width: 100%;
  padding: 10px 0 30px;
  background-color: #FFFFFF;
}
@media screen and (max-width: 768px) {
  .site-footer {
    padding: 10px 0 0;
  }
}
@media print {
  .site-footer {
    display: none;
  }
}
.site-footer__inner {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: nowrap;
}
@media screen and (max-width: 768px) {
  .site-footer__inner {
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
  }
}
.site-footer-info__logo a {
  color: #333333;
  text-decoration: none;
}
.site-footer-info__logo dl {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
}
@media screen and (max-width: 768px) {
  .site-footer-info__logo dl {
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
  }
}
.site-footer-info__logo dt {
  width: 83px;
  margin-bottom: 8px;
}
@media screen and (max-width: 768px) {
  .site-footer-info__logo dt {
    width: 100%;
    max-width: 360px;
    margin: 0 auto 1rem;
  }
}
.site-footer-info__logo dt img {
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.site-footer-info__logo dd {
  width: calc(100% - 83px);
  font-size: 24px;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .site-footer-info__logo dd {
    width: 100%;
    font-size: 1rem;
    font-weight: 500;
    text-align: center;
  }
}
.site-footer-info__logo dd span {
  display: block;
  font-size: 10px;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .site-footer-info__logo dd span {
    display: none;
  }
}
.site-footer-info-address {
  margin-top: 4px;
  font-size: 12px;
}
@media screen and (max-width: 768px) {
  .site-footer-info-address {
    margin: 1rem auto;
    font-size: 1rem;
    text-align: center;
  }
}
.site-footer-info-address a {
  color: #333333;
  text-decoration: none;
}
.site-footer-info-copyright {
  margin-top: 8px;
  font-size: 12px;
}
@media screen and (max-width: 768px) {
  .site-footer-info-copyright {
    display: none;
  }
}
.site-footer-nav {
  padding-right: 1rem;
}
@media screen and (max-width: 768px) {
  .site-footer-nav {
    padding-right: 0;
  }
}
.site-footer-nav-list {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: flex-start;
  justify-content: flex-end;
  align-items: center;
  grid-area: 0 12px;
}
@media screen and (max-width: 768px) {
  .site-footer-nav-list {
    display: none;
  }
}
.site-footer-nav-list li {
  list-style-type: none;
}
.site-footer-nav-list a {
  padding: 3px 5px;
  color: #003865;
  font-size: 12px;
  text-decoration: none;
}
.site-footer-nav-list a:hover {
  color: rgba(51, 51, 51, 0.67);
}
.site-footer-nav-list a::before {
  content: "\f105";
  display: inline-block;
  position: relative;
  margin-right: 5px;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
}
.site-footer-nav-qr {
  width: 70px;
  margin: 20px 0 0 auto;
}
.site-footer-sns {
  margin: 20px 0 0 auto;
}
@media screen and (max-width: 768px) {
  .site-footer-sns {
    margin: 1rem auto;
  }
}

/* Footer area
--------------------------------------------- */
.footer-area {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  background-color: #003865;
}
@media screen and (max-width: 768px) {
  .footer-area {
    display: block;
    margin: 0;
    padding: 1rem 0;
    background-color: #D7E2E3;
    font-size: 12px;
    text-align: center;
  }
}
@media print {
  .footer-area {
    display: none;
  }
}
.footer-area-nav {
  padding: 20px 0;
}
@media screen and (max-width: 768px) {
  .footer-area-nav {
    display: none;
  }
}
.footer-area-nav-list {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: center;
  align-items: center;
  list-style-type: none;
}
@media print {
  .footer-area-nav-list {
    display: none;
  }
}
.footer-area-nav-list li {
  list-style-type: none;
}
.footer-area-nav-list li::before {
  content: "｜";
  display: inline-block;
  color: #FFFFFF;
  font-weight: 700;
  vertical-align: -1px;
}
.footer-area-nav-list li:last-child::after {
  content: "｜";
  display: inline-block;
  color: #FFFFFF;
  font-weight: 700;
}
.footer-area-nav-list a {
  color: #FFFFFF;
  font-size: 88%;
  font-weight: 700;
  text-decoration: none;
}
.footer-area-nav-list a:hover {
  opacity: 0.74;
  filter: opacity(74%);
}
.footer-area-copyright {
  display: none;
  margin-top: 8px;
  font-size: 12px;
}
@media screen and (max-width: 768px) {
  .footer-area-copyright {
    display: block;
  }
}

/* Smartphone Fix Footer
--------------------------------------------- */
.footer-sp {
  display: none;
}
.footer-sp ul {
  display: flex;
  list-style: none;
  gap: 1px;
  background-color: #FFFFFF;
}
.footer-sp ul li {
  width: 33.3333333333%;
}
.footer-sp ul li a {
  display: flex;
  background-color: #003865;
  color: #FFFFFF;
  text-decoration: none;
  text-align: center;
  gap: 0.5em;
  justify-content: center;
  line-height: 1;
  padding: 1em 0;
}
@media screen and (max-width: 768px) {
  .footer-sp {
    display: block;
  }
}
.footer-sp.is-fixed {
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 98;
  width: 100%;
  transition: all 0.3s ease-in-out;
}

/* page content
--------------------------------------------- */
.l-main-content {
  position: relative;
  width: 100%;
  max-width: calc(100% - 280px);
}
@media screen and (max-width: 768px) {
  .l-main-content {
    max-width: none;
  }
}
@media print {
  .l-main-content {
    width: 100%;
    max-width: none;
  }
}
@page {
  .l-main-content {
    size: A4 portrait;
    margin: 0;
  }
}
.l-main-content__header .page-title {
  color: #333333;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .l-main-content__header .page-title {
    font-size: 21px;
  }
}
.l-main-content__content {
  margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
  .l-main-content__content {
    margin-bottom: 1.5rem;
  }
}
.l-main-content__content p {
  margin-top: 1.5rem;
  font-size: 1rem;
}
@media screen and (max-width: 768px) {
  .l-main-content__content p {
    font-size: 1rem;
  }
}
.l-main-content__content p.mt0 {
  margin-top: 0 !important;
}
.l-main-content__content p.mb0 {
  margin-bottom: 0 !important;
}
.l-main-content__content a.link-btn {
  text-decoration: none !important;
  line-height: 1.8;
}
.l-main-content__content a.link-btn:hover {
  color: #FFFFFF;
}
.l-main-content__content a {
  color: #0B5394;
  text-decoration: underline;
}
.l-main-content__content .link-outbound a {
  color: #0B5394;
  line-height: 1.8;
}
.l-main-content__content .link-outbound a::after {
  content: "\f08e";
  display: inline-block;
  margin-left: 0.5rem;
  color: #0B5394;
  font-size: 1rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
}
.l-main-content__content img {
  width: 100%;
  margin-top: 1.5rem;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.l-main-content__content table {
  width: 100%;
  margin: 0 auto 8px;
  border-collapse: collapse;
}
.l-main-content__content table thead th {
  padding: 10px;
  text-align: center;
}
.l-main-content__content table tbody th {
  padding: 10px;
  font-weight: 700;
  text-align: center;
}
.l-main-content__content table tbody td {
  padding: 10px;
}
.l-main-content__content table tbody td a {
  color: #0B5394;
}
.l-main-content__content .wp-block-table {
  margin-top: 1.5rem;
}
.l-main-content__footer .contact-box {
  text-align: center;
}
@media print {
  .l-main-content__footer .contact-box {
    display: none;
  }
}
.l-main-content__footer .contact-box .contact-btn {
  display: block;
  position: relative;
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  padding: 1rem 0;
  border-radius: 0;
  background: #6fa8dc;
  background: linear-gradient(to bottom, #6fa8dc 0%, #17a4c6 100%);
  color: #FFFFFF;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  transition: none;
}
.l-main-content__footer .contact-box .contact-btn i {
  margin-right: 4px;
  color: #FFFFFF;
}
.l-main-content__footer .contact-box .contact-tel {
  display: inline-block;
  margin: 1.5rem auto 0;
  color: #333333;
  text-align: center;
}
.l-main-content__footer .contact-box .contact-tel a {
  color: #333333;
  text-decoration: none;
}

/* singular content
--------------------------------------------- */
.single-content {
  position: relative;
  width: 100%;
}
.single-content__header {
  width: 100%;
  margin: 0 0 2rem;
}
@media screen and (max-width: 768px) {
  .single-content__header {
    margin: 0 0 1.5rem;
  }
}
.single-content__header .page-title {
  color: #003865;
  font-size: 32px;
  font-weight: bold;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .single-content__header .page-title {
    font-size: 24px;
  }
}
.single-content__meta span {
  display: inline-block;
  margin: 0 2px;
  padding: 4px 8px;
  background-color: #003865;
  color: #FFFFFF;
  font-size: 0.9rem;
}
@media screen and (max-width: 768px) {
  .single-content__meta span {
    padding: 2px 6px;
  }
}
.single-content__meta time {
  display: inline-block;
  margin-left: 1rem;
  color: #666666;
  font-size: 0.9rem;
}
.single-content__thumb {
  width: 100%;
  margin: 2.5rem 0;
}
.single-content__thumb img {
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  margin-inline: auto;
}
.single-content__content {
  margin-bottom: 64px;
  padding-bottom: 64px;
  border-bottom: 1px solid rgba(51, 51, 51, 0.5);
}
@media screen and (max-width: 768px) {
  .single-content__content {
    margin-bottom: 40px;
    padding-bottom: 40px;
  }
}
.single-content__content h2 {
  margin-top: 64px;
  color: #003865;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .single-content__content h2 {
    margin-top: 40px;
    font-size: 24px;
  }
}
.single-content__content h3 {
  margin-top: 40px;
  padding: 1rem 1.5rem;
  background-color: #F9F9F9;
  color: #003865;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .single-content__content h3 {
    padding: 1rem;
    font-size: 21px;
  }
}
.single-content__content h4 {
  margin-top: 40px;
  padding: 0.5rem 1rem;
  border-left: 4px solid #003865;
  color: #333333;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .single-content__content h4 {
    margin-top: 1.5rem;
  }
}
.single-content__content p {
  margin-top: 2rem;
  font-size: 18px;
  line-height: 1.8;
}
@media screen and (max-width: 768px) {
  .single-content__content p {
    margin-top: 1.5rem;
    font-size: 1rem;
  }
}
.single-content__content a {
  color: #333333;
  text-decoration: underline;
}
.single-content__content img {
  margin-top: 2rem;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (max-width: 768px) {
  .single-content__content img {
    margin-top: 1.5rem;
  }
}
.single-content__content ul {
  margin-top: 2rem;
}
@media screen and (max-width: 768px) {
  .single-content__content ul {
    margin-top: 1.5rem;
  }
}
.single-content__content ul li {
  margin: 0.5rem 0.5rem 0 0.5rem;
  padding-left: 0.5rem;
}
.single-content__content ol {
  margin-top: 2rem;
}
@media screen and (max-width: 768px) {
  .single-content__content ol {
    margin-top: 1.5rem;
  }
}
.single-content__content ol li {
  position: relative;
  margin: 0.5rem 0.5rem 0 0.5rem;
  padding-left: 0.5rem;
}
.single-content__content ol li::before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 0;
  left: 2px;
  z-index: -3;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: #003865;
}
.single-content__content ol li::marker {
  color: #FFFFFF;
}
.single-content__content table {
  width: 100%;
  margin: 2rem auto 0;
  border-collapse: collapse;
}
@media screen and (max-width: 768px) {
  .single-content__content table {
    margin-top: 1.5rem;
  }
}
.single-content__content table thead {
  border: none;
}
.single-content__content table thead th {
  padding: 1rem;
  border: 1px solid rgba(51, 51, 51, 0.5);
  border-right: 1px solid #DDDDDD;
  background-color: #003865;
  color: #FFFFFF;
  text-align: center;
}
.single-content__content table thead th:last-child {
  border-right: 1px solid rgba(51, 51, 51, 0.5);
}
.single-content__content table thead .fix-column {
  position: sticky;
  left: 0;
}
.single-content__content table thead .fix-column:before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  z-index: -1;
  border: 1px solid rgba(51, 51, 51, 0.5);
  border-right: 1px solid #DDDDDD;
  border-collapse: collapse;
  background-color: #003865;
  color: #FFFFFF;
}
.single-content__content table tbody th {
  padding: 1rem;
  border: 1px solid rgba(51, 51, 51, 0.5);
  background-color: #F9F9F9;
  font-weight: 700;
  text-align: left;
}
.single-content__content table tbody td {
  padding: 1rem;
  border: 1px solid rgba(51, 51, 51, 0.5);
}
.single-content__content table tbody .fix-column {
  position: sticky;
  left: 0;
}
.single-content__content table tbody .fix-column:before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  z-index: -1;
  border: 1px solid rgba(51, 51, 51, 0.5);
  border-collapse: collapse;
  background-color: #FFFFFF;
}
.single-content__content table .fix-row {
  position: sticky;
  top: 0;
}
.single-content__content table .fix-row:before {
  content: "";
  position: absolute;
  top: -1px;
  width: 100%;
  height: 100%;
}
.single-content__content table .align-center {
  text-align: center;
}
.single-content__content .table-wrap table {
  overflow-x: scroll;
  white-space: nowrap;
}
.single-content__content blockquote {
  width: 100%;
  margin-top: 2rem;
  padding: 40px;
  background-color: #F9F9F9;
}
@media screen and (max-width: 768px) {
  .single-content__content blockquote {
    margin-top: 1.5rem;
    padding: 1.5rem;
  }
}
.single-content__content blockquote p {
  margin-top: 2rem;
  font-size: 1rem;
}
@media screen and (max-width: 768px) {
  .single-content__content blockquote p {
    margin-top: 1.5rem;
  }
}
.single-content__content blockquote p:first-child {
  margin-top: 0;
}
.single-content__content blockquote cite {
  color: #333333;
}
.single-content__content .wp-block-embed {
  margin-top: 2rem;
}
@media screen and (max-width: 768px) {
  .single-content__content .wp-block-embed {
    margin-top: 1.5rem;
  }
}
.single-content__content .wp-block-embed__wrapper {
  position: relative;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
}
.single-content__content .wp-block-embed__wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.single-content__link {
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .single-content__link {
    margin-top: 1.5rem;
  }
}
.single-content__link--btn {
  margin: 0 auto;
  text-decoration: none !important;
}
.single-content__link--btn:hover {
  opacity: 1 !important;
}

/* post content
--------------------------------------------- */
.p-main-content {
  position: relative;
  width: 100%;
  max-width: 700px;
}
.p-main-content__desc {
  margin-top: 1rem;
  color: #333333;
  font-size: 1rem;
}
.p-main-content__thumb {
  width: 100%;
  margin-bottom: 120px;
}
@media screen and (max-width: 768px) {
  .p-main-content__thumb {
    margin-bottom: 96px;
  }
}
.p-main-content__thumb img {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.p-main-content__content {
  margin-bottom: 200px;
}
@media screen and (max-width: 768px) {
  .p-main-content__content {
    margin-bottom: 120px;
  }
}
.p-main-content__content h2 {
  margin-top: 2.5rem;
  margin-bottom: 1.5rem;
  font-size: 32px;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .p-main-content__content h2 {
    font-size: 24px;
  }
}
.p-main-content__content p {
  margin-bottom: 1.5rem;
  line-height: 2.4;
}
.p-main-content__content a.link-btn {
  text-decoration: none !important;
  line-height: 1.8;
}
.p-main-content__content a.link-btn:hover {
  color: #FFFFFF;
}
.p-main-content__content a {
  color: #333333;
  text-decoration: underline;
}
.p-main-content__content img {
  width: 100%;
  margin-bottom: 1.5rem;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.p-main-content__content table {
  width: 100%;
  margin: 0 auto 8px;
  border: 1px solid #003865;
  border-collapse: collapse;
}
.p-main-content__content table thead {
  border: 1px solid #003865;
}
.p-main-content__content table thead th {
  padding: 1rem;
  border-top: 1px solid #003865;
  border-bottom: 1px solid #003865;
  border-left: 1px solid #FFFFFF;
  background-color: #003865;
  color: #FFFFFF;
  text-align: left;
}
.p-main-content__content table thead th:first-child {
  border-left: 1px solid #003865;
}
.p-main-content__content table thead th:last-child {
  border-right: 1px solid #003865;
}
.p-main-content__content table tbody th {
  padding: 1rem;
  border: 1px solid #003865;
  background-color: #F9F9F9;
  color: #333333;
  text-align: left;
}
.p-main-content__content table tbody td {
  padding: 1rem;
  border: 1px solid #003865;
}

/* sidebar
--------------------------------------------- */
.site-sidebar {
  width: 100%;
  max-width: 240px;
  margin: 0;
  padding: 0;
}
@media screen and (max-width: 768px) {
  .site-sidebar {
    max-width: 100%;
  }
}
@media print {
  .site-sidebar {
    display: none;
  }
}
.site-sidebar .widget_block {
  list-style-type: none;
}
.site-sidebar .widget_block h2 {
  margin-top: 2.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(51, 51, 51, 0.5);
  color: #003865;
  font-size: 24px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .site-sidebar .widget_block h2 {
    font-size: 21px;
  }
}
.site-sidebar .widget_block .wp-block-categories-list {
  margin-top: 1.5rem;
  list-style-type: none;
}
.site-sidebar .widget_block .wp-block-categories-list .cat-item {
  margin-top: 0.5rem;
  list-style-type: none;
}
.site-sidebar .widget_block .wp-block-categories-list .cat-item a {
  color: #333333;
  font-size: 1rem;
  text-decoration: none;
}
.site-sidebar .widget_block .wp-block-categories-list .cat-item a:hover {
  text-decoration: underline;
}
.site-sidebar .widget_block .popular-posts {
  position: relative;
}
.site-sidebar .widget_block .popular-posts .wpp-list {
  margin-top: 1.5rem;
  padding: 0;
}
.site-sidebar .widget_block .popular-posts .wpp-list li {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
  margin-top: 1rem;
  list-style-type: none;
}
.site-sidebar .widget_block .popular-posts .wpp-list li .wpp-post-title {
  width: calc(100% - 80px);
  color: #333333;
  font-size: 0.9rem;
  text-decoration: none;
}
.site-sidebar__banner {
  margin-top: 1.5rem;
}
@media screen and (max-width: 768px) {
  .site-sidebar__banner {
    display: none;
  }
}

.breadcrumbs {
  margin: 1.5rem 0 40px;
}
@media screen and (max-width: 768px) {
  .breadcrumbs {
    margin: 1.5rem 0;
  }
}
@media print {
  .breadcrumbs {
    display: none;
  }
}
.breadcrumbs__inner span {
  color: #333333;
  font-size: 0.9rem;
}
.breadcrumbs__inner span a {
  color: #003865;
  text-decoration: none;
}
.breadcrumbs__inner span a > span {
  color: #003865;
}
.breadcrumbs__inner i {
  margin: 0 0.5rem;
  color: #333333;
  font-size: 0.9rem;
}

.f-hl2 {
  position: relative;
  margin-bottom: 40px;
  padding-left: 54px;
  font-size: 24px;
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  line-height: 1.6;
}
.f-hl2::before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 40%;
  left: 0;
  width: 48px;
  height: 5px;
  transform: rotate(135deg);
}
.f-hl2--main {
  color: #333333;
}
.f-hl2--main::before {
  background-color: #003865;
}
.f-hl2--secondary {
  color: #FFFFFF;
}
.f-hl2--secondary::before {
  background-color: #00A3D9;
}

/* blog list
--------------------------------------------- */
.blog-list {
  display: -moz-grid;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  gap: 64px 40px;
  width: 100%;
  margin: 2rem 0 0 0;
  padding: 0;
}
@media screen and (max-width: 768px) {
  .blog-list {
    gap: 40px 1rem;
    margin: 1.5rem 0 0 0;
  }
}
.blog-list__item {
  width: 100%;
  padding: 0;
  list-style-type: none;
}
.blog-list__item a {
  color: #333333;
  text-decoration: none;
}
.blog-list__item-thumb {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16/9;
}
.blog-list__item-thumb img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  transition: all 0.3s ease-in-out;
}
.blog-list__item-thumb img:hover {
  transform: scale(1.1);
}
.blog-list__item-txt {
  width: 100%;
  margin-top: 1rem;
}
.blog-list__item-txt h3 {
  margin-top: 0.5rem;
  color: #003865;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .blog-list__item-txt h3 {
    font-size: 1rem;
  }
}
.blog-list__item-txt aside {
  color: #666666;
  font-size: 0.9rem;
}
.blog-list__item-txt span {
  display: inline-block;
  margin: 0 2px;
  padding: 4px 8px;
  background-color: #003865;
  color: #FFFFFF;
  font-size: 0.9rem;
}
@media screen and (max-width: 768px) {
  .blog-list__item-txt span {
    padding: 2px 6px;
  }
}

/* Button
--------------------------------------------- */
.link-btn {
  display: block;
  position: relative;
  width: 100%;
  padding: 1rem 0;
  border-radius: 25px;
  color: #FFFFFF;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  transition: none;
}
.link-btn:hover {
  opacity: 0.85;
  filter: opacity(85%);
}
.link-btn.reform {
  background: #6fa8dc;
  background: linear-gradient(to bottom, #6fa8dc 0%, #17a4c6 100%);
}
.link-btn.hokuden {
  background: #f18338;
  background: linear-gradient(to bottom, #f18338 0%, #e36511 100%);
}
.link-btn.ec {
  background: #1b9886;
  background: linear-gradient(to bottom, #1b9886 0%, #4fb206 100%);
}
.link-btn.ecocute {
  background: #aaca4a;
  background: linear-gradient(to bottom, #aaca4a 0%, #93af3a 100%);
}

.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #0B5394;
  color: #FFFFFF;
  text-decoration: none;
  padding: 0.5em 2em;
  line-height: 1;
  font-weight: 600;
  letter-spacing: 1.4px;
}
.btn-primary:hover {
  opacity: 0.85;
  filter: opacity(85%);
}

/* headline
--------------------------------------------- */
/* -- 2026.9.18 追加 h2->div変更対応----------- */
.f-container h2.hl2-pt1,
.f-container div.hl2-pt1,
.l-main-content h2.hl2-pt1 {
  position: relative;
  width: 100%;
  margin-top: 2.5rem;
  margin-bottom: 1.5rem;
  padding: 10px;
  border-top: 1px solid #CCCCCC;
  border-right: 1px solid #CCCCCC;
  border-bottom: 1px solid #FFFFFF;
  border-left: 8px solid #003865;
  box-shadow: 2px 2px 4px rgba(68, 68, 68, 0.16);
  background-color: #F9F9F9;
  color: #003865;
  font-size: 18px;
  font-weight: 700;
  text-align: left;
  letter-spacing: 0.05em;
}
@media screen and (max-width: 768px) {
  .f-container h2.hl2-pt1,
  .f-container div.hl2-pt1,
  .l-main-content h2.hl2-pt1 {
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-size: 1rem;
  }
}

.f-container h2.hl2-pt2,
.l-main-content h2.hl2-pt2 {
  position: relative;
  width: 100%;
  margin-top: 2.5rem;
  margin-bottom: 1.5rem;
  padding: 10px 10px 10px 1.5rem;
  border-top: 2px solid #003865;
  background-color: #F9F9F9;
  color: #333333;
  font-size: 18px;
  font-weight: 700;
  text-align: left;
}
@media screen and (max-width: 768px) {
  .f-container h2.hl2-pt2,
  .l-main-content h2.hl2-pt2 {
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-size: 1rem;
  }
}
.f-container h2.hl2-pt2::before,
.l-main-content h2.hl2-pt2::before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 16px;
  height: 2px;
  background-color: #003865;
  transform: translateY(-50%);
}
.f-container h3.hl3-pt1,
.l-main-content h3.hl3-pt1 {
  position: relative;
  width: 100%;
  margin-top: 2.5rem;
  margin-bottom: 1.5rem;
  padding: 10px 10px 10px 1.5rem;
  border-top: 2px solid #003865;
  background-color: #F9F9F9;
  color: #333333;
  font-size: 18px;
  font-weight: 700;
  text-align: left;
}
@media screen and (max-width: 768px) {
  .f-container h3.hl3-pt1,
  .l-main-content h3.hl3-pt1 {
    margin-top: 2rem;
    margin-bottom: 1rem;
    font-size: 1rem;
  }
}
.f-container h3.hl3-pt1::before,
.l-main-content h3.hl3-pt1::before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 16px;
  height: 2px;
  background-color: #003865;
  transform: translateY(-50%);
}

/* contact form 7
--------------------------------------------- */
.mw_wp_form {
  position: relative;
  width: 100%;
  margin-top: 1.5rem;
}
.mw_wp_form .mw-item {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  flex-wrap: nowrap;
}
@media screen and (max-width: 480px) {
  .mw_wp_form .mw-item {
    flex-wrap: wrap;
    margin-top: 1rem;
  }
}
.mw_wp_form .mw-item dt {
  width: 192px;
  padding: 1rem;
  border: 1px solid #FFFFFF;
  background-color: #DDDDDD;
  color: #333333;
  font-size: 1rem;
  font-weight: 700;
}
@media screen and (max-width: 480px) {
  .mw_wp_form .mw-item dt {
    width: 100%;
    padding: 0.5rem 0;
    border: none;
    background-color: transparent;
  }
}
.mw_wp_form .mw-item dt span.must {
  margin-left: 0.5rem;
  color: #D80000;
  font-size: 0.85rem;
  font-weight: 400;
}
.mw_wp_form .mw-item dt span.option {
  display: block;
  color: #333333;
  font-size: 0.85rem;
  font-weight: 400;
}
.mw_wp_form .mw-item dt p {
  margin-top: 0;
}
.mw_wp_form .mw-item dd {
  width: calc(100% - 192px);
  padding: 1rem;
  border: 1px solid #FFFFFF;
  background-color: #F9F9F9;
  color: #333333;
  font-size: 1rem;
}
@media screen and (max-width: 480px) {
  .mw_wp_form .mw-item dd {
    width: 100%;
    padding: 0 0 0.5rem 0;
    border: none;
    background-color: transparent;
  }
}
.mw_wp_form .mw-item dd.w100 input {
  width: 100%;
}
.mw_wp_form .mw-item dd.w100 textarea {
  width: 100%;
}
.mw_wp_form .mw-item dd.w100 select {
  width: 100%;
}
.mw_wp_form .mw-item dd.w100 span.vertical-item {
  width: 100% !important;
}
.mw_wp_form .mw-item dd.w100 span.vertical-item input[type=checkbox] {
  width: auto;
}
.mw_wp_form .mw-item dd span.mt1 {
  display: inline-block;
  width: 100%;
  margin-top: 0.5rem;
}
.mw_wp_form .mw-item dd span.ml1 {
  display: inline-block;
  width: 100%;
  max-width: 240px;
  margin-left: 0.5rem;
}
.mw_wp_form .mw-item dd span.m1 {
  display: inline-block;
  margin-right: 0.5rem;
  margin-left: 0.5rem;
}
.mw_wp_form .mw-item dd span.horizontal-item {
  display: inline-block;
  width: 30%;
  margin-left: 0 !important;
}
@media screen and (max-width: 480px) {
  .mw_wp_form .mw-item dd span.horizontal-item {
    width: 100%;
  }
}
.mw_wp_form .mw-item dd input {
  padding: 0.5rem 1rem;
  border: 1px solid #CCCCCC;
  background-color: #FFFFFF;
  color: #333333;
  font-size: 1rem;
}
.mw_wp_form .mw-item dd textarea {
  padding: 0.5rem 1rem;
  border: 1px solid #CCCCCC;
  background-color: #FFFFFF;
  color: #333333;
  font-size: 1rem;
}
.mw_wp_form .mw-item dd select {
  padding: 0.75rem 1rem;
  border: 1px solid #CCCCCC;
  background-color: #FFFFFF;
  color: #333333;
  font-size: 1rem;
}
.mw_wp_form .mw-item dd p {
  margin-top: 0;
}
.mw_wp_form .mw-link-btn {
  display: block;
  margin-top: 40px;
}
.mw_wp_form .mw-link-btn input[type=submit] {
  display: block;
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
  padding: 1rem 0;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.05em;
}
.mw_wp_form .mw-link-btn input[type=submit]:hover {
  opacity: 0.75;
  filter: opacity(75%);
}
.mw_wp_form .mw-link-btn input[type=button] {
  display: block;
  width: 100%;
  max-width: 360px;
  margin: 0 auto;
  padding: 1rem 0;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.05em;
}
.mw_wp_form .mw-link-btn input[type=button]:hover {
  opacity: 0.75;
  filter: opacity(75%);
}
.mw_wp_form .mw-link-btn .submit-btn {
  background-color: #003865;
  color: #FFFFFF;
}
.mw_wp_form .mw-link-btn .back-btn {
  background-color: #F9F9F9;
  color: #333333;
}

/* calendar
--------------------------------------------- */
.xo-event-calendar .month-header {
  margin: 0 !important;
  padding: 4px 0;
  border: 1px solid #EABE3E;
  background-color: #EABE3E;
  color: #FFFFFF;
}
.xo-event-calendar .xo-month {
  border-collapse: collapse;
}
.xo-event-calendar .xo-month thead th {
  padding: 4px 0 !important;
  border: 1px solid #CCCCCC !important;
}
.xo-event-calendar .xo-month tbody td {
  border: 1px solid #CCCCCC;
}
.xo-event-calendar .xo-month .month-dayname-space {
  height: 32px !important;
}
.xo-event-calendar .xo-month .month-event-space {
  height: 0 !important;
}
.xo-event-calendar .month-dayname td div {
  padding: 8px 0 !important;
  border: none !important;
  text-align: center !important;
  line-height: 1 !important;
}
.xo-event-calendar .month-dayname td .today {
  background-color: rgba(255, 255, 102, 0.7);
  color: #333333 !important;
  font-weight: 400 !important;
}

/* news list
--------------------------------------------- */
.news-list {
  width: 100%;
  margin: 1.5rem 0 0 0;
  padding: 0;
}
.news-list__item {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  width: 100%;
  padding: 1rem 0;
  border-bottom: 1px dotted #CCCCCC;
}
@media screen and (max-width: 768px) {
  .news-list__item {
    flex-wrap: wrap;
  }
}
.news-list__item::before {
  content: "\f144";
  display: inline-block;
  position: relative;
  margin-right: 6px;
  color: #DDDDDD;
  font-size: 1rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .news-list__item::before {
    content: "";
    display: none;
    margin-right: 0;
  }
}
.news-list__item time {
  width: 8em;
  font-size: 0.9rem;
}
@media screen and (max-width: 768px) {
  .news-list__item time {
    display: block;
    width: 100%;
    font-size: 1rem;
  }
}
.news-list__item a {
  width: calc(100% - 8em);
  color: #333333;
  font-size: 1rem;
  text-decoration: underline;
}
@media screen and (max-width: 768px) {
  .news-list__item a {
    display: block;
    width: 100%;
    margin-top: 0.25rem;
  }
}

.pagination {
  position: relative;
  width: 100%;
  margin: 40px auto;
}
@media screen and (max-width: 768px) {
  .pagination {
    margin: 1.5rem auto;
  }
}
.pagination__list {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0 1rem;
  width: 100%;
  margin: 0 auto;
  color: #003865;
  list-style-type: none;
}
@media screen and (max-width: 768px) {
  .pagination__list {
    gap: 0 0.5rem;
  }
}
.pagination__list .current {
  display: block;
  justify-self: center;
  align-self: center;
  width: 36px;
  height: 36px;
  padding: 6px 0;
  border: 1px solid #333333;
  background: #333333;
  color: #FFFFFF;
  font-size: 1rem;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .pagination__list .current {
    width: 32px;
    height: 32px;
    padding: 4px 0;
  }
}
.pagination__list a {
  display: block;
  justify-self: center;
  align-self: center;
  width: 36px;
  height: 36px;
  padding: 6px 0;
  border: 1px solid #333333;
  background: #FFFFFF;
  color: #333333;
  font-size: 1rem;
  text-align: center;
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  .pagination__list a {
    width: 32px;
    height: 32px;
    padding: 4px 0;
  }
}
.pagination__list a:hover {
  opacity: 1;
  filter: opacity(100%);
  background-color: #333333;
  color: #FFFFFF;
}
.pagination__list .prev a,
.pagination__list .next a {
  position: relative;
  width: 54px;
  border: 1px solid #333333;
  background: #FFFFFF;
  color: #333333;
}
@media screen and (max-width: 768px) {
  .pagination__list .prev a,
  .pagination__list .next a {
    width: 48px;
  }
}
.pagination__list .prev a:hover,
.pagination__list .next a:hover {
  background-color: #333333;
  color: #FFFFFF;
}

.pager {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: nowrap;
}
@media screen and (max-width: 768px) {
  .pager {
    flex-wrap: wrap;
  }
}
.pager .prev,
.pager .next {
  position: relative;
  width: 100%;
}
.pager .prev a,
.pager .next a {
  color: #333333;
  text-decoration: none;
}
.pager .prev {
  order: 1;
  width: calc(50% - 10px);
}
@media screen and (max-width: 768px) {
  .pager .prev {
    width: 100%;
  }
}
.pager .prev a {
  display: block;
  position: relative;
  padding: 1rem 1rem 1rem 2rem;
  border: 1px solid #CCCCCC;
}
.pager .prev a:hover {
  background-color: #F9F9F9;
}
.pager .prev a::after {
  content: "\f053";
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 1rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
  transform: translateY(-50%);
}
.pager .next {
  justify-self: flex-end;
  order: 2;
  width: calc(50% - 10px);
}
@media screen and (max-width: 768px) {
  .pager .next {
    width: 100%;
  }
}
.pager .next a {
  display: block;
  position: relative;
  padding: 1rem 2rem 1rem 1rem;
  border: 1px solid #CCCCCC;
}
.pager .next a:hover {
  background-color: #F9F9F9;
}
.pager .next a::after {
  content: "\f054";
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 1rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
  transform: translateY(-50%);
}

/* kakomi
--------------------------------------------- */
.kakomi {
  margin: 2rem auto 0;
  padding: 1.5rem;
  border: 2px solid #FFC927;
  border-radius: 25px;
  background-color: rgba(255, 201, 39, 0.15);
  font-size: 1rem;
}
@media screen and (max-width: 768px) {
  .kakomi {
    margin-top: 1.5rem;
  }
}
.kakomi.kakomi_num ol {
  list-style: none;
  counter-reset: number;
}
.kakomi.kakomi_num ol:first-of-type {
  margin-top: 0 !important;
}
.kakomi.kakomi_num ol li {
  position: relative;
  padding-left: 2.5rem;
}
.kakomi.kakomi_num ol li::before {
  content: counter(number);
  counter-increment: number;
  position: absolute;
  top: 0;
  left: 0;
  color: #FFFFFF;
  text-align: center;
  line-height: 1.6;
}
.kakomi ul:first-of-type {
  margin-top: 0 !important;
}
.kakomi ul li:first-child {
  margin-top: 0;
}
.kakomi p {
  font-size: 1rem;
}
.kakomi p:first-of-type {
  margin-top: 0 !important;
}

.kakomi_with_title {
  position: relative;
  margin: 2rem auto 0;
}
@media screen and (max-width: 768px) {
  .kakomi_with_title {
    margin-top: 1.5rem;
  }
}
.kakomi_with_title .title {
  display: inline-block;
  margin-bottom: 1rem;
  color: #003865;
  font-size: 1rem;
  font-weight: 700;
}
.kakomi_with_title .title i {
  margin-right: 6px;
}

/* notion
--------------------------------------------- */
.notion {
  margin: 2rem auto 0;
  padding: 3.5rem 1.5rem 1.5rem;
  background: #f7f6f2;
  border-radius: 15px;
  position: relative;
}
@media screen and (max-width: 768px) {
  .notion {
    margin-top: 1.5rem;
  }
}
.notion::before {
  position: absolute;
  content: "\f05a";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  padding-bottom: 4px;
  border-bottom: 3px solid #d0c6b4;
}
.notion ul {
  margin: 0;
}
.notion p {
  font-size: 1rem;
}
.notion p:first-child {
  margin-top: 0 !important;
}

/* related
--------------------------------------------- */
.related {
  position: relative;
  margin: 2rem 0 0;
  padding: 1rem 1.5rem;
  border: 2px solid #003865;
}
@media screen and (max-width: 768px) {
  .related {
    margin-top: 1.5rem;
  }
}
.related .title {
  margin-bottom: 1rem;
  font-size: 1rem;
}
.related .title i {
  margin-right: 6px;
}
.related .related_title {
  margin-bottom: 1rem;
  color: #003865;
  font-size: 1rem;
  font-weight: 700;
}
.related .related_title i {
  margin-right: 6px;
}
.related p {
  position: relative;
  font-size: 1rem;
}
.related p:first-child {
  margin-top: 0;
}
.related ul {
  margin: 0;
}
.related ul li {
  margin-left: 0;
  padding-top: 1rem;
  padding-bottom: 1rem;
  padding-left: 0;
  border-top: 1px dotted rgba(51, 51, 51, 0.5);
  list-style-type: none;
}
.related ul li:first-child {
  margin-top: 0;
  border-top: none;
}
.related ul li a {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  .related ul li a {
    gap: 6px;
  }
}
.related ul li a .thumbnail {
  width: 150px;
}
@media screen and (max-width: 768px) {
  .related ul li a .thumbnail {
    width: 80px;
  }
}
.related ul li a .thumbnail img {
  margin: 0 !important;
}
.related ul li a .post_title {
  width: calc(100% - 160px);
  margin: 0 !important;
  padding: 0 !important;
  background-color: transparent;
}
@media screen and (max-width: 768px) {
  .related ul li a .post_title {
    width: calc(100% - 85px);
  }
}

.related_link {
  position: relative;
  margin: 2rem auto 0;
  padding: 1.5rem;
  border: 2px solid #003865;
}
@media screen and (max-width: 768px) {
  .related_link {
    margin-top: 1.5rem;
  }
}
.related_link .title {
  display: inline-block;
  margin-bottom: 1rem;
  color: #003865;
  font-size: 1rem;
  font-weight: 700;
}
.related_link .title i {
  margin-right: 6px;
}
.related_link p {
  position: relative;
  margin-bottom: 0.5rem;
  padding-bottom: 0.5rem;
  padding-left: 1.5rem;
  border-bottom: 1px solid rgba(51, 51, 51, 0.5);
  font-size: 1rem;
}
.related_link p::before {
  content: "";
  position: absolute;
  top: 12px;
  left: 5px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #003865;
}
.related_link p::before:last-of-type {
  padding-bottom: 0;
  border-bottom: none;
  margin-bottom: 0;
}
.related_link p a {
  color: #333333;
  text-decoration: none;
}
.related_link ul {
  margin: 0;
}
.related_link ul li {
  margin-top: 0.5rem;
  padding-left: 0;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(51, 51, 51, 0.5);
  font-size: 1rem;
  list-style-type: none;
}
.related_link ul li::before {
  display: none;
}
.related_link ul li:first-child {
  margin-top: 0;
}
.related_link ul li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
.related_link ul li a {
  display: flex;
  align-items: center;
  gap: 10px;
}
@media screen and (max-width: 768px) {
  .related_link ul li a {
    gap: 5px;
  }
}
.related_link ul li a .thumbnail {
  width: 150px;
}
@media screen and (max-width: 768px) {
  .related_link ul li a .thumbnail {
    width: 80px;
  }
}
.related_link ul li a .post_title {
  width: calc(100% - 160px);
}
@media screen and (max-width: 768px) {
  .related_link ul li a .post_title {
    width: calc(100% - 85px);
  }
}

/* summary
--------------------------------------------- */
.summary {
  position: relative;
  margin: 2rem 0;
  padding: 1rem 1.5rem;
  border: 1px solid #FFC927;
}
@media screen and (max-width: 768px) {
  .summary {
    margin-top: 1.5rem;
  }
}
.summary .title {
  position: absolute;
  top: -10px;
  padding: 0 8px;
  background: #FFFFFF;
  font-size: 0.9rem;
}
.summary .title i {
  margin-right: 6px;
}
.summary ul {
  margin: 0;
}
.summary ul li {
  padding-bottom: 0.5em;
  border-bottom: 1px dotted rgba(51, 51, 51, 0.5);
}
.summary ul li::before {
  content: "\f00c";
  top: 4px;
  left: 1px;
  background: transparent;
  color: #003865;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}
.summary ul li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

/* cv btn
--------------------------------------------- */
.cvbtn {
  display: block;
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  min-width: 280px;
  margin: 2rem 0;
  padding: 1rem 3rem 1rem 1.5rem;
  border: 2px solid #003865;
  border-radius: 50px;
  font-weight: 700;
  text-align: center;
  text-decoration: none !important;
}
@media screen and (max-width: 768px) {
  .cvbtn {
    margin-top: 1.5rem;
  }
}
.cvbtn::after {
  content: "\f105";
  display: inline-block;
  position: absolute;
  top: 50%;
  right: 1.5rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  transform: translateY(-50%);
}

.cvbtn_1 {
  background: #003865;
  color: #FFFFFF !important;
}
.cvbtn_1::after {
  color: #FFFFFF;
}

.cvbtn_2 {
  background: #FFC927;
  color: #003865;
}
.cvbtn_2::after {
  color: #003865;
}

.txtlink {
  position: relative;
  margin-top: 2rem;
  padding-left: 2rem;
}
@media screen and (max-width: 768px) {
  .txtlink {
    margin-top: 1.5rem;
  }
}
.txtlink::before {
  content: "\f0c1";
  position: absolute;
  top: -3px;
  left: 0;
  color: #4c4f51;
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
}

.p-search-box {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
}
.p-search-box input {
  width: calc(100% - 60px);
  height: 48px;
  padding: 1rem 1.5rem;
  border-radius: 50px 0 0 50px;
  background-color: #F9F9F9;
  font-size: 1rem;
}
.p-search-box input:focus {
  outline: none;
}
.p-search-box__btn {
  width: 60px;
  height: 48px;
  padding: 10px;
  border-radius: 0 50px 50px 0;
  background-color: #F9F9F9;
  color: #333333;
  font-size: 1rem;
  text-align: center;
}

.sns-list {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: flex-end;
  gap: 0.5em;
  list-style: none;
}
@media screen and (max-width: 768px) {
  .sns-list {
    justify-content: center;
  }
}
.sns-list li {
  width: 30px;
  height: 30px;
}
.sns-list li a {
  display: block;
  border-radius: 50%;
  overflow: hidden;
}

/* table of contents
--------------------------------------------- */
#toc_container {
  width: 100%;
  margin-top: 2rem;
  padding: 40px;
  border: none !important;
  background-color: #F9F9F9 !important;
}
@media screen and (max-width: 768px) {
  #toc_container {
    margin-top: 1.5rem;
    padding: 1.5rem;
  }
}
#toc_container .toc_title {
  margin-bottom: 1.5rem;
  color: #003865;
  font-weight: 700;
}
#toc_container .toc_title span {
  color: #333333;
  font-weight: 400;
}
#toc_container .toc_list {
  margin: 0;
  padding: 0;
}
#toc_container .toc_list li {
  padding: 0;
  list-style-type: none;
}
#toc_container .toc_list li a {
  color: #333333;
  font-size: 1rem;
  font-weight: 700;
  text-decoration: none;
}
#toc_container .toc_list li > ul {
  margin: 0.5rem 0 1rem 0 !important;
  padding: 0 0 1rem 0;
  border-bottom: 1px solid rgba(51, 51, 51, 0.5);
}
#toc_container .toc_list li > ul ul {
  margin: 0;
  padding: 0;
}
#toc_container .toc_list li > ul li {
  margin: 0.25rem 0 0 0;
}
#toc_container .toc_list li > ul a {
  font-weight: 400;
}

/* works list
--------------------------------------------- */
.works-list {
  display: -moz-grid;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  gap: 1.5rem;
  width: 100%;
  margin: 1.5rem 0 0 0;
  padding: 0;
}
.works-list__item {
  width: 100%;
  padding: 1rem;
  border: 1px solid #CCCCCC;
  list-style-type: none;
}
.works-list__item a {
  color: #333333;
  text-decoration: none;
}
.works-list__item-thumb {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 3/2;
}
.works-list__item-thumb img {
  width: 100%;
  height: auto;
  margin: 0;
  -o-object-fit: contain;
     object-fit: contain;
  transition: all 0.3s ease-in-out;
}
.works-list__item-thumb img:hover {
  transform: scale(1.1);
}
.works-list__item-txt {
  width: 100%;
  margin-top: 0.5rem;
}
.works-list__item-txt h3 {
  color: #003865;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.6;
}

/* main visual
--------------------------------------------- */
.f-hero {
  position: relative;
  margin-top: 5px;
  aspect-ratio: 3/2;
}
@media screen and (max-width: 768px) {
  .f-hero {
    aspect-ratio: 4/3;
  }
}
.f-hero-slider {
  width: 100%;
  height: 100%;
}
.f-hero-slider .swiper-slide {
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: cover;
}
.f-hero-slider p {
  position: absolute;
  width: 100%;
  padding: 0 2.5rem;
  color: #333333;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.8;
}
@media screen and (max-width: 768px) {
  .f-hero-slider p {
    padding: 0 1.5rem;
    font-size: 18px;
    line-height: 1.6;
  }
}
.f-hero-slider .swiper-slide-active p {
  animation-delay: 1.5s;
  animation-duration: 1s;
  animation-fill-mode: both;
  animation-name: fadeIn;
}
.f-hero .slide01 {
  background-image: url(../img/index/top_slide_01.jpg);
}
.f-hero .slide01 p {
  top: 25%;
  left: 0;
  font-size: 40px;
  text-align: center;
  text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.75);
}
@media screen and (max-width: 768px) {
  .f-hero .slide01 p {
    font-size: 24px;
  }
}
.f-hero .slide02 {
  background-image: url(../img/index/top_slide_02.jpg);
}
.f-hero .slide02 p {
  top: auto;
  bottom: 10%;
  left: 0;
  text-align: center;
  text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.75);
}
@media screen and (max-width: 768px) {
  .f-hero .slide02 p {
    bottom: 5%;
  }
}
.f-hero .slide03 {
  background-image: url(../img/index/top_slide_03.jpg);
}
.f-hero .slide03 p {
  top: auto;
  bottom: 10%;
  left: 0;
  text-align: center;
  text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.75);
}
.f-hero .slide04 {
  background-image: url(../img/index/top_slide_04.jpg);
}
.f-hero .slide04 p {
  top: 24.25%;
  left: 0;
  color: #FFFFFF;
  font-size: 24px;
  text-shadow: 2px 2px 4px rgba(51, 51, 51, 0.75);
}
@media screen and (max-width: 768px) {
  .f-hero .slide04 p {
    top: 8.75%;
    font-size: 1rem;
  }
}
.f-hero .slide05 {
  background-image: url(../img/index/top_slide_05.jpg);
}
.f-hero .slide05 p {
  top: 24.25%;
  left: 0;
  color: #FFFFFF;
  text-shadow: 2px 2px 4px rgba(51, 51, 51, 0.75);
}
@media screen and (max-width: 768px) {
  .f-hero .slide05 p {
    top: 8.75%;
  }
}
.f-hero .slide06 {
  background-image: url(../img/index/top_slide_06.jpg);
}
.f-hero .slide06 p {
  top: 40%;
  left: 0;
  text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.75);
}
@media screen and (max-width: 768px) {
  .f-hero .slide06 p {
    top: 32.25%;
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateX(100px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* hokkaido
--------------------------------------------- */
.f-hokkaido {
  position: relative;
  margin-top: 40px;
}
@media screen and (max-width: 768px) {
  .f-hokkaido {
    margin-top: 1.5rem;
  }
}
.f-hokkaido figure img {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.f-hokkaido figure figcaption {
  margin-top: 0.5rem;
  color: #333333;
  font-size: 1.2rem;
  font-weight: 700;
  text-align: center;
}
/* -- add 2025.3.27 -- */
.f-hokkaido-field {
  display: flex;
  min-width: 100px; /* セクションの最小幅 */
  max-width: 100px; /* セクションの最大幅 */
  justify-content: space-between;
  flex: 1; /* 各セクションが均等に幅を取る */
  text-align: center;
}

/* menu
--------------------------------------------- */
.f-menu {
  position: relative;
  margin-top: 64px;
}
@media screen and (max-width: 768px) {
  .f-menu {
    margin-top: 40px;
  }
}
.f-menu-list {
  display: -moz-grid;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 1.5rem 40px;
  list-style-type: none;
}
@media screen and (max-width: 768px) {
  .f-menu-list {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(4, 1fr);
    gap: 1.5rem;
  }
}
.f-menu-list__item {
  width: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
}
.f-menu-list__item p {
  margin-top: 0.5rem;
  font-size: 0.9rem;
}
.f-menu-list__item p a {
  color: #333333;
  text-decoration: underline;
}

/* award
--------------------------------------------- */
.f-award {
  position: relative;
  margin-top: 64px;
}
@media screen and (max-width: 768px) {
  .f-award {
    margin-top: 40px;
  }
}
.f-award__inner {
  display: -moz-grid;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 1fr;
  gap: 1.5rem 40px;
}
@media screen and (max-width: 768px) {
  .f-award__inner {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(2, 1fr);
  }
}
.f-award__item {
  width: 100%;
  margin: 0;
  padding: 0;
}
.f-award__item a {
  color: #333333;
  text-decoration: none;
}
.f-award__item figure img {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.f-award__item figure figcaption {
  margin-top: 0.5rem;
  color: #333333;
  font-size: 0.9rem;
  font-weight: 700;
  text-align: center;
}

/* news
--------------------------------------------- */
.f-news {
  position: relative;
  margin-top: 96px;
  padding: 64px 0;
  background-image: url(../img/index/news_img_03.jpg);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
@media screen and (max-width: 768px) {
  .f-news {
    margin-top: 64px;
  }
}
.f-news__inner {
  background-color: rgba(255, 255, 255, 0.8);
}
.f-news__inner .news-list {
  width: 100%;
  margin: 0;
}
.f-news__link {
  padding: 1rem 0;
}
.f-news__link a {
  color: #333333;
  text-decoration: none;
}
.f-news__link a::after {
  content: "\f101";
  display: inline-block;
  position: relative;
  margin-left: 6px;
  color: #333333;
  font-size: 1rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
}

/* blog
--------------------------------------------- */
.f-blog {
  position: relative;
  margin: 0 auto;
  padding: 64px 0;
  background-color: #F9F9F9;
}
.f-blog_cat {
  display: flex;
  list-style: none;
  flex-wrap: wrap;
  gap: 1rem;
}
@media screen and (max-width: 768px) {
  .f-blog_cat {
    justify-content: center;
  }
}
.f-blog_cat li {
  padding: 0.25em 1em;
  background-color: #D7E2E3;
}
.f-blog_cat li:hover {
  cursor: pointer;
}
.f-blog_cat li.active {
  background-color: #003865;
  color: #FFFFFF;
}
/* company
--------------------------------------------- */
.f-company {
  position: relative;
  margin-top: 0;
}
.f-company-list {
  display: -moz-grid;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto;
  gap: 0;
}
@media screen and (max-width: 768px) {
  .f-company-list {
    grid-template-columns: 1fr;
  }
}
.f-company-list__item {
  width: 100%;
  margin: 0;
  padding: 0;
}
.f-company-list__item.txt-box {
  align-self: center;
  padding: 1rem 2rem;
}
@media screen and (max-width: 768px) {
  .f-company-list__item.txt-box {
    padding: 1.5rem 1rem;
  }
}
.f-company-list__item.txt-box p {
  margin-top: 1.5rem;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.8;
}
@media screen and (max-width: 768px) {
  .f-company-list__item.txt-box p {
    margin-top: 1rem;
    font-size: 1rem;
  }
}
.f-company-list__item.company-box {
  aspect-ratio: 1/1;
}
@media screen and (max-width: 768px) {
  .f-company-list__item.company-box {
    aspect-ratio: 16/9;
  }
}
.f-company-list__item.company-box img {
  -o-object-fit: cover;
     object-fit: cover;
}
.f-company-list__item.insta-box {
  align-self: center;
  padding: 2rem;
  background-color: #F9F9F9;
  aspect-ratio: 1/1;
}
@media screen and (max-width: 768px) {
  .f-company-list__item.insta-box {
    padding: 1.5rem 1rem;
  }
}
.f-company-list__item.insta-box #sb_instagram {
  margin-top: 1.5rem;
}
.f-company-list__item h3 {
  color: #003865;
  font-size: 24px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .f-company-list__item h3 {
    font-size: 18px;
  }
}
.f-company-list__item a {
  display: block;
  margin: 0;
  padding: 0;
}
.f-company-list__item img {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.f-company-list__item .f-youtube {
  position: relative;
  padding-bottom: 56.25%;
  width: 100%;
  height: 0;
  overflow: hidden;
  aspect-ratio: 16/9;
}
.f-company-list__item .f-youtube iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* footer
--------------------------------------------- */
.f-footer {
  position: relative;
  margin-top: 0;
  background-image: url(../img/index/footer_img_01.jpg);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
@media screen and (max-width: 768px) {
  .f-footer {
    display: none;
  }
}
.f-footer-box {
  width: 100%;
  height: 150px;
}

/* company
--------------------------------------------- */
.l-company-tbl table {
  width: 100%;
  border-collapse: collapse;
}
.l-company-tbl table tbody th {
  width: 8em;
  border: none;
  border-bottom: 1px solid #CCCCCC;
  color: rgba(0, 0, 255, 0.52);
}
@media screen and (max-width: 768px) {
  .l-company-tbl table tbody th {
    width: 6em;
  }
}
.l-company-tbl table tbody td {
  width: calc(100% - 8em);
  border: none;
  border-bottom: 1px solid #CCCCCC;
}
@media screen and (max-width: 768px) {
  .l-company-tbl table tbody td {
    width: calc(100% - 6em);
  }
}
.l-company-tbl table tbody td span {
  display: inline-block;
  width: 50%;
}
@media screen and (max-width: 768px) {
  .l-company-tbl table tbody td span {
    display: block;
    width: 100%;
  }
}
.l-company-tbl table tbody tr:first-child th,
.l-company-tbl table tbody tr:first-child td {
  border-top: 1px solid #CCCCCC;
}
.l-company-tbl dl {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 0.5rem 1rem;
}
.l-company-tbl dl dt {
  width: 160px;
}
.l-company-tbl dl dd {
  width: calc(100% - 160px);
}

/* service
--------------------------------------------- */
.l-service-tbl table {
  width: 100%;
  border-collapse: collapse;
}
.l-service-tbl table tbody th {
  width: 140px;
  border: none;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .l-service-tbl table tbody th {
    width: 96px;
  }
}
.l-service-tbl table tbody td {
  width: calc(100% - 140px);
  border: none;
}
@media screen and (max-width: 768px) {
  .l-service-tbl table tbody td {
    width: calc(100% - 96px);
  }
}
.l-service-tbl.system tbody th {
  background-color: rgba(0, 255, 255, 0.05);
}
.l-service-tbl.construction tbody th {
  background-color: rgba(255, 217, 102, 0.11);
}

.l-service-banner {
  gap: 1rem;
  width: 100%;
  margin-top: 1.5rem;
}
.l-service-banner figure {
  width: calc(33.3333333333% - 1rem);
}
@media screen and (max-width: 768px) {
  .l-service-banner figure {
    width: calc(50% - 1rem);
  }
}
.l-service-banner figure img {
  margin: 0 !important;
}

/* history
--------------------------------------------- */
.l-history-tbl table {
  width: 100%;
  border-collapse: collapse;
}
.l-history-tbl table tbody td:first-child {
  width: 84px;
  height: 21px;
  padding: 0 0.5rem;
  border: none;
  background-color: rgba(0, 255, 0, 0.16);
  font-size: 14px;
  font-weight: 400;
  vertical-align: top;
  text-align: center;
  line-height: 1.2;
}
.l-history-tbl table tbody td:nth-child(2) {
  width: 84px;
  padding: 0.25rem 0.5rem;
  border: none;
  background-color: rgba(0, 255, 0, 0.16);
  font-size: 14px;
  font-weight: 400;
  vertical-align: middle;
  text-align: right;
}
.l-history-tbl table tbody td:nth-child(3) {
  width: calc(100% - 168px);
  padding: 0.25rem 0.5rem;
  border: none;
  font-size: 14px;
  vertical-align: middle;
}
@media screen and (max-width: 768px) {
  .l-history-tbl table tbody td:nth-child(3) {
    width: calc(100% - 96px);
  }
}

/* qualified
--------------------------------------------- */
.l-qualified-list table {
  width: 100%;
  border-collapse: collapse;
}
.l-qualified-list table tbody td {
  width: 50%;
  padding: 0.5rem 0;
  border: none;
  font-size: 1rem;
}
@media screen and (max-width: 768px) {
  .l-qualified-list table tbody td:first-child {
    width: calc(100% - 32px);
  }
}
@media screen and (max-width: 768px) {
  .l-qualified-list table tbody td:last-child {
    width: 32px;
    text-align: right;
  }
}
.l-qualified-list.mt0 {
  margin-top: 0 !important;
}

.l-qualified-ttl {
  width: 100%;
  max-width: 384px;
  margin-top: 1rem;
  padding: 10px;
  background-color: rgb(255, 229, 153);
}
@media screen and (max-width: 768px) {
  .l-qualified-ttl {
    max-width: none;
  }
}

/* environment
--------------------------------------------- */
.wp-block-gallery.has-nested-images.l-env-list {
  gap: 20px !important;
}
.wp-block-gallery.has-nested-images.l-env-list figure.wp-block-image {
  flex-grow: 0;
  width: calc(33.33% - 15px) !important;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .wp-block-gallery.has-nested-images.l-env-list figure.wp-block-image {
    width: calc(50% - 10px) !important;
  }
}
.wp-block-gallery.has-nested-images.l-env-list figure.wp-block-image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  margin: 0;
}
.wp-block-gallery.has-nested-images.l-env-list figure.wp-block-image figcaption {
  position: relative;
  background: transparent;
  color: #333333;
}

/* sdgs
--------------------------------------------- */
.l-sdgs-action-list {
  width: 100%;
  margin-top: 1.5rem;
}
.l-sdgs-action-list li {
  margin-left: 1rem;
  list-style-type: none;
}
.l-sdgs-action-list li a::after {
  content: "\f08e";
  display: inline-block;
  margin-left: 0.5rem;
  color: #333333;
  font-size: 1rem;
  font-family: "Font Awesome 6 Free";
  font-weight: 700;
}

.l-sdgs-intro > .is-layout-constrained {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: nowrap;
}
@media screen and (max-width: 480px) {
  .l-sdgs-intro > .is-layout-constrained {
    gap: 20px;
    flex-wrap: wrap;
  }
}
.l-sdgs-intro__txt {
  width: calc(100% - 280px);
}
@media screen and (max-width: 480px) {
  .l-sdgs-intro__txt {
    width: 100%;
  }
}
.l-sdgs-intro__thumb {
  width: 280px;
}
@media screen and (max-width: 480px) {
  .l-sdgs-intro__thumb {
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
  }
}
.l-sdgs-intro__thumb img {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  margin: 0;
}

.l-sdgs-project-list {
  width: 100%;
  margin-top: 1.5rem;
}
.l-sdgs-project-list .is-layout-constrained {
  display: -moz-grid;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 1fr;
  gap: 20px;
}
@media screen and (max-width: 768px) {
  .l-sdgs-project-list .is-layout-constrained {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
  }
}
.l-sdgs-project-list .is-layout-constrained figure {
  width: 100%;
}
.l-sdgs-project-list .is-layout-constrained figure img {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.l-sdgs-project-list .is-layout-constrained figure figcaption {
  text-align: center;
}

/* access
--------------------------------------------- */
.gmap {
  position: relative;
  width: 100%;
  margin-top: 1.5rem;
  padding-top: 56.25%;
}
.gmap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.l-access__btn {
  position: relative;
  margin-top: 1.5rem;
}
@media print {
  .l-access__btn {
    display: none;
  }
}
.l-access__btn .print {
  padding: 6px 1rem;
  border: 1px solid #CCCCCC;
  border-radius: 6px;
  background-color: #FFFFFF;
  transition: all 0.3s ease-in-out;
}
.l-access__btn .print:hover {
  background-color: #FAFAFA;
}
.l-access__btn .print i {
  margin-right: 4px;
}

/* works
--------------------------------------------- */
.wp-block-gallery.l-works-list {
  gap: 20px !important;
}
.wp-block-gallery.l-works-list figure.wp-block-image {
  flex-grow: 0;
  width: calc(50% - 15px);
  margin: 0;
}
.wp-block-gallery.l-works-list figure.wp-block-image:first-child {
  width: 100% !important;
}
.wp-block-gallery.l-works-list figure.wp-block-image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  margin: 0;
}

.l-works__link .link-btn {
  width: 100%;
  max-width: 360px;
  margin: 40px auto 1.5rem;
  border: 1px solid #003865;
  border-radius: 0;
  color: #003865;
}
.l-works__link .link-btn:hover {
  background-color: #003865;
  color: #FFFFFF;
}

/* system
--------------------------------------------- */
.l-system-box > .wp-block-group__inner-container {
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 1rem 1.5rem;
}
@media screen and (max-width: 768px) {
  .l-system-box > .wp-block-group__inner-container {
    flex-wrap: wrap;
  }
}
.l-system-box__img {
  width: 224px;
}
@media screen and (max-width: 768px) {
  .l-system-box__img {
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
  }
}
.l-system-box__img img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
.l-system-box__txt {
  width: calc(100% - 224px);
}
@media screen and (max-width: 768px) {
  .l-system-box__txt {
    width: 100%;
  }
}
.l-system-box__txt ul li::marker {
  margin-right: 0.5rem;
}
.l-system-box__txt ul li .sub-list {
  margin-left: 1.5rem;
}
.l-system-box__txt p {
  margin-bottom: 1rem;
}
.l-system-box__txt h4 {
  margin-top: 1.5rem;
  color: #00A3D9;
}

/* system
--------------------------------------------- */
.water-swiper {
  width: 100%;
  overflow: hidden;
}
.water-swiper .swiper-button-next, .water-swiper .swiper-button-prev {
  position: absolute;
  z-index: 10;
  margin-top: 0;
  transform: translate(0%, -50%);
}
.water-swiper .swiper-button-next::after, .water-swiper .swiper-button-prev::after {
  position: relative;
  opacity: 1;
  font-family: "Font Awesome 6 Free";
  font-size: 48px;
  font-weight: 900;
}
@media screen and (max-width: 768px) {
  .water-swiper .swiper-button-next::after, .water-swiper .swiper-button-prev::after {
    font-size: 36px;
  }
}
.water-swiper .swiper-button-prev::after {
  content: "\f104";
}
.water-swiper .swiper-button-next::after {
  content: "\f105";
}

/* contact
--------------------------------------------- */
.l-contact-txt {
  margin-top: 1.5rem;
  line-height: 1.8;
}

.l-contact__link {
  margin-top: 1.5rem;
  line-height: 1.8;
}
.l-contact__link .link-btn {
  max-width: 360px;
  margin: 0 auto;
  border-radius: 0;
  background: #6fa8dc;
  background: linear-gradient(to bottom, #6fa8dc 0%, #17a4c6 100%);
  color: #FFFFFF;
}

/* policy
--------------------------------------------- */
.l-policy-list {
  margin-left: 0.5rem;
}
.l-policy-list li {
  margin-top: 6px;
  padding-left: 1em;
  text-indent: -1em;
  line-height: 1.8;
}

/* sitemap
--------------------------------------------- */
.wsp-container .wsp-pages-list {
  margin-left: 0.5rem;
}
.wsp-container .wsp-pages-list li {
  margin-top: 0.5rem;
  padding-left: 0;
  line-height: 1.8;
  list-style-type: none;
}
.wsp-container .wsp-pages-list li a {
  display: block;
  padding: 0.25rem 1rem;
  background-color: #DDDDDD;
  color: #003865;
  text-decoration: none;
}
.wsp-container .wsp-posts-list {
  margin-left: 0.5rem;
}
.wsp-container .wsp-posts-list li {
  margin-top: 0.25rem;
  padding-left: 0;
  line-height: 1.8;
  list-style-type: none;
}
.wsp-container .wsp-category-title {
  position: relative;
  list-style-type: none;
}
.wsp-container .wsp-category-title::before {
  content: "";
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 0;
  width: 16px;
  height: 2px;
  background-color: #003865;
  transform: translateY(-50%);
}
.wsp-container .wsp-category-title a {
  display: block;
  padding: 0.25rem 1rem 0.25rem 1.5rem;
  background-color: #DDDDDD;
  color: #003865;
  text-decoration: none;
}

.pc-only {
  display: block;
}
@media screen and (max-width: 768px) {
  .pc-only {
    display: none;
  }
}

.sp-only {
  display: none;
}
@media screen and (max-width: 768px) {
  .sp-only {
    display: block;
  }
}

.xl {
  display: none;
}
@media screen and (max-width: 1280px) {
  .xl {
    display: block;
  }
}

.lg {
  display: none;
}
@media screen and (max-width: 1024px) {
  .lg {
    display: block;
  }
}

.md {
  display: none;
}
@media screen and (max-width: 768px) {
  .md {
    display: block;
  }
}

.sm {
  display: none;
}
@media screen and (max-width: 480px) {
  .sm {
    display: block;
  }
}/*# sourceMappingURL=style.css.map */