/* ===============================================
  * 商品詳細 共通系 .productdetail *
=============================================== */
.productdetail .global-contents__inner {
  width: 100%;
}
.productdetail .product__desc--fullwidth {
  grid-column: 1 / 3;
}
.productdetail .c-heading.c-heading--large {
  color: var(--color-secondary);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
  border-color: #eaf0f2;
}
.productdetail .product__item--image {
  border-radius: 1rem;
  border: 1px solid var(--color-gray-200);
  overflow: hidden;
}
.productdetail .product__item--image img {
  aspect-ratio: 1 / 1;
  object-fit: contain;
}
.productdetail .product__item--name {
  letter-spacing: 0.05em;
}
.productdetail .product__item--name a {
  font-size: inherit;
}
.productdetail .product__price--discountrate:not(:empty) {
  align-self: end;
  padding: 0 0 0.15rem 0;
  font-weight: var(--fw-bold);
  color: var(--color-emphasis);
  background-color: transparent;
}
.productdetail .product__price--yen.product__price--yen--discount {
  color: var(--color-emphasis);
}
.productdetail .product__price--item > span {
  display: flex;
  align-items: baseline;
}
.productdetail
  .product__price--special
  .product__price--item
  .product__price--yen,
.productdetail
  .product__price--fixedpurchase
  .product__price--item
  .product__price--yen {
  font-size: 1.1rem;
}
.productdetail .product__price {
  display: flex;
  flex-wrap: wrap;
}
.productdetail .product__price:not(.product__price--fixedpurchase) {
  align-items: end;
  gap: 0.5rem;
}
.productdetail
  .product__price--proper.product__price--item
  .product__price--yen {
  font-size: 1rem;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .productdetail {
    --inner-width: 92%;
  }
  .productdetail .product__item--name {
    margin-top: 0.6rem;
    font-size: 1.3rem;
    line-height: 1.5;
  }
  .productdetail .product__item--price {
    margin-top: 0.8rem;
  }
  .productdetail .product__price--item .product__price--numeric {
    font-size: 1.8rem;
  }
  .productdetail .product__price--item .product__price--icon {
    font-size: 1rem;
  }
  .productdetail
    .product__price--proper.product__price--item
    .product__price--numeric {
    font-size: 1.4rem;
  }
  .productdetail .product__price.product__price--fixedpurchase {
    flex-direction: column;
  }
  .productdetail .product__price--discount.product__price--item {
    width: 100%;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .global-contents__inner {
    padding-bottom: 12rem;
  }
  .c-breadcrumb {
    width: min(90%, 114rem);
    margin-inline: auto;
  }
  .productdetail {
    --inner-width: 100%;
  }
  .productdetail .grid-container {
    display: grid;
    grid-template-columns: 57rem 1fr;
    column-gap: 8rem;
    width: min(90%, 114rem);
    margin-inline: auto;
  }
  .productdetail .product__item--name {
    margin-top: 0.8rem;
    font-size: 1.5rem;
    line-height: 1.7;
  }
  .productdetail .product__item--price {
    margin-top: 1rem;
  }
  .productdetail .product__price--item .product__price--numeric {
    font-size: 2rem;
  }
  .productdetail .product__price--item .product__price--icon {
    font-size: 1.1rem;
  }
  .productdetail
    .product__price--proper.product__price--item
    .product__price--numeric {
    font-size: 1.6rem;
  }
  .productdetail .product__price--discountrate:not(:empty) {
    font-size: 1.2rem;
  }
  .productdetail .product__price--discount.product__price--item {
    padding-right: var(--price-item-gap, 0.3rem);
  }
}

/* ===============================================
  * スライダー画像 エリア .productdetail__imagearea *
=============================================== */
.productdetail__imagearea {
  width: 100vw;
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .productdetail__imagearea {
    width: 100%;
  }
}

/* ===============================================
  * Swiper *
=============================================== */
.productdetail .swiper:not(.swiper-initialized) {
  visibility: hidden;
}
.productdetail__imagearea .main-slider {
  position: relative;
}
.productdetail__imagearea .main-slider .swiper-button-prev,
.productdetail__imagearea .main-slider .swiper-button-next {
  background: url("/Contents/ImagesPkg/product/carousel-arrow.svg") no-repeat
    center / contain;
}
.productdetail__imagearea .main-slider .swiper-button-next {
  transform: scale(-1, 1);
}
.productdetail__imagearea .main-slider .swiper-button-prev::after,
.productdetail__imagearea .main-slider .swiper-button-next::after {
  content: "";
}
.productdetail__imagearea .main-slider .swiper-slide,
.productdetail__imagearea .main-slider .swiper-slide img {
  border-radius: 1rem;
}
.productdetail__imagearea .thumbnail-slider {
  width: 100%;
}
.productdetail__imagearea .thumbnail-slider .swiper-slide {
  cursor: pointer;
}
.productdetail__imagearea .thumbnail-slider .swiper-slide-thumb-active {
  border: 1px solid var(--color-black);
  box-sizing: border-box;
}
.productdetail__imagearea .thumbnail-slider .swiper-slide,
.productdetail__imagearea .thumbnail-slider .swiper-slide img {
  border-radius: 0.5rem;
}
.productdetail__imagearea
  .thumbnail-slider
  .swiper-slide.swiper-slide-thumb-active {
  border-color: var(--color-accent);
}
.productdetail__imagearea .main-slider .swiper-slide,
.productdetail__imagearea .thumbnail-slider .swiper-slide {
  border: 1px solid #eeeeee;
  transition: border var(--transition-default);
}
.productdetail__imagearea .main-slider .swiper-slide img,
.productdetail__imagearea .thumbnail-slider .swiper-slide img {
  aspect-ratio: 1 / 1;
  object-fit: contain;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .productdetail__imagearea .main-slider {
    width: 100vw;
  }
  .productdetail__imagearea .thumbnail-slider {
    padding-inline: 1.5rem;
    margin-top: 1rem;
  }
  .productdetail__imagearea .main-slider .swiper-button-prev,
  .productdetail__imagearea .main-slider .swiper-button-next {
    width: 3.6rem;
    height: 3.6rem;
  }
  .productdetail__imagearea .main-slider .swiper-button-next {
    --swiper-navigation-sides-offset: 1rem;
  }
  .productdetail__imagearea .main-slider .swiper-button-prev {
    --swiper-navigation-sides-offset: 1rem;
  }
  .productdetail__imagearea .main-slider .swiper-slide {
    border: none;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .productdetail__imagearea .main-slider {
    width: 100%;
  }
  .productdetail__imagearea .main-slider .swiper-button-prev,
  .productdetail__imagearea .main-slider .swiper-button-next {
    width: 4rem;
    height: 4rem;
  }
  .productdetail__imagearea .main-slider .swiper-button-next {
    --swiper-navigation-sides-offset: 1.5rem;
  }
  .productdetail__imagearea .main-slider .swiper-button-prev {
    --swiper-navigation-sides-offset: 1.5rem;
  }
  .productdetail__imagearea .thumbnail-slider {
    margin-top: 2rem;
  }
  .productdetail__imagearea .thumbnail-slider .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 1.2rem 1.3rem;
  }
  .productdetail__imagearea .thumbnail-slider .swiper-slide {
    width: 100% !important;
  }
}

/* ===============================================
  * 商品説明エリア .productdetail__descarea *
=============================================== */
.productdetail__descarea .product__desc--icon {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.productdetail__descarea .product__desc--sellterm {
  margin-top: 1rem;
  font-size: 1.2rem;
}
.productdetail__descarea .product__desc--name {
  font-family: var(--font-zen-kaku-gothic);
  font-weight: var(--fw-bold);
  line-height: 1.5;
  letter-spacing: 0.05em;
}
.productdetail__descarea .product__desc--review-link a {
  --color-textlink: var(--color-secondary);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  letter-spacing: 0.05em;
}
.productdetail__descarea .product__desc--id,
.productdetail__descarea .product__desc--outline {
  display: none;
}
.productdetail__descarea .product__desc--catchcopy:not(:empty) {
  margin-top: 2rem;
  line-height: 1.7;
  letter-spacing: 0.05em;
}
.productdetail__descarea .product__desc--set-promotion:not(:empty) {
  margin-top: 2.5rem;
  font-weight: var(--fw-bold);
  line-height: 1.7;
  color: var(--color-emphasis);
}
.productdetail__descarea .product__desc--price {
  margin-top: var(--desc-price-gap, 2rem);
}
.productdetail__descarea .ChangesByVariation:has(*) + .product__desc--price {
  --desc-price-gap: 1rem;
}
.productdetail__descarea .product__price--discount.product__price--item {
  --price-item-gap: 0.5rem;
  width: fit-content;
}
.productdetail__descarea
  .product__price--proper.product__price--item
  .product__price--numeric {
  font-size: 1.8rem;
}
.productdetail__descarea
  .product__price--proper.product__price--item
  .product__price--tax {
  font-size: 1.2rem;
}
.productdetail__descarea .product__price--discountrate:not(:empty) {
  font-size: 1.6rem;
}
.productdetail__descarea .btnListContact {
  margin-top: 0.6rem;
}
.productdetail__descarea .product__point {
  margin-top: 1rem;
}
.productdetail__descarea .product__inquiry {
  --color-textlink: var(--color-text-default);
}
.productdetail__descarea .product__point,
.productdetail__descarea .product__inquiry {
  position: relative;
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
  font-size: 1.3rem;
  letter-spacing: 0.05em;
}
.productdetail__descarea .product__point::before,
.productdetail__descarea .product__inquiry::before {
  display: block;
  width: 1.8rem;
  height: 1.8rem;
  background: no-repeat center / contain;
  content: "";
}
.productdetail__descarea .product__point::before {
  background-image: url(../Contents/ImagesPkg/product/icon-point.svg);
}
.productdetail__descarea .product__inquiry::before {
  background-image: url(../Contents/ImagesPkg/product/icon-inquery.svg);
}
.productdetail__descarea .product__favorite--popup {
  position: fixed;
  top: 50%;
  right: 50%;
  display: grid;
  justify-content: center;
  row-gap: 2rem;
  padding: 4rem;
  width: min(35rem, 90%);
  text-align: center;
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-200);
  border-radius: 1rem;
  transform: translate(-50%, -50%);
  z-index: 10;
}
.productdetail__descarea .productdetail__stock--table {
  display: none;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .productdetail__descarea {
    margin-top: 3rem;
  }
  .productdetail__descarea .product__desc--icon,
  .productdetail__descarea > .ChangesByVariation,
  .productdetail__descarea .btnListContact {
    padding-inline: 1.5rem;
  }
  .productdetail__descarea .product__desc--name {
    font-size: 2rem;
  }
  .productdetail__descarea .product__desc--review-link {
    margin-top: 1rem;
    font-size: 1.4rem;
  }
  .productdetail__descarea .product__desc--review-icon {
    width: 1.4rem;
    height: 1.4rem;
  }
  .productdetail__descarea .product__desc--catchcopy {
    font-size: 1.5rem;
  }
  .productdetail__descarea .product__desc--set-promotion {
    font-size: 1.3rem;
  }
  .productdetail__descarea .product__price--item .product__price--numeric {
    font-size: 2.6rem;
  }
  .productdetail
    .productdetail__descarea
    .product__price--item
    .product__price--yen {
    font-size: 1.6rem;
  }
  .productdetail
    .productdetail__descarea
    .product__price--proper.product__price--item
    .product__price--yen {
    font-size: 1.2rem;
  }
  .productdetail__descarea .product__desc--price .product__price--tax {
    font-size: 1.2rem;
  }
  .productdetail__descarea
    .product__price--proper.product__price--item
    .product__price--numeric {
    font-size: 1.8rem;
  }
  .productdetail__descarea .product__price.product__price--fixedpurchase {
    row-gap: 0.6rem;
  }
  .productdetail__descarea
    .product__price.product__price--fixedpurchase
    .product__price--icon {
    margin-right: 0.3rem;
    font-size: 1.2rem;
    letter-spacing: 0.05em;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .productdetail__descarea {
    width: var(--inner-width);
    margin-inline: auto;
  }
  .productdetail__descarea .product__desc--name {
    font-size: 2.4rem;
  }
  .productdetail__descarea .product__desc--review-link {
    margin-top: 1.5rem;
    font-size: 1.3rem;
  }
  .productdetail__descarea .product__desc--review-icon {
    width: 1.6rem;
    height: 1.6rem;
  }
  .productdetail__descarea .product__desc--catchcopy {
    font-size: 1.6rem;
  }
  .productdetail__descarea .product__desc--set-promotion {
    font-size: 1.4rem;
  }
  .productdetail__descarea .product__price--item .product__price--numeric {
    font-size: 3rem;
  }
  .productdetail
    .productdetail__descarea
    .product__price--item
    .product__price--yen {
    font-size: 2rem;
  }
  .productdetail
    .productdetail__descarea
    .product__price--proper.product__price--item
    .product__price--yen {
    font-size: 1.2rem;
  }
  .productdetail__descarea .product__desc--price .product__price--tax {
    font-size: 1.5rem;
  }
  .productdetail__descarea .product__price.product__price--fixedpurchase {
    gap: 1rem 3rem;
  }
  .productdetail__descarea
    .product__price.product__price--fixedpurchase
    .product__price--icon {
    margin-right: 0.5rem;
    font-size: 1.3rem;
    letter-spacing: 0.08em;
  }
}

/* ===============================================
  * 商品購入エリア .productdetail__buyarea *
=============================================== */
.productdetail__buyarea {
  margin-top: 3rem;
}
.productdetail__buyarea .product__stock {
  margin-top: 2.5rem;
}
.productdetail__buyarea .product__stock--text,
.productdetail__buyarea .product__desc--sellterm-text {
  font-weight: var(--fw-bold);
}
.productdetail__buyarea .product__desc--sellterm {
  letter-spacing: 0.05em;
}
.productdetail__buyarea .product__actions {
  display: grid;
  align-items: center;
  grid-template-columns: auto 1fr;
  margin-top: 2.5rem;
}
.productdetail__buyarea .product__count {
  display: grid;
  align-items: center;
}
.productdetail__buyarea .product__count {
  letter-spacing: 0.05em;
}
.productdetail__buyarea .product__count--form .c-form__input--text {
  text-align: center;
  font-weight: var(--fw-medium);
  border-color: #aaaaaa;
  border-radius: 1rem;
}
.productdetail__buyarea .product__favorite--add {
  --color-favorite-accent: #e25858;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--color-white);
  border: 1px solid #aaaaaa;
  border-radius: 1rem;
  color: var(--color-text-default);
  text-decoration: none;
}
@media (hover: hover) {
  .productdetail__buyarea
    .product__favorite--add:hover
    .product__favorite--icon
    path {
    fill: var(--color-favorite-accent);
  }
}
.productdetail__buyarea .product__favorite--popup .c-button {
  min-width: 0;
}
.productdetail__buyarea .product__favorite--icon {
  width: 2rem;
  aspect-ratio: 1;
}
.productdetail__buyarea .product__favorite--icon path {
  transition: fill var(--transition-default);
}
.productdetail__buyarea .product__favorite--icon.added path {
  fill: var(--color-favorite-accent);
}
.productdetail__buyarea .product__favorite--count {
  line-height: 1;
  text-align: center;
  color: #888888;
}
.productdetail__buyarea .variation__panel--wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}
.productdetail__buyarea .variation__panel--heading {
  font-weight: var(--fw-bold);
  letter-spacing: 0.08em;
  border-bottom: 1px solid #dddddd;
}
.productdetail__buyarea .variation__panel--item {
  border: 1px solid #e5e5e5;
  text-align: center;
  text-decoration: none;
}
.productdetail__buyarea .variation__panel--item.selected {
  border: 1px solid var(--color-secondary);
  color: var(--color-secondary);
}
.productdetail__buyarea .product__option {
  --bg-color: #f2f9fc;
  margin-top: 3rem;
  border: none;
  border-radius: 1rem;
}
.productdetail__buyarea .product__option .c-form__item dt span {
  font-weight: var(--fw-bold);
}
.productdetail__buyarea .c-form__input--select {
  padding-block: 1.8rem;
  padding-inline: 2rem;
  font-size: 1.5rem;
  font-family: var(--font-ja);
  border-color: var(--select-border-color, #aaaaaa);
  background-image: url(../Contents/ImagesPkg/product/icon-caret.svg);
  background-size: 1.5rem 1.5rem;
  background-position: top 50% right 2rem;
}
.productdetail__buyarea
  .product__option
  .c-form__input--check
  input:nth-child(n + 2) {
  margin-left: 2rem;
}
.productdetail__buyarea .product__option .c-form__input--check input {
  width: 2.2rem;
  height: 2.2rem;
  border: none;
  border-radius: 100vh;
  background-image: url(../Contents/ImagesPkg/product/icon-check-disable.svg);
  background-color: inherit;
}
.productdetail__buyarea .product__option .c-form__input--check input:checked {
  background-image: url(../Contents/ImagesPkg/product/icon-check-enable.svg);
}
.productdetail__buyarea
  .product__option
  .c-form__input--check
  input:checked::before {
  display: none;
}
.productdetail__buyarea .product__option .c-form__input--text {
  height: 10rem;
  border-color: var(--color-primary);
  border-radius: 0.5rem;
}
.productdetail__buyarea .product__option .c-form__input--text:focus {
  outline-color: var(--color-secondary);
}
.productdetail__buyarea > .c-form__error {
  display: none;
}
.productdetail__buyarea .product__option .c-form__input--select {
  --select-border-color: var(--color-primary);
  border-radius: 0.5rem;
}
.productdetail .productdetail__buyarea .product__addcart {
  display: grid;
}
.productdetail .productdetail__buyarea .product__addcart .c-button {
  --button-width: 100%;
  --button-border: none;
}
.productdetail
  .productdetail__buyarea
  .product__addcart
  .c-button.c-button__primary {
  column-gap: 1rem;
  align-items: center;
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
  background-color: var(--color-alt-primary);
}
.productdetail
  .productdetail__buyarea
  .product__addcart
  .c-button.c-button__primary::before {
  display: block;
  background: var(
      --icon-image,
      url(../Contents/ImagesPkg/product/icon-cart.svg)
    )
    no-repeat center / contain;
  content: "";
}
.productdetail
  .productdetail__buyarea
  .product__addcart
  .c-button.c-button__primary--subscription {
  background-color: var(--color-alt-secondary);
}
.productdetail
  .productdetail__buyarea
  .product__addcart
  .c-button.c-button__primary--subscription {
  --icon-image: url(../Contents/ImagesPkg/product/icon-subscription.svg);
}
.productdetail__buyarea .product__soldout {
  font-weight: var(--fw-medium);
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--color-white);
  background-color: #aaaaaa;
}
.productdetail .variation__item {
  display: grid;
  grid-template-columns: 10% 1fr 35%;
  align-items: center;
  column-gap: 1rem;
  padding-block: 2rem;
  border-bottom: 1px solid var(--color-gray-200);
}
.productdetail .variation__item:first-of-type {
  border-top: 1px solid var(--color-gray-200);
}
.productdetail .variation__item--container {
  display: none;
  margin-block: 2rem;
}
.productdetail .variation__item--variation-name2 {
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
  font-size: 1.3rem;
  font-weight: var(--fw-bold);
}
.productdetail .variation__item .variation__item--stock {
  display: flex;
  align-items: center;
  column-gap: 0.5rem;
}
.productdetail .variation__item--actions {
  display: grid;
  row-gap: 0.25rem;
}
.productdetail .variation__item--actions .c-button {
  min-width: auto;
  width: 100%;
  padding-inline: 0;
  padding-block: 1rem;
}
.productdetail .variation__matrix {
  margin-block: 2rem;
  overflow-x: auto;
}
.productdetail .variation__matrix--table {
  --table-border: 1px solid var(--color-black);
  width: max-content;
  border: var(--table-border);
  border-collapse: collapse;
}
.productdetail .variation__matrix--table tr:not(:last-of-type) {
  border-bottom: var(--table-border);
}
.productdetail .variation__matrix--table tr > *:not(:last-child) {
  border-right: var(--table-border);
}
.productdetail .variation__matrix--table th,
.productdetail .variation__matrix--table td {
  padding-block: 1rem;
  padding-inline: 1rem;
}
.productdetail .variation__matrix .c-form__input--radio-nolabel {
  display: grid;
  place-content: center;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .productdetail__buyarea .product__stock {
    font-size: 1.4rem;
    letter-spacing: 0.1em;
  }
  .productdetail__buyarea .product__desc--sellterm {
    font-size: 1.4rem;
  }
  .productdetail__buyarea .product__actions {
    column-gap: 1rem;
  }
  .productdetail__buyarea .product__count {
    grid-template-columns: max-content 7rem;
    column-gap: 0.5rem;
  }
  .productdetail__buyarea .product__count--text {
    font-size: 1.2rem;
  }
  .productdetail__buyarea .product__count--form .c-form__input--text {
    padding: 1rem;
    font-size: 1.8rem;
    line-height: calc(26 / 18);
  }
  .productdetail__buyarea .c-form__input--select {
    padding: 1.2rem 2rem 1.3rem 1.5rem;
    border-radius: 0.5rem;
  }
  .productdetail__buyarea .product__favorite--count {
    font-size: 1.1rem;
  }
  .productdetail__buyarea .variation__panel--item {
    padding: 1.3rem 1rem;
    border-radius: 0.5rem;
  }
  .productdetail__buyarea .variation__panel--heading {
    padding-bottom: 0.6rem;
    margin-bottom: 1.5rem;
    font-size: 1.5rem;
  }
  .productdetail__buyarea .product__option {
    padding-block: 2.5rem;
    padding-inline: 2.5rem;
  }
  .productdetail__buyarea .product__option .c-form__item dd {
    margin-top: 1rem;
  }
  .productdetail__buyarea .product__option .c-form__input--select {
    padding: 1.1rem 2rem 1.1rem 1.1rem;
  }
  .productdetail .productdetail__buyarea .product__addcart {
    row-gap: 1rem;
    margin-top: 1.5rem;
  }
  .productdetail__buyarea .product__favorite--add {
    column-gap: 0.5rem;
    padding: 1.3rem;
    line-height: calc(20 / 14);
  }
  .productdetail__buyarea .product__soldout {
    padding-block: 1rem;
    margin-top: 1.5rem;
    font-size: 1.6rem;
  }
  .productdetail .productdetail__buyarea .product__addcart .c-button {
    padding-block: 1.6rem;
  }
  .productdetail
    .productdetail__buyarea
    .product__addcart
    .c-button.c-button__primary {
    font-size: 1.8rem;
  }
  .productdetail
    .productdetail__buyarea
    .product__addcart
    .c-button.c-button__primary::before {
    width: 2.4rem;
    height: 2.4rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .productdetail__buyarea .product__stock {
    font-size: 1.5rem;
    letter-spacing: 0.05em;
  }
  .productdetail__buyarea .product__desc--sellterm {
    font-size: 1.5rem;
  }
  .productdetail__buyarea .product__actions {
    column-gap: 1.5rem;
  }
  .productdetail__buyarea .product__count {
    grid-template-columns: max-content 15.3rem;
    column-gap: 1rem;
  }
  .productdetail__buyarea .product__count--text {
    font-size: 1.5rem;
  }
  .productdetail__buyarea .product__count--form .c-form__input--text {
    padding: 1.2rem;
    font-size: 2.2rem;
    line-height: calc(31 / 22);
  }
  .productdetail__buyarea .product__favorite--count {
    font-size: 1.2rem;
  }
  .productdetail__buyarea .variation__panel--item {
    padding: 1.9rem 1rem;
    border-radius: 1rem;
  }
  .productdetail__buyarea .variation__panel--heading {
    padding-bottom: 0.7rem;
    margin-bottom: 2rem;
    font-size: 1.6rem;
  }
  .productdetail__buyarea .product__option {
    --bg-padding-inline: 3rem;
  }
  .productdetail__buyarea .product__option .c-form__input--select {
    padding: 1.5rem 2rem 1.1rem 1.1rem;
  }
  .productdetail__buyarea .product__option .c-form__input--check label {
    font-size: 1.5rem;
  }
  .productdetail .productdetail__buyarea .product__addcart {
    margin-top: 2rem;
  }
  .productdetail__buyarea .product__favorite--add {
    column-gap: 0.8rem;
    padding: 1.7rem;
    font-size: 1.5rem;
    line-height: calc(21 / 15);
  }
  .productdetail__buyarea .product__soldout {
    padding-block: 0.8rem;
    margin-top: 2rem;
    font-size: 2rem;
  }
  .productdetail .productdetail__buyarea .product__addcart {
    row-gap: 1.2rem;
  }
  .productdetail .productdetail__buyarea .product__addcart .c-button {
    padding-block: 1.8rem;
  }
  .productdetail
    .productdetail__buyarea
    .product__addcart
    .c-button.c-button__primary {
    font-size: 2rem;
  }
  .productdetail
    .productdetail__buyarea
    .product__addcart
    .c-button.c-button__primary::before {
    width: 2.6rem;
    height: 2.6rem;
  }
}

/* ===============================================
  * c icon *
=============================================== */
.c-productdetail-product-item__cicons {
  --roduct-item-cicon-font-size: 1.2rem;
  --roduct-item-cicon-line-height: calc(18 / 12);
  margin-block-end: 1rem;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .c-productdetail-product-item__cicons {
    padding-inline: 1.5rem;
  }
}
/* ===============================================
  * タブエリア .product__tabarea *
=============================================== */
.product__tabarea .c-tab__selector::before {
  height: 2px;
  background-color: var(--color-primary);
}
.product__tabarea .c-tab__selector--button {
  font-family: var(--font-ja);
  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
  border-radius: 1rem 1rem 0 0;
  background-color: #f4f9fa;
  border: 2px solid #f4f9fa;
}
.product__tabarea .c-tab__selector--button.active {
  color: var(--color-secondary);
  background-color: var(--color-white);
  border-color: var(--color-primary);
  border-bottom: none;
}
.product__tabarea .c-tab__content {
  padding-inline: 0;
}
.product__tabarea .c-tab__content .c-tab__content--item:first-child {
  font-weight: var(--fw-medium);
  line-height: 1.86;
}
.product__tabarea .c-tab__content .c-tab__content--item .table table {
  width: 100%;
  line-height: 1.43;
  letter-spacing: 0.05em;
  border: 1px solid #e0e0e0;
  border-radius: 0.5rem;
  border-spacing: 0;
}
.product__tabarea .c-tab__content .c-tab__content--item .table table th {
  background-color: #f8f8f8;
}
.product__tabarea
  .c-tab__content
  .c-tab__content--item
  .table
  table
  tr:nth-child(n + 2)
  th,
.product__tabarea
  .c-tab__content
  .c-tab__content--item
  .table
  table
  tr:nth-child(n + 2)
  td {
  border-top: 1px solid #e0e0e0;
}
.product__tabarea .c-tab__content .c-tab__content--item h3 {
  font-weight: var(--fw-bold);
}
.product__tabarea .c-tab__content .c-tab__content--area {
  display: flex;
  flex-direction: column;
  row-gap: 3rem;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .product__tabarea {
    margin-top: 5rem;
  }
  .product__tabarea .c-tab__selector {
    column-gap: 0.5rem;
  }
  .product__tabarea .c-tab__selector--item {
    min-width: calc((100% - 0.5rem) / 2);
  }
  .product__tabarea .c-tab__selector--button {
    padding-block: 1.4rem;
    font-size: 1.6rem;
  }
  .product__tabarea .c-tab__content {
    margin-block: 3rem;
  }
  .product__tabarea .c-tab__content .c-tab__content--item {
    padding-inline: 1.5rem;
    letter-spacing: 0.08em;
  }
  .product__tabarea .c-tab__content .c-tab__content--item .table table th {
    width: 12rem;
  }
  .product__tabarea .c-tab__content .c-tab__content--item .table table th,
  .product__tabarea .c-tab__content .c-tab__content--item .table table td {
    padding: 1.2rem;
  }
  .product__tabarea .c-tab__content .c-tab__content--item h3 {
    padding-bottom: 1.5rem;
    font-size: 1.5rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .product__tabarea {
    margin-top: 6rem;
  }
  .product__tabarea .c-tab__selector {
    column-gap: 0.6rem;
  }
  .product__tabarea .c-tab__selector--item {
    min-width: calc((100% - 0.6rem) / 2);
  }
  .product__tabarea .c-tab__selector--button {
    padding-block: 1.2rem;
    font-size: 1.8rem;
  }
  .product__tabarea .c-tab__content {
    margin-block: 1.5rem;
  }
  .product__tabarea .c-tab__content .c-tab__content--item {
    letter-spacing: 0.05em;
  }
  .product__tabarea .c-tab__content .c-tab__content--item:first-child {
    font-size: 1.5rem;
  }
  .product__tabarea .c-tab__content .c-tab__content--item .table table th {
    width: 17rem;
  }
  .product__tabarea .c-tab__content .c-tab__content--item .table table th,
  .product__tabarea .c-tab__content .c-tab__content--item .table table td {
    padding: 1.5rem;
  }
  .product__tabarea .c-tab__content .c-tab__content--item h3 {
    padding-bottom: 1.6rem;
    font-size: 1.6rem;
  }
  .product__tabarea .c-tab__content .c-tab__content--area {
    font-size: 1.5rem;
  }
}

/* ===============================================
  * 商品詳細説明１ テキスト開閉処理 #tab1-content *
=============================================== */
#tab1-content.active {
  position: relative;
}
#tab1-content.active .c-tab__content--area:has(*) {
  padding-bottom: 3rem;
}
#tab1-content .c-tab__content--area {
  overflow: hidden;
}
#tab1-content .c-tab__content--area.is-collapsed {
  max-height: var(--clamp-height);
}
#tab1-content .c-tab__content--area.is-collapsed::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  background: linear-gradient(to top, #fff 20%, rgba(255, 255, 255, 0));
  pointer-events: none;
}
.c-tab__content--more-button {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  font-weight: var(--fw-bold);
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--color-secondary);
  cursor: pointer;
  z-index: 2;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  #tab1-content .c-tab__content--area.is-collapsed::after {
    height: 17rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  #tab1-content .c-tab__content--area.is-collapsed::after {
    height: 16rem;
  }
}

/* ===============================================
  * SNS .product__share *
=============================================== */
.product__share {
  padding: 2rem;
  margin-top: 4rem;
  width: 100%;
  background-color: var(--color-quaternary);
  border: none;
}
.product__share .product__share--list {
  display: flex;
  justify-content: center;
  align-items: center;
}
.product__share .product__share--item {
  aspect-ratio: 1;
}
.product__share .product__share--heading {
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--color-secondary);
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .product__share .product__share--list {
    gap: 3rem;
    margin-top: 1.2rem;
  }
  .product__share .product__share--item {
    width: 3.4rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .product__share .product__share--list {
    gap: 2.6rem;
    margin-top: 1.6rem;
  }
  .product__share .product__share--item {
    width: 3.2rem;
  }
}

/* ===============================================
  * メール .product__arrivalmail *
=============================================== */
.product__arrivalmail-area > .c-button.c-button__primary {
  --button-min-width: 100%;
  gap: 1rem;
}
.product__arrivalmail-area > p {
  margin-top: 1rem;
  text-align: center;
}
.product__arrivalmail-area > a.c-button.c-button__primary::before {
  position: relative;
  display: block;
  background: url(../Contents/ImagesPkg/product/icon-mail.svg) no-repeat center /
    contain;
  content: "";
}
.product__arrivalmail-area .form__section--item {
  background-color: var(--color-tertiary);
  border: none;
}
.product__arrivalmail-area .c-form__item dt {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.product__arrivalmail-area .c-form__item dd {
  display: grid;
}
.product__arrivalmail-area .c-form__item dd .c-form__input--check {
  grid-column: span 2;
}
.product__arrivalmail-area .form__changearea {
  margin-top: 0;
}
.product__arrivalmail-area .c-form__input--check input {
  width: 2.2rem;
  height: 2.2rem;
  border: none;
  border-radius: 100vh;
  background-image: url(../Contents/ImagesPkg/product/icon-check-disable.svg);
  background-color: inherit;
}
.product__arrivalmail-area .c-form__input--check input:checked::before {
  display: none;
}
.product__arrivalmail-area .c-form__input--check input:checked {
  background-image: url(../Contents/ImagesPkg/product/icon-check-enable.svg);
}
.product__arrivalmail-area .c-form__input--text {
  border-color: #a4c0c9;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .product__arrivalmail-area {
    margin-top: 1.5rem;
  }
  .product__arrivalmail-area > a.c-button.c-button__primary::before {
    width: 2.4rem;
    height: 2.4rem;
  }
  .product__arrivalmail-area > .c-button.c-button__primary {
    --button-font-size: 1.8rem;
    padding-inline: 3.5rem;
    padding-block: 1.7rem;
  }
  .product__arrivalmail-area .form__section--item {
    --inner-width: 100%;
    --margin-between-items: 1rem;
    padding: 2rem 2rem 2.5rem;
    font-size: 1.3rem;
  }
  .product__arrivalmail-area .c-form__item {
    margin-top: 2rem;
    font-size: 1.1rem;
  }
  .product__arrivalmail-area .c-form__item dt {
    font-size: 1.4rem;
  }
  .product__arrivalmail-area .c-form__item dt span {
    font-size: 1.1rem;
  }
  .product__arrivalmail-area .c-form__item dd {
    row-gap: 1.5rem;
    margin-top: 1rem;
  }
  .product__arrivalmail-area .c-form__item dd .c-button.c-button__primary {
    padding-block: 0.8rem;
    padding-inline: 4rem;
  }
  .product__arrivalmail-area .c-form__input--text {
    grid-column: span 2;
    padding-inline: 1.5rem;
    padding-block: 0.9rem;
  }
  .product__arrivalmail-area .form__changearea {
    grid-column: span 2;
  }
  .product__arrivalmail-area .form__changearea .c-button {
    --button-min-width: 14.5rem;
    margin-inline: auto;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .product__arrivalmail-area {
    margin-top: 2rem;
  }
  .product__arrivalmail-area > a.c-button.c-button__primary::before {
    width: 2.6rem;
    height: 2.6rem;
  }
  .product__arrivalmail-area > .c-button.c-button__primary {
    --button-font-size: 2rem;
    padding-block: 1.9rem;
  }
  .product__arrivalmail-area .form__section--item {
    --margin-between-items: 1.5rem;
    padding: 2rem;
    font-size: 1.3rem;
  }
  .product__arrivalmail-area .c-form__item {
    margin-top: 1.5rem;
    font-size: 1.3rem;
  }
  .product__arrivalmail-area .c-form__item dt {
    font-size: 1.5rem;
  }
  .product__arrivalmail-area .c-form__item dt span {
    font-size: 1.2rem;
  }
  .product__arrivalmail-area .c-form__item dd {
    grid-template-columns: auto 13rem;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
  }
  .product__arrivalmail-area .c-form__item dd .c-button.c-button__primary {
    padding-block: 0.9rem;
  }
  .product__arrivalmail-area .c-form__item dd .c-form__error {
    width: 100%;
  }
  .product__arrivalmail-area .c-form__input--text {
    padding-inline: 2rem;
    padding-block: 0.9rem;
  }
  .product__arrivalmail-area .form__changearea .c-button {
    --button-min-width: 13rem;
    width: 100%;
  }
}

/* ===============================================
  * 商品詳細3,4エリア .product__bottomarea *
=============================================== */
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .productdetail .product__bottomarea {
    margin-top: 6rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .productdetail .product__bottomarea {
    margin-top: 10rem;
  }
  .productdetail
    .product__bottomarea
    .product__desc--detail.product__desc--detail3,
  .productdetail
    .product__bottomarea
    .product__desc--detail.product__desc--detail4 {
    padding-inline: 17rem;
  }
}

/* ===============================================
  * レビュー .product__review *
=============================================== */
.product__review {
  width: var(--inner-width);
  margin-inline: auto;
}
.product__review .product__container {
  --grid-columns: 3;
}
.product__review #pagination.above {
  margin-top: 0;
}
.product__review .form__section--item {
  border-radius: 1rem;
}
.product__review #pagination.above:has(*) + #dvReviewComment {
  margin-top: 3rem;
}
.product__review .form__section--item:first-child {
  --margin-between-items: 0;
}
.product__review .product__review--empty {
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
  text-align: center;
}
.product__review .c-button__primary {
  font-family: var(--font-main);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
}
.product__review #dvProductReviewButtonControls .c-button__primary::before {
  display: block;
  background: url(../Contents/ImagesPkg/product/icon-review.svg) no-repeat
    center / contain;
  content: "";
}
.product__review .form__changearea {
  margin-top: 2.5rem;
}
.product__review .form__changearea:not(:has(*)) {
  margin-top: 0;
}
.product__review .form__inputarea {
  margin-top: 2rem;
  font-family: var(--font-ja);
}
.product__review .button__group {
  align-items: center;
  justify-content: center;
}
.product__review .form__section--heading {
  padding-inline: 2rem;
}
.product__review .allReview__button {
  margin-top: 2rem;
  text-align: center;
}
.product__review .allReview {
  display: inline-block;
  padding-bottom: 0.25rem;
  font-family: var(--font-main);
  font-weight: var(--fw-bold);
  text-decoration: none;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--color-secondary);
  border-bottom: 1px solid var(--color-secondary);
}
.product__review .form__section--content {
  width: 100%;
}
.product__review .form__section--title {
  font-weight: var(--fw-bold);
  letter-spacing: 0.05em;
}
.product__review .form__section--evaluation {
  width: 10rem;
}
.product__review .form__section--text {
  font-weight: var(--fw-medium);
  line-height: 1.7;
  letter-spacing: 0.05em;
  word-break: break-all;
}
.product__review .form__section--user {
  display: flex;
  align-items: baseline;
  justify-content: end;
  column-gap: 1.8rem;
}
.product__review .form__section--nickname {
  font-size: 1.3rem;
  font-weight: var(--fw-medium);
  letter-spacing: 0.05em;
}
.product__review .form__section--date {
  font-size: 1.3rem;
  letter-spacing: 0.05em;
  color: #666666;
}
.product__review .c-form__input--select {
  color: #e5ce11;
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .product__review {
    margin-top: 6rem;
  }
  .product__review .button__group,
  .product__review .button__group > * {
    width: 100%;
  }
  .product__review .c-button {
    --button-min-width: 100%;
  }
  .product__review .c-button__primary,
  .product__review .c-button__secondary {
    column-gap: 0.8rem;
    font-size: 1.5rem;
  }
  .product__review .form__changearea .c-button {
    --button-width: 100%;
    padding-block: 1.5rem;
    margin-inline: auto;
  }
  .product__review #dvProductReviewButtonControls .c-button__primary::before {
    width: 2rem;
    height: 2rem;
  }
  .product__review .form__section--item {
    width: 100%;
  }
  .product__review .form__section--content {
    padding: 2rem 2rem 2.4rem;
  }
  .product__review .form__section--title {
    font-size: 1.6rem;
    line-height: 1.625;
  }
  .product__review .form__section--evaluation {
    margin-top: 0.8rem;
  }
  .product__review .form__section--text {
    margin-top: 1.5rem;
    font-size: 1.4rem;
  }
  .product__review .form__section--user {
    margin-top: 1.5rem;
  }
  .product__review .allReview {
    font-size: 1.4rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .product__review {
    margin-top: 10rem;
  }
  .product__review .product__container {
    --grid-columns: 6;
  }
  .product__review .product__review--empty {
    font-size: 1.5rem;
  }
  .product__review .c-button__primary,
  .product__review .c-button__secondary {
    column-gap: 0.6rem;
    font-size: 1.6rem;
  }
  .product__review .form__changearea .c-button {
    width: 30rem;
  }
  .product__review #dvProductReviewButtonControls .c-button__primary::before {
    width: 2.2rem;
    height: 2.2rem;
  }
  .product__review .form__section--content {
    padding: 2.5rem;
  }
  .product__review .form__section--title {
    font-size: 1.8rem;
    line-height: 1.5;
  }
  .product__review .form__section--evaluation {
    margin-top: 1rem;
  }
  .product__review .form__section--text {
    margin-top: 2rem;
    font-size: 1.5rem;
  }
  .product__review .form__section--user {
    margin-top: 2rem;
  }
  .product__review .allReview {
    font-size: 1.5rem;
  }
}

/* ===============================================
  * アップセル・クロスセル .product__upsell .product__crosssell *
=============================================== */
.productdetail .productdetail__inner .product__suggestions {
  display: flex;
  flex-direction: column;
  background-color: var(--color-tertiary);
}
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .productdetail .productdetail__inner .product__suggestions {
    row-gap: 10rem;
    margin-top: 6rem;
    padding-block: 6rem 10rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .productdetail .productdetail__inner .product__suggestions {
    row-gap: 7.5rem;
    margin-top: 10rem;
    padding-block: 10rem;
  }
  .product__upsell,
  .product__crosssell {
    width: min(90%, 114rem);
    margin-inline: auto;
  }
  .product__upsell .product__container,
  .product__crosssell .product__container {
    --grid-columns: 5;
    --grid-gap: 3rem 3rem;
  }
}

/* ===============================================
  * 最近チェックしたアイテム .product__history *
=============================================== */
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .product__history {
    margin-top: 6rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .product__history {
    margin-top: 10rem;
  }
}

/**
 * instagram
 */
/* --- for small viewport --- */
@media screen and (max-width: 767px) {
  .l-product-detail-instagram {
    padding-block: 6rem;
    padding-inline: 1.5rem;
  }
}
/* --- for large viewport --- */
@media screen and (min-width: 768px) {
  .l-product-detail-instagram {
    padding-block: 10rem;
  }
}