@charset "UTF-8";
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "dnp-shuei-mgothic-std", "Zen Maru Gothic", sans-serif;
  font-weight: 500;
  font-style: normal;
  color: #774D19;
  line-height: 1.7;
}
body.fixed {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
}

ul, li {
  list-style: none;
}

img {
  width: 100%;
}

a {
  text-decoration: none;
  transition: 0.2s;
}
a:hover {
  opacity: 0.5;
}

.sp {
  display: none;
}

.sakura-container {
  position: absolute;
  width: 100%;
  height: 1330px;
  pointer-events: none;
  top: 0;
  left: 0;
  overflow: hidden;
  z-index: 99;
}

.sakura {
  position: absolute;
  top: -40px;
  -webkit-animation: fall 10s linear forwards, sway 4s ease-in-out infinite;
          animation: fall 10s linear forwards, sway 4s ease-in-out infinite;
  z-index: 100;
  pointer-events: none;
}

@-webkit-keyframes fall {
  0% {
    top: -10px;
    transform: translateX(0) rotate(0deg);
  }
  100% {
    top: 110vh;
    transform: translateX(100px) rotate(360deg);
  }
}

@keyframes fall {
  0% {
    top: -10px;
    transform: translateX(0) rotate(0deg);
  }
  100% {
    top: 110vh;
    transform: translateX(100px) rotate(360deg);
  }
}
@-webkit-keyframes floatCloud1 {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(30px, -20px);
  }
  50% {
    transform: translate(60px, 0);
  }
  75% {
    transform: translate(30px, 20px);
  }
  100% {
    transform: translate(0, 0);
  }
}
@keyframes floatCloud1 {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(30px, -20px);
  }
  50% {
    transform: translate(60px, 0);
  }
  75% {
    transform: translate(30px, 20px);
  }
  100% {
    transform: translate(0, 0);
  }
}
@-webkit-keyframes floatCloud2 {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(-40px, -30px);
  }
  50% {
    transform: translate(-80px, 0);
  }
  75% {
    transform: translate(-40px, 30px);
  }
  100% {
    transform: translate(0, 0);
  }
}
@keyframes floatCloud2 {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(-40px, -30px);
  }
  50% {
    transform: translate(-80px, 0);
  }
  75% {
    transform: translate(-40px, 30px);
  }
  100% {
    transform: translate(0, 0);
  }
}
@-webkit-keyframes floatCloud3 {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(50px, 20px);
  }
  50% {
    transform: translate(100px, 0);
  }
  75% {
    transform: translate(50px, -20px);
  }
  100% {
    transform: translate(0, 0);
  }
}
@keyframes floatCloud3 {
  0% {
    transform: translate(0, 0);
  }
  25% {
    transform: translate(50px, 20px);
  }
  50% {
    transform: translate(100px, 0);
  }
  75% {
    transform: translate(50px, -20px);
  }
  100% {
    transform: translate(0, 0);
  }
}
@-webkit-keyframes flyBee {
  0% {
    transform: translate(0, 0) rotate(0deg) scaleX(-1);
  }
  25% {
    transform: translate(180px, -20px) rotate(15deg) scaleX(-1);
  }
  50% {
    transform: translate(360px, 0px) rotate(0deg) scaleX(-1);
  }
  51% {
    transform: translate(360px, 0px) rotate(0deg) scaleX(1);
  } /* 反転開始 */
  75% {
    transform: translate(180px, -20px) rotate(-15deg) scaleX(1);
  }
  100% {
    transform: translate(0, 0) rotate(0deg) scaleX(1);
  }
}
@keyframes flyBee {
  0% {
    transform: translate(0, 0) rotate(0deg) scaleX(-1);
  }
  25% {
    transform: translate(180px, -20px) rotate(15deg) scaleX(-1);
  }
  50% {
    transform: translate(360px, 0px) rotate(0deg) scaleX(-1);
  }
  51% {
    transform: translate(360px, 0px) rotate(0deg) scaleX(1);
  } /* 反転開始 */
  75% {
    transform: translate(180px, -20px) rotate(-15deg) scaleX(1);
  }
  100% {
    transform: translate(0, 0) rotate(0deg) scaleX(1);
  }
}
@-webkit-keyframes flyButterfly {
  /* 右へ飛ぶ（通常向き） */
  0% {
    transform: translate(0, 0) rotate(0deg) scaleX(1);
  }
  10% {
    transform: translate(60px, -20px) rotate(5deg) scaleX(1);
  }
  20% {
    transform: translate(120px, 10px) rotate(-8deg) scaleX(1);
  }
  30% {
    transform: translate(180px, -15px) rotate(6deg) scaleX(1);
  }
  40% {
    transform: translate(240px, 5px) rotate(-4deg) scaleX(1);
  }
  50% {
    transform: translate(300px, 0px) rotate(0deg) scaleX(1);
  }
  /* 左へ戻る（反転向き） */
  51% {
    transform: translate(300px, 0px) rotate(0deg) scaleX(-1);
  }
  60% {
    transform: translate(240px, -10px) rotate(6deg) scaleX(-1);
  }
  70% {
    transform: translate(180px, 20px) rotate(-5deg) scaleX(-1);
  }
  80% {
    transform: translate(120px, -15px) rotate(7deg) scaleX(-1);
  }
  90% {
    transform: translate(60px, 10px) rotate(-6deg) scaleX(-1);
  }
  100% {
    transform: translate(0, 0) rotate(0deg) scaleX(-1);
  }
}
@keyframes flyButterfly {
  /* 右へ飛ぶ（通常向き） */
  0% {
    transform: translate(0, 0) rotate(0deg) scaleX(1);
  }
  10% {
    transform: translate(60px, -20px) rotate(5deg) scaleX(1);
  }
  20% {
    transform: translate(120px, 10px) rotate(-8deg) scaleX(1);
  }
  30% {
    transform: translate(180px, -15px) rotate(6deg) scaleX(1);
  }
  40% {
    transform: translate(240px, 5px) rotate(-4deg) scaleX(1);
  }
  50% {
    transform: translate(300px, 0px) rotate(0deg) scaleX(1);
  }
  /* 左へ戻る（反転向き） */
  51% {
    transform: translate(300px, 0px) rotate(0deg) scaleX(-1);
  }
  60% {
    transform: translate(240px, -10px) rotate(6deg) scaleX(-1);
  }
  70% {
    transform: translate(180px, 20px) rotate(-5deg) scaleX(-1);
  }
  80% {
    transform: translate(120px, -15px) rotate(7deg) scaleX(-1);
  }
  90% {
    transform: translate(60px, 10px) rotate(-6deg) scaleX(-1);
  }
  100% {
    transform: translate(0, 0) rotate(0deg) scaleX(-1);
  }
}
.more_btn {
  width: 180px;
  margin: 30px auto 0;
  border-radius: 20px;
  overflow: hidden;
}
.more_btn a {
  display: block;
  width: 100%;
  color: #fff;
  text-align: center;
  padding: 8px 25px 8px 0;
  position: relative;
}
.more_btn a:before {
  content: "";
  background: url(../img/icon_info_more.svg) no-repeat;
  background-size: 100%;
  width: 25px;
  height: 25px;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
}
.more_btn.green a {
  background: #7ACE0D;
}
.more_btn.blue a {
  background: #43A1FF;
}

header {
  width: 100%;
  background: #fff;
  position: fixed;
  top: 0;
  z-index: 55;
}
header .inner {
  width: 93.75vw;
  max-width: 90%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.40625vw 0;
}
header .inner .header_logo {
  width: 20.546875vw;
}
header .inner nav ul {
  display: flex;
}
header .inner nav ul li {
  position: relative;
  border-right: 1px dotted #774D19;
}
header .inner nav ul li a {
  display: block;
  color: #774D19;
  font-size: clamp(10px, 1.1vw, 12px);
  padding: 3vw 1.5625vw 0;
  font-weight: 600;
}
header .inner nav ul li a:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
}
header .inner nav ul li.to_top a {
  padding: 3vw 2.34375vw 0;
}
header .inner nav ul li.to_top a:before {
  background: url(../img/common/icon_menu_top.svg) no-repeat;
  background-size: 100%;
  width: 3.671875vw;
  height: 3.734375vw;
}
header .inner nav ul li.to_treatment a:before {
  background: url(../img/common/icon_menu_treatment.svg) no-repeat;
  background-size: 100%;
  width: 3.125vw;
  height: 3.421875vw;
}
header .inner nav ul li.to_traning a:before {
  background: url(../img/common/icon_menu_traning.svg) no-repeat;
  background-size: 100%;
  width: 2.65625vw;
  height: 2.65625vw;
}
header .inner nav ul li.to_service a:before {
  background: url(../img/common/icon_menu_service.svg) no-repeat;
  background-size: 100%;
  width: 2.34375vw;
  height: 2.8125vw;
}
header .inner nav ul li.to_kids a:before {
  background: url(../img/common/icon_menu_kids.svg) no-repeat;
  background-size: 100%;
  width: 3.125vw;
  height: 2.734375vw;
}
header .inner nav ul li:last-child {
  border-right: none;
}
header .inner nav ul.child {
  display: none;
}
header.top {
  background: transparent;
  position: relative;
}
header.top .header_logo {
  text-align: center;
  padding: 60px 0 140px;
  position: relative;
  overflow: hidden;
}
header.top .header_logo img {
  width: 19.921875vw;
  position: relative;
  z-index: 3;
}
header.top .header_logo:before, header.top .header_logo:after {
  content: "";
  position: absolute;
  width: 471px;
  height: 246px;
  display: block;
  top: -10px;
  z-index: 2;
}
header.top .header_logo:before {
  background: url(../img/mv_sakura_left.svg) no-repeat;
  background-size: 100%;
  left: -470px;
  transition: left 0.6s ease-out;
}
header.top .header_logo:after {
  background: url(../img/mv_sakura_right.svg) no-repeat;
  background-size: 100%;
  right: -470px;
  transition: right 0.6s ease-out;
}
header.top .header_logo.is-show:before {
  left: 0;
}
header.top .header_logo.is-show:after {
  right: 0;
}
header.top .top_nav {
  position: fixed;
  top: 0;
  width: 100%;
  background: #fff;
  opacity: 0;
  transition: 0.2s;
}
header.top .top_nav .inner {
  margin: 0 auto;
}
header.top .top_nav .inner .header_logo {
  padding: 0;
}
header.top .top_nav.scrolled {
  opacity: 1;
}

footer {
  position: relative;
  background: #4DA500;
}
footer .inner {
  width: 76.5625vw;
  min-width: 700px;
  margin: 0 auto;
}
footer .inner .footer_top {
  position: relative;
  display: flex;
  justify-content: space-between;
}
footer .inner .footer_top .footer_logo {
  width: 30%;
}
footer .inner .footer_top .sitemap {
  width: 60%;
  display: flex;
}
footer .inner .footer_top .sitemap ul {
  margin: 0 0 0 2.890625vw;
}
footer .inner .footer_top .sitemap ul li {
  line-height: 1.8;
}
footer .inner .footer_top .sitemap ul li a {
  color: #fff;
  font-size: clamp(10px, 1vw, 15px);
}
footer .inner .footer_top .sitemap ul li a:before {
  content: "・";
  display: inline-block;
  vertical-align: middle;
  margin: 0 0.4vw 0 0;
}
footer .inner .footer_top .sitemap ul li a.arrow:before {
  content: "";
  background: url(../img/icon_white_arrow.svg) no-repeat;
  background-size: 100%;
  width: 0.703125vw;
  height: 1.09375vw;
}
footer .inner .footer_bottom {
  position: relative;
  text-align: center;
  margin: 4.6875vw 0 0;
}
footer .inner .footer_bottom a {
  color: #fff;
  font-size: clamp(10px, 1vw, 15px);
  margin: 0 1.5625vw;
  position: relative;
}
footer .inner .footer_bottom a:after {
  content: "/";
  position: absolute;
  right: -1.8vw;
  top: 0;
}
footer .inner .footer_bottom a:last-child:after {
  display: none;
}
footer .inner .footer_bottom:before {
  content: "";
  background: url(../img/footer_bottom_check.svg) no-repeat;
  background-size: 100%;
  width: 12.1875vw;
  height: 2.109375vw;
  display: inline-block;
  vertical-align: middle;
  pointer-events: none;
}
footer .inner #copyright {
  position: relative;
  color: #fff;
  font-size: clamp(10px, 1vw, 15px);
  text-align: center;
  margin: 1.5625vw 0 0;
  padding: 2.96875vw 0;
  border-top: 1px solid #fff;
}
footer:before {
  content: "";
  background: url(../img/bg_footer.svg) no-repeat;
  background-size: 100%;
  background-position: top;
  width: 100%;
  height: 34vw;
  position: absolute;
  top: -12vw;
  left: 0;
}

#btn_fixed {
  position: fixed;
  top: 10vw;
  right: -3vw;
  z-index: 99;
}
#btn_fixed ul li {
  width: 9.375vw;
  min-width: 100px;
  margin: 0 0 1.171875vw;
  transition: left 0.6s ease-out;
  position: relative;
  box-sizing: content-box;
}
#btn_fixed ul li:hover {
  right: 3vw;
}
#btn_fixed ul li:hover a {
  opacity: 1;
}

@media screen and (max-width: 769px) {
  .sp {
    display: block !important;
  }
  .pc {
    display: none;
  }
  .more_btn {
    width: 180px;
    margin: 6vw auto 0;
  }
  .more_btn a {
    display: block;
    width: 100%;
    color: #fff;
    text-align: center;
    padding: 8px 5px 8px 0;
    position: relative;
    font-size: 12px;
    font-size: clamp(14px, 4vw, 18px);
  }
  .more_btn a:before {
    content: "";
    background: url(../img/icon_info_more.svg) no-repeat;
    background-size: 100%;
    width: 3.3333333333vw;
    height: 3.3333333333vw;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 20px;
    margin: auto;
  }
  .more_btn.green a {
    background: #7ACE0D;
  }
  .more_btn.blue a {
    background: #43A1FF;
  }
  header {
    width: 100%;
    background: #fff;
    position: fixed;
    top: 0;
    z-index: 55;
  }
  header .inner {
    width: 100%;
    max-width: 100%;
    display: block;
    padding: 4.8vw 0;
  }
  header .inner .header_logo {
    width: 41.2vw;
    padding: 0 0 0 4.8vw;
  }
  header .inner .header_logo a {
    display: block;
    font-size: 0;
  }
  header .inner nav {
    position: fixed;
    width: 100%;
    height: 100vh;
    padding: 0 0 68vw;
    background: #fff;
    top: 13vw;
    transition: opacity 0.2s ease;
    pointer-events: none;
    opacity: 0;
    z-index: -1;
    overflow-y: auto;
  }
  header .inner nav ul {
    display: block;
  }
  header .inner nav ul li {
    position: relative;
    border-right: none;
    border-bottom: 1px dotted #774D19;
    margin: 0 4.5333333333vw;
  }
  header .inner nav ul li a {
    display: block;
    color: #774D19;
    font-size: 4vw;
    padding: 5.3333333333vw 5.3333333333vw 5.3333333333vw 13.3333333333vw;
    font-weight: 600;
  }
  header .inner nav ul li a:before {
    content: "";
    position: absolute;
    top: 5.1vw;
    left: 3vw;
    bottom: unset;
    right: unset;
  }
  header .inner nav ul li .child {
    padding: 0 0 2.6666666667vw;
  }
  header .inner nav ul li .child li {
    border-bottom: none;
  }
  header .inner nav ul li .child li a {
    padding: 1vw 0 1vw 12vw;
    font-size: 3.2vw;
  }
  header .inner nav ul li .child li a:before {
    content: "-";
    background: none;
    top: 1vw;
    left: 9vw;
  }
  header .inner nav ul li .child li:before {
    display: none;
  }
  header .inner nav ul li.to_top a {
    padding: 5.3333333333vw 5.3333333333vw 1.3333333333vw 13.3333333333vw;
  }
  header .inner nav ul li.to_top a:before {
    background: url(../img/common/icon_menu_top.svg) no-repeat;
    background-size: 100%;
    width: 9.0666666667vw;
    height: 6.8vw;
    left: 1.5vw;
  }
  header .inner nav ul li.to_treatment a:before {
    background: url(../img/common/icon_menu_treatment.svg) no-repeat;
    background-size: 100%;
    width: 7.7333333333vw;
    height: 6.4vw;
  }
  header .inner nav ul li.to_traning a:before {
    background: url(../img/common/icon_menu_traning.svg) no-repeat;
    background-size: 100%;
    width: 6.8vw;
    height: 7.3333333333vw;
  }
  header .inner nav ul li.to_service a:before {
    background: url(../img/common/icon_menu_service.svg) no-repeat;
    background-size: 100%;
    width: 6vw;
    height: 7.2vw;
  }
  header .inner nav ul li.to_kids a:before {
    background: url(../img/common/icon_menu_kids.svg) no-repeat;
    background-size: 100%;
    width: 8vw;
    height: 7.0666666667vw;
  }
  header .inner nav ul li:last-child {
    border-right: none;
  }
  header .inner nav ul li:before {
    content: "";
    background: url(../img/common/icon_menu_arrow.svg) no-repeat;
    background-size: 100%;
    width: 1.3333333333vw;
    height: 2.6666666667vw;
    position: absolute;
    top: 7vw;
    right: 4vw;
  }
  header .inner nav .menu_check {
    position: relative;
    text-align: center;
    margin: 16vw 0 0;
  }
  header .inner nav .menu_check a {
    display: block;
    font-size: 3.2vw;
    color: #774D19;
    text-decoration: underline;
    line-height: 2.8;
  }
  header .inner nav .menu_check:before {
    content: "";
    background: url(../img/common/menu_check_sp.svg) no-repeat;
    background-size: 100%;
    width: 29.6vw;
    height: 6.6666666667vw;
    position: absolute;
    left: 0;
    right: 0;
    top: -8vw;
    margin: auto;
  }
  header .inner nav.is-open {
    opacity: 1;
    pointer-events: auto;
  }
  header .inner .menu_btn {
    position: fixed;
    top: 0;
    right: 0;
    cursor: pointer;
  }
  header .inner .menu_btn:before {
    content: "";
    background: url(../img/common/icon_menu_open.svg) no-repeat;
    background-size: 100%;
    display: block;
    width: 14.6666666667vw;
    height: 14.6666666667vw;
  }
  header .inner .menu_btn.is-open:before {
    background: url(../img/common/icon_menu_close.svg) no-repeat;
    background-size: 100%;
  }
  header.top {
    background: transparent;
    position: relative;
  }
  header.top .header_logo {
    padding: 12vw 0;
  }
  header.top .header_logo img {
    width: 34vw;
    min-width: 250px;
  }
  header.top .header_logo:before, header.top .header_logo:after {
    content: "";
    position: absolute;
    width: 62.8vw;
    height: 32.8vw;
    display: block;
    top: -10px;
    z-index: 2;
  }
  header.top .header_logo:before {
    background: url(../img/mv_sakura_left.svg) no-repeat;
    background-size: 100%;
    left: -62.6666666667vw;
    transition: left 0.6s ease-out;
  }
  header.top .header_logo:after {
    background: url(../img/mv_sakura_right.svg) no-repeat;
    background-size: 100%;
    right: -62.6666666667vw;
    transition: right 0.6s ease-out;
  }
  header.top .header_logo.is-show:before {
    left: -20vw;
  }
  header.top .header_logo.is-show:after {
    right: -20vw;
  }
  header.top .top_nav {
    position: fixed;
    top: 0;
    width: 100%;
  }
  header.top .top_nav .inner {
    background: #fff;
  }
  header.top .top_nav .inner .header_logo {
    width: 41.2vw;
    padding: 0 0 0 4.8vw;
  }
  header.top .top_nav .inner .header_logo img {
    min-width: unset;
  }
  footer {
    padding: 0 0 25vw;
  }
  footer .inner {
    width: 100vw;
    min-width: unset;
  }
  footer .inner .footer_top {
    display: block;
  }
  footer .inner .footer_top .footer_logo {
    width: 60%;
    margin: auto;
  }
  footer .inner .footer_top .sitemap {
    width: 82%;
    display: block;
    margin: 5vw auto 0;
  }
  footer .inner .footer_top .sitemap ul {
    margin: 0 0 0 4.9333333333vw;
  }
  footer .inner .footer_top .sitemap ul li {
    line-height: 1.7;
  }
  footer .inner .footer_top .sitemap ul li a {
    font-size: clamp(12px, 3.6vw, 15px);
  }
  footer .inner .footer_top .sitemap ul li a.arrow:before {
    width: 2vw;
    height: 4vw;
    margin: 0 1.6vw 0 0;
  }
  footer .inner .footer_top .sitemap ul:nth-of-type(2) {
    margin: 0 0 0 9.3333333333vw;
  }
  footer .inner .footer_bottom {
    position: relative;
    text-align: center;
    margin: 20vw 0 0;
  }
  footer .inner .footer_bottom a {
    font-size: clamp(12px, 3.6vw, 15px);
    margin: 1.3333333333vw 0;
    display: block;
    text-decoration: underline;
  }
  footer .inner .footer_bottom a:after {
    display: none;
  }
  footer .inner .footer_bottom a:last-child:after {
    display: none;
  }
  footer .inner .footer_bottom:before {
    content: "";
    background: url(../img/footer_bottom_check_sp.svg) no-repeat;
    background-size: 100%;
    width: 41vw;
    height: 10vw;
    position: absolute;
    left: 0;
    right: 0;
    top: -11vw;
    margin: auto;
  }
  footer .inner #copyright {
    position: relative;
    color: #fff;
    font-size: clamp(10px, 1vw, 15px);
    text-align: center;
    margin: 2.6666666667vw auto 0;
    padding: 5.0666666667vw 0;
    border-top: 1px solid #fff;
    width: 82%;
  }
  footer:before {
    content: "";
    background: url(../img/bg_footer.svg) no-repeat;
    background-size: 100%;
    background-position: top;
    width: 100%;
    height: 34vw;
    position: absolute;
    top: -10vw;
    left: 0;
  }
  #btn_fixed {
    top: unset;
    right: 0;
    bottom: 0;
    margin: auto;
  }
  #btn_fixed ul {
    display: flex;
    align-items: flex-end;
    justify-content: center;
  }
  #btn_fixed ul li {
    width: 33.3%;
    min-width: unset;
    margin: 0;
    transition: unset;
  }
  #btn_fixed ul li:hover {
    right: unset;
  }
  .page-top {
    position: fixed;
    bottom: 120px;
    right: 3vw;
    width: 60px;
    height: 60px;
    z-index: 999;

    /* 最初は非表示 */
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
  }
  /* スクロールして300pxを超えたら表示される */
  .page-top.active {
    opacity: 1;
    pointer-events: auto;
  }
  /* ボタンの中身（画像）中央寄せ） */
  .page-top a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    border-radius: 30px;
    transition: 0.3s;
  }
}
/*# sourceMappingURL=style.css.map */