* {
  box-sizing: border-box;
}
html {
  font-size: 62.5%;
  height: 100%;
}
@media screen and (max-width:1920px) {
  html {
    font-size: calc(100vw / 1920 * 10);
  }
}
@media screen and (max-width:767px) {
  html {
    font-size: calc(100vw / 375 * 10);
  }
}
body {
  color: #343434;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
  min-width: 86.1%;
  -webkit-text-size-adjust: none;
  padding-top: 9.5rem;
}
body.active {
  height: 100%;
  overflow: hidden;
}
a {
  color: #004795;
  font-size: 1.8rem;
  font-weight: bold;
  text-decoration: none;
  transition: .3s;
}
a:hover {
  opacity: .75;
}
img {
  display: block;
  height: auto;
  max-width: 100%;
}
.img2 {
  display: block;
  height: auto;
  max-width: 100%;
  min-width: 100px;
}
dl, ul {
  list-style: none;
}
.only_pc {
  display: block !important;
}
.only_sp {
  display: none !important;
}
.container {
  margin: 0 auto;
  max-width: 150rem;
  padding: 0 2rem;
}
@media screen and (max-width: 767px) {
  body {
    min-width: auto;
    padding-top: 6rem;
  }
  .only_pc {
    display: none !important;
  }
  .only_sp {
    display: block !important;
  }
  .container {
    max-width: unset;
    padding: 0 1rem;
  }
}
/* ------------------------------------------
  header
------------------------------------------ */
header {
  background-color: #ffe33f;
  display: flex;
  height: 11.5rem;
  justify-content: space-between;
  position: fixed;
  z-index: 999;
  width: 100%;
  top: 0;
}
header .header_logo {
  align-items: center;
  display: flex;
}
header .header_logo a {
  display: block;
  width: 38.5rem;
  margin-right: 2.5rem;
}
header .header_logo .site_ttl_wrap .ttl_small {
  font-size: .8rem;
  letter-spacing: .1em;
  color: #000;
  display: block;
}
header .header_logo .site_ttl_wrap .ttl_main {
  display: block;
  font-size: 2.3rem;
  letter-spacing: .1em;
  margin-top: 1rem;
  font-weight: 500;
}
header .header_menu {
  display: flex;
  height: 100%;
}
header .header_menu_item_link {
  align-items: center;
  color: #000;
  display: block;
  display: flex;
  flex-direction: column;
  font-size: 1.7rem;
  height: 100%;
  justify-content: center;
  letter-spacing: .2em;
  line-height: calc(26/15);
  padding: 0 2.0rem;
  position: relative;
  /* border-left: .1rem solid #000; */
}
header .header_menu_item_link::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: .025rem;
  height: 3rem;
  background-color: #000;
}
header .header_menu_item:nth-child(7) .header_menu_item_link::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  width: .025rem;
  height: 3rem;
  background-color: #000;
}
header .header_menu_item:nth-child(8) .header_menu_item_link::before, header .header_menu_item:nth-child(9) .header_menu_item_link::before {
  display: none;
}
header .header_menu_item.tel_bnr {
  margin-left: 4.5rem;
}
header .header_menu_item.tel_bnr .header_menu_item_link {
  width: 28rem;
  padding: 0;
}
header .header_menu_item.contact {
  margin-left: 2.5rem;
}
header .header_menu_item.contact .header_menu_item_link {
  font-weight: bold;
  font-size: 1.8rem;
  line-height: calc(23/18);
  letter-spacing: .1em;
  width: 25.4rem;
  color: #fff;
  background-color: #0d8080;
  text-align: center;
  padding: 0 4rem 0 9rem;
  background-position: left 3rem center;
  background-repeat: no-repeat;
  background-size: 5rem 4rem;
  background-image: url(../img/common/mail_icon.webp);
}
header .header_menu_item.active .header_menu_item_link {
  background-color: #fff;
}
header .header_menu_item.recruit.active .header_menu_item_link {
  color: #212b5c;
}
header .header_menu .child_menu {
  background-color: #fff;
  display: flex;
  flex-wrap: nowrap;
  justify-content: right;
  left: 0;
  opacity: 0;
  padding: 3rem 0;
  position: absolute;
  transition: .3s;
  visibility: hidden;
  width: 100%;
}
header .header_menu .child_menu.active {
  opacity: 1;
  visibility: visible;
}
header .header_menu .child_menu_item {
  border-right: .1rem solid #000;
}
header .header_menu .child_menu_item_link {
  display: block;
  font-size: 1.5rem;
  letter-spacing: .2rem;
  line-height: calc(21/19);
  padding: 0 2rem;
}
.ham_box {
  display: none;
}
@media screen and (max-width: 767px) {
  header {
    height: 6rem;
    padding: 0 1rem 0 0;
    align-items: center;
  }
  header .header_logo a {
    display: block;
    width: 14rem;
    margin-right: 1rem;
  }
  header .header_logo a img {
    width: 100%;
    height: 100%;
    max-width: 120rem;
  }
  header .header_logo .site_ttl_wrap .ttl_small {
    font-size: .8rem;
  }
  header .header_logo .site_ttl_wrap .ttl_main {
    font-size: 2.1rem;
    letter-spacing: .1em;
    margin-top: 0.5rem;
  }
  header nav {
    position: absolute;
    z-index: 998;
    top: 6rem;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc((100vh - 6rem));
    /* height:100svh; */
    width: 100%;
    background-color: #fff;
    padding: 2rem 2rem 2rem;
    overflow: scroll;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: .3s ease;
  }
  header nav.active {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
  }
  header .header_menu {
    flex-direction: column;
    height: auto;
  }
  header .header_menu_item_link {
    flex-direction: column;
    font-size: 1.6rem;
    line-height: calc(21/19);
    padding: 1rem 0;
    border-bottom: .1rem solid #ddd;
    height: auto;
    position: relative;
  }
  header .header_menu_item_link .has_child {
    z-index: 11000;
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 2rem;
    width: 3rem;
    height: 3rem;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 1.2rem 1rem;
    background-image: url(../img/common/child_menu_arrow_b.webp);
    transition: .3s ease;
  }
  header .header_menu_item .header_menu_item_link .has_child.open {
    transform: translateY(-50%) rotate(180deg);
  }
  header .header_menu_item.recruit .header_menu_item_link .has_child {
    background-image: url(../img/common/child_menu_arrow_w.webp);
  }
  header .header_menu_item.tel_bnr {
    margin: 3rem auto 0;
  }
  header .header_menu_item.contact {
    margin: 2rem auto 0;
    line-height: 6rem;
  }
  header .header_menu_item.contact .header_menu_item_link {
    font-size: 1.6rem;
    width: auto;
    line-height: 6rem;
    padding: 0 2rem 0 6.5rem;
    background-position: left 1.5rem center;
    background-size: 4rem 3.2rem;
  }
  header .header_menu_item.active .header_menu_item_link {
    background-color: #eee8e6;
  }
  header .header_menu_item.recruit.active .header_menu_item_link {
    color: #212b5c;
  }
  header .header_menu .child_menu {
    flex-direction: column;
    opacity: 1;
    padding: 0;
    position: static;
    visibility: visible;
    width: 100%;
    display: none;
    transition: none;
    background-color: unset;
  }
  header .header_menu .child_menu_item {
    border-right: none;
  }
  header .header_menu .child_menu_item_link {
    display: block;
    font-size: 1.6rem;
    padding: 1rem 2rem;
    border-bottom: .1rem solid #eee;
    background-color: unset;
  }
  header .header_menu_item_link::before {
    display: none;
  }
  header .header_menu_item:nth-child(7) .header_menu_item_link::after {
    display: none;
  }
  /* ハンバーガーメニュー */
  .ham_box {
    width: 4.2rem;
    height: 4.2rem;
    background-color: #004796;
    position: relative;
    cursor: pointer;
    display: block;
  }
  .ham_box span {
    border-radius: .1rem;
    display: block;
    position: absolute;
    background-color: #fff;
    width: 2.7rem;
    height: .1rem;
    content: "";
    left: .7rem;
    transition: .3s ease;
  }
  .ham_box span:nth-child(1) {
    top: 1.2rem;
  }
  .ham_box span:nth-child(2) {
    top: 2.1rem;
  }
  .ham_box span:nth-child(3) {
    top: 3rem;
  }
  .ham_box.active span:nth-child(1) {
    top: 2rem;
    transform: rotate(45deg);
  }
  .ham_box.active span:nth-child(2) {
    opacity: 0;
  }
  .ham_box.active span:nth-child(3) {
    top: 2rem;
    transform: rotate(-45deg);
  }
}
/* ------------------------------------------
  footer
------------------------------------------ */
footer {
  padding-bottom: 10rem;
}
footer .top {
  background-color: #004795;
}
footer .top .container {
  padding: 4.3rem 2rem 0;
}
footer .top .top_flex {
  display: flex;
  justify-content: space-between;
}
footer .top .footer_logo {
  width: 25.5rem;
  display: block;
  margin-right: 6rem;
}
footer .top .footer_right {
  width: calc(100% - 17.5rem);
}
footer .top .footer_right .footer_right_item:nth-child(1) {
  display: flex;
  justify-content: space-between;
  padding-bottom: 4.5rem;
}
footer .top .footer_right .site_info {
  display: flex;
  padding-top: 2.5rem;
}
footer .top .footer_right .site_info .small {
  font-size: .95rem;
  color: #fff;
  letter-spacing: .1em;
  line-height: 2.5rem;
}
footer .top .footer_right .site_info .ttl {
  font-size: 2.7rem;
  color: #fff;
  letter-spacing: .1em;
  font-weight: 500;
  margin-top: 0rem;
  margin-right: 2.5rem;
}
footer .top .footer_right .site_info .address {
  color: #fff;
  font-size: 1.6rem;
  letter-spacing: .3em;
  line-height: 2.5rem;
}
footer .top .footer_right .sns_list {
  display: flex;
  column-gap: 2.5rem;
}
footer .top .footer_right .sns_list li {
  width: 4.2rem;
}
footer .top .footer_right .sns_list li a {
  display: block;
}
footer .footer_menu {
  display: flex;
  justify-content: center;
  padding: 1.8rem 0 6.7rem;
}
footer .footer_menu li {
  flex-grow: 1;
}
footer .footer_menu li a {
  line-height: 4.2rem;
  display: block;
  color: #fff;
  font-size: 1.5rem;
  letter-spacing: .1em;
  text-align: center;
  border-left: .05rem solid #fff;
}
footer .footer_menu li:last-child a {
  border-right: .05rem solid #fff;
}
footer .top .footer_right .footer_right_item .copy {
  text-align: center;
  color: #fff;
  font-size: 1.4rem;
  display: block;
  padding-bottom: 2.5rem;
  letter-spacing: 0.5rem;
}
footer .bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0 4.7rem 0;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #fff;
}
footer .bottom p {
  text-align: center;
  font-weight: bold;
  font-size: 3.6rem;
  letter-spacing: .1em;
  line-height: calc(51/36);
  color: #0d8080;
}
footer .bottom .footer_contact_link {
  display: block;
  background-color: #0d8080;
  border-radius: 1.1rem;
  width: 45rem;
  line-height: 4rem;
  margin-left: 1.6rem;
  color: #fff;
  padding: 1rem 1rem 1rem 11rem;
  font-size: 2.8rem;
  letter-spacing: .1em;
  background-image: url(../img/common/footer_mail_icon.webp);
  background-position: left 2.5rem center;
  background-repeat: no-repeat;
  background-size: 6.8rem 5.4rem;
}
.bottm_in {
  margin: 0 auto;
  max-width: 80rem;
  max-height: 5rem;
  display: flex;
}
.bottm_in img a {
  display: flex;
}
.footer_right_item {
  font-size: 70%;
  color: #fff;
  letter-spacing: 0.5rem;
  margin: 0 auto;
  text-align: center;
  padding: 0 0 2rem 0;
}
@media screen and (max-width: 767px) {
  footer {
    margin-top: 0rem;
    padding-bottom: 5rem;
  }
  footer .top .container {
    padding: 2.3rem 2rem 0;
  }
  footer .top .top_flex {
    flex-direction: column;
  }
  footer .top .footer_logo {
    width: 24rem;
    margin-right: 0;
    margin: 0 auto;
  }
  footer .top .footer_right {
    width: auto;
    margin-top: 3rem;
  }
  footer .top .footer_right .footer_right_item:nth-child(1) {
    flex-direction: column;
    padding-bottom: 4.5rem;
  }
  footer .top .footer_right .site_info {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-top: 0;
  }
  footer .top .footer_right .site_info .site_ttl_wrap {
    text-align: center;
  }
  footer .top .footer_right .site_info .ttl {
    font-size: 2rem;
    margin: 1rem auto 0;
  }
  footer .top .footer_right .site_info .address {
    font-size: 1.3rem;
    margin-top: 2rem;
  }
  footer .top .footer_right .sns_list {
    justify-content: center;
    column-gap: 2rem;
    margin-top: 3rem;
  }
  footer .top .footer_right .sns_list li {
    width: 3rem;
  }
  footer .footer_menu {
    flex-wrap: wrap;
    padding: 1.3rem 0 4rem;
    gap: 1rem 0;
  }
  footer .footer_menu li a {
    line-height: 2.5rem;
    font-size: 1.4rem;
    padding: 0 1.5rem;
  }
  footer .top .footer_right .footer_right_item .copy {
    font-size: 1rem;
    padding-bottom: 1.5rem;
  }
  footer .bottom {
    padding: 0.1rem 0.1rem;
    flex-direction: column;
  }
  footer .bottom .footer_tel_bnr {
    width: 80%;
    margin-left: 0;
  }
  footer .bottom .footer_contact_link {
    border-radius: .5rem;
    width: 80%;
    line-height: 3.7rem;
    margin-left: 0;
    padding: 0 1rem 0 6rem;
    font-size: 1.6rem;
    background-position: left 1.5rem center;
    background-repeat: no-repeat;
    background-size: 3rem 2.2rem;
    margin-top: .5rem;
  }
}