@charset "UTF-8";

/* ==== color ========================== */
:root {
  --color-black: #000000;
  --color-black2: #3a3a3a;
  --color-white: #ffffff;

  --color-red: #843939;


  --noto: "Noto Sans JP", sans-serif;
  --din: "Oswald", sans-serif;
  --zenmaru: "Zen Maru Gothic", sans-serif;
  --josefin: "Josefin Sans", sans-serif;
}


/*================================================
 *  一般・共通設定
 ================================================*/
html {
  /* 1440>> 10px */
  /* font-size: clamp(1px, 0.694444vw, 10px); */
  font-size: 0.694444vw;
  scroll-behavior: smooth;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 1.4rem;
  line-height: 1.7;
  background: var(--color-white);
  color: var(--color-black);
}

main {
  overflow: clip;
  /* background: var(--color-white); */
}


a {
  text-decoration: none;
  transition: all .4s;
}

a:hover {
  opacity: 1;
}

img {
  max-width: 100%;

  display: block;
}

strong {
  font-weight: bold;
}

small {
  font-size: smaller;
}

ul,
ol,
dl {
  margin: 0;
}

ul li {
  list-style: none;
}

ol li {
  list-style: decimal;
}

li {
  margin-left: 0;
}

/* タイトル */


@media screen and (max-width:767px) {
  html {
    /* 750px>> 10px */
    font-size: 1.3333vw;
  }

  body {
    font-size: 2.4rem;
  }
}

/*================================================
 *  section btn
 ================================================*/
section {
  position: relative;
}


.hd {
  text-align: center;
  line-height: 1.2;
}

.hd .en {
  display: block;
  font-family: var(--josefin);
  font-size: 6rem;
  font-weight: 700;
  text-transform: uppercase;
}

.hd .ja {
  display: block;
  font-size: 2.2rem;
  font-weight: 500;
}

.hd:has(.fuki) {
  position: relative;
}

.hd .fuki {
  position: absolute;
  width: 23rem;
  right: 0;
  top: -5rem;
  display: block;
}

.hd .icon {
  width: fit-content;
  height: 6rem;
  margin: 0 auto 2rem;
}

.hd .icon img {
  width: auto;
  height: 100%;
  max-width: unset;
}

/*================================================
 *  banner
 ================================================*/
#fix_btn {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  width: 100%;
}

#fix_btn .cp_btns {
  margin: 0 0 20px;

}

#fix_btn .cp_btn {
  max-width: 370px;
  padding-top: clamp(1px, 4rem, 40px);

}

#fix_btn .cp_fuki {
  max-width: 200px;
}

@media screen and (max-width:767px) {
  #fix_btn .cp_btn {
    max-width: 330px;
  }

  #fix_btn .cp_fuki {
    max-width: 180px;
  }
}


/*================================================
* mainVisual
================================================*/
#mainVisual {
  height: 54.166vw;

}

.mainVisual_inner {
  /* height: 78rem; */
  height: 54.166vw;
  background: url(../images/mv_bg.webp) no-repeat center top/cover;
  overflow: clip;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: -1;
}

.mv_catch {
  position: absolute;
  /* width: 63rem;
  left: 5rem;
  top: 12.5rem; */

  width: 43.75vw;
  left: 3.47vw;
  top: 8.68vw;


  z-index: 1;
}

.mv_logo {
  position: absolute;
  /* width: 38rem;
  left: 5rem;
  top: 6.5rem; */
  width: 26.38vw;
  left: 3.47vw;
  top: 4.51vw;
}

.mv_label {
  position: absolute;
  /* width: 35rem;
  left: 62rem;
  top: 42rem; */

  width: 24.3vw;
  aspect-ratio: 1/1;
  left: 43vw;
  top: 29.1vw;
  z-index: 1;
}

.mv_label_bg {
  animation: 30s linear infinite rotation;
}

.mv_label_main {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 92%;
}

.mv_imgArea {
  /* width: 89rem;
  height: 75.8rem; */
  position: relative;
  margin-left: auto;

  width: 61.8vw;
  height: 52.63vw;
}


.mvImg {
  position: absolute;
}


.mvImg01 {
  width: 29.5%;
  margin-top: 2.2%;
  margin-left: 10.4%;
}

.mvImg02 {
  width: 45.2%;
  margin-top: 3.82%;
  margin-left: 46.3%;
}

.mvImg03 {
  width: 75.5%;
  margin-top: 5.6%;
  margin-left: 10.67%;
}

.mvImg04 {
  width: 60%;
  margin-top: 34.6%;
  margin-left: 48.1%;
}

.mvImg05 {
  width: 46.4%;
  margin-top: 27.2%;
  margin-left: 2.58%;
}

@media screen and (max-width:767px) {
  #mainVisual {
    height: 117rem;
  }

  .mainVisual_inner {
    height: 117rem;
    background: url(../images/mv_bg_sp.webp) no-repeat center top/cover;
  }



  .mv_catch {
    width: 67.6rem;
    left: 5rem;
    top: 5.4rem;
  }

  .mv_logo {
    width: 40rem;
    left: 4rem;
    top: 7rem;
  }

  .mv_label {
    width: 35rem;
    left: -2rem;
    top: 82rem;
  }

  .mv_imgArea {
    width: 90rem;
    height: 75.8rem;
    margin: 0;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: 42rem;
  }




}


/*================================================
* cp
================================================*/
#cp {
  background: url(../images/cp_bg.webp) no-repeat center top/cover;
  padding: 13rem 0 19rem;
  margin-top: -10vw;
}

#cp .inner {
  width: 100rem;
  margin: 0 auto;
}

.cp_btns {
  display: flex;
  justify-content: center;
  gap: 6rem;
  margin: 2rem 0 5rem;
}

.cp_btn {
  width: 37rem;
  position: relative;
  padding-top: 4rem;
}

.cp_fuki {
  position: absolute;
  width: 20rem;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
}

.cp_fuki img {
  animation: buruburu2 2s infinite;
}

.cp_btn a img {
  transition: .4s;
}

.cp_btn a:hover img {
  transform: scale(1.1);
}

@media screen and (max-width:767px) {
  #cp {
    background: url(../images/cp_bg_sp.webp) no-repeat center top/cover;
    padding: 13rem 0 18rem;
    margin-top: -17vw;
  }

  #cp .inner {
    width: 65rem;
  }

  .cp_btns {
    gap: 3rem;
    margin: 2rem 0 5rem;
  }

  .cp_btn {
    width: 33rem;
    padding-top: 4rem;
  }

  .cp_fuki {
    width: 18rem;
  }
}

/*================================================
* problems
================================================*/
#problems {
  background: url(../images/problems_bg.webp) no-repeat center top/cover;
  padding: 15rem 0 15rem;
  margin-top: -15rem;
  z-index: 1;
}


#problems h2 {
  text-align: center;
  font-size: 4rem;
  font-weight: 900;
  color: var(--color-white);
}

#problems h2 span {
  display: block;
  width: 17rem;
  margin: 0 auto;
}

.problems_fuki {
  display: flex;
  align-items: stretch;
  justify-content: center;
  flex-wrap: wrap;
  width: 124rem;
  margin: 4rem auto;
}

.problems_fuki li:first-child {
  width: 30rem;
  margin-right: 14rem;
}

.problems_fuki li:nth-child(2) {
  width: 34rem;
  margin-right: 11rem;
}

.problems_fuki li:nth-child(3) {
  width: 33rem;
}

.problems_fuki li:nth-child(4) {
  width: 39rem;
  margin-right: 7.4rem;
  position: relative;
  left: 4rem;
  top: -4rem;
}

.problems_fuki li:nth-child(5) {
  width: 30.5rem;
  margin-top: -4rem;
}

.loop_swiper .swiper-wrapper {
  transition-timing-function: linear;
}

.problems_slide .swiper-slide {
  width: 303rem;
}

@media screen and (max-width:767px) {
  #problems {
    background: url(../images/problems_bg_sp.webp) no-repeat center top/cover;
    padding: 15rem 0 15rem;
    margin-top: -15rem;
    z-index: 1;
  }



  #problems h2 span {
    display: block;
    width: 17rem;
    margin: 0 auto;
  }

  .problems_fuki {
    width: 70rem;
    margin: 4rem auto 0rem;
  }

  .problems_fuki li:first-child {
    width: 19rem;
    margin-right: 6rem;
  }

  .problems_fuki li:nth-child(2) {
    width: 21rem;
    margin-right: 2rem;
  }

  .problems_fuki li:nth-child(3) {
    width: 20rem;
  }

  .problems_fuki li:nth-child(4) {
    width: 25rem;
    left: 6rem;
    top: -1rem;
  }

  .problems_fuki li:nth-child(5) {
    width: 19rem;
    margin-top: 0rem;
  }


  .problems_slide .swiper-slide {
    width: 260rem;
  }
}

/*================================================
* point
================================================*/
#point {
  /* background: url(../images/point_bg.webp) no-repeat center top /cover; */
  padding: 18rem 0;
  margin-top: -10rem;
}

#point .scroll {
  width: 22rem;
  position: absolute;
  top: -2rem;
  left: 40%;
  z-index: 2;
  animation: arrowmove 1s ease-in-out infinite;
}

@keyframes arrowmove {
  0% {
    top: -2rem;
  }

  50% {
    top: 0rem;
  }

  100% {
    top: -2rem;
  }
}

#point h2 .en {
  font-size: 14rem;
  color: #ad1717;
  line-height: 1;
}

#point h2 .fuki {
  right: 9rem;
}

#point .inner {
  width: 100rem;
  margin: 0 auto;
}

#point .lead {
  font-size: 2.2rem;
  text-align: center;
  margin: 2rem 0;
}

.point_box {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-top: 5rem;
  gap: 9rem 0;
}

.point_item {
  width: 48rem;
  position: relative;
  background: rgb(255 255 255 / 80%);
  box-shadow: 0rem 0rem 2rem rgb(0 32 40 / 20%);
  border-radius: 1rem;
  padding: 5rem 3rem;
}

.po_label {
  position: absolute;

  left: -5rem;
  top: -7rem;
  width: 12rem;
}

.point_item01 .po_label {
  width: 17rem;
  left: -9rem;
  top: -9rem;
}

.point_item01 {
  width: 100%;
  padding: 5rem 6rem;
}

.po_ttl {
  font-size: 3.6rem;
  font-weight: 900;
  margin-bottom: 2rem;
  line-height: 1.2;
}

.po_ttl span {
  font-size: 1.6rem;
  display: block;
  font-weight: 700;
  margin-bottom: 1rem;
}

.point_item p {
  margin-bottom: 1rem;
}

.po_clm {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.point_item01 .po_txt {
  width: 49rem;
}


.point_item01 .po_img {
  width: 35rem;
}

.point_item01 h4 {
  font-size: 1.6rem;
  font-weight: 700;
}

.po_support {
  display: grid;
  gap: 2rem;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 1rem;
}


.po_support-item h5 {
  font-size: 2rem;
  font-family: var(--zenmaru);
  font-weight: 700;
  margin-bottom: 1rem;
}

.po_support-item h5 span {
  font-size: 1.4rem;
  color: var(--color-white);
  display: inline-block;
  background: #00b6be;
  padding: 0.7rem;
  line-height: 1;
  margin-right: 1rem;
  border-radius: 0.4rem;
}

.po_support-item p {
  line-height: 1.6;
  margin-top: 1rem;
}


.po_support-item:nth-of-type(2) h5 span {
  background: #00b59b;
}

.po_support-item:nth-of-type(3) h5 span {
  background: #00be71;
}

#point .circle {
  width: 140rem;
  position: absolute;
  top: 57rem;
  left: 50%;
  transform: translateX(-50%);
}

#point .circle img {
  animation: 30s linear infinite rotation;
}

@keyframes rotation {
  0% {
    transform: rotate(0);
  }

  100% {
    transform: rotate(360deg);
  }
}

@media screen and (max-width:767px) {
  #point {
    /* background: url(../images/point_bg_sp.webp) no-repeat center top / cover; */
    padding: 23rem 0 20rem;
    margin-top: -10rem;
  }

  #point .scroll {
    left: 24%;
  }

  #point .inner {
    width: 66rem;
    margin: 0 auto;
  }

  #point h2 span {
    right: -4rem;
    top: -7rem;
  }

  #point h2 .fuki {
    right: -2rem;
  }


  .point_box {
    margin-top: 7rem;
    gap: 5rem 0;
  }

  .point_item {
    width: 100%;
    padding: 5rem 4rem;
  }


  .po_label,
  .point_item01 .po_label {
    left: -3rem;
    top: -4rem;
    width: 12rem;
  }

  .point_item01 {
    width: 100%;
    padding: 5rem 2.5rem;
  }

  .po_ttl {
    font-size: 4.2rem;
    text-align: center;
  }

  .po_ttl span {
    font-size: 2.4rem;
  }

  .point_item p {
    margin-bottom: 2rem;
  }

  .po_clm {
    flex-wrap: wrap;
  }

  .point_item01 .po_txt {
    width: 100%;
  }


  .point_item01 .po_img {
    width: 100%;
  }

  .point_item01 h4 {
    font-size: 3rem;
    margin-top: 6rem;
    text-align: center;
  }

  .po_support {
    gap: 1rem;
    grid-template-columns: repeat(1, 1fr);
  }


  .po_support-item h5 {
    font-size: 3.6rem;
  }

  .po_support-item h5 span {
    font-size: 2.5rem;
    padding: 1rem 2rem;
  }

  .po_support-item p {
    line-height: 1.6;
    margin-top: 1rem;
  }

  #point .circle {
    width: 130rem;
    top: 64rem;
  }


}

/*================================================
* facility
================================================*/
#facility {
  color: var(--color-black2);
  z-index: 1;
}

.facility_bg {

  padding: 14rem 0;
  margin-top: -13rem;
  background: url(../images/grad_bg.webp) no-repeat center top/cover;
}

.facility_bg .hd .en {
  font-weight: 300;
  color: var(--color-red);
}

.facility_bg .lead {
  text-align: center;
  font-size: 2.2rem;
  margin: 1rem 0 3rem;
}

.facility_map {
  width: 69rem;
  margin: 0 auto 10rem;
}

.facility_list {
  display: grid;
  gap: 2.7rem;
  width: 90rem;
  grid-template-columns: repeat(4, 1fr);
  margin: 0 auto;
}

.facility_list li {
  position: relative;
  border-radius: 0.5rem;
  overflow: clip;
  box-shadow: 0rem 0rem 1rem rgb(61 33 0 / 30%);
}

.facility_list li:nth-child(4n+2) {
  transition-delay: 0.1s;
}

.facility_list li:nth-child(4n+3) {
  transition-delay: 0.2s;
}

.facility_list li:nth-child(4n+4) {
  transition-delay: 0.3s;
}


.facility_list li p {
  position: absolute;
  font-size: 1.8rem;
  text-align: center;
  width: 100%;
  left: 0;
  bottom: 2.3rem;
  line-height: 1.3;
}

.facility_list li:nth-child(8) p {
  bottom: 1.3rem;
}

.facility_list li p small {
  font-size: 1.4rem;
}



.faArea.gym {
  background: url(../images/faa_bg.webp) no-repeat center top/cover;
  background-color: var(--color-white);
}


.faArea_ttl {
  padding: 5rem 0;
  color: var(--color-white);
}

.faArea_ttl .hd .en {
  color: var(--color-white);
  font-weight: 300;
}


.faArea_cnt {
  padding: 6rem 0 10rem;
}

.faArea_cnt .lead {
  font-size: 1.8rem;
  text-align: center;
}

.faArea_clm {
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(3, 1fr);
  width: 117rem;
  margin: 4rem auto;
}

.faArea_clm-item h3 {
  text-align: center;
  font-size: 2rem;
  margin: 1rem 0;
}

.faAreaGym_clm {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 6rem;
  width: 117rem;
  margin: 4rem auto;
}

.faAreaGym_img {
  width: 38rem;
  position: relative;
}

.faAreaGym_img .label {
  position: absolute;
  width: 6rem;
  left: -1rem;
  top: -1rem;
}

.faAreaGym_clm .faArea_clm-item h3 {
  text-align: left;
}

.faAreaGym_clm .faArea_clm-item h3 span {
  width: 7.3rem;
  margin-left: 0.6rem;
  display: inline-block;
}

.faAreaGym_clm .faArea_clm-item {
  width: 73rem;
}





.gym .faArea_ttl {
  background: #199c9b;
}


.pilates .faArea_ttl {
  background: #d2556a;
}

.pilates h3 {
  text-align: center;
  font-family: var(--josefin);
  font-size: 2rem;
  font-weight: 300;
  line-height: 1.2;
  margin-bottom: 4rem;
}

.pilates h3 .en {
  font-size: 6rem;
  margin-left: 1rem;
}

.pilates h3 .ja {
  display: block;
  font-size: 2.2rem;
  font-family: var(--noto);
  font-weight: 500;
}


.pilates .note {
  color: #d2568d;
  margin: 2rem 0;
}


.otherBg {
  background: url(../images/faa_bg02.webp) no-repeat center bottom/cover;
  padding-bottom: 15rem;
}

.otherArea .lead {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 600;
  margin: 3rem 0;
}


.other_cnt {
  width: 112rem;
  margin: 4rem auto 0;
}

.otherArea .hd {
  display: flex;
  align-items: end;
  justify-content: start;
}

.otherArea .hd .en {
  font-weight: 300;
  position: relative;
  top: 2rem;
}

.otherArea .hd .icon {
  margin: 0 1rem 0 0;
}

.ot_swiper {
  margin-top: 3rem;
}

.otherArea .ot_swiper .swiper-slide {
  width: 35rem;
  margin: 2rem 1.2rem;
  position: relative;
  box-shadow: 0 0 1rem rgb(0 0 0 / 40%);
  border-radius: 0.7rem;
}

.otherArea .ot_swiper .swiper-slide .txt {
  position: absolute;
  width: 32rem;
  top: 26rem;
  left: 50%;
  transform: translateX(-50%);
  color: var(--color-white);
}

.otherArea .ot_swiper .swiper-slide .txt h3 {
  text-align: center;
  font-size: 2.4rem;
  font-weight: 500;
  margin: 1rem 0;
  line-height: 1.2;
}

.otherArea .ot_swiper .swiper-slide .txt p {
  font-size: 1.6rem;
  line-height: 1.5;
}




@media screen and (max-width:767px) {
  .facility_bg {
    background: url(../images/grad_bg_sp.webp) no-repeat center top/cover;
    padding: 14rem 0;
    margin-top: -10rem;
  }

  .facility_list {
    gap: 2rem;
    width: 69rem;
    grid-template-columns: repeat(3, 1fr);

  }

  .facility_list li:nth-child(3n+1) {
    transition-delay: 0s;
  }

  .facility_list li:nth-child(3n+2) {
    transition-delay: 0.1s;
  }

  .facility_list li:nth-child(3n+3) {
    transition-delay: 0.2s;
  }


  /* faArea */
  .faArea {
    padding-bottom: 10rem;
  }

  .faArea_ttl {
    padding: 4rem 0;
  }

  .faArea_cnt {
    padding: 5rem 0;
  }

  .faArea_cnt .lead {
    font-size: 2.4rem;
  }

  .faArea_clm {
    display: grid;
    gap: 6rem;
    grid-template-columns: repeat(1, 1fr);
    width: 65rem;
    margin: 3rem auto;
  }



  .faArea_clm-item h3 {
    font-size: 3.4rem;
    margin: 2.8rem 0 1rem;
  }

  .faAreaGym_clm {
    flex-wrap: wrap;
    gap: 0;
    width: 65rem;
    margin: 4rem auto;
  }

  .faAreaGym_img {
    width: 100%;
  }

  .faAreaGym_img .label {
    width: 9rem;
    left: -1rem;
    top: -1rem;
  }


  .faAreaGym_clm .faArea_clm-item h3 {
    text-align: center;
  }

  .faAreaGym_clm .faArea_clm-item {
    width: 100%;
  }



  .faArea.gym {
    background: url(../images/faa_bg_sp.webp) no-repeat center top / cover;
    background-color: var(--color-white);
  }



  .pilates .faArea_clm {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    width: 100%;
  }

  .pilates h3 {
    font-size: 2.6rem;
  }

  .pilates h3 .en {
    font-size: 8rem;
  }

  .pilates h3 .ja {
    font-size: 3rem;
  }

  .pilates .lead {
    margin-top: 2rem;
  }



  .otherBg {
    background: url(../images/faa_bg02_sp.webp) no-repeat center bottom/cover;
  }

  .otherArea .lead {
    font-size: 3rem;
    margin: 6rem 0;
  }

  .other_cnt {
    width: 70rem;
    margin: 8rem 0 0 auto;
  }

  .ot_swiper {
    margin-top: 2rem;
  }

  .otherArea .ot_swiper .swiper-slide {
    width: 52rem;
    margin: 2rem 2rem;
  }

  .otherArea .ot_swiper .swiper-slide:last-of-type {
    margin-right: 8rem;
  }

  .otherArea .ot_swiper .swiper-slide .txt {
    width: 46rem;
    top: 39.5rem;
  }

  .otherArea .ot_swiper .swiper-slide .txt h3 {
    font-size: 3.4rem;
  }

  .otherArea .ot_swiper .swiper-slide .txt p {
    font-size: 2.4rem;
  }
}

/*================================================
* recommend
================================================*/
#recommend {
  background: url(../images/recommend_bg.webp) no-repeat center top/cover;
  padding: 20rem 0;
  margin-top: -10rem;
  overflow: clip;
}

#recommend .hd .en {
  color: #ad1717;
}

#recommend .hd .ja {
  font-size: 4rem;
  font-weight: 900;
}

#recommend .hd .fuki {
  right: 30rem;
  top: -7rem;
}

.rcmd_inner {
  position: relative;
  width: 98rem;
  height: 93rem;
  margin: -5rem auto 0;
}

.rcmd_item {
  position: absolute;
  display: flex;
  width: fit-content;
}

.rcmd_txt {
  position: relative;
  z-index: 1;
}

.rcmd_txt h3 {
  position: relative;
  color: var(--color-white);
  font-size: 2.2rem;
  z-index: 1;
  font-weight: 700;
  width: fit-content;
  padding: 0.7rem 1rem;
}

.rcmd_txt h3::before {
  position: absolute;
  content: "";

  inset: 0;
  z-index: -1;
  transition: width 0.6s ease;
  height: 100%;

  /* width: 100%; */
  width: 0;
  background: var(--color-black);
}

.rcmd_txt h3 span {
  display: block;
}

.rcmd_txt p {
  margin-top: 1rem;
  font-size: 1.8rem;
  line-height: 1.6;
  font-weight: 600;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
}


.rcmd_item01 {
  top: 0;
  left: 0;
}

.rcmd_item01 .rcmd_img {
  width: 23.46%;
}

.rcmd_item01 .rcmd_txt {
  margin-top: 16.3%;
  margin-left: 2%;
}


.rcmd_item02 {
  top: 6%;
  right: 3%;
  justify-content: end;
}

.rcmd_item02 .rcmd_img {
  width: 38.9%;
}

.rcmd_item02 .rcmd_txt {
  margin-top: 27.5%;
  margin-right: -15%;
}


.rcmd_item03 {
  bottom: 3%;
  left: 0;
  flex-direction: column;
  width: 44.5%;
}

.rcmd_item03 .rcmd_img {
  margin-top: -3%;
}

.rcmd_item03 .rcmd_txt {
  margin-left: auto;
}


.rcmd_item04 {
  bottom: 5%;
  right: 0;
  justify-content: end;
}

.rcmd_item04 .rcmd_img {
  width: 27.6%;
}

.rcmd_item04 .rcmd_txt {
  margin-top: 24%;
  margin-right: -4%;
}



@media screen and (max-width:767px) {
  #recommend {
    background: url(../images/recommend_bg_sp.webp) no-repeat center top/cover;
    padding: 18rem 0 8rem;
    margin-top: -6rem;
  }

  #recommend .hd .fuki {
    right: 5rem;
    top: -11rem;
  }

  .rcmd_inner {
    width: 75rem;
    height: 76rem;

    width: 85rem;
    height: 86rem;
    left: 50%;
    transform: translateX(-50%);
    margin: -2rem auto 0;
  }



  .rcmd_txt h3 {
    /* font-size: 1.7rem; */
  }


  .rcmd_item02 {
    top: 13%;
  }

  /* .rcmd_txt p {
    margin-top: 1rem;
    font-size: 1.4rem;
    line-height: 1.6;
    font-weight: 600;
  } */
}

/*================================================
* lifestyle
================================================*/
#lifestyle {
  color: var(--color-white);
  background: url(../images/lifestyle_bg.webp) no-repeat center top/cover;
  padding: 18rem 0;
  margin-top: -10rem;
}

#lifestyle .hd {
  margin-bottom: 3rem;
}

#lifestyle .hd .fuki {
  right: 33rem;
  top: -5rem;
}

#lifestyle .hd .ja {
  font-size: 4rem;
  font-weight: 700;
}

.timeline {
  width: 82rem;
  margin: 0 auto;
}

.timeItem {
  position: relative;
}


.timeItem .time {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.timeItem .time img {
  width: auto;
  max-width: unset;
  height: 8rem;
  position: relative;
  transform: rotate(-5deg);
}

.timeItem .time.lu img {
  transform: rotate(5deg);
}

.timeItem .time span {
  font-family: var(--zenmaru);
  font-size: 2.4rem;
}

.time_img {
  position: relative;
}

.time_img .time_main {
  position: absolute;
  top: 0;
  left: 0;
}

.time_obi div {
  font-size: 1.55rem;
  background: var(--color-white);
  color: var(--color-black);
  width: fit-content;
  line-height: 1;
  padding: 0.5rem 1rem;
  margin-top: 0.6rem;
  font-feature-settings: "palt";
  font-weight: 700;
}

.time_obi {
  z-index: 1;
  position: relative;
}

.time_arrow {
  position: absolute;
}









.timeItem01 {
  width: 44%;
  margin-left: 3%;
}

.timeItem01 .time {
  margin-left: 13%;
  margin-bottom: -2%;
}

.timeItem01 .time_bg {
  width: 80%;
}

.timeItem01 .time_main {
  top: 8%;
  left: 8%;
  width: 80%;
}

.timeItem01 .time_obi {
  margin-top: -7%;
}

.timeItem01 .time_arrow {
  width: 25%;
  right: -12%;
  top: 20%;
}


.timeItem02 {
  width: 44%;
  margin-top: -40%;
  margin-left: auto;
}

.timeItem02 .time {
  flex-direction: column;
  align-items: start;
  gap: 0;
  margin-bottom: 5%;
}

.timeItem02 .time_bg {
  width: 80%;
  margin-left: 3%;
}

.timeItem02 .time_main {
  top: -8%;
  left: 9%;
  width: 80%;
}

.timeItem02 .time_obi {
  margin-top: -20%;
}

.timeItem02 .time_arrow {
  width: 28%;
  left: -37%;
  top: 91%;
}



.timeItem03 {
  width: 50%;
  margin-top: 0%;
}

.timeItem03 .time {
  gap: 1rem;
}

.timeItem03 .time_bg {
  width: 83%;
  margin-left: 3%;
}

.timeItem03 .time_main {
  top: -2%;
  left: 9%;
  width: 83%;
}

.timeItem03 .time_obi {
  margin-top: -20%;
  margin-left: 8%;
}

.timeItem03 .time_arrow {
  width: 20%;
  right: -19%;
  top: 68%;
}





.timeItem04 {
  width: 47%;
  margin-left: auto;
  margin-top: -27%;
}

.timeItem04 .time {
  gap: 1rem;
  margin-bottom: 5%;
}

.timeItem04 .time_img {
  margin-left: 3%;
}

.timeItem04 .time_bg {
  width: 81%;
  margin-left: auto;
}

.timeItem04 .time_main {
  top: -7%;
  left: 20%;
  width: 78%;
}

.timeItem04 .time_obi {
  margin-top: -5%;
  margin-left: 29%;
}

.timeItem04 .time_arrow {
  width: 34%;
  left: -23%;
  top: 68%;
}




.timeItem05 {
  width: 41%;
  margin-top: -13%;
  margin-left: 5%;
}

.timeItem05 .time {
  gap: 0;
  margin-bottom: 5%;
  flex-direction: column;
  align-items: start;
}

.timeItem05 .time_bg {
  width: 83%;
}

.timeItem05 .time_main {
  top: 1%;
  left: 8%;
  width: 88%;
}

.timeItem05 .time_obi {
  margin-top: -18%;
  margin-left: 26%;
}

.timeItem05 .time_arrow {
  width: 22%;
  right: -21%;
  top: 27%;
}






.timeItem06 {
  width: 43%;
  margin-left: auto;
  margin-top: -31%;
}

.timeItem06 .time {
  gap: 0;
  margin-bottom: 5%;
  flex-direction: column;
  align-items: start;
}

.timeItem06 .time span {
  margin-left: 14%;
  margin-top: -2%;
}

.timeItem06 .time_bg {
  width: 89%;
}

.timeItem06 .time_main {
  top: -7%;
  left: 5%;
  width: 90%;
}

.timeItem06 .time_obi {
  margin-top: -23%;
  margin-left: -1%;
}

@media screen and (max-width:767px) {
  #lifestyle {
    background: url(../images/lifestyle_bg_sp.webp) no-repeat center top/cover;
    margin-top: -7rem;
  }

  #lifestyle .hd .fuki {
    right: 5rem;
    top: -8rem;
  }

  .timeline {
    width: 72rem;
  }

  .timeItem .time {
    gap: 1rem;
  }

  .timeItem .time img {
    height: 7.2rem;
  }

  .timeItem .time span {
    font-size: 2rem;
  }


  .time_obi div {
    font-size: 1.35rem;
  }

}

/*================================================
* plan
================================================*/
#plan {
  background: url(../images/plan_bg.webp) no-repeat center top/cover;
  padding: 14rem 0;
  margin-top: -13rem;
  z-index: 1;
}

#plan h2 {
  margin-bottom: 6rem;
}

#plan h3 {
  width: 61rem;
  margin: 6rem auto 4rem;
}

.plan_box {
  width: 35rem;
  margin: 0 auto;
  padding: 2rem 0 1rem;
  background: rgb(255 255 255 / 55%);
  border: 0.4rem solid var(--color-red);
}

.plan_box img {
  margin: 0 auto;
}

.plan_box.nyukai img {
  width: 27rem;
}

.plan_clm {
  display: flex;
  justify-content: center;
  align-items: start;
  gap: 2rem;
}

.plan_clm .plan_box {
  margin: 0;
}

.plan_clm .plan_box img {
  width: 30.8rem;
}

.plan_box .more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  color: var(--color-red);
  margin-top: 1rem;
  font-weight: bold;
  cursor: pointer;
}

.plan_box .more img {
  width: 1.2rem;
  margin: 0;
  position: relative;
  transition: .3s;
  transform: rotate(0deg);
}

.plan_box.is-open .more img {
  transform: rotate(180deg);
  transition: .3s;
}

.plan_cnt {
  width: fit-content;
  margin: 0 auto;
  display: none;
}



.plan_cnt .jikan {
  display: flex;
  align-items: start;
  gap: 2rem;
  padding-top: 4rem;
}

.plan_cnt .jikan .ar {
  font-size: 1rem;
  width: 100%;
}


.plan_cnt .jikan ul li {
  display: flex;
  justify-content: space-between;
}

.plan_cnt .jikan ul li span {
  display: block;
  width: 6rem;
}

.plan_cnt .area {
  margin-top: 2rem;
  padding-bottom: 6rem;
}

.plan_cnt .area ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  margin-top: 0.5rem;
}

.plan_cnt .area ul li {
  background: var(--color-black2);
  color: var(--color-white);
  padding: 0.3em 0.7em;
  border-radius: 10rem;
  line-height: 1;
}

.plan_cnt .area ul li.not {
  background: #a5a5a5;
}


.plan_btn {
  width: 34rem;
  margin: 4rem auto;
  cursor: pointer;
  padding: 1.2rem 0;
  background: var(--color-red);
  border-radius: 10rem;
  transition: .4s;
}

.plan_btn:hover {
  background: var(--color-black2);
}

.plan_btn img {
  width: 76%;
  margin: 0 auto;
}



.plan_modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .3s, visibility .3s;
}

.plan_modal.is-show {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.plan_modal_overlay {
  position: absolute;
  inset: 0;
  background: url(../images/modal_bg.webp) no-repeat center top/cover;
}

.plan_modal_inner {
  position: absolute;
  /* top: 50%; */
  top: 3rem;
  left: 50%;
  /* min-width: 1000px; */
  width: 80%;
  max-height: 90vh;
  overflow-y: auto;
  transform: translateX(-50%);
  background: #fff;
  border-radius: 1rem;

}

.plan_modal_content {
  padding: 3rem;
}

.plan_modal_close {
  position: fixed;
  top: 3rem;
  right: 4rem;
  border: 0;
  background: none;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.plan_btn {
  cursor: pointer;
}

body.is-fixed {
  overflow: hidden;
}

@media screen and (max-width:767px) {
  #plan {
    background: url(../images/plan_bg_sp.webp) no-repeat center top/cover;

  }

  #plan h3 {
    width: 100%;
    margin: 6rem auto 4rem;
  }

  .plan_clm {
    flex-wrap: wrap;
    gap: 2rem;
  }

  .plan_box {
    width: 69rem;
    padding: 4rem 0 2rem;
    border: 0.6rem solid var(--color-red);
  }

  .plan_box.nyukai img {
    width: 53rem;
  }

  .plan_clm .plan_box img {
    width: 61rem;
  }

  .plan_box .more img {
    width: 2.5rem;
  }

  .plan_btn {
    width: 65rem;
    margin: 8rem auto;
    padding: 2rem 0;
  }

  .plan_modal_inner {
    position: absolute;
    width: 90%;
    height: 95vh;
    top: 10rem;
  }

  .plan_modal_content {
    min-width: 730px;
  }

  .plan_modal_close {
    top: 2rem;
    right: 4rem;
  }
}

/*================================================
* qa
================================================*/
#qa {
  /* background: url(../images/qa_bg.webp) no-repeat center top/cover; */
  padding: 14rem 0;
  margin-top: -14rem;
}

#qa .inner {
  width: 80rem;
  margin: 0 auto;
}

#qa #accordion {
  margin-top: 6rem;
}

#qa #accordion li {
  margin-top: 2rem;
}

#qa #accordion .label {
  cursor: pointer;
  background: var(--color-red);
  color: var(--color-white);
  padding: 1.2rem 2rem;
  border-radius: 0.5rem;
  display: flex;
  align-items: start;
  gap: 2rem;
  position: relative;
}

#qa #accordion .label::before,
#qa #accordion .label::after {
  position: absolute;
  content: "";
  width: 2rem;
  height: 0.2rem;
  background: var(--color-white);
  top: 50%;
  transform: translateY(-50%);
  right: 3rem;
  transition: .4s;
}

#qa #accordion .label::after {
  transform: translateY(-50%) rotate(90deg);
}

#qa #accordion .label.open::after {
  transform: translateY(-50%) rotate(0deg);
}

#qa #accordion .label span,
#qa #accordion .detail span {
  font-family: var(--josefin);
  font-size: 2.4rem;
  line-height: 1;
  position: relative;
  top: 0.3rem;
}

#qa #accordion .detail {
  display: none;
}

#qa #accordion .detail div {
  gap: 2rem;
  display: flex;
  align-items: start;
  border-radius: 0.5rem;
  border: 0.2rem solid var(--color-red);
  margin-top: 1rem;
  padding: 1.4rem 2rem;
  background: rgb(255 255 255 / 30%);
}

#qa #accordion .detail span {
  color: var(--color-red);
}


@media screen and (max-width:767px) {
  #qa {
    margin-top: -7rem;
    padding: 14rem 0 20rem;
  }

  #qa .inner {
    width: 69rem;
    margin: 0 auto;
  }

  #qa #accordion li {
    margin-top: 3rem;
  }

  #qa #accordion .label span,
  #qa #accordion .detail span {
    font-size: 3.8rem;
  }

  #qa #accordion .label::before,
  #qa #accordion .label::after {
    width: 3rem;
    height: 0.2rem;
  }

  #qa #accordion .label {
    padding: 2.6rem 5rem 2.6rem 2rem;
    border-radius: 0.5rem;
  }
}

/*================================================
* flow
================================================*/
#flow {
  color: var(--color-white);
  background: url(../images/flow_bg.webp) no-repeat center top/cover;
  padding: 18rem 0;
  margin-top: -10rem;
  z-index: 1;
}


.flow_ill {
  position: absolute;
  width: 30.5rem;
  top: 0rem;
}

.flow_ill.ill01 {
  left: 4.4rem;
}

.flow_ill.ill02 {
  right: 7rem;
}

.fl_swiper {
  margin-top: 1rem;
}

.fl_swiper .swiper-wrapper {
  width: fit-content;
  margin: 0 auto;
}

.fl_swiper .swiper-slide {
  width: 28rem;
  margin: 0 1rem;
  padding-top: 4rem;
}

.fl_swiper .swiper-slide h3 {
  font-size: 1.8rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 1rem;
  position: relative;
}

.fl_swiper .swiper-slide h3 img {
  width: 6.7rem;
  min-width: 6.7rem;
  display: inline-block;
}

.fl_swiper .swiper-slide h3 .st {
  position: absolute;
  width: 10rem;
  left: -3rem;
  top: -4rem;
}

.fl_swiper .swiper-slide p {
  margin-top: 2em;
}

.fl_swiper .swiper-slide p small {
  font-size: 1.2rem;
  line-height: 1.4;
  display: inline-block;
}

.fl_swiper .swiper-slide .fl_img {
  width: 24rem;
  margin: 2rem auto;
}


.osusume {
  width: 95rem;
  margin: 9rem auto 0;
}

.osusume h3 {
  font-size: 2.2rem;
  font-weight: 700;
  margin: 2rem 0;
  position: relative;
}

.osusume h3 img {
  width: 20rem;
  position: absolute;
  left: -4rem;
  top: -6rem;
}

.osusumeList {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.osusume_card h4 {
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 1rem;
  font-size: 1.8rem;
  margin-bottom: 1rem;
  line-height: 1.6;
}

.osusume_card h4 img {
  width: 6rem;
}

.osusume_card:nth-of-type(2) {
  position: relative;
}

.osusume_card:nth-of-type(2)::before,
.osusume_card:nth-of-type(2)::after {
  position: absolute;
  content: "";
  width: 1px;
  height: 6rem;
  top: 50%;
  transform: translateY(-50%);
  left: -2rem;
  background: var(--color-white);
}

.osusume_card:nth-of-type(2)::after {
  left: auto;
  right: 2rem;
}

@media screen and (max-width:767px) {
  #flow {
    color: var(--color-white);
    background: url(../images/flow_bg_sp.webp) no-repeat center top/cover;
    padding: 18rem 0;
    margin-top: -10rem;
  }

  .flow_ill {
    width: 24rem;
    top: 0rem;
  }

  .flow_ill.ill01 {
    left: 0.4rem;
  }

  .flow_ill.ill02 {
    right: 0.7rem;
  }

  .fl_slide {
    width: 65rem;
    margin-left: auto;
  }


  .fl_swiper .swiper-wrapper {
    width: auto;
  }

  .fl_swiper .swiper-slide {
    width: 43rem;
    margin: 0 1.6rem;
    padding-top: 4rem;
  }

  .fl_swiper .swiper-slide.slide04 {
    margin-right: 10rem;
  }

  .fl_swiper .swiper-slide h3 {
    font-size: 2.8rem;
  }

  .fl_swiper .swiper-slide h3 img {
    width: 10rem;
    min-width: 10rem;
  }

  .fl_swiper .swiper-slide h3 .st {
    position: absolute;
    width: 10rem;
    left: -3rem;
    top: -4rem;
  }



  .fl_swiper .swiper-slide p small {
    font-size: 2rem;
  }

  .fl_swiper .swiper-slide .fl_img {
    width: 37rem;
    margin: 3rem auto;
  }


  .osusume {
    width: 45rem;
    margin: 20rem auto 0;
  }

  .osusume h3 {
    font-size: 3.5rem;
    text-align: center;
  }

  .osusume h3 img {
    width: 35rem;
    position: absolute;
    left: -8rem;
    top: -10rem;
  }

  .osusumeList {
    grid-template-columns: repeat(1, 1fr);
    width: fit-content;
    margin: 0 auto;
  }

  .osusume_card h4 {
    font-size: 2.5rem;
  }

  .osusume_card h4 img {
    width: 8.5rem;
  }

  .osusume_card:nth-of-type(2) {
    padding: 4rem 0;
    margin: 4rem 0;
  }

  .osusume_card:nth-of-type(2)::before,
  .osusume_card:nth-of-type(2)::after {
    position: absolute;
    content: "";
    width: 8rem;
    height: 1px;
    top: 0;
    transform: translateX(-50%);
    left: 50%;
    background: var(--color-white);
  }

  .osusume_card:nth-of-type(2)::after {
    bottom: 0;
    right: auto;
    top: auto;
  }

  .osusume_card p {
    font-size: 2rem;
  }
}

/*================================================
* access
================================================*/
#access {
  padding: 10rem 0 2rem;
  background: var(--color-white);
}

#access .hd .en {
  color: #c71f1e;
}

#access iframe {
  display: block;
  width: 100%;
  height: 40rem;
  margin-top: 4rem;
  margin-bottom: 6rem;
}

.acc_logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  font-size: 2rem;
  font-family: var(--zenmaru);

}

.acc_logo img {
  width: 28rem;
}

.acc_meta {
  display: flex;
  align-items: start;
  justify-content: center;
  gap: 5rem;
  margin: 6rem auto;
  font-size: 1.6rem;
  color: #303030;
}

.acc_meta ul {
  display: flex;
  gap: 2rem;
}

.acc_meta ul li {
  width: 11rem;
}

.acc_meta ul li div {
  position: relative;
}

.acc_meta ul li div p {
  text-align: center;
  position: absolute;
  top: 53%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--color-white);
  font-size: 1.4rem;
  font-family: var(--zenmaru);
  white-space: nowrap;
  line-height: 1.4;
}

.acc_meta ul li:nth-child(2) div p {
  color: #c71f1e;
}

.acc_meta ul li>p {
  font-size: 1.2rem;
  text-align: center;
  color: #4f4f4f;
  line-height: 1.5;
  margin-top: 1rem;
}

@media screen and (max-width:767px) {
  .acc_meta {
    flex-wrap: wrap;
    gap: 2rem 3rem;

    font-size: 2.4rem;
    color: #303030;
    width: 60rem;
  }

  .acc_meta>p {
    width: 100%;
  }
}

/*================================================
 *  ani
 ================================================*/
/* fadeUp */
.fadeLeft {
  opacity: 0;
  transform: translate(-20px);
  transition: all 0.8s ease;
}

.fadeLeft.started {
  opacity: 1;
  transform: translateX(0px);
}

/* fadeUp */
.fadeRight {
  opacity: 0;
  transform: translate(20px);
  transition: all 0.8s ease;
}

.fadeRight.started {
  opacity: 1;
  transform: translateX(0px);
}

/* fadeUp */
.fadeUp {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.8s ease;
}

.fadeUp.started {
  opacity: 1;
  transform: translateY(0px);
}

/* fadeUp */
.fadeIn {
  opacity: 0;
  transition: all 0.8s ease;
}

.fadeIn.started {
  opacity: 1;
}

/* zoom */
.zoom img,
.zoom02 img,
.zoom03 img,
.zoom04 img,
.zoom05 img,
.zoom06 img,
.zoom07 img {
  opacity: 0;
  -webkit-transform: scale(0) translateY(1rem) rotate(0);
  transform: scale(0) translateY(1rem) rotate(0);
  will-change: opacity, transform;
  -webkit-transition: .8s .2s cubic-bezier(0.34, 1.63, 0.64, 1);
  transition: .8s .2s cubic-bezier(0.34, 1.63, 0.64, 1);
}

.zoom.started img,
.zoom02.started img,
.zoom03.started img,
.zoom04.started img,
.zoom05.started img,
.zoom06.started img,
.zoom07.started img {
  -webkit-transition: .8s .2s cubic-bezier(0.34, 1.63, 0.64, 1);
  transition: .8s .2s cubic-bezier(0.34, 1.63, 0.64, 1);
  -webkit-transition-property: opacity, -webkit-transform;
  transition-property: opacity, -webkit-transform;
  transition-property: opacity, transform;
  transition-property: opacity, transform, -webkit-transform;
  opacity: 1;
  -webkit-transform: scale(1) translateY(0) rotate(0);
  transform: scale(1) translateY(0) rotate(0);
}

.zoom02.started img {
  -webkit-transition: .8s .3s cubic-bezier(0.34, 1.63, 0.64, 1);
  transition: .8s .3s cubic-bezier(0.34, 1.63, 0.64, 1);
}

.zoom03.started img {
  -webkit-transition: .8s .4s cubic-bezier(0.34, 1.63, 0.64, 1);
  transition: .8s .4s cubic-bezier(0.34, 1.63, 0.64, 1);
}


.zoom04.started img {
  -webkit-transition: .8s .5s cubic-bezier(0.34, 1.63, 0.64, 1);
  transition: .8s .5s cubic-bezier(0.34, 1.63, 0.64, 1);
}

.zoom05.started img {
  -webkit-transition: .8s .6s cubic-bezier(0.34, 1.63, 0.64, 1);
  transition: .8s .6s cubic-bezier(0.34, 1.63, 0.64, 1);
}

.zoom06.started img {
  -webkit-transition: .8s .7s cubic-bezier(0.34, 1.63, 0.64, 1);
  transition: .8s .7s cubic-bezier(0.34, 1.63, 0.64, 1);
}

.zoom07.started img {
  -webkit-transition: .8s .8s cubic-bezier(0.34, 1.63, 0.64, 1);
  transition: .8s .8s cubic-bezier(0.34, 1.63, 0.64, 1);
}

.delay02-pc,
.delay02 {
  transition-delay: 0.2s;
}

.delay03-pc,
.delay03 {
  transition-delay: 0.3s;
}

.delay04-pc,
.delay04 {
  transition-delay: 0.4s;
}

.delay06 {
  transition-delay: 0.6s;
}

.pop-in-Left span,
.pop-in-Left img {
  transform: translate(-100%) scale(.8) rotate(-20deg);
  animation: .8s steps(6, end) both popOutLeft;
  display: block;
}

.started .pop-in-Left span,
.started .pop-in-Left img {
  animation: .8s steps(6, end) both popInLeft;
}

@keyframes popInLeft {

  0% {
    transform: translate(-100%) scale(.8) rotate(-20deg);
  }

  100% {
    transform: translate(0) scale(1) rotate(0);
  }
}

@keyframes popOutLeft {
  0% {
    transform: translate(0) scale(1) rotate(0);
  }

  100% {
    transform: translate(-100%) scale(.8) rotate(-20deg);
  }
}

.pop-in-Right span,
.pop-in-Right img {
  transform: translate(100%) scale(.8) rotate(-20deg);
  animation: .8s steps(6, end) both popOutRight;
  display: block;
}

.started .pop-in-Right span,
.started .pop-in-Right img {
  animation: .8s steps(6, end) both popInRight;
}

@keyframes popInRight {

  0% {
    transform: translate(100%) scale(.8) rotate(20deg);
  }

  100% {
    transform: translate(0) scale(1) rotate(0);
  }
}

@keyframes popOutRight {
  0% {
    transform: translate(0) scale(1) rotate(0);
  }

  100% {
    transform: translate(100%) scale(.8) rotate(20deg);
  }
}

.obi {
  position: relative;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}


.obi::before {
  content: "";
  position: absolute;
  inset: 0;
  /* background-color: var(--color-primary); */
  z-index: -1;
  transition: width 0.6s ease;
  height: 100%;
  width: 0;
}

.started .obi::before {
  width: 100%;
}

.obi span {
  position: relative;
  transition: width 0.6s ease .4s;
  overflow: hidden;
  width: 0;
  display: block;
  white-space: nowrap;
}

.started .obi span {
  width: 100%;
}

@keyframes buruburu {
  0% {
    transform: translate(4px, 0px);
  }

  5% {
    transform: translate(-4px, 0px);
  }

  10% {
    transform: translate(4px, 0px);
  }

  15% {
    transform: translate(-4px, 0px);
  }

  20% {
    transform: translate(4px, 0px);
  }

  25% {
    transform: translate(-4px, 0px);
  }

  30% {
    transform: translate(0px, 0px);
  }
}

@keyframes buruburu2 {
  0% {
    transform: translate(0px, 4px);
  }

  5% {
    transform: translate(0px, -4px);
  }

  10% {
    transform: translate(0px, 4px);
  }

  15% {
    transform: translate(0px, -4px);
  }

  20% {
    transform: translate(0px, 4px);
  }

  25% {
    transform: translate(0px, -4px);
  }

  30% {
    transform: translate(0px, 0px);
  }
}

@media screen and (max-width:767px) {}

/*================================================
* 
================================================*/


@media screen and (max-width:767px) {}

/*================================================
* trial
================================================*/
#trial {
  background: #f2f2f2;
  padding: 18rem 0 0;
  margin-top: -12rem;
}

#trial h2 {
  margin-bottom: 5rem;
}

@media screen and (max-width:767px) {}

/*================================================
* 
================================================*/

#bg {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100vw;
  height: 100vh;
  background: var(--color-white);
  opacity: 1;
  z-index: -1;
}


#bg::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background: url(../images/point_bg.webp) no-repeat center top / cover;
  top: 0;
  left: 0;
}

#bg.onBg2::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  background: url(../images/qa_bg.webp) no-repeat center top / cover;
  top: 0;
  left: 0;
}



#bg.change {
  z-index: 0;
}

#bg.onBg2.change {
  z-index: 0;
}



@media screen and (max-width:767px) {
  #bg::before {
    background: url(../images/point_bg_sp.webp) no-repeat center top / cover;
  }
}

/*================================================
 *  footer
 ================================================*/
footer {
  background: #1e1d1c;
  padding: 3rem 0 20rem;
  color: var(--color-white);
  position: relative;
}

.ft_link {
  display: flex;
  align-items: center;
  gap: 2rem;
  justify-content: center;
}

.ft_link a {
  text-decoration: underline;
}

footer .copy {
  text-align: center;
  font-size: 1.2rem;
  margin-top: 2rem;
}



@media screen and (max-width:767px) {
  footer {
    padding: 6rem 0 20rem;
  }

  .ft_link a {
    font-size: 1.8rem;
  }


}