@charset "UTF-8";
/*==========================================
  Layout
==========================================*/
/*==================================
  header
==================================*/
header {
  position: fixed;
  z-index: 999;
  padding: 27px 24px 0;
  top: 0;
  width: 100%;
  box-sizing: border-box;
}
header .header_inner {
  box-shadow: 0px 8px 9px 0px rgba(17, 17, 18, 0.07);
  border-radius: 50px;
  background: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 13px 12px 46px;
}
header .header_inner .logo {
  width: 247px;
}
header .header_inner .logo a {
  display: block;
  line-height: 0;
}
header .header_inner nav {
  display: flex;
  align-items: center;
  gap: 32px;
}
header .header_inner nav .navi {
  display: flex;
  gap: 25px;
  line-height: 1.3125;
  font-weight: 700;
}
header .header_inner nav .navi li a {
  display: block;
  position: relative;
}
header .header_inner nav .navi li a::before {
  content: "";
  position: absolute;
  bottom: -3px;
  left: 0;
  position: absolute; /* 絶対位置指定 */
  transform: scale(0, 1); /* 下線を横方向に0倍、縦方向に1倍に変形（非表示） */
  transform-origin: right top; /* 変形の原点を右上に指定 */
  transition: transform 0.3s; /* 変形をアニメーション化 */
  width: 100%;
  background: #000;
  height: 1px;
}
header .header_inner nav .navi li a.active::before, header .header_inner nav .navi li a:hover::before {
  transform-origin: left top; /* 変形の原点を左上に指定 */
  transform: scale(1, 1);
}
header .header_inner nav .list-btn li {
  width: 216px;
  position: relative;
}
header .header_inner nav .list-btn li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #e6451a;
  border-radius: 28px;
  transition: all 0.25s;
}
header .header_inner nav .list-btn li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  padding: 12px 12px 12px 28px;
  border-radius: 28px;
  color: #fff;
  transition: all 0.5s;
  font-weight: 700;
  position: relative;
  z-index: 2;
}
header .header_inner nav .list-btn li a:after {
  content: "";
  background: url("../images/common/icon_calender.png") no-repeat center/18px auto, #fff;
  width: 32px;
  height: 32px;
  border-radius: 50%;
}
header .header_inner nav .list-btn li:hover::before {
  transform: scale(1.03);
}
@media screen and (max-width: 1200px) {
  header {
    padding-left: 15px;
    padding-right: 15px;
  }
  header .header_inner {
    padding-left: 25px;
  }
  header .header_inner .logo {
    width: 200px;
  }
  header .header_inner nav {
    gap: 25px;
  }
  header .header_inner nav .navi {
    gap: 20px;
  }
  header .header_inner nav .list-btn li {
    width: 200px;
  }
  header .header_inner nav .list-btn li a {
    padding-left: 20px;
  }
}
@media screen and (max-width: 1000px) {
  header .header_inner .logo {
    width: 150px;
  }
  header .header_inner nav {
    gap: 12px;
  }
  header .header_inner nav .navi {
    gap: 12px;
  }
  header .header_inner nav .navi li a {
    font-size: 13px;
    letter-spacing: 0;
  }
  header .header_inner nav .list-btn li {
    width: 170px;
  }
  header .header_inner nav .list-btn li a {
    font-size: 13px;
    padding: 8px 8px 8px 15px;
  }
  header .header_inner nav .list-btn li a:after {
    width: 28px;
    height: 28px;
    background-size: 15px auto;
  }
}

/*==================================
  footer
==================================*/
footer {
  position: relative;
}
footer .footer_inner {
  position: relative;
  z-index: 2;
  padding: 200px 0 58px;
  color: #fff;
}
footer .footer_inner .wrap {
  width: 1136px;
}
footer .footer_inner .footer_top {
  position: relative;
  display: flex;
  flex-direction: column;
}
footer .footer_inner .footer_top .logo {
  width: 295px;
  margin: 0 0 60px;
  order: 1;
}
footer .footer_inner .footer_top .logo a {
  display: block;
  line-height: 0;
}
footer .footer_inner .footer_top .address {
  font-size: 14px;
  line-height: 25px;
  letter-spacing: 0.08em;
  order: 2;
}
footer .footer_inner .footer_top .tel {
  font-size: 14px;
  line-height: 25px;
  letter-spacing: 0.08em;
  margin: 0 0 22px;
  order: 3;
}
footer .footer_inner .footer_top .info {
  font-size: 14px;
  line-height: 25px;
  letter-spacing: 0.08em;
  order: 4;
}
footer .footer_inner .footer_top .info dl {
  display: flex;
  gap: 4px;
}
footer .footer_inner .footer_top .navi {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  height: 120px;
  align-content: flex-end;
  position: absolute;
  right: 0;
  left: 0;
  top: 110px;
}
footer .footer_inner .footer_top .navi li {
  width: 152px;
  line-height: 2.8;
}
footer .footer_inner .footer_top .navi li a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
@media screen and (max-width: 1000px) {
  footer .footer_inner .footer_top .navi {
    top: 85px;
  }
  footer .footer_inner .footer_top .navi li {
    width: 120px;
  }
}
footer .footer_inner .footer_top .btn-calendar {
  width: 296px;
  margin: 30px 0 0;
  order: 5;
  position: relative;
}
footer .footer_inner .footer_top .btn-calendar::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #fff;
  border-radius: 28px;
  transition: all 0.25s;
}
footer .footer_inner .footer_top .btn-calendar a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  padding: 12px 12px 12px 28px;
  position: relative;
  color: #000;
  transition: all 0.5s;
  font-weight: 700;
  background: #fff;
  border-radius: 28px;
}
footer .footer_inner .footer_top .btn-calendar a:after {
  content: "";
  background: url("../images/common/icon_calender2.png") no-repeat center/18px auto, #e6451a;
  width: 32px;
  height: 32px;
  border-radius: 50%;
}
footer .footer_inner .footer_top .btn-calendar:hover::before {
  transform: scale(1.03);
}
footer .footer_inner .footer_bottom {
  display: flex;
  justify-content: space-between;
  margin: 115px 23px 0 -5px;
  font-size: 13px;
  line-height: 1.5;
  flex-direction: row-reverse;
}
footer .footer_inner .footer_bottom .privacy a {
  color: #b8f5df;
  display: flex;
  align-items: center;
  gap: 7px;
  letter-spacing: 0.08em;
}
footer .footer_inner .footer_bottom .privacy a:after {
  content: "";
  background: url("../images//common/icon_link.png") no-repeat center/100% auto;
  width: 12px;
  height: 12px;
}
footer .footer_inner .footer_bottom .privacy a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
footer .footer_inner .footer_bottom address {
  color: #1c966a;
  font-style: inherit;
}