@charset "UTF-8";
:root {
  --color-right-blue: #558db4;
}
body {
  font-family: "Noto Sans JP", "ヒラギノ角ゴシック Pro",
    "Hiragino Kaku Gothic Pro", "游ゴシック体", "Yu Gothic", YuGothic,
    "Yu Gothic Medium", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック",
    "MS PGothic", sans-serif;
  font-weight: 500;
  color: #000;
  overflow: hidden;
}
.auto {
  max-width: 1200px;
  width: 90%;
  margin: 0px auto;
}
#back-top {
  display: none;
  width: 60px;
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 99;
  transition-duration: .3s;
}
#back-top:hover {
  bottom: 36px;
}
#back-top img {
  display: block;
  width: 100%;
  height: auto;
}
/*=========================
▼▼共通▼▼
===========================*/
.page_wrapper {
  position: relative;
}
.harutoku .decoration_box {
  width: 100%;
  height: calc(100vh - 70px);
  background-image: url(../images/bg-pc.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: fixed;
  top: 70px;
  left: 0;
  z-index: 1;
}
.contents_wrapper {
  position: relative;
  z-index: 1;
}
a:hover,
button:hover {
  opacity: 1;
  transition: 0.3s;
}

/*=========================
▲▲共通▲▲
===========================*/
/*=========================
▼▼左カラム▼▼
===========================*/
.inner_logo {
  width: calc(45% - 253px);
  max-width: 435px;
  height: 100%;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  position: fixed;
  top: 0;
  right: calc(52% + 253px);
}
.inner_logo .logo {
  width: 94%;
  max-width: 41vh;

}

/*=========================
▲▲左カラム▲▲
===========================*/
/*=========================
▼▼右カラム▼▼
===========================*/
.inner_nav {
  width: calc(45% - 253px);
  max-width: 458px;
  height: 100%;
  display: flex;
  justify-content: center;
  flex-direction: column;
  position: fixed;
  top: 0;
  left: calc(50% + 253px);
}
.right_nav {
  width: 93%;
  max-width: 398px;
  margin-inline: 12% auto;
  padding: var(--size-50) 5% var(--size-24);
  border: 4px solid #e54680;
  background-color: #ffffffb8;
  border-radius: 15px;
  position: relative;
}
.title_navi {
  margin-bottom: var(--size-12);
}
.list_nav {
  width: 90%;
  margin: 0 auto;
}
.nav_title {
  margin: 0 auto;
  position: relative;
  cursor: pointer;
}
.nav_title a {
  padding: var(--size-12) 0 var(--size-12) 20%;
  background: url(../images/page-link-number-01.png) no-repeat left center/20%;
  position: relative;
  z-index: 1;
  transition-duration: .3s;
}
.nav_title:nth-of-type(2) a {
  background-image: url(../images/page-link-number-02.png);
}
.nav_title:nth-of-type(3) a {
  background-image: url(../images/page-link-number-03.png);
}
.nav_title:nth-of-type(4) a {
  background-image: url(../images/page-link-number-04.png);
}
.nav_title a.display, .nav_title a:hover {
  opacity: .6;
}
.nav_title:not(:last-of-type) a::before {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background-image: radial-gradient(circle, #e9769e 30%, transparent 30%);
  background-size: 8px 5px;
  background-repeat: repeat-x;
  background-position: center;
  position: absolute;
  left: 0;
  bottom: 0;
}
/*=========================
▲▲右カラム▲▲
===========================*/

/* header */
header {
  width: 100%;
  height: 70px;
  background-color: rgb(255, 255, 255);
  padding: 23px 30px;
  position: fixed;
  top: 0px;
  z-index: 999;
}
header .header_inner .logo {
  width: 183px;
}
#sp_navi_wrapper input {
  display: none;
}
#sp_navi_wrapper {
  position: relative;
  overflow: hidden;
  z-index: 3;
}
#main_nav~.close_bg {
  position: fixed;
  z-index: 99;
  width: 100vw;
  height: 100vh;
  background-color: transparent;
  top: 0;
  left: 0;
  visibility: hidden;
  cursor: pointer;
  pointer-events: none;
  transition-duration: 0.3s;
}
#main_nav:checked~.close_bg {
  background-color: rgba(0, 0, 0, 0.5);
  pointer-events: auto;
  visibility: visible;
}
.nav-icon {
  display: block;
  width: 44px;
  height: 44px;
  padding-top: 27px;
  text-align: center;
  font-size: 10px;
  line-height: 1;
  color: #fff;
  border-radius: 6px;
  background: #e74580;
  position: fixed;
  top: 4px;
  right: 4px;
  z-index: 999;
  transition-duration: 0.3s;
}
.nav-icon p {
  font-size: 11px;
}
.nav-icon .navi_text {
  font-weight: 600;
}
.nav-icon::before,
.nav-icon::after {
  content: "";
  display: block;
  width: 26px;
  border-top: 2px solid #fff;
  position: absolute;
  top: 12px;
  left: 10px;
  transition: 0.3s all;
}
.nav-icon::after {
  top: 19px;
}
#main_nav:checked~.nav-icon::before {
  width: 24px;
  transform: rotate(40deg);
  top: 12px;
}
#main_nav:checked~.nav-icon::after {
  width: 24px;
  transform: rotate(-40deg);
  top: 12px;
}
.header-nav-wrap {
  display: block;
  width: 100%;
  max-width: 574px;
  height: fit-content;
  max-height: 100%;
  margin: 0 auto;
  position: fixed;
  top: 0;
  right: 0;
  transition: all .5s;
  padding: 0 0 60px;
  z-index: 99;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: none;
  scrollbar-width: none;
  visibility: hidden;
  opacity: 0;
}
#main_nav:checked~.header-nav-wrap {
  visibility: visible;
  opacity: 1;
}
.header-nav-inner {
  width: 100%;
  padding: var(--size-52) 9%;
  border: 4px solid #e54680;
  background: url(../images/bg_spnavi.jpg)no-repeat right top/cover;
  border-radius: 0 0 0 var(--size-60);
  position: relative;
}
.header-nav-inner img {
  display: block;
  width: 100%;
  height: 100%;
}
.header-nav-inner::-webkit-scrollbar {
  display: none;
}
.sp_nav_text a {
  padding: var(--size-12) 10% var(--size-12) 19%;
  background: url(../images/page-link-number-01.png) no-repeat left center/18%;
  position: relative;
  z-index: 1;
}
.sp_nav_text:nth-of-type(2) a {
  background-image: url(../images/page-link-number-02.png);
}
.sp_nav_text:nth-of-type(3) a {
  background-image: url(../images/page-link-number-03.png);
}
.sp_nav_text:nth-of-type(4) a {
  background-image: url(../images/page-link-number-04.png);
}
.sp_nav_text:not(:last-of-type) a::before {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background-image: radial-gradient(circle, #e9769e 30%, transparent 30%);
  background-size: 8px 5px;
  background-repeat: repeat-x;
  background-position: center;
  position: absolute;
  left: 0;
  bottom: 0;
}
/* /header */
/*=========================
▼▼contents▼▼
===========================*/
.inner_main {
  max-width: 500px;
  padding-bottom: 160px;
  margin: 0 auto;
  background: #fff;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
/*=========================
▲▲contents▲▲
===========================*/
/* conts_app */
.conts_app {
  background-color: #fff;
  padding: 55px 0 60px;
  position: relative;
  z-index: 5;
}
.conts_app .app_img {
  display: block;
  margin: 0 auto 17px;
}
.conts_app .review {
  display: flex;
  width: 90%;
  margin: 0 auto 17px;
  justify-content: center;
  align-items: center;
}
.conts_app .review .logo {
  width: 30%;
  margin-right: 5%;
}
.conts_app .review .review_text {
  display: block;
  width: 65%;
}
.conts_app .app_logo .logo_wrap {
  display: flex;
  width: 90%;
  margin: 0 auto 10px;
}
.conts_app .app_logo .logo_wrap .app_store {
  width: 44%;
  margin-right: 2%;
}
.conts_app .app_logo .logo_wrap .google_play {
  width: 54%;
}
.conts_app .app_logo ul {
  max-width: 470px;
  margin: 0 auto;
}
.conts_app .app_logo ul li {
  font-size: 13px;
  font-feature-settings: "palt" 1;
  line-height: 1.6;
  font-weight: 400;
  text-indent: -1em;
  padding-left: 1em;
  margin-bottom: 8px;
}
.conts_app .app_logo ul li:last-of-type {
  margin-bottom: 0;
}
/* /conts_app */
/*▼▼ footer ▼▼*/
footer {
  width: 100%;
  background-color: #fff;
  position: relative;
}
footer::before {
  content: "";
  display: block;
  width: 80%;
  height: 1px;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}
.footer_inner {
  padding: 30px 0 24px;
  text-align: center;
}
.footer_inner .logo {
  width: 170px;
  margin: 0 auto 15px;
}
.footer_inner .copyright {
  font-size: 7px;
  color: #333333;
}
/*▲▲ footer ▲▲*/
@media screen and (max-width: 1150px) {
  .inner_logo, .inner_nav {
    display: none !important;
  }
  .inner_nav {
    width: 26%;
    left: 797px;
  }
}
@media screen and (max-height: 1060px) {
  .inner_nav {
    padding-top: 0vw;
  }
}
@media screen and (min-width: 1151px) {
  #sp_navi_wrapper {
    display: none;
  }
}
@media screen and (min-width: 769px) {
  .nav-icon {
    top: 13px;
    right: 12px;
  }
}
@media screen and (max-height: 700px) {
  #sp_navi_wrapper {
    display: block;
  }
}