@charset "UTF-8";

.detailArea {}

.detailArea+.detailArea {
  margin-top: 60px;
}

.detailArea .ttlBlk {
  border-bottom: 1px solid;
}

.detailArea .ttlBlk .ttlObj {
  font-size: 22px;
}

.detailArea .LTxt {}

.detailArea .MTxt {}

.detailArea .STxt {}

@media (min-width: 768px) {
  .detailArea {}

  .detailArea+.detailArea {
    margin-top: 60px;
  }

  .detailArea .ttlBlk {
    padding: 0 0 0.5em;
  }

  .detailArea .ttlBlk .ttlObj {}

  .detailArea .LTxt {
    font-size: 18px;
  }

  .detailArea .MTxt {
    font-size: 14px;
    line-height: 1.6;
  }

  .detailArea .STxt {}
}

.howtoArea {}

.howtoArea .howtoSet {
  margin: 10% auto 0;
}

.howtoArea .howtoSet .sttlObj {}

.howtoArea .howtoSet .txtObj {
  padding: 0 0 0 1.5em;
  margin: 1em 0 0;
}

.howtoArea .howtoSet .txtObj+.sttlObj {
  margin-top: 2em;
}

@media (min-width: 768px) {
  .howtoArea {}

  .howtoArea .howtoSet {
    margin: 5% auto 0;
  }

  .howtoArea .howtoSet .sttlObj {}

  .howtoArea .howtoSet .txtObj {}

  .howtoArea .howtoSet .txtObj+.sttlObj {}
}

.ingredientsArea {}

.ingredientsArea .imgTxtBlk {}

.ingredientsArea .ingredientSet {}

.ingredientsArea .ingredientSet .sttlObj {
  margin: 5% auto 0;
}

.ingredientsArea .ingredientSet .cautionTxt {
  color: #848484;
  font-family: "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
  text-align: right;
}

.ingredientsArea .ingredientSet .biyo-Lists {
  display: flex;
  flex-flow: wrap;
  justify-content: flex-start;
  align-items: center;
  text-align: center;
  margin: 5% auto 0;
}

.ingredientsArea .ingredientSet .biyo-Lists li {
  width: 25%;
  padding: 0;
  font-size: 9px;
  margin: 0 0 30px;
  font-family: "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
}

.ingredientsArea .ingredientSet .biyo-Lists li+li {}

.ingredientsArea .ingredientSet .biyo-Lists li p {}

.ingredientsArea .ingredientSet .biyo-Lists li figure {
  margin: 5px 0 0;
}

.ingredientsArea .ingredientSet .biyo-Lists li figure img {
  width: 80%;
}

.ingredientsArea .ingredientSet .biyo-Lists li figure figcaption {
  margin: 5px 0 0;
}

.ingredientsArea .ingredientSet .free-Lists {
  display: flex;
  flex-flow: wrap;
  justify-content: flex-start;
  margin: 8% auto 0;
}

.ingredientsArea .ingredientSet .free-Lists li {
  width: 20%;
  text-align: center;
  font-family: "游明朝", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", serif;
  font-size: 7px;
  margin: 0 0 10px;
}

.ingredientsArea .ingredientSet .free-Lists li+li {}

.ingredientsArea .ingredientSet .free-Lists li figure {}

.ingredientsArea .ingredientSet .free-Lists li figure img {
  width: 80%;
}

.ingredientsArea .ingredientSet .free-Lists li figure figcaption {
  margin: 5px 0 0;
  line-height: 1.4;
}

@media (min-width: 768px) {
  .ingredientsArea {}

  .ingredientsArea .imgTxtBlk {}

  .ingredientsArea .ingredientSet {}

  .ingredientsArea .ingredientSet .sttlObj {}

  .ingredientsArea .ingredientSet .cautionTxt {
    color: #4d4d4d;
  }

  .ingredientsArea .ingredientSet .biyo-Lists {
    margin: 30px auto 0;
  }

  .ingredientsArea .ingredientSet .biyo-Lists li {
    font-size: 12px;
  }

  .ingredientsArea .ingredientSet .biyo-Lists li+li {}

  .ingredientsArea .ingredientSet .biyo-Lists li p {
    margin: 0 0 10px;
  }

  .ingredientsArea .ingredientSet .biyo-Lists li figure {}

  .ingredientsArea .ingredientSet .biyo-Lists li figure img {}

  .ingredientsArea .ingredientSet .biyo-Lists li figure figcaption {
    margin: 10px 0 0;
  }

  .ingredientsArea .ingredientSet .free-Lists {
    margin: 30px auto 0;
  }

  .ingredientsArea .ingredientSet .free-Lists li {
    font-size: 11px;
  }

  .ingredientsArea .ingredientSet .free-Lists li+li {}

  .ingredientsArea .ingredientSet .free-Lists li figure {}

  .ingredientsArea .ingredientSet .free-Lists li figure img {}

  .ingredientsArea .ingredientSet .free-Lists li figure figcaption {}
}

.colorArea {}

.colorArea .colorSet {
  position: relative;
  margin: 10% auto 0;
}

.colorArea .colorSet .colorLists {
  position: absolute;
  width: 100%;
  height: 100%;
}

.colorArea .colorSet .colorLists li {
  width: 17%;
  position: absolute;
}

.colorArea .colorSet .colorLists li:nth-of-type(1) {
  top: 10%;
  left: 13%;
}

.colorArea .colorSet .colorLists li:nth-of-type(2) {
  left: 13%;
  top: 63%;
}

.colorArea .colorSet .colorLists li:nth-of-type(3) {
  left: 72.5%;
  top: 61%;
}

.colorArea .colorSet .colorLists li:nth-of-type(4) {
  top: 27%;
  left: 55%;
}

.colorArea .colorSet .colorLists li:nth-of-type(5) {
  top: 27%;
  left: 72%;
}

.colorArea .colorSet .colorLists li:nth-of-type(6) {
  top: 27%;
  left: 27%;
}

.colorArea .colorSet .colorLists li:nth-of-type(7) {
  top: 6%;
  left: 57%;
}

.colorArea .colorSet .colorLists li:nth-of-type(8) {
  top: 6%;
  left: 34%;
}

.colorArea .colorSet .colorLists li a {}

.colorArea .colorSet .colorLists li a img {}

.colorArea .colorSet .bgObj {}

@media (min-width: 768px) {
  .colorArea {}

  .colorArea .colorSet {
    margin: 5% auto 0;
  }

  .colorArea .colorSet .colorLists {}

  .colorArea .colorSet .colorLists li {}

  .colorArea .colorSet .colorLists li:nth-of-type(1) {}

  .colorArea .colorSet .colorLists li:nth-of-type(2) {}

  .colorArea .colorSet .colorLists li:nth-of-type(3) {}

  .colorArea .colorSet .colorLists li:nth-of-type(4) {}

  .colorArea .colorSet .colorLists li:nth-of-type(5) {}

  .colorArea .colorSet .colorLists li:nth-of-type(6) {}

  .colorArea .colorSet .colorLists li a {}

  .colorArea .colorSet .colorLists li a img {}

  .colorArea .colorSet .bgObj {}
}

/* 親ラッパーがスクロールを許可 */
.product-grid-wrapper {
  overflow-x: auto;
  margin: 10% auto;
  border-top: 1px solid #afafaf;
}

/* 共通スタイル（Grid構造） */
.product-grid {
  display: grid;
  grid-template-columns: 110px 1fr 1fr 1fr;
  min-width: 600px;
  /* 横幅が狭くなりすぎないように */
  text-align: center;
  border-left: 1px solid #afafaf;
}

.product-grid>div {
  padding: 18px 0;
  box-sizing: border-box;
  border-bottom: 1px solid #afafaf;
  border-right: 1px solid #afafaf;
}

.product-grid .label {
  text-align: center;
  border-right: 1px solid #afafaf;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.product-grid .product img {
  max-width: 80px;
  height: auto;
  display: block;
  margin: 0 auto 8px;
}

.product-grid .product p {
  margin: 0;
  /* font-weight: bold; */
  font-size: 10px;
}

.product-grid .star {
  font-size: 10px;
  color: #000;
}

/* PC用スタイル */
@media (min-width: 768px) {
  .product-grid-wrapper {
    overflow-x: visible;
  }

  .product-grid {
    width: 100%;
    min-width: unset;
  }
}

.js-accTarget {
  position: relative;
}

.js-accTarget.active {}

.js-accTarget::before,
.js-accTarget::after {
  content: "";
  position: absolute;
  width: 1.5em;
  height: 1px;
  background: #161616;
  right: 3%;
  top: 50%;
}

.js-accTarget::after {
  transform: rotate(90deg);
  transition: 0.1s transform ease;
}

.js-accTarget.active::before {}

.js-accTarget.active::after {
  transform: rotate(180deg);
  transition: 0.1s transform ease;
}

.js-accBlk {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.js-accBlk.active {
  /* JavaScript側で max-height を自動設定するため記述不要 */
}

.js-accTarget.active {
  /* 開いたときの見た目（例） */
  font-weight: bold;
}

.howtoArea,
.ingredientsArea {
  container-type: inline-size;
}

.ingredientsArea {
  margin-bottom: 80px;
}

.ingredientSet__ttl {
  margin: 10cqw 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
}

.ingredientSet__ttl .txt1 {
  font-family: Palatino Linotype;
  font-weight: 400;
  font-size: 4.33cqw;
  line-height: 1;
  letter-spacing: 0;
  color: #000;
}

.ingredientSet__ttl .txt2 {
  color: #2F2F2F;
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 2.33cqw;
  line-height: 1;
  letter-spacing: 0;
  text-align: right;
  vertical-align: middle;
}

.flex-box {
  display: flex;
  gap: 10px;
}

.flex-box:first-child .content {
  margin-top: 10px;
}

.flex-box .content .txt {
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 4.23cqw;
  line-height: 1.3;
  letter-spacing: 0;
  margin-bottom: 20px;
}

.flex-box .content .grid._4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.flex-box .content .grid._3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.flex-box .content .grid .grid-item {
  width: 100%;
  justify-items: center;
  align-content: end;
}

.flex-box .content .grid .grid-item .grid-item-txt,
.flex-box .content .grid-item-txt {
  text-align: center;
  font-family: "DM Sans", sans-serif;
  font-weight: 300;
  font-size: 3.46cqw;
  line-height: 1.5;
  letter-spacing: 0;
  vertical-align: middle;
  display: flex;
  justify-content: center;
  height: 10.38cqw;
  align-items: center;
}

.flex-box .content .grid-item-txt {
  flex-direction: column;
}

.flex-box .content .grid._4 .grid-item .grid-item-img img {
  display: block;
  width: 30%;
  margin: 0 auto;
}

.flex-box .content .grid._4 .grid-item:nth-child(1) .grid-item-img img {
  width: 35%;
}

.flex-box .content .grid._4 .grid-item:nth-child(3) .grid-item-img img {
  width: 27%;
}

.flex-box .content .grid._4 .grid-item:nth-child(4) .grid-item-img img {
  width: 60%;
}

.flex-box .content .grid .grid-item .grid-item-img {
  width: 100%;
  margin-bottom: 5px;
}

.flex-box .content .grid._3 .grid-item .grid-item-img img {
  display: block;
  width: 70%;
  margin: 0 auto;
}

.flex-box .content .grid._3 .grid-item .grid-item-txt {
    height: none;
}

.flex-box .content .grid .grid-item img {
  margin: 0 auto;
  width: 100%;
}

.vertical-nodes {
  list-style: none;
  container-type: inline-size;
  padding: 0;
  margin: 20px;
  display: flex;
  flex-direction: column;
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 4.62cqw;
  line-height: 1;
  vertical-align: middle;
  gap: 30px;
}

.vertical-nodes li .num {
  position: relative;
  width: 8.8cqw;
  height: 8.8cqw;
  background-color: #D9D9D9;
  border-radius: 50%;
  border: 1px solid #333;
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
  color: #333;
  flex-shrink: 0;
  font-size: 4.62cqw;
  font-weight: 400;
}

.vertical-nodes li:nth-child(2) .num {
  margin-bottom: 0px;
}

.vertical-nodes li:not(:last-child) .num::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 100%;
  width: 1px;
  background-color: #333;
  height: var(--line-h, 0px);
}

.vertical-nodes li:last-child {
  margin-bottom: 0;
}

.product-info__key-ingredients_group .features-list3 {
  width: 100%;
  gap: 60px 10px;
  margin-bottom: 80px;
}

.product-info__key-ingredients_group .features-list3 .ingredients {
  margin-bottom: 10px;
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 3cqw;
  line-height: 1.6;
  letter-spacing: 0;
  text-align: center;
  vertical-align: middle;
  height: 9.6cqw;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-info__key-ingredients_group .features-list3 .efficacy {
  margin-top: 10px;
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 2.33cqw;
  line-height: 1.6;
  letter-spacing: 0;
  text-align: center;
  vertical-align: middle;
  height: 7.46cqw;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-info__key-ingredients_group .features-list3 .efficacy._2 {
  height: 12.79cqw;
}

.features-list3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  text-align: center;
  width: 60%;
  margin: 0 auto 60px;
}

.features-list3__img-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.features-list4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
  text-align: center;
}

.features-list4__img-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.features-list4 .item .item__txt {
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 2.5cqw;
  line-height: 1.6;
  letter-spacing: 0;
  text-align: center;
  vertical-align: bottom;
  white-space: nowrap;
}

.features-list4 .item img {
  width: 90%;
}

.grid-container {
  margin-bottom: 10cqw;
}

.grid-container._2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3.33cqw;
}

.grid-container__item {
  width: 100%;
}

.grid-container__item-img img {
  width: 100%;
}

.grid-container__item-cnt .grid-container__item-cnt-ttl {
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 3.33cqw;
  line-height: 1.6;
  letter-spacing: 0;
  color: #2F2F2F;
  margin-bottom: 3.33cqw;
}

.grid-container__item-cnt .grid-container__item-cnt-ttl span {
  font-size: 2.67cqw;
}

.grid-container__item-cnt .grid-container__item-cnt-txt {
  color: #2F2F2F;
  font-family: "DM Sans", sans-serif;
  font-weight: 400;
  font-size: 2.33cqw;
  line-height: 2;
  letter-spacing: 0;
}