@charset "UTF-8";

/* ----------------------------------------------------------
製品情報ページ用CSS
---------------------------------------------------------- */

/*** main-area ***/

.product-detail .wrapper {
  width: 1100px;
  max-width: calc(100% - 12vw);
  padding: 120px 0 116px;
}
  @media screen and (max-width: 1199px) {
    .product-detail .wrapper {
      max-width: calc(100% - 8vw);
    }
  }
  @media screen and (max-width: 767px) {
    .product-detail .wrapper {
      width: 100%;
      max-width: none;
      padding: 13.333vw 4vw 14.667vw;
    }
  }

.product-main-area {
  width: 1040px;
  max-width: 100%;
  margin: 0 auto;
}

.product-main-visual {
  width: 700px;
  max-width: 72%;
  margin: 0 auto;
  line-height: 1;
}
  @media screen and (max-width: 1199px) {
    .product-main-visual {
      max-width: 68%;
    }
  }
  @media screen and (max-width: 767px) {
    .product-main-visual {
      width: 100%;
      max-width: none;
    }
  }

.product-lead {
  font-size: 3.0rem;
  margin-top: 90px;
}
  @media screen and (max-width: 767px) {
    .product-lead {
      font-size: 4.8vw;
      line-height: 1.4;
      margin-top: 9.467vw;
    }
  }

.product-price-area {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 42px;
  margin-top: 93px;
  padding: 20px 0;
}
  @media screen and (max-width: 767px) {
    .product-price-area {
      gap: 4vw;
      margin-top: 9.733vw;
      padding: 0;
    }
  }

.product-price-area::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background: #009db7;
  transform: translateX(-50%);
}
  @media screen and (max-width: 767px) {
    .product-price-area::before {
      content: none;
    }
  }

.product-price-box {
  min-width: 0;
  padding: 0 60px;
}
  @media screen and (max-width: 1199px) {
    .product-price-box {
      padding: 0 4vw;
    }
  }
  @media screen and (max-width: 767px) {
    .product-price-box {
      padding: 0;
    }
  }

.product-price-label {
  width: 300px;
  max-width: 100%;
  color: #fff;
  letter-spacing: 0.08em;
  line-height: 1;
  margin: 0 auto;
  padding: 9px 12px 11px;
}
  @media screen and (max-width: 767px) {
    .product-price-label {
      width: 100%;
      font-size: 3.467vw;
      letter-spacing: 0.06em;
      padding: 1.867vw 1.334vw 2.133vw;
    }
  }

.product-price-normal .product-price-label {
  background: #4091ca;
}

.product-price-subscription .product-price-label {
  background: #40b6c9;
}

.product-price {
  line-height: 1;
  white-space: nowrap;
  margin-top: 16px;
  transform: translateX(3px);
}
  @media screen and (max-width: 767px) {
    .product-price {
      margin-top: 3.467vw;
      transform: translateX(0.4vw);
    }
  }

.product-price strong {
  font-size: 7.4rem;
  font-weight:700;
  letter-spacing: 0;
}
  @media screen and (max-width: 1199px) {
    .product-price strong {
      font-size: 6.2vw;
    }
  }
  @media screen and (max-width: 767px) {
    .product-price strong {
      font-size: 10.667vw;
      letter-spacing: 0;
    }
  }

.product-price-comma {
  display: inline-block;
  font-size: 5.5rem;
  letter-spacing: 0.08em;
  vertical-align: 0.08em;
  margin-right: -0.1em;
}
  @media screen and (max-width: 1199px) {
    .product-price-comma {
      font-size: 4.6vw;
    }
  }
  @media screen and (max-width: 767px) {
    .product-price-comma {
      font-size: 8vw;
      vertical-align: 0.06em;
    }
  }

.product-price-yen {
  font-size: 2.56rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  vertical-align: 0.07em;
  margin-left: 6px;
}
  @media screen and (max-width: 1199px) {
    .product-price-yen {
      font-size: 2.2vw;
    }
  }
  @media screen and (max-width: 767px) {
    .product-price-yen {
      font-size: 3.733vw;
      letter-spacing: 0.06em;
      margin-left: 0.667vw;
    }
  }

.product-price-tax {
  font-size: 2.2rem;
  letter-spacing: 0.08em;
  vertical-align: 0.07em;
}
  @media screen and (max-width: 1199px) {
    .product-price-tax {
      font-size: 1.85vw;
    }
  }
  @media screen and (max-width: 767px) {
    .product-price-tax {
      font-size: 3.2vw;
      letter-spacing: 0.06em;
    }
  }

.product-purchase-button {
  width: 300px;
  margin-top: 23px;
  background: linear-gradient(90deg, #006cb8 5%, #009db7 95%);
}
  @media screen and (max-width: 767px) {
    .product-purchase-button {
      width: 100%;
      font-size: 3.733vw;
      margin-top: 4.667vw;
    }
  }

  @media screen and (max-width: 767px) {
    .product-purchase-button > span {
      gap: 0.933vw;
      letter-spacing: 0.06em;
    }

    .product-purchase-button > span::before {
        border-width: 4px 0 4px 6px;
    }
  }

.product-subscription-note {
  display: grid;
  grid-template-columns: 223px minmax(0, 1fr);
  align-items: center;
  gap: 29px;
  text-align: left;
  font-size: 1.6rem;
  margin: 40px 99px 0;
  padding: 36px 20px 37px 28px;
  border-top: 1px solid #bfe6ed;
  border-bottom: 1px solid #bfe6ed;
}
  @media screen and (max-width: 1199px) {
    .product-subscription-note {
      margin-right: 4vw;
      margin-left: 4vw;
    }
  }
  @media screen and (max-width: 767px) {
    .product-subscription-note {
      display: block;
      font-size: 3.467vw;
      margin: 7.867vw 0 0;
      padding: 5.333vw 2vw 4.933vw;
    }
  }

.product-subscription-label {
  color: #fff;
  text-align: center;
  font-size: 1.8rem;
  letter-spacing: 0.08em;
  line-height: 1;
  padding: 9px 10px 11px;
  background: #40b6c9;
}
  @media screen and (max-width: 767px) {
    .product-subscription-label {
      font-size: 3.467vw;
      letter-spacing: 0.06em;
      width: 44vw;
      margin: 0 auto 2.933vw;
      padding: 1.867vw 1.334vw 2.133vw;
    }
  }

.product-subscription-note a {
  color: #009db7;
  text-decoration: underline;
}
  @media screen and (max-width: 767px) {
    .product-subscription-note a {
      margin-top: 0.933vw;
    }
  }

.product-feature-card {
  text-align: left;
  margin-top: 80px;
  padding: 40px 40px;
  border: 4px solid #bfe6ed;
  background-color: #fff;
}
  @media screen and (max-width: 767px) {
    .product-feature-card {
      margin-top: 10.667vw;
      padding: 5.333vw 4vw 4.133vw;
    }
  }

.product-functional-label {
  width: fit-content;
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  line-height: 1;
  margin: 0 auto 24px;
  padding: 8px 15px 9px 20px;
  border: 1px solid #140700;
  border-radius: 10px;
}
  @media screen and (max-width: 767px) {
    .product-functional-label {
      font-size: 3.467vw;
      margin-bottom: 2.8vw;
      padding: 1.867vw 3.2vw 2vw 4.267vw;
    }
  }

.product-feature-list li {
  position: relative;
  padding-left: 18px;
  margin-bottom: 10px;
}
  @media screen and (max-width: 767px) {
    .product-feature-list li {
      padding-left: 3.333vw;
      margin-bottom: 1.867vw;
    }
  }

.product-feature-list li:last-child {
  margin-bottom: 0;
}

.product-feature-list li::before {
  content: "";
  position: absolute;
  top: 0.75em;
  left: 0;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #7fcedb;
  transform: translateY(-50%);
}
  @media screen and (max-width: 767px) {
    .product-feature-list li::before {
      top: 0.75em;
      width: 2.133vw;
      height: 2.133vw;
    }
  }

.product-feature-list-functional {
  margin-bottom: 34px;
  padding-bottom: 36px;
  border-bottom: 1px solid #bfe6ed;
}
  @media screen and (max-width: 767px) {
    .product-feature-list-functional {
      margin-bottom: 5.333vw;
      padding-bottom: 4.267vw;
    }
  }

.product-feature-list-functional li {
  transform: translateX(45px);
  margin-bottom: 6px;
  width: fit-content;
}
  @media screen and (max-width: 1199px) {
    .product-feature-list-functional li {
      transform: none;
      padding-left: 3.333vw;
    }
  }

.product-feature-body {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  align-items: center;
  gap: 40px;
}
  @media screen and (max-width: 767px) {
    .product-feature-body {
      display: flex;
      flex-direction: column;
      gap: 4.133vw;
    }
  }

.product-feature-image {
  width: 150px;
  margin: 0 auto;
}
  @media screen and (max-width: 767px) {
    .product-feature-image {
      width: 32vw;
    }
  }

.product-capsule-note {
  margin-top: 36px;
  margin-bottom: -3px;
}
  @media screen and (max-width: 767px) {
    .product-capsule-note {
      margin-top: 4.267vw;
      padding: 0 2vw;
      margin-bottom: -0.8vw;
    }
  }

.product-section {
  padding-top: 69px;
  margin-top: 80px;
  border-top: 1px solid #bfe6ed;
}
  @media screen and (max-width: 767px) {
    .product-section {
      padding-top: 9.2vw;
      margin-top: 10.667vw;
    }
  }

.product-section-note {
  margin-top: 25px;
}
  @media screen and (max-width: 767px) {
    .product-section-note {
      margin-top: 4.533vw;
    }
  }

.product-section-inner {
  width: 1040px;
  max-width: 100%;
  margin: 0 auto;
}
  @media screen and (max-width: 767px) {
    .product-section-inner {
      width: 100%;
    }
  }


/*** 栄養成分表示 ***/

.nutrition-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 40px;
  text-align: left;
  margin-top: 26px;
}
  @media screen and (max-width: 767px) {
    .nutrition-grid {
      display: block;
      margin-top: 4.8vw;
    }
  }

.nutrition-column {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}
  @media screen and (max-width: 767px) {
    .nutrition-column {
      gap: 4vw;
    }
  }

  @media screen and (max-width: 767px) {
    .nutrition-column + .nutrition-column {
      margin-top: 4vw;
    }
  }

.nutrition-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  background: rgba(255, 255, 255, 0.78);
}

.nutrition-table caption {
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  text-align: center;
  padding: 13px 12px;
  border: 2px solid #ddd;
  border-bottom: 0;
  background: #e8f6fb;
}
  @media screen and (max-width: 767px) {
    .nutrition-table caption {
      font-size: 3.467vw;
      padding: 2.133vw 2.4vw 2vw;
    }
  }

.nutrition-table th,
.nutrition-table td {
  font-size: 1.6rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  vertical-align: middle;
  padding: 13px 16px;
  border: 2px solid #ddd;
}
  @media screen and (max-width: 767px) {
    .nutrition-table th,
    .nutrition-table td {
      font-size: 3.467vw;
      padding: 2vw 2.4vw;
    }
  }

.nutrition-table th {
  width: 43.5%;
}
  @media screen and (max-width: 767px) {
    .nutrition-table th {
      width: 40.87%;
    }
  }

.nutrition-table td {
  text-align: right;
  white-space: nowrap;
}
  @media screen and (max-width: 1199px) {
    .nutrition-table td {
      white-space: normal;
    }
  }

.product-list-button {
  color: #009db7;
  width: 420px;
  border: 2px solid #009db7;
  margin-top: 40px;
  background-color: #fff;
}
  @media screen and (max-width: 767px) {
    .product-list-button {
      width: 73.333vw;
      margin-top: 5.334vw;
      border-width: 1px;
    }
  }


/*** 原材料名 ***/

.product-text-card {
  text-align: left;
  margin-top: 31px;
  padding: 34px 40px 36px;
  border: 2px solid #bfe6ed;
  background-color: #fff;
}
  @media screen and (max-width: 767px) {
    .product-text-card {
      line-height: 1.6;
      margin-top: 5.6vw;
      padding: 4vw 5.333vw 4.267vw;
    }
  }


/*** ご注意 ***/

.product-caution-list {
  text-align: left;
  margin-top: 67px;
}
  @media screen and (max-width: 767px) {
    .product-caution-list {
      margin-top: 4.4vw;
      padding: 0 2vw;
    }
  }

.product-caution-list li {
  text-indent: -0.6em;
  padding-left: 0.6em;
  margin-bottom: 9px;
}
  @media screen and (max-width: 767px) {
    .product-caution-list li {
      margin-bottom: 2.133vw;
    }
  }

.product-caution-list li:last-child {
  margin-bottom: 0;
}
