/*
 * LP用スタイルシート 
 */
html{
  font-size: calc(100dvw / 375 * 10); /* 375pxの時10px */
}
body{
  position: relative;
  line-height: 1.5;
  font-weight: 500;
}
h1, h2, h3, h4, h5, h6, div, p, span, b, strong{
  font-weight: inherit;
}
@media screen and (min-width: 768px) {
  html{
    font-size: min(10px, calc(100dvw / 1200 * 10)); /* 1200pxの時10px */
  }
}

/* Utility ****************************************/@media screen and (max-width: 767px) {
  .pc{
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .sp{
    display: none;
  }
}

/* 下部固定CTA ****************************************/
.kcta3{
  position: fixed;
  z-index: 100;
  bottom: 0;
  left: 0;
  display: grid;
  grid-template-columns: repeat(2, 50%);
  justify-content: center;
  width: 100%;
  height: 9rem;
  background: url(img/kcta-bg2-sp.webp) center/cover;
  body:has( & ){
    padding-bottom: 9rem;
  }
}
.kcta3-inner{
  display: grid;
  grid-template-columns: 10rem 7.8rem;
  grid-template-rows: 2.5rem 4.6rem;
  justify-content: center;
  gap: .5rem .3rem;
  padding-top: .8rem;
  > p{
    grid-column: 1/3;
    color: white;
    font-size: 1.7rem;
    font-family: serif;
    letter-spacing: .15em;
    text-align: center;
    span{
      font-size: 1.2rem;
    }
  }
  a{
    img{
      filter: drop-shadow(.2rem .2rem .2rem rgb(0 0 0/16%));
    }
  }
  .tel{
    grid-column: 2;
    span{
      display: none;
    }
  }
}
@media screen and (min-width: 768px) {
  .kcta3{
    grid-template-columns: repeat(2, 51.5rem);
    height: 10.2rem;
    background:
      url(img/kcta-bg2.webp) center/auto 100% no-repeat,
      linear-gradient(90deg, #0A3B74 50%, #5D8727 50%);
    body:has( & ){
      padding-bottom: 10.2rem;
    }
  }
  .kcta3-inner{
    grid-template-columns: 31rem 15rem;
    grid-template-rows: 3.2rem 5.4rem;
    gap: .3rem .9rem;
    padding-top: .5rem;
    > p{
      font-size: 2.2rem;
      letter-spacing: .6em;
      span{
        font-size: 1.6rem;
      }
    }
    a{
      transition: opacity .25s ease-in-out;
      &:hover{
        opacity: .9;
      }
    }
    .web{
      grid-column: 2;
    }
    .tel{
      grid-column: 1;
      grid-row: 2;
      position: relative;
      span{
        display: block;
        position: absolute;
        top: 1.8rem;
        left: 7.4rem;
        color: white;
        font-family: serif;
        font-size: 2.2rem;
        letter-spacing: .18em;
      }
    }
  }
}

/* 下部固定CTA（旧バージョン）****************************************/
.kcta2{
  position: fixed;
  z-index: 100;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 9rem;
  padding: .8rem .5rem 0;
  background: url(img/kcta-back-sp.webp) center/auto 100%;
  body:has( & ){
    padding-bottom: 9rem;
  }
  > p{
    color: white;
    font: 600 1.1rem serif;
    letter-spacing: .2em;
    text-align: center;
  }
}
.kcta2-inner{
  display: grid;
  grid-template-columns: repeat(3, auto);
  justify-content: end;
  gap: .4rem .5rem;
  margin-top: .4rem;
  .honin,
  .ekimae{
    grid-row: 1/3;
    width: 13rem;
    img{
      filter: drop-shadow(.2rem .2rem .2rem rgb(0 0 0/16%));
    }
    span{
      display: none;
    }
  }
  .line,
  .mail{
    width: 9rem;
    margin-left: .2rem;
    img{
      filter: drop-shadow(.1rem .1rem .2rem rgb(0 0 0/16%));
    }
  }
  .line{
    grid-row: 2;
  }
  .mail{
    grid-row: 1;
  }
}
@media screen and (min-width: 768px) {
  .kcta2{
    height: 10.2rem;
    background-image: url(img/kcta-back.webp);
    body:has( & ){
      padding-bottom: 10.2rem;
    }
    > p{
      font-size: 1.6rem;
      letter-spacing: .4em;
    }
  }
  .kcta2-inner{
    grid-template-columns: repeat(4, auto);
    justify-content: center;
    align-items: center;
    gap: .8rem;
    .honin,
    .ekimae{
      grid-row: 1;
      position: relative;
      width: 35rem;
      span{
        display: block;
        position: absolute;
        top: 1.9rem;
        left: 12rem;
        color: white;
        font-family: serif;
        font-size: 2.2rem;
        letter-spacing: .18em;
      }
    }
    .ekimae{
      margin-left: .4rem;
    }
    .line,
    .mail{
      width: 5.8rem;
    }
    .line{
      grid-row: 1;
      margin-left: 1.2rem;
    }
    .mail{
      margin-left: 0;
    }
  }
}

/* 下部固定CTA（シンプルバージョン） ****************************************/
.kcta{
  position: fixed;
  z-index: 100;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 1rem;
  background: linear-gradient(transparent, white);
  body:has( & ){
    padding-bottom: 9rem;
  }
}
.kcta-inner{
  width: 35rem;
  margin: 0 auto;
  img{
    filter: drop-shadow(0 .3rem .3rem rgb(0 0 0/16%));
  }
}
@media screen and (min-width: 768px) {
  .kcta{
    body:has( & ){
      padding-bottom: 10.2rem;
    }
  }
  .kcta-inner{
    width: auto;
    display: grid;
    grid-template-columns: repeat(2, 54.7rem);
    justify-content: center;
    gap: 2.3rem;
  }
}

/* PC下部固定メニュー */
.kmenu{
  display: none;
}
@media screen and (min-width: 768px) {
  .kmenu{
    display: block;
    position: fixed;
    z-index: 100;
    bottom: 11rem;
    right: 2rem;
    width: 18rem;
    height: 18rem;
    border-radius: 50%;
    padding: 4.4rem 0 0 3.3rem;
    background: url(img/kcta-btn.webp) center/contain no-repeat;
    box-shadow: .1rem 0 .4rem rgb(0 0 0/40%);
    a{
      display: block;
      padding-left: 2rem;
      background: url(img/kcta-icon1.webp) .1rem 50%/1.6rem no-repeat;
      color: #070E3F;
      font-family: serif;
      font-size: 1.6rem;
      letter-spacing: .01em;
      text-decoration: none;
      transition: opacity .25s ease-in-out;
      + a{
        margin-top: 1.1rem;
      }
      &:nth-child(2){
        background: url(img/kcta-icon2.webp) .3rem 50%/1.1rem no-repeat;
      }
      &:nth-child(3){
        background: url(img/kcta-icon3.webp) 0 50%/1.7rem no-repeat;
      }
      &:hover{
        opacity: .8;
      }
    }
  }
}
@media screen and (min-width: 1720px) {
  .kmenu{
    bottom: 2rem;
    right: max(calc(50% - 86rem), 20rem);
  }
}

/* CTA ****************************************/
.cta{
  overflow: hidden;
  padding: 1rem 0;
  background: url(img/cta-bg-sp.webp) top/cover no-repeat;
  font-family: serif;
}
.cta-inner{
  position: relative;
  width: 36rem;
  margin: auto;
  padding: 5.7rem 0 .7rem;
  backdrop-filter: blur(1px) brightness(1.15);
}
.cta-ttl-sp{
  width: 30.5rem;
  margin: 0 0 2rem 2.4rem;
}
.cta-txt-pc1,
.cta-txt-pc2{
  display: none;
}
.cta-act{
  position: relative;
  display: grid;
  grid-template-columns: 16.6rem 15.6rem;
  grid-template-rows: 2.6rem 6.4rem;
  justify-content: center;
  gap: .6rem 1rem;
  border-top: 1px solid;
  padding: .8rem 0 1.5rem;
  background: rgb(255 255 255/60%);
  color: #154577;
  &.ekimae{
    color: #71950C;
  }
  &::before{
    content: '';
    display: block;
    position: absolute;
    inset: 0 0 auto;
    width: 21.7rem;
    height: .4rem;
    margin: auto;
    background: currentColor;
  }
  >p{
    grid-column: 1/3;
    color: #404040;
    font-size: 1.8rem;
    font-weight: 400;
    letter-spacing: .2em;
    text-align: center;
    span{
      font-size: 1.5rem;
    }
  }
  a{
    img{
      border-radius: 1rem;
      box-shadow: .2rem .2rem .1rem rgb(0 0 0/40%);
    }
  }
  .tel{
    span{
      display: none;
    }
  }
  .web{
    grid-column: 2;
  }
}
.cta-line{
  margin: .5rem 0 0 1.3rem;
  padding: .3rem 0 .4rem 2.8rem;
  background: url(img/line-icon.webp) left/contain no-repeat;
  font-size: 1.2rem;
  font-weight: 400;
  a{
    margin-left: .1rem;
    color: inherit;
  }
}

/* .cta-btn: 旧バージョン */
.cta-btn{
  display: grid;
  grid-template-columns: repeat(2, 16.7rem);
  gap: .5rem .6rem;
  margin-left: 2rem;
  img{
    filter: drop-shadow(.2rem .2rem .1rem rgb(0 0 0/15%));
  }
  .tel{
    grid-column: span 2;
    position: relative;
    color: white;
    text-decoration: none;
    &:nth-child(2){
      margin-bottom: 1rem;
    }
    .txt{
      position: absolute;
      top: 1.2rem;
      left: 7.6rem;
      color: inherit;
      font-size: 1.1rem;
      letter-spacing: .2em;
      span{
        font-size: 1.3rem; 
      }
    }
    .num{
      position: absolute;
      top: 2.5rem;
      left: 7.5rem;
      color: inherit;
      font-size: 2.6rem;
      font-weight: 600;
      letter-spacing: .1em;
    }
  }
}
@media screen and (min-width: 768px) {
  .cta{
    width: 105rem;
    margin: 10rem auto;
    padding: 0;
    background-image: url(img/cta-bg.webp);
  }
  .cta-inner{
    width: auto;
    padding: 5.2rem 0 5rem;
    backdrop-filter: none;
  }
  .cta-inner::before{
    content: '';
    display: block;
    position: absolute;
    z-index: 1;
    top: 1.5rem;
    left: 55.2rem;
    width: 50.1rem;
    height: 53.4rem;
    background: url(img/cta-img.webp) center/contain no-repeat;
  }
  .cta-ttl-sp{
    display: none;
  }
  .cta-txt-pc1{
    display: block;
    margin-left: 5.5rem;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: .4em;
  }
  .cta-txt-pc2{
    display: block;
    width: 61rem;
    margin: 1.9rem 0 2.7rem;
    padding: .7rem 5.5rem .9rem;
    background: linear-gradient(95deg, #1263A4 30%, #074E87);
    color: white;
    font-size: 4rem;
    span{
      margin-left: .6rem;
      font-size: 2.4rem;
      letter-spacing: .02em;
    }
  }
  .cta-act{
    width: fit-content;
    grid-template-columns: auto 15.6rem;
    grid-template-rows: 3.3rem 7.1rem;
    gap: 1.4rem .9rem;
    margin: 0 0 0 4.8rem;
    border-top: none;
    padding: 0 .6rem;
    background: none;
    + .cta-act{
      margin-top: 2rem;
    }
    &::before{
      top: 3.3rem;
      width: auto;
      height: .7px;
    }
    >p{
      padding-left: 1.6rem;
      color: currentColor;
      font-size: 2.2rem;
      font-weight: 600;
      text-align: left;
      span{
        font-size: 1.8rem;
      }
    }
    .tel{
      padding-left: 5.8rem;
      background: url(img/cta-tel-icon1.webp) 0 .5rem/5rem no-repeat;
      color: currentColor;
      font-weight: 600;
      text-decoration: none;
      cursor: default;
      img{
        display: none;
      }
      span{
        display: block;
      }
      .txt{
        margin-left: .3rem;
        font-size: 1.8rem;
        letter-spacing: .2em;
        line-height: 1;
      }
      .num{
        font-size: 3.9rem;
        letter-spacing: .05em;
        line-height: 1.3;
      }
    }
    &.ekimae .tel{
      background-image: url(img/cta-tel-icon2.webp);
    }
    .web{
      position: relative;
      z-index: 2;
      transition: opacity .25s ease-in-out;
      &:hover{
        opacity: .9;
      }
    }
  }
  .cta-line{
    position: relative;
    z-index: 2;
    margin: 2.6rem 0 0 6.1rem;
    padding: .1rem 0 0 4.4rem;
    font-size: 1.7rem;
    letter-spacing: .3em;
    a{
      margin: 0 .2rem;
    }
  }

  /* .cta-btn: 旧バージョン */
  .cta-btn{
    grid-template-columns: repeat(2, 34.1rem);
    gap: 1.5rem 3rem;
    margin-left: 5.5rem;
    img{
      filter: drop-shadow(.2rem .2rem .3rem rgb(0 0 0/60%));
      transition: .25s opacity ease-in-out;
    }
    a:hover img{
      opacity: .9;
    }
    .tel{
      display: block;
      width: 50rem;
      margin-left: 1.4rem;
      background: url(img/cta-tel-icon1.webp) 1.3rem 3.7rem/5rem no-repeat;
      color: #074E87;
      cursor: default;
      &:nth-child(2){
        margin-bottom: 0;
        background-image: url(img/cta-tel-icon2.webp);
        color: #7C9F02;
      }
      img{
        display: none;
      }
      .txt{
        display: block;
        position: static;
        border-bottom: .07rem solid;
        padding-left: 1.6rem;
        font-size: 1.8rem;
        font-weight: 600;
        line-height: 1.45;
        span{
          font-size: 2.2rem; 
        }
      }
      .num{
        display: block;
        position: static;
        margin-left: 7.1rem;
        font-size: 4.5rem;
        line-height: 1.25;
      }
    }
  }
}

/* ロゴ ****************************************/
.header{
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 1.1rem .3rem;
  h1{
    margin-right: .8rem;
    font-size: 1.2rem;
    font-weight: 400;
    text-align: right;
  }
  .logo{
    margin-top: .4rem;
    text-align: right;
    img{
      width: 20.3rem;
    }
  }
}
@media screen and (min-width: 768px) {
  .header{
    right: 0;
    width: 120rem;
    margin: auto;
    padding: 1.5rem 2.6rem;
    h1{
      font-size: 1.5rem;
      text-align: left;
    }
    .logo{
      margin-top: .5rem;
      text-align: left;
      img{
        width: 24.5rem;
      }
    }
  }
}

/* メインビジュアル *****************************************/
.top{
  max-width: 1920px;
  margin: 0 auto;
}

/* about ****************************************/
.about{
  overflow: hidden;
  border-top: .3rem solid #0175D0;
  padding: 10rem 0 0;
  background:
    url(img/about-bg-sp.webp) -0.7rem 0/38.8rem no-repeat,
    url(img/kutikomi-bg-sp.webp) 100%/100% no-repeat;
}
.about-title{
  margin-bottom: 1.2rem;
  font-family: serif;
  color: white;
  font-size: 1.8rem;
  letter-spacing: .3em;
  line-height: 1.33;
  text-align: center;
  text-shadow: .1rem .1rem .2rem rgb(0 0 0/50%);
}
.about-nav{
  display: grid;
  grid-template-columns: repeat(3, 11.7rem);
  grid-template-rows: 6.1rem;
  justify-content: center;
  gap: .5rem;
  a{
    border-radius: .5rem;
    padding: .3rem;
    background-color: rgb(255 255 255/40%);
    color: white;
    font-family: serif;
    font-size: 1.5rem;
    letter-spacing: .05em;
    text-align: center;
    text-decoration: none;
    box-shadow: .2rem .2rem .3rem rgb(0 0 0/25%);
    > span{
      display: block;
      height: 100%;
      border-radius: .5rem;
      padding-top: 1.7rem;
      background:
        url(img/about-nav.webp) center / cover no-repeat,
        radial-gradient(ellipse 8.5rem 9.5rem at 50% -5.7rem, #3F6FA1, #154577);
      box-shadow: inset .2rem .3rem .2rem rgb(0 0 0/25%);
      span{
        font-size: 1.2rem;
      }
    }
    &:nth-child(2) > span{
      background:
        url(img/about-nav.webp) center / cover no-repeat,
        radial-gradient(ellipse 8.5rem 9.5rem at 50% -5.7rem, #E1D17E, #AD9D48);
    }
    &:nth-child(3) > span{
      background:
        url(img/about-nav.webp) center / cover no-repeat,
        radial-gradient(ellipse 8.5rem 9.5rem at 50% -5.7rem, #C3E5EF, #43A8C8);
    }
  }
}
@media screen and (min-width: 768px) {
  .about{
    border: none;
    padding: 11.4rem 0 5.3rem;
    background:
      url(img/about-bg.webp) 50% 0/192rem no-repeat,
      url(img/kutikomi-bg.webp) 50% 38rem/192rem no-repeat;
  }
  .about-title{
    width: 90rem;
    margin: 0 auto 2rem;
    padding: 1.4rem 0 1.7rem;
    background: linear-gradient(90deg, transparent, rgb(255 255 255/40%), transparent);
    font-size: 2.9rem;
    text-shadow: .1rem .1rem .6rem rgb(0 0 0/50%);
  }
  .about-nav{
    display: grid;
    grid-template-columns: repeat(3, 25rem);
    grid-template-rows: 10.1rem;
    gap: 5.7rem;
    a{
      padding: .5rem;
      font-size: 2.4rem;
      letter-spacing: .3em;
      > span{
        padding-top: 2.8rem;
        background-image:
          url(img/about-nav.webp),
          radial-gradient(ellipse 19rem 15rem at 50% -1.5rem, #3F6FA1, #154577);
        span{
          font-size: 1.9rem;
        }
      }
      &:nth-child(2) > span{
        background-image:
          url(img/about-nav.webp),
          radial-gradient(ellipse 19rem 15rem at 50% -1.5rem, #E1D17E, #AD9D48);
      }
      &:nth-child(3) > span{
        background-image:
          url(img/about-nav.webp),
          radial-gradient(ellipse 19rem 15rem at 50% -1.5rem, #C3E5EF, #43A8C8);
      }
    }
  }
}
/* プラチナエリート */
.plutinum{
  position: relative;
  margin-top: 5.4rem;
  padding: 36.7rem 0 0 2rem;
  background:
    linear-gradient(91deg, rgb(255 255 255/95%) 45%, transparent 90%) 0 35rem/100% 13rem no-repeat,
    url(img/about-img-sp.webp) 1rem 0/36rem no-repeat;
  .txt1{
    color: #070E3F;
    font-family: serif;
    line-height: 1.4;
  }
  .txt11{
    font-size: 1.8rem;
  }
  .txt12{
    font-size: 2.4rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    text-decoration: underline;
    text-decoration-thickness: .05rem;
    text-underline-offset: .15em;
  }
  .txt13{
    margin-left: 1.2rem;
    font-size: 1.4rem;
  }
  .txt2{
    margin: 5.6rem 1.4rem 0 18rem;
    color: white;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.8;
  }
  .img1{
    position: absolute;
    top: 49rem;
    left: -7.3rem;
    width: 26.1rem;
  }
  .img2{
    position: absolute;
    top: 28.7rem;
    right: -0.9rem;
    width: 15rem;
  }
}
@media screen and (min-width: 768px) {
  .plutinum{
    width: 110rem;
    height: 46.1rem;
    margin: 17.2rem auto 0;
    padding: 3.1rem 0 0 45.6rem;
    background:
      url(img/about-img-sp.webp) 0 0/41.6rem no-repeat,
      linear-gradient(91deg, transparent 5%,  rgb(255 255 255/95%) 25%, rgb(255 255 255/95%) 75%, transparent 95%) 30rem .9rem/80rem 13.5rem no-repeat;
    .txt1{
      line-height: 1.6;
    }
    .txt11{
      font-size: 2.5rem;
    }
    .txt12{
      font-size: 3.3rem;
      text-decoration: none;
    }
    .txt13{
      margin-left: 1rem;
      font-size: 2.2rem;
    }
    .txt2{
      width: 27.5rem;
      margin: 8.7rem 0 0 2rem;
      font-size: 1.6rem;
      line-height: 2;
    }
    .img1{
      top: 20.2rem;
      left: 71.8rem;
      width: 46rem;
    }
    .img2{
      top: 26.2rem;
      right: -3rem;
    }
  }
}
/* クチコミ */
.kutikomi{
  height: 67.2rem;
  margin-top: 6.3rem;
  padding: 6rem 2rem;
  background: url(img/kutikomi-bg2-sp.webp) .7rem 0/36.1rem no-repeat;
}
.kutikomi-txt1{
  font-family: serif;
  font-size: 2.2rem;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1.37;
  text-align: center;
  span{
    color: #C19917;
  }
}
.kutikomi-rating{
  display: grid;
  grid-template-columns: 14.6rem auto;
  justify-content: center;
  gap: 0 2.3rem;
  margin-top: 1.3rem;
  background-image:
    url(img/kutikomi-parts-sp.webp),
    url(img/kutikomi-part2-sp.webp);
  background-position: 1.5rem 100%, 30.5rem 0;
  background-size: 2.8rem;
  background-repeat: no-repeat;
  > .txt1{
    grid-row: 2;
    font-family: serif;
    font-size: 1.3rem;
    letter-spacing: .3em;
    text-align: center;
  }
  > .txt2{
    font-family: serif;
    color: #154577;
    font-size: 5.5rem;
    font-weight: 700;
    line-height: 1;
    text-align: center;
  }
  > .img2{
    width: 7rem;
    margin: auto;
  }
}
.kutikomi-review{
  margin-top: 1.6rem;
  &.slick-dotted.slick-slider {
    margin-bottom: 1.5rem;
  }
  .slick-dots{
    bottom: -1.5rem;
    li {
      width: .5rem;
      height: .5rem;
      margin: 0 .6rem;
      button{
        width: .5rem;
        height: .5rem;
        border-radius: 50%;
        padding: 0;
        background-color: #D6D6D6;
      }
      &.slick-active button{
        background-color: #154577;
      }
    }
  }
}
.kutikomi-item{
  overflow: hidden;
  height: 23.5rem;
  padding: 2rem 1.5rem;
  background: url(img/kutikomi-flame.webp) 50% 0/auto 100% no-repeat;
  > .img1{
    width: 7rem;
    margin-left: .4rem;
  }
  > .txt1{
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 7;
    overflow: hidden;
    height: 7lh;
    margin-top: .9rem;
    font-size: 1.1rem;
    font-weight: 400;
    line-height: 1.63;
  }
  > .img2{
    float: left;
    width: 4.2rem;
    margin-top: .7rem;
    margin-right: 1.9rem;
  }
  > .txt2{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; 
    margin-top: 1.1rem;
    font-size: 1.2rem;
    letter-spacing: .1em;
  }
  > .txt3{
    margin-top: .3rem;
    font-size: .9rem;
    letter-spacing: .1em;
  }
}
.kutikomi-txt2{
  margin-top: 3.8rem;
  font-family: serif;
  font-size: 1.4rem;
  letter-spacing: .1em;
  line-height: 1.4;
  text-align: center;
}
.kutikomi-lnk{
  display: block;
  width: 23rem;
  margin: 1.4rem auto 0;
  img{
    filter: drop-shadow(.2rem .2rem .3rem rgb(0 0 0/16%));
  }
}
@media screen and (min-width: 768px) {
  .kutikomi{
    width: 101.2rem;
    height: 70rem;
    margin: 8.9rem auto 0;
    padding: 6.7rem 12.6rem 0;
    background: url(img/kutikomi-bg2.webp) 0 0/100% no-repeat;
  }
  .kutikomi-txt1{
    font-size: 2.9rem;
  }
  .kutikomi-rating{
    grid-template-columns: 19.5rem auto;
    gap: 0 2.3rem;
    margin-top: .5rem;
    background-position: 27.7rem 5.1rem, 69rem 0;
    background-size: 4.5rem;
    > .txt1{
      font-size: 1.7rem;
    }
    > .txt2{
      font-size: 7.3rem;
    }
    > .img2{
      width: 9.3rem;
    }
  }
  .kutikomi-review{
    margin-top: 3.6rem;
  }
  .kutikomi-item{
    height: 23.5rem;
  }
  .kutikomi-txt2{
    margin-top: 3.4rem;
    font-size: 1.8rem;
  }
  .kutikomi-lnk{
    margin-top: 3.2rem;
  }
}

/* 当院の強み ****************************************/
.reason{
  overflow: hidden;
  padding: 4.9rem .75rem .5rem;
  background:
    linear-gradient(to top, white 21.3rem, transparent 21.3rem),
    linear-gradient(rgb(0 78 167/63%), transparent 23.6rem),
    url(img/reason-bg-sp.webp) 0 -14.8rem/100%;
}
.reason-ttl{
  color: white;
  font-family: serif;
  .txt1{
    display: block;
    width: fit-content;
    margin: 0 auto;
    border-top: .05rem solid white;
    border-bottom: .05rem solid white;
    font-size: 1.8rem;
    line-height: 3.4rem;
  }
  .txt2{
    display: block;
    margin-top: .5rem;
    font-size: 3.1rem;
    letter-spacing: .1em;
    line-height: 1.35;
    text-align: center;
    text-shadow: 0 .1rem .2rem rgb(55 98 132/70%);
  }
  .txt21{
    display: inline-block;
    position: relative;
    font-size: 4.3rem;
    &::before {
      content: "";
      position: absolute;
      top: -0.4rem;
      left: 50%;
      transform: translateX(-50%);
      width: .6rem;
      height: .6rem;
      border-radius: 50%;
      background: currentColor;
      box-shadow: 0 .1rem .2rem rgb(55 98 132/70%);
    }
  }
}
.reason-list{
  margin-top: 1.3rem;
  li{
    position: relative;
    border-radius: 2rem;
    padding-bottom: 3rem;
    background-color: white;
    box-shadow: .1rem .3rem .3rem rgb(0 0 0/25%);
    + li{
      margin-top: 1.9rem;
    }
    &::before{
      content: '';
      display: block;
      position: absolute;
      top: 16rem;
      left: 12.1rem;
      width: 11.8rem;
      aspect-ratio: 118/95;
      background-size: contain;
    }
    &:first-child::before{
      background-image: url(img/reason-parts1-sp.webp) ;
    }
    &:nth-child(2)::before{
      background-image: url(img/reason-parts2-sp.webp) ;
    }
    &:nth-child(3)::before{
      background-image: url(img/reason-parts3-sp.webp) ;
    }
    &:nth-child(4)::before{
      background-image: url(img/reason-parts4-sp.webp) ;
    }
    &:nth-child(5)::before{
      background-image: url(img/reason-parts5-sp.webp) ;
    }
    &:nth-child(6)::before{
      background-image: url(img/reason-parts6-sp.webp) ;
    }
    &:nth-child(7)::before{
      background-image: url(img/reason-parts7-sp.webp) ;
    }
    &:nth-child(8)::before{
      background-image: url(img/reason-parts8-sp.webp) ;
    }
    h3{
      margin-top: 5rem;
      color: #1456C5;
      font-family: serif;
      font-size: 2.6rem;
      line-height: 1.42;
      text-align: center;
    }
    p{
      margin: 1.2rem 2.6rem 0;
      font-size: 1.2rem;
      font-weight: 400;
      line-height: 1.67;
    }
  }
}
@media screen and (min-width: 768px) {
  .reason{
    max-width: 1920px;
    margin-inline: auto;
    padding: 15rem 0 23rem;
    background:
      linear-gradient(to top, white, transparent 100rem),
      linear-gradient(rgb(0 78 167/63%), transparent 192rem),
      url(img/reason-bg.webp) top/192rem repeat-y;
  }
  .reason-ttl{
    .txt1{
      font-size: 3.4rem;
      line-height: 6rem;
    }
    .txt2{
      margin-top: .8rem;
      font-size: 3.8rem;
      text-shadow: none;
    }
    .txt21{
      font-size: 5.3rem;
    }
    .txt22{
      margin-left: .5em;
    }
  }
  .reason-list{
    margin-top: 5.3rem;
    li{
      display: flex;
      margin-left: calc(50% - 45rem);
      border-radius: 2rem 0 0 2rem;
      padding: 0;
      background: linear-gradient(100deg, white 50%, rgb(255 255 255/80%));
      + li{
        margin-top: 5rem;
      }
      &::before{
        top: 12.7rem;
        left: 43.5rem;
        width: 13.5rem;
      }
      &:nth-child(even){
        flex-direction: row-reverse;
        margin-left: 0;
        margin-right: calc(50% - 45rem);
        border-radius: 0 2rem 2rem 0;
        background: linear-gradient(91deg, rgb(255 255 255/70%) 15%, white 60%);
        &::before{
          left: auto;
          right: 43.5rem;
          filter: drop-shadow(0 .3rem .2rem rgb(0 0 0/16%));
        }
      }
      img{
        width: 51.3rem;
      }
      >div{
        width: 48.8rem;
      }
      h3{
        margin-top: 4.5rem;
      }
      p{
        margin: 2.5rem 6rem 0;
        font-size: 1.6rem;
      }
    }
  }
}

/* こんなお悩み ****************************************/
.onayami{
  position: relative;
  z-index: 1;
  height: 62.5rem;
}
.onayami-inner{
  position: relative;
  height: 67.5rem;
  padding: 11rem 2rem 0 2.7rem;
  background: url(img/onayami-bg-sp.webp) bottom/100% no-repeat;
  &::after{
    content: '';
    display: block;
    position: absolute;
    bottom: -3.4rem;
    left: calc(50% - .1rem);
    width: .2rem;
    height: 6.5rem;
    background: url(img/kiken-parts-sp.webp) center/contain no-repeat;
  }
}
.onayami-img{
  display: block;
  width: 19rem;
  margin-inline: auto;
}
.onayami-ttl{
  margin-top: -1rem;
  font-family: serif;
  font-size: 2.5rem;
  letter-spacing: .15em;
  line-height: 1.44;
  text-align: center;
  span{
    display: inline-block;
    width: 13.9rem;
    height: 5.3rem;
    background: url(img/onayami-parts-sp.webp) 0/contain no-repeat;
    font-size: 3.6rem;
  }
}
.onayami-list{
  margin-top: 2rem;
  li{
    margin-top: .5rem;
    padding: 0 0 .1rem 2.5rem;
    background: url(img/onayami-check-icon-sp.webp) 0 .7rem/1.35rem no-repeat;
    border-bottom: .1rem dotted #707070;
    font-family: serif;
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 768px) {
  .onayami{
    height: 65.3rem;
    margin-top: -11.5rem;
  }
  .onayami-inner{
    display: grid;
    grid-template-columns: 30rem 49.3rem;
    grid-auto-rows: max-content;
    gap: 4.3rem 6rem;
    width: 120rem;
    height: 74.5rem;
    margin: 0 auto;
    padding: 21.3rem 17.3rem 0;
    background-image: url(img/onayami-bg.webp);
  }
  .onayami-img{
    grid-row: 2;
    width: auto;
  }
  .onayami-ttl{
    grid-column: 1/3;
    margin-top: 0;
    font-size: 3.4rem;
    span{
      width: 19.4rem;
      height: 7.4rem;
      font-size: 4.9rem;
    }
  }
  .onayami-list{
    margin-top: .9rem;
    li{
      margin-top: 1rem;
      padding: 0 0 .1rem 3.8rem;
      background-position: 0 .5rem;
      background-size: 2.4rem;
      font-size: 2.2rem;
    }
  }
}

/* 危険です！ ****************************************/
.kiken{
  overflow: hidden;
  padding: 9.3rem 2rem 4.3rem;
  background: url(img/kiken-bg-sp.webp) 0/100%;
}
.kiken-ttl{
  padding-bottom: 6.2rem;
  background: url(img/kiken-parts2-sp.webp) 50% 100%/4.1rem no-repeat;
  color: #F7FF1D;
  font-family: serif;
  font-size: 2.5rem;
  letter-spacing: .15em;
  text-align: center;
  line-height: 1.44;
}
.kiken-txt{
  margin-top: 1.2rem;
  font-family: serif;
  color: white;
  font-size: 1.6rem;
  font-weight: 400;
  white-space: nowrap;
}
.kiken-list{
  margin-top: 2.4rem;
  li{
    + li{
      margin-top: 4rem;
    }
    img{
      margin-left: .4rem;
    }
    .txt1{
      margin: .7rem 0 0 .4rem;
      color: white;
      font-family: serif;
      font-size: 1.4rem;
      font-weight: 600;  
    }
    .txt2{
      border-bottom: .05rem solid white;
      padding: 0 0 .5rem .4rem;
      color: #F7FF1D;
      font-family: serif;
      font-size: 1.8rem;
      letter-spacing: .15em;
    }
    .txt3{
      margin: 1.5rem 0 0 .7rem;
      color: white;
      font-size: 1.2rem;
      font-weight: 400;
      line-height: 1.67;
    }
  }
}

:where(.kiken + .cta .cta-inner)::before{
  content: '';
  display: block;
  position: absolute;
  top: 2.3rem;
  left: 0;
  width: 100%;
  height: 2rem;
  background: url(img/cta-img-sp.webp) center/contain no-repeat;
}
@media screen and (min-width: 768px) {
  .kiken{
    padding: 17.4rem 2rem 12.4rem;
    background: url(img/kiken-bg.webp) 50% 0/192rem repeat-y;
  }
  .kiken-ttl{
    padding-bottom: 5.3rem;
    font-size: 3.6rem;
  }
  .kiken-txt{
    margin-top: .8rem;
    font-size: 2rem;
    text-align: center;
  }
  .kiken-list{
    display: grid;
    grid-template-columns: repeat(3, 33.5rem);
    justify-content: center;
    gap: 3rem;
    li{
      + li{
        margin-top: 0;
      }
      > img{
        display: block;
        width: 33rem;
        margin: auto;
      }
      .txt1{width: 33rem;
        margin: 1.1rem auto 0;
        font-size: 1.8rem; 
      }
      .txt2{
        padding: 0 0 .3rem;
        font-size: 2.4rem;
      }
      .txt3{
        margin: 1.5rem 0 0 .6rem;
        font-size: 1.6rem;
      }
    }
  }
}

/* 当院が提供するインビザライン治療 ****************************************/
.intyou{
  overflow: hidden;
  margin-top: 4rem;
}
.intyou-inner{
  padding: 8.4rem 0 4.5rem;
  background-image:
    url(img/intyou-bg-sp.webp),
    linear-gradient(transparent 30.8rem, white 35rem),
    url(img/intyou-img-sp.webp);
  background-position: bottom, top, top;
  background-size: 100%;
  background-repeat: no-repeat;
}
.intyou-ttl{
  margin-left: 2rem;
  font-family: serif;
  font-size: 1.8rem;
  letter-spacing: .28em;
  line-height: 1.8;
}
.intyou-txt1{
  margin-top: 8.6rem;
  font-family: serif;
  span{
    display: block;
    width: fit-content;
  }
  .txt1{
    padding: .6rem 1.8rem;
    background-color: rgb(255 255 255/80%);
    font-size: 1.6rem;
    letter-spacing: .05em;
  }
  .txt2{
    margin: .9rem auto .5rem;
    padding: .7rem 0;
    background-color: rgb(255 255 255/80%);
    font-size: 3.5rem;
    letter-spacing: .08em;
  }
  .txt3{
    margin: 0 0 0 auto;
    font-size: 1.6rem;
    letter-spacing: .15em;
  }
}
.intyou-txt2{
  margin: 2.5rem 2rem 0;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.7;
  white-space: pre-line;
}
@media screen and (min-width: 768px) {
  .intyou{
    margin-top: -1.3rem;
  }
  .intyou-inner{
    width: 120rem;
    margin: 0 auto;
    padding: 19.5rem 0 6rem;
    background: url(img/intyou-bg.webp) 0 0/121rem no-repeat;
  }
  .intyou-ttl{
    width: 56.4rem;
    margin-left: 0;
    padding: 2rem 0 0 15rem;
    background: linear-gradient(transparent, rgb(255 255 255/40%) 4rem);
    font-size: 2rem;
  }
  .intyou-txt1{
    margin-top: 3.1rem;
    .txt1{
      width: 56.4rem;
      padding: 1rem 0 1rem 15rem;
      background: linear-gradient(90deg, transparent 3rem, rgb(255 255 255/90%) 15rem);
      font-size: 2.4rem;
      letter-spacing: .2em;
      line-height: 1.33;
    }
    .txt2{
      margin: 1.2rem 13.1rem .7rem;
      padding: .4rem 3.6rem;
      background-color: rgb(255 255 255/90%);
      font-size: 5rem;
      letter-spacing: .1em;
    }
    .txt3{
      margin-left: 53rem;
      font-size: 2.2rem;
    }
  }
  .intyou-txt2{
    width: 90rem;
    margin: 3.6rem auto 0;
    font-size: 1.6rem;
    line-height: 1.56;
  }
}

/* インビザラインとは ****************************************/
.invisa{
  overflow: hidden;
  padding: 9.2rem 0 3.4rem;
}
.invisa-img1{
  width: 21.7rem;
  margin-left: 2rem;
}
.invisa-ttl{
  position: relative;
  margin-top: .8rem;
  padding: 1.2rem 2rem .8rem;
  background-color: #009ACE;
  color: white;
  font-family: serif;
  font-size: 1.8rem;
  &::after{
    content: '';
    display: block;
    position: absolute;
    top: -12.4rem;
    right: -1.9rem;
    width: 18rem;
    aspect-ratio: 1/1;
    background: url(img/invisa-parts-sp.webp) top/contain no-repeat;
  }
  .txt1{
    font-size: 3.2rem;
    letter-spacing: .15em;
    line-height: 1.4;
  }
  .txt2{
    font-size: 2.5rem;
    letter-spacing: .15em;
  }
}
.invisa-txt1{
  width: 33.5rem;
  margin: 1.6rem auto .8rem;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.7;
  white-space: pre-line;
  strong{
    color: #0175D0;
  }
}
.invisa-list{
  display: grid;
  grid-template-columns: 33rem;
  grid-auto-rows: 43.7rem;
  justify-content: center;
  gap: 3rem 2.7rem;
  padding-bottom: 4.8rem;
  background: linear-gradient(white, #C4EDFF);
  li{
    padding: 25rem 1.7rem 0;
    background-position: bottom, 50% 0;
    background-size: 100%, 26rem;
    background-repeat: no-repeat;
    &:first-child{
      background-image: url(img/invisa-bg1-sp.webp), url(img/invisa-img1-sp.webp);
    }
    &:nth-child(2){
      background-image: url(img/invisa-bg2-sp.webp), url(img/invisa-img2-sp.webp);
    }
    &:nth-child(3){
      background-image: url(img/invisa-bg3-sp.webp), url(img/invisa-img3-sp.webp);
    }
    &:nth-child(4){
      background-image: url(img/invisa-bg4-sp.webp), url(img/invisa-img4-sp.webp);
    }
    h3{
      margin-left: 6rem;
      color: white;
      font-family: serif;
      font-size: 2.2rem;
      letter-spacing: .1em;
      line-height: 1.3;
    }
    p{
      margin-top: .8rem;
      color: white;
      font-size: 1.2rem;
      font-weight: 400;
      line-height: 1.67;
      white-space: pre-line;
    }
  }
}
.invisa-risk{
  padding: 3.2rem 0 5.3rem;
  background-color: #009ACE;
  h3{
    padding: 1rem 0;
    background-image: url(img/risuku-parts-sp.webp), url(img/risuku-parts-sp.webp);
    background-position: 50% 0, 50% 100%;
    background-size: 34.1rem;
    background-repeat: no-repeat;
    color: white;
    font-family: serif;
    font-size: 2.2rem;
    letter-spacing: .05em;
    text-align: center;
  }
  ul{
    margin: 2.4rem 2.5rem 0;
    li{
      color: white;
      font-size: 1.2rem;
      font-weight: 400;
      line-height: 1.67;
      + li{
        margin-top: 1lh;
      }
      &::before{
        content: '・';
      }
    }
  }
}
@media screen and (min-width: 768px) {
  .invisa{
    padding: 10rem 0 14.6rem;
    background: linear-gradient(to top, #C4EDFF, white 108rem);
  }
  .invisa-img1{
    display: block;
    width: 34.3rem;
    margin: 0 auto;
  }
  .invisa-ttl{
    width: 120rem;
    margin: 0 auto;
    padding: 1.9rem 15rem 1.5rem;
    font-size: 2.5rem;
    letter-spacing: .15em;
    &::after{
      top: -10.4rem;
      right: 0;
      width: 31.2rem;
    }
    .txt1{
      margin-left: 2.3rem;
      font-size: 4.7rem;
    }
    .txt2{
      font-size: 3.7rem;
    }
  }
  .invisa-txt1{
    width: 90rem;
    margin: 2.9rem auto 5.8rem;
    font-size: 1.6rem;
    line-height: 1.56;
  }
  .invisa-list{
    display: grid;
    grid-template-columns: repeat(4, 26rem);
    grid-auto-rows: 56.6rem;
    padding-bottom: 5rem;
    background: none;
    li{
      padding: 32.2rem 0 0;
      background-position: 50% 100%, top;
      background-size: 25rem, 100%;
      &:first-child{
        background-image: url(img/invisa-bg1.webp), url(img/invisa-img1-sp.webp);
      }
      &:nth-child(2){
        background-image: url(img/invisa-bg2.webp), url(img/invisa-img2-sp.webp);
      }
      &:nth-child(3){
        background-image: url(img/invisa-bg3.webp), url(img/invisa-img3-sp.webp);
      }
      &:nth-child(4){
        background-image: url(img/invisa-bg4.webp), url(img/invisa-img4-sp.webp);
      }
      h3{
        margin-left: 0;
        text-align: center;
      }
      p{
        margin: 1.4rem 2.6rem 0;
      }
    }
  }
  .invisa-risk{
    width: 90rem;
    margin: auto;
    padding: 3.6rem 6.3rem 5.6rem;
    h3{
      width: 48.1rem;
      margin: auto;
      background-size: auto .7rem;
      background-repeat: repeat-x;
      font-size: 2.6rem;
    }
    ul{
      margin: 3.2rem 0 0;
      li{
        font-size: 1.6rem;
        line-height: 1.75;
        + li{
          margin-top: 0;
        }
      }
    }
  }
}

/* 流れ ****************************************/
.flow{
  overflow: hidden;
  padding: 2.7rem 0 10rem;
  background: url(img/flow-bg-sp.webp) 0 0/100% no-repeat;
}
.flow-ttl{
  color: white;
  font-family: serif;
  font-size: 3rem;
  letter-spacing: .08em;
  line-height: 1.3;
  text-align: center;
  &::after{
    content: '';
    display: block;
    height: 1.3rem;
    background: url(img/flow-ttl-sp.webp) center/contain no-repeat;
  }
}
.flow-list{
  position: relative;
  margin-top: 6.3rem;
  background: url(img/flow-parts5.webp) 2rem 0/.2rem repeat-y;
  &::before{
    content: '';
    display: block;
    position: absolute;
    top: -1.6rem;
    left: 1.5rem;
    width: 1.3rem;
    aspect-ratio: 13/14;
    background: url(img/flow-parts0.webp) 0 0/contain no-repeat;
  }
  &::after{
    content: '';
    display: block;
    position: absolute;
    bottom: -2.3rem;
    left: .6rem;
    width: 3.3rem;
    aspect-ratio: 33/23;
    background: url(img/flow-parts6.webp) 0 0/contain no-repeat;
  }
  li{
    padding-left: 4.2rem;
    background-position: .4rem 7.1rem;
    background-size: 3.8rem;
    background-repeat: no-repeat;
    &:first-child{
      background-image: url(img/flow-parts1-sp.webp);
    }
    &:nth-child(2){
      background-image: url(img/flow-parts2-sp.webp);
    }
    &:nth-child(3){
      background-image: url(img/flow-parts3-sp.webp);
    }
    &:nth-child(4){
      background-image: url(img/flow-parts4-sp.webp);
    }
    + li{
      margin-top: 4rem;
    }
    h3{
      margin-top: 1.3rem;
      padding: .6rem;
      background-color: #ECF4FF;
      color: #1456C5;
      font-family: serif;
      font-size: 2rem;
      span{
        font-size: 1.3rem;
      }
    }
    p{
      margin: .6rem 1.2rem 0;
      font-size: 1.2rem;
      font-weight: 400;
      white-space: pre-line;
    }
  }
}
@media screen and (min-width: 768px) {
  .flow{
    padding: 4.1rem 0 18.5rem;
    background: url(img/flow-bg.webp) 50% 0/192rem no-repeat;
  }
  .flow-ttl{
    font-size: 4.8rem;
    &::after{
      margin-top: .3rem;
      height: 2rem;
    }
  }
  .flow-list{
    width: 104rem;
    margin: 15rem auto 0;
    background-position: 10.2rem 0;
    &::before{
      top: -2.96rem;
      left: 8.5rem;
      width: 3.6rem;
    }
    &::after{
      bottom: -3.5rem;
      left: 7.1rem;
      width: 6.3rem;
    }
    li{
      display: grid;
      grid-template-columns: 40rem 1fr;
      grid-template-rows: 4.9rem 21.7rem;
      gap: 1.4rem 3.2rem;
      padding-left: 18rem;
      background-position: 6.2rem 9.8rem;
      background-size: 11.9rem;
      &:first-child{
        background-image: url(img/flow-parts1.webp);
      }
      &:nth-child(2){
        background-image: url(img/flow-parts2.webp);
      }
      &:nth-child(3){
        background-image: url(img/flow-parts3.webp);
      }
      &:nth-child(4){
        background-image: url(img/flow-parts4.webp);
      }
      + li{
        margin-top: 5rem;
      }
      .img{
        grid-row: 1/3;
      }
      h3{
        margin-top: 0;
        padding: .7rem 1.5rem;
        font-size: 2.4rem;
        span{
          font-size: 1.6rem;
        }
      }
      p{
        margin: 0 1.5rem;
        font-size: 1.6rem;
      }
    }
  }
}

/* 症例紹介 ****************************************/
.case{
  overflow: hidden;
  padding-top: 8.5rem;
  background: url(img/syorei-bg-sp.webp) top/100%;
}
.case-ttl{
  width: fit-content;
  margin-inline: auto;
  border-bottom: 1px solid;
  color: white;
  font-family: serif;
  font-size: 3rem;
  letter-spacing: .08em;
  line-height: 4.4rem;
}
.case-list{
  margin-top: 2.3rem;
  > li{
    + li{
      margin-top: 4rem;
    }
    .ttl{
      margin: 0 2rem .8rem;
    }
    .images{
      position: relative;
      margin: 0 2rem;
      &::before,
      &::after{
        display: block;
        position: absolute;
        z-index: 1;
        right: .3rem;
        width: 6.4rem;
        line-height: 2.6rem;
        font-family: serif;
        font-size: 1.3rem;
        letter-spacing: .2em;
        text-align: center;
      }
      &::before{
        content: '治療前';
        top: .3rem;
        background-color: white;        
      }
      &::after{
        content: '治療後';
        top: calc(50% + .3rem);
        background-color: #1456C5;
        color: white;
      }
      .slick-dots{
        bottom: -11.5rem;
        li{
          width: .5rem;
          height: .5rem;
          margin: 0 .5rem;
          button{
            width: 100%;
            height: 100%;
            border-radius: 50%;
            padding: 0;
            background: #CBCBCB;
          }
          &.slick-active button{
            background: #0175D0;
          }
        }
      }
    }
    .thumbs{
      margin-top: 1.5rem;
      .slick-slide{
        margin: 0 .25rem;
      }
    }
    .data{
      margin: 3.5rem 1rem 0;
      padding: 1.7rem .9rem 1.6rem 1.6rem;
      background-color: white;
      font-family: serif;
      dl{
        display: flex;
        align-items: center;
        padding: .4rem;
        border-bottom: 1px solid #707070;
        + dl{
          margin-top: .4rem;
        }
        dt{
          align-self: flex-start;
          width: 5.6rem;
          margin-right: 2rem;
          border-radius: .2rem;
          padding: .2rem;
          background-color: #1456C5;
          color: white;
          font-size: 1.2rem;
          letter-spacing: .2em;
          text-align: center;
        }
        dd{
          flex-grow: 1;
          font-size: 1.4rem;
          letter-spacing: .2em;
          .nuki{
            display: none;
          }
          .komi{
            span{
              font-size: 1.2rem;
            }
          }
          .op{
            display: block;
            margin-top: .4rem;
            font-size: 1.2rem;
          }
        }
      }
    }
  }
}
.case-risk{
  padding: 3.4rem 0 5rem;
  background: linear-gradient(transparent, rgb(255 255 255/80%) 2rem);
  h3{
    padding: 1rem 0;
    background-image: url(img/syorei-parts-sp.webp), url(img/syorei-parts-sp.webp);
    background-position: 50% 0, 50% 100%;
    background-size: 34.1rem;
    background-repeat: no-repeat;
    color: #1456C5;
    font-family: serif;
    font-size: 1.8rem;
    letter-spacing: .05em;
    text-align: center;
  }
  ul{
    margin: .5rem 2.5rem 0;
    li{
      font-size: 1.2rem;
      font-weight: 400;
      &::before{
        content: '・';
      }
    }
  }
}
@media screen and (min-width: 768px) {
  .case{
    padding: 13rem 0 14.7rem;
    background: url(img/syorei-bg1.webp) 50% 0/192rem repeat-y;
  }
  .case-ttl{
    color: #1456C5;
    font-size: 4.8rem;
    letter-spacing: .08em;
    line-height: 7.6rem;
  }
  .case-list{
    width: 90rem;
    margin: 5.4rem auto 0;
    > li{
      position: relative;
      &::before{
        content: '';
        position: absolute;
        z-index: 1;
        top: 21rem;
        left: 50%;
        width: 3.4rem;
        height: 3.2rem;
        transform: translateX(-50%);
        background: url(img/syorei-icon.webp) center/contain no-repeat;
      }
      + li{
        margin-top: 9rem;
      }
      .ttl{
        height: 5rem;
        margin: 0 0 1rem;
        padding: .6rem 2.1rem 0;
        background: linear-gradient(91deg, #004EA7 20%, #0F95F1 95%);
      }
      .images{
        margin: 0;
        &::before,
        &::after{
          top: .9rem;
          width: 10.7rem;
          font-size: 1.6rem;
        }
        &::before{    
          right: calc(50% + 1rem); 
        }
        &::after{
          right: 1rem;
        }
        .slick-dots{
          bottom: -17rem;
          li{
            width: 1.1rem;
            height: 1.1rem;
            margin: 0 1.1rem;
          }
        }
      }
      .thumbs{
        .slick-slide{
          margin: 0 1rem;
        }
      }
      .data{
        margin: 5.5rem 0 0;
        padding: 3.7rem 1.8rem;
        dl{
          padding: .9rem 3rem;
          + dl{
            margin-top: .8rem;
          }
          dt{
            align-self: center;
            width: 6.5rem;
            margin-right: 5.2rem;
            font-size: 1.6rem;
          }
          dd{
            font-size: 2.2rem;
            letter-spacing: .1em;
            &.nenre{
              width: 20.2rem;
              flex-grow: 0;
            }
            .syuso{
              font-size: 2.7rem;
              font-weight: 700;
              letter-spacing: .2em;
            }
            .nuki{
              display: inline;
              font-size: 2.7rem;
              font-weight: 700;
            }
            .komi{
              margin-left: 5rem;
              font-size: 1.6rem;
              &::before{
                content: '（';
              }
              span{
                font-size: inherit;
              }
              &::after{
                content: ')';
              }
            }
            .op{
              display: inline;
              margin-top: 0;
              font-size: 1.6rem;
              &::before{
                content: '・';
              }
            }
          }
        }
      }
    }
  }

  .case-risk{
    overflow: hidden;
    width: 83.2rem;
    margin: 5.8rem auto 0;
    padding: 3.7rem 10rem;
    background: linear-gradient(90deg, transparent, rgb(255 255 255/85%) 30%, rgb(255 255 255/85%) 70%, transparent);
    h3{
      width: fit-content;
      margin-inline: auto;
      padding: 1rem 0;
      background-size: auto .7rem;
      background-repeat: repeat-x;
      font-size: 2.5rem;
    }
    ul{
      margin: 2.5rem 0 0;
      li{
        font-size: 1.4rem;
        line-height: 1.78;
        text-indent: -1em;
      }
    }
  }
}


.price-wrap{
  background: 
    url(img/price-bg-sp.webp) top/100% no-repeat,
    linear-gradient(#0175D0, #024A84 224rem);
}
@media screen and (min-width: 768px) {
  .price-wrap{
    padding-bottom: 13.4rem;
    background-image:
      url(img/price-bg.webp),
      linear-gradient(#154a84, #154a84);
    background-position: 50% 0;
    background-size: 192rem;
    background-repeat: no-repeat;
  }
}
/* 治療費 ****************************************/
.price{
  width: 36rem;
  margin: 0 auto;
  padding-top: 11.2rem;
}
.price-ttl{
  border-bottom: .4rem solid #AFC2DC;
  padding-bottom: .4rem;
  color: white;
  font-family: serif;
  font-size: 4.3rem;
  letter-spacing: .1em;
  text-align: center;
  span{
    font-size: 3.1rem;
  }
}
.price-txt1{
  margin: 2.3rem 1.2rem;
  color: white;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.67;
  white-space: pre-line;
}
.price-txt2{
  border-radius: .5rem;
  padding: .1rem;
  background-color: #154577;
  h3{
    padding: 1.5rem 0 1rem;
    color: white;
    font-family: serif;
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: .15em;
    text-align: center;
  }
  p{
    border-radius: 0 0 .4rem .4rem;
    padding: 1.4rem 1.3rem 2rem;
    background-color: white;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.78;
    white-space: pre-line;
  }
}
.price-list{
  display: grid;
  grid-template-columns: 100%;
  gap: .6rem;
  margin-top: 1.6rem;
  .cnt1,
  .cnt2{
    padding: 1.2rem .2rem .5rem;
    font-family: serif;
    h3{
      display: grid;
      grid-template-columns: 5.4rem 1fr;
      align-items: center;
      gap: .5rem;
      margin-left: .9rem;
      font-size: 1.8rem;
      line-height: 1.4;
      &:has(br){
        font-size: 1.6rem;
      }
    }
    .txt1{
      border-bottom: 1px solid #AFC2DC;
      padding-right: .5rem;
      color: #0175D0;
      font-size: 3.5rem;
      text-align: right;
      white-space: nowrap;
      .komi{
        margin-right: -0.4rem;
        font-size: 1.2rem;
      }
    }
    ul{
      li{
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-top: 2.4rem;
        h4{
          color: black;
          font-size: 1.5rem;
          text-align: left;
        }
      }
    }
  }
  .cnt1{
    background-color: white;
  }
  .cnt2{
    background-color: #E9F2FF;
  }
  .cnt3{
    padding: 1.4rem;
    color: white;
    font-size: 1.4rem;
    font-weight: 400;
    strong{
      color: #FCFC18;
    }
  }
}
.price-pay{
  margin: 1.4rem 1.4rem 0;
  border-radius: 1rem;
  padding: 1.8rem .9rem 2.7rem;
  background-color: white;
  h3{
    width: fit-content;
    margin: 0 auto 1.2rem;
    border-bottom: 2px dotted;
    color: #1456C5;
    font-family: serif;
    font-size: 2.1rem;
    span{
      font-size: 1.6rem;
    }
  }
  > p{
    font-size: 1.1rem;
    text-align: center;
    line-height: 1.7;
    white-space: nowrap;
    img{
      width: 7.1rem;
      vertical-align: top;
    }
  }
  .img{
    width: 29rem;
    margin: 2.2rem auto 0;
  }
}
@media screen and (min-width: 768px) {
  .price{
    width: 90rem;
    padding-top: 10.62rem;
  }
  .price-ttl{
    width: 35rem;
    margin-inline: auto;
    padding-bottom: 0;
    font-size: 4.8rem;
  }
  .price-txt1{
    margin: 3rem 12rem;
    font-size: 1.6rem;
  }
  .price-txt2{
    width: 73.7rem;
    margin: 4.3rem auto 0;
    h3{
      padding: 1.5rem 0 1rem;
    }
    p{
      padding: 1.6rem 9.5rem 1.4rem;
    }
  }
  .price-list{
    grid-template-columns: 36rem 36rem;
    gap: 1.6rem 1.7rem;
    justify-content: center;
    margin-top: 5rem;
    .cnt1,
    .cnt2{
      padding: 1rem .2rem .5rem;
      .txt1{
        padding-right: .7rem;
        &:has(.komi){
          position: relative;
          padding-bottom: 1.2rem;
        }
        &:has(> .komi){
          margin-top: -1.2rem;
        }
        .komi{
          position: absolute;
          top: 4.5rem;
          right: -0.2rem;
          margin-right: 0;
          font-size: 1.3rem;
        }
      }
      ul{
        li{
          margin-top: 1.8rem;
        }
      }
    }
    .cnt3{
      padding: 4rem .9rem 0 1.3rem;
      font-size: 1.6rem;
    }
  }
  .price-pay{
    width: 75rem;
    margin: 2.8rem auto 0;
    padding: 1.9rem 11rem 3.1rem;
    h3{
      margin-bottom: 1rem;
      font-weight: 600;
      letter-spacing: .03em;
    }
    > p{
      font-size: 1.2rem;
      img{
        margin: 0 .2rem;
      }
    }
    .img{
      width: 53rem;
      margin-top: 1.6rem;
    }
  }
}

/* 分割払い */
.price-install{
  display: grid;
  grid-template-columns: 36rem;
  justify-content: center;
  gap: 4.5rem;
  margin-top: 5rem;
  .cnt1{
    padding: 0 1.4rem;
    h3{
      padding: 0 .5rem 1.2rem;
      background: url(img/price-parts-sp.webp) bottom/100% no-repeat;
      color: white;
      font-family: serif;
      font-size: 2.5rem;
      .txt1{
        padding: .6rem 0;
        background: linear-gradient(90deg, transparent 3%, #00345E 3%, #00345E 97%, transparent 97%);
      }
    }
    p{
      margin-top: 1.4rem;
      color: white;
      font-size: 1.4rem;
      font-weight: 400;
      white-space: pre-line;
    }
  }
  .cnt2{
    padding: 1.6rem 0 .5rem;
    background-color: white;
    h4{
      padding: .4rem 0 .3rem 5.5rem;
      background: #E5F1FA url(img/price-parts2-sp.webp) 1.7rem 50%/2.8rem no-repeat;
      color: #1456C5;
      font: 600 1.8rem serif;
      letter-spacing: .1em;
    }
    .txt1{
      margin: .7rem 3.9rem 0;
      color: #6289BD;
      font-family: serif;
      font-size: 1.7rem;
      letter-spacing: .1em;
      line-height: 1.4;
      span{
        display: block;
        margin-left: .6rem;
        font-size: 1.5rem;
      }
    }
    .txt2{
      margin: .4rem 1.8rem .8rem;
      background: linear-gradient(to top, #E5F1FA 1.2rem, transparent 1.2rem);
      color: #1456C5;
      font-family: serif;
      font-size: 5.4rem;
      letter-spacing: .02em;
      line-height: 1.2;
      text-align: center;
      .en{
        display: inline-block;
        position: relative;
        margin-left: 2.4rem;
        font-size: 2.2rem;
        font-weight: 600;
        .komi{
          position: absolute;
          top: -1.2rem;
          left: -0.6rem;
          font-size: 1rem;
        }
      }
      .tuki{
        margin-left: .5rem;
        font-size: 1.8rem;
        font-weight: 600;
      }
    }
    .txt3{
      margin: 0 .2rem;
      border-bottom: 1px solid #AFC2DC;
      padding: 0 1rem .5rem;
      font-size: 1.2rem;
      font-weight: 400;
      line-height: 1.3;
    }
  }
}
@media screen and (min-width: 768px) {
  .price-install{
    grid-template-columns: 36rem 36rem;
    gap: 3.5rem;
    margin-top: 8rem;
    .cnt1{
      padding: 3.4rem 0 0;
      h3{
        padding: 0 0 1rem;
        background-position: 0 100%;
        background-size: 33.2rem;
        font-size: 3rem;
        .txt1{
          padding: .8rem 0;
          background: linear-gradient(90deg, transparent 3%, #00345E 3%, #00345E 97%, transparent 97%);
        }
        .txt2{
          display: block;
          margin-top: .2rem;
          font-size: 2.5rem;
        }
      }
      p{
        font-size: 1.6rem;
      }
    }
    .cnt2{
      padding: 2.3rem 0 .5rem;
      h4{
        padding: .5rem 0 .6rem 5.5rem;
      }
      .txt1{
        margin: 2.2rem 3.8rem 0;
      }
      .txt2{
        margin: .2rem 1.8rem 2.8rem;
        background: linear-gradient(to top, #E5F1FA 2.2rem, transparent 2.2rem);
        font-size: 6.9rem;
        .en{
          margin-left: 1.5rem;
          font-size: 2.8rem;
          .komi{
            top: -1.8rem;
            font-size: 1.2rem;
          }
        }
        .tuki{
          margin-left: -0.1rem;
          font-size: 2.2rem;
        }
      }
      .txt3{
        padding: 0 1.8rem 2.1rem;
      }
    }
  }
}

/* 無料特典 ****************************************/
.price-tokuten{
  height: 64rem;
  margin-top: 12.4rem;
  padding-top: 11.6rem;
  background: url(img/tokuten-bg-sp.webp) top/100% no-repeat;
  h2{
    position: relative;
    margin-left: 8.7rem;
    font-family: serif;
    img{
      display: block;
      position: absolute;
      top: -2.3rem;
      left: -8.1rem;
      width: 7.7rem;
    }
    .txt1{
      display: block;
      margin-left: .6rem;
      font-size: 1.7rem;
      letter-spacing: .1em;
    }
    .txt2{
      display: block;
      color: #154577;
      font-size: 3.5rem;
      letter-spacing: .09em;
      line-height: 1.2;
      span{
        font-size: 2.5rem;
      }
    }
  }
  > .txt01{
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.67;
    text-align: center;
    &::before{
      content: '';
      display: block;
      width: 32.3rem;
      height: .4rem;
      margin: 0 auto .8rem;
      background: linear-gradient(90deg, white, #CCCCCC, white);
    }
  }
  ol{
    display: grid;
    grid-template-columns: 36.3rem;
    justify-content: center;
    gap: 1.2rem;
    margin-top: 2.5rem;
    font-family: serif;
    li{
      position: relative;
      padding: .8rem 0 .6rem 6.3rem;
      background-position: left;
      background-size: 6.1rem;
      background-repeat: no-repeat;
      &:first-child{
        background-image: url(img/tokuten-parts1-sp.webp);
      }
      &:nth-child(2){
        background-image: url(img/tokuten-parts2-sp.webp);
      }
      &:nth-child(3){
        background-image: url(img/tokuten-parts3-sp.webp);
      }
      &:nth-child(4){
        background-image: url(img/tokuten-parts4-sp.webp);
      }
      &::after{
        content: '';
        display: block;
        position: absolute;
        bottom: 0;
        left: 1rem;
        width: 35.1rem;
        height: 1px;
        background: linear-gradient(90deg, #F5FCFF 10%, #009ACE 90%);
      }
    }
    .txt1{
      font-size: 1.3rem;
      letter-spacing: .02em;
    }
    .txt2{
      margin-top: .2rem;
      color: #009ACE;
      font-size: 2.1rem;
      letter-spacing: -0.08em;
      white-space: nowrap;
    }
  }
}
@media screen and (min-width: 768px) {
  .price-tokuten{
    width: 90rem;
    height: 43.3rem;
    margin: 5rem auto 0;
    padding: 5.7rem 6.9rem 0 7.5rem;
    background: url(img/tokuten-bg.webp) left/86.9rem no-repeat;
    h2{
      margin-left: 0;
      text-align: center;
      img{
        top: -2.8rem;
        left: 7rem;
        width: 10.5rem;
      }
      .txt1{
        margin-left: 0;
        font-size: 2rem;
      }
      .txt2{
        font-size: 4.8rem;
        letter-spacing: .1em;
        span{
          font-size: 3.4rem;
        }
      }
    }
    > .txt01{
      font-size: 1.6rem;
      &::before{
        width: 44rem;
        height: .5rem;
        margin: 0 auto 1.8rem;
      }
    }
    ol{
      grid-template-columns: repeat(2, 33.5rem);
      gap: 1.2rem 3rem;
      margin-top: 1.8rem;
      padding-left: 1.9rem;
      li{
        padding: .8rem 0 .6rem 6.3rem;
        &::after{
          width: 32.5rem;
          background: linear-gradient(90deg, #F5FCFF, #009ACE);
        }
      }
      .txt1{
        font-size: 1.3rem;
        letter-spacing: .02em;
      }
      .txt2{
        margin-top: .3rem;
        font-size: 2rem;
      }
    }
  }
}
/* 割引 ****************************************/
.price-waribiki{
  height: 40rem;
  margin-top: .4rem;
  padding: 9rem 4.5rem 0;
  background: url(img/waribiki-bg-sp.webp) top/100% no-repeat;
  h2{
    margin-left: 2rem;
    color: white;
    font: 700 2.4rem/1.46 serif;
    letter-spacing: .15em;
  }
  p{
    color: white;
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: .1em;
    line-height: 1.8;
    text-decoration: underline;
    text-decoration-style: dotted;
    text-underline-offset: .2em;
    &::before{
      content: '';
      display: block;
      height: 1.6rem;
      margin: 1rem 0 2.4rem;
      background: url(img/waribiki-img-sp.webp) center/contain no-repeat;
    }
  }
}
@media screen and (min-width: 768px) {
  .price-waribiki{
    width: 80rem;
    height: 30.1rem;
    margin: 2.5rem auto 0;
    padding: 6.7rem 7.2rem 0;
    background-image: url(img/waribiki-bg.webp);
    h2{
      margin-left: 0;
      font-size: 2.7rem;
      text-align: center;
    }
    p{
      font-size: 1.6rem;
      line-height: 2.25;
      text-underline-offset: .5em;
      &::before{
        height: 2.8rem;
        margin: 1.4rem 0 1.8rem;
        background-image: url(img/waribiki-img.webp);
      }
    }
  }
}

/* 比較 ****************************************/
.hikaku{
  overflow: hidden;
  padding: 7rem 0 10rem;
  background-color: white;
}
.hikaku-inner{
  background: url(img/hikaku-bg-sp.webp) 0 8rem/100% no-repeat;
  h2{
    font-family: serif;
    .txt1{
      display: block;
      width: 30.4rem;
      margin: 0 auto;
      border-bottom: 1px solid #C4EDFF;
      padding-bottom: .5rem;
      font-size: 1.8rem;
      letter-spacing: .3em;
      text-align: center;
    }
    .txt2{
      display: flex;
      background: url(img/hikaku-ttl-sp.webp) 50% 2rem/35rem no-repeat;
    }
    .txt21{
      margin: 3.2rem .4rem 0 3.2rem;
      font-size: 1.4rem;
      line-height: 1.43;
    }
    .txt22{
      font-size: 7.5rem;
      line-height: 1.25;
    }
  }
  > .txt01{
    margin: 1.6rem 2rem 0;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.7;
  }
  .tbl{
    position: relative;
    margin: 3rem .8rem 0;
    padding-bottom: 1rem;
    &::before,
    &::after{
      content: '';
      display: block;
      position: absolute;
      top: 8.9rem;
      height: calc(100% - 8.9rem);
      border-radius: 1rem;
      border: .2rem solid white;
      box-shadow: .1rem .3rem .4rem rgb(0 0 0/25%);
    }
    &::before{
      right: 11.8rem;
      width: 16rem;
      background: linear-gradient(150deg, #D5EDFF 15%, #B3D8FA 80%, #6AA9EF 115%);
    }
    &::after{
      right: 0;
      width: 11.5rem;
      background: linear-gradient(150deg, #E1E9F2 15%, #E1E9F2 80%, #9CBAD1 115%);
    }
    table{
      position: relative;
      z-index: 1;
      border-collapse: separate;
      border-spacing: 0 .4rem;
      width: 100%;
      .col2{
        width: 16rem;
      }
      .col3{
        width: 11.8rem;
      }
      thead{
        .th2,
        .th3{
          padding-bottom: 1.3rem;
          span{
            display: flex;
            align-items: center;
            justify-content: center;
            height: 7.8rem;
            border-radius: 1rem;
            border: .2rem solid white;
            color: white;
            text-align: center;
            box-shadow: .1rem .3rem .4rem rgb(0 0 0/25%);
          }
        }
        .th2{
          span{
            background: linear-gradient(#93C3F5, #004EA7);
            font-size: 1.9rem;
            font-weight: 600;
          }
        }
        .th3{
          padding-left: .3rem;
          span{
            background: linear-gradient(#BECDDE, #6092B5);
            font-size: 1.5rem;
            font-weight: 400;
            line-height: 1.2;
          }
        }
      }
      tbody{
        th{
          border-radius: 1rem 0 0 1rem;
          border: .3rem solid #5793D5;
          border-right: none;
          padding-left: .7rem;
          background-color: white;
          color: #0175D0;
          font-size: 1.6rem;
          line-height: 1.56;
          text-align: left;
          box-shadow: .1rem .3rem .4rem rgb(0 0 0/25%);
          clip-path: polygon(-0.3rem -0.1rem, 100% -0.1rem, 100% calc(100% + .7rem), -.3rem calc(100% + .7rem));
        }
        td{
          position: relative;
          padding: 2rem 1.6rem;
          font-size: 1.4rem;
          font-weight: 600;
          &::before{
            content: '';
            display: block;
            position: absolute;
            inset: -0.2rem 2rem auto;
            height: 1px;
            background-color: white;
          }
        }
        td:nth-child(3){
          padding-left: 1.8rem;
          padding-right: 1rem;
          color: #686868;
          font-size: 1.3rem;
          &::before{
            height: .5px;
            background-color: #686868;
          }
        }
        tr:first-child{
          td{
            padding-top: .7rem;
            &::before{
              content: none;
            }
          }
        }
      }
    }
  }
}
@media screen and (min-width: 768px) {
  .hikaku{
    padding: 0;
  }
  .hikaku-inner{
    max-width: 126rem;
    margin: auto;
    padding: 7.5rem 3rem 12rem;
    background: url(img/hikaku-bg.webp) .4rem 0/min(125.5rem, 100%) no-repeat;
    h2{
      .txt1{
        width: 33.8rem;
        padding-bottom: .3rem;
        font-size: 2.2rem;
      }
      .txt2{
        justify-content: center;
        background: url(img/hikaku-ttl.webp) 50% 2.6rem/75rem no-repeat;
      }
      .txt21{
        margin: 4.9rem -0.6rem 0 0;
        font-size: 2.4rem;
      }
      .txt22{
        font-size: 9.5rem;
      }
    }
    > .txt01{
      width: 65rem;
      margin: 1.3rem auto 0;
    }
    .tbl{
      width: 71.6rem;
      margin: 5rem auto 0;
      padding-bottom: 1.9rem;
      &::before{
        right: 21rem;
        width: 30rem;
      }
      &::after{
        width: 20rem;
      }
      table{
        border-spacing: 0 .6rem;
        .col2{
          width: 30rem;
        }
        .col3{
          width: 21rem;
        }
        thead{
          .th2{
            span{
              font-size: 2.4rem;
            }
          }
          .th3{
            padding-left: 1rem;
            span{
              font-size: 1.8rem;
              line-height: 1.33;
            }
          }
        }
        tbody{
          th{
            height: 11rem;
            padding-left: 2.4rem;
            font-size: 2rem;
            line-height: 1.3;
          }
          td{
            padding: 1.7rem 1.8rem;
            font-size: 1.8rem;
            line-height: 1.67;
            &::before{
              inset: -0.2rem 1.8rem auto;
            }
          }
          td:nth-child(3){
            padding-left: 2.8rem;
            padding-right: 1.4rem;
            font-size: 1.4rem;
            &::before{
              left: 2.8rem;
            }
          }
          tr:first-child{
            td{
              padding-top: .7rem;
            }
          }
        }
      }
    }
  }
}

/* よくある質問 ****************************************/
.faq{
  overflow: hidden;
  padding: 2.7rem 0 4.3rem;
  background: url(img/faq-bg-sp.webp) top/100%;
}
.faq-inner{
  width: 35rem;
  margin: 0 auto 1.8rem;
  h2{
    position: relative;
    font-family: serif;
    letter-spacing: .1em;
    text-align: center;
    &::before{
      content: 'FAQ';
      display: block;
      color: #D7EEF4;
      font-size: 10rem;
    }
    span{
      display: block;
      position: absolute;
      inset: 50% 0 auto;
      font-size: 3rem;
      transform: translateY(-50%);
    }
  }
}
.faq-item{
  margin-top: .6rem;
  border-radius: .5rem;
  background-color: white;
  .q{
    cursor: pointer;
    position: relative;
    font-family: serif;
    h3{
      display: grid;
      grid-template-columns: 3.8rem 1fr 1.8rem;
      align-items: center;
      padding: 1.5rem .8rem 1.5rem 1.5rem;
      font-size: 1.7rem;
      letter-spacing: .05em;
      line-height: 1.4;
      &::before{
        content: 'Q.';
        color: #154577;
        font-size: 2.5rem;
        letter-spacing: .1em;
      }
      &::after{
        content: '';
        height: 100%;
        background: url(img/faq-ico2-sp.webp) center/.9rem no-repeat;
        transition: transform .25s ease-in-out;
      }
    }
    &::after{
      content: '';
      display: block;
      position: absolute;
      inset: auto 1.1rem .5rem;
      height: 1px;
      transition: background-color .25s ease-in-out;
    }
    &.show{
      h3::after{
        transform: rotateX(180deg);
      }
      &::after{
        background-color: #D5E2F2;
      }
    }
  }
  .a{
    display: none;
    padding: .9rem 1.2rem 2.5rem 2.2rem;
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.8;
  }
}
@media screen and (min-width: 768px) {
  .faq{
    padding: 8rem 0 7rem;
    background:
      url(img/faq-bg.webp) 50% 0/192rem no-repeat,
      linear-gradient(#e9f7fa, #e9f7fa) 50% 0/192rem no-repeat;
  }
  .faq-inner{
    width: 73rem;
    margin: 0 auto;
  }
  .faq-item{
    .q{
      h3{
        grid-template-columns: 3.6rem 1fr 1.8rem;
        padding: 1rem 1rem 1rem 1.5rem;
      }
    }
    .a{
      padding: .5rem 2.2rem 3rem;
    }
  }
}

/* メッセージ ****************************************/
.message{
  overflow: hidden;
  margin-top: 8rem;
  padding: 3.3rem 0 25.3rem;
  background:
    url(img/message-img-sp.webp) bottom/100% no-repeat,
    url(img/message-bg-sp.webp) top/100% no-repeat;
}
.message-inner{
  width: 33.5rem;
  margin-inline: auto;
  h2{
    width: 37rem;
    margin-left: -2rem;
    padding: .7rem 2.4rem .4rem;
    background: linear-gradient(90deg, white 30%, rgb(255 255 255/70%) 70%, transparent);
    color: #0175D0;
    font-family: serif;
    font-size: 1.6rem;
    letter-spacing: .1em;
  }
  >.txt1{
    margin: 2.4rem .4rem 1.3rem;
    color: white;
    font-family: serif;
    font-size: 3.5rem;
    letter-spacing: .2em;
    line-height: 1.29;
  }
  >.txt2{
    width: 35.5rem;
    border-bottom: .7px solid;
    padding: 0 .4rem .2rem;
    color: white;
    font-family: serif;
    font-size: .9rem;
    letter-spacing: .21em;
  }
  >.txt3{
    margin: 2.2rem .4rem 0;
    color: white;
    font-family: serif;
    font-size: 1.8rem;
    letter-spacing: .1em;
    white-space: nowrap;
  }
  >.txt4{
    margin-top: 5.7rem;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.69;
    white-space: pre-line;
    strong{
      color: #0175D0;
    }
  }
}
@media screen and (min-width: 768px) {
  .message{
    max-width: 1200px;
    margin: 5.7rem auto 0;
    padding: 10.6rem 0 43.7rem;
    background-image:
      url(img/message-img.webp),
      url(img/message-bg.webp);
  }
  .message-inner{
    width: 90rem;
    h2{
      width: 68.8rem;
      margin-left: 0;
      padding: 1.1rem 3.6rem;
      font-size: 2.9rem;
    }
    >.txt1{
      margin: 6.1rem 0 3.8rem;
      font-size: 6rem;
    }
    >.txt2{
      width: 68rem;
      border-bottom: .7px solid;
      padding: 0 0 .5rem;
      font-size: 1.6rem;
    }
    >.txt3{
      margin: 4.9rem 0 0;
      font-size: 2.7rem;
    }
    >.txt4{
      width: 80rem;
      margin-top: 17rem;
      font-size: 1.6rem;
      line-height: 1.56;
    }
  }
}

/* 医師紹介 ****************************************/
.staff{
  overflow: hidden;
  margin-top: 5rem;
  padding: 8rem 0 5rem;
  background:
    url(img/staff-bg-sp.webp) top/100% no-repeat,
    linear-gradient(white 50%, #0175D0 50%);
  h2{
    margin-left: .2rem;
    border-bottom: .3rem solid;
    border-image: linear-gradient(90deg, white 60%, transparent) 1;
    padding: 0 3.8rem .6rem;
    color: white;
    font-family: serif;
    font-size: 3rem;
    letter-spacing: .3em;
  }
  > .txt1{
    margin: .9rem 4rem 0;
    color: white;
    font-family: serif;
    font-size: 1.5rem;
    letter-spacing: .1em;
  }
}
.staff-list{
  overflow-x: auto;
  margin-top: 4.4rem;
  scrollbar-width:none;
  cursor:grab;
  &:active{
    cursor:grabbing;
  }
  &::-webkit-scrollbar{
    display:none;
  }
}
.staff-list-inner{
  display: flex;
  gap: 2rem;
  width: max-content;
  padding: 0 3.4rem;
}
.staff-item{
  position: relative;
  flex: 0 0 auto;
  width: 25rem;
  h3{
    position: absolute;
    top: 9.3rem;
    left: .8rem;
    color: white;
    letter-spacing: .1em;
    font: 700 2rem/1.2 serif;
    span{
      display: block;
      font-size: 1.5rem;
    }
  }
  p{
    margin-top: 1.5rem;
    color: white;
    font-size: 1.4rem;
    font-weight: 400;
    white-space: pre-line;
  }
}
.staff-info{
  width: 33rem;
  margin: 2rem 2rem 0;
  font-family: serif;
  h3{
    margin-top: 1.6rem;
    border-bottom: 1px solid white;
    padding: 0 .5rem .7rem;
    color: white;
    font-size: 1.8rem;
    letter-spacing: .2rem;
  }
  ul{
    list-style: disc;
    margin-top: .7rem;
    li{
      margin-left: 1.5em;
      color: white;
      font-size: 1.4rem;
      line-height: 1.57;
    }
  }
}
.staff-scrollbar{
  width: 10rem;
  height: .4rem;
  margin: 4rem 0 0 26rem;
  background: #316791;
  border-radius: .4rem;
  overflow: hidden;
  > div{
    height:100%;
    background: white;
    border-radius:.4rem;
    width: 20%;
  }
}
@media screen and (min-width: 768px) {
  .staff{
    width: 120rem;
    margin: 16.3rem auto 0;
    padding: 7.7rem 0 9.2rem;
    background:
      url(img/staff-bg.webp) top/100% no-repeat,
      linear-gradient(white 50%, #2675d0 50%);
    h2{
      margin-left: 0;
      padding: 0 15rem .5rem;
      font-size: 3.4rem;
    }
    > .txt1{
      margin: .8rem 15rem 0;
      font-size: 2rem;
    }
  }
  .staff-list{
    margin-top: 4rem;
  }
  .staff-list-inner{
    gap: 3rem;
    padding: 0 21.5rem;
  }
  .staff-info{
    display: grid;
    grid-template-columns: repeat(2, 36rem);
    justify-content: center;
    gap: 5rem;
    width: auto;
    margin: 6.2rem 0 0;
    h3{
      margin-top: 0;
      padding: 0 .5rem .5rem;
      font-size: 2.3rem;
    }
    ul{
      margin-top: .4rem;
      li{
        font-size: 1.6rem;
      }
    }
  }
  .staff-scrollbar{
    margin-left: 102.7rem;
  }
}

/* 当院について ****************************************/
.map{
  padding: 10.5rem 0 7.6rem;
  background: #F3F7FF;
  h2{
    width: 19.5rem;
    margin: 0 auto;
    border-top: .5px solid #0175D0;
    border-bottom: .5px solid #0175D0;
    color: #1456C5;
    font-family: serif;
    font-size: 2.4rem;
    letter-spacing: .1em;
    line-height: 4rem;
    text-align: center;
  }
}
.map-inner{
  margin-top: 3rem;
  &:nth-of-type(2){
    margin-top: 4rem;
  }
  .img{
    width: 35rem;
    margin: 0 auto;
  }
  .cnt{
    h3{
      width: 35.4rem;
      margin: 1.3rem auto 0;
      border-bottom: 2px dotted;
      color: #0175D0;
      font: 700 1.8rem serif;
      text-align: center;
      &.ekimae{
        color: #79A700;
      }
    }
    dl{
      display: grid;
      grid-template-columns: 9.4rem 1fr;
      align-items: center;
      gap: 1rem 0;
      margin: 1.1rem 2rem 0;
      dt{
        padding-left: 2.1rem;
        background-position: 0 50%;
        background-repeat: no-repeat;
        font-size: 1.2rem;
        letter-spacing: .1em;
        &.tel,
        &.tel2{
          background-size: 1.6rem;
          + dd{
            font-size: 1.5rem;
            letter-spacing: .1em;
          }
        }
        &.tel{
          background-image: url(img/map-tel-icon-sp.webp);
        }
        &.tel2{
          background-image: url(img/map-tel-icon2-sp.webp);
        }
        &.adr,
        &.adr2{
          background-size: 1.2rem;
          + dd{
            font-size: 1.2rem;
          }
        }
        &.adr{
          background-image: url(img/map-icon-sp.webp);
        }
        &.adr2{
          background-image: url(img/map-icon2-sp.webp);
        }
        &.sta,
        &.sta2{
          background-size: 1.3rem;
          + dd{
            font-size: 1.4rem;
            letter-spacing: .1em;
          }
        }
        &.sta{
          background-image: url(img/map-train-icon-sp.webp);
        }
        &.sta2{
          background-image: url(img/map-train-icon2-sp.webp);
        }
      }
    }
    p{
      margin: .8rem 0 0 2rem;
      font-size: .9rem;
    }
  }
  .gmap{
    margin-top: 1.9rem;
  }
}
@media screen and (min-width: 768px) {
  .map{
    padding: 11rem 0 18rem;
    h2{
      width: 24.4rem;
      font-size: 3.4rem;
      line-height: 5.2rem;
    }
  }
  .map-inner{
    display: grid;
    grid-template-columns: 52.4rem 55rem;
    justify-content: center;
    gap: 2rem 2.6rem;
    margin-top: 4rem;
    &:nth-of-type(2){
      margin-top: 8rem;
    }
    .img{
      grid-column: 2;
      width: 100%;
    }
    .cnt{
      grid-column: 1;
      grid-row: 1;
      h3{
        width: auto;
        margin-top: 2rem;
        padding-bottom: .2rem;
        font-size: 2.7rem;
      }
      dl{
        grid-template-columns: 15.4rem 1fr;
        gap: 3.7rem 0;
        margin: 3.7rem 0 0;
        dt{
          padding-left: 4.8rem;
          font-size: 1.7rem;
          &.tel,
          &.tel2{
            background-position: 1.9rem 50%;
            background-size: 2.3rem;
            + dd{
              font-size: 2rem;
            }
          }
          &.tel{
            background-image: url(img/map-tel-icon-sp.webp);
          }
          &.tel2{
            background-image: url(img/map-tel-icon2-sp.webp);
          }
          &.adr,
          &.adr2{
            background-position: 2.2rem 50%;
            background-size: 1.7rem;
            + dd{
              font-size: 1.7rem;
            }
          }
          &.adr{
            background-image: url(img/map-icon-sp.webp);
          }
          &.adr2{
            background-image: url(img/map-icon2-sp.webp);
          }
          &.sta,
          &.sta2{
            background-position: 1.9rem 50%;
            background-size: 1.9rem;
            + dd{
              font-size: 2rem;
            }
          }
          &.sta{
            background-image: url(img/map-train-icon-sp.webp);
          }
          &.sta2{
            background-image: url(img/map-train-icon2-sp.webp);
          }
        }
      }
      p{
        margin: 1.4rem 0 0 15.4rem;
        font-size: 1.5rem;
      }
    }
    .gmap{
      grid-column: 1/3;
      margin-top: 0;
    }
  }
}

/* フッター ****************************************/
.footer{
  padding: 1.5rem;
  background: white;
  .logo{
    width: 24.9rem;
    margin-inline: auto;
  }
}

/*
* お問合わせ
*/
.mw_wp_form_confirm{
  .input-only{
    display: none;
  }
}
.contact{
  overflow: hidden;
  background-image: url(img/contact-bg1-sp.webp), url(img/contact-bg2-sp.webp);
  background-position: 50% 0, 50% 100%;
  background-size: 100%;
  background-repeat: no-repeat;
  &:has(.mw_wp_form_complete){
    background: url(img/contact-bg1-sp.webp) 50% 0/100% no-repeat;
  }
}
.contact-inner{
  min-height: calc(100vh - 9rem);
  padding: 10.5rem 2rem 5rem;
  h2{
    margin-bottom: 2.6rem;
    color: white;
    font-family: serif;
    font-size: 3rem;
    letter-spacing: .08em;
    text-align: center;
    &._thanks{
      margin-top: 10.4rem;
      font-size: 2.5rem;
    }
    &::after{
      content: '';
      display: block;
      width: 37.5rem;
      height: .3rem;
      margin-left: -2rem;
      background: linear-gradient(90deg, transparent 2%, rgb(255 255 255/60%), transparent 98%);
    }
  }
  p{
    color: white;
    font-size: 1.2rem;
    letter-spacing: .05em;
    line-height: 2;
    &.attention{
      margin-top: 3.5rem;
      color: #FF1A1A;
      font-size: 1.3rem;
      letter-spacing: 0;
      line-height: 1.8;
    }
  }
  .btn{
    display: block;
    position: relative;
    margin: auto;
    border-radius: 3rem;
    padding: .6rem 0 .5rem;
    background: radial-gradient(ellipse 20rem 21rem at 50% -4rem, #0C86E1, #004EA7);
    color: white;
    font-size: 1.2rem;
    letter-spacing: .05em;
    text-align: center;
    text-decoration: none;
    box-shadow: .2rem .2rem .3rem rgb(0 0 0/16%);
    &:disabled{
      background: #aaa;
    }
    &::after{
      content: '';
      display: block;
      position: absolute;
      top: 0;
      right: .9rem;
      width: .45rem;
      height: 100%;
      background: url(img/btn-arrow.webp) center/contain no-repeat;
    }
  }
  .btn_top{
    width: 18rem;
    margin-top: 7rem;
  }
  .mw_wp_form{
    width: 37.5rem;
    margin: 0 -2rem;
    padding: 4.5rem 2rem 0;
    background: linear-gradient(transparent, white 10rem, white calc(100% - 10rem), transparent);
  }
  form{
    font-size: 1.6rem;
    h3{
      margin: 1.5rem 0 .3rem;
      font-size: 1.3rem;
      .required{
        display: inline-block;
        vertical-align: middle;
        margin-left: .8rem;
        border-radius: 1rem;
        padding: .1rem .6rem;
        background: #FF1A1A;
        color: white;
        font-size: .8rem;
      }
    }
    input[type="text"],
    input[type="email"],
    textarea,
    select{
      width: 100%;
      border: .5px solid #0175D0;
      padding: 1rem;
      background: white;
      box-shadow: inset .2rem .2rem .2rem #AFC2DC;
      font-size: 1.6rem;
    }
    input[type="radio"] + span{
      vertical-align: bottom;
      font-size: 1.3rem;
    }
    .vertical-item{
      margin: 0 !important;
    }
    .clinic{
      display: flex;
      gap: 3.7rem;
      margin: 1rem 0 2.4rem;
    }
    .situation{
      display: flex;
      flex-direction: column;
      gap: 1rem;
      margin: 1rem 0 2.4rem;
    }
    .date{
      display: flex;
      flex-wrap: wrap;
      gap: 1rem;
      input{
        width: 17rem;
        padding: 1.5rem 1rem;
        font-size: 1.3rem;
      }
      select{
        width: 15rem;
        padding: 1.5rem 1rem;
        font-size: 1.3rem;
      }
    }
    .consent{
      margin-top: 1.3rem;
      label{
        display: flex;
        align-items: center;
        gap: 1rem;
        width: fit-content;
        padding: 1rem 1rem 1rem 0;
        span{
          font-size: 1.3rem;
          a{
            color: #0175D0;
            text-decoration: none;
          }
        }
      }
    }
    .submit{
      width: 23rem;
      margin-top: 3.3rem;
    }
    .back{
      width: 17rem;
      margin-top: 4rem;
      background: #888;
    }
  }
}
@media screen and (min-width: 768px) {
  .contact{
    background-image: url(img/contact-bg1.webp), url(img/contact-bg2.webp);
    background-size: 192rem;
    &:has(.mw_wp_form_complete){
      background: url(img/contact-bg1.webp) 50% 0/192rem no-repeat;
    }
  }
  .contact-inner{
    width: 90rem;
    margin: 0 auto;
    min-height: calc(100vh - 10.2rem);
    padding: 20rem 0 10rem;
    h2{
      margin-bottom: 5rem;
      font-size: 3.4rem;
      &._thanks{
        margin-top: 8rem;
        font-size: 3.4rem;
      }
      &::after{
        margin: .7rem auto 0;
      }
    }
    p{
      font-size: 1.6rem;
      line-height: 1.5;
      &._thanks{
        text-align: center;
      }
      &.attention{
        margin-top: .5rem;
        font-size: 1.6rem;
        line-height: 1.5;
      }
    }
    .btn{
      padding: 1rem 0;
      font-size: 1.5rem;
    }
    .btn_top{
      margin-top: 9rem;
    }
    .mw_wp_form{
      width: auto;
      margin: 0 calc(45rem - 50vw);
      padding: 5rem 0 0;
      background: none;
    }
    form{
      width: 90rem;
      margin: 0 auto;
      font-size: 1.8rem;
      h3{
        margin-top: 2rem;
        font-size: 1.5rem;
        .required{
          vertical-align: middle;
          margin-left: 1.7rem;
        }
      }
      input[type="text"],
      input[type="email"],
      select{
        width: 45rem;
      }
      input[type="radio"] + span{
        vertical-align: bottom;
        font-size: 1.5rem;
      }
      .clinic,
      .situation{
        flex-flow: row wrap;
        gap: 1rem 3.3rem;
        margin: 1rem 0 3.4rem;
      }
      .consent{
        margin-top: 3.4rem;
        label{
          span{
            font-size: 1.5rem;
          }
        }
      }
      .submit{
        margin-top: 9rem;
      }
    }
  }
}