@charset "UTF-8";

/* ----------------------------------------------------------
栄養成分一覧ページ用CSS
---------------------------------------------------------- */

:root {
  --elements-border: #bfe6ed;
  --elements-pv2: #f3fcf1;
  --elements-pv: #f3fbfd;
  --elements-50dx: #fef5f5;
  --elements-lutein: #fffeec;
}

/*** 栄養成分一覧 ***/

.elements .wrapper,
.elements-summary .wrapper {
  width: 1100px;
  max-width: calc(100% - 8vw);
}
  @media screen and (max-width: 1199px) {
    .elements .wrapper,
    .elements-summary .wrapper {
      max-width: calc(100% - 8vw);
    }
  }
  @media screen and (max-width: 767px) {
    .elements .wrapper,
    .elements-summary .wrapper {
      width: auto;
      max-width: none;
      margin: 0 4vw;
    }
  }

.elements .wrapper {
  padding: 112px 0 78px;
}
  @media screen and (max-width: 767px) {
    .elements .wrapper {
      padding: 12.267vw 0 9.867vw;
    }
  }

.elements-heading {
  color: #009db7;
  margin-bottom: 60px;
}
  @media screen and (max-width: 767px) {
    .elements-heading {
      margin: 0 4vw 5.867vw;
    }
  }

.elements-heading p {
  font-size: 2.4rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  margin-bottom: -1px;
}
  @media screen and (max-width: 767px) {
    .elements-heading p {
      font-size: 4vw;
      margin-bottom: -0.8vw;
    }
  }

.elements-scroll-note {
  font-size: 1.6rem;
  margin: 0 0 30px;
  white-space: nowrap;
}
  @media screen and (max-width: 767px) {
    .elements-scroll-note {
      font-size: 3.467vw;
      margin: 0 4vw 4.4vw;
    }
  }

.elements-scroll,
.elements-summary-scroll {
  width: 100%;
}
  @media screen and (max-width: 767px) {
    .elements-scroll,
    .elements-summary-scroll {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
  }

.elements-table-wrap {
  width: 1100px;
}
  @media screen and (max-width: 1199px) {
    .elements-table-wrap {
      margin-bottom: 2.4vw;
    }
  }
  @media screen and (max-width: 767px) {
    .elements-table-wrap {
      width: 220.8vw;
      transform-origin: 0 0;
    }
  }

.elements-product-head {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
  @media screen and (max-width: 767px) {
    .elements-product-head {
      margin: 0;
    }
  }

.elements-brand {
  color: #fff;
  font-size: 2rem;
  letter-spacing: 0.08em;
  padding: 10px 10px 11px;
  border-right: 4px solid #fff;
}
  @media screen and (max-width: 767px) {
    .elements-brand {
      font-size: 4vw;
      padding: 1.867vw 2.667vw 2vw;
    }
  }

.elements-brand-preservision {
  grid-column: 1 / 3;
  background: #006cb8;
}

.elements-brand-ocuvite {
  grid-column: 3 / 5;
  background: #1ba3d6;
  border-right: 0;
}

.elements-product {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  min-height: 252px;
  border: 4px solid var(--elements-border);
  margin-top: 20px;
  padding: 46px 43px 47px;
}
  @media screen and (max-width: 767px) {
    .elements-product {
      align-items: center;
      min-height: 0;
      margin-top: 2.667vw;
      padding: 7.467vw 6.933vw;
    }
  }

.elements-product + .elements-product {
  border-left: 0;
}

.elements-product img {
  width: 100%;
}

.elements-product-pv2 { background: var(--elements-pv2); }
.elements-product-pv { background: var(--elements-pv); }
.elements-product-50dx { background: var(--elements-50dx); }
.elements-product-lutein { background: var(--elements-lutein); }

.elements-category {
  margin-top: 40px;
}
  @media screen and (max-width: 767px) {
    .elements-category {
      margin: 4vw 0 0;
    }
  }

.elements-category h3 {
  width: 552px;
  max-width: 100%;
  color: #fff;
  letter-spacing: 0.08em;
  line-height: 1;
  border-radius: 100vh;
  padding: 11px 20px 13px;
  margin: 0 auto 20px;
}
  @media screen and (max-width: 767px) {
    .elements-category h3 {
      width: 76vw;
      font-size: 3.733vw;
      padding: 2vw 5.333vw 2.267vw;
      margin: 0 0 2.667vw 8vw;
    }
  }

.elements-category-carotenoid h3 { background: #e3a54c; }
.elements-category-vitamin h3 { background: #56aa4d; }
.elements-category-mineral h3 { background: #219dc6; }
.elements-category-omega h3 { background: #e8698a; }

.elements-nutrient-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  border: 4px solid var(--elements-border);
}

.elements-nutrient-table th,
.elements-nutrient-table td {
  vertical-align: middle;
}

.elements-description-row {
  background-color: #fff;
}

.elements-description-row + .elements-value-row td,
.elements-value-row + .elements-description-row th {
  border-top: 4px solid var(--elements-border);
}

.elements-description-cell {
  font-weight: 400;
  padding: 0;
  background-color: #fff;
}

.elements-description-inner {
  display: grid;
  grid-template-columns: 182px minmax(0, 1fr);
  align-items: center;
  min-height: 120px;
  padding: 20px;
}
  @media screen and (max-width: 767px) {
    .elements-description-inner {
      grid-template-columns: 35.467vw minmax(0, 1fr);
      min-height: 0;
      padding: 4vw 4vw;
    }
  }

.elements-label {
  color: currentColor;
  font-size: 1.8rem;
  letter-spacing: 0.06em;
  line-height: 1.15;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-height: 93px;
  border: 2px solid currentColor;
  border-radius: 20px;
  padding: 10px;
  background-color: #fff;
}
  @media screen and (max-width: 767px) {
    .elements-label {
      font-size: 3.733vw;
      line-height: 1.5;
      min-height: 20.533vw;
      padding: 4vw 2.933vw;
    }
  }

.elements-label-inner {
  letter-spacing: 0.06em;
  display: inline;
  text-align: center;
}
  @media screen and (max-width: 767px) {
    .elements-label-inner {
      max-width: 100%;
      text-align: left;
    }
  }

.elements-label small {
  font-size: 1.4rem;
  letter-spacing: 0.06em;
}
  @media screen and (max-width: 767px) {
    .elements-label small {
      font-size: 3.733vw;
    }
  }

.elements-category-carotenoid .elements-label { color: #e3a54c; }
.elements-category-vitamin .elements-label { color: #56aa4d; }
.elements-category-mineral .elements-label { color: #219dc6; }
.elements-category-omega .elements-label { color: #e8698a; }

.elements-description {
  font-size: 1.6rem;
  text-align: left;
  padding-left: 20px;
}
  @media screen and (max-width: 767px) {
    .elements-description {
      font-size: 3.733vw;
      padding-left: 4vw;
    }
  }

.elements-description p + p {
  border-top: 1px solid var(--elements-border);
  margin-top: 9px;
  padding-top: 8px;
}
  @media screen and (max-width: 767px) {
    .elements-description p + p {
      margin-top: 1.733vw;
      padding-top: 1.6vw;
    }
  }

.elements-value-row td {
  width: 25%;
  font-size: 1.6rem;
  letter-spacing: 0.08em;
  text-align: center;
  padding: 12px 10px 13px;
}
  @media screen and (max-width: 767px) {
    .elements-value-row td {
      font-size: 3.733vw;
      padding: 2.267vw 2.667vw 2.533vw;
    }
  }

.elements-value-row td + td {
  border-left: 4px solid var(--elements-border);
}

.elements-value-1 { background: var(--elements-pv2); }
.elements-value-2 { background: var(--elements-pv); }
.elements-value-3 { background: var(--elements-50dx); }
.elements-value-4 { background: var(--elements-lutein); }

.elements-note {
  font-size: 1.2rem;
  text-align: left;
  margin-top: 26px;
}
  @media screen and (max-width: 767px) {
    .elements-note {
      font-size: 3.2vw;
      margin: 4.667vw 2vw 0;
    }
  }
.elements-note li {
  text-indent: -0.6em;
  padding-left: 0.6em;
  margin-bottom: 0;
}
.elements-note li:last-child {
  margin-bottom: 0;
}


/*** 製品の概要 ***/

.elements-summary .wrapper {
  border-top: 1px solid var(--elements-border);
  padding: 68px 0 118px;
}
  @media screen and (max-width: 767px) {
    .elements-summary .wrapper {
      border-top: 1px solid var(--elements-border);
      padding: 8.8vw 0 15.333vw;
    }
  }

.elements-summary .heading-02 {
  margin-bottom: 60px;
}
  @media screen and (max-width: 767px) {
    .elements-summary .heading-02 {
      margin-bottom: 5.733vw;
    }
  }

.elements-summary-inner {
  width: 1100px;
}
  @media screen and (max-width: 1199px) {
    .elements-summary-inner {
      margin-bottom: 2.4vw;
    }
  }
  @media screen and (max-width: 767px) {
    .elements-summary-inner {
      width: 220.8vw;
      transform-origin: 0 0;
    }
  }

.elements-summary-products {
  display: grid;
  grid-template-columns: 152px repeat(4, minmax(0, 1fr));
  align-items: end;
}
  @media screen and (max-width: 767px) {
    .elements-summary-products {
      width: 220.8vw;
      grid-template-columns: 32vw repeat(4, minmax(0, 1fr));
    }
  }

.elements-summary-products > div {
  padding: 0 36px 19px;
}
  @media screen and (max-width: 767px) {
    .elements-summary-products > div {
      padding: 4.133vw 6vw;
    }
  }

.elements-summary-products img {
  width: 100%;
}

.elements-summary-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 1.6rem;
  line-height: 1.25;
  border: 4px solid var(--elements-border);
}
  @media screen and (max-width: 767px) {
    .elements-summary-table {
      width: 220.8vw;
      font-size: 3.733vw;
    }
  }

.elements-summary-label-col {
  width: 152px;
}
  @media screen and (max-width: 767px) {
    .elements-summary-label-col {
      width: 32vw;
    }
  }

.elements-summary-product-col {
  width: calc((100% - 152px) / 4);
}
  @media screen and (max-width: 767px) {
    .elements-summary-product-col {
      width: calc((100% - 32vw) / 4);
    }
  }

.elements-summary-table th,
.elements-summary-table td {
  letter-spacing: 0.08em;
  border-right: 4px solid var(--elements-border);
  border-bottom: 4px solid var(--elements-border);
  padding: 14px 8px 15px;
  vertical-align: middle;
}
  @media screen and (max-width: 767px) {
    .elements-summary-table th,
    .elements-summary-table td {
      padding: 2.8vw;
    }
  }

.elements-summary-table th {
  font-weight: 400;
  text-align: center;
  background: #fff;
}

.elements-summary-table tr > *:last-child {
  border-right: 0;
}

.elements-summary-table tbody tr:last-child > * {
  border-bottom: 0;
}

.elements-summary-table td:nth-child(2) { background: var(--elements-pv2); }
.elements-summary-table td:nth-child(3) { background: var(--elements-pv); }
.elements-summary-table td:nth-child(4) { background: var(--elements-50dx); }
.elements-summary-table td:nth-child(5) { background: var(--elements-lutein); }

.elements-summary-note {
  font-size: 1.2rem;
  text-align: right;
  margin-top: 26px;
}
  @media screen and (max-width: 767px) {
    .elements-summary-note {
      font-size: 3.2vw;
      margin: 4.8vw 1.2vw 0;
    }
  }

/*** ScrollHint ***/

.scroll-hint-shadow-wrap:has(.scroll-hint.is-left-scrollable)::before,
.scroll-hint-shadow-wrap.is-left-scrollable::before,
.scroll-hint-shadow-wrap:has(.scroll-hint.is-right-scrollable)::after,
.scroll-hint-shadow-wrap.is-right-scrollable::after {
  opacity: 0.3;
  visibility: visible;
}

.scroll-hint-icon {
  padding: 20px 4px 10px;
}

.scroll-hint-text {
  font-size: 1.2rem;
  letter-spacing: 0.08em;
}
  @media screen and (max-width: 767px) {
    .scroll-hint-text {
      font-size: 2.667vw;
    }
  }