.input-prepend.input-append input {
  font-size: 24px;
  padding-top: 11px;
  padding-bottom: 11px;
  width: 100px;
  text-align: right;
}
.stock_error {
  color: #DB5656;
}

/************************************************
 * 商品詳細ページ用CSS（整理版）
 ************************************************/

/*----------------------------------------------
  商品タイトル
----------------------------------------------*/
.rw-product-title {
  margin: 0 0 25px;
  padding-bottom: 10px;
  font-size: 2.0rem;
  font-weight: 600;
  border-bottom: 1px solid #ddd;
}

/*----------------------------------------------
  メインエリア：画像＋情報の2カラム
----------------------------------------------*/
.rw-product-main {
  display: flex;
  align-items: flex-start;
  gap: 30px;
  margin-bottom: 20px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* 左：ギャラリー   右：商品情報 */
.rw-product-gallery,
.rw-product-info {
  flex: 1 1 0;
  min-width: 0;
  box-sizing: border-box;
}


/************************************************
 * 左カラム：商品画像（縦サムネ＋メイン画像）
 ************************************************/

/* ギャラリー全体を横並びに（サムネ左・メイン右） */
.rw-product-gallery {
  margin-bottom: 30px;
}

.rw-product-gallery-inner {
  display: flex;
  align-items: flex-start;
  gap: 15px;
}

/* サムネイル（左縦並び） */
.rw-product-thumbs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
}

.rw-product-thumbs li {
  list-style: none;
  cursor: pointer;
  border: 1px solid #eee;
  border-radius: 6px;
  overflow: hidden;
  opacity: 0.75;
}

.rw-product-thumbs li.is-active {
  border: 2px solid #f3a5c0;
  opacity: 1;
}

.rw-product-thumbs img {
  width: 70px;
  display: block;
}

/* メイン画像（右） */
.rw-product-image-main {
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #eee;
  padding: 10px;
  text-align: center;
  background: #fff;
}

.rw-product-image-main img {
  max-width: 500px;
  width: 100%;
  height: auto;
  display: block;
  cursor: zoom-in; /* 拡大できる感 */
}


/************************************************
 * 右カラム：商品情報・オプション・カート
 ************************************************/
.rw-product-info {
  margin-bottom: 30px;
  text-align: left;
}

/* 価格テーブル */
.rw-price-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
  font-size: 0.95rem;
}

.rw-price-table th,
.rw-price-table td {
  padding: 8px 10px;
  border-bottom: 1px solid #eee;
}

.rw-price-table th {
  width: 30%;
  background: #fafafa;
  font-weight: 500;
}

.rw-price-regular {
  text-decoration: line-through;
  color: #999;
}

.rw-price-main {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rw-price-main-num {
  font-size: 1.4rem;
  font-weight: 700;
}

.rw-price-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.75rem;
  background: #ffe4ec;
  color: #d94f8a;
}

.rw-price-list {
  color: #999;
}

.rw-stock {
  font-weight: 600;
}


/************************************************
 * オプション選択
 ************************************************/
.rw-option-select {
  margin-bottom: 10px;
}

.rw-option-label {
  margin-bottom: 3px;
  font-size: 0.9rem;
}

/* オプション用コンボボックス（文字が切れないように調整） */
select.rw-option-select-box {
  width: 100%;
  box-sizing: border-box;
  font-size: 14px;
  line-height: 1.5;
  padding: 6px 32px 10px 10px;  /* 上 / 右 / 下 / 左 */
  height: 40px;
  border-radius: 4px;
  border: 1px solid #ccc;
  appearance: auto;
}


/************************************************
 * オプション値段リンク＋各種リンク
 ************************************************/

/* オプション値段リンク（右寄せ） */
.rw-option-links {
  margin-bottom: 20px;
  text-align: right;
}

.rw-option-price-link {
  font-size: 0.9rem;
  margin-bottom: 6px;
}

.rw-option-price-link i {
  display: inline-block;
  vertical-align: middle;
  margin-right: 6px;
}

/* （必要なら）オプション付近にリンクリストを出す用 */
.rw-product-links {
  margin-top: 15px;
  margin-bottom: 20px;
  text-align: right;
}

.rw-product-links ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: inline-block;
  text-align: left;
}

.rw-product-links li {
  margin-bottom: 4px;
  font-size: 0.9rem;
}

/* SNSの下に出す用（特商法など4リンク） */
.rw-product-links-under-sns {
  margin-top: 15px;
  margin-bottom: 20px;
  text-align: center;
}

.rw-product-links-under-sns ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: inline-block;
  text-align: left;
}

.rw-product-links-under-sns li {
  margin-bottom: 4px;
  font-size: 0.9rem;
}


/************************************************
 * 購入ブロック（購入数＋カート＋クイック購入）
 ************************************************/

/* 購入ブロック全体：中央揃え */
.rw-product-order {
  margin-top: 20px;
  text-align: center;
}

/* 購入数（ラベル＋数量ボタン） */
.rw-qty-block {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 15px;
}

.rw-qty-label {
  font-size: 0.95rem;
}

/* 数量コントロール */
.rw-qty-control {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  border: 1px solid #ddd;
  overflow: hidden;
  background: #fff;
}

.rw-qty-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  text-decoration: none;
}

.rw-qty-input {
  width: 50px;
  text-align: center;
  border: 0;
  border-left: 1px solid #ddd;
  border-right: 1px solid #ddd;
  height: 34px;
}

.rw-qty-unit {
  font-size: 0.9rem;
}

/* カート・クイック購入ボタン：購入数の「下」に縦並び */
.rw-cart-btns {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

/* ボタン共通 */
.rw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  border-radius: 999px;
  border: none;
  font-size: 0.95rem;
  text-decoration: none;
  cursor: pointer;
}

/* カートに入れるボタン */
.rw-btn-cart {
  min-width: 180px;
  background: #f3a5c0;
  color: #fff;
}

.rw-btn-cart:hover {
  opacity: 0.9;
}

/* クイック購入ボタン */
.rw-btn-quick {
  min-width: 180px;
  background: #fff;
  color: #f3a5c0;
  border: 1px solid #f3a5c0;
}

/* SOLD OUTなど */
.rw-btn-disabled {
  width: 100%;
  background: #ddd;
  color: #777;
  cursor: default;
}

.rw-stock-error {
  color: #d94f8a;
}

.rw-soldout-block {
  margin-top: 10px;
}


/************************************************
 * SNS・シェア
 ************************************************/
.rw-share {
  margin-top: 20px;
  font-size: 0.9rem;
  text-align: center;
}

.rw-share-main {
  margin-bottom: 5px;
}

.rw-share-sub {
  font-size: 0.85rem;
}


/************************************************
 * 下部：説明文など
 ************************************************/
.rw-product-body {
  margin-bottom: 40px;
}

/* 商品説明文 */
.rw-product-desc {
  padding: 20px;
  border-radius: 8px;
  background: #fffdf8;
  line-height: 1.8;
  margin-bottom: 20px;
}


/************************************************
 * ライトボックス（拡大画像）
 ************************************************/

/* 黒背景の全画面 */
.rw-lightbox {
  display: none;              /* 初期は非表示 */
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.8);
  justify-content: center;
  align-items: center;
  z-index: 9999;
  cursor: zoom-out;
}

/* 内側コンテナ */
.rw-lightbox-inner {
  position: relative;
  max-width: 90%;
  max-height: 90%;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* 拡大画像 */
.rw-lightbox-inner img {
  max-width: 100%;
  max-height: 100%;
  border-radius: 8px;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: rw-fadeIn .2s ease-out;
}

/* 閉じるボタン（右上の×） */
.rw-lightbox-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: rgba(0,0,0,0.6);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.rw-lightbox-close:hover {
  background: rgba(0,0,0,0.8);
}

/* 表示アニメーション */
@keyframes rw-fadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to   { opacity: 1; transform: scale(1); }
}


/************************************************
 * レスポンシブ（スマホ）
 ************************************************/
@media (max-width: 767px) {
  .rw-product-title {
    font-size: 1.4rem;
  }

  /* メインエリアは縦並びに */
  .rw-product-main {
    flex-direction: column;
    gap: 20px;
  }

  .rw-product-gallery,
  .rw-product-info {
    flex: 0 0 100%;
  }

  .rw-price-table th,
  .rw-price-table td {
    padding: 6px 8px;
  }

  .rw-cart-btns {
    width: 100%;
  }

  .rw-btn {
    width: 100%;
  }

  /* スマホではギャラリーを縦→サムネ下に横並び */
  .rw-product-gallery-inner {
    flex-direction: column;
    align-items: center;
  }

  .rw-product-thumbs {
    flex-direction: row;
    justify-content: center;
  }

  .rw-product-thumbs img {
    width: 60px;
  }

  .rw-option-links,
  .rw-product-links {
    text-align: left;
  }
}

/* ----------------------------------------------
   共通タイトル（お気に入り・最近チェックした商品）
   商品詳細ページの .rw-product-title を上書きするための調整
---------------------------------------------- */
.rw-product-title.rw-title--favorite,
.rw-product-title.rw-title--recent {
  margin: 40px 0 18px;
  padding-bottom: 0;
  font-size: 1.4rem;
  font-weight: 700;
  border-bottom: none;
  color: #8b5e3b;

  display: inline-flex;
  align-items: center;
  gap: 8px;
}

/* アイコン共通デザイン */
.rw-product-title.rw-title--favorite .rw-title-icon,
.rw-product-title.rw-title--recent .rw-title-icon {
  display: inline-block;
  width: 20px;
  height: 20px;
  background-repeat: no-repeat;
  background-size: contain;
  /* 必要なら background-image を指定 */
  /* background-image: url("data:image/svg+xml;utf8,..."); */
}
