:root {
  --width-m: 970px;
  --width-l: 1200px;
  --pad-section: 90px;
  --color-main: #b08951;
  --color-second: #8c8273;
  --color-third: #50413c;
  --font-size-xs: 14px;
  --font-size-s: 18px;
  --font-size-m: 24px;
  --font-size-l: 31px;
  --font-size-xl: 40px;
}

body {
  font-family: "Shippori Mincho", serif;
  font-weight: 400;
  font-style: normal;
  font-size: var(--font-size-m);
  color: var(--color-third);
  padding: 0;
  margin: 0;
}

figure {
  margin: 0;
}

img {
  max-width: 100%;
}

a[href^="tel:"] {
  pointer-events: none;
}

/* 共通 */
@-webkit-keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(30px);
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(30px);
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

section {
  position: relative;
  padding-top: var(--pad-section);
  padding-bottom: var(--pad-section);

  .bgtxt {
    position: absolute;
    font-size: 100px;
    color: rgba(0, 0, 0, 0.1);
    line-height: 1.0;
    z-index: 0;
  }

  .sectioninner {
    max-width: var(--width-m);
    margin-left: auto;
    margin-right: auto;
    opacity: 0;
  }

  .sectioninner.fade-in {
    -webkit-animation: fadeInUp 0.8s ease-out forwards;
    animation: fadeInUp 0.8s ease-out forwards;
  }
}

footer {
  text-align: center;
  font-size: var(--font-size-xs);
  background-color: #d7d0c8;
}

/* スライダー */
.slider {
  padding-top: 40px;
  padding-bottom: 40px;

  .loopSliderWrap {
    top: 0;
    left: 0;
    height: 225px;
    overflow: hidden;
    position: absolute;
  }

  .loopSlider {
    width: 100%;
    height: 225px;
    text-align: left;
    position: relative;
    overflow: hidden;

    & ul {
      height: 225px;
      float: left;
      overflow: hidden;
      margin: 0;
      padding: 0;

      & li {
        padding: 0 8px;
        width: 300px;
        height: 225px;
        float: left;
        display: inline;
        overflow: hidden;

        & img {
          max-width: 100%;
          height: auto;
        }
      }
    }
  }

  .loopSliderWrap:after {
    content: "";
    display: none;
    clear: none;
  }
}

/* トライアル紹介 */
.trial-program {
  background: url('images/bg_trial-program.webp') center center no-repeat;
  background-size: cover;
  padding-top: 60px;
  padding-bottom: 90px;
  position: relative;

  .bgtxt {
    position: absolute;
    right: 8.4%;
    bottom: -10px;
    font-size: 140px;
    color: #e4ded8;
    line-height: 1.0;
    z-index: -1;
  }

  .grid_trialprogram {
    display: grid;
    gap: 30px;
    row-gap: 5px;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-left: 41%;

    .catch {
      grid-column: 1/2;
      grid-row: 1/4;
    }

    .shoulder {
      grid-column: 2/3;
      grid-row: 1/2;
      align-self: end;
    }

    .name {
      grid-column: 2/3;
      grid-row: 2/3;
      align-self: center;
      margin: 0;
      font-size: var(--font-size-xl);
    }

    .time_price {
      grid-column: 2/3;
      grid-row: 3/4;
      align-self: start;
      font-size: var(--font-size-xl);
      font-weight: bold;

      & small {
        font-size: 0.6em;
      }
    }
  }
}

/* CTA */
.cta {
  background: url('images/bg_cta.webp') center center no-repeat;
  background-size: cover;
  padding: 70px 0;
  
  .ctatitle {
    text-align: center;
    margin-top: 0;
    display: none;
  }

  .inner {
    width: var(--width-m);
    margin: 0 auto;
    padding: 0 50px;
    display: grid;
    gap: 40px;
    grid-template-columns: repeat(3, 1fr);
    text-align: center;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;

    .icon {
      & img {
        height: 50px;
        width: auto;
      }
    }

    & a {
      text-decoration: none;
      color: inherit;
    }

    .form,
    .site,
    .line {
      font-size: var(--font-size-s);
      grid-row: 1/2;
      color: var(--color-third);

      & a {
        background-color: #fff;
        border-radius: 6px;
        display: block;
        padding: 15px 0;
        -webkit-transition: background-color 0.2s ease-in-out;
        transition: background-color 0.2s ease-in-out;
      }

      & a:hover {
        background-color: #e9e5e1;
      }
    }

    .form {
      grid-column: 1/2;
    }

    .site {
      grid-column: 2/3;
    }

    .line {
      grid-column: 3/4;
    }

    .tel {
      grid-column: 1/4;
      grid-row: 2/3;
      background-color: #b2a3cb;
      border-radius: 6px;
      color: #fff;
      padding: 0.5em 0;
      font-size: var(--font-size-l);

      & a {
        margin-left: 0.5em;
      }
    }
  }
}


/* 各セクション */
#eyecatch {
  background: url('images/bg_eyecatch.webp') center bottom no-repeat;
  background-size: cover;
  padding: 0;

  .sectioninner {
    height: 100vh;
    max-width: none;
    position: relative;

    .pagetitle {
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
      margin: 0;
      line-height: 1.0;
      position: absolute;
      top: 60px;
      left: calc(50% + 60px);
    }

    .shopname {
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
      margin: 0;
      line-height: 1.0;
      position: absolute;
      right: 50%;
      bottom: 0;
    }
  }
}

#lead {
  background: url('images/bg_lead.webp') center bottom no-repeat;
  background-size: cover;
  color: #fff;

  .sectiontitle {
    font-size: var(--font-size-l);
    line-height: 1.75;
    font-weight: normal;
  }

  .body {
    font-size: var(--font-size-s);
    line-height: 2.0;
  }
}

#approach {
  background: url('images/bg_approach.webp') right bottom no-repeat #dad4cd;

  .bgtxt {
    top: -0.2em;
    left: 8.4%;
    color: rgba(255,255,255,0.3);
  }

  .box_point {
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 60px;
    margin-bottom: 60px;

    & figure {
      -webkit-box-flex: 0;
      -ms-flex: 0 0 200px;
      flex: 0 0 200px;
    }
  }

  .sectiontitle {
    margin-top: 1em;
    margin-bottom: 2em;
    text-align: center;
    font-size: var(--font-size-xl);
    font-weight: normal;

    & strong {
      color: var(--color-main);
    }
  }

  .list_vector {
    padding: 0;
    text-align: center;
    list-style: none;

    .vector {
      margin-bottom: 2em;

      .head {
        margin: 0;
        font-weight: normal;

        & span {
          background-color: var(--color-main);
          color: #fff;
          padding: 0.15em 1em;
        }
      }

      .body {}
    }
  }
}

#plan {
  background: #f7f6f4;

  .sectiontitle {
    margin-bottom: 1em;
    text-align: center;
    color: var(--color-second);
  }

  & ul {
    list-style: none;
    padding: 0;
    margin: 0;

    & li {}
  }

  .list_plans {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;

    .plan {
      -webkit-box-flex: 0;
      -ms-flex: 0 0 32%;
      flex: 0 0 32%;
      display: grid;
      grid-template-rows: auto auto 1fr auto;
      gap: 30px;

      .name {
        grid-row: 1/2;
        background: url('images/bg_name_plan.webp') center center no-repeat;
        background-size: cover;
        color: #fff;
        text-align: center;
        padding: 0.25em 0;
        margin: 0;
      }

      .time {
        grid-row: 2/3;
        color: var(--color-second);
        text-align: center;

        & strong {
          font-size: 1.5em;
        }
      }

      .list_pattern {
        grid-row: 3/4;
        color: var(--color-second);

        .pattern {
          display: grid;

          .head {
            grid-row: 1/2;
            grid-column: 1/2;
            align-self: center;
          }

          .price {
            grid-row: 1/2;
            grid-column: 2/3;
            align-self: self-end;
            text-align: right;
            font-size: 50px;

            & small {
              font-size: 0.5em;
            }
          }

          .note {
            grid-row: 2/3;
            grid-column: 1/3;
            text-align: right;
            font-size: var(--font-size-xs);
          }
        }
      }

      .point {
        grid-row: 4/5;
        background: url('images/bg_point_plan.webp') center center no-repeat;
        background-size: cover;
        color: #fff;
        text-align: center;
        padding: 0.5em 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        position: relative;
        font-size: var(--font-size-s);
      }
      .point::before {
        content: "";
        background: #bd9d6e;
        position: absolute;
        left: calc(50% - 15px);
        top: -25px;
        height: calc(tan(60deg) * 30px / 2);
        width: 26px;
        -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
                clip-path: polygon(50% 0, 100% 100%, 0 100%);
      }

    }
  }
}

#professional {
  color: var(--color-third);

  .bgtxt {
    bottom: -5px;
    left: 8.4%;
  }

  .sectiontitle {
    margin-bottom: 1em;
    text-align: center;
    font-size: var(--font-size-xl);
    font-weight: normal;
  }

  .lead {
    margin-bottom: 2em;
    text-align: center;
  }

  .list_trainer {
    padding: 0;
    list-style: none;

    & li {
      display: grid;
      grid-template-columns: 180px auto 180px;
      gap: 30px;

      .img {
        grid-row: 1/2;
      }

      .prof {
        grid-row: 1/2;
        grid-column: 2/3;
        -ms-flex-item-align: center;
        align-self: center;

        .name {
          border-bottom: 1px solid var(--color-third);
          display: -webkit-box;
          display: -ms-flexbox;
          display: flex;
          -webkit-box-align: end;
              -ms-flex-align: end;
                  align-items: flex-end;
          gap:1em;
          padding-bottom: 0.5em;
          & span {
            display: inline-block;
            font-weight: bold;
          }
          & small {
            display: inline-block;
            font-size: 0.7em;
          }
        }

        .detail {
          font-size: var(--font-size-s);
          line-height: 1.75;
          padding: 0.5em 0;
        }
      }
    }

    .trainer1 {
      .img {
        grid-column: 1/2;
      }

      .prof {
        .name {
          & small {}
        }
      }
    }

    .trainer2 {
      .img {
        grid-column: 3/4;
      }

      .prof {
        .name {
          -webkit-box-orient: horizontal;
          -webkit-box-direction: reverse;
              -ms-flex-direction: row-reverse;
                  flex-direction: row-reverse;
        }
      }
    }
  }
}

#needs {
  background: url('images/bg_needs.webp') center bottom no-repeat;
  background-size: cover;

  .sectiontitle {
    font-size: var(--font-size-l);
    margin-bottom: 2em;
    text-align: center;
    color: #fff;
  }

  .list_need {
    padding: 0;
    list-style: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    gap: 15px;

    & li {
      height: 5em;
      text-align: center;
      -webkit-box-flex: 1;
      -ms-flex: 1 0 30%;
      flex: 1 0 30%;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
      -ms-flex-align: center;
      align-items: center;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
    }

    & li:nth-of-type(odd) {
      background-color: rgba(255, 255, 255, 0.7);
      color: rgb(65, 52, 45);
    }

    & li:nth-of-type(even) {
      background-color: rgba(65, 52, 45, 0.7);
      color: #fff;
    }
  }
}

#features {
  overflow-x: hidden;
  .bgtxt {
    top: calc(var(--pad-section) - 0.3em);
    left: 8.4%;
  }

  .sectiontitle {
    margin-bottom: 2em;
    text-align: center;

    & strong {
      color: #00939b;
      font-size: 2em;
    }

    & span {
      color: #00939b;
    }
  }

  .list_reason {
    list-style: none;
    padding: 0;

    .reason {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
      -ms-flex-pack: justify;
      justify-content: space-between;
      gap: 5%;
      margin-bottom: 140px;

      .txt {
        -webkit-box-flex: 0;
            -ms-flex: 0 1 50%;
                flex: 0 1 50%;
        .num {
          & img {
            width: 100px;
          }
        }

        .head {
          font-size: var(--font-size-m);
          margin-bottom: 1em;
          font-weight: bold;
        }

        .body {
          font-size: var(--font-size-s);
          line-height: 1.75;
        }
      }

      .img {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 45%;
            flex: 0 0 45%;
        position: relative;

        & img {
          position: relative;
        }
      }
    }

    .reason:nth-of-type(odd) {
      .img {
        & img {
          right: -7%;
        }
      }
    }

    .reason:nth-of-type(even) {
      .img {
        & img {
          left: -7%;
        }
      }
    }

    .reason:last-of-type {
      margin-bottom: 0;
    }
  }
}

#program {
  background-color: #e3e3e3;

  .bgtxt {
    top: calc(var(--pad-section) + 60px);
    left: 8.4%;
  }

  .sectioninner {
    max-width: var(--width-l);
  }

  .sectiontitle {
    font-size: var(--font-size-l);
    margin-top: 0;
    margin-bottom: 2em;
    text-align: center;
    color: var(--color-third);
  }

  .list_program {
    padding: 0;
    list-style: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;

    & li {
      color: #fff;
      text-align: center;
      -webkit-box-flex: 0;
      -ms-flex: 0 0 calc(20% - 2px);
      flex: 0 0 calc(20% - 2px);
      border: 1px solid #fff;
      padding: 20px 0;
      min-height: 180px;
      display: grid;
      -webkit-box-align: end;
      -ms-flex-align: end;
      align-items: end;

      .icon {
        & img {
          max-width: 100px;
          max-height: 80px;
        }
      }
    }

    & li:nth-of-type(odd) {
      background-color: #b6a89b;
    }

    & li:nth-of-type(even) {
      background-color: #d3cbc3;
    }
  }
}

#voice {
  .bgtxt {
    top: 0;
    left: 8.4%;
  }

  .shoulder {
    text-align: center;
    font-weight: bold;
    font-size: var(--font-size-m);
  }

  .sectiontitle {
    text-align: center;
    margin-top: 0;
    margin-bottom: 0.5em;
  }

  .note {
    text-align: center;
    font-size: var(--font-size-xs);
  }

  .list_voice {
    list-style: none;
    margin: 60px 0 0;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    gap: 30px;

    .voice {
      -webkit-box-flex: 0;
      -ms-flex: 0 0 calc(33% - 20px);
      flex: 0 0 calc(33% - 20px);
      color: #41342d;

      .img {
        margin-bottom: 15px;
        text-align: center;
      }

      .name {
        font-size: var(--font-size-s);
        text-align: center;
        border-bottom: 1px solid #41342d;
        font-weight: bold;
      }

      .head {
        font-size: 20px;
        text-align: center;
        padding: 1em 0;
        font-weight: bold;
      }

      .body {
        font-size: var(--font-size-s);
        line-height: 1.75;
      }
    }
  }
}

#trial {
  background: url('images/bg_trial.webp') center center no-repeat;
  background-size: cover;
  color: #fff;
  padding-top: 60px;
  padding-bottom: 110px;

  .lead {
    font-size: var(--font-size-l);
    line-height: 1.75;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin-left: calc(50% - 2em);
    margin-top: 0;
    margin-bottom: 2em;
  }

  .bannertitle {
    font-size: var(--font-size-l);
    background-color: rgba(122, 160, 150, 0.9);
    text-align: center;
    padding: 0.5em 0;
    margin-top: 0;
    margin-bottom: 0;
  }
}

#flow {
  background-color: #e9f5f2;

  .sectiontitle {
    text-align: center;
    margin-bottom: 2em;
  }

  .list_flow {
    list-style: none;
    padding: 0;
    margin: 0;

    .flow {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      background-color: #fff;
      margin-bottom: 30px;

      .img {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 320px;
        flex: 0 0 320px;

        & img {
          height: 100%;
          -o-object-fit: cover;
          object-fit: cover;
        }
      }

      .txt {
        position: relative;
        padding: 30px 50px;

        .step {
          position: absolute;
          left: -60px;
          top: 10px;
          width: 140px;
        }

        .head {
          text-align: center;
          margin-bottom: 1.5em;
          font-size: var(--font-size-m);
        }

        .body {
          font-size: var(--font-size-s);
        }
      }
    }
  }
}

#access {
  padding-bottom: 0;

  .shoulder {
    text-align: center;
    font-size: var(--font-size-s);
    & span {

    }
    .mark {
      width: 1em;
      margin: 0 0.5em;
      vertical-align: middle;
    }
  }

  .sectiontitle {
    text-align: center;
    margin-top: 0;
    margin-bottom: 1em;
  }

  .grid_about {
    display: grid;
    grid-template-columns: repeat(2, 50%);
    font-size: var(--font-size-s);

    .column {
      padding: 0 30px;
    }
  }

  .gallery {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 15px;
    margin: 30px 0;

    .img {
      -webkit-box-flex: 0;
      -ms-flex: 0 0 calc(25% - 12px);
      flex: 0 0 calc(25% - 12px);
    }
  }

  .map {
    & iframe {
      width: 100%;
      max-width: 100%;
      vertical-align: bottom;
    }
  }
}

#faq {
  background-color: #e2e2e2;

  .sectioninner {
    max-width: var(--width-l);
  }

  .sectiontitle {
    text-align: center;
    margin-bottom: 2em;
  }

  .list_faq {

    .q,
    .a {
      display: grid;
      grid-template-columns: 80px auto;
      margin: 0;

      .mark {
        grid-column: 1/2;
        color: #fff;
        font-size: var(--font-size-m);
        padding: 0.5em 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
      }

      .txt {
        grid-column: 2/3;
        padding: 0.5em 2em;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
      }
    }

    .q {
      position: relative;
      cursor: pointer;
      margin-top: 30px;

      .mark {
        background-color: #b6a89b;
      }

      .txt {
        background-color: #e9e5e1;
      }

      .btn {
        position: absolute;
        right: 40px;
        top: 20px;

        .h {
          position: absolute;
          top: 9px;
          display: block;
          width: 20px;
          height: 2px;
          background-color: var(--color-third);
        }

        .v {
          position: absolute;
          left: 9px;
          display: block;
          height: 20px;
          width: 2px;
          background-color: var(--color-third);
          -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
          -webkit-transform-origin: center;
          transform-origin: center;
          -webkit-transition: transform 0.25s ease, opacity 0.25s ease, background-color 0.25s ease;
          -webkit-transition: opacity 0.25s ease, background-color 0.25s ease, -webkit-transform 0.25s ease;
          transition: opacity 0.25s ease, background-color 0.25s ease, -webkit-transform 0.25s ease;
          transition: transform 0.25s ease, opacity 0.25s ease, background-color 0.25s ease;
          transition: transform 0.25s ease, opacity 0.25s ease, background-color 0.25s ease, -webkit-transform 0.25s ease;
        }
      }
    }

    .q.open .btn .v {
      -webkit-transform: rotate(90deg);
      transform: rotate(90deg);
    }

    .a {
      .mark {
        background-color: #7aa096;
      }

      .txt {
        background-color: #e2e2e2;
      }
    }
  }
}

#contact {
  background-color: #d7d0c8;

  .sectioninner {
    max-width: var(--width-l);
  }

  .sectiontitle {
    text-align: center;
    margin-bottom: 0.5em;
  }

  .note {
    text-align: center;
    font-size: var(--font-size-xs);
  }

  .wrap-form {
    background-color: #fff;
    padding-top: var(--pad-section);
    padding-bottom: var(--pad-section);
    margin-top: 50px;
    font-size: var(--font-size-s);

    .inner {
      max-width: var(--width-m);
      margin-left: auto;
      margin-right: auto;

      .row {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        padding: 15px 0;

        .name {
          -webkit-box-flex: 0;
          -ms-flex: 0 0 20em;
          flex: 0 0 20em;

          .require {
            margin-left: 1em;
          }
        }

        .input {
          -webkit-box-flex: 1;
              -ms-flex: 1;
                  flex: 1;
          & input, textarea {
            font-family: "Shippori Mincho", serif;
            padding: 0.5em;
            max-width: 100%;
            -webkit-box-sizing: border-box;
                    box-sizing: border-box;
          }
          & input[type="text"],input[type="tel"],input[type="email"],textarea {
            width: 100%;
          }
          & input.age {
            width: 6em;
          }
          .notice {
            font-size: var(--font-size-xs);
          }
        }
      }
      .wrap-btn-submit {
        .btn-submit {
          background-color: #000;
          color: #fff;
          font-size: var(--font-size-m);
          display: block;
          width: 50%;
          padding: 0.5em 0;
          margin-top: 2em;
          margin-left: auto;
          margin-right: auto;
          border: none;
          font-family: "Shippori Mincho", serif;
        }
      }
    }    
  }
}

/* ================================
   スマートフォン向けレスポンシブ (810px以下)
   ================================ */
@media screen and (max-width: 810px) {
  :root {
    --pad-section: 40px;
    --font-size-xs: 12px;
    --font-size-s: 14px;
    --font-size-m: 16px;
    --font-size-l: 20px;
    --font-size-xl: 24px;
  }

  a[href^="tel:"] {
    pointer-events:all;
  }

  section {
    padding-top: var(--pad-section);
    padding-bottom: var(--pad-section);

    .bgtxt {
      font-size: 50px;
    }

    .sectioninner {
      padding: 0 15px;
    }
  }

  /* スライダー */
  .slider {
    padding-top: 20px;
    padding-bottom: 20px;
    
    .loopSlider {
      height: 135px;

      & ul {
        height: 135px;

        & li {
          padding: 0 4px;
          width: 180px;
          height: 135px;
        }
      }
    }
  }

  /* トライアル紹介 */
  .trial-program {
    padding-top: 30px;
    padding-bottom: 30px;

    .bgtxt {
      font-size: 50px;
      right: 0;
      bottom: -3px;
    }
    .grid_trialprogram {
      gap: 10px;
      row-gap: 0;
      width: 85%;
      margin-left: auto;
      margin-right: 0;
      grid-template-columns: 35% auto;
      .shoulder {
        font-size: var(--font-size-s);
      }
      .name {
        font-size: var(--font-size-m);
      }
      .time_price {
        font-size: var(--font-size-l);
      }
    }
  }

  /* CTA */
  .cta {
    padding: 30px 0;
    .ctatitle {
      display: block;
    }
    .inner {
      width: auto;
      padding: 0 15px;
      display: grid;
      gap: 10px;

      .form,
      .site,
      .line {
        & a {
          font-size: var(--font-size-s);

          .icon {
            & img {
              height: 1.75em;
            }
          }
          .txt {
            & span {
              display: none;
            }
          }
        }
      }

      .tel {
        padding: 0.5em 0;
        font-size: var(--font-size-m);
      }
    }
  }
  
  /* アイキャッチ */
  #eyecatch {
    .sectioninner {
      height: 60vh;
      .pagetitle {
        left: 50%;
      }
    }
  }
  
  /* リード */
  #lead {
    background-size: cover;
    background-position: center;
    .sectioninner {
      padding-left: 25px;
      padding-right: 25px;
    }
    .sectiontitle {
      line-height: 1.5;
      margin-bottom: 1em;
    }

    .body {
      font-size: var(--font-size-s);
      line-height: 1.8;

      p {
        margin: 0.5em 0;
      }
    }
  }

  /* アプローチ */
  #approach {
    background-size: 75vw;
    padding-bottom: 50vw;
    .bgtxt {
      left: 0;
    }
    .box_point {
      margin-bottom: 1em;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      gap: 0;
      & figure {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 50%;
                flex: 0 0 50%;
        & img {
          max-width: 40vw;
        }
      }
      & figure:first-of-type {
        -ms-flex-preferred-size: 100%;
            flex-basis: 100%;
      }
    }

    .sectiontitle {
      font-size: var(--font-size-l);
      margin-bottom: 1em;
    }

    .list_vector {
      .vector {
        margin-bottom: 1em;

        .head {
          span {
            font-size: var(--font-size-s);
            padding: 0.4em 0.8em;
          }
        }

        .body {
          font-size: var(--font-size-s);
        }
      }
    }
  }
  
  /* プラン */
  #plan {
    .sectiontitle {
      font-size: var(--font-size-l);
      margin-bottom: 1.5em;
    }

    .list_plans {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      gap: 30px;

      .plan {
        -webkit-box-flex: 1;
        -ms-flex: 1;
        flex: 1;
        gap: 15px;

        .name {
          font-size: var(--font-size-s);
        }

        .time {
          font-size: var(--font-size-s);

          strong {
            font-size: var(--font-size-xl);
          }
        }

        .list_pattern {
          padding-left: 15px;
          padding-right: 15px;
          .pattern {
            .price {
              font-size: 32px;
            }

            .note {
              font-size: var(--font-size-xs);
            }
          }
        }

        .point {
          font-size: var(--font-size-s);
          width: -webkit-fit-content;
          width: -moz-fit-content;
          width: fit-content;
          padding: 1em 2em;
          margin: 2em auto 0;
        }
      }
    }
  }



  /* プロフェッショナル */
  #professional {
    .bgtxt {
      font-size: 40px;
      left: 0;
    }
    .sectiontitle {
      font-size: var(--font-size-l);
      margin-bottom: 1em;
    }

    .lead {
      font-size: 13px;
      margin-bottom: 1.5em;
    }

    .list_trainer {
      li {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 15px;
        margin-bottom: 30px;

        .img {
          text-align: center;
          img {
            max-width: 50%;
          }
        }

        .prof {
          grid-column: auto;
          align-self: auto;

          .name {
            font-size: var(--font-size-m);
            padding-left: 0.5em;
            padding-right: 0.5em;
          }

          .detail {
            padding-left: 0.5em;
            padding-right: 0.5em;
          }
        }
      }

      .trainer2 {
        .prof {
          .name {
            -webkit-box-orient: horizontal;
            -webkit-box-direction: normal;
                -ms-flex-direction: row;
                    flex-direction: row;
          }
        }
      }
    }
  }

  /* ニーズ */
  #needs {
    background-position: center bottom;

    .sectiontitle {
      font-size: var(--font-size-l);
      margin-bottom: 1.5em;
    }

    .list_need {
      gap: 10px;

      & li {
        -webkit-box-flex: 1;
            -ms-flex: 0 0 calc(45% - 5px);
                flex: 0 0 calc(45% - 5px);
        padding:0.5em;
        font-size: var(--font-size-s);
      }
    }
  }

  /* 特徴 */
  #features {
    .bgtxt {
      top: 0;
      left: 0;
    }
    .sectiontitle {
      font-size: var(--font-size-l);
      margin-bottom: 1.5em;

      strong {
        font-size: 1.5em;
      }
    }

    .list_reason {
      .reason {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        gap: 15px;
        margin-bottom: 50px;

        .txt {
          .num {
            img {
              width: 60px;
            }
          }

          .head {
            font-size: var(--font-size-m);
          }

          .body {
            font-size: var(--font-size-s);
            padding-left: 15px;
            padding-right: 15px;
          }
        }

        .img {
          -webkit-box-flex: 1;
          -ms-flex: 1;
          flex: 1;
          width: 100%;
          text-align: center;

          img {
            position: static;
            width: 80%;
            height: auto;
          }
        }
      }

      .reason:nth-of-type(odd) .img img {
        right: auto;
      }
      
      .reason:nth-of-type(even) {
        -webkit-box-orient: vertical;
        -webkit-box-direction: reverse;
            -ms-flex-direction: column-reverse;
                flex-direction: column-reverse;
      }
      .reason:nth-of-type(even) .img img {
        left: auto;
      }
    }
  }

  /* プログラム */
  #program {
    .bgtxt {
      top: 0;
      left: 0;
    }
    .sectiontitle {
      font-size: var(--font-size-m);
      margin-bottom: 1em;
    }

    .list_program {
      & li {
        -webkit-box-flex: 0;
            -ms-flex: 0 0 calc(50% - 2px);
                flex: 0 0 calc(50% - 2px);
        font-size: var(--font-size-s);
        padding-top: 1em;
        padding-bottom: 1em;
        min-height: 0;

        .icon {
          img {
            max-width: 80px;
            max-height: 70px;
          }
        }
      }
    }
  }

  /* ボイス */
  #voice {
    .bgtxt {
      left: 0;
      top: 0;
    }
    .sectiontitle {
      font-size: var(--font-size-l);
    }

    .note {
      font-size: 11px;
    }

    .list_voice {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-direction: column;
      flex-direction: column;
      gap: 15px;

      .voice {
        -webkit-box-flex: 1;
        -ms-flex: 1 0 auto;
        flex: 1 0 auto;
        margin-bottom: 30px;
        
        .name {
          font-size: var(--font-size-s);
        }

        .head {
          font-size: var(--font-size-l);
          padding: 0.5em 0;
        }

        .body {
          font-size: var(--font-size-s);
        }
      }
    }
  }

  /* トライアル */
  #trial {
    padding-top: 40px;
    padding-bottom: 60px;

    .lead {
      margin-left: 0;
      text-align: center;
      font-size: var(--font-size-l);
      width: 100%;
    }
    .bannertitle {
      font-size: var(--font-size-m);
    }
  }

  /* フロー */
  #flow {
    .sectiontitle {
      font-size: var(--font-size-l);
      margin-bottom: 1em;
    }

    .list_flow {
      .flow {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        margin-bottom: 20px;

        .img {
          -webkit-box-flex: 0;
          -ms-flex: 0 0 200px;
          flex: 0 0 200px;
          width: 100%;
          height: 200px;

          img {
            width: 100%;
            height: 100%;
            -o-object-fit: cover;
            object-fit: cover;
          }
        }

        .txt {
          position: relative;
          padding: 10px 15px 20px;

          .step {
            top: -60px;
            left: 10px;

            img {
              width: 80px;
            }
          }

          .head {
            margin-bottom: 0.5em;
          }

          .body {
            font-size: var(--font-size-s);
            line-height: 1.6;
          }
        }
      }
    }
  }

  /* アクセス */
  #access {
    .shoulder {
      font-size: var(--font-size-m);
    }

    .sectiontitle {
      font-size: var(--font-size-l);
      margin-bottom: 1em;
    }

    .grid_about {
      grid-template-columns: 1fr;
      gap: 0;

      .column {
        padding: 0;
      }
    }

    .gallery {
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;

      .img {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 calc(50% - 8px);
        flex: 0 0 calc(50% - 8px);

        img {
          width: 100%;
          height: auto;
        }
      }
    }
  }

  /* FAQ */
  #faq {
    .sectiontitle {
      font-size: var(--font-size-l);
      margin-bottom: 1.5em;
    }

    .list_faq {

      .q,
      .a {
        grid-template-columns: 60px auto;

        .mark {
          font-size: var(--font-size-l);
        }

        .txt {
          padding: 0.5em 10px;
          font-size: var(--font-size-s);
        }
      }

      .q {
        .txt {
          padding-right: 40px;
        }
        .btn {
          right: 30px;
          top: 15px;
        }
      }
    }
  }

  /* コンタクト */
  #contact {
    .sectiontitle {
      font-size: var(--font-size-l);
    }

    .wrap-form {
      padding-top: var(--pad-section);
      padding-bottom: var(--pad-section);
      padding-left: 15px;
      padding-right: 15px;
      margin-top: 20px;
      .inner {
        .row {
          display: block;
          .name {
            
          }
        }
      }
    }
  }
}