/*-------------------------------------------------------------------

	MV

-------------------------------------------------------------------*/
.mv {
  background: white url(../img/mv_back.jpg) no-repeat center top;
  background-size: 100% auto;
  margin: 0 auto;
  max-width: 640px;
  height: calc(1158 / 750 * 100vw);
  max-height: calc(640px * (1158 / 750));
  overflow: hidden; }
  .mv_inner {
    position: relative;
    padding: 1.5rem 1.5rem 0; }
  .mv_logo {
    display: block;
    width: 20.6rem;
    margin-bottom: 2.6rem; }
    .mv_logo a {
      display: block;
      text-decoration: none; }
  .mv_text {
    width: calc(59.7rem / 2);
    height: calc(51rem / 2);
    background: url("../img/mv_obj1_1.png") no-repeat left top;
    background-size: contain;
    margin-bottom: 4.2rem; }
  .mv_product {
    width: calc(46.5rem / 2);
    margin: 0 -1.5rem 0 auto; }
  .mv_doctor {
    position: absolute;
    bottom: 0;
    left: .6rem;
    width: calc(35.2rem / 2); }

/*-------------------------------------------------------------------

	common

-------------------------------------------------------------------*/
#loading {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  background-color: #96e3e3;
  transition: all 1s;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  /* anime */ }
  #loading.loaded {
    opacity: 0;
    visibility: hidden; }
  #loading .loader,
  #loading .loader:before,
  #loading .loader:after {
    border-radius: 50%;
    width: 10px;
    height: 10px;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
    -webkit-animation: load7 1.8s infinite ease-in-out;
    animation: load7 1.8s infinite ease-in-out; }
  #loading .loader {
    color: #ffffff;
    font-size: 10px;
    margin: 80px auto;
    position: relative;
    text-indent: -9999em;
    -webkit-transform: translateZ(0);
    -ms-transform: translateZ(0);
    transform: translateZ(0);
    -webkit-animation-delay: -0.16s;
    animation-delay: -0.16s; }
  #loading .loader:before,
  #loading .loader:after {
    content: '';
    position: absolute;
    top: 0; }
  #loading .loader:before {
    left: -3.5em;
    -webkit-animation-delay: -0.32s;
    animation-delay: -0.32s; }
  #loading .loader:after {
    left: 3.5em; }
@-webkit-keyframes load7 {
  0%,
    80%,
    100% {
    box-shadow: 0 2.5em 0 -1.3em; }
  40% {
    box-shadow: 0 2.5em 0 0; } }
@keyframes load7 {
  0%,
    80%,
    100% {
    box-shadow: 0 2.5em 0 -1.3em; }
  40% {
    box-shadow: 0 2.5em 0 0; } }
.contents-w {
  max-width: 640px;
  margin: 0 auto;
  overflow: hidden; }

.p-basic-section {
  padding: 4.2rem 1.5rem 4rem; }
  .p-basic-section > :last-child {
    margin-bottom: 0; }

.p-basic-title {
  margin-bottom: 5rem;
  text-align: center;
  line-height: 1.3; }
  .p-basic-title .en {
    display: block;
    font-family: "optima", serif;
    font-size: 5rem;
    line-height: 1;
    font-weight: 400;
    margin-bottom: .3em;
    letter-spacing: .04em; }
  .p-basic-title .jp {
    display: block;
    margin-bottom: 0;
    font-size: 1.4rem;
    font-weight: 600;
    letter-spacing: .04em; }

.p-sub-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.8rem;
  text-align: center;
  margin-bottom: 1em;
  letter-spacing: .08em;
  font-feature-settings: "palt"; }

.p-sub-title2 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  margin-bottom: 1em;
  border-left: 2px solid #90d1bf;
  padding: .5em 0 .5em .8em;
  letter-spacing: .08em;
  font-feature-settings: "palt"; }

.p-button-close {
  text-align: center; }
  .p-button-close a {
    display: inline-block;
    padding: 1em;
    background-color: #121212;
    color: #FFF;
    text-decoration: none;
    border-radius: 4px; }

.lower-header {
  padding: 1em; }
  .lower-header img {
    display: block;
    margin: 0 auto;
    width: 18rem; }

/* slider */
.swiper-pagination-bullets {
  position: static;
  margin-top: 1rem; }

.swiper-pagination-bullet {
  margin: 0 .5rem !important;
  width: 1.3rem;
  height: 1.3rem;
  background: #cccccc;
  opacity: 1; }

.swiper-pagination-bullet-active {
  background: #ff6276; }

.arc_title {
  width: 20rem;
  margin: 0 auto 3rem; }
  .arc_title--concept {
    width: 19.7rem; }
  .arc_title--voice {
    width: 24.6rem; }
  .arc_title--lineup {
    width: 19.1rem; }
  .arc_title--produced {
    width: 21.3rem; }
  .arc_title--case {
    width: 23.2rem; }

.first-cost {
  text-align: center; }
  .first-cost span {
    display: inline-block;
    font-size: 1.7rem;
    line-height: 1.3;
    font-weight: 600;
    padding: 1em 1.5em;
    border: 1px solid #121212;
    background-color: white; }
    .first-cost span small {
      font-size: 1.5rem; }

/*-------------------------------------------------------------------

	intro-button

-------------------------------------------------------------------*/
.intro-button {
  padding: 1rem 1.5rem 4rem; }
  .intro-button_caption {
    font-size: .8rem;
    line-height: 1.5;
    text-align: center; }
  .intro-button_button {
    width: 27rem;
    margin: 0 auto; }

/*-------------------------------------------------------------------

	about

-------------------------------------------------------------------*/
.about {
  background: #f1f2fb url("../img/about_back.png") no-repeat center top;
  background-size: 100% auto; }
  .about_inner {
    position: relative;
    padding: 1rem 1.5rem 4rem; }
    .about_inner > :last-child {
      margin-bottom: 0; }
  .about_title {
    width: 11.3rem;
    margin: 0 1.3rem 4rem auto; }
  .about_list {
    margin-bottom: 1.5rem; }
    .about_list-f {
      position: relative;
      z-index: 1;
      display: block; }
    .about_list--f1 {
      width: 18rem;
      margin: 0 -.8rem -4.7rem auto; }
    .about_list--f2 {
      width: 19.75rem;
      margin: 0 auto -2.6rem -.8rem; }
    .about_list--f3 {
      width: 12.6rem;
      margin: 0 -.8rem -4rem auto; }
    .about_list--f4 {
      width: 18rem;
      margin: 0 auto -2.7rem -.8rem; }
    .about_list-box {
      position: relative;
      background-color: white;
      border-radius: 1rem;
      padding: 3rem 2.5rem 2.5rem;
      box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.1); }
      .about_list-box--b1 {
        padding: 6.5rem 2.5rem 2.5rem 10.3rem; }
    .about_list-title {
      position: relative;
      z-index: 1;
      font-size: 2.5rem;
      font-weight: 600;
      line-height: 1.4;
      font-family: "Noto Serif JP", serif;
      letter-spacing: .03em;
      margin-bottom: 1rem; }
      .about_list-title small {
        font-size: 1.6rem; }
      .about_list-title span {
        display: block; }
    .about_list-point {
      position: relative;
      z-index: 1;
      display: flex;
      flex-wrap: wrap; }
      .about_list-point li {
        background-color: #b2e8e6;
        font-size: 1.3rem;
        line-height: 1.2;
        font-weight: 600;
        padding: .5em .8em;
        margin: 0 .8rem .8rem 0;
        border-radius: .3rem; }
    .about_list-text {
      position: relative;
      z-index: 1;
      font-size: 1.5rem;
      font-weight: 600;
      line-height: 1.5;
      font-family: "Noto Serif JP", serif;
      letter-spacing: .03em;
      margin-bottom: 0; }
    .about_list-photo1 {
      position: absolute;
      top: -2rem;
      left: -1.5rem;
      width: 22.2rem; }

.about_list.l .about_list-box, .about_list.r .about_list-box {
  display: flex; }
.about_list.l .about_list-item, .about_list.r .about_list-item {
  flex: 1; }
.about_list.l .about_list-illust, .about_list.r .about_list-illust {
  width: 10rem; }

.about_list.l .about_list-item {
  order: 1; }
.about_list.l .about_list-illust {
  order: 2;
  margin-left: 2.5rem; }

.about_list.r .about_list-item {
  order: 2; }
.about_list.r .about_list-illust {
  order: 1;
  margin-right: 2.5rem; }

/*-------------------------------------------------------------------

	step

-------------------------------------------------------------------*/
.step {
  background: url("../img/step_top.png") no-repeat center top;
  background-size: 100% auto; }
  .step_inner {
    padding: 7.6rem 1.5rem 2rem; }
    .step_inner > :last-child {
      margin-bottom: 0; }
  .step_title {
    position: relative;
    width: 30.3rem;
    margin: 0 auto;
    z-index: 1; }
  .step_photo {
    margin: -1rem -1.5rem 2.6rem; }
  .step_slide-title {
    position: relative;
    z-index: 2;
    text-align: center;
    margin-bottom: -2rem; }
    .step_slide-title span {
      padding: .8em 1.6em;
      display: inline-block;
      background-color: #03b6af;
      color: white;
      font-size: 1.5rem;
      line-height: 1.2;
      font-weight: 600;
      font-family: "Noto Serif JP", serif;
      text-align: center;
      border-radius: .5rem; }
  .step_slide-outer {
    background: #4eccc7 url("../img/step_slide_back.png") no-repeat center top;
    background-size: 100% auto;
    border-radius: .5rem;
    border: 1px solid #03b6af;
    padding: .4rem; }
  .step_slide-inner {
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: .3rem;
    padding: 2.9rem 2.4rem 2rem;
    color: white; }
    .step_slide-inner .step_slide-sw-num {
      text-align: center;
      margin-bottom: 2rem; }
      .step_slide-inner .step_slide-sw-num span {
        display: inline-block;
        background-color: white;
        padding: .3em 1.5em;
        border-radius: 100px;
        color: #03b6af;
        font-family: "Times New Roman", Times, "serif";
        font-size: 1.5rem;
        line-height: 1.2; }
        .step_slide-inner .step_slide-sw-num span i {
          font-style: normal;
          font-size: 3.5rem; }
    .step_slide-inner .step_slide-sw-title {
      font-size: 2.5rem;
      font-weight: 600;
      line-height: 1.5;
      text-align: center;
      margin-bottom: 1rem; }
      .step_slide-inner .step_slide-sw-title > small {
        font-size: .6em; }
    .step_slide-inner .step_slide-sw-text {
      font-size: 1.5rem;
      line-height: 1.5; }
    .step_slide-inner .swiper--wrapper {
      align-items: stretch !important; }
    .step_slide-inner .swiper-slide {
      width: 100%;
      height: auto; }

.swiper-pagination, .swiper2-pagination, .swiper3-pagination, .swiper4-pagination {
  display: flex;
  justify-content: center; }

.swiper-pagination .swiper-pagination-bullet {
  margin: 0 1rem !important;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 2.5rem;
  height: 2.5rem;
  font-size: 1.3rem;
  line-height: 1;
  font-weight: 600;
  color: white; }

/*-------------------------------------------------------------------

	concept

-------------------------------------------------------------------*/
.concept {
  background: url("../img/concept_back.png") no-repeat center 28.5rem;
  background-size: 96% auto; }
  .concept_inner {
    padding: 4rem 1.5rem 2.5rem; }
  .concept_lead {
    font-size: 1.5rem;
    text-align: center;
    font-weight: 600; }
  .concept_text {
    font-size: 1.3rem;
    text-align: center;
    font-weight: 600;
    margin-bottom: 5rem; }
    .concept_text-serif {
      font-size: 2.5rem;
      line-height: 1.6;
      font-family: "Noto Serif JP", serif; }
  .concept_item {
    margin-bottom: 5rem; }
    .concept_item-title {
      position: relative;
      font-family: "Noto Serif JP", serif;
      font-size: 1.8rem;
      line-height: 1.5;
      text-align: center;
      padding: 2.4rem .5rem 1rem;
      border: 2px solid #e4cbce;
      border-bottom: none;
      border-radius: 1rem 1rem 0 0; }
      .concept_item-title .t {
        line-height: 1.6; }
      .concept_item-title .ico {
        position: absolute;
        top: -3.4rem;
        display: block;
        width: 8rem; }
      .concept_item-title .ico.l {
        left: -1.2rem; }
      .concept_item-title .ico.r {
        right: -1.2rem;
        transform: rotate(15deg); }
    .concept_item-article {
      font-size: 1.3rem; }
    .concept_item-article.l {
      border-left: 2px solid #e4cbce;
      padding: 2rem 0 1rem 2rem; }
    .concept_item-article.r {
      border-right: 2px solid #e4cbce;
      padding: 2rem 2rem 1rem 0; }
    .concept_item-text figure {
      width: 15rem; }
    .concept_item-text::after {
      content: "";
      display: block;
      clear: both; }
    .concept_item-text + .concept_item-text {
      margin-top: 3rem; }
    .concept_item-text.l figure {
      float: left;
      margin: 0 1.3em .5em 0; }
    .concept_item-text.r figure {
      float: right;
      margin: 0 0 .5em 1.3em; }
    .concept_item-term {
      background-color: #f9f4f5;
      padding: 3rem 2rem 2rem;
      border-radius: .5rem; }
      .concept_item-term-title {
        font-size: 1.7rem;
        line-height: 1.5;
        font-weight: 600;
        text-align: center;
        color: #03b6af;
        margin-bottom: 1em; }
        .concept_item-term-title i {
          display: inline-block;
          width: 3.5rem;
          margin-right: .5em;
          vertical-align: .2em; }
      .concept_item-term-subtitle {
        font-size: 1.4rem;
        line-height: 1.5;
        font-weight: 600;
        text-align: center;
        color: #03b6af;
        margin-bottom: 1em; }
      .concept_item-term-merit {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between; }
        .concept_item-term-merit li {
          width: calc(274 / 568 * 100%);
          margin-bottom: 1rem;
          background-color: #afe1e0;
          text-align: center;
          padding: 1em;
          font-size: 1.3rem;
          line-height: 1.5;
          font-weight: 600;
          border-radius: .3rem; }
  .concept_item:last-child {
    margin-bottom: 0; }

/*-------------------------------------------------------------------

	that is

-------------------------------------------------------------------*/
.that {
  background-color: #e9f0f2;
  background-image: url("../img/that_back.png"), url("../img/that_img.jpg");
  background-repeat: no-repeat, no-repeat;
  background-position: center top, center top;
  background-size: 100% auto, 100% auto; }
  .that_inner {
    padding: 6rem 1.5rem 4rem; }
  .that_title {
    margin-bottom: 25rem; }
  .that_acc {
    background-color: white;
    border: 1px solid #121212;
    border-radius: .5rem; }
    .that_acc_title {
      position: relative;
      padding: 2rem;
      font-size: 1.3rem;
      line-height: 1.5;
      font-weight: bold;
      text-align: center; }
      .that_acc_title .ico {
        position: absolute;
        display: block;
        top: 50%;
        right: 2rem;
        transform: translateY(-50%);
        content: "\f107";
        font-family: "Font Awesome 5 Free";
        font-weight: 900;
        font-size: 2rem;
        transition: all .2s ease-out; }
        .that_acc_title .ico.is-close {
          transform: translateY(-50%) rotate(180deg); }
    .that_acc_text {
      display: none;
      padding: 0 2rem 3rem;
      font-size: 1.2rem; }

/*-------------------------------------------------------------------

	voice

-------------------------------------------------------------------*/
.voice_inner {
  background-color: #fff9ec;
  padding: 4rem 1.5rem 5rem; }
.voice_slide {
  margin-left: -1.5rem;
  margin-right: -1.5rem; }
  .voice_slide_item {
    background-color: white;
    box-shadow: 4px 4px 0 0 #f3e1bb;
    padding: 3rem 1.5rem;
    font-size: 1.3rem; }
    .voice_slide_item::after {
      content: "";
      display: block;
      clear: both; }
    .voice_slide_item > :last-child {
      margin-bottom: 0; }
  .voice_slide_title {
    font-size: 1.4rem;
    line-height: 1.5;
    text-align: center;
    margin-bottom: 1em; }
  .voice_slide_photo {
    width: 12.5rem;
    float: right;
    margin: 0 0 1rem 1.5rem; }
    .voice_slide_photo figcaption {
      display: block;
      padding-top: .5em;
      font-size: 1rem;
      line-height: 1.5; }
  .voice_slide .swiper-slide {
    width: 100%;
    height: auto; }
  .voice_slide .swiper-wrapper {
    align-items: stretch !important;
    padding-bottom: 2rem; }

.swiper2-pagination {
  margin-bottom: 4rem; }

.swiper2-pagination .swiper-pagination-bullet {
  margin: 0 1rem !important;
  width: 1.2rem;
  height: 1.2rem; }

/*-------------------------------------------------------------------

	line up

-------------------------------------------------------------------*/
.lineup_inner {
  padding: 4rem 1.5rem 5rem; }
.lineup_lead {
  font-size: 1.5rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 2rem; }

/*-------------------------------------------------------------------

	program

-------------------------------------------------------------------*/
.program_title {
  position: relative;
  z-index: 1;
  text-align: center;
  margin-bottom: -5rem; }
  .program_title > span {
    position: relative;
    display: inline-block;
    font-size: 2rem;
    line-height: 1.5;
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    border-radius: 1rem;
    padding: .8em 2em;
    border: 2px solid #121212;
    background-color: white; }
    .program_title > span::after {
      position: absolute;
      content: "";
      display: block;
      width: 1.6rem;
      height: 1.6rem;
      border: 2px solid #121212;
      border-left: none;
      border-top: none;
      bottom: -1.6rem;
      left: 50%;
      transform: rotate(45deg) translateX(-50%);
      background-color: white; }
.program_chart {
  margin: 0 auto 4rem; }
.program_inner {
  background: url("../img/program_back.jpg") repeat-y center top;
  background-size: 100% auto;
  padding: 8rem 1.5rem 5rem; }
.program_lineup {
  margin: 0 2rem 6rem; }
  .program_lineup_title {
    font-size: 2.7rem;
    line-height: 1.5;
    margin-bottom: .6em;
    font-family: "Noto Serif JP", serif;
    font-weight: 600; }
    .program_lineup_title::before {
      content: "";
      display: block;
      width: 6rem;
      height: .2rem;
      background-color: #121212;
      margin: 0 auto 2.5rem -2rem; }
    .program_lineup_title small {
      font-size: .5555em; }
    .program_lineup_title.middle {
      font-size: 2rem; }
  .program_lineup_subtitle {
    position: relative;
    font-size: 1.6rem;
    line-height: 1.5;
    font-family: "Noto Serif JP", serif;
    margin-bottom: 1rem;
    padding-left: 2.8rem; }
    .program_lineup_subtitle::before {
      position: absolute;
      top: 50%;
      left: 0;
      content: "";
      display: block;
      width: 2rem;
      height: .1rem;
      background-color: #121212; }
  .program_lineup_item {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: white;
    box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.1);
    padding: 2rem; }
    .program_lineup_item-text {
      flex: 1; }
      .program_lineup_item-text > :last-child {
        margin-bottom: 0; }
    .program_lineup_item-name {
      line-height: 1.5;
      margin-bottom: 1rem; }
    .program_lineup_item-list li {
      font-size: 1.1rem;
      line-height: 1.4;
      padding-bottom: .3em; }
    .program_lineup_item-img {
      width: 10rem;
      margin-left: 1rem; }
.program_sublineup {
  margin-bottom: 3rem; }
.program_arrow {
  margin: 0 -1.5rem 2rem; }
.program_presc {
  position: relative;
  z-index: 1;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  font-size: 2.7rem;
  line-height: 1.5;
  font-weight: 600;
  margin-bottom: -3.5rem; }
  .program_presc small {
    display: block;
    font-size: 1.5rem;
    margin-bottom: .3em; }
  .program_presc_img {
    margin: 0 -1.5rem 1rem; }
.program_slide {
  margin-left: -1.5rem;
  margin-right: -1.5rem; }
  .program_slide_head {
    position: relative;
    z-index: 5;
    width: 16.5rem;
    margin-bottom: -2rem; }
  .program_slide_item {
    background-color: white;
    box-shadow: 4px 4px 0 0 rgba(0, 0, 0, 0.05);
    padding: 3rem 1.5rem 2.5rem;
    font-size: 1.3rem;
    border: 1px solid #121212; }
    .program_slide_item > :last-child {
      margin-bottom: 0; }
  .program_slide_title {
    font-size: 2rem;
    line-height: 1.5;
    text-align: center;
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    margin-bottom: .5em; }
    .program_slide_title small {
      display: block;
      font-size: .75em; }
  .program_slide_photo {
    width: 19rem;
    margin: 0 auto .8rem; }
  .program_slide_list {
    margin-bottom: 1.5em; }
    .program_slide_list li {
      padding-bottom: .3em; }
      .program_slide_list li span {
        display: inline-block;
        margin-left: .5em;
        background-color: #d7adb1;
        color: white;
        font-size: 1rem;
        padding: .3em .6em;
        border-radius: .5em; }
  .program_slide_price {
    text-align: right;
    font-size: 1.3rem;
    line-height: 1.5;
    font-weight: 500; }
    .program_slide_price .name {
      display: block;
      text-align: left;
      font-weight: 600; }
    .program_slide_price .num {
      font-size: 2.2rem; }
    .program_slide_price .tax {
      font-size: 1rem; }
  .program_slide .swiper-slide {
    width: 100%;
    height: auto; }
  .program_slide .swiper-wrapper {
    align-items: stretch !important;
    padding-bottom: 2rem; }

.swiper3-pagination {
  margin-bottom: 4rem; }

.swiper3-pagination .swiper-pagination-bullet {
  margin: 0 1rem !important;
  width: 1.2rem;
  height: 1.2rem; }

/*-------------------------------------------------------------------

	online

-------------------------------------------------------------------*/
.online_inner {
  padding: 6rem 1.5rem 0; }
  .online_inner > :last-child {
    margin-bottom: 0; }
.online_title {
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 3rem; }
  .online_title small {
    display: block;
    font-size: 1.7rem; }
  .online_title img {
    display: block;
    width: 30.3rem;
    margin: auto; }
.online_img {
  position: relative;
  z-index: 1;
  margin: 0 -1.5rem auto; }
.online_flow {
  background-color: #f2ffff;
  margin: -3rem -1.5rem 0;
  padding: 5rem 1.5rem 4rem; }
  .online_flow_title {
    text-align: center;
    font-family: "Noto Serif JP", serif;
    font-size: 2.5rem;
    line-height: 1.5;
    font-weight: 600;
    margin-bottom: 1rem; }
    .online_flow_title small {
      display: block;
      font-size: 1.5rem; }
      .online_flow_title small i {
        display: inline-block;
        margin-right: .5em;
        width: 3rem;
        vertical-align: -.6rem; }
  .online_flow_item {
    padding: 1rem 2.5rem 2.5rem;
    background-color: white;
    border: 2px solid #b3e9e7; }
    .online_flow_item_title {
      color: #03b6af;
      font-family: "Times New Roman", Times, "serif", "Noto Serif JP", serif;
      font-size: 2rem;
      line-height: 1.5;
      margin-bottom: .8rem; }
      .online_flow_item_title .num {
        font-size: 1.7rem;
        font-weight: 400;
        margin-right: 1.5rem; }
        .online_flow_item_title .num i {
          font-size: 4.1rem;
          font-style: normal; }
    .online_flow_item_flex {
      display: flex; }
      .online_flow_item_flex > figure {
        width: 11.1rem;
        margin-right: 2rem; }
      .online_flow_item_flex > div {
        flex: 1; }
        .online_flow_item_flex > div .caption {
          font-size: .8em;
          display: block; }
  .online_flow_item + .online_flow_item {
    margin-top: -2px; }
  .online_flow_item + .first-cost {
    margin-top: 2.5rem; }

/*-------------------------------------------------------------------

	produced

-------------------------------------------------------------------*/
.produced_inner {
  padding: 4rem 1.5rem; }
.produced_name {
  font-size: 1.8rem;
  line-height: 1.5;
  font-family: "Noto Serif JP", serif;
  font-weight: 600;
  text-align: center;
  margin-bottom: 1.5em; }
.produced_img {
  width: 30rem;
  margin: 0 auto 0 0; }
.produced_text {
  position: relative;
  z-index: 1;
  width: 30rem;
  padding: 2.5rem;
  margin: -2.5rem 0 3.5rem auto;
  background-color: white;
  box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.1);
  font-size: 1.3rem; }
  .produced_text > :last-child {
    margin-bottom: 0; }
.produced_google {
  text-align: center;
  font-size: 1.4rem;
  font-weight: 600; }
  .produced_google img {
    display: inline-block;
    width: 8.1rem;
    margin-right: .3em; }
  .produced_google-star {
    width: 28.9rem;
    margin: 0 auto 1em; }
  .produced_google-text {
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center; }

/*-------------------------------------------------------------------

	doctor

-------------------------------------------------------------------*/
.doctor {
  background-color: #fbfbec; }
  .doctor_inner {
    padding: 5rem 1.5rem; }
    .doctor_inner > :last-child {
      margin-bottom: 0; }
  .doctor_title {
    font-family: "Noto Serif JP", serif;
    font-size: 1.9rem;
    line-height: 1.5;
    text-align: center;
    margin-bottom: 1.4em; }
    .doctor_title > small {
      display: block;
      font-size: .79em;
      margin-bottom: .3em; }
  .doctor_item {
    box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.1);
    padding: 2.5rem 1.5rem 3rem;
    background-color: white; }
    .doctor_item_title {
      text-align: center;
      color: #967648;
      font-family: "Noto Serif JP", serif;
      font-size: 1.4rem;
      line-height: 1.5;
      font-weight: 500;
      margin-bottom: 1em; }
    .doctor_item_flex {
      display: flex;
      margin-bottom: 3rem; }
    .doctor_item_photo {
      width: 13rem;
      margin-right: 2rem; }
      .doctor_item_photo figcaption {
        display: block;
        padding-top: .5em;
        font-size: 1.3rem;
        line-height: 1.5; }
        .doctor_item_photo figcaption > small {
          display: block;
          font-size: .846em;
          margin-bottom: .3em; }
    .doctor_item_text {
      flex: 1;
      font-size: 1.3rem; }
    .doctor_item_banner-title {
      color: #967648;
      text-align: center;
      line-height: 1.5;
      font-weight: 600;
      margin-bottom: .5em; }
    .doctor_item > :last-child {
      margin-bottom: 0; }
  .doctor_item + .doctor_item {
    margin-top: 1rem; }

/*-------------------------------------------------------------------

	case

-------------------------------------------------------------------*/
.case_inner {
  padding: 4rem 1.5rem; }
.case_lead {
  font-size: 1.5rem;
  line-height: 1.5;
  text-align: center;
  margin-bottom: 2em; }
.case_slide {
  margin-left: -1.5rem;
  margin-right: -1.5rem; }
  .case_slide_item {
    background-color: white;
    box-shadow: 4px 4px 0 0 rgba(0, 0, 0, 0.05);
    padding: 3rem 1.5rem 2.5rem;
    font-size: 1.2rem;
    border: 1px solid #121212; }
    .case_slide_item > :last-child {
      margin-bottom: 0; }
  .case_slide_title {
    font-size: 1.5rem;
    line-height: 1.5;
    text-align: center;
    font-family: "Noto Serif JP", serif;
    font-weight: 500;
    margin-bottom: 1em; }
  .case_slide_photo {
    margin: 0 auto 1rem; }
    .case_slide_photo figcaption {
      display: block;
      padding-top: .5em;
      text-align: center;
      font-size: 1.3rem;
      line-height: 1.5; }
  .case_slide_list {
    margin-bottom: 1em; }
    .case_slide_list li {
      padding-bottom: .3em; }
      .case_slide_list li span {
        display: inline-block;
        margin-left: .5em;
        background-color: #d7adb1;
        color: white;
        font-size: 1rem;
        padding: .3em .6em;
        border-radius: .5em; }
  .case_slide_price {
    text-align: right;
    font-size: 1.3rem;
    line-height: 1.5;
    font-weight: 500; }
    .case_slide_price .num {
      font-size: 2.2rem; }
    .case_slide_price .tax {
      font-size: 1rem; }
  .case_slide .swiper-slide {
    width: 100%;
    height: auto; }
  .case_slide .swiper-wrapper {
    align-items: stretch !important;
    padding-bottom: 2rem; }

.swiper4-pagination {
  margin-bottom: 4rem; }

.swiper4-pagination .swiper-pagination-bullet {
  margin: 0 1rem !important;
  width: 1.2rem;
  height: 1.2rem; }

/*-------------------------------------------------------------------

	merit

-------------------------------------------------------------------*/
.merit {
  background-color: #dbe9ea; }
  .merit_inner {
    padding: 6rem 1.5rem 1.5rem; }
  .merit_title {
    margin-bottom: 1.5rem;
    text-align: center; }
  .merit_subtitle {
    font-size: 2rem;
    line-height: 1.5;
    text-align: center;
    font-family: "Noto Serif JP", serif;
    font-weight: 600;
    margin-bottom: 5rem; }
  .merit_list {
    display: flex;
    flex-wrap: wrap; }
    .merit_list_item {
      position: relative;
      width: 47.82%;
      margin: 0 0 3.8rem 4.36%;
      padding: 4rem 1.5rem 2rem;
      background-color: white;
      border-radius: .5rem;
      box-shadow: 0.5rem 0.5rem 0 0 rgba(0, 0, 0, 0.05);
      font-size: 1.3rem;
      line-height: 1.6; }
      .merit_list_item:nth-child(2n+1) {
        margin-left: 0; }
      .merit_list_item > :last-child {
        margin-bottom: 0; }
      .merit_list_item .num {
        position: absolute;
        top: -2.2rem;
        left: 0;
        width: 100%;
        text-align: center;
        font-family: "Noto Serif JP", serif;
        font-size: 3rem;
        line-height: 1.5;
        font-weight: 600;
        font-style: normal; }
        .merit_list_item .num::after {
          content: "";
          display: block;
          width: 2.5rem;
          height: .2rem;
          background-color: #d5e2e6;
          margin: 0 auto; }
      .merit_list_item .title {
        font-size: 1.6rem;
        line-height: 1.5;
        text-align: center;
        font-family: "Noto Serif JP", serif;
        margin-bottom: .6em; }

/*-------------------------------------------------------------------

	qa

-------------------------------------------------------------------*/
.qa_inner {
  padding: 6rem 1.5rem 5rem; }
  .qa_inner > :last-child {
    margin-bottom: 0; }
.qa_title {
  color: #03b6af;
  font-size: 2.5rem;
  line-height: 1.5;
  text-align: center;
  font-family: "Noto Serif JP", serif;
  margin-bottom: 1em; }
.qa_subtitle {
  position: relative;
  color: #03b6af;
  font-size: 1.5rem;
  line-height: 1.5;
  font-weight: 600;
  margin-bottom: 1em;
  padding-left: 2.8rem; }
  .qa_subtitle::before {
    position: absolute;
    top: calc(50% - .1rem);
    left: 0;
    content: "";
    display: block;
    width: 1.5rem;
    height: .2rem;
    background-color: #03b6af; }
.qa_list {
  margin-bottom: 5rem; }
  .qa_list-item {
    box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
    background-color: white;
    margin-bottom: 1rem; }
    .qa_list-item dt {
      display: flex;
      align-items: center;
      padding: 1.5rem;
      line-height: 1.5;
      font-weight: 600; }
      .qa_list-item dt span {
        display: block; }
      .qa_list-item dt .q {
        font-size: 1.5rem;
        width: 2em; }
      .qa_list-item dt .text {
        font-size: 1.3rem;
        flex: 1;
        margin-right: .5em; }
      .qa_list-item dt .ico {
        position: relative;
        width: 1.6rem;
        height: 1.6rem;
        margin: 0 0 0 auto; }
        .qa_list-item dt .ico::before, .qa_list-item dt .ico::after {
          content: "";
          display: block;
          position: absolute;
          width: 100%;
          height: 2px;
          background-color: #03b6af;
          transition: all .2s ease-out; }
        .qa_list-item dt .ico::before {
          top: calc(50% - .1rem);
          left: 0; }
        .qa_list-item dt .ico::after {
          top: calc(50% - .1rem);
          left: 0;
          transform: rotate(90deg); }
        .qa_list-item dt .ico.is-close::after {
          transform: rotate(0deg);
          opacity: 0; }
    .qa_list-item dd {
      display: none;
      padding: 0 1.5rem 1.5rem 4.5rem;
      font-size: 1.2rem;
      line-height: 1.6; }

/*-------------------------------------------------------------------

	footer

-------------------------------------------------------------------*/
.footer {
  background-color: #e5f8f7; }
  .footer_inner {
    padding: 4rem 3rem 10rem; }
  .footer_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 5rem; }
    .footer_list li {
      width: 49%;
      margin-bottom: .5rem;
      background-color: white;
      border-radius: .5rem;
      text-align: center; }
      .footer_list li a, .footer_list li span {
        display: block;
        padding: 1rem .5rem;
        text-decoration: none;
        font-size: 1.2rem;
        font-weight: 600;
        line-height: 1.5; }
    .footer_list li.wide {
      width: 100%; }
  .footer_copyright {
    font-size: .9rem;
    line-height: 1.5;
    text-align: center; }

/*-------------------------------------------------------------------

	float

-------------------------------------------------------------------*/
.floatBtn {
  width: 100%;
  position: fixed;
  bottom: -200px;
  left: 0;
  z-index: 8885;
  text-align: center;
  transition: all .3s ease-out; }
  .floatBtn a {
    display: block;
    margin: auto;
    max-width: 630px;
    text-decoration: none; }
  .floatBtn.is-show {
    bottom: -3px; }

/*-------------------------------------------------------------------

	drawer-menu

-------------------------------------------------------------------*/
.body-fixed {
  position: fixed;
  width: 100%;
  height: 100%; }

.drawer-menu_back {
  width: 100%;
  height: 100vh;
  transition: all 0.2s;
  position: fixed;
  display: none;
  top: 0;
  left: 0;
  z-index: 8887;
  background-color: rgba(0, 0, 0, 0.8); }

.drawer-menu {
  display: none;
  width: 100%;
  height: 100vh;
  transition: all 0.2s;
  position: fixed;
  top: 0;
  right: 0;
  z-index: 8888;
  overflow: auto;
  padding: 0; }

.drawer-menu_back.open {
  display: block; }

.drawer-menu.open {
  display: block; }

.drawer-menu_list {
  background-color: #a6fec9;
  padding: 5rem 2rem 4rem;
  width: 100%;
  max-width: 640px;
  margin: auto; }
  .drawer-menu_list > ul {
    margin-bottom: 1.4rem; }
    .drawer-menu_list > ul > li {
      margin-bottom: .5rem; }
      .drawer-menu_list > ul > li > a {
        position: relative;
        display: block;
        padding: 1.4em 3em 1.4em 1.8em;
        text-decoration: none;
        font-size: 1.4rem;
        line-height: 1.2;
        font-weight: 500;
        background-color: white;
        border-radius: .5rem; }
        .drawer-menu_list > ul > li > a::after {
          position: absolute;
          content: "\f105";
          display: block;
          font-family: "Font Awesome 5 Free";
          font-size: 1.2em;
          font-weight: 900;
          top: 50%;
          transform: translateY(-50%);
          right: 1em; }

.drawer-close, .drawer-close-micro {
  display: block;
  border: none;
  cursor: pointer;
  outline: none;
  appearance: none;
  width: 10rem;
  margin: auto;
  padding: 1.2em .2em 1em;
  background-color: #121212;
  color: white;
  font-family: "optima", serif;
  font-size: 1.4rem;
  line-height: 1;
  text-align: center;
  letter-spacing: .09em;
  border-radius: .3rem; }

/*button*/
.ham-menu-block {
  position: fixed;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 9999; }
  .ham-menu-block_inner {
    position: relative;
    max-width: 640px;
    margin: 0 auto;
    padding: 1rem; }

.ham-menu-button {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 3rem;
  height: 2.5rem;
  transition: all 0.2s ease-out;
  cursor: pointer; }
  .ham-menu-button > span {
    display: block;
    position: absolute;
    width: 100%;
    height: .3rem;
    background-color: #121212;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
  .ham-menu-button::before, .ham-menu-button::after {
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    height: .3rem;
    background-color: #121212;
    left: 50%;
    transform: translateX(-50%); }
  .ham-menu-button::before {
    top: 0;
    transition: all 0.2s ease-out; }
  .ham-menu-button::after {
    bottom: 0;
    transition: all 0.2s ease-out; }

.ham-menu-button.is-close > span {
  display: none; }
.ham-menu-button.is-close::before {
  top: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  background-color: #121212; }
.ham-menu-button.is-close::after {
  top: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
  background-color: #121212; }

/*-------------------------------------------------------------------

	modal

-------------------------------------------------------------------*/
.modal_text {
  line-height: 1.8;
  font-weight: 500;
  margin-bottom: 2em; }

.modal_data {
  font-size: 1.3rem;
  line-height: 1.5; }
  .modal_data dt {
    font-weight: 600;
    margin-bottom: .5em; }
  .modal_data dd {
    font-size: 1.2rem;
    margin-bottom: 1em; }
    .modal_data dd > :last-child {
      margin-bottom: 0; }

.modal_contact {
  border: 1px solid #CCC;
  padding: 1.5em;
  font-size: 1.2rem;
  line-height: 1.5; }

/*-------------------------------------------------------------------

	effect

-------------------------------------------------------------------*/
.ef-fadein-rise {
  opacity: 0;
  /*transition: .8s;*/
  animation-duration: .8s;
  animation-fill-mode: both; }

.ef-fadein-rise.on {
  opacity: 1.0;
  -webkit-animation-name: ef-rize;
  animation-name: ef-rize; }

.ef-fadein-down {
  opacity: 0;
  transition: .8s;
  transform: translate(0, -60px); }

.ef-fadein-down.on {
  opacity: 1.0;
  transform: translate(0, 0); }

.ef-fadein-slide-l {
  opacity: 0;
  transition: .8s;
  transform: translate(60px, 0); }

.ef-fadein-slide-l.on {
  opacity: 1.0;
  transform: translate(0, 0); }

.ef-fadein-slide-r {
  opacity: 0;
  transition: .8s;
  transform: translate(-60px, 0); }

.ef-fadein-slide-r.on {
  opacity: 1.0;
  transform: translate(0, 0); }

.ef-spin3d {
  transition: .8s;
  transform: rotateY(0deg); }

.ef-spin3d.on {
  transform: rotateY(360deg); }

.ef-zoomup {
  transform: scale(0, 0); }

.ef-zoomup.on {
  transform: scale(1, 1); }

.ef-blur {
  opacity: 0;
  transition: 1.5s cubic-bezier(0.65, 0.01, 0.46, 0.99);
  animation-duration: 2s;
  animation-fill-mode: both; }

.ef-blur.on {
  -webkit-animation-name: ef-blur;
  animation-name: ef-blur;
  opacity: 1; }

.ef-typing {
  /*display: block;*/
  opacity: 0; }

.ef-typing span {
  opacity: 0;
  transition: .6s ease-in-out; }

.ef-binder {
  overflow: hidden;
  position: relative; }

.ef-binder.on {
  height: 100%; }

.ef-binder__media-wrap {
  position: absolute;
  overflow: hidden; }

.ef-binder__media {
  position: absolute;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  overflow: hidden; }

.ef-binder__media img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover; }

.ef-binder__media:after {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: #535152;
  transform-origin: 0 0; }

.ef-binder .ef-binder__media {
  opacity: 0;
  transform: scale(1.3); }

.ef-binder.on .ef-binder__media {
  opacity: 1;
  transform: scale(1);
  transition: 3.2s 0.2s cubic-bezier(0.45, 1, 0.2, 1); }

.ef-binder.on .ef-binder__media:after {
  transition: transform 1s 0.1s cubic-bezier(0.45, 1, 0.2, 1), background 3s cubic-bezier(0.45, 1, 0.2, 1);
  transform: scaleY(0); }

/* efection transition */
.animation-delay-01 {
  animation-delay: .1s; }

.animation-delay-02 {
  animation-delay: .2s; }

.animation-delay-03 {
  animation-delay: .3s; }

.animation-delay-04 {
  animation-delay: .4s; }

.animation-delay-05 {
  animation-delay: .5s; }

.animation-delay-06 {
  animation-delay: .6s; }

.animation-delay-07 {
  animation-delay: .7s; }

.animation-delay-08 {
  animation-delay: .8s; }

.animation-delay-09 {
  animation-delay: .9s; }

.animation-delay-10 {
  animation-delay: 1.0s; }

.animation-delay-11 {
  animation-delay: 1.1s; }

.animation-delay-12 {
  animation-delay: 1.2s; }

.animation-delay-13 {
  animation-delay: 1.3s; }

.animation-delay-14 {
  animation-delay: 1.4s; }

.animation-delay-15 {
  animation-delay: 1.5s; }

.animation-delay-16 {
  animation-delay: 1.6s; }

.animation-delay-17 {
  animation-delay: 1.7s; }

.animation-delay-18 {
  animation-delay: 1.8s; }

.animation-delay-19 {
  animation-delay: 1.9s; }

.animation-delay-20 {
  animation-delay: 2.0s; }

.animation-delay-25 {
  animation-delay: 2.5s; }

.animation-delay-30 {
  animation-delay: 3.0s; }

.animation-delay-35 {
  animation-delay: 3.5s; }

.animation-delay-40 {
  animation-delay: 4.0s; }

.animation-duration-10 {
  animation-duration: 1.0s; }

.animation-duration-15 {
  animation-duration: 1.5s; }

.animation-duration-20 {
  animation-duration: 2.0s; }

.animation-duration-30 {
  animation-duration: 3.0s; }

.ef-delay-5 {
  transition-delay: .5s !important; }

.ef-delay-10 {
  transition-delay: 1.0s !important; }

.ef-delay-15 {
  transition-delay: 1.5s !important; }

.ef-delay-20 {
  transition-delay: 2.0s !important; }

.ef-delay-50 {
  transition-delay: 5.0s !important; }

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

	keyframes
	
==========================================================================*/
@-webkit-keyframes ef-rize {
  from {
    opacity: 0;
    transform: translate(0, 60px); }
  to {
    opacity: 1;
    transform: translate(0, 0); } }
@keyframes ef-rize {
  from {
    opacity: 0;
    transform: translate(0, 60px); }
  to {
    opacity: 1;
    transform: translate(0, 0); } }
@-webkit-keyframes ef-blur {
  from {
    opacity: 0;
    -webkit-filter: blur(15px);
    -moz-filter: blur(15px);
    -ms-filter: blur(15px);
    -o-filter: blur(15px);
    filter: blur(15px); }
  to {
    opacity: 1;
    -webkit-filter: blur(0px);
    -moz-filter: blur(0px);
    -ms-filter: blur(0px);
    -o-filter: blur(0px);
    filter: blur(0px); } }
@keyframes ef-blur {
  from {
    opacity: 0;
    -webkit-filter: blur(15px);
    -moz-filter: blur(15px);
    -ms-filter: blur(15px);
    -o-filter: blur(15px);
    filter: blur(15px); }
  to {
    opacity: 1;
    -webkit-filter: blur(0px);
    -moz-filter: blur(0px);
    -ms-filter: blur(0px);
    -o-filter: blur(0px);
    filter: blur(0px); } }
@keyframes ef-binder-down {
  0% {
    height: 0%; }
  50% {
    height: 100%;
    transform: translateY(0); }
  100% {
    transform: translateY(100%); } }
@keyframes ef-binder-up {
  50% {
    transform: translateY(10%); }
  100% {
    transform: translateY(0); } }
@keyframes ef-binder-right {
  0% {
    width: 0%; }
  50% {
    width: 100%;
    transform: translateX(0); }
  100% {
    transform: translateX(100%); } }
@keyframes ef-binder-left {
  50% {
    transform: translateX(100%); }
  100% {
    transform: translateX(0); } }
