@charset "utf-8";

.price .blank {
  opacity: 0;
}
.price .jost {
  font-variant-numeric: tabular-nums;
}

@media screen and (min-width: 961px) {
  .wrapper {
    overflow: revert;
  }
}

/* intro
---------------------------------------------- */
.intro {
  padding-block: clamp(80px, 3.79rem + 5.18vw, 160px) clamp(70px, 2.71rem + 7.12vw, 180px);
  position: relative;
  z-index: 0;
}

.intro__copy {
  text-align: center;
}
.intro__text {
  font-size: clamp(16px, 0.92rem + 0.17vw, 18px);
  letter-spacing: 0.05em;
  line-height: 2.5;
  margin-top: 2.5em;
  text-align: center;
}

.introImgWrap {
  margin-top: clamp(70px, 3.46rem + 3.88vw, 130px);
}
.introImgList {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  row-gap: 25px;
}
.introImgList__name {
  font-size: clamp(12px, 0.62rem + 0.21vw, 14px); /* 961 - 1920 */
  letter-spacing: 0.05em;
  line-height: 1.4;
  margin-top: 1em;
  text-align: center;
}

@media screen and (max-width: 960px) {
  .introImgList {
    grid-template-columns: repeat(3, 1fr);
  }
  .introImgList__name {
    font-size: clamp(12px, 0.67rem + 0.34vw, 14px); /* 375 - 960 */
  }
}

@media screen and (max-width: 768px) {
  .intro__text {
    line-height: 2.375;
    text-align: left;
  }

  .introImgList {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* price
---------------------------------------------- */
.priceSec {
  background-color: #f5f3ef;
  padding-bottom: clamp(70px, 3.16rem + 5.18vw, 150px);
}

.priceNav {
  position: relative;
  z-index: 1;
}
.priceNavList {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  max-width: 1100px;
}
.priceNavList > li {
  position: relative;
  z-index: 0;
}
.priceNavList > li + li::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 1px;
  height: 70px;
  background-color: #ccc;
}
.priceNavList__btn {
  display: block;
  font-size: clamp(16px, 0.62rem + 0.63vw, 22px); /* 961 - 1920 */
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
  color: #ccc;
  padding: 55px 1em;
  transition: .4s;
  text-align: center;
  position: relative;
  z-index: 0;
}
.priceNavList__btn.is-active {
  color: #ff8733;
}
.priceNavList__btn.is-active::before {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 0);
  width: 20px;
  height: 16px;
  background-color: #ffa566;
  clip-path: polygon(50% 100%, 0 0, 100% 0);
  z-index: 1;
}

/* priceContents */
.priceContents {
  width: 95%;
  max-width: 1580px;
  background-color: #fff;
  border-top: 2px solid #ffa566;
  padding-block: 80px 100px;
  position: relative;
  z-index: 0;
}

.priceTitle {
  font-size: clamp(22px, 0.96rem + 0.87vw, 32px);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.8;
  text-align: center;
}
.priceContents__text {
  margin-top: 3em;
  text-align: center;
}

/* salonBox */
.salonBox {
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 960px;
  gap: 30px calc(30 / 960 * 100%);
}
* + .salonBox {
  margin-top: 60px;
}
.salonBoxHead {
  flex: 1;
}
.salonBox__text {
  color: #ff8733;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 2.2;
}
.salonBoxBtn {
  width: 300px;
}
.salonBox__btn {
  font-size: 24px;
  background-color: #fff;
  border: 1px solid #ff8733;
  color: #ff8733;
  padding: .7em;
  padding-right: 1.2em;
}
.salonBox__btn::before {
  background-color: #ff8733;
}
.salonBox__btn .text {
  position: relative;
  z-index: 0;
}
.salonBox__btn .text::after {
  content: '';
  position: absolute;
  top: 50%;
  right: -44%;
  transform: translateY(-50%);
  width: 11px;
  height: 10px;
  background-color: #ff8733;
  -webkit-mask-image: url(../../img/common/icon_arrow.svg);
  mask-image: url(../../img/common/icon_arrow.svg);
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  transition: .4s ease;
  z-index: 1;
}

@media (hover: hover) and (pointer: fine) {
  .priceNavList__btn:hover {
    color: #ff8733;
  }

  .salonBox__btn:hover .text::after {
    background-color: #fff;
  }
}

@media (max-width: 768px) {
  .priceSec {
    padding-bottom: 0;
  }
  .priceContents {
    width: 100%;
    padding-block: 50px 60px;
  }
  .priceContents::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    width: 15px;
    height: 12px;
    background-color: #ffa566;
    clip-path: polygon(50% 100%, 0 0, 100% 0);
    z-index: 1;
  }

  /* priceNav */
  .priceNav {
    /* overflow-x: auto; */
    padding-block: 10px;
  }
  .priceNavList {
    /* grid-template-columns: repeat(4, 200px); */
    /* padding-inline: calc(50vw - 200px / 2); */
    /* margin-inline: 0; */
    grid-template-columns: 1fr 1fr;
  }
  .priceNavList > li + li::before {
    height: 30px;
  }
  .priceNavList > li:nth-child(n + 3)::after {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 80%;
    height: 1px;
    background-color: #ccc;
  }
  .priceNavList > li:nth-child(odd)::before {
    display: none;
  }
  .priceNavList__btn {
    padding-block: 15px;
  }
  .priceNavList__btn.is-active::before {
    content: none;
  }

  .priceContents__text {
    margin-top: 1.5em;
  }


  /* salonBox */
  .salonBox {
    flex-direction: column;
    max-width: 400px;
  }
  * + .salonBox {
    margin-top: 40px;
  }
  .salonBoxHead {
    width: 100%;
    flex: revert;
  }
  .salonBox__text {
    font-size: 12px;
  }
  .salonBoxBtn {
    width: 260px;
  }
  .salonBox__btn {
    font-size: 22px;
  }
  .salonBox__btn .text::after {
    width: 10px;
    height: 9px;
  }
}



/* priceTable
---------------------------------------------- */
.priceTable {
  max-width: 1380px;
  overflow-x: auto;
  border: 1px solid #666;
  border-right: none;
  margin-top: 30px;
  margin-inline: auto;
}

.priceTable table {
  width: 100%;
  border-collapse: collapse;
}

.priceTable th,
.priceTable td {
  background-color: #fff;
  border: 1px solid #ccc;
  border-right: none;
  border-left: none;
  padding: 15px 5px;
  font-size: clamp(14px, 0.62rem + 0.42vw, 18px); /* 961 - 1920 */
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.4;
  vertical-align: middle;
  text-align: left;
  position: relative;
  z-index: 0;
}
.priceTable th::before,
.priceTable td::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  background-color: #666;
  z-index: 1;
}

.priceTableHead th {
  width: calc(300 / 1380 * 100%);
  background-color: #ece8df;
  font-size: clamp(18px, 0.87rem + 0.42vw, 22px); /* 961 - 1920 */
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
}
.priceTableHead th:nth-child(1) {
  width: calc(480 / 1380 * 100%);
  font-size: clamp(16px, 0.75rem + 0.42vw, 20px); /* 961 - 1920 */
  font-weight: 500;
}
.priceTableHead th .subTitle {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
  font-size: 72%;
  margin-bottom: .5em;
}
.priceTableHead th .subTitle::before,
.priceTableHead th .subTitle::after {
  content: '';
  display: block;
  width: 1px;
  height: 20px;
  background-color: #4d4d4d;
}
.priceTableHead th .subTitle::before {
  transform: rotate(-40deg);
}
.priceTableHead th .subTitle::after {
  transform: rotate(40deg);
}
.priceTable .courseCount th {
  text-align: center;
}
.priceTable .courseCount th .jost {
  font-size: 111.111%;
}
.priceTable .courseCount td {
  font-size: clamp(16px, 0.75rem + 0.42vw, 20px); /* 961 - 1920 */
  text-align: center;
}
.priceTable .courseCount td .small {
  font-size: 70%;
}

.priceTable .vTxtWrap {
  font-size: clamp(16px, 0.75rem + 0.42vw, 20px); /* 961 - 1920 */
  text-align: center;
}
.priceTable th.vTxtWrap::before {
  background-color: #ccc;
}
.priceTable .vTxtWrap .vTxt {
  white-space: nowrap;
}

.priceTable th.titleBody {
  background-color: #fff2ff;
  border-bottom: 1px solid #666;
}
.priceTable th.titleFacial {
  background-color: #def4f6;
}

.priceTable tr.separate th,
.priceTable tr.separate td {
  border-bottom: 1px solid #666;
}

.priceTable .circle {
  display: block;
  border-radius: 50%;
  width: 36px;
  aspect-ratio: 1;
  border: 1px solid;
  margin: auto;
  text-align: center;
  position: relative;
  z-index: 0;
}

.priceTable tr td .circle.check::before {
  content: '';
  width: 14px;
  height: 13px;
  background: url(../../img/menu/icon_check.svg) center/contain no-repeat;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

/* カスタム */
.priceTable tr.priceTableHead th:nth-child(2) {
  background-color: #ffa566;
}

.priceTable tr td:nth-child(2),
.priceTable tr.categoryHead td:nth-child(3) {
  background-color: #fff3eb;
}

.priceTable tr td:nth-child(2) .circle,
.priceTable tr.categoryHead td:nth-child(3) .circle {
  border-color: #ffd9bf;
}

.priceTable tr td:nth-child(2) .circle.check,
.priceTable tr.categoryHead td:nth-child(3) .circle.check {
  background-color: #ffa566;
}

/* ベーシック */
.priceTable tr.priceTableHead th:nth-child(3) {
  background-color: #ffcd79;
}

.priceTable tr td:nth-child(3),
.priceTable tr.categoryHead td:nth-child(4) {
  background-color: #fff5e4;
}

.priceTable tr td:nth-child(3) .circle,
.priceTable tr.categoryHead td:nth-child(4) .circle {
  border-color: #ffdda5;
}

.priceTable tr td:nth-child(3) .circle.check,
.priceTable tr.categoryHead td:nth-child(4) .circle.check {
  background-color: #ffcd79;
}

/* スタンダード */
.priceTable tr.priceTableHead th:nth-child(4) {
  background-color: #fff37b;
}

.priceTable tr td:nth-child(4),
.priceTable tr.categoryHead td:nth-child(5) {
  background-color: #fffde6;
}

.priceTable tr td:nth-child(4) .circle,
.priceTable tr.categoryHead td:nth-child(5) .circle {
  border-color: #fff37b;
}

.priceTable tr td:nth-child(4) .circle.check,
.priceTable tr.categoryHead td:nth-child(5) .circle.check {
  background-color: #fff37b;
}

.priceTableCaption {
  max-width: 1380px;
  color: #999;
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: 0.05em;
  margin-top: 1em;
  text-align: right;
}

@media screen and (max-width: 1200px) {
  .priceTableHead th:nth-child(1) {
    width: 20%;
  }
  .priceTableHead th .subTitle {
    gap: .5em;
  }
}

@media screen and (min-width: 961px) {
  .scrollCaution {
    display: none;
  }
}

@media screen and (max-width: 960px) {
  /* priceTable */
  .priceTableWrap {
    position: relative;
    z-index: 0;
  }

  .priceTable {
    overflow-x: auto;
    position: relative;
    z-index: 0;
  }
  .priceTable::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(255 105 0 / .3);
    transition: .4s;
    z-index: 11;
  }
  .priceTable.is-swipe::before {
    opacity: 0;
    visibility: hidden;
  }

  .priceTable table {
    width: 1000px;
  }

  .priceTable th,
  .priceTable td {
    padding: 10px;
  }

  .priceTable th.vTxtWrap {
    width: 40px;
    padding: 0;
  }

  .priceTable tr th {
    position: sticky;
    left: 0;
    z-index: 10;
  }
  .priceTable tr th.categorySubName {
    left: var(--vTxtW);
  }
  .priceTable tr.priceTableHead th:nth-child(n + 2) {
    position: relative;
    inset: revert;
    z-index: 0;
  }

  .priceTableHead th {
    width: 240px;
    line-height: 1.2;
  }
  .priceTableHead th:nth-child(1) {
    width: calc(100% - 140px * 3);
  }
  .priceTableHead th .subTitle {
    gap: .8em;
    font-size: 11px;
  }

  .priceTable .courseCount td .small {
    display: block;
  }
  .priceTable .courseCount td .small.blank {
    display: none;
  }

  .priceTable .circle {
    width: 22px;
  }
  .priceTable tr td .circle.check::before {
    width: 9px;
    height: 8px;
  }

  .scrollCaution {
    width: 240px;
    transition: .4s;
    position: absolute;
    top: 50px;
    left: 50%;
    transform: translate(-50%, 0);
    z-index: 20;
  }
  .scrollCaution.is-hide {
    opacity: 0;
    visibility: hidden;
  }

  .priceTableCaption {
    font-size: 11px;
    text-align: left;
  }
}

@media (max-width: 660px) {
  .priceTable table {
    width: 660px;
  }
  .priceTableHead th {
    width: 140px;
    line-height: 1.2;
  }
  .priceTableHead th:nth-child(1) {
    width: calc(100% - 140px * 3);
  }
}

/* priceBox
---------------------------------------------- */
.priceBox {
  display: flex;
  flex-wrap: wrap;
  max-width: 1380px;
  border: 1px solid #666;
}
* + .priceBox {
  margin-top: 100px;
}
.priceBox + .priceBox {
  margin-top: 50px;
}

.priceBoxHead {
  display: grid;
  width: calc(430 / 1380 * 100%);
}
.priceBoxHeadline {
  display: grid;
  grid-template-columns: calc(210 / 430 * 100%) 1fr;
}
.priceBoxHeadline + .priceBoxHeadline {
  border-top: 1px solid #666;
}
.priceBoxList {
  display: grid;
}
.priceBoxList > li {
  display: grid;
  place-content: center;
}
.priceBox__title {
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid #666;
  font-size: clamp(18px, 0.96rem + 0.35vw, 22px);
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-align: center;
}
.priceBox__title.orange {
  background-color: #ffa566;
}
.priceBox__title.orange02 {
  background-color: #ffcd79;
}
.priceBox__title.yellow {
  background-color: #fff37b;
}

.priceBoxList > li + li {
  border-top: 1px solid #ccc;
}

.priceBox__price {
  font-size: clamp(14px, 0.71rem + 0.35vw, 18px);
  letter-spacing: 0.05em;
  line-height: 1.5;
  padding: 1em .5em;
  text-align: center;
}
.priceBox__price .jost {
  font-size: 111.111%;
  margin-right: 3px;
}

.priceBoxBody {
  flex: 1;
  display: flex;
  gap: 20px calc(20 / 900 * 100%);
  border-left: 1px solid #ccc;
  padding: 25px;
}
.choice__title {
  display: grid;
  place-content: center;
  width: calc(163 / 900 * 100%);
  background-color: #ece8df;
  font-size: clamp(14px, 0.79rem + 0.17vw, 16px);
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.75;
  padding: 0.5em;
  text-align: center;
}

.choiceBox {
  flex: 1;
  display: flex;
  align-items: center;
}
.choiceBox.flex {
  align-items: flex-start;
  gap: 1em 5%;
}
.choiceBox.flex .choiceList {
  flex: 1;
}

.choiceList > li + li {
  margin-top: 1.5em;
}
.choiceList > li.flex {
  gap: 1em;
}

.choiceList__text {
  font-size: clamp(12px, 0.67rem + 0.17vw, 14px);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.6;
  padding-left: 1.5em;
  text-indent: -1.5em;
}

.choiceList--dot .choiceList__text {
  display: flex;
  align-items: flex-start;
  gap: .5em;
  padding-left: 0;
  text-indent: 0;
}
.choiceList--dot .choiceList__text::before {
  content: '';
  display: block;
  width: 4px;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: #4d4d4d;
  margin-top: 0.65em;
}

.choiceList__price {
  margin-left: auto;
}

/* point */
.point .priceBoxHead {
  width: calc(380 / 1380 * 100%);
}
.point .priceBoxHeadline {
  grid-template-columns: calc(230 / 380 * 100%) 1fr;
}
.point .priceBox__title {
  font-size: clamp(14px, 0.71rem + 0.35vw, 18px);
  font-weight: 400;
}
.point .priceBox__title .jost {
  font-size: 111.111%;
}
.point .priceBoxList {
  display: grid;
  place-content: center;
}
.point .priceBox__title.orange + .priceBoxList {
  background-color: #fff3eb;
}
.point .priceBox__title.orange02 + .priceBoxList {
  background-color: #fff5e4;
}
.point .priceBox__title.yellow + .priceBoxList {
  background-color: #fffde6;
}

@media screen and (max-width: 1200px) {
  .priceBoxHeadline {
    grid-template-columns: calc(140 / 430 * 100%) 1fr;
  }
  .point .priceBoxHeadline {
    grid-template-columns: calc(180 / 380 * 100%) 1fr;
  }
}

@media screen and (max-width: 960px) {
  .priceBoxHead,
  .point .priceBoxHead {
    flex: revert;
    width: 100%;
  }
  .priceBoxBody {
    flex: revert;
    width: 100%;
    border-top: 1px solid #666;
    border-left: none;
  }
}

@media screen and (max-width: 768px) {
  * + .priceBox {
    margin-top: 50px;
  }

  .priceBoxHeadline {
    grid-template-columns: calc(150 / 320 * 100%) 1fr;
  }
  .priceBox__price {
    padding-block: .5em;
  }
  .priceBoxBody {
    flex-direction: column;
  }
  .choice__title {
    width: 100%;
  }
  .choiceBox {
    flex: revert;
    width: 100%;
  }
  .choiceBox.flex .choiceList {
    flex: revert;
    width: 100%;
  }
  .choiceList > li + li {
    margin-top: 1em;
  }
  .choiceList > li.flex .choiceList__text {
    width: 60%;
  }
  .point .priceBoxHeadline {
    grid-template-columns: calc(190 / 320 * 100%) 1fr;
  }
}