.productdetail {
  --inner-width: 92%;
}
@media screen and (min-width: 768px) {
  .productdetail {
    --inner-width: 100%;
  }
}
.productdetail .c-heading--border {
  margin-bottom: 1rem;
}
@media screen and (min-width: 768px) {
  .productdetail .c-heading--border {
    margin-bottom: 2rem;
  }
}
@media screen and (min-width: 768px) {
  .productdetail .grid-container {
    display: grid;
    grid-template-columns: 57rem 1fr;
    column-gap: 9rem;
  }
}
.productdetail .swiper:not(.swiper-initialized) {
  visibility: hidden;
}
.productdetail__imagearea {
  width: 100vw;
}
@media screen and (min-width: 768px) {
  .productdetail__imagearea {
    width: 100%;
  }
}
.productdetail__imagearea .main-slider {
  width: 100vw;
  position: relative;
}
@media screen and (min-width: 768px) {
  .productdetail__imagearea .main-slider {
    width: 100%;
  }
}
.productdetail__imagearea .thumbnail-slider {
  width: 100%;
  margin-top: 1rem;
  padding-inline: 1rem;
}
.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;
}
/* @media screen and (min-width: 768px) {
  .productdetail__imagearea .thumbnail-slider {
    padding-inline: 0;
  }
  .productdetail__imagearea .thumbnail-slider .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 1.5rem;
  }
  .productdetail__imagearea .thumbnail-slider .swiper-slide {
    width: 100% !important;
  }
} */
.productdetail__descarea {
  width: var(--inner-width);
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .productdetail__descarea {
    margin-top: 3.5rem;
  }
}
.productdetail__descarea .product__desc--icon {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-block: 1rem;
}
.productdetail__descarea .product__desc--sellterm {
  font-size: 1.2rem;
  margin-block: 1rem;
}
.productdetail__descarea .product__desc--catchcopy {
  font-size: 1.4rem;
  letter-spacing: 0.02em;
  line-height: 1.6;
}
.productdetail__descarea .product__desc--name {
  font-size: 1.5rem;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.02em;
  line-height: 1.6667;
}
@media screen and (min-width: 768px) {
  .productdetail__descarea .product__desc--name {
    font-size: 2rem;
    line-height: 1.5;
  }
}
.productdetail__descarea .product__desc--id {
  font-size: 1.2rem;
  margin-block: 1rem;
}
.productdetail__descarea .product__desc--outline {
  font-size: 1.4rem;
  margin-block: 1rem;
}
.productdetail__descarea .product__desc--price {
  margin-top: 1.5rem;
}
.productdetail__descarea .product__desc--price .product__price--numeric {
  font-size: 2.5rem;
}
.productdetail__descarea .product__desc--price .product__price--tax {
  font-size: 1.2rem;
}
.productdetail__buyarea .product__count {
  display: grid;
  grid-template-columns: max-content 8rem;
  column-gap: 1rem;
  align-items: center;
  margin-block: 1rem;
}
.productdetail .variation__item {
  border-bottom: 1px solid var(--color-gray-200);
  display: grid;
  grid-template-columns: 10% 1fr 35%;
  align-items: center;
  column-gap: 1rem;
  padding-block: 2rem;
}
.productdetail .variation__item:first-of-type {
  border-top: 1px solid var(--color-gray-200);
}
.productdetail .variation__item--container {
  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__panel {
  margin-block: 2rem;
}
.productdetail .variation__panel--wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}
.productdetail .variation__panel--heading {
  font-size: 1.4rem;
  margin-block: 1rem;
}
.productdetail .variation__panel--item {
  border: 1px solid var(--color-gray-200);
  border-radius: 0.5rem;
  color: inherit;
  padding: 1.5rem;
  text-decoration: none;
}
.productdetail .variation__panel--item.selected {
  border: 2px solid var(--color-black);
}
.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;
}
.productdetail .product__option {
  margin-block: 1rem;
}
.productdetail .product__share {
  width: 100%;
  background-color: var(--color-gray-200);
  margin-block: 1rem;
  padding: 2rem;
}
.productdetail .product__share--list {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3rem;
}
.productdetail .product__share--item {
  width: 4rem;
  aspect-ratio: 1;
}
.productdetail .product__share--item-x {
  padding: 0.5rem;
}
.productdetail .product__addcart {
  display: grid;
  row-gap: 1rem;
}
.productdetail .product__arrivalmail {
  --inner-width: 100%;
  padding: 2rem;
}
.productdetail .product__tabarea {
  margin-block: 4rem;
}
.productdetail .product__favorite--popup {
  width: min(35rem, 90%);
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-200);
  display: grid;
  row-gap: 2rem;
  padding: 4rem;
  position: fixed;
  top: 50%;
  right: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
}
.productdetail .product__favorite--popup .c-button {
  min-width: 0;
}
.productdetail .product__favorite--add {
  --color-favorite-accent: #E25858;
  width: 7rem;
  height: 7rem;
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-200);
  border-radius: 50%;
  display: grid;
  justify-content: center;
  align-items: center;
  row-gap: 0.5rem;
  padding: 1rem;
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  text-decoration: none;
  z-index: 2;
}
@media (hover: hover) {
  .productdetail .product__favorite--add:hover .product__favorite--icon path {
    fill: var(--color-favorite-accent);
  }
}
.productdetail .product__favorite--icon {
  width: 3.5rem;
  aspect-ratio: 1;
}
.productdetail .product__favorite--icon path {
  transition: fill var(--transition-default);
}
.productdetail .product__favorite--icon.added path {
  fill: var(--color-favorite-accent);
}
.productdetail .product__favorite--count {
  color: var(--color-black);
  text-align: center;
  line-height: 1;
}
.productdetail .product__desc--fullwidth {
  grid-column: 1/3;
  margin-block: 2rem;
}

.product__history,
.product__upsell,
.product__crosssell {
  width: var(--inner-width);
  margin-inline: auto;
  margin-block: 2rem;
}

.product__content--bottom + .product__content--bottom {
  margin-top: 5rem;
}

.c-heading + .product__container {
  margin-top: 2rem;
}

@media screen and (max-width: 767px) {
  .product__history .product__container,
  .product__upsell .product__container,
  .product__crosssell .product__container {
    max-width: 35.8rem;
    overflow: hidden;
    overflow-x: auto;
    display: flex;
    padding-bottom: 0.5rem;
  }
  .product__history .product__container .product__item,
  .product__upsell .product__container .product__item,
  .product__crosssell .product__container .product__item {
    width: 12rem;
    -ms-flex-negative: 0;
    flex-shrink: 0;
  }
  .product__history .product__container .product__item {
    width: 12rem;
    -ms-flex-negative: 0;
    flex-shrink: 0;
  }
}
@media screen and (min-width: 768px) {
  .product__history .product__container,
  .product__upsell .product__container,
  .product__crosssell .product__container {
    --grid-columns: 6;
  }
}
.product__review {
  width: var(--inner-width);
  margin-inline: auto;
  margin-block: 2rem;
}
.product__review .product__container {
  --grid-columns: 3;
}
@media screen and (min-width: 768px) {
  .product__review .product__container {
    --grid-columns: 6;
  }
}

.product__upsell,
.product__crosssell {
  grid-column: 1/3;
}




/* ===============================================
  * Override *
=============================================== */

/*
 * Components
 */

.c-breadcrumb {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .c-breadcrumb {
    margin-bottom: 1rem;
  }
}




/*
 * Layout
 */

.global-contents .productdetail {
  --padding-horizontal-product-detail: 1rem;
}

@media (min-width: 768px) {
  .global-contents .productdetail {
    --padding-horizontal-product-detail: 0;
  }
}

.global-contents__inner {
  width: 100%;
}

.productdetail .grid-container {
  width: 100vw;
}

@media (min-width: 768px) {
  .productdetail .grid-container {
    grid-template-columns: min(calc(580 / 1200 * 100%), 58rem) 1fr;
    column-gap: min(calc(60 / 1200 * 100%), 60rem);
  }
}

@media (min-width: 768px) {
  .product-detail__fluid-wrapper {
    max-width: calc(var(--design-width) + (var(--padding-horizontal, 4.6rem) * 2));
    margin-inline: auto;
    padding-inline: var(--padding-horizontal, 4.6rem);
  }
}




/*
 * 商品画像
 */

/* メインスライダー */

@media (min-width: 768px) {
  .productdetail__imagearea {
    position: sticky;
    top: var(--height-header, 14rem);

    height: fit-content;
  }
}

.productdetail__imagearea .main-slider {
  --fraction-position: 1rem;
  --new-icon-position: 1rem;
}

.productdetail__imagearea .main-slider .swiper-pagination {
  position: absolute;
  bottom: var(--fraction-position);
  left: var(--fraction-position);
  z-index: 2;

  width: fit-content;
  padding: .3rem 1rem;
  background-color: rgba(15, 15, 15, .4);
  border-radius: 1rem;

  color: var(--color-white);
  font-family: var(--font-en);
  font-weight: var(--fw-medium);
  font-size: 1.2rem;
  letter-spacing: .03em;
  line-height: 1;
}


/* サムネイルスライダー */

.productdetail__imagearea .thumbnail-slider {
  /* --swiper-navigation-size: 3.6rem; */
  /* --swiper-navigation-sides-offset: 1rem; */
  --zindex-shadow: 2;
  --zindex-button: 3;

  margin-top: .4rem;
  padding-inline: 0;
}

@media (min-width: 768px) {
  .productdetail__imagearea .thumbnail-slider::before,
  .productdetail__imagearea .thumbnail-slider::after {
    content: "";

    position: absolute;
    top: 0;
    z-index: var(--zindex-shadow);

    width: 6rem;
    height: 100%;
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%);

    opacity: 0;
    transition: opacity var(--transition-default);

    pointer-events: none;
  }

  .productdetail__imagearea .thumbnail-slider::before {
    left: 0;

    scale: -1 1;
  }

  .productdetail__imagearea .thumbnail-slider::after {
    right: 0;
  }

  .thumbnail-slider:not(:has(.swiper-button-prev.swiper-button-disabled))::before {
    opacity: 1;
  }

  .thumbnail-slider:not(:has(.swiper-button-next.swiper-button-disabled))::after {
    opacity: 1;
  }
}

.productdetail__imagearea .thumbnail-slider .swiper-slide {
  position: relative;

  border: none;
}

.productdetail__imagearea .thumbnail-slider .swiper-slide::before {
  content: "";

  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;

  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .3);

  opacity: 0;
  transition: opacity var(--transition-default);

  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .productdetail__imagearea .thumbnail-slider .swiper-slide::before {
    transition: none;
  }
}

.productdetail__imagearea .thumbnail-slider .swiper-slide.swiper-slide-thumb-active::before {
  opacity: 1;
}

.productdetail__imagearea .thumbnail-slider [class*="swiper-button-"] {
  z-index: var(--zindex-button);
}

@media (max-width: 767px) {
  .productdetail__imagearea .thumbnail-slider [class*="swiper-button-"] {
    display: none;
  }
}




/*
 * 商品情報
 */

.productdetail__descarea {
  --spacer-default: 2rem;
  --contents-width: calc(100% - (var(--padding-horizontal-product-detail) * 2));

  width: 100%;
  margin-top: 3rem;
}

@media (min-width: 768px) {
  .productdetail__descarea {
    --contents-width: 100%;

    margin-top: 0;
  }
}

.productdetail__descarea > *:not(.ChangesByVariation, .product__favorite--popup) {
  width: var(--contents-width);
  margin-inline: auto;
}

.productdetail__descarea .ChangesByVariation > *:not(.productdetail__buyarea, .product-detail__novelty-wrapper) {
  padding-inline: var(--padding-horizontal-product-detail);
}


/* Cアイコン */

.productdetail__descarea .product__desc--icon {
  margin-block: 0 1.2rem;
}

.productdetail__descarea .product__desc--icon:not(:has(> *)) {
  display: none;
}


/* 商品名 */

.productdetail__descarea .product__desc--name {
  margin-bottom: var(--spacer-default);

  font-size: 2.4rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(36 / 24);
}


/* 価格 */

.productdetail__descarea .product__desc--price {
  margin-bottom: var(--spacer-default);
}

.productdetail__descarea .product__price {
  display: flex;
  align-items: baseline;
  column-gap: 1rem;
}

.productdetail__descarea .product__price--item {
  column-gap: .8rem;
}

.productdetail__descarea .product__price--item .product__price--numeric {
  font-size: 2.4rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
}

.productdetail__descarea .product__price--item .product__price--numeric::before {
  content: none;
}

.productdetail__descarea .product__price--item .product__price--tax {
  font-size: 1rem;
  font-weight: var(--fw-regular);
  letter-spacing: .03em;
}

.productdetail__descarea .product__price--proper {
  color: var(--color-text-default);
}

.productdetail__descarea .product__price--proper::after {
  content: none;
}

.productdetail__descarea .product__price--proper .product__price--numeric {
  font-size: 1.4rem;
  font-weight: var(--fw-regular);
  text-decoration: line-through;
}


/* 商品タグ利用箇所 */

.product-detail__information-list {
  display: grid;
  row-gap: .5rem;

  margin-block: var(--spacer-default);
}

.product-detail__information-list-item {
  font-size: 1.2rem;
  font-weight: var(--fw-regular);
  letter-spacing: .02em;
  line-height: calc(17 / 12);
}

.product-detail__pickup-list {
  display: flex;
  gap: 1rem;

  margin-block: var(--spacer-default);
}

.product-detail__pickup-list-item {
  height: 2.4rem;
}

.product-detail__pickup-list-item img,
.product-detail__pickup-list-item svg {
  width: auto;
  height: 100%;
}

.product-detail__pickup-list-item[data-pickup-name="limit"] {
  display: grid;
  place-content: center;

  padding-inline: .8rem;
  background-color: var(--color-project-secondary);

  color: var(--color-white);
  font-size: 1.2rem;
  font-weight: var(--fw-medium);
  letter-spacing: .02em;
  line-height: 1;
}


/* ポイント */

.product-detail__text--point {
  display: flex;
  align-items: center;
  column-gap: .6rem;

  margin-block: var(--spacer-default);

  font-size: 1rem;
  font-weight: var(--fw-medium);
  letter-spacing: .1em;
}

.product-detail__text--point::before {
  content: "";

  width: 1.5rem;;
  aspect-ratio: 1;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2215%22%20height%3D%2215%22%20viewBox%3D%220%200%2015%2015%22%3E%20%3Cg%20id%3D%22%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97_13771%22%20data-name%3D%22%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%2013771%22%20transform%3D%22translate(-740%20-368)%22%3E%20%3Cg%20id%3D%22%E6%A5%95%E5%86%86%E5%BD%A2_416%22%20data-name%3D%22%E6%A5%95%E5%86%86%E5%BD%A2%20416%22%20transform%3D%22translate(740%20368)%22%20fill%3D%22%23d3d3d3%22%20stroke%3D%22%23d3d3d3%22%20stroke-width%3D%221%22%3E%20%3Ccircle%20cx%3D%227.5%22%20cy%3D%227.5%22%20r%3D%227.5%22%20stroke%3D%22none%22%2F%3E%20%3Ccircle%20cx%3D%227.5%22%20cy%3D%227.5%22%20r%3D%227%22%20fill%3D%22none%22%2F%3E%20%3C%2Fg%3E%20%3Cpath%20id%3D%22%E3%83%91%E3%82%B9_51726%22%20data-name%3D%22%E3%83%91%E3%82%B9%2051726%22%20d%3D%22M1.763-2.783V0H.825V-7.109H3.447a2.634%2C2.634%2C0%2C0%2C1%2C1.829.6%2C2.02%2C2.02%2C0%2C0%2C1%2C.662%2C1.577%2C1.993%2C1.993%2C0%2C0%2C1-.647%2C1.594%2C2.752%2C2.752%2C0%2C0%2C1-1.853.559Zm0-.767H3.447A1.686%2C1.686%2C0%2C0%2C0%2C4.6-3.9%2C1.293%2C1.293%2C0%2C0%2C0%2C5-4.927a1.336%2C1.336%2C0%2C0%2C0-.4-1.016%2C1.58%2C1.58%2C0%2C0%2C0-1.1-.4H1.763Z%22%20transform%3D%22translate(745%20379)%22%20fill%3D%22%230f0f0f%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-size: contain;
}


/* セットプロモーション */

.product-detail__text--set-promotion {
  margin-block: var(--spacer-default);

  font-size: 1.4rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: 1.25;
}


/* 購入導線エリア */

.productdetail__buyarea {
  display: grid;
  row-gap: var(--spacer-default);

  margin-block: var(--spacer-default);
}

.productdetail__buyarea > *:not(.product__variation-select) {
  padding-inline: var(--padding-horizontal-product-detail);
}


/* バリエーション選択 */

.product__variation-select {
  display: grid;
  row-gap: var(--spacer-default);

  margin-block: 0;
}

.product__variation-select .variation__panel {
  margin-block: 1rem;
}

.product__variation-select .variation__panel--heading {
  margin-block: 0 .8rem;
  padding-inline: var(--padding-horizontal-product-detail);

  font-size: 1.4rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(20 / 14);
}

.product__variation-select .variation__panel--wrapper {
  flex-wrap: nowrap;
  gap: 1rem;

  width: 100%;
  max-width: 100vw;
  padding-inline: var(--padding-horizontal-product-detail);
  padding-bottom: .5rem;

  overflow-x: auto;
}

@media (min-width: 768px) {
  .product__variation-select .variation__panel--wrapper {
    flex-wrap: wrap;

    padding-bottom: 0;
  }
}

.product__variation-select .variation__panel--item {
  position: relative;

  display: grid;
  place-content: center;

  min-width: 7rem;
  padding: 1.6rem 2.5rem;
  background-color: var(--color-variation-button-bg, var(--color-white));
  border: solid 1px var(--color-variation-button-border, var(--color-text-default));
  border-radius: .4rem;

  color: var(--color-variation-button-text, var(--color-text-default));
  font-size: 1.5rem;
  font-weight: var(--fw-bold);
  letter-spacing: .05em;
  line-height: calc(18 / 15);

  overflow: hidden;
}

@media (min-width: 768px) {
  .product__variation-select .variation__panel--item {
    min-width: 8rem;
  }
}

.product__variation-select .variation__panel--item.is-selected {
  --color-variation-button-border: var(--color-primary);
  --color-variation-button-text: var(--color-primary);

  border-width: 2px;
}

.product__variation-select .variation__panel--item[data-has-stock="false"] {
  --color-variation-button-bg: #D3D3D3;

  border: none;

  /* pointer-events: none; */
}

.product__variation-select .variation__panel--item[data-has-stock="false"]::before {
  content: "";

  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;

  width: 100%;
  height: 100%;
  background: linear-gradient(144deg, transparent 48.5%, #b0b0b0 49%, #b0b0b0 50%, transparent 50.5%);
}

.product__variation-select .variation__panel--item.is-selected[data-has-stock="false"] {
  border: solid 2px var(--color-variation-button-border, var(--color-text-default));
}


/* 付帯情報 */
.productdetail__buyarea .product__option {
  display: grid;
  row-gap: var(--spacer-default);

  width: var(--contents-width);
  margin-block: 1rem;
  margin-inline: auto;
  padding: 2rem;
  background-color: var(--color-project-bg);
}

@media (min-width: 768px) {
  .productdetail__buyarea .product__option {
    padding: 3rem;
  }
}

.productdetail__buyarea .product__option .c-form__item {
  margin: 0;
}

.productdetail__buyarea .product__option .c-form__item {
  display: grid;
  row-gap: .8rem;
}

.productdetail__buyarea .product__option .c-form__item dt {
  display: flex;
  align-items: center;
  gap: .6rem;

  font-size: 1.4rem;
  font-weight: var(--fw-medium);
  letter-spacing: .02em;
  line-height: calc(24 / 14);
}

.productdetail__buyarea .product__option .c-form__item dd {
  margin-top: 0;
}

.product-detail__option-text--link {
  color: var(--color-text-default);
  font-size: 1.2rem;
  font-weight: var(--fw-regular);
  letter-spacing: .05em;
  line-height: 2;
  text-decoration: underline;
}


/* 数量選択 */

.product-detail__quantity-control-wrapper {
  --border-style: solid 2px #ededed;

  display: flex;
  align-items: center;
  column-gap: 2rem;
}

.product-detail__text--quantity-control-title {
  font-size: 1.2rem;
  font-weight: var(--fw-regular);
  letter-spacing: .02em;
  line-height: calc(17 / 12);
}

.product-detail__quantity-container:has(> input[value="1"]) .js-decreaseQuantityVal,
.product-detail__button--quantity:disabled {
  opacity: .3;
  pointer-events: none;
}

.product-detail__quantity-wrapper {
  display: grid;
  grid-template-columns: 1fr auto 1fr;

  width: fit-content;
  border: var(--border-style);
  border-radius: .6rem;

  font-family: var(--font-en);

  overflow: hidden;
}

.product-detail__button--quantity {
  display: grid;
  place-content: center;

  width: 3.6rem;
  aspect-ratio: 1;

  font-family: inherit;
  font-size: 1.4rem;
  font-weight: var(--fw-bold);

  touch-action: manipulation;
}

.product-detail__input--quantity {
  width: 6rem;
  border: none;
  border-inline: var(--border-style);
  border-radius: 0;

  font-family: inherit;
  font-size: 1.6rem;
  font-weight: var(--fw-medium);
  letter-spacing: .05em;
  text-align: center;

  pointer-events: none;
}

input.product-detail__input--quantity[type="number"]:focus {
  outline-color: var(--color-text-default);
}

input.product-detail__input--quantity[type="number"]::-webkit-outer-spin-button,
input.product-detail__input--quantity[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input.product-detail__input--quantity[type="number"] {
  -moz-appearance: textfield;
}


/*
 * カートボタン & お気に入りボタン
 */

.product-detail__cart-favorite-container {
  --button-border-radius: .4rem;

  display: grid;
  grid-template-columns: 1fr 7rem;
  grid-template-areas:
    "error-information-area error-information-area"
    "cart-button-area favorite-button-area"
    "arrival-mail-form-area arrival-mail-form-area";
  align-items: center;
  column-gap: 1rem;
}

.product-detail__cart-favorite-container:not(:has(.product-detail__cart-button-wrapper > *)) {
  grid-template-areas:
    "error-information-area favorite-button-area"
    "arrival-mail-form-area arrival-mail-form-area";
}

.product-detail__cart-favorite-container:not(:has(.product-detail__cart-button-wrapper > *)) .c-form__error {
  margin-bottom: 0;
}

.product-detail__cart-favorite-container > .c-form__error {
  grid-area: error-information-area;
}

.product-detail__cart-favorite-container > .product-detail__cart-button-wrapper {
  grid-area: cart-button-area;
}

.product-detail__cart-favorite-container > .product-detail__favorite-button-wrapper {
  grid-area: favorite-button-area;
}

.product-detail__cart-favorite-container > .product__arrivalmail {
  grid-area: arrival-mail-form-area;
}


/* エラー文言 */

.product-detail__cart-favorite-container > .c-form__error {
  display: grid;
  row-gap: 1rem;

  margin-bottom: var(--spacer-default);
}

.product-detail__cart-favorite-container > .c-form__error:not(:has(.error_inline:not(:empty))) {
  display: none;
}

.product-detail__cart-favorite-container > .c-form__error .error_inline {
  margin: 0;

  color: var(--color-text-default) !important;
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(24 / 16);
}


/* カートボタン */

.product-detail__cart-button-wrapper:not(:has(> *)) {
  display: none;
}

.product-detail__cart-button-wrapper .c-button__primary {
  min-width: 0;

  background-color: #EA5504;
  border-color: #EA5504;

  transition: background-color var(--transition-default), border-color var(--transition-default);
}

@media (prefers-reduced-motion: reduce) {
  .product-detail__cart-button-wrapper .c-button__primary {
    transition: none;
  }
}

@media (hover: hover) {
  .product-detail__cart-button-wrapper .c-button__primary:hover {
    background-color: var(--color-project-primary);
    border-color: var(--color-project-primary);
  }
}

.product-detail__cart-button-wrapper .c-button__primary:focus-visible {
  background-color: var(--color-project-primary);
  border-color: var(--color-project-primary);
}

.product-detail__cart-button-wrapper .c-button__primary:active {
  background-color: var(--color-project-primary);
  border-color: var(--color-project-primary);
}


/* お気に入りボタン */

.product-detail__button--favorite {
  position: relative;

  display: grid;

  width: 100%;
  aspect-ratio: 70 / 50;
  background-color: var(--button-color-bg, var(--color-white));
  border: solid 1px var(--color-text-default);
  border-radius: var(--button-border-radius);

  overflow: hidden;
}

.product-detail__button--favorite svg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;

  width: 3.6rem;
  aspect-ratio: 1;
  margin: auto;
}

.product-detail__favorite-image--neko {
  width: 3.4rem;
  aspect-ratio: 34.32 / 34.97;
}

/* お気に入りボタン - Animation */

.product-detail__button--favorite {
  transition: background-color var(--transition-default);
}

.product-detail__button--favorite svg {
  transition: all var(--transition-default);
}

.product-detail__button--favorite svg * {
  transition: all var(--transition-default);
}

.product-detail__favorite-image--heart {
  z-index: 2;
}

.product-detail__favorite-image--neko {
  z-index: 1;

  scale: 0;

  transition-duration: 200ms !important;
}

@media (prefers-reduced-motion: reduce) {
  .product-detail__button--favorite,
  .product-detail__button--favorite svg,
  .product-detail__button--favorite svg * {
    transition: none !;
  }
}

@media (hover: hover) {
  .product-detail__button--favorite:hover {
    --button-color-bg: #E6E6E6;
    --favorite-bg: #EA5504;
    --favorite-border: #EA5504;
  }

  .product-detail__button--favorite:hover .product-detail__favorite-image--heart {
    translate: 60% -38%;
    scale: 58%;
  }

  .product-detail__button--favorite:hover .product-detail__favorite-image--neko {
    transition-duration: var(--transition-duration) !important;
    scale: 1;
  }
}

.product-detail__button--favorite:focus-visible,
.product-detail__button--favorite:active,
.product-detail__button--favorite.is-added {
  --button-color-bg: #E6E6E6;
  --favorite-bg: #EA5504;
  --favorite-border: #EA5504;
}

.product-detail__button--favorite:focus-visible .product-detail__favorite-image--heart,
.product-detail__button--favorite:active .product-detail__favorite-image--heart,
.product-detail__button--favorite.is-added .product-detail__favorite-image--heart {
  translate: 60% -38%;
  scale: 58%;
}

.product-detail__button--favorite:focus-visible .product-detail__favorite-image--neko,
.product-detail__button--favorite:active .product-detail__favorite-image--neko,
.product-detail__button--favorite.is-added .product-detail__favorite-image--neko {
  transition-duration: var(--transition-duration) !important;
  scale: 1;
}


/*
 * 通知メール関連
 */

.product__arrivalmail {
  margin: 0;
}

.product__arrivalmail-area .c-button__primary {
  background-color: var(--color-project-secondary);
  border-color: var(--color-project-secondary);
}

.product__arrivalmail.form__section--item {
  display: grid;
  row-gap: var(--spacer-default);

  margin-top: var(--spacer-default);
  padding: 2rem;
  background-color: var(--color-project-bg);
  border: none;
  border-radius: 0;
}

@media (min-width: 768px) {
  .product__arrivalmail.form__section--item {
    padding: 3rem 4.8rem;
  }
}

.product-detail__arrival-mail-text--paragraph {
  font-size: 1.3rem;
  font-weight: var(--fw-regular);
  letter-spacing: .02em;
  line-height: calc(24 / 13);
}

.product__arrivalmail .c-form__item {
  display: grid;
  row-gap: 1rem;
}

.product__arrivalmail .c-form__item dt {
  font-size: 1.4rem;
  font-weight: var(--fw-medium);
  letter-spacing: .02em;
  line-height: calc(24 / 14);
}

.product__arrivalmail .c-form__item dd {
  display: grid;
  row-gap: 1rem;

  margin: 0;
}

.product__arrivalmail .form__changearea {
  margin: 0;
}

.product__arrivalmail .c-button__primary {
  width: 24rem;
  min-width: 0;
  margin-inline: auto;
  padding: 1.3rem;
  background-color: var(--color-white);
  border-width: 2px;
  border-color: var(--color-project-secondary);

  color: var(--color-project-secondary);
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: 1;
}

.product-detail__cart-favorite-container .product__arrivalmail--complete {
  margin-top: var(--spacer-default);
  padding: 0;

  color: var(--color-project-secondary);
  font-weight: var(--fw-bold);
  text-align: center;
}

.product-detail__cart-favorite-container .product__arrivalmail--complete:not(:has(> *)) {
  display: none;
}


/*
 * ノベルティ
 */

.product-detail__novelty-wrapper {
  --spacer-m: 1.6rem;
  --spacer-s: .8rem;
  --spacer-xs: .4rem;

  display: grid;
  row-gap: var(--spacer-m);

  width: var(--contents-width);
  margin: var(--spacer-default) auto;
  padding: 2rem;
  padding-top: 1.6rem;
  background-color: var(--color-project-bg);
  border-radius: .6rem;
}

@media (min-width: 768px) {
  .product-detail__novelty-wrapper {
    width: 100%;
  }
}

.product-detail__novelty-header {
  display: grid;
  row-gap: var(--spacer-xs);
}

.product-detail__novelty-text--heading {
  color: var(--color-project-secondary);
  font-size: 1.4rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(20 / 14);

  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(24 / 16);
}

.product-detail__novelty-text--description {
  font-size: 1.3rem;
  font-weight: var(--fw-regular);
  letter-spacing: .02em;
  line-height: calc(24 / 13);
}

.product-detail__novelty-product-container {
  display: grid;
  row-gap: var(--spacer-s);
}

.product-detail__novelty-text--novelty-name {
  font-size: 1.4rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(20 / 14);
}

.product-detail__novelty-product {
  display: grid;
  grid-template-columns: min(10rem, 30%) 1fr;
  align-items: center;
  column-gap: var(--spacer-s);
}

.product-detail__novelty-product .noveltyProductInfo > * {
  font-size: 1.3rem;
  font-weight: var(--fw-regular);
  letter-spacing: .02em;
  line-height: calc(24 / 13);
}


/*
 * 注意事項
 */

.product-detail__attention-wrapper {
  display: grid;
  row-gap: 1rem;

  margin-block: var(--spacer-default);
  padding: 2rem;
  padding-right: 1.6rem;
  border: solid 2px var(--color-project-secondary);
  border-radius: .6rem;
}

.product-detail__attention-text--heading {
  display: grid;
  grid-template-columns: 2rem 1fr;
  align-items: center;
  column-gap: .8rem;

  color: var(--color-project-secondary);
  font-size: 1.4rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(20 / 14);
}

.product-detail__attention-text--heading::before {
  content: "";

  width: 100%;
  aspect-ratio: 1;
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%3E%20%3Cg%20id%3D%22%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97_25129%22%20data-name%3D%22%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%2025129%22%20transform%3D%22translate(-790%20-869.891)%22%3E%20%3Ccircle%20id%3D%22%E6%A5%95%E5%86%86%E5%BD%A2_446%22%20data-name%3D%22%E6%A5%95%E5%86%86%E5%BD%A2%20446%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%2210%22%20transform%3D%22translate(790%20869.891)%22%20fill%3D%22%23ff8c00%22%2F%3E%20%3Cpath%20id%3D%22%E3%83%91%E3%82%B9_51723%22%20data-name%3D%22%E3%83%91%E3%82%B9%2051723%22%20d%3D%22M2.769-3.056H1.128L.9-9.953H3Zm-.82%2C1.08a1.107%2C1.107%2C0%2C0%2C1%2C.8.294%2C1%2C1%2C0%2C0%2C1%2C.3.752.992.992%2C0%2C0%2C1-.3.745%2C1.107%2C1.107%2C0%2C0%2C1-.8.294%2C1.1%2C1.1%2C0%2C0%2C1-.8-.294.992.992%2C0%2C0%2C1-.3-.745%2C1%2C1%2C0%2C0%2C1%2C.3-.749A1.091%2C1.091%2C0%2C0%2C1%2C1.948-1.976Z%22%20transform%3D%22translate(798.152%20884.844)%22%20fill%3D%22%23fff%22%2F%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-size: contain;
}

.product-detail__attention-list {
  display: grid;
}

.product-detail__attention-text--link {
  color: var(--color-text-default);
  font-size: 1.3rem;
  font-weight: var(--fw-regular);
  letter-spacing: .02em;
  line-height: calc(24 / 13);
}


/*
 * SNS
 */

.product-detail__sns-wrapper {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 3rem;

  margin-block: var(--spacer-default);
}

@media (min-width: 768px) {
  .product-detail__sns-wrapper {
    column-gap: 4rem;
  }
}

.product-detail__sns-text--heading {
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(24 / 16);
}

.product-detail__sns-list {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
}

.product-detail__sns-link-wrapper {
  display: grid;
  place-content: center;

  width: 2.4rem;
  height: 2.4rem;
}

.product-detail__sns-link-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}


/*
 * 商品詳細情報
 */

.product-detail__detail-description-container {
  --border-style: solid 1px #D3D3D3;

  display: grid;
  row-gap: 4rem;

  margin-top: 7rem;
  margin-block: 7rem 6rem;
}

@media (min-width: 768px) {
  .product-detail__detail-description-container {
    margin-block: 5.2rem 0;
  }
}

.product-detail__detail-description-dl--parent {
  display: grid;
  row-gap: var(--spacer-default);
}

.producr-detail__detail-description-text--heading {
  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(24 / 16);
}

.product-detail__detail-description-dl--parent > dt {
  padding-bottom: 1.6rem;
  border-bottom: var(--border-style);

  font-size: 1.6rem;
  font-weight: var(--fw-bold);
  letter-spacing: .02em;
  line-height: calc(24 / 16);
}

.product-detail__detail-description-dl--parent > dd {
  font-size: 1.4rem;
  font-weight: var(--fw-medium);
  letter-spacing: .02em;
  line-height: calc(24 / 14);
}

.product-detail__detail-description-dl--parent > dd:has(.product-detail__detail-description-dl--child) {
  display: grid;
  row-gap: var(--spacer-default);
}

.product-detail__detail-description-dl--child {
  display: grid;
  row-gap: .8rem;

  padding-bottom: var(--spacer-default);
  border-bottom: var(--border-style);
}

.product-detail__detail-description-dl--child > dt {
  color: #8D8D8D;
  font-size: 1.3rem;
  font-weight: var(--fw-regular);
  letter-spacing: .02em;
  line-height: calc(19 / 13);
}

.product-detail__detail-description-dl--child > dd {
  font-size: 1.3rem;
  font-weight: var(--fw-regular);
  letter-spacing: .02em;
  line-height: calc(18 / 13);
}


/*
 * フリーHTMLエリア
 */

.product-detail__free-html-wrapper {
  margin-block: 6rem;

  overflow: hidden;
}

@media (min-width: 768px) {
  .product-detail__free-html-wrapper {
    margin-block: 10rem 8rem;
  }
}


/*
 * アップセル, クロスセル
 */

[class*="product-detail__product-list-wrapper--"] {
  margin-block: 6rem;
}

@media (min-width: 768px) {
  [class*="product-detail__product-list-wrapper--"] {
    margin-block: 8rem;
  }
}

[class*="product-detail__product-list-wrapper--"] .c-page-title {
  margin-block: 0 3rem;
}

@media (min-width: 768px) {
  [class*="product-detail__product-list-wrapper--"] .c-page-title {
    margin-block: 0 4rem;
  }
}

[class*="product-detail__product-list-wrapper--"] .product__container {
  display: flex;
  column-gap: 1.2rem;

  width: 100vw;
  padding-block: 0 .5rem;
  padding-inline: var(--padding-horizontal-product-detail);

  overflow-x: auto;
}

@media (min-width: 768px) {
  [class*="product-detail__product-list-wrapper--"] .product__container {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 2.5rem;

    width: 100%;
  }
}

[class*="product-detail__product-list-wrapper--"] .product__container .product__item {
  flex-shrink: 0;

  width: calc(162 / 375 * 100vw);
}

@media (min-width: 768px) {
  [class*="product-detail__product-list-wrapper--"] .product__container .product__item {
    width: 100%;
  }
}


/*
 * 最近チェックした商品
 */

.product__history {
  width: 100%;
}


/*
 * カート投入ダイアログ
 */

.c-overlay__dialog {
  --sticky-close-button-size: 3.2rem;
  --sticky-close-button-position: 1.6rem;

  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: min(90%, 70rem);
  max-width: none;
  height: fit-content;
  max-height: 80dvh;
  margin: auto;
  background-color: var(--color-white);
  border: none;
  border-radius: 1.6rem;
  overflow-y: auto;

  opacity: 0;
  transition: opacity var(--transition-default);
}

.c-overlay__dialog::backdrop {
  background: rgba(0, 0, 0, 0);
  transition: background var(--transition-default);
}

.c-overlay__dialog[data-state="active"] {
  opacity: 1;
}

.c-overlay__dialog[data-state="active"]::backdrop {
  background: rgba(0, 0, 0, .5);
}

.c-overlay__dialog-inner {
  position: relative;
  display: grid;
  row-gap: 1.6rem;
  padding: 1.6rem;
}

@media (min-width: 768px) {
  .c-overlay__dialog-inner {
    padding: 3.2rem;
  }
}

.c-overlay__sticky-button {
  position: sticky;
  top: 1.6rem;
  right: 0;
  display: flex;
  justify-content: flex-end;
  height: 0;
}

.c-overlay__button--close-heading {
  display: grid;
  width: var(--sticky-close-button-size, 3.2rem);
  height: var(--sticky-close-button-size, 3.2rem);
  padding: .25rem;
  background-color: var(--color-white);
  border: solid 1px var(--color-black);
  border-radius: 50%;
}

@media (min-width: 768px) {
  .c-overlay__button--close-heading {
    position: relative;
    top: calc(var(--sticky-close-button-position, 1.6rem) * -1);
    right: calc(var(--sticky-close-button-position, 1.6rem) * -1);
  }
}

.c-overlay__content-wrapper {
  padding-top: calc(var(--sticky-close-button-position, 1.6rem) * 2);

  font-size: 1.8rem;
  font-weight: var(--fw-bold);
  letter-spacing: .025em;
  line-height: 1.5;
}

.c-overlay__content-wrapper .button__group {
  margin-top: 2rem;
}

@media (min-width: 768px) {
  .c-overlay__content-wrapper .button__group {
    margin-top: 4rem;
  }
}
