/*

  下層サブビジュアル

================================================================
*/
.sv {
  width: 100%;
  height: 200px;
  margin-top: 90px;
  border-bottom: 1px solid #d0c0b4;}
.sv .flex {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;}
.sv .flex h1 {
  font-family: nss;
  font-weight: 500;
  font-size: 36px;
  letter-spacing: .1em;}
.sv .flex h1 span {
  font-size: 76%;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.sv {
  height: 40vw;
  margin-top: 17vw;}
.sv .flex h1 {
  padding: 0 6vw;
  line-height: 1.35;
  font-size: 6.2vw;}
}

/*

  下層ぱんくず

================================================================
*/
.pankz {
  width: 100%;
  height: 50px;
  margin-bottom: 50px;}
.pankz.blog {
  margin-top: 90px;
  border-bottom: 1px solid #d0c0b4;}
.pankz ul {
  display: flex;
  align-items: center;
  height: 100%;
  font-size: 12px;}
.pankz ul li {
  position: relative;}
.pankz ul li + li {
  margin-left: 20px;}
.pankz ul li + li:before {
  pointer-events: none;
  content: '';
  position: absolute;
  top: 0;
  left: -11px;
  width: 1px;
  height: 100%;
  background: #d0c0b4;
  transform: rotate(10deg);}
.pankz ul li a {
  color: #bb9163;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.pankz {
  width: 100%;
  height: 10vw;
  margin-bottom: 10vw;}
.pankz.blog {
  margin-top: 17vw;}
.pankz ul {
  overflow: auto;
  padding: 0 6vw;
  font-size: 2.5vw;}
.pankz ul li {
  flex-shrink: 0;}
.pankz ul li + li {
  margin-left: 5vw;}
.pankz ul li + li:before {
  left: -2.6vw;}
}


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

  共通パーツ

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

/*

  下層メインブロック

================================================================
*/
.mainblock + .mainblock {
  margin-top: 90px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.mainblock + .mainblock {
  margin-top: 15vw;}
}

/*

  ページ内ネーション

================================================================
*/
.pagenav {
  overflow: hidden;
  border-bottom: 1px solid #d0c0b4;}
.pagenav ul {
  position: relative;
  bottom: -1px;
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid #d0c0b4;}
.pagenav ul li {
  width: calc(100% / 3);
  height: 50px;
  border: solid #d0c0b4;
  border-width: 0 1px 1px 1px;}
.pagenav ul li + li {
  border-left: none;}
.pagenav ul li:nth-child(3n+1) {
  border-left: 1px solid #d0c0b4;}
.pagenav ul li:last-child {
  border-bottom: none;}
.pagenav ul li a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  background: url(../img/common/icon_nation.svg) no-repeat right 15px center / auto 45%;
  transition: .2s;}
.pagenav ul li a:hover {
  color: #b78a59;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.pagenav {
  font-size: 3.3vw;}
.pagenav ul li {
  width: 50%;
  height: 12vw;
  border-width: 0 0 1px 0;}
.pagenav ul li:nth-child(3n+1) {
  border-left: none;}
.pagenav ul li:nth-child(odd) {
  border-right: 1px solid #d0c0b4;}
.pagenav ul li a {
  justify-content: flex-start;
  padding: 0 5vw;
  background-position: right 2vw center;
  background-size: auto 38%;
  line-height: 1.5;}
}

/*

  下層 h2

================================================================
*/
.th2 {
  margin-bottom: 40px;
  text-align: center;
  font-family: nss;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.5;
  letter-spacing: .2em;}
.th2 span {
  position: relative;
  display: inline-block;}
.th2 span:before,
.th2 span:after {
  pointer-events: none;
  content: '';
  position: absolute;
  top: 50%;
  width: 20px;
  height: 1px;
  background-color: #534444;}
.th2 span:before {
  left: -35px;}
.th2 span:after {
  right: -35px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.th2 {
  margin-bottom: 10vw;
  font-size: 5.5vw;
  line-height: 1.35;
  letter-spacing: .1em;}
.th2 span {
  display: block;
  padding: 0 6vw;}
.th2 span:before,
.th2 span:after {
  width: 3vw;}
.th2 span:before {
  left: 0;}
.th2 span:after {
  right: 0;}
.th2 span i {
  display: block;
  margin-bottom: 2vw;}
}

/*

  ロール付きイメージ

================================================================
*/
figure.roll:before {
  pointer-events: none;
  content: '';
  position: absolute;
  top: -20px;
  left: -20px;
  width: 90px;
  aspect-ratio: 1/1;
  background-color: #f8f1eb;
  animation: rotateAnimation 10s linear infinite;
  z-index: -1;}
figure.roll:after {
  pointer-events: none;
  content: '';
  position: absolute;
  bottom: -20px;
  right: 20px;
  width: 90px;
  aspect-ratio: 1/1;
  background-color: #f8f1eb;
  animation: rotateAnimation 10s linear infinite;
  z-index: -1;}
@keyframes rotateAnimation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
figure.roll:before {
  top: -5vw;
  left: -5vw;
  width: 10vw;}
figure.roll:after {
  bottom: -5vw;
  right: 5vw;
  width: 12vw;}
}

/*

  リスト：数字付き

================================================================
*/
.list-number {
  position: relative;
  padding-left: 30px;
  line-height: 1.6;}
.list-number li {
  position: relative;
  list-style-type: decimal-leading-zero;}
.list-number li + li {
  margin-top: 7px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.list-number {
  padding-left: 6vw;}
.list-number li + li {
  margin-top: 2vw;}
}

/*

  CTA

================================================================
*/
.cta {
  display: flex;
  margin-top: 20px;}
.cta a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 220px;
  height: 50px;
  border-radius: 100svh;
  font-family: nss;
  font-weight: 400;
  font-size: 18px;
  letter-spacing: .05em;
  color: #fff;}
.cta a span {
  display: inline-block;
  padding: 2px 0;
  padding-left: 1.7em;
  background-repeat: no-repeat;
  background-position: left center;
  background-size: auto 100%;}
.cta a.tel {
  pointer-events: none;
  background-color: #534444;}
.cta a.tel span {
  background-image: url(../img/common/icon_tel.svg);}
.cta a.web {
  background-color: #ec8871;}
.cta a.web span {
  background-image: url(../img/common/icon_cal.svg);}
.cta a + a {
  margin-left: 10px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.cta {
  margin-top: 5vw;}
.cta a {
  width: 49%;
  height: 11vw;
  font-size: 3.8vw;}
.cta a span {
  padding: .2vw 0;
  padding-left: 1.5em;}
.cta a.tel {
  pointer-events: auto;}
.cta a + a {
  margin-left: 2%;}
}


/*

  asset01　：　こんな方におすすめ

================================================================
*/
.asset01 {
  overflow: hidden;}
.asset01 ul {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 20px 0;}
.asset01 ul:after {
  pointer-events: none;
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 2000px;
  height: 100%;
  margin-left: -2000px;
  background-color: #f8f1eb;}
.asset01 ul li {
  position: relative;
  width: 480px;
  margin-top: 20px;
  padding: 20px;
  background-color: #fff;
  border: 1px solid #e4ccb6;
  z-index: 2;}
.asset01 ul li:nth-child(-n+2) {
  margin-top: 0;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.asset01 ul {
  padding: 5vw 0;
  font-size: 3.5vw;}
.asset01 ul:after {
  left: 90%;}
.asset01 ul li {
  width: 100%;
  margin-top: 0;
  padding: 3.5vw 6vw;
  border-width: 1px 0 0;}
.asset01 ul li:last-child {
  border-bottom: 1px solid #e4ccb6;}
}

/*

  asset02　：　左右連続コンテンツ

================================================================
*/
.asset02 {
  overflow: hidden;
  padding-bottom: 40px;}
.asset02 ul li {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;}
.asset02 ul li + li {
  margin-top: 50px;}
.asset02 ul li figure {
  position: relative;
  width: 470px;}
.asset02 ul li > div {
  flex: 1;
  margin-left: 30px;
  padding-top: 30px;}
.asset02 ul li > div > * {
  padding-left: 20px;}
.asset02 ul li > div p {
  line-height: 1.9;}
.asset02 ul li > div h2,
.asset02 ul li > div h3 {
  position: relative;
  margin-bottom: 35px;
  font-family: nss;
  font-weight: 400;
  font-size: 24px;
  letter-spacing: .1em;
  line-height: 1.65;}
.asset02 ul li > div h2 span,
.asset02 ul li > div h3 span {
  font-size: 80%;}
.asset02 ul li > div h2:after,
.asset02 ul li > div h3:after {
  pointer-events: none;
  content: '';
  position: absolute;
  bottom: -20px;
  left: 0;
  width: 1000px;
  height: 1px;
  background-color: #d6d6d6;}
.asset02 ul li.reverse {
  flex-direction: row-reverse;}
.asset02 ul li.reverse > div {
  margin-left: 0;
  margin-right: 30px;}
.asset02 ul li.reverse > div > * {
  padding-left: 0;
  padding-right: 20px;}
.asset02 ul li.reverse > div h2:after,
.asset02 ul li.reverse > div h3:after {
  left: auto;
  right: 0;
  bottom: -20px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.asset02 {
  padding-bottom: 0;}
.asset02 ul li {
  flex-direction: column;}
.asset02 ul li + li {
  margin-top: 10vw;}
.asset02 ul li figure {
  width: 90vw;}
.asset02 ul li > div {
  margin-left: 0;
  padding-top: 0;
  margin-top: 5vw;
  padding: 0 6vw 0 8vw;
  font-size: 3.5vw;}
.asset02 ul li > div > * {
  padding-left: 0;}
.asset02 ul li > div h2,
.asset02 ul li > div h3 {
  margin-bottom: 6vw;
  font-size: 5vw;}
.asset02 ul li > div h2:after,
.asset02 ul li > div h3:after {
  bottom: -3vw;}
.asset02 ul li.reverse {
  flex-direction: column;
  align-items: flex-end;}
.asset02 ul li.reverse > div {
  margin-right: 0;}
.asset02 ul li.reverse > div > * {
  padding-right: 0;}
.asset02 ul li.reverse > div h2:after,
.asset02 ul li.reverse > div h3:after {
  bottom: -3vw;}
}

/*

  asset03　：　横型ブロックリスト

================================================================
*/
.asset03 {
  overflow: hidden;
  padding: 60px 0;
  background-color: #f8f1eb;}
.asset03 ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;}
.asset03 ul li {
  width: 490px;
  margin-top: 20px;
  padding: 30px;
  background-color: #fff;}
.asset03 ul li:nth-child(-n+2) {
  margin-top: 0;}
.asset03 ul li h2,
.asset03 ul li h3 {
  position: relative;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #dcd0c4;
  font-family: nss;
  font-weight: 400;
  font-size: 24px;
  letter-spacing: .1em;
  line-height: 1.6;}
.asset03 ul li .txt {
  line-height: 1.8;}
.asset03 ul li .sub {
  margin-bottom: 10px;
  padding-bottom: 7px;
  border-bottom: 1px solid #dcd0c4;
  font-size: 14px;
  line-height: 1.5;}
.common-link {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 30px;
  width: 100%;
  height: 50px;
  border: 1px solid #b78a59;
  background: url(../img/common/icon_link.svg) no-repeat left 10px center / auto 50%;
  color: #b78a59;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.asset03 {
  padding: 10vw 0;}
.asset03 ul {
  flex-direction: column;
  padding: 0 3vw;}
.asset03 ul li {
  width: 100%;
  margin-top: 0;
  padding: 5vw;}
.asset03 ul li + li {
  margin-top: 3.5vw!important;}
.asset03 ul li h2,
.asset03 ul li h3 {
  margin-bottom: 2.5vw;
  font-size: 4.5vw;}
.asset03 ul li .txt {
  font-size: 3.5vw;
  line-height: 1.9;}
.asset03 ul li .sub {
  margin-bottom: 2vw;
  padding-bottom: 2vw;
  font-size: 3.3vw;}
.common-link {
  margin-top: 5vw;
  height: 12vw;
  font-size: 3.5vw;
  border: 1px solid #b78a59;
  background-position: left 3vw auto;
  background-size: auto 42%;}
}

/*

  asset04　：　縦型ブロックリスト

================================================================
*/
.asset04 {
  overflow: hidden;}
.asset04 ul li {
  padding: 25px 40px 30px;
  border: solid #dcd0c4;
  border-width: 1px 1px 1px 5px;}
.asset04 ul li + li {
  margin-top: 20px;}
.asset04 ul li h3 {
  position: relative;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #dcd0c4;
  font-family: nss;
  font-weight: 400;
  font-size: 24px;
  letter-spacing: .1em;
  line-height: 1.6;}
.asset04 ul li .txt {
  line-height: 1.9;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.asset04 ul {
  padding: 0 3vw;}
.asset04 ul li {
  padding: 5vw 5vw 5vw 7vw;}
.asset04 ul li + li {
  margin-top: 3vw;}
.asset04 ul li h3 {
  margin-bottom: 2.5vw;
  font-size: 4.5vw;}
.asset04 ul li .txt {
  font-size: 3.5vw;}
}

/*

  asset05　：　施術の流れ

================================================================
*/
.asset05 {
  overflow: hidden;}
.asset05 ul li {
  position: relative;
  display: flex;
  padding: 20px 0;}
.asset05 ul li:after {
  pointer-events: none;
  content: '';
  position: absolute;
  top: 0;
  left: -750px;
  width: 1000px;
  height: 100%;
  background-color: #f8f1eb;}
.asset05 ul li + li {
  margin-top: 20px;}
.asset05 ul li figure {
  position: relative;
  width: 320px;
  z-index: 2;}
.asset05 ul li > div {
  position: relative;
  flex: 1;
  z-index: 2;}
.asset05 ul li > div h3 {
  position: relative;
  margin-bottom: 20px;
  padding-left: 50px;
  padding-bottom: 10px;
  font-family: nss;
  font-weight: 400;
  font-size: 24px;
  letter-spacing: .1em;
  line-height: 1.6;}
.asset05 ul li > div h3 span {
  font-size: 30px;}
.asset05 ul li > div h3:after {
  pointer-events: none;
  content: '';
  position: absolute;
  bottom: -5px;
  left: 0;
  width: 2000px;
  height: 1px;
  background-color: #dcd0c4;}
.asset05 ul li > div > div {
  padding-left: 50px;}
.asset05 ul li > div > div .txt {
  line-height: 1.9;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.asset05 ul li {
  flex-direction: column;
  padding: 5vw 0;}
.asset05 ul li:after {
  top: 0;
  left: -20vw;
  width: 100vw;}
.asset05 ul li + li {
  margin-top: 3vw;}
.asset05 ul li figure {
  width: 56vw;}
.asset05 ul li > div {
  position: static;
  margin-top: 3.5vw;
  padding: 0 7vw;}
.asset05 ul li > div h3 {
  position: absolute;
  top: 10vw;
  left: 56vw;
  margin-bottom: 3.5vw;
  padding-left: 6vw;
  padding-bottom: 0;
  font-size: 4.5vw;
  line-height: 1.5;}
.asset05 ul li > div h3 span {
  display: block;
  margin-bottom: .5vw;
  font-size: 130%;
  letter-spacing: 0;}
.asset05 ul li > div h3:after {
  bottom: -3vw;}
.asset05 ul li > div > div {
  padding-left: 0;}
.asset05 ul li > div > div .txt {
  font-size: 3.5vw;}
}

/*

  asset06　：　詳細・ダウンタイム

================================================================
*/
.asset06 {
  overflow: hidden;}
.asset06 table {
  width: 100%;
  line-height: 1.6;}
.asset06 table tr + tr {
  border-top: 1px solid #dcd0c4;}
.asset06 table th {
  white-space: nowrap;
  padding: 15px 20px;
  text-align: left;
  font-weight: 500;}
.asset06 table td {
  padding: 15px 20px;
  background-color: #f8f1eb;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.asset06 table {
  line-height: 1.6;
  font-size: 3.5vw;}
.asset06 table th {
  padding: 3vw 6vw;}
.asset06 table td {
  padding: 3vw 6vw;}
}

/*

  asset07　：　リスク・副作用・注意点

================================================================
*/
.asset07 {
  overflow: hidden;}
.asset07 .box {
  padding: 30px;
  background-color: #f8f1eb;}
.asset07 .box ul {
  line-height: 1.6;}
.asset07 .box ul li {
  position: relative;
  padding-left: 1.4em;}
.asset07 .box ul li:before {
  pointer-events: none;
  content: '※';
  position: absolute;
  top: 0;
  left: 0;}
.asset07 .box ul li + li {
  margin-top: 7px;}
.asset07 .box .txt {
  line-height: 1.9;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.asset07 .box {
  padding: 6vw;}
.asset07 .box ul {
  font-size: 3.5vw;}
.asset07 .box ul li {
  padding-left: 1.5em;}
.asset07 .box ul li + li {
  margin-top: 2vw;}
.asset07 .box .txt {
  font-size: 3.5vw;}
}

/*

  asset08　：　料金表

================================================================
*/
.asset08 {
  overflow: hidden;}
.asset08 table {
  width: 100%;
  line-height: 1.6;
  border: solid #dcd0c4;
  border-width: 1px 0;}
.asset08 table caption {
  caption-side: bottom;
  margin-top: 10px;
  text-align: right;
  font-size: 14px;}
.asset08 table tr + tr {
  border-top: 1px solid #dcd0c4;}
.asset08 table th {
  padding: 20px;
  background-color: #f8f1eb;
  text-align: left;
  font-weight: 500;}
.asset08 table th + th {
  border-left: 1px solid #dcd0c4;}
.asset08 table td {
  padding: 20px;}
.asset08 table td + td {
  border-left: 1px solid #dcd0c4;}
.asset08 table td .note {
  margin-top: 15px;
  font-size: 14px;}
.asset08 table td .note li {
  position: relative;
  padding-left: 1.4em;}
.asset08 table td .note li:before {
  pointer-events: none;
  content: '※';
  position: absolute;
  top: 0;
  left: 0;}
.asset08 table td .note li span {
  color: #ec8871;}
.asset08 table tr td:first-child span {
  display: inline-block;
  margin-left: 10px;
  color: #ec8871;}
.asset08 dl dt {
  color: #ec8871;}
.asset08 dl dd .monitor {
  display: inline-block;
  margin-right: 5px;
  vertical-align: middle;
  letter-spacing: 0;
  font-size: 80%;}
.asset08 dl dd + dt {
  margin-top: 10px;}
.asset08 table td .price span {
  display: inline-block;
  margin-left: 10px;
  font-size: 14px;
  color: #ec8871;}
.asset08 .all {
  line-height: 1.5;
  font-size: 15px;}
.asset08 .all li {
  position: relative;
  padding-left: 3em;}
.asset08 .all li + li {
  margin-top: 10px;}
.asset08 .all li span {
  position: absolute;
  top: 0;
  left: 0;
  color: #ec8871;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.asset08 table {
  font-size: 3.5vw;}
.asset08 table caption {
  margin-top: 2.5vw;
  margin-right: 6vw;
  font-size: 3vw;}
.asset08 table th {
  white-space: nowrap;
  padding: 3vw 6vw;}
.asset08 table td {
  padding: 3vw 6vw;}
.asset08 table td .note {
  margin-top: 3vw;
  font-size: 3.2vw;}
.asset08 table td .note li {
  padding-left: 1.3em;}
.asset08 table tr td:first-child span {
  display: block;
  margin-left: 0;}
.asset08 dl dd .monitor {
  margin-right: 1vw;}
.asset08 dl dd + dt {
  margin-top: 3vw;}
.asset08 table td .price span {
  margin-left: 2vw;
  font-size: 3.2vw;}
.asset08 .all {
  padding: 0 6vw;
  line-height: 1.6;
  font-size: 3.3vw;}
.asset08 .all li + li {
  margin-top: 2vw;}
}

/*

  asset09　：　よくある質問

================================================================
*/
.asset09 {
  overflow: hidden;}
.asset09 dl {
  line-height: 1.7;}
.asset09 dl dt {
  position: relative;
  padding: 20px;
  padding-left: 50px;
  border-bottom: 1px solid #dcd0c4;
  cursor: pointer;}
.asset09 dl dt:before {
  pointer-events: none;
  content: 'Q.';
  position: absolute;
  top: 5px;
  left: 10px;
  font-family: nss;
  font-weight: 400;
  font-size: 28px;}
.asset09 dl dt:after {
  pointer-events: none;
  content: '＋';
  position: absolute;
  top: 15px;
  right: 10px;
  font-size: 22px;
  color: #898181;
  transition: .2s;}
.asset09 dl dt.active:after {
  transform: rotate(45deg);}
.asset09 dl dd {
  display: none;
  padding: 15px;
  padding-left: 50px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.asset09 {
  overflow: hidden;}
.asset09 dl {
  font-size: 3.5vw;}
.asset09 dl dt {
  padding: 3.5vw 10vw;
  padding-left: 10vw;}
.asset09 dl dt:before {
  top: 1.2vw;
  left: 3vw;
  font-size: 5vw;}
.asset09 dl dt:after {
  top: 3.5vw;
  right: 3vw;
  font-size: 3.5vw;}
.asset09 dl dd {
  padding: 3.5vw 6vw 3.5vw 10vw;}
}

/*

  page-cta　：　ページ内CTA

================================================================
*/
.page-cta {
  overflow: hidden;
  position: relative;
  padding-bottom: 30px;
  text-align: center;}
.page-cta:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 140px;
  background-color: #f8f1eb;
  z-index: -1;}
.page-cta .title {
  margin-bottom: 20px;
  text-align: center;
  font-family: nss;
  font-weight: 400;
  font-size: 28px;
  letter-spacing: .2em;}
.page-cta .title span {
  color: #ec8871;}
.page-cta .sub span {
  color: #ec8871;}
.page-cta .box {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 600px;
  margin: 0 auto;
  margin-top: 30px;
  text-align: center;
  border: solid #534444;
  border-width: 0 1px;}
.page-cta .box:before,
.page-cta .box:after {
  pointer-events: none;
  content: '';
  position: absolute;
  left: 0;
  width: 10px;
  height: 1px;
  background-color: #534444;}
.page-cta .box:before {
  top: 0;}
.page-cta .box:after {
  bottom: 0;}
.page-cta .box .inbox {
  position: relative;
  padding: 20px 0;}
.page-cta .box .inbox:before,
.page-cta .box .inbox:after {
  pointer-events: none;
  content: '';
  position: absolute;
  right: 0;
  width: 10px;
  height: 1px;
  background-color: #534444;}
.page-cta .box .inbox:before {
  top: 0;}
.page-cta .box .inbox:after {
  bottom: 0;}
.page-cta .box .cta {
  margin-top: 0;
  justify-content: center;}
.page-cta .box .txt {
  margin-top: 40px;
  line-height: 1.7;
  font-size: 15px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.page-cta {
  padding-bottom: 5vw;}
.page-cta:after {
  height: 35vw;}
.page-cta .title {
  margin-bottom: 4vw;
  padding: 0 6vw;
  line-height: 1.35;
  font-size: 5.5vw;
  letter-spacing: .1em;}
.page-cta .sub {
  font-size: 3.4vw;}
.page-cta .box {
  width: 92vw;
  margin-top: 5vw;}
.page-cta .box:before,
.page-cta .box:after {
  width: 2vw;}
.page-cta .box .inbox {
  padding: 3.5vw 3vw;}
.page-cta .box .inbox:before,
.page-cta .box .inbox:after {
  width: 2vw;}
.page-cta .box .txt {
  margin-top: 5vw;
  font-size: 3.3vw;}
}

/*

  オリジナル　：　アクセス

================================================================
*/
.p-access01 {
  overflow: hidden;
  margin-top: -50px;
  border-bottom: 1px solid #d0c0b4;}
.p-access01 iframe {
  width: 100%;
  height: 500px;}
.p-access01 ul {
  padding: 30px 0;
  text-align: center;}
.p-access01 ul li + li {
  margin-top: 15px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.p-access01 {
  margin-top: -10vw;}
.p-access01 iframe {
  height: 120vw;}
.p-access01 ul {
  padding: 10vw 0;
  font-size: 3.5vw;}
.p-access01 ul li + li {
  margin-top: 3.5vw;}
}

/*

  オリジナル　：　サイトマップ

================================================================
*/
.p-sitemap01 {
  margin-top: -50px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.p-access01 {
  margin-top: -10vw;}
}

/*

  オリジナル　：　当院について

================================================================
*/
.p-about01 {
  overflow: hidden;}
.p-about01 .flex {
  display: flex;
  align-items: flex-end;}
.p-about01 .flex figure {
  width: 400px;}
.p-about01 .flex > div {
  flex: 1;
  margin-left: 60px;}
.p-about01 .flex > div .namebox {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 10px;}
.p-about01 .flex > div .namebox a {
  padding: 10px 15px;
  padding-left: 40px;
  border-radius: 100svh;
  background: url(../img/common/icon_insta.svg) no-repeat left 15px center / auto 50%;
  background-color: #ec8871;
  font-size: 15px;
  color: #fff;}
.p-about01 .flex > div .name {
  position: relative;
  line-height: 1.6; 
  letter-spacing: .1em;}
.p-about01 .flex > div .name span {
  display: block;
  font-family: nss;
  font-weight: 400;
  font-size: 24px;}
.profile {
  padding-bottom: 30px;}
.profile table {
  width: 100%;
  font-size: 15px;
  line-height: 1.6;}
.profile table tr + tr {
  border-top: 1px solid #dcd0c4;}
.profile table th {
  white-space: nowrap;
  padding: 15px 20px;
  text-align: left;
  font-weight: 500;}
.profile table td {
  padding: 15px 20px;
  background-color: #f8f1eb;}
.p-about01 .flex02 {
  display: flex;
  justify-content: space-between;
  padding-top: 30px;
  border-top: 1px solid #dcd0c4;}
.p-about01 .flex02 > div {
  width: 48%;
  font-size: 15px;}
.p-about01 .flex02 > div .title {
  position: relative;
  margin-bottom: 10px;
  padding-bottom: 12px;
  border-bottom: 1px solid #ccc;
  padding-left: 1.7em;
  font-size: 16px;}
.p-about01 .flex02 > div .title:before {
  pointer-events: none;
  content: '';
  position: absolute;
  top: 3px;
  left: 0;
  width: 12px;
  aspect-ratio: 1/1;
  background-color: #dcd0c4;
  transform: rotateZ(-20deg);}
.p-about01 .flex02 > div ul {
  line-height: 1.5;}
.p-about01 .flex02 > div ul li + li {
  margin-top: 5px;}
.p-about01 .flex02 > div ul li {
  position: relative;
  padding-left: 1em;}
.p-about01 .flex02 > div ul li:before {
  pointer-events: none;
  content: '・';
  position: absolute;
  top: 0;
  left: 0;}
.right-link {
  text-align: right;}
.right-link .common-link {
  display: inline-flex;
  width: 300px;}
.p-about02 {
  overflow: hidden;}
.slide-staff a {
  display: flex!important;
  align-items: flex-end;
  width: 470px;
  height: 320px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  transition: .2s;}
.slide-staff a:hover {
  opacity: .8;}
.slide-staff a + a {
  margin-left: 20px;}
.slide-staff a > div {
  padding: 15px 30px;
  background-color: #524343;
  color: #fff;}
.slide-staff a > div p {
  font-size: 13px;}
.slide-staff a > div .name {
  margin-top: 5px;
  font-family: nss;
  font-weight: 400;
  font-size: 20px;
  letter-spacing: .1em;}
.slide-staff .a01 {
  background-image: url(../img/under/team/a01.jpg);}
.slide-facility figure {
  display: flex!important;
  align-items: flex-end;
  width: 470px;
  height: 320px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  transition: .2s;}
.slide-facility figure + figure {
  margin-left: 20px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.p-about01 .flex {
  flex-direction: column;}
.p-about01 .flex figure {
  width: 100%;
  padding: 0 10vw;
  border-bottom: 1px solid #dcd0c4;}
.p-about01 .flex figure img {
  object-fit: cover;
  object-position: top;
  width: 100%;
  height: 90vw;}
.p-about01 .flex > div {
  width: 100%;
  margin-left: 0;}
.p-about01 .flex > div .namebox {
  margin-top: 5vw;
  margin-bottom: 5vw;
  padding: 0 6vw;
  padding-bottom: 0;
  font-size: 3.5vw;}
.p-about01 .flex > div .namebox a {
  padding: 2.5vw 3.5vw;
  padding-left: 10vw;
  font-size: 3.3vw;}
.p-about01 .flex > div .name span {
  font-size: 5.5vw;}
.profile {
  padding-bottom: 0;}
.profile table {
  line-height: 1.6;
  font-size: 3.4vw;}
.profile table th {
  padding: 3vw 6vw;}
.profile table td {
  padding: 3vw 6vw;}
.p-about01 .flex02 {
  flex-direction: column;
  padding-top: 10vw;}
.p-about01 .flex02 > div {
  width: 100%;
  font-size: 3.4vw;}
.p-about01 .flex02 > div + div {
  margin-top: 7vw;}
.p-about01 .flex02 > div .title {
  margin-bottom: 3vw;
  padding-bottom: 3vw;
  padding-left: 12vw;
  font-size: 3.5vw;}
.p-about01 .flex02 > div .title:before {
  top: .3vw;
  left: 6vw;
  width: 3vw;}
.p-about01 .flex02 > div ul {
  padding: 0 6vw;
  line-height: 1.5;}
.p-about01 .flex02 > div ul li + li {
  margin-top: 2vw;}
.right-link {
  text-align: center;}
.right-link .common-link {
  width: 80vw;}
.slide-staff a {
  width: 80vw;
  height: 60vw;}
.slide-staff a + a {
  margin-left: 3.5vw;}
.slide-staff a > div {
  padding: 3vw 5vw;}
.slide-staff a > div p {
  font-size: 2.8vw;}
.slide-staff a > div .name {
  margin-top: 1vw;
  font-size: 4.5vw;}
.slide-facility figure {
  width: 80vw;
  height: 60vw;}
.slide-facility figure + figure {
  margin-left: 3.5vw;}
}

/*

  オリジナル　：　医師紹介

================================================================
*/
.p-doctor01 {
  overflow: hidden;
  position: relative;}
.p-doctor01:after {
  pointer-events: none;
  content: '';
  position: absolute;
  top: 50px;
  left: 0;
  width: 100%;
  height: calc(100% - 50px);
  background-color: #f8f1eb;
  z-index: -1;}
.p-doctor01 .flex {
  display: flex;
  padding: 0 50px;}
.p-doctor01 .flex figure {
  width: 260px;}
.p-doctor01 .flex > div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
  margin-right: 40px;
  padding: 100px 0 40px;}
.p-doctor01 .flex > div .catch {
  display: flex;
  flex-direction: column;
  padding-left: 20px;
  font-family: nss;
  font-weight: 400;
  font-size: 16px;
  letter-spacing: .1em;}
.p-doctor01 .flex > div .catch span + span {
  margin-top: 10px;}
.p-doctor01 .flex > div .catch i {
  display: block;
  margin-top: 25px;
  padding-left: 20px;
  font-size: 24px;}
.p-doctor01 .flex > div ul {
  display: flex;
  justify-content: space-between;}
.p-doctor01 .flex > div ul li {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32%;
  padding: 10px;
  border: 1px solid #d0c0b4;
  background-color: #fff;
  text-align: center;
  line-height: 1.45;}
.asset09.p-doctor02 dl dd {
  padding-left: 150px;
  border-bottom: 1px solid #dcd0c4;
  background: url(../img/under/doctor/a01.jpg) no-repeat left 20px top 20px / 100px auto;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.p-doctor01:after {
  top: 10vw;
  height: calc(100% - 10vw);}
.p-doctor01 .flex {
  flex-direction: column-reverse;
  padding: 0;}
.p-doctor01 .flex figure {
  width: 100%;
  padding-left: 5vw;
  border-bottom: 1px solid #d0c0b4;}
.p-doctor01 .flex figure img {
  width: 45vw;
  height: auto;}
.p-doctor01 .flex > div {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
  margin-right: 0;
  padding: 0;}
.p-doctor01 .flex > div .catch {
  position: absolute;
  top: 20vw;
  right: 6vw;
  padding-left: 0;
  font-size: 3.4vw;}
.p-doctor01 .flex > div .catch span + span {
  margin-top: 2vw;}
.p-doctor01 .flex > div .catch i {
  margin-top: 5vw;
  padding-left: 3.5vw;
  font-size: 5.5vw;}
.p-doctor01 .flex > div ul {
  padding: 3vw;
  font-size: 3.4vw;}
.p-doctor01 .flex > div ul li {
  padding: 3vw;}
.asset09.p-doctor02 dl dd {
  padding-left: 28vw;
  background-position: left 3vw top 5vw;
  background-size: 20vw auto;}
}

/*

  オリジナル　：　スタッフ紹介

================================================================
*/
.p-team01 {
  overflow: hidden;
  position: relative;}
.p-team01 .namebox {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 20px;
  padding-bottom: 10px;}
.p-team01 .namebox a {
  padding: 10px 15px;
  padding-left: 40px;
  border-radius: 100svh;
  background: url(../img/common/icon_insta.svg) no-repeat left 15px center / auto 50%;
  background-color: #ec8871;
  font-size: 15px;
  color: #fff;}
.p-team01 .name {
  position: relative;
  line-height: 1.6; 
  letter-spacing: .1em;}
.p-team01 .name span {
  display: block;
  font-family: nss;
  font-weight: 400;
  font-size: 24px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.p-team01 .namebox {
  margin-top: 5vw;
  margin-bottom: 5vw;
  padding: 0 6vw;
  padding-bottom: 0;
  font-size: 3.5vw;}
.p-team01 .namebox a {
  padding: 2.5vw 3.5vw;
  padding-left: 10vw;
  font-size: 3.3vw;}
.p-team01 .name span {
  font-size: 5.5vw;}
}

/*

  column-layout　：　症例＆投稿 / 基本レイアウト

================================================================
*/
.column-layout {
  position: relative;}
.column-layout .flex {
  display: flex;
  justify-content: space-between;}
.column-layout .flex .left {
  width: 730px;}
.column-layout .flex .right {
  width: 230px;}
.column-layout .flex .right .sticky {
  position: sticky;
  top: 150px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.column-layout .flex {
  flex-direction: column;}
.column-layout .flex .left {
  width: 100%;}
.column-layout .flex .right {
  width: 100%;
  margin-top: 15vw;}
.column-layout .flex .right .sticky {
  position: static;}
}

/*

  narrow　：　施術で絞り込んで探す

================================================================
*/
.narrow {
  margin-bottom: 40px;}
.narrow form {
  display: flex;
  justify-content: center;
  align-items: center;}
.narrow form select {
  width: 300px;
  padding: 12px;
  padding-right: 40px;
  border: 1px solid #524343;}
.narrow form input {
  padding: 12px 20px;
  border: solid #524343;
  border-width: 1px 1px 1px 0;
  background-color: #f8f1eb;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.narrow {
  margin-bottom: 5vw;}
.narrow form {
  width: 100%;
  padding: 0 6vw;
  font-size: 3.5vw;}
.narrow form select {
  width: 80%;
  padding: 3.5vw;
  padding-right: 0;
  color: #534444;}
.narrow form select option {
  color: #534444;}
.narrow form input {
  width: 20%;
  padding: 3.5vw;
  color: #534444;}
}

/*

  rightbox　：　サイドバー内

================================================================
*/
.rightbox + .rightbox {
  margin-top: 40px;}
.rightbox .title {
  padding-bottom: 15px;
  border-bottom: 2px solid #524343;
  font-family: nss;
  font-weight: 400;
  font-size: 17px;
  letter-spacing: .1em;}
.rightbox .llink {
  font-size: 15px;}
.rightbox .llink li {
  display: block;
  width: 100%;
  height: 50px;
  border-bottom: 1px solid #d0c0b4;}
.rightbox .llink li a {
  display: flex;
  align-items: center;
  height: 100%;
  padding-left: 28px;
  background: url(../img/common/icon_link.svg) no-repeat left center / auto 40%;}
.rightbox .namebox {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 20px;}
.rightbox .namebox a {
  padding: 5px;
  border-radius: 100svh;
  background-color: #ec8871;}
.rightbox .namebox a img {
  width: 16px;
  height: auto;}
.rightbox .name {
  position: relative;
  line-height: 1.4; 
  letter-spacing: .1em;
  font-size: 12px;}
.rightbox .name span {
  display: block;
  font-family: nss;
  font-weight: 400;
  font-size: 22px;}
.rightbox .doc {
  padding: 0 30px;}
.rightbox .common-link {
  margin-top: 0;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.rightbox + .rightbox {
  margin-top: 10vw;}
.rightbox .title {
  padding-left: 6vw;
  padding-bottom: 4vw;
  font-size: 4.2vw;}
.rightbox .llink {
  font-size: 15px;}
.rightbox .llink li {
  height: 12vw;}
.rightbox .llink li a {
  padding-left: 12.5vw;
  background-position: left 6vw center;}
.rightbox .namebox {
  margin-bottom: 3.5vw;
  padding: 0 8vw;}
.rightbox .namebox a {
  padding: 3vw;}
.rightbox .namebox a img {
  width: 5vw;}
.rightbox .name {
  font-size: 3vw;}
.rightbox .name span {
  font-size: 5.5vw;}
.rightbox .doc {
  padding: 0 15vw;}
.rightbox .common-link {
  width: 80vw;
  margin: 0 auto;}
}

/*

  list-case　：　症例一覧のレイアウト

================================================================
*/
.list-case {
  position: relative;}
.list-case ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;}
.list-case ul li {
  width: 48%;
  border-bottom: 1px solid #d0c0b4;
  margin-top: 30px;}
.list-case ul li:nth-child(-n+2) {
  margin-top: 0;}
.list-case ul li a {
  display: block;
  transition: .2s;}
.list-case ul li figure {
  overflow: hidden;
  width: 100%;
  height: 238px;}
.list-case ul li img {
  object-fit: cover;
  width: 100%;
  height: 238px;
  transition: .2s;}
.list-case ul li .title {
  margin-top: 10px;
  line-height: 1.6;}
.list-case ul li .detaile {
  margin-top: 20px;
  text-align: right;}
.list-case ul li .detaile span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 150px;
  height: 40px;
  background: url(../img/common/icon_link.svg) no-repeat left 10px center / auto 50%;
  border: solid #d0c0b4;
  border-width: 1px 1px 0 1px;
  font-size: 15px;
  transition: .2s;}
.list-case ul li a:hover .detaile span {
  background-color: #f8f1eb;}
.list-case ul li a:hover img {
  transform: scale(1.05);}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.list-case ul {
  flex-direction: column;}
.list-case ul li {
  width: 100%;
  margin-top: 5vw;}
.list-case ul li:nth-child(-n+2) {
  margin-top: 5vw;}
.list-case ul li:first-child {
  margin-top: 5vw;}
.list-case ul li figure {
  height: auto;}
.list-case ul li img {
  height: 68vw;}
.list-case ul li .title {
  margin-top: 3vw;
  padding: 0 6vw;
  font-size: 3.6vw;}
.list-case ul li .detaile {
  margin-top: 5vw;
  padding-right: 6vw;}
.list-case ul li .detaile span {
  width: 37vw;
  height: 10vw;
  background-position: left 3vw center;
  font-size: 3.4vw;}
}

/*

  wp-pagenavi　：　ページナビゲーション

================================================================
*/
.wp-pagenavi {
  display: flex;
  justify-content: center;
  margin-top: 50px;
  line-height: 0;
  font-size: 15px;}
.wp-pagenavi > * + * {
  margin-left: 10px;}
.wp-pagenavi .pages {
  display: none;}
.wp-pagenavi a,
.wp-pagenavi span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid #d0c0b4;}
.wp-pagenavi span.current {
  background-color: #f8f1eb;}
.wp-pagenavi a.previouspostslink,
.wp-pagenavi a.nextpostslink {
  border: none;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.wp-pagenavi {
  margin-top: 5vw;
  font-size: 3.4vw;}
.wp-pagenavi > * + * {
  margin-left: 2vw;}
.wp-pagenavi a,
.wp-pagenavi span {
  width: 8vw;
  height: 8vw;
  padding-bottom: 0;}
}

/*

  results-detaile　：　症例詳細

================================================================
*/
.results-detaile {
  position: relative;}
.results-detaile figure {
  background-color: #f8f1eb;
  text-align: center;}
.results-detaile table {
  width: 100%;
  margin-top: 30px;
  font-size: 15px;
  line-height: 1.6;}
.results-detaile table tr + tr {
  border-top: 1px solid #dcd0c4;}
.results-detaile table th {
  white-space: nowrap;
  padding: 15px 20px;
  text-align: left;
  font-weight: 500;}
.results-detaile table td {
  padding: 15px 20px;
  background-color: #f8f1eb;}
.results-detaile .sflex {
  display: flex;
  justify-content: space-between;
  margin-top: 30px;}
.results-detaile .sflex .common-link {
  margin-top: 0;
  width: 48%;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.results-detail table {
  line-height: 1.6;
  font-size: 3.4vw;}
.results-detail table th {
  padding: 3vw 6vw;}
.results-detail table td {
  padding: 3vw 6vw;}
.results-detaile .sflex {
  padding: 0 6vw;
  margin-top: 5vw;}
}

/*

  list-blog　：　記事一覧のレイアウト

================================================================
*/
.list-blog {
  position: relative;}
.list-blog ul {
  display: flex;
  flex-direction: column;}
.list-blog ul li {
  width: 100%;
  border-bottom: 1px solid #d0c0b4;}
.list-blog ul li + li {
  margin-top: 30px;}
.list-blog ul li a {
  display: flex;
  justify-content: space-between;
  transition: .2s;}
.list-blog ul li figure {
  overflow: hidden;
  width: 300px;}
.list-blog ul li img {
  transition: .2s;}
.list-blog ul li a > div {
  position: relative;
  flex: 1;
  margin-left: 40px;
  padding-top: 15px;
  padding-right: 20px;}
.list-blog ul li .date {
  font-size: 14px;
  letter-spacing: .05em;}
.list-blog ul li .title {
  margin-top: 15px;
  font-family: nss;
  font-weight: 400;
  font-size: 20px;
  line-height: 1.6;}
.list-blog ul li .detaile {
  position: absolute;
  bottom: 0;
  right: 0;
  margin-top: 20px;
  text-align: right;}
.list-blog ul li .detaile span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 150px;
  height: 40px;
  background: url(../img/common/icon_link.svg) no-repeat left 10px center / auto 50%;
  border: solid #d0c0b4;
  border-width: 1px 1px 0 1px;
  font-size: 15px;
  transition: .2s;}
.list-blog ul li a:hover .detaile span {
  background-color: #f8f1eb;}
.list-blog ul li a:hover img {
  transform: scale(1.05);}
.list-blog.list-news figure {
  display: none;}
.list-blog.list-news ul li a > div {
  margin-left: 0;
  padding-bottom: 60px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.list-blog ul li + li {
  margin-top: 5vw;}
.list-blog ul li figure {
  width: 45vw;}
.list-blog ul li a > div {
  margin-left: 5vw;
  padding-top: 2vw;
  padding-bottom: 15vw;
  padding-right: 6vw;}
.list-blog ul li .date {
  font-size: 2.8vw;}
.list-blog ul li .title {
  margin-top: 2vw;
  font-size: 4.2vw;
  line-height: 1.6;}
.list-blog ul li .detaile {
  position: absolute;
  bottom: 0;
  right: 0;
  margin-top: 0;
  text-align: right;}
.list-blog ul li .detaile {
  margin-top: 5vw;}
.list-blog ul li .detaile span {
  width: 37vw;
  height: 10vw;
  border-right: 0;
  background-position: left 3vw center;
  font-size: 3.4vw;}
.list-blog.list-news ul li a > div {
  padding: 0 6vw;
  padding-bottom: 15vw;}
}

/*

  title-box / post-conts　：　記事詳細

================================================================
*/
.title-box {
  margin-bottom: 30px;}
.title-box .date {
  display: block;
  margin-bottom: 10px;
  padding: 0 10px 12px 10px;
  border-bottom: 1px solid #d0c0b4;
  letter-spacing: .05em;
  font-size: 14px;}
.title-box .title {
  padding: 0 10px;
  font-family: nss;
  font-weight: 400;
  font-size: 26px;
  line-height: 1.5;
  letter-spacing: .1em;}
.post-conts {
  font-size: 16px;}
.post-conts * + * {
  margin-top: 50px;}
.post-conts br {
  margin-top: 0;}
.post-conts h2 {
  padding: 8px 10px 10px;
  border-top: 2px solid #d0c0b4;
  border-bottom: 1px solid #d0c0b4;
  font-family: nss;
  font-weight: 400;
  font-size: 25px;
  line-height: 1.5;
  letter-spacing: .1em;}
.post-conts h2 + * {
  margin-top: 20px;}
.post-conts h3 {
  padding: 7px 0 8px;
  padding-left: 14px;
  border-left: 3px solid #d0c0b4;
  font-family: nss;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: .1em;
  background-color: #f8f1eb;}
.post-conts h3 + * {
  margin-top: 15px;}
.post-conts h4 {
  padding-left: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dashed #d0c0b4;
  font-family: nss;
  font-weight: 400;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: .1em;}
.post-conts h4 + * {
  margin-top: 15px;}
.post-conts p {
  padding: 0 10px;
  line-height: 1.9;}
.post-conts a {
  text-decoration: underline;
  color: #ec8871;}
.post-conts strong {
  text-decoration: underline;
  font-weight: 500;}
.post-conts img {
  display: block;
  margin-left: auto;
  margin-right: auto;
  border-radius: 10px;}
.post-conts img + * {
  margin-top: 30px;}
.post-conts ul {
  padding: 0 10px;
  line-height: 1.7;}
.post-conts ul li {
  position: relative;
  padding-left: 22px;}
.post-conts ul li + li {
  margin-top: 5px;}
.post-conts ul li:before {
  pointer-events: none;
  content: '';
  position: absolute;
  top: 8px;
  left: 0;
  width: 12px;
  aspect-ratio: 1/1;
  background-color: #dcd0c4;
  transform: rotateZ(-20deg);}
.post-conts ol {
  margin-left: 2.5em;
  padding-right: 10px;
  line-height: 1.7;}
.post-conts ol li {
  position: relative;
  list-style-type: decimal-leading-zero;}
.post-conts ol li + li {
  margin-top: 5px;}
.post-conts table {
  width: calc(100% - 20px);
  margin-left: auto;
  margin-right: auto;
  border-top: 1px solid #dcd0c4;
  border-bottom: 1px solid #dcd0c4;
  font-size: 15px;
  line-height: 1.6;}
.post-conts table tr + tr {
  border-top: 1px solid #dcd0c4;}
.post-conts table th {
  padding: 10px;
  background-color: #f8f1eb;
  text-align: left;
  font-weight: 500;}
.post-conts table th + th {
  border-left: 1px solid #dcd0c4;}
.post-conts table td {
  padding: 10px;
  background-color: #fff;}
.post-conts table td {
  border-left: 1px solid #dcd0c4;}
.post-conts table td:first-child {
  border-left: 0;}
.post-conts table th + td {
  border-left: 1px solid #dcd0c4;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.title-box {
  margin-bottom: 10vw;}
.title-box .date {
  margin-bottom: 3vw;
  padding: 0 6vw 3vw;
  font-size: 2.8vw;}
.title-box .title {
  padding: 0 6vw;
  font-size: 5.2vw;}
.post-conts {
  font-size: 3.5vw;}
.post-conts * + * {
  margin-top: 10vw;}
.post-conts h2 {
  padding: 2vw 6vw;
  font-size: 4.5vw;}
.post-conts h2 + * {
  margin-top: 3.5vw;}
.post-conts h3 {
  padding: 2.5vw 6vw;
  padding-left: 6vw;
  font-size: 4.2vw;}
.post-conts h3 + * {
  margin-top: 3.5vw;}
.post-conts h4 {
  padding-left: 6vw;
  padding-bottom: 3vw;
  font-size: 4vw;}
.post-conts h4 + * {
  margin-top: 3.5vw;}
.post-conts p {
  padding: 0 6vw;}
.post-conts img {
  border-radius: 1vw;}
.post-conts img + * {
  margin-top: 5vw;}
.post-conts ul {
  padding: 0 6vw;
  line-height: 1.7;}
.post-conts ul li {
  padding-left: 6vw;}
.post-conts ul li + li {
  margin-top: 3vw;}
.post-conts ul li:before {
  top: 1.5vw;
  left: 0;
  width: 3vw;}
.post-conts ol {
  margin-left: 6vw;
  padding-left: 6vw;
  padding-right: 6vw;}
.post-conts ol li + li {
  margin-top: 3vw;}
.post-conts table {
  width: 100%;
  font-size: 3.3vw;}
.post-conts table th {
  padding: 2.5vw;}
.post-conts table td {
  padding: 2.5vw;}
}

/*

  supervisor　：　監修者情報

================================================================
*/
.supervisor {
  margin-top: 60px;
  border: 1px solid #dcd0c4;}
.supervisor .title {
  padding: 15px 30px;
  border-bottom: 1px solid #dcd0c4;
  font-family: nss;
  font-weight: 400;
  font-size: 18px;
  letter-spacing: .1em;}
.supervisor .flex {
  display: flex;
  justify-content: space-between;
  padding: 20px 30px;}
.supervisor .flex figure {
  width: 120px;}
.supervisor .flex > div {
  flex: 1;
  margin-left: 40px;}
.supervisor .flex > div .name {
  position: relative;
  line-height: 1.4; 
  letter-spacing: .1em;
  font-size: 12px;}
.supervisor .flex > div .name span {
  display: block;
  font-family: nss;
  font-weight: 400;
  font-size: 22px;}
.supervisor .flex > div .txt {
  margin-top: 15px;
  line-height: 1.7;
  font-size: 15px;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.supervisor {
  margin-top: 10vw;
  border-width: 1px 0;}
.supervisor .title {
  padding: 3.5vw 6vw;
  font-size: 4vw;}
.supervisor .flex {
  flex-direction: row;
  padding: 4vw 6vw;}
.supervisor .flex figure {
  width: 20vw;}
.supervisor .flex > div {
  margin-left: 5vw;}
.supervisor .flex > div .name {
  font-size: 2.8vw;}
.supervisor .flex > div .name span {
  font-size: 4.5vw;}
.supervisor .flex > div .txt {
  margin-top: 3vw;
  line-height: 1.6;
  font-size: 3.3vw;}
}

/*

  next-prev　：　記事のページネーション

================================================================
*/
.next-prev {
  position: relative;
  width: 100%;
  margin-top: 30px;}
.next-prev ul {
  display: flex;
  justify-content: space-between;
  align-items: center;}
.next-prev ul li {
  width: 30%;
  height: 100%;}
.next-prev ul li.center {
  margin:0 auto;
  text-align: center;}
.next-prev ul li.next {
  text-align: right;}
.next-prev ul li.prev a,
.next-prev ul li.next a {
  display: inline-block;
  text-decoration: underline;
  color: #ec8871;}
.next-prev ul li .common-link {
  margin-top: 0;}
/* ------------------------------------------------------- sp */
@media (max-width: 767px) {
.next-prev {
  margin-top: 30px;
  padding: 0 6vw;
  font-size: 3.4vw;}
.next-prev ul li {
  width: auto;}
.next-prev ul li .common-link {
  width: 40vw;}
}