@charset "UTF-8";

/* ===============================================
Base
=============================================== */

/*
  Reset
----------------------------------------------- */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
main, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  vertical-align: baseline;
}
article, aside, details, figcaption, figure,
footer, header, hgroup, main, menu, nav, section {
  display: block;
}
body {
  line-height: 1;
}
ol, ul {
  list-style: none;
}
blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
input, button, select, textarea {
  -webkit-appearance: none;
}

/*
  Default Style
----------------------------------------------- */
html{
  font-size: 62.5%;
}
body{
  color: #5c5c5c;
  font-family: 'M PLUS Rounded 1c', sans-serif;
  line-height: 1.5;
}
img{
  height: auto;
  vertical-align: bottom;
  width: 100%;
}
a{
  color: #5c5c5c;
  text-decoration: none;
}
h2{
  color: #e979a9;
  font-size: 3rem;
  font-weight: 700;
  text-align: center;
  line-height: 1.2;
}
h3{
  font-size: 2.5rem;
  font-weight: 600;
}


/*
  Responsive
----------------------------------------------- */

.show--pc{
  display: block;
}
.show--tb{
  display: none;
}
.show--sp{
  display: none;
}

/*
  All
----------------------------------------------- */

a[href^="tel:"] {
  pointer-events: none;
  cursor: default;
  display: block;
}
.text--pink{
  color: #e979a9;
}
.text--orange{
  color: #ffb024;
}
.text--blue{
  color: #36bbee;
}
.text--green{
  color: #06C755;
}
.border--green{
  border: 7px solid #d7e9b0;
}
.border--orange{
  border: 7px solid #fdd7c0;
}
.border--blue{
  border: 7px solid #d2ecfd;
}
.border--yellow{
  border: 7px solid #f2e38f;
}
.order--1{
  order: 1;
}
.order--2{
  order: 2;
}
.order--3{
  order: 3;
}
.order--4{
  order: 4;
}
.tel__block{
  align-items: center;
  display: flex;
  justify-content: center;
}
.tel__no{
  position: relative;
}
.tel__no:before{
  content: "";
  background-color: #e979a9;
  border-radius: 50%;
  display: inline-block;
  height: 40px;
  position: absolute;
  width: 40px;
  left: 0;
  top: 0;
  margin: -2% 0 0 -50px;
}
.tel__no:after{
  color: #fff;
  content: "\f879";
  font-family: "Font Awesome 6 Free";
   font-weight: 900;
  display: inline-block;
  font-size: 2rem;
  left: 10px;
  position: absolute;
  top: 10px;
  line-height: 1;
  -webkit-transform: scale(-1, 1);
  -ms-transform: scale(-1, 1);
  transform: scale(-1, 1);
  margin: -2% 0 0 -50px;
}
.tel__text{
  display: block;
  text-align: center;
  width: 100%;
}
.tel__small{
  font-size: 1.2rem;
  margin-left: -50px;
   margin-top: .5rem;
}

/*
  Header
----------------------------------------------- */

#header{
  background-color: #fff;
  padding-top: 1rem;
}
.header__title{
  align-items: center;
  display: flex;
  justify-content: space-around;
  margin: 0 auto;
  max-width: 1300px;
  min-width: 800px;
  width: 80%;
  z-index: 100;
}
.header__logo{
  width: 50%;
}
.tel__no{
  font-size: 2.8rem;
  font-weight: 500;
}
.header__tel{
  width: 25%;
}
.header__tel__no{
  font-size: clamp(2rem, 2vw, 3rem);
}
/* .header__title .tel__no:before{
  width: 5vmin;
  height: 5vmin;
}
.header__title .tel__no:after{
  font-size: 1.5vw;
  left: 1.75vw;
  top: 1.75vw;
  -webkit-transform: translate(-.75vw, -.75vw);
  -ms-transform: translate(-.75vw, -.75vw);
  transform: translate(-.75vw, -.75vw);
} */
.header__tel__small{
  /* font-size: clamp(1rem, .5vw, 1.5rem); */
  font-size: .8vw;
  display: block;
  text-align: center;
}
.header__btn{
  background-color: #fef7ef;
  font-size: 1.6rem;
  padding: 2rem;
  cursor: pointer;
}
.header__btn:hover{
  background-color: #FFE0C7;
}
.header__btn__link{
  color: #f6a146;
  font-weight: 600;
}
.header__btn__link:before{
  content: "\f0e0";
  font-family: "Font Awesome 6 Free";
  font-weight: 400;
  margin-right: .5rem;
}
.header__nav{
  background-color: #f38531;
  width: 100%;
  z-index: 90;
}
.header__nav.sticky{
  left: 0;
  position: fixed;
  top: 0;
}
.header__nav__ul{
  display: flex;
  justify-content: center;
}
.header__nav__li a{
  color: #fff;
  display: block;
  font-size: 1.5rem;
  padding: 1.3rem 2rem;
  position: relative;
}
.header__nav__li a::after{
  background: #fff;
  bottom: -1px;
  content: '';
  height: 3px;
  left: 0;
  position: absolute;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: transform .3s;
  width: 100%;
}
.header__nav__li a:hover::after{
  transform: scale(1, 1);
}
.hamburger,
.header__ham{
  display: none;
}

/*
  MV
----------------------------------------------- */
.hero{
  margin-bottom: 10rem;
  position: relative;
  min-height: 430px;
  background-image: url(../img/terapia_main.jpg);
  background-position: center center;
    background-size: cover;
}
.hero__title{
  display: flex;
  flex-direction: column;
  font-weight: 600;
  left: 50%;
  position: absolute;
  text-align: center;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: calc(100% - 80px);
  z-index: 20;
  line-height: 1;
}
.hero__title__main{
  background-color: rgba(255, 255, 255, .8);
  font-size: 4rem;
  letter-spacing: 5px;
  margin-bottom: 2rem;
  text-shadow: 2px 2px 8px #fffefe;
  padding: 1rem 0;
}
.hero__title__sub{
  background-color: rgba(255, 255, 255, .8);
  font-size: 2.4rem;
  padding: .5rem 0;
}

/*
  Problem
----------------------------------------------- */
#problem{
  margin-bottom: 11rem;
}
.problem__title{
  margin-bottom: 10rem;
}
.problem__img{
  margin: 0 auto 5rem auto;
  width: 750px;
}
.problem__lead{
  align-items: center;
  display: flex;
  font-size: 2.5rem;
  font-weight: 600;
  justify-content: center;
  margin-bottom: 2rem;
}
.problem__lead::before,
.problem__lead::after{
  background-color: #36bbee;
  content: '';
  display: inline-block;
  height: 2.5rem;
  width: 2px;
}
.problem__lead::before{
  margin-right: 20px;
  transform: rotate(-40deg);
}
.problem__lead::after{
  margin-left: 20px;
  transform: rotate(40deg);
}
.problem__center{
  text-align: center;
}
.problem__text{
  background: linear-gradient(transparent 60%, #ff9 50%);
  display: inline;
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.6;
}

/*
  Step
----------------------------------------------- */
#step{
  margin-bottom: 8rem;
}
.step__title{
  line-height: 1.2;
  margin-bottom: 3rem;
}
.step__bg{
  padding: 4rem 14rem;
  background-image: url(../img/step_bg.png);
  background-size: cover;
  position: relative;
}
.step__bg::after{
  background-color: white;
  content: "";
  height: 100%;
  left: 0;
  opacity: .5;
  position: absolute;
  top: 0;
  width: 100%;
}
.step__area{
  display: flex;
  justify-content: space-between;
}
.step__block{
  background-color: #fff;
  border-radius: 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  padding: 1rem;
  width: calc(100% / 4 - 10px);
  z-index: 30;
}
.step__text__caption{
  background-color: #ffb53f;
  border-radius: 50px;
  color: #fff;
  font-size: 2.5rem;
  font-weight: 700;
  order: 0;
  padding: .5rem;
  text-align: center;
  line-height: 1;
  margin: 1rem;
}
.step__block__title{
  font-size: 1.9rem;
  font-weight: 600;
  margin-bottom: .5rem;
  order: 2;
  text-align: center;
}
.step__text__sentence{
  order: 3;
  font-size: 1.4rem;
  margin: 0 1rem;
}
.step__block figure{
  text-align: center;
}
.step__img{
  width: 60%;
  box-sizing: border-box;
  order: 1;
}

/*
  About
----------------------------------------------- */
.about__title{
  margin-bottom: 2rem;
}
.about__bg{
  background-image: url(../img/about_feature_bg.png);
  background-repeat: repeat-y;
  background-size: 100% auto;
}
.about__area{
  display: flex;
  justify-content: space-between;
  width: calc(100% - 280px);
  margin: 0 auto;
  padding: 1rem 0 4.5rem 0;
}
.about__block{
  background-color: #fff;
  border-radius: 20px;
  padding: 1rem;
  width: calc(100% / 3 - 5px);
  box-sizing: border-box;
}
.about__link{
  text-align: center;
}
.about__img{
  margin-bottom: 1rem;
  min-width: 200px;
  width: 50%;
}
.about__text{
  font-size: 1.6rem;
}
.about__text::after{
  content: url(../img/pdf.svg);
  display: inline-block;
  height: 2.4rem;
  margin-left: .5rem;
  vertical-align: middle;
  width: 2.4rem;
}

/*
  News
----------------------------------------------- */
#news{
  margin-bottom: 8rem;
}

.news__bg{
background-image: url(../img/news_bg.jpg);
  background-size: cover;
  background-position: center center;
  min-height: 400px;
  padding: 5rem 0;
  position: relative;
  box-sizing: border-box;
}
.news__bg::after{
  background-color: white;
  content: "";
  height: 100%;
  left: 0;
  opacity: .3;
  position: absolute;
  top: 0;
  width: 100%;
}
.news__area{
  display: flex;
  justify-content: space-around;
  margin: 0 auto;
  width: calc(100% - 280px);
}
.news__post__title{
  margin-bottom: 2rem;
}
.news__posts{
  width: 50%;
  z-index: 30;
}
.news__post{
  line-height: 1.85;
  font-size: 1.5rem;
}
.news__post__1{
  background-color: #fff;
  border: solid 5px #e879a9;
  border-radius: 10px;
  margin-bottom: 1.5rem;
  padding: 1.5rem;
  max-height: 200px;
    overflow-y: visible;
    overflow-x: hidden;
    box-sizing: border-box;
}
.news__post__time{
  font-weight: 700;
}
.news__user{
  display: flex;
  flex-direction: column;
  width: 45%;
  z-index: 30;
}
.news__user__title{
  order: 2;
  margin-bottom: 2rem;
}
.news__user__text{
  order: 3;
  text-align: center;
  font-size: 1.5rem;
}
.news__user__table{
  border: 1px solid #fff;
  margin: 2rem 0;
  order: 1;

}
.news__user__table th,
.news__user__table td{
  border: 1px solid #fff;
  padding: 1rem;
  text-align: center;
  line-height: 1;
}
.news__user__table th{
  background-color: #f29363;
  color: #fff;
  font-weight: 700;
    font-size: 1.6rem;
}
.news__user__table td{
  background-color: #d7e9b0;
    font-size: 1.4rem;
}
.news__user__subtitle{
  text-align: center;
  margin-bottom: -1rem;
  margin-top: 1rem;
  font-size: 2rem;
  color: #e979a9;
}

/*
  Feature
----------------------------------------------- */
#feature{
  margin-bottom: 8rem;
}
.feature__bk{
  background-image: url(../img/about_feature_bg.png);
  background-repeat: repeat-y;
  background-size: 100% auto;
}
.feature__area{
  margin: 0 auto;
  width: calc(100% - 280px);
}
.feature__title{
  margin-bottom: 3rem;
}
.feature__block{
  display: flex;
  margin: 0 auto 3rem auto;
}
.feature__block__sentence{
  width: 60%;
}
.feature__block__title{
}
.feature__block__text{
  font-size: 1.5rem;
  line-height: 1.85;
}
.feature__block__img{
  width: 40%;
  margin-left: 5rem;
}
.feature__block__img__img{
  border-radius: 20px;
}
.feature__block .order--1{
  margin: 0 5rem 0 0;
}

/*
  Gallery
----------------------------------------------- */
#gallery{
  background-image: radial-gradient(at center center, #ffd0f2 0%, #ffdeb3 100%);
  margin-bottom: 8rem;
      padding: 8rem 0;
}
.gallery__title{
  margin-bottom: 4rem;
}
.gallery__area{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 auto;
  width: calc(100% - 280px);

}
.gallery__link{
  border-radius: 10px;
  margin: 0.75rem;
  overflow: hidden;
  width: calc(16.6% - 15px);
}
.gallery__link__img{
  transition: 1s all;
  object-fit: cover;
  aspect-ratio: 1.3 / 1;
}
.gallery__link__img:hover{
  transform: scale(1.2,1.2);
  transition: 1s all;
}

/*
  Staff
----------------------------------------------- */
#staff{
  margin-bottom: 8rem;
}
.staff__title{
  margin-bottom: 3rem;
}
.staff__area{
  margin: 0 auto;
  width: calc(100% - 300px);
}
.staff__block{
  align-items: center;
  display: flex;
  margin-bottom: 3rem;
}
.staff__sentence{
  width: 100%;
  font-size: 1.5rem;
}
.staff__block__title{
  font-size: 2.5rem;
  font-weight: 600;
}
.staff__block__license{
  font-weight: 600;
  margin-bottom: .3rem;
}
.staff__block__text{
  line-height: 1.85;
}
.staff__block__img{
  box-sizing: border-box;
  margin-right: 5rem;
  max-width: 150px;
  width: 20%;
}
.staff__block__img__img{
  transition: transform .6s ease;
}
.staff__block__img__img:hover{
  transform: scale(1.1);
}

/*
  Access
----------------------------------------------- */
#access{
  margin-bottom: 10rem;
}
.access__title{
  margin-bottom: 3rem;
}
.access__area{
  display: flex;
  justify-content: center;
  margin: 0 auto;
  width: calc(100% - 280px);
}
.access__map{
  width: 50%;
  max-height: 400px;
}
.access__map iframe{
  height: 100%;
}
.access__text{
  text-align: center;
  width: 50%;
  margin: 1rem;
}
.access__text__title{
  margin-bottom: 2rem;
}
.access__tel{
  margin-bottom: 2rem;
}
.access__area .tel__no:before{
  height: 40px;
  width: 40px;
  margin: 0 0 0 -55px;
}
.access__area .tel__no:after{
  font-size: 2rem;
  left: 10px;
  top: 10px;
  margin: 0 0 0 -55px;
}
.access__tel__small{
  margin-left: 3rem;
}
.access__description{
  margin: 0 auto 2rem 6.5rem;
  text-align: left;
}
.access__description__text{
  margin-bottom: 2.6rem;
  font-size: 1.5rem;
}
.access__description__text dt{
  font-weight: 500;
}
.access__description address{
  font-size: 1.3rem;
}
.access__btn{
  background-color: #9dca53;
  border: 1px solid #9dca53;
  border-radius: 10px;
  display: inline-block;
  font-size: 1.3rem;
  line-height: 1;
}
.access__btn:hover{
  background-color: #fff;
  border: 1px solid #9dca53;
}
.access__btn__link{
  color: #fff;
  display: block;
  padding: 1.5rem;
}
.access__btn__link:hover{
  color: #9dca53;
}
.access__arrow:after{
  content: "\f061";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  margin-left: .5rem;
}

/*
  Contact
----------------------------------------------- */
.contact__title{
  margin-bottom: 5rem;
}
.contact__area{
  background-image: radial-gradient(at center center, #d8fcff 0%, #f3ffc5 100%);
  padding: 3rem 0 200px 0;
}
.contact__tel,
.contact__mail{
  background-color: #fff;
  border-radius: 20px;
  margin: 0 auto 2rem auto;
  text-align: center;
  padding: 2rem;
  width: calc(100% - 320px);
}
.contact__mail{
  background-color: #fff;
  border-radius: 20px;
  margin: 0 auto 2rem auto;
  text-align: center;
  padding: 2rem;
  width: calc(100% - 320px);
}
.contact__tel__title,
.contact__mail__title{
  margin-bottom: 2rem;
}
.contact__mail{
  padding: 4rem 2rem;
}
.contact__tel .tel__block{
  flex-direction: column;
}
.contact__tel .tel__no{
  display: flex;
  flex-direction: column;
}
.contact__tel .tel__no:before{
    height: 40px;
  width: 40px;
  margin: 0 0 .5rem 0;
  position: relative;
  left: calc(50% - 20px);
}
.contact__tel .tel__no:after{
  font-size: 2rem;
  position: absolute;
  top: 10px;
  left: calc(50% - 10px);
  margin: 0;
}
.contact__tel .tel__small{
  margin-left: 0;
}
.contact__tel .line__no{
font-size: 3rem;
}

.contact__table{
  margin: 0 auto 2rem auto;
  width: 100%;
    font-size: 1.4rem;
}
.contact__table th{
  background: #f7f7f7;
  border: solid 1px #d7d7d7;
  color: #444;
  line-height: 1.85;
  font-weight: 500;
  padding: 1rem;
  text-align: left;
  vertical-align: middle;
  width: 30%;
}
.contact__table td{
  border: solid 1px #d7d7d7;
  padding: 1rem;
}
.contact__table input,
.contact__table textarea{
  background: #fafafa;
  border: 1px solid #eaeaea;
  border-radius: 2px;
  box-sizing: border-box;
  font-size: 1.4rem;
  padding: 1rem;
  width: 100%;
}
.contact__table textarea{
  height: calc( 1.4rem * 22 );
  line-height: 1.3;
  width: 100%;
}
.haveto,
.any{
  border-radius: 2px;
  bottom: 1px;
  color: #fff;
  font-size: 1rem;
  margin-right: 5px;
  padding: 5px;
  position: relative;
}
.haveto{
  background: #ff9393;
}
.any{
  background: #93c9ff;
}
.formbtn{
  background: #f28530;
  border: 1px solid #f28530;
  border-radius: 10px;
  color: #fff;
  font-size: 1.8rem;
  font-weight: 700;
  padding: 1rem 0;
  width: 100%;
}
.formbtn:hover{
  background-color: #fff;
  border: 1px solid #f28530;
  color: #f28530;
  cursor: pointer;
}
.wave--bg{
  bottom: 0;
  left: 0;
  line-height: 0;
  margin-top: -150px;
  overflow: hidden;
  transform: rotate(180deg);
  width: 100%;
}
.wave--bg svg{
  display: block;
  height: 100px;
  width: calc(100% + 1.3px);
}
.wave--bg .shape-fill{
  fill: #f3b66c;
}

/*
  Footer
----------------------------------------------- */
#footer{
  background-color: #f3b66c;
  padding-top: 3rem;
  width: 100%;
}
.footer__area{
  padding: 2rem 0 1rem 0;
  text-align: center;
}
.footer__logo{
  margin-bottom: 2rem;
  width: 630px;
  max-width: 50%;
}
.footer__small{
  font-size: 1rem;
}

/*------------------------------------------------------------------------------------------------------- */
@media screen and (max-width: 1024px){
  .show--pc{
    display: none;
  }
  .show--tb{
    display: block;
  }
  .show--sp{
    display: none;
  }

  /*
    Default Style
  ----------------------------------------------- */
  h2{
    font-size: 2.4rem;
  }
  h3{
    font-size: 2.2rem;
  }

  /*
  Header
  ----------------------------------------------- */
  #header{
    left: 0;
    padding: 0;
    position: fixed;
    top: 0;
    z-index: 100;
  }
  .header__title{
    height: 70px;
    margin: 0;
    min-width: auto;
    width: calc(100vw - 70px);
  }
  .header__logo{
    width: 45%;
    margin-left: 4rem;
  }
  .header__tel{
    margin: 0 0 -10px 2rem;
    width: 20%;
  }
  .header__tel__no{
  font-size: clamp(1.8rem, 2vw, 3rem);
  }
  .header__tel__no:before{
    width: 32px;
    height: 32px;
    margin: -5% 0 0 -40px;
  }
  .header__tel__no:after{
    font-size: 1.6rem;
    margin: -5% 0 0 -45px;
    left: 14px;
    top: 8px;
  }
  .tel__small{
    font-size: clamp(.1rem, 1vw, 1rem);
    letter-spacing: -1px;
    margin-left: -40px;
  }
  .header__btn{
    padding: 1.6rem;
    margin-right: 2rem;
  }
  .header__btn__link{
    font-size: 1.6rem;
  }

  /*　ハンバーガーボタン　*/
  .hamburger,
  .header__ham{
    display: block;
  }
  .hamburger{
    align-items: center;
    background-color: #f28530;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    height: 70px;
    justify-content: center;
    padding-top: .5rem;
    position: fixed;
    right: 0;
    text-align: center;
    top: 0;
    width: 70px;
    z-index: 30;
  }
  .hamburger span{
    background: #fff;
    display: block;
    height: 2px ;
    margin-bottom: 5px;
    -webkit-transition: .3s ease-in-out;
    -moz-transition: .3s ease-in-out;
    transition: .3s ease-in-out;
    width: 20px;
  }
  .ham--menu{
    color: #fff;
    font-size: .5rem;
  }
  .hamburger.active span{
    margin-bottom: 0;
  }
  .hamburger.active span:nth-child(1){
    background: #fff;
    left: 6px;
    margin-bottom: -1px;
    margin-top: 8px;
    top: 16px;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  .hamburger.active span:nth-child(2){
    background: #fff;
    top: 16px;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  .hamburger.active span:nth-child(3){
    display: none;
  }
  .hamburger.active .ham--menu{
    margin-top: 12px;
  }
  .header__ham{
    color: #fff;
    height: 0;
    left: 0;
    overflow: hidden;
    pointer-events: none;
    position: fixed;
    text-align: center;
    top: 0;
    transition: all .6s;
    width: 100%;
    z-index: 20;
  }
  .header__ham__ul{
    background-color: #f28530;
    margin: 70px auto 0 auto;
    padding: 0;
    width: 100%;
    font-size: 1.3rem;
  }
  .header__ham__li{
    border-bottom: 1px #fff solid;
    list-style-type: none;
    padding: 0;
    transition: .4s all;
    width: 100%;
  }
  .header__ham__li:last-child{
    border-bottom: none;
    padding-bottom: 0;
  }
  .header__ham__li a{
    color: #fff;
    display: block;
    padding: 1rem 0;
    text-decoration: none;
  }
  .header__ham__li a:last-child{
    border-bottom: none;
  }
  .header__ham.active{
    height: 50vh;
    pointer-events: auto;
    top: 0;
  }

  /*
  MV
  ----------------------------------------------- */
  .hero{
    margin-top: 70px;
    min-height: 50vw;
    margin-bottom: 8rem;
  }
  .hero__img{
    height: 40vh;
  }
  .hero__title__main{
    font-size: 2.6rem;
    padding: 1rem 0;
  }
  .hero__title__sub{
    font-size: 2rem;
    padding: .5rem 0;
  }

  /*
  Problem
  ----------------------------------------------- */
  .problem__title{
    margin-bottom: 10rem;
  }
  .problem__img{
    width: 85%;
    max-width: 750px;
  }
  .problem__lead,
  .problem__text{
    font-size: 2.2rem;
  }
  .problem__lead::before,
  .problem__lead::after{
    height: 2.2rem;
  }

  /*
  Step
  ----------------------------------------------- */
  .step__title{
    line-height: 1.4;
  }
  .step__bg{
    padding: 4rem;
  }
  .step__area{
    flex-wrap: wrap;
  }
  .step__block{
    margin: 1rem;
    width: calc(50% - 2rem);
  }
  .step__text__caption{
    font-size: 2.2rem;
  }
  .step__block__title{
    font-size: 2rem;
  }
  .step__text__sentence{
    font-size: 1.4rem;
  }
  .step__img{
    display: block;
    margin: 0 auto;
    width: 40%;
  }

  /*
  About
  ----------------------------------------------- */
  .about__area{
    width: calc(100% - 80px);
  }
  .about__block{
    width: calc(100% / 3);
    padding: 0;
  }
  .about__img{
    min-width: 120px;
  }

  /*
  News
  ----------------------------------------------- */
  .news__post{
    font-size: 1.35rem;
  }
  .news__post__1{
    height: 200px;
    overflow-x: hidden;
    overflow-y: visible;
  }
  .news__user__title{
    margin-bottom: 1rem;
  }
  .news__user__text{
    font-size: 1.3rem;
  }

  /*
  Feature
  ----------------------------------------------- */
  .feature__title{
    margin-bottom: 5rem;
  }
  .feature__block__title{
    margin-bottom: .5rem;
  }
  .feature__area{
    width: calc(100% - 80px);
  }
  .feature__block{
    margin-bottom: 4rem;
  }
  .feature__block__sentence{
  }
  .feature__block__text{
    font-size: 1.35rem;
    line-height: 1.7;
  }
  .feature__block__img{
    width: 60%;
  }

  /*
  Gallery
  ----------------------------------------------- */
  .gallery__link{
    margin: .5rem;
        width: calc(100% / 4 - 10px);
  }
  .gallery__img{
    width: 20%;
  }

  /*
  Staff
  ----------------------------------------------- */
  .staff__area{
    width: calc(100% - 80px);
  }
  .staff__block__title{
    font-size: 2.2rem;
  }
  .staff__block__img{
    width: 20%;
    max-width: 150px;
    min-width: 120px;
    margin-right: 1rem;
  }

  /*
  Access
  ----------------------------------------------- */
  .access__area{
    width: calc(100% - 80px);
    align-items: center;
  }
  .access__text{
    margin: 0;
  }
  .access__map{
    height: 400px;
    margin: 1rem 2rem 1rem 1rem;
  }
  .access__text__title{
    text-align: left;
    line-height: 1;

  }
  .access__tel{
        text-align: left;
  }
  .access__area .tel__block{
    justify-content: flex-start;
    margin-left: 55px;
  }
  .access__area .tel__small{
    text-align: left;
    margin-left: 55px;
    font-size: 1.2rem;
        letter-spacing: 0;
  }
  .access__description{
    margin: 0 0 2rem 0;
  }

  /*
  Contact
  ----------------------------------------------- */
  .contact__tel,
  .contact__mail{
    width: calc(100% - 120px);
  }
  .contact__area .tel__no{
    font-size: 2.5rem;
  }
  .contact__area .tel__small{
    font-size: 1.2rem;
    letter-spacing: 0;
  }

  /*
  Footer
  ----------------------------------------------- */
  .footer__logo{
    width: 50%;
  }
}

/*------------------------------------------------------------------------------------------------------- */
@media screen and (max-width: 768px){
  .show--pc{
    display: none;
  }
  .show--tb{
    display: none;
  }
  .show--sp{
    display: block;
  }

  /*
    Default Style
  ----------------------------------------------- */
  a[href^="tel:"] {
  pointer-events: auto;
  }
  h2{
    font-size: 2rem;
  }
  h3{
    font-size: 1.8rem;
  }

  /*
    Header
  ----------------------------------------------- */
  .header__title{
    min-width: auto;
    width: 100vw;
  }
  .header__logo{
    left: 2rem;
    position: absolute;
    width: 150px;
    margin-left: 0;
  }
  .header__btn{
    display: none;
  }
  .header__tel{
    display: none;
  }
  .header__tel__sp{
    background-color: #e879a9;
    position: absolute;
    right: 70px;
    width: 70px;
    height: 70px;
  }
  .header__tel__sp a{
    width: 100%;
    height: 100%;
  }
  .header__tel__sp__no:before{
    color: #fff;
    content: "\f879";
    display: inline-block;
    font-size: 2rem;
    transform: scaleX(-1);
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}
  .header__tel__sp__no{
    color: #fff;
    font-size: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
  }
  .header__ham__li{
    font-size: 1.3rem;
  }

  /*
    MV
  ----------------------------------------------- */
  .hero{
    margin-bottom: 2rem;
  }
  .hero__title{
    width: calc(100% - 80px);
    line-height: 1;
  }
  .hero__title__main{
    font-size: 2.2rem;
    letter-spacing: -1px;

    padding: 0;
  }
  .hero__title__sub{
    font-size: 1.6rem;
    letter-spacing: .5px;
    padding: 0;
  }
  .hero__img{
    height: 30vh;
    object-fit: cover;
  }

  /*
    Problem
  ----------------------------------------------- */
  #problem{
    background-image: url(../img/problem_sp.png);
    background-repeat: no-repeat;
    background-size: contain;
    padding-top: 2rem;
    margin-bottom: 8rem;
  }
  .problem__title{
    margin-bottom: 5rem;
  }
  .problem__lead,
  .problem__center{
    margin: 0 auto;
    width: calc(100% - 80px);
  }
  .problem__center{
    text-align: left;
  }
  .problem__lead{
    font-size: 1.2rem;
    margin-bottom: 1rem;
  }
  .problem__lead::before,
  .problem__lead::after{
    height: 1.2rem;
  }
  .problem__lead::before{
    margin-right: 1rem;
  }
  .problem__lead::after{
    margin-left: 1rem;
  }
  .problem__text{
    font-size: 1.8rem;
  }

  /*
    Step
  ----------------------------------------------- */
  #step{
    margin-bottom: 3rem;
  }
  .step__bg{
    padding: 2rem .5rem;
  }
  .step__area{
    padding: .5rem 0;
  }
  .step__block{
    margin: .2rem;
    padding: 1rem .5rem .5rem .5rem;
    width: calc(50% - .5rem);
  }
  .step__block__title{
    font-size: 1.6rem;
  }
  .step__text__sentence{
    font-size: 1rem;
    line-height: 1.4rem;
    margin: 0;
  }
  .step__text__caption{
    font-size: 1.8rem;
    margin: 0 0 .5rem 0;
  }
  .step__img{
    width: 70%;
  }

  /*
    About
  ----------------------------------------------- */
  .about__title{
    margin-bottom: 3rem;
  }
  .about__bg{
    background: none;
  }
  .about__area{
    width: calc(100% - 40px);
    padding: 0;
  }
  .about__block{
    margin: 0 .5rem 3rem 0;
    padding: .5rem 0;
  }
  .about__img{
    max-width: 100px;
    min-width: 80px;
  }
  .about__text{
    font-size: 1.2rem;
  }

  /*
    News
  ----------------------------------------------- */
  .news__area{
    flex-direction: column;
    width: calc(100% - 40px);
  }
  .news__posts{
    margin-bottom: 2rem;
    width: 100%;
    font-size: 1.4rem;
  }
  .news__post{
    line-height: 1.8rem;
  }
  .news__user{
    width: 100%;
  }

  /*
    Feature
  ----------------------------------------------- */
  #feature{
    margin-bottom: 6rem;
  }
  .feature__title{
    margin-bottom: 2rem;
  }
  .feature__bk{
    background: none;
  }
  .feature__area{
    width: calc(100% - 40px);
  }
  .feature__block{
    flex-direction: column;
    margin-bottom: 3rem;
  }
  .feature__block__title{
    margin: 0;
  }
  .feature__block__sentence{
    box-sizing: border-box;
    width: 100%;
  }
  .feature__block__img{
    width: 100%;
    margin: 0;
  }
  .feature__block__img__img{
    margin-bottom: 1rem;
  }

  /*
    Gallery
  ----------------------------------------------- */
  #gallery{
    padding: 4rem 0;
    margin-bottom: 5rem;
  }
  .gallery__title{
    margin-bottom: 2rem;
  }
  .gallery__area{
    width: calc(100% - 40px);
  }
  .gallery__link{
    width: calc(100% / 2 - 10px);
  }
  .gallery__img{
    margin: .3rem;
  }
  .feature__block .feature__block__sentence{
    order: 2;
  }
  .feature__block__img{
    order: 1;
  }

  /*
    Staff
  ----------------------------------------------- */
  #staff{
    margin-bottom: 5rem;
  }
  .staff__title{
    margin-bottom: 1rem;
  }
  .staff__area{
    width: calc(100% - 40px);
  }
  .staff__block{
    flex-direction: column;
    margin: 0 auto;
    width: 90%;
  }
  .staff__block__license{
    font-size: 1.4rem;
  }
  .staff__sentence{
    font-size: 1.4rem;
  }
  .staff__block__title{
    font-size: 1.8rem;
  }
  .staff__block__img{
    margin-bottom: 1rem;
    width: 100%;
  }

  /*
    Access
  ----------------------------------------------- */
  #access{
    margin-bottom: 8rem;
  }
  .access__title{
    margin-bottom: 2rem;
  }
  .access__area{
    display: block;
    width: calc(100% - 60px);
  }
  .access__map{
    margin: 0 0 2rem 0;
    width: 100%;
    height: 40vh;
  }
  .access__tel{
    text-align: center;
  }
  .access__text__title{
    text-align: center;
  }
  .access__text{
    width: 100%;
    display: block;
  }
  .access__area .tel__block{
    margin: 0;
    justify-content: center;
  }
  .access__area .tel__no{
    display: flex;
    flex-direction: column;
    font-size: 2.5rem;
  }
  .access__area .tel__no:before{
    height: 40px;
    width: 40px;
    margin: 0 0 0.5rem 0;
    position: relative;
    left: calc(50% - 20px);
  }
  .access__area .tel__no:after{
    font-size: 2rem;
    position: absolute;
    top: 10px;
    left: calc(50% - 10px);
    margin: 0;
  }
  .access__area .tel__small{
    text-align: center;
    margin: 0;
  }
  .access__description{
    margin-bottom: 4rem;
  }
  .access__description__text{
    font-size: 1.4rem;
  }

  /*
    Contact
  ----------------------------------------------- */
  .contact__title{
    margin-bottom: 3rem;
  }
  .contact__area{
    padding: 3rem 2rem 100px 2rem;
  }
  .contact__tel,
  .contact__mail{
    padding: 2rem 1rem;
    width: auto;
  }
  .contact__tel__title,
  .contact__mail__title{
  }
  .contact__table th,
  .contact__table td{
    border-bottom: none;
    box-sizing: border-box;
    display: block;
    width: 100%;
  }
  .contact__table th{
    font-size: 1.4rem;
  }
  .contact__table input,
  .contact__table textarea{
    font-size: 1.4rem;
  }
  .contact__table tr:last-child td{
    border-bottom: 1px solid #d7d7d7;
  }

  /*
    Footer
  ----------------------------------------------- */
  #footer{
    padding-top: 1rem;
  }
  .wave--bg{
    margin-top: -100px;
  }
  .footer__logo{
    margin-bottom: 1rem;
    width: 80%;
    min-width: 250px;
  }
  .footer__small{
    font-size: 1rem;
  }
}

/*
  20221228追加
----------------------------------------------- */

.info__text::after{
  content: url(../img/pdf.svg);
  display: inline-block;
  height: 2.4rem;
  margin-left: .5rem;
  vertical-align: middle;
  width: 2.4rem;
}