/* 共通コンポーネント */
body {
  font-family: var(--font-family-jp);
}

/* ブランドカラー */

.loven {
  --brand-color: #773807;
  --brand-text-color: var(--brand-color);
  --brand-bg-color: var(--brand-color);
  --brand-hover-bg-color: #552807;
  --brand-hover-outline-bg-color: #fbede4;
  --brand-border-color: var(--brand-color);
  --brand-box-shadow-color: #361a05;
  --brand-product-img-item-bg-color: #fff6e0;
  --brand-thumbnail-border-color: var(--brand-color);
}

.nagoyan {
  --brand-color: #be8915;
  --brand-text-color: var(--brand-color);
  --brand-bg-color: var(--brand-color);
  --brand-hover-bg-color: #9a6f10;
  --brand-hover-outline-bg-color: #fff6e0;
  --brand-border-color: var(--brand-color);
  --brand-box-shadow-color: #6f500b;
  --brand-product-img-item-bg-color: #fff6e0;
  --brand-thumbnail-border-color: var(--brand-color);
}

.longlife {
  --brand-color: #004a28;
  --brand-text-color: var(--brand-color);
  --brand-bg-color: var(--brand-color);
  --brand-hover-bg-color: #00351d;
  --brand-hover-outline-bg-color: #e6f4ed;
  --brand-border-color: var(--brand-color);
  --brand-box-shadow-color: #002012;
  --brand-product-img-item-bg-color: #fff6e0;
  --brand-thumbnail-border-color: var(--brand-color);
}

.choujukuotoriyose {
  --brand-color: #005099;
  --brand-text-color: var(--brand-color);
  --brand-bg-color: var(--brand-color);
  --brand-hover-bg-color: #552807;
  --brand-hover-outline-bg-color: #fbede4;
  --brand-border-color: var(--brand-color);
  --brand-box-shadow-color: #002b52;
  --brand-product-img-item-bg-color: #fff6e0;
  --brand-thumbnail-border-color: var(--brand-color);
  --brand-logo-width: 184px;
  --brand-logo-width-sp: 128px;
}

.pankit {
  --brand-color: #bc641d;
  --brand-text-color: var(--brand-color);
  --brand-bg-color: var(--brand-color);
  --brand-hover-bg-color: #9a4f16;
  --brand-hover-outline-bg-color: #fbede4;
  --brand-border-color: var(--brand-color);
  --brand-box-shadow-color: #773807;
  --brand-product-img-item-bg-color: #fff6e0;
  --brand-thumbnail-border-color: var(--brand-color);
}

.product-detail {
  padding-top: 70px;
  padding-bottom: 64px;

  & > .section:last-child {
    padding-bottom: 0;
  }

  @media (768px <= width) {
    padding-top: 128px;
    padding-bottom: 78px;
  }
}

/* section */
.section {
  padding-block: 48px;

  @media (768px <= width) {
    padding-block: 80px;
  }
}

.section__inner {
  max-width: 600px;
  margin: 0 auto;
  padding-inline: 16px;

  @media (768px <= width) {
    width: 100%;
    max-width: min(calc(1080px + 40px * 2), 100%);
    margin-inline: auto;
    padding-inline: 40px;
  }
}

.section__content {
  margin-top: 32px;
}

/* section-header */
.section-header {
  --subtitle-color: var(--brand-text-color);
  --title-color: #212529;
}

.section-header--white {
  --subtitle-color: #fff;
  --title-color: #fff;
}

.section-header__subtitle {
  font-family: var(--font-family-latin);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-transform: capitalize;
  color: var(--subtitle-color);

  @media (768px <= width) {
    font-size: 14px;
  }
}

.section-header__title {
  margin-top: 12px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: var(--title-color);

  @media (768px <= width) {
    font-size: 24px;
  }
}

/* btn */

.btn {
  --btn-bg-color: #009140;
  --btn-hover-bg-color: #007a36;
  --btn-text-color: #fff;
  --btn-border: #009140;
  --btn-shadow: #004a28;
  --btn-icon-bg-color: #fff;
  --btn-icon-color: #009140;

  display: flex;
  position: relative;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin-inline: auto;
  padding-block: 12px;
  padding-inline: 16px;
  background: var(--btn-bg-color);
  border-radius: calc(infinity * 1px);
  box-shadow: 0 6px 0 0 var(--btn-shadow);
  transition: background 0.3s ease;

  &:hover {
    background: var(--btn-hover-bg-color);
  }

  &.is-brand {
    --btn-text-color: #fff;
    --btn-bg-color: var(--brand-bg-color);
    --btn-hover-bg-color: var(--brand-hover-bg-color);
    --btn-shadow: var(--brand-box-shadow-color);
    --btn-icon-bg-color: #fff;
    --btn-icon-color: var(--brand-text-color);
  }

  &.is-disabled {
    --btn-bg-color: #e9ecef;
    --btn-text-color: #adb5bd;
    --btn-border: #e9ecef;
    --btn-icon-bg-color: #fff;
    --btn-icon-color: #adb5bd;
    box-shadow: none;
    cursor: default;

    &:hover {
      color: #adb5bd;
      background: #e9ecef;
    }

    svg {
      path {
        fill: #adb5bd;
      }
    }
  }

  &.is-outline {
    --btn-text-color: #009140;
    --btn-bg-color: #fff;
    --btn-hover-bg-color: #e6f4ed;
    --btn-icon-bg-color: #009140;
    --btn-icon-color: #fff;

    padding-block: 10px;
    padding-inline: 14px;
    border: 2px solid var(--btn-border);

    &.is-brand {
      --btn-text-color: var(--brand-text-color);
      --btn-border: var(--brand-border-color);
      --btn-icon-bg-color: var(--brand-color);
      --btn-icon-color: #fff;
      --btn-bg-color: #fff;
      --btn-hover-bg-color: var(--brand-hover-outline-bg-color);
    }

    &.is-disabled {
      --btn-bg-color: #fff;
      --btn-text-color: #adb5bd;
      --btn-icon-bg-color: #e9ecef;
      --btn-icon-color: #fff;

      box-shadow: none;
      cursor: default;
    }
  }
}

.btn__text {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  color: var(--btn-text-color);
}

.btn__icon {
  position: absolute;
  top: 50%;
  right: 16px;
  width: 20px;
  height: 20px;
  translate: 0 -50%;

  rect {
    fill: var(--btn-icon-bg-color);
  }

  path {
    fill: var(--btn-icon-color);
  }

  &:not(:has(rect)) path {
    fill: var(--btn-icon-bg-color);
  }

  &.is-left {
    top: 50%;
    left: 16px;
    translate: 0 -50%;
  }

  &.is-center {
    position: initial;
    translate: 0;
  }
}

/* brand-logo */

.brand-logo {
  position: fixed;
  top: 80px;
  left: 16px;
  z-index: 2;
  width: var(--brand-logo-width-sp, 88px);
  height: auto;

  @media (768px <= width) {
    top: 127px;
    left: 31px;
    width: var(--brand-logo-width, 144px);

    @media (1440px <= width) {
      left: calc(50% - 689px);
    }
  }

  &:hover {
    opacity: 0.8;
  }
}

.main-product__product {
  @media (768px <= width) {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
    max-width: 1080px;
    margin-inline: auto;
    padding-inline: 24px;
  }
}

.product-media {
  @media (768px <= width) {
    flex: 1 1 0;
    max-width: 504px;
    min-width: 0;
  }
}

/* sticky-bottom */

.sticky-bottom {
  display: flex;
  position: sticky;
  bottom: 0;
  z-index: 10;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 110px;
  background: rgb(255 255 255 / 80%);

  @media (768px <= width) {
    min-height: 104px;
  }
}

.sticky-bottom__container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  width: 100%;
  max-width: 344px;
  margin-inline: auto;
  padding-inline: 16px;
}

.sticky-bottom__cart-btn-wrap {
  flex-grow: 1;
}

.sticky-bottom__cart-btn {
  @media (768px <= width) {
    min-width: 438px;
    padding-block: 16px;
  }
}

/* cart-btn */

.to-cart-btn {
  --btn-bg-color: #fff;
  --btn-hover-bg-color: #e6f4ed;
  --btn-text-color: #009140;
  --btn-border: #009140;
  --btn-shadow: #004a28;
  --btn-icon-bg-color: #fff;
  --btn-icon-color: #009140;

  display: flex;
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 2;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 78px;
  height: 78px;
  aspect-ratio: 1/1;
  background: var(--btn-bg-color);
  border: 2px solid var(--btn-border);
  border-radius: calc(infinity * 1px);
  box-shadow: 0 4px 0 0 var(--btn-shadow);
  transition: 0.1s ease-out;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;

  &:hover {
    color: var(--btn-text-color);
    background: var(--btn-hover-bg-color);
  }
}

.to-cart-btn__count {
  display: grid;
  position: absolute;
  top: 3px;
  right: 4px;
  width: 20px;
  height: 20px;
  background-color: #d92d20;
  border-radius: calc(infinity * 1px);
  place-content: center;
}

.to-cart-btn__count-text {
  font-family: var(--font-family-latin);
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  translate: 0 -1px;
}

.to-cart-btn__icon {
  width: 40px;
  height: 40px;
}

.to-cart-btn__text {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  color: var(--btn-text-color);
}

.to-cart-btn:active {
  box-shadow: 0 0 0 0 var(--button-primary-shadow, #004a28);
  transform: translateY(4px);
}

/* cart-success */

.cart-success {
  display: flex;
  visibility: hidden;
  position: fixed;
  top: 277px;
  left: 50%;
  z-index: 50;
  flex-direction: column;
  gap: 4px;
  padding: 24px;
  background: rgb(255 255 255 / 80%);
  border-radius: 16px;
  opacity: 0;
  transition:
    opacity 0.8s ease,
    visibility 0.8s ease;
  translate: -50%;

  &.is-active {
    visibility: visible;
    opacity: 1;
    transition:
      opacity 0.3s ease,
      visibility 0.3s ease;
    translate: -50%;
  }
}

.cart-success__icon-wrap {
}

.cart-success__icon {
  display: block;
  width: 64px;
  height: 64px;
  margin-inline: auto;
}

.cart-success__message {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
  color: #009140;
}

/* product-media */

/* レイアウトのためのスタイル */
.product-media__main-swiper {
  width: 100%;
  max-height: 400px;
}

.product-media__main-img {
  width: 100%;
  height: 100%;
  aspect-ratio: 375 / 262;
  object-fit: contain;
  object-position: center;
}

.product-media__thumbnail-slide {
  width: 40px;
  height: 40px;
  opacity: 0.5;
  transition: opacity 0.3s ease-in-out;
  cursor: pointer;

  @media (768px <= width) {
    width: 56px;
    height: 56px;
  }

  &:hover {
    opacity: 1;
  }
}

.product-media__thumbnail {
  padding-block: 16px;
}

.product-media__thumbnail-swiper {
  padding-inline: 16px;

  @media (768px <= width) {
    padding-inline: 0;
  }
}

.product-media__thumbnail-img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center;
}

.product-media__thumbnail-swiper .swiper-slide-thumb-active {
  border: 2px solid var(--brand-thumbnail-border-color);
  opacity: 1;
}

/* product-meta */

.product-meta {
  @media (768px <= width) {
    flex: 1 1 0;
    width: 100%;
    max-width: 480px;
    min-width: 0;
  }
}

.product-meta__inner {
  max-width: 600px;
  margin: 0 auto;
  padding-inline: 16px;

  @media (768px <= width) {
    padding-inline: 0;
  }
}

.product-meta__body {
  /* padding-block: 16px; */
  padding-top: 16px;

  @media (768px <= width) {
    padding-block: 0;
  }
}

.product-meta__labels {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 8px;

  &:not(:has(.product-label)) {
    display: none;
  }

  @media (768px <= width) {
    gap: 8px;
    margin-bottom: 8px;
  }
}

.product-meta__title {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;

  @media (768px <= width) {
    font-size: 28px;
  }
}

.product-meta__price-block {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 16px;
}

.product-meta__price {
  width: fit-content;
  margin-left: auto;
}

.product-meta__price-original {
  display: flex;
  flex-wrap: wrap;
  /* justify-content: flex-start; */
  justify-content: flex-end;
  gap: 8px;
  margin-bottom: 5px;
}

.product-meta__price-label {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  color: #d92d20;
}

.product-meta__price-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: baseline;
  font-family: var(--font-family-latin);
}

.product-meta__price-box:nth-of-type(2) {
  color: #d92d20;

  /* セールのときだけ矢印が付与されるので調整 */
  align-items: inherit;

  .product-meta__price-unit {
    align-content: flex-end;
    margin-bottom: 4px;
  }

  .product-meta__price-tax {
    align-content: flex-end;
    margin-bottom: 4px;
  }
}

.product-meta__price-arrow {
  display: flex;
  width: 23px;
  margin-right: 4px;
}

.product-img-card__price-arrow-icon {
  width: 18px;
  height: auto;
  translate: -4px -3px;
}

.product-meta__price-number {
  font-size: 32px;
  font-weight: 600;
  line-height: 1.2;

  @media (768px <= width) {
    font-size: 40px;
  }
}

.product-meta__price-unit {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
}

.product-meta__price-tax {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.2;

  @media (768px <= width) {
    font-size: 14px;
  }
}

.product-meta__price-box--original {
  position: relative;

  &::before {
    content: "";
    position: absolute;
    top: 45%;
    left: -2px;
    width: 97%;
    height: 1px;
    background-color: #d92d20;
    translate: 0 -50%;
  }

  .product-meta__price-number {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
  }
}

.product-meta__point-box {
  display: flex;
  justify-content: right;
  align-items: baseline;
  gap: 4px;
}

.product-meta__point-bracket {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}

.product-meta__point-bracket::before {
  content: attr(data-bracket);
}

.product-meta__point-bracket--open::before {
  content: "[";
}

.product-meta__point-bracket--close::before {
  content: "]";
}

.product-meta__option-form {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin-top: 16px;
}

.product-meta__yakiin-form-item {
  display: flex;
  flex-direction: column;

  select {
    color: #212529;
    font-size: 16px;
    font-weight: 500;
    line-height: 100%; /* 16px */

    -webkit-appearance: none;
    appearance: none;
    border-radius: 4px !important;
    height: auto;
    padding: 12px;
    padding-right: 40px;
    background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cmask id='mask0_1701_27654' style='mask-type:alpha' maskUnits='userSpaceOnUse' x='0' y='0' width='24' height='24'%3E%3Crect width='24' height='24' fill='%23D9D9D9'/%3E%3C/mask%3E%3Cg mask='url(%23mask0_1701_27654)'%3E%3Cpath d='M11.4747 14.4755L7.84971 10.8505C7.79971 10.8005 7.76221 10.7464 7.73721 10.688C7.71221 10.6297 7.69971 10.5672 7.69971 10.5005C7.69971 10.3672 7.74554 10.2505 7.83721 10.1505C7.92887 10.0505 8.04971 10.0005 8.19971 10.0005H15.7997C15.9497 10.0005 16.0705 10.0505 16.1622 10.1505C16.2539 10.2505 16.2997 10.3672 16.2997 10.5005C16.2997 10.5339 16.2497 10.6505 16.1497 10.8505L12.5247 14.4755C12.4414 14.5589 12.358 14.6172 12.2747 14.6505C12.1914 14.6839 12.0997 14.7005 11.9997 14.7005C11.8997 14.7005 11.808 14.6839 11.7247 14.6505C11.6414 14.6172 11.558 14.5589 11.4747 14.4755Z' fill='%23212529'/%3E%3C/g%3E%3C/svg%3E") !important;
    background-repeat: no-repeat;
    background-size: 24px 24px !important;
    border-color: #adb5bd;
    width: 100%;
    background-position: right 10px center;
  }

  input {
    color: #212529;
    font-size: 16px;
    font-weight: 500;
    line-height: 100%; /* 16px */

    -webkit-appearance: none;
    appearance: none;
    border: 1px solid #adb5bd !important;
    border-radius: 4px !important;
    height: auto;
    padding: 8px 12px;
  }
}

.product-meta__yakiin-form-label {
  color: #212529;
  font-size: 16px;
  font-weight: 500;
  line-height: 100%; /* 16px */

  + * {
    margin-top: 12px;
  }
}

.product-meta__point-number {
  font-family: var(--font-family-latin);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
}

.product-meta__point-text {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;

  @media (768px <= width) {
    font-size: 14px;
  }
}

/* なごやん 焼印 */
.product-meta__nagoyan-note {
  font-size: 14px;
  font-weight: 500;
  line-height: 140%;
  color: #d92d20;
  margin-top: 16px;
}

.product-meta__nagoyan-check {
  border-radius: 4px;
  border: 1px solid #d9a91f;
  background: #fff6e0;
  padding: 16px;
  margin-top: 24px;
}

.product-meta__nagoyan-check-title {
  display: flex;
  align-items: center;
  gap: 4px;
}

.product-meta__nagoyan-check-title-icon {
  width: 24px;
  height: 24px;

  svg {
    display: block;
  }
}

.product-meta__nagoyan-check-title-headline {
  color: #d9a91f;
  font-size: 18px;
  font-weight: 700;
  line-height: 140%;
}

.product-meta__nagoyan-check-title-text {
  color: #d9a91f;
  font-size: 14px;
  font-weight: 500;
  line-height: 150%;
  margin-top: 12px;
}

.product-meta__nagoyan-check-button {
  margin-top: 12px;
}

/* 数量カウンター */

.product-meta__controls {
  margin-top: 16px;
  @media (768px <= width) {
    margin-top: 24px;
  }
}

.product-meta__nagoyan-check + .product-meta__controls {
  margin-top: 24px;
}

.product-controls {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.qty-counter {
  --qty-border1: #ccc;
  --qty-border2: #adb5bd;
  --qty-bg: #fff;
  --qty-btn-bg: #fff;
  --qty-btn-bg-hover: #f1f3f5;
  --qty-icon-color: #212529;
  --qty-text: #212529;

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}

/* カウンター全体が無効の時 */
.qty-counter:has(.qty-counter__input:disabled) {
  --qty-border1: #e9ecef;
  --qty-border2: #e9ecef;
  --qty-icon-color: #adb5bd;
}

.qty-counter__label {
  font-size: 16px;
  font-weight: 500;
  color: var(--qty-text);
}

.qty-counter__control {
  display: grid;
  overflow: hidden;
  align-items: center;
  grid-template-columns: 40px 1fr 40px;
  width: min(154px, 100%);
  background: var(--qty-bg);
  border: 1px solid var(--qty-border1);
  border-radius: 4px;
}

.qty-counter__btn {
  display: grid;
  height: 42px;
  background: var(--qty-btn-bg);
  border: 0;
  cursor: pointer;
  place-items: center;

  @media (768px <= width) {
    height: 40px;
  }
}

.qty-counter__btn:hover {
  background: var(--qty-btn-bg-hover);
}

.qty-counter__btn:disabled {
  cursor: not-allowed;
  pointer-events: none;
  .qty-counter__icon {
    path {
      fill: #adb5bd;
    }
  }
}

.qty-counter__input {
  width: 100%;
  height: 100%;
  font-family: var(--font-family-latin);
  font-size: 16px;
  font-weight: 500;
  text-align: center;
  color: var(--qty-text);
  border: none;
  border-right: 1px solid var(--qty-border2);
  border-left: 1px solid var(--qty-border2);
  outline: none;
  appearance: textfield;
}

.qty-counter__input::-webkit-outer-spin-button,
.qty-counter__input::-webkit-inner-spin-button {
  margin: 0;
  appearance: none;
}

.qty-counter__icon {
  width: 24px;
  height: 24px;

  path {
    fill: var(--qty-icon-color);
  }
}

.qty-counter__sr-only {
  overflow: hidden;
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  white-space: nowrap;
  border: 0;
  clip: rect(0, 0, 0, 0);
}

.product-controls__btn-wrap {
  display: flex;
  gap: 16px;
}

.product-controls__cart-btn-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.product-controls__cart-btn {
  padding-block: 12px;
  @media (768px <= width) {
    padding-block: 16px;
  }
}

.product-controls__cart-btn-text {
}

/* ウィッシュリスト追加ボタン */
.product-controls__wish-btn-wrap {
  flex-basis: 47px;
  flex-shrink: 0;

  @media (768px <= width) {
    flex-basis: 57px;
  }
}

.wish-btn {
  --wish-color: #868e96;
  --icon-fill-color: transparent;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  color: var(--wish-color);

  &:hover {
    --icon-fill-color: #868e96;
    color: var(--wish-color);
  }

  &.is-active {
    --wish-color: #e3b52f;
    --icon-fill-color: #e3b52f;
  }
}

.wish-btn__icon {
  width: 32px;
  height: 32px;

  path {
    fill: var(--icon-fill-color);
    stroke: var(--wish-color);
  }
}

.wish-btn__text {
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.8px;

  @media (768px <= width) {
    font-size: 12px;
    letter-spacing: -0.96px;
  }
}

/* 制限設定の注記 */
.product-meta__messages {
  margin-top: 12px;
}

/* product-info */

.product-info {
  /* overflow: hidden; */
  margin-top: 48px;

  @media (768px <= width) {
    margin-top: 49px;
  }
}

/* tab-nav */

.tab-nav__container {
  overflow-x: auto;
  position: relative;
}

.tab-nav__tabs {
  display: flex;
  position: relative;
  justify-content: center;
  width: max-content;
  min-width: 100%;
  padding-inline: 16px;

  &::before {
    content: "";
    position: absolute;
    bottom: 1px;
    z-index: 1;
    width: 100%;
    height: 3px;
    background-color: #adb5bd;
  }
}

.tab-nav__tab {
  display: grid;
  position: relative;
  flex-basis: calc(100% / 3);
  flex-shrink: 0;
  min-width: 96px;
  min-height: 53px;
  padding-inline: 16px;
  font-family: var(--font-family-jp);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  border-radius: 16px 16px 0 0;
  place-content: center;

  @media (768px <= width) {
    max-width: 361px;
  }

  &[aria-selected="true"] {
    font-weight: 500;
    color: #009140;
    pointer-events: none;

    &::after {
      content: "";
      position: absolute;
      bottom: 1px;
      left: 0;
      z-index: 1;
      width: 100%;
      height: 3px;
      background-color: #009140;
    }
  }

  &[aria-selected="false"] {
    transition: background-color 0.3s ease;

    &:hover {
      background-color: #f1f3f5;
      cursor: pointer;
    }
  }
}

.product-info__content {
}

.product-info__panel--feature .product-info__content {
  margin-top: -48px;
}

.product-info__panel {
  visibility: hidden;
  height: 0;
  opacity: 0;
  transition:
    opacity 0.3s ease,
    translate 0.3s ease;
  translate: 0 20px;

  &.js-show {
    visibility: visible;
    height: fit-content;
    margin-top: 48px;
    opacity: 1;
    translate: 0;

    @media (768px <= width) {
      margin-top: 81px;
    }
  }
}

.product-info__panel--feature {
  margin-top: 0 !important;
}

.product-info__panel-content {
  max-width: 600px;
  margin: 0 auto;
  padding-bottom: 48px;
  padding-inline: 16px;

  @media (768px <= width) {
    width: 100%;
    max-width: min(calc(1080px + 40px * 2), 100%);
    margin-inline: auto;
    padding-bottom: 80px;
    padding-inline: 40px;
  }
}

/* product-info__detail */
.product-info__detail {
  & + * {
    margin-top: 16px;
  }

  & > *:nth-child(1) {
    margin-top: 0 !important;
  }

  & > p {
    margin-top: 16px;
  }

  p {
    font-size: 14px;
    font-weight: 400;
    line-height: 178%;

    strong {
      font-size: 20px;
      font-weight: 700;
      line-height: 134%;

      @media (768px <= width) {
        font-size: 24px;
        line-height: 140%;
      }
    }
  }

  a {
    font-weight: 600;
    text-decoration: underline;
  }

  figure ~ * {
    margin-top: 24px;
  }

  figure {
    margin-top: 24px;
  }

  img {
    width: 100%;
    height: auto;
    object-fit: cover;
  }
}

/* product-info-table */
.product-info__table {
  overflow: auto;
  margin-top: 40px;

  b {
    color: #d92d20;
  }
}

.product-info-table {
  width: 100%;
  min-width: 343px;
  border-collapse: collapse;
  border: 1px solid #d2d2d2;
}

.product-info-table__item {
  display: flex;
  border-top: 1px solid #d2d2d2;

  &:first-of-type {
    border-top: none;
  }
}

.product-info-table__header {
  flex-grow: 0;
  flex-shrink: 0;
  width: 112px;
  padding-block: 12px;
  padding-inline: 16px;
  text-align: left;
  background: #e7e7e7;

  @media (768px <= width) {
    width: 211px;
    padding-block: 10px;
  }
}

.product-info-table__header-text {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  text-align: left;
}

.product-info-table__data {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 1;
  gap: 8px;
  padding-block: 12px;
  padding-inline: 16px;
}

.product-info-table__text {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  text-align: left;
}

.product-nutrition__unit {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  text-align: left;
}

.product-info-table__note {
  padding-left: 1em;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.3;
  text-indent: -1em;
}

.product-info-table__data-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.product-info-table__data-list-item {
  display: flex;
  font-size: 14px;
  font-weight: 400;
  font-style: normal;
  line-height: 130%; /* 18.2px */
  &::before {
    content: "・";
    flex-shrink: 0;
  }
}

/* product-nutrition */
.product-nutrition {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px 32px;

  @media (768px <= width) {
    grid-template-columns: repeat(3, 1fr);
  }
}

.product-nutrition__item {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.product-nutrition__label {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  color: #212529;
  flex-shrink: 0;
}

.product-nutrition__item::before {
  content: "";
  order: 1;
  flex: 1 1 auto;
  min-width: 16px;
  height: 1px;
  align-self: end;
  margin-bottom: 4px;
  background-image: linear-gradient(
    to right,
    #adb5bd 0,
    #adb5bd 2px,
    transparent 2px,
    transparent 4px
  );
  background-size: 4px 1px;
  background-repeat: repeat-x;
}

.product-nutrition__value {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  color: #212529;
  order: 2;
  flex-shrink: 0;
}

/* product-allergy */
.product-info__allergy {
  margin-top: 24px;

  @media (768px <= width) {
    margin-top: 40px;
  }
}

.product-allergy {
  width: 100%;
  margin-inline: auto;
  padding-block: 16px;
  padding-inline: 24px;
  background-color: #fff6e0;
  border: 1px solid #fdecea;
  border-radius: 8px;
  margin-top: 16px;

  @media (768px <= width) {
    /* display: flex;
    align-items: center;
    gap: 16px; */
    width: fit-content;
    max-width: 100%;
  }
}

/* .product-allergy__note {
  width: 0;
  min-width: 100%;
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.5;
  overflow-wrap: break-word;
} */

.product-allergy__wrap {
  @media (768px <= width) {
    display: flex;
    align-items: center;
    gap: 16px;
  }
}

.product-allergy__top {
  display: flex;
  flex-direction: column;
  gap: 4px;

  @media (768px <= width) {
    flex-shrink: 0;
    width: fit-content;
  }
}

.product-allergy__title {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  color: #d9a91f;
}

.product-allergy__sentence {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  text-align: center;
  color: #d9a91f;
}

.product-allergy__items {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  width: 100%;
  max-width: 375px;
  margin-top: 16px;
  margin-inline: auto;

  @media (768px <= width) {
    margin-top: 0;
    margin-inline: 0;
  }
}

.product-allergy__item {
  padding-top: 3px;
  padding-bottom: 3px;
  padding-inline: 16px;
  color: #fff;
  background-color: #d9a91f;
  border-radius: 4px;

  @media (768px <= width) {
    height: fit-content;
  }
}

.product-allergy__item-text {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

.product-info__allergy-btn.btn {
  max-width: 250px;
  margin-top: 16px;
  padding-block: 6px;
  font-size: 14px;

  @media (768px <= width) {
    margin-top: 22px;
  }
}

.product-img-card__item-btn-icon {
  width: 17px;
  height: 17px;
}

.product-img-card__item-btn-text {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
}

.product-info__extra {
  margin-top: 12px;
  p {
    font-size: 14px;
    font-weight: 400;
    line-height: 178%;
  }

  h3 {
    font-size: 16px;
    font-weight: 600;
    line-height: 160%;
    margin-block: 12px 4px;
  }

  .sanchoku .sc_left {
    width: 140px;
    @media (768px <= width) {
      width: 200px;
    }
  }

  .sanchoku .sc_right {
    h5 {
      margin-block: 12px 4px;

      & + p {
        margin-top: 0;
      }
    }

    .product-allergy__title {
      font-size: 16px;
      font-weight: 700;
      line-height: 1.5;
      text-align: center;
      color: #d9a91f;
      margin-top: 0;
    }

    .product-allergy__sentence {
      font-size: 12px;
      font-weight: 400;
      line-height: 1.5;
      text-align: center;
      color: #d9a91f;
      margin-top: 0;
    }

    .product-allergy__items {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      width: 100%;
      max-width: 375px;
      margin-top: 16px;
      margin-inline: auto;

      @media (768px <= width) {
        margin-top: 0;
        margin-inline: 0;
      }
    }

    .product-allergy__note {
      width: 0;
      min-width: 100%;
      margin-top: 8px;
      font-size: 12px;
      font-weight: 400;
      line-height: 1.5;
      text-align: center;
      color: #d9a91f;
      overflow-wrap: break-word;
    }
  }
}

/* product-set-menu */
.product-set-menu {
  padding-block: 64px 60px;
  background: url("../../img/202604/product-detail/set-menu-bg.png") repeat
    center top;

  @media (768px <= width) {
    padding-block: 80px;
  }
}

.product-set-menu__content {
  margin-top: 0;

  @media (768px <= width) {
    overflow: visible;
    width: 100%;
    max-width: min(calc(1080px + 40px * 2), 100%);
    margin-inline: auto;
    padding-inline: 40px;
  }
}

.product-set-menu__swiper-wrapper:has(
  .product-set-menu__swiper-slide:only-child
) {
  justify-content: center;
}

.product-set-menu__swiper {
  padding-top: 40px;
  padding-inline: 16px;

  @media (768px <= width) {
    overflow: visible;
    padding-inline: 0;
  }
}

.product-set-menu__swiper-slide {
  position: relative;
  width: 299px;
  height: auto;
  /* padding-top: 152px;
  padding-bottom: 24px;
  padding-inline: 24px; */
  padding: 24px;
  background-color: #fff;
  border-radius: 8px;

  a {
    &:hover {
      .product-set-menu__swiper-slide-img {
        opacity: 0.7;
      }
    }
  }
}

.product-set-menu__swiper-slide:only-child {
  width: 100%;
  max-width: 343px;
}

.product-set-menu__swiper-slide-img-wrap {
  /* width: 251px;
  position: absolute;
  top: -88px;
  left: 50%;
  translate: -50%; */
  width: 100%;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-set-menu__swiper-slide-img {
  width: 251px;
  height: 251px;
  object-fit: cover;
  object-position: center;
  transition: opacity 0.3s;
}

.product-set-menu__swiper-slide-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.product-set-menu__swiper-slide-title {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.8;
}

.product-set-menu__swiper-slide-sentence {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

.product-set-menu__swiper-scrollbar-wrap {
  padding-inline: 16px;
  margin-top: 24px;

  .product-set-menu__swiper-scrollbar {
    position: relative;
    height: 6px;
    /* margin-top: 32px; */
    background-color: transparent;

    @media (768px <= width) {
      left: 0;
    }

    .swiper-scrollbar-drag {
      background-color: #cbcbcb;
    }
  }

  @media (768px <= width) {
    padding-inline: 0;
  }
}

/* Swiperが不要なとき */
.product-set-menu__swiper.is-swiper-inactive {
  overflow: visible;
}

.product-set-menu__swiper.is-swiper-inactive
  .product-set-menu__swiper-scrollbar {
  display: none;
}

/* 任意：ドラッグできない感を出す */
.product-set-menu__swiper.is-swiper-inactive .swiper-wrapper {
  justify-content: center;
  cursor: default;
}

/* review */
.review {
  padding-top: 0;
}

.review__header {
  margin-bottom: 24px;
  @media (768px <= width) {
    margin-bottom: 40px;
  }
}

.review__items {
  display: flex;
  flex-direction: column;
  gap: 48px;

  @media (768px <= width) {
    gap: 49px;
  }
}

.review-item {
  position: relative;

  &:not(:last-child)::before {
    content: "";
    position: absolute;
    bottom: -24px;
    width: 100%;
    height: 1px;
    background-image: linear-gradient(to right, #adb5bd 2px, transparent 2px);
    background-size: 4px 1px;
    background-repeat: repeat-x;
  }

  @media (768px <= width) {
    padding-right: 48px;
  }
}

.review-item__header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.review-item__rating {
  display: flex;
}

.review-item__star {
  width: 32px;
  height: 32px;
  margin-left: -8px;
  background: url("./img/product-detail-longlife/star-off.svg") no-repeat center
    center;
  background-size: contain;
}

/* 整数の星（1〜5） */
.review-item__rating[data-rating="1"] .review-item__star:nth-child(-n + 1),
.review-item__rating[data-rating="2"] .review-item__star:nth-child(-n + 2),
.review-item__rating[data-rating="3"] .review-item__star:nth-child(-n + 3),
.review-item__rating[data-rating="4"] .review-item__star:nth-child(-n + 4),
.review-item__rating[data-rating="5"] .review-item__star:nth-child(-n + 5) {
  background: url("./img/product-detail-longlife/star-on.svg") no-repeat center
    center;
  background-size: contain;
}

/* 0.5の星 */
.review-item__rating[data-rating="0.5"] .review-item__star:nth-child(1),
.review-item__rating[data-rating="1.5"] .review-item__star:nth-child(2),
.review-item__rating[data-rating="2.5"] .review-item__star:nth-child(3),
.review-item__rating[data-rating="3.5"] .review-item__star:nth-child(4),
.review-item__rating[data-rating="4.5"] .review-item__star:nth-child(5) {
  background: url("./img/product-detail-longlife/star-half.svg") no-repeat
    center center;
  background-size: contain;
}

/* 1.5 = 1つの満点 + 1つの半分 */
.review-item__rating[data-rating="1.5"] .review-item__star:nth-child(-n + 1),
.review-item__rating[data-rating="2.5"] .review-item__star:nth-child(-n + 2),
.review-item__rating[data-rating="3.5"] .review-item__star:nth-child(-n + 3),
.review-item__rating[data-rating="4.5"] .review-item__star:nth-child(-n + 4) {
  background: url("./img/product-detail-longlife/star-on.svg") no-repeat center
    center;
  background-size: contain;
}

.review-item__date {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
}

.review-item__title {
  margin-top: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;

  @media (768px <= width) {
    margin-top: 16px;
    font-size: 20px;
  }
}

.review-item__text {
  margin-top: 8px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;

  @media (768px <= width) {
    font-size: 16px;
    line-height: 1.6;
  }
}

.review-item__user {
  display: flex;
  gap: 4px;
  margin-top: 8px;

  @media (768px <= width) {
    margin-top: 16px;
  }
}

.review-item__user-icon {
  width: 24px;
  height: 24px;
  aspect-ratio: 1 / 1;
}

.review-item__user-name {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #666;
}

/* faq */

.faq-detail {
  --color-main: var(--brand-color);

  display: block;
  background: #fff;
}

.faq-detail__list {
  display: grid;
}

.faq-detail__item {
  overflow: hidden;
  background: #fff;
  border-top: 1px solid #adb5bd;
}

.faq-detail__item:last-of-type {
  border-bottom: 1px solid #adb5bd;
}

details[open] .summary {
  background-color: #f1f3f5;
}

.faq-detail__item[open] .faq-detail__summary {
  background-color: #f1f3f5;
}

.faq-detail__summary {
  display: flex;
  position: relative;
  align-items: center;
  gap: 12px;
  padding: 16px 8px 15px 33px;
  list-style: none;
  cursor: pointer;
  user-select: none;

  @media (768px <= width) {
    /* padding: 16px 8px 16.5px 33px; */
    padding: 24px 8px 24px 32px;
  }
}

.faq-detail__summary:hover {
  background-color: #f1f3f5;
}

.faq-detail__summary ::-webkit-details-marker {
  display: none;
}

.faq-detail__question {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: var(--font-family-jp);
  font-weight: 500;
  line-height: 1.6;
  color: var(--text-primary, #212529);
}

.faq-detail__question::before {
  content: "Q.";
  display: inline-block;
  position: absolute;
  top: 16px;
  left: 8px;
  flex: 0 0 auto;
  font-family: var(--font-family-latin);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--color-main);
  @media (768px <= width) {
    top: 24px;
  }
}

.faq-detail__arrow {
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  transition: transform 0.3s ease;

  rect {
    fill: var(--color-main);
  }
}

.faq-detail__item[open] .faq-detail__arrow {
  transform: rotate(180deg);
}

.faq-detail__answer {
  overflow: hidden;
}

.faq-detail__answer-text {
  position: relative;
  padding: 18px 8px 16px 32px;
  font-family: var(--font-family-jp);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--text-primary);
  @media (768px <= width) {
    padding: 24px 8px 24px 32px;
  }

  a {
    font-weight: bold;
    text-decoration: underline;
  }
}

.faq-detail__answer-text::before {
  content: "A.";
  display: inline-block;
  position: absolute;
  top: 19px;
  left: 9px;
  font-family: var(--font-family-latin);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  color: #d92d20;
  @media (768px <= width) {
    top: 26px;
  }
}

/* product-grid-items */
.product-grid-items {
  display: grid;
  gap: 32px 15px;
  grid-template-columns: repeat(auto-fill, minmax(164px, 1fr));

  @media (width < 390px) {
    grid-template-columns: repeat(2, 1fr);
  }

  .product-card:nth-of-type(n + 7) {
    /* display: none; */

    @media (768px <= width) {
      display: block;
    }
  }

  @media (768px <= width) {
    gap: 48px;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }
}

/* product-card */
.product-card {
  width: 100%;
  display: flex;
  flex-direction: column;
}

.product-card__link {
  &:hover {
    .product-card__top {
      opacity: 0.8;
    }
  }
}

.product-card__top {
  position: relative;
  transition: opacity 0.3s;
}

.product-card__img-wrap {
  img {
    height: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    object-position: center;
  }
}

.product-card__badge-wrap {
  position: absolute;
}

.product-badge--sold-out {
  padding-block: 7px;
  padding-inline: 8px;
  font-family: var(--font-family-latin);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: #fff;
  background-color: #adb5bd;
}

.product-card__labels {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 8px;

  &:not(:has(.product-label)) {
    display: none;
  }

  @media (768px <= width) {
    gap: 8px;
  }
}

.product-label {
  padding-block: 4px;
  padding-inline: 8px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.8px;
  color: #fff;
  background-color: #eb8478;
  border-radius: 2px;

  @media (768px <= width) {
    font-size: 12px;
    letter-spacing: -0.96px;
  }
}

.product-label--cold {
  background-color: #66a0cc;
}

.product-label--first-time {
  background-color: #66bd8f;
}

.product-label--shipping-included {
  background-color: #eb8478;
}

.product-label--special-price {
  background-color: #d92d20;
}

.product-label--limited-time {
  background-color: #d9a91f;
}

.product-card__title {
  display: -webkit-box;
  overflow: hidden;
  margin-top: 8px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;

  @media (768px <= width) {
    font-size: 16px;
  }
}

.product-card__price-wrap {
  /* margin-top: 16px; */
  padding-top: 16px;
  margin-top: auto;

  > span {
    display: block;
  }
}

.product-card__price {
  width: fit-content;
  margin-left: auto;
}

.product-card__price-original {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 8px;
  margin-bottom: 5px;
}

.product-card__price-label {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  color: #d92d20;

  @media (768px <= width) {
    font-size: 14px;
  }
}

.product-card__price-box {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: baseline;
  font-family: var(--font-family-latin);
}

.product-card__price-box:nth-of-type(2) {
  color: #d92d20;
}

.product-card__price-arrow {
  display: flex;
}

.product-img-card__price-arrow-icon {
  width: 18px;
  height: auto;
  translate: -4px -3px;
}

.product-card__price-number {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.2;

  @media (768px <= width) {
    font-size: 28px;
  }
}

.product-card__price-unit {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
}

.product-card__price-tax {
  font-size: 12px;
  line-height: 1.2;

  @media (768px <= width) {
    font-size: 14px;
  }
}

.product-card__price-box--original {
  position: relative;

  &::before {
    content: "";
    position: absolute;
    top: 45%;
    left: -2px;
    width: 97%;
    height: 1px;
    background-color: #d92d20;
    translate: 0 -50%;
  }

  .product-card__price-number {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
  }
}

.related {
  @media (768px <= width) {
    padding-top: 48px;
  }
}

.related__btn-wrap {
  max-width: 250px;
  margin-top: 48px;
  margin-inline: auto;

  @media (768px <= width) {
    margin-top: 80px;
  }
}

.related__content .product-card:nth-child(n + 7) {
  display: none;
}
@media (768px <= width) {
  .related__content .product-card:nth-child(n + 9) {
    display: none;
  }
}

#dvReviewComment li img.imgReviewRating {
  width: auto;
}

/* 追従カートボタン */
.float-area {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  background-color: transparent;
  padding: 16px;
  position: fixed;
  bottom: 0;
  left: 0;
  z-index: 9;
  width: 100%;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    visibility 0s 0.25s;
  .product-controls__cart-btn-wrap {
    width: min(100%, 438px);
    flex: inherit;
    pointer-events: auto;
  }
  .float-area-cart-btn {
    pointer-events: auto;
  }
}

.float-area.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    visibility 0s;
}

/* PC: カートアイコンを右下に固定、カートに入れるボタンは中央下部 */
@media (768px <= width) {
  .float-area {
    padding-inline: 0;
  }
  .float-area .float-area-cart-btn {
    position: fixed;
    right: 16px;
    bottom: 16px;
  }
}

.float-area-cart-btn {
  --btn-bg-color: #fff;
  --btn-hover-bg-color: #e6f4ed;
  --btn-text-color: #009140;
  --btn-border: #009140;
  --btn-shadow: #004a28;
  --btn-icon-bg-color: #fff;
  --btn-icon-color: #009140;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 78px;
  height: 78px;
  aspect-ratio: 1/1;
  background: var(--btn-bg-color);
  border: 2px solid var(--btn-border);
  border-radius: calc(infinity * 1px);
  box-shadow: 0 4px 0 0 var(--btn-shadow);
  transition: 0.1s ease-out;
  position: relative;
  cursor: pointer;
  flex-shrink: 0;

  &:hover {
    color: var(--btn-text-color);
    background: var(--btn-hover-bg-color);
  }
  &:focus {
    overflow: visible;
  }
}

.float-area-cart-btn__count {
  display: grid;
  position: absolute;
  top: 3px;
  right: 4px;
  width: 20px;
  height: 20px;
  background-color: #d92d20;
  border-radius: calc(infinity * 1px);
  place-content: center;
}

.float-area-cart-btn__count-text {
  font-family: var(--font-family-latin);
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: #fff;
}

.float-area-cart-btn__icon {
  width: 40px;
  height: 40px;
}

.float-area-cart-btn__text {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  color: var(--btn-text-color);
}

.float-area-cart-btn:active {
  box-shadow: 0 0 0 0 var(--button-primary-shadow, #004a28);
  transform: translateY(4px);
}

/* ========== カート追加モーダル ========== */
.add-cart-modal {
  display: flex;
  position: fixed;
  inset: 0;
  z-index: 9999;
  justify-content: center;
  align-items: center;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.4s ease,
    visibility 0.4s ease;
  pointer-events: none;
}

.add-cart-modal.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.add-cart-modal__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 160px;
  position: relative;
  background: rgb(255 255 255 / 0.9);
  border-radius: 16px;
  padding: 24px;
}

.add-cart-modal__icon {
  display: block;
  width: 64px;
  height: 64px;
  margin-inline: auto;
}

.add-cart-modal__text {
  color: #009140;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}
