/******************************/
/*  商品詳細ページCSS　2025_11_01 ver3 */
/******************************/
.p-product {
  margin-bottom: 90px;
}

/* form */
.p-product select {
  box-sizing: border-box;
  padding: 5px;
  height: 40px;
  border: 1px solid #bfbfbf;
  font-size: 16px;
}
.p-product input[type=text] {
  box-sizing: border-box;
  padding: 5px;
  height: 40px;
  border: 1px solid #bfbfbf;
  font-size: 16px;
}

/* ========== 基本レイアウト ========== */
.p-product-main {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
@media screen and (max-width: 1030px) {
  .p-product-main {
    display: block;
  }
}

/* 画像枠 */
.p-product-img {
  width: 530px;
}
@media screen and (max-width: 1030px) {
  .p-product-img {
    width: auto;
    margin-bottom: 45px;
  }
}
@media screen and (max-width: 767px) {
  .p-product-img {
    margin-left: -20px;
    margin-right: -20px;
    width: auto;
  }
}

.p-product-img__main {
  text-align: center;
}
@media screen and (max-width: 1030px) {
  .p-product-img__main {
    margin-left: auto;
    margin-right: auto;
    width: 530px;
  }
}
@media screen and (max-width: 767px) {
  .p-product-img__main {
    width: auto;
  }
}
.p-product-img__main-item {
  position: relative;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-product-img__main-item {
    text-align: center;
  }
}
.p-product-img__main-item:before {
  content: "";
  display: block;
  padding-top: 100%;
}
.p-product-img__main-item a {
  display: block;
  position: absolute;
  inset: 0;
}
.p-product-img__main-item img {
  display: inline-block;
  position: absolute;
  inset: 0;
  margin: auto;
  width: auto !important;
  max-width: 100%;
  max-height: 100%;
  text-align: center;
}

/* サムネイル */
.p-product-thumb-list {
  display: flex;
  flex-wrap: wrap;
  margin-left: -4px;
  margin-right: -4px;
  margin-top: 8px;
}
@media screen and (max-width: 1030px) {
  .p-product-thumb-list {
    margin-left: 0;
    margin-right: 0;
    flex-wrap: nowrap;
  }
}
.p-product-thumb-list__item {
  box-sizing: border-box;
  margin-bottom: 8px;
  padding-left: 4px;
  padding-right: 4px;
  width: 20%;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
@media screen and (max-width: 1030px) {
  .p-product-thumb-list__item {
    margin-right: 5px;
    padding-left: 0;
    padding-right: 0;
    width: 90px;
  }
}
@media screen and (max-width: 767px) {
  .p-product-thumb-list__item {
    margin-right: 5px;
    width: 60px;
  }
}
.p-product-thumb-list__item:hover,
.p-product-thumb-list__item.is-current {
  opacity: 0.7;
  cursor: pointer;
}
@media screen and (max-width: 1030px) {
  .p-product-thumb-list__item img { width: 90px; }
}
@media screen and (max-width: 767px) {
  .p-product-thumb-list__item img { width: 60px; }
}
.p-product-thumb-list__img {
  position: relative;
  text-align: center;
}
@media screen and (max-width: 1030px) {
  .p-product-thumb-list__img { width: 90px; }
}
@media screen and (max-width: 767px) {
  .p-product-thumb-list__img { width: 60px; text-align: center; }
}
.p-product-thumb-list__img:before {
  content: "";
  display: block;
  padding-top: 100%;
}
.p-product-thumb-list__img img {
  display: inline-block;
  position: absolute;
  inset: 0;
  margin: auto;
  width: auto !important;
  max-width: 100%;
  max-height: 100%;
  text-align: center;
}

/* スライダー矢印 */
.p-product-img__main .slick-track { margin-left: 0; margin-right: 0; }
.p-product-img__main .slick-prev,
.p-product-img__main .slick-next {
  top: 50%;
  width: 30px;
  height: 30px;
  transition: all 0.4s ease;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .p-product-img__main .slick-prev,
  .p-product-img__main .slick-next {
    width: 45px;
    height: 45px;
  }
}
.p-product-img__main .slick-prev:before,
.p-product-img__main .slick-next:before {
  content: "";
  position: absolute;
  top: 7px;
  left: 10px;
  width: 15px;
  height: 15px;
  border-left: 1px solid #000;
  border-top: 1px solid #000;
  transition: all 0.4s ease;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .p-product-img__main .slick-prev:before,
  .p-product-img__main .slick-next:before {
    top: 15px;
  }
}
.p-product-img__main .slick-prev { left: 15px; }
@media screen and (max-width: 767px) {
  .p-product-img__main .slick-prev { left: 0; }
}
.p-product-img__main .slick-prev:before { transform: rotate(-45deg); }
@media screen and (max-width: 767px) {
  .p-product-img__main .slick-prev:before { left: 17px; }
}
.p-product-img__main .slick-next { right: 15px; }
@media screen and (max-width: 767px) {
  .p-product-img__main .slick-next { right: 0; }
}
.p-product-img__main .slick-next:before { left: 4px; transform: rotate(135deg); }
@media screen and (max-width: 767px) {
  .p-product-img__main .slick-next:before { left: 13px; }
}

/* ========== 商品情報枠 ========== */
.p-product-info {
  width: 410px;
}
@media screen and (max-width: 1030px) {
  .p-product-info { width: auto; }
}
.p-product-info__ttl {
  margin: 0;
  font-size: 24px;
  font-weight: normal;
}
@media screen and (max-width: 767px) {
  .p-product-info__ttl { font-size: 21px; }
}
.p-product-info__ttl img { vertical-align: middle; }
.p-product-info__id { margin: 0; }
@media screen and (max-width: 767px) {
  .p-product-info__id { margin-top: 5px; font-size: 10px; }
}

/* 価格 */
.p-product-price { margin-top: 20px; margin-bottom: 20px; }
.p-product-price__sell { font-size: 18px; }
.p-product-price__normal { font-size: 14px; }
@media screen and (max-width: 767px) {
  .p-product-price__normal { font-size: 12px; }
}
.p-product-price__list-price { font-size: 14px; }
@media screen and (max-width: 767px) {
  .p-product-price__list-price { font-size: 12px; }
}

/* オプション table */
.p-product-option-tbl {
  margin-top: 30px;
  margin-bottom: 30px;
  overflow-x: auto;
}
.p-product-option-tbl table {
  margin-bottom: 0;
  border-left: 0;
  border-right: 0;
  width: 100%;
}
.p-product-option-tbl table div { display: inline-block !important; }
.p-product-option-tbl th { min-width: 100px; }
.p-product-option-tbl th,
.p-product-option-tbl td {
  padding: 12px 5px;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  border-left: 0;
  text-align: center;
}
.p-product-option-tbl label {
  display: inline-block !important;
  margin-left: 5px;
  margin-bottom: 0;
}
.p-product-option-tbl input { margin-top: 0; }

/* オプション select */
.p-product-option-select { margin-top: 30px; margin-bottom: 30px; }
.p-product-option-select__box { margin-top: 15px; }
.p-product-option-select__ttl { margin-bottom: 5px; font-weight: bold; }

/* 名入れ */
.p-product-name { margin-top: 30px; margin-bottom: 30px; }
.p-product-name__box { margin-top: 15px; }
.p-product-name__ttl { margin-bottom: 5px; font-weight: bold; }
.p-product-name__body input { width: 100%; }

/* 数量 */
.p-product-form-stock {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 20px;
  margin-bottom: 20px;
}
.p-product-form-stock__input { display: flex; align-items: center; }
.p-product-form-stock__input input { width: 60px; }
.p-product-form-stock__unit { margin-left: 10px; }
.p-product-form-stock__stock { margin-left: 25px; }

/* ボタン */
.p-product-form-btn {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.p-product-form-btn__cart { width: 100%; }
@media screen and (max-width: 1030px) {
  .p-product-form-btn__cart { flex: 1; width: auto; }
}
.p-product-form-btn__favorite { width: 50px; }
.p-product-form-btn__favorite-btn {
  display: inline-block;
  margin-top: 22px;
  margin-left: 22px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #d8d8d8;
  cursor: pointer;
  text-align: center;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.p-product-form-btn__favorite-btn.is-added { color: #000; }
.p-product-form-btn__favorite-btn svg { width: 25px; height: 25px; fill: currentColor; }
.p-product-form__error-message { color: #DB5656; margin-top: 15px; }
.p-product-form__error-message:empty { display: none; }

/* SNS */
.p-product-sns-list {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
}
.p-product-sns-list__item { margin-right: 20px; }

/* link */
.p-product-link-list { margin-top: 40px; }
.p-product-link-list__item { margin-bottom: 5px; }
@media screen and (max-width: 767px) {
  .p-product-link-list__item { margin-bottom: 30px; }
}

/* ========== DETAIL / その他ブロック ========== */
.p-product__ttl {
  margin-top: 0;
  margin-bottom: 35px;
  line-height: 1.4;
  font-size: 21px;
  font-weight: bold;
  letter-spacing: 0.3em;
}
@media screen and (max-width: 767px) {
  .p-product__ttl { margin-bottom: 30px; font-size: 18px; }
}

.p-product-detail {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 75px;
}
@media screen and (max-width: 1030px) {
  .p-product-detail { display: block; }
}

.p-product-explain { width: 410px; }
@media screen and (max-width: 1030px) {
  .p-product-explain { margin-bottom: 60px; width: auto; }
}
.p-product-explain__body { line-height: 2; }

.p-product-other { width: 530px; order: -1; }
@media screen and (max-width: 1030px) {
  .p-product-other { width: auto; }
}

/* おすすめ商品 */
.p-product-recommend-list {
  display: flex;
  flex-wrap: wrap;
  margin-left: -20px;
  margin-right: -20px;
  margin-bottom: 90px;
}
@media screen and (max-width: 767px) {
  .p-product-recommend-list {
    margin-left: -5px;
    margin-right: -5px;
    margin-bottom: 60px;
  }
}
.p-product-recommend-list__item {
  box-sizing: border-box;
  padding-left: 20px;
  padding-right: 20px;
  width: 33.3333%;
  word-break: break-all;
}
@media screen and (max-width: 767px) {
  .p-product-recommend-list__item { padding-left: 5px; padding-right: 5px; }
}
.p-product-recommend-list__img {
  margin-bottom: 30px;
  position: relative;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .p-product-recommend-list__img { margin-bottom: 5px; text-align: center; }
}
.p-product-recommend-list__img:before {
  content: "";
  display: block;
  padding-top: 100%;
}
.p-product-recommend-list__img a {
  display: block;
  position: absolute;
  inset: 0;
}
.p-product-recommend-list__img img {
  display: inline-block;
  position: absolute;
  inset: 0;
  margin: auto;
  width: auto !important;
  max-width: 100%;
  max-height: 100%;
  text-align: center;
}
.p-product-recommend-list__price {
  margin-top: 15px;
  font-size: 12px;
  color: #909090;
}
@media screen and (max-width: 767px) {
  .p-product-recommend-list__price { margin-top: 0; }
}
.p-product-recommend-list__price.is-strikethrough {
  margin-top: 0;
  text-decoration: line-through;
}
.p-product-recommend-list__expl { margin-top: 15px; font-size: 12px; }

/* レビュー */
.p-product-review { margin-bottom: 60px; }
.p-product-review__item {
  box-sizing: border-box;
  margin-bottom: 30px;
  padding: 40px;
  background: #f8f8f8;
}
@media screen and (max-width: 767px) {
  .p-product-review__item { padding: 20px; }
}
.p-product-review__heading { margin-bottom: 15px; }
.p-product-review__ttl {
  margin-top: 10px;
  margin-bottom: 10px;
  line-height: 1.4;
  font-size: 18px;
}
.p-product-review-info { margin-top: 10px; margin-bottom: 10px; }
.p-product-review-info__item { display: inline-block; font-size: 12px; }
.p-product-review-info__item.is-type { margin-right: 35px; }
.p-product-review__img { margin-bottom: 15px; text-align: center; }
.p-product-review__body { margin-top: 15px; line-height: 2; }
.p-product-review__rates { display: flex; flex-wrap: wrap; }
.p-product-review__rate {
  width: 18px;
  height: 18px;
  vertical-align: -0.3em;
  fill: #d8d8d8;
}
.p-product-review__rate.is-color { fill: #000; }

/* レビュー返信 */
.p-product-review-reply {
  box-sizing: border-box;
  margin-top: 30px;
  padding: 15px 0;
  border-top: 1px solid #aaa;
  border-bottom: 1px solid #aaa;
}
.p-product-review-reply__ttl { font-weight: bold; }
.p-product-review-reply__body { font-size: 12px; }
.p-product-review-reply__date { font-size: 12px; }
.p-product-review__btn { margin-top: 45px; text-align: center; }
@media screen and (max-width: 767px) {
  .p-product-review__btn { margin-top: 30px; }
}

/* ====== 余白圧縮（無駄スペース削減） ====== */
/* DETAIL を 1カラム化して先頭に */
.p-product-detail .p-product-explain {
  width: 100%;
  order: -2;
}

/* 読みやすさ */
.p-product-explain__body {
  line-height: 2;
  padding-inline: 16px;
}
.p-product-explain__body img,
.p-product-explain__body table {
  max-width: 100%;
  height: auto;
}

/* ====== .cm-desc スコープ（商品説明HTMLの最適化） ====== */
.p-product-explain__body .cm-desc { padding-inline: 16px; }

/* タイトル */
.cm-desc .cm-title {
  font-size: 20px;
  line-height: 1.6;
  margin: 0 0 10px;
}
.cm-desc .cm-title em {
  font-style: normal;
  font-weight: 700;
  margin-right: .4em;
}
.cm-desc .cm-title .cm-width {
  margin-left: .6em;
  font-size: .95em;
  white-space: nowrap;
}

/* リード */
.cm-desc .lead {
  font-size: 18px;
  line-height: 1.8;
  margin: 10px 0 18px;
  font-weight: 600;
}

/* テキスト基本 */
.cm-desc p { line-height: 2; margin: 0 0 1em; }
.cm-desc .note { font-size: .9em; color: #666; }

/* 仕様テーブル */
.cm-desc .cm-spec {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0 20px;
  table-layout: fixed;
}
.cm-desc .cm-spec th,
.cm-desc .cm-spec td {
  padding: 10px 12px;
  border-top: 1px solid #e5e5e5;
  vertical-align: top;
  word-break: break-word;
}
.cm-desc .cm-spec th {
  width: 26%;
  background: #fafafa;
  font-weight: 600;
}

/* セクション */
.cm-desc .cm-block { margin: 32px 0 16px; }
.cm-desc .cm-h2, .cm-desc .cm-h2-left {
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 10px;
}
.cm-desc .cm-h2 { text-align: center; }
.cm-desc .cm-center { text-align: center; }

/* 画像 */
.cm-desc .cm-img, .cm-desc img { max-width: 100%; height: auto; }

/* カラーグリッド */
.cm-desc .cm-color-grid {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px 16px;
}
.cm-desc .cm-color-grid li { text-align: center; font-size: 12px; }
.cm-desc .cm-color-grid img { display: block; width: 100%; height: auto; }
.cm-desc .cm-color-grid a {
  display: block;
  border: 1px solid #e6e6e6;
  padding: 4px;
  transition: border-color .2s ease;
}
.cm-desc .cm-color-grid a:hover { border-color: #000; }

@media (max-width: 1030px){
  .cm-desc .cm-color-grid { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 767px){
  .cm-desc .cm-color-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
}

/* 3/2カラムの簡易グリッド */
.cm-desc .cm-grid-3 { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
.cm-desc .cm-grid-2 { display: grid; gap: 20px; grid-template-columns: 1fr 1fr; }
@media (max-width:1030px){
  .cm-desc .cm-grid-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width:767px){
  .cm-desc .cm-grid-3, .cm-desc .cm-grid-2 { grid-template-columns: 1fr; }
}

/* カード */
.cm-desc .cm-card { background: #fff; }
.cm-desc .cm-card img { max-width: 100%; height: auto; }

/* 連絡先 */
.cm-desc .cm-contact { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.cm-desc .cm-contact .tel { font-weight: 700; }
.cm-desc .cm-contact a { text-decoration: underline; }

/* 余白ユーティリティ */
.cm-desc .mt-4 { margin-top: 1.2rem; }

/* ---- 余白の“掃除” (.cm-desc限定) ---- */
.p-product-explain__body .cm-desc { padding-inline: 8px; }
.cm-desc > :first-child { margin-top: 0 !important; }
.cm-desc > :last-child  { margin-bottom: 0 !important; }
.cm-desc .lead { margin: 8px 0 12px; line-height: 1.7; }
.cm-desc p { margin: 0 0 0.9em; line-height: 1.9; }
.cm-desc p:empty { display: none; }
.cm-desc .cm-spec { margin: 10px 0 14px; }
.cm-desc .cm-spec th, .cm-desc .cm-spec td { padding: 8px 10px; }
.cm-desc .cm-block { margin: 24px 0 12px; }
.cm-desc .cm-h2, .cm-desc .cm-h2-left { margin: 0 0 8px; }
.cm-desc img { display: block; }

.cm-desc .cm-color-grid {
  gap: 12px;
  margin-top: 8px;
}
.cm-desc .cm-color-grid a { padding: 3px; }
.cm-desc .cm-color-grid li span { display: block; margin-top: 6px; }

/* 見出し/マージンの微調整（DETAIL側） */
.p-product__ttl { margin-bottom: 22px; }     /* 35px → 22px */
.p-product-detail { margin-top: 50px; }      /* 75px → 50px */
.p-product-other { margin-top: 20px; }

/* スマホ時の微調整 */
@media (max-width: 767px){
  .p-product-explain__body .cm-desc { padding-inline: 10px; }
  .cm-desc .cm-color-grid { gap: 8px; }
  .p-product__ttl { margin-bottom: 18px; }
  .p-product-detail { margin-top: 36px; }
}

/* ====== 商品説明テキストとspecの間を詰める ====== */
#product-title { margin-bottom: 0.3em; }
.lead {
  margin-top: 0.2em;
  margin-bottom: 1em;
}
#spec { margin-top: 0.8em; }
#spec th, #spec td { padding: 6px 10px; }
#spec tr:first-child th, #spec tr:first-child td { border-top: none; }

/* ====== maintenance（3カラム） ====== */
/* 旧 .box レイアウトが混在しても崩れないよう保険 */
#maintenance .wrap.bs-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 24px;
}
#maintenance .box {
  flex: 1 1 calc(33.333% - 24px);
  box-sizing: border-box;
}
@media (max-width: 767px) {
  #maintenance .wrap.bs-row { display: block; }
  #maintenance .box { width: 100%; margin-bottom: 30px; }
}
#maintenance .box h2 { margin-top: 0; margin-bottom: 0.5em; font-size: 1.1em; }
#maintenance .box p  { margin-top: 0; margin-bottom: 0.8em; line-height: 1.8; }

/* 推奨 row/col（現行HTMLに合わせた正式版） */
#maintenance .cm-container {
  width: 100%;
  margin: 0 auto;
  padding-inline: 16px;
}
#maintenance .cm-row {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 24px;
}
#maintenance .cm-col {
  box-sizing: border-box;
  flex: 0 1 calc(33.333% - 24px);
  max-width: calc(33.333% - 24px);
  min-width: 240px;
  padding-bottom: 0;
}
@media (min-width: 768px) {
  #maintenance .cm-row { display: flex !important; }
  #maintenance .cm-col { flex: 0 1 calc(33.333% - 24px); max-width: calc(33.333% - 24px); }
}
@media (max-width: 767px) {
  #maintenance .cm-row { display: block !important; }
  #maintenance .cm-col { max-width: 100%; flex: none; }
}
#maintenance .cm-col h2 { margin: 0 0 .6em; font-size: 1.1em; }
#maintenance .cm-col p  { margin: 0 0 1em; line-height: 1.8; }

/* 商品説明ブロック内にCMSが差し込む <br> を無効化して余白バグを防ぐ */
.p-product-explain__body .cm-desc br { display: none; }

/* =========================
   説明エリアの余白リズム（<br>非表示でも窮屈に見えないように）
   影響範囲：.p-product-explain__body .cm-desc 内だけ
   ========================= */
.p-product-explain__body .cm-desc{
  /* 余白の基本単位（端末幅で増減） */
  --space-1: 12px;   /* 近接要素用（小） */
  --space-2: 18px;   /* 標準段落間 */
  --space-3: 28px;   /* セクション間（大） */
  --lead-lh: 1.8;
}
@media (min-width: 768px){
  .p-product-explain__body .cm-desc{
    --space-1: 14px;
    --space-2: 22px;
    --space-3: 34px;
  }
}

/* ベース：直後に来る要素に標準余白 */
.p-product-explain__body .cm-desc > * + * {
  margin-top: var(--space-2);
}

/* 見出しまわり */
.p-product-explain__body .cm-desc .cm-h2,
.p-product-explain__body .cm-desc .cm-h2-left{
  margin: var(--space-3) 0 var(--space-1);
}

/* タイトル＆リード */
.p-product-explain__body .cm-desc #product-title{ margin: 0 0 var(--space-1); }
.p-product-explain__body .cm-desc .pdp-desc__lead,
.p-product-explain__body .cm-desc .lead{
  margin: var(--space-1) 0 var(--space-2);
  line-height: var(--lead-lh);
}

/* 段落・図・表・リストの基本余白 */
.p-product-explain__body .cm-desc p,
.p-product-explain__body .cm-desc figure,
.p-product-explain__body .cm-desc table,
.p-product-explain__body .cm-desc ul,
.p-product-explain__body .cm-desc ol{
  margin: 0 0 var(--space-2);
}

/* セクションブロック間は大きめ */
.p-product-explain__body .cm-desc #fig,
.p-product-explain__body .cm-desc #color,
.p-product-explain__body .cm-desc #maintenance,
.p-product-explain__body .cm-desc #help,
.p-product-explain__body .cm-desc #voice,
.p-product-explain__body .cm-desc #example{
  margin: var(--space-3) 0;
}

/* リストの読みやすさ */
.p-product-explain__body .cm-desc ul,
.p-product-explain__body .cm-desc ol{ padding-left: 1.2em; }
.p-product-explain__body .cm-desc li + li{ margin-top: 0.4em; }

/* 仕様テーブルの行間 */
.p-product-explain__body .cm-desc .cm-spec{ margin: var(--space-2) 0 var(--space-2); }
.p-product-explain__body .cm-desc .cm-spec th,
.p-product-explain__body .cm-desc .cm-spec td{ padding: 10px 12px; }

/* カラーグリッドの詰まり緩和（指のタップ間隔を確保） */
.p-product-explain__body .cm-desc .cm-color-grid{ gap: 14px; }
@media (max-width: 767px){
  .p-product-explain__body .cm-desc .cm-color-grid{ gap: 10px; }
}

/* 画像のベースライン隙間を消す（上下ギザギザ対策） */
.p-product-explain__body .cm-desc img{ display: block; }

/* 既に <br> を非表示化している場合の救済（任意）
   → 特定の改行だけ戻したい時は <br class="keep-br"> を入れる */
.p-product-explain__body .pdp-desc br{ display: none; }
.p-product-explain__body .pdp-desc br.keep-br{ display: inline; }

/* 商品説明：風合い・光沢画像の中央寄せ */
.p-product-explain__body .cm-desc #fig {
  text-align: center;
}

.p-product-explain__body .cm-desc #fig .pdp-fig {
  margin: 0 auto var(--space-2);
  display: inline-block; /* 複数画像でも中央揃え */
}

.p-product-explain__body .cm-desc #fig img {
  display: block;
  margin: 0 auto;
  max-width: 100%;
  height: auto;
}

/* ========== Color Lightbox (Popup) ========== */
.color-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.75);
  display: none;            /* 初期は非表示 */
  align-items: center;       /* 画像を中央に */
  justify-content: center;   /* 画像を中央に */
  z-index: 9999;
  cursor: zoom-out;          /* クリックで閉じる雰囲気 */
}

.color-lightbox.is-open { display: flex; }

.color-lightbox__inner {
  max-width: min(96vw, 1100px);
  max-height: 92vh;
  text-align: center;
}

.color-lightbox__img {
  max-width: 100%;
  max-height: 86vh;
  width: auto;
  height: auto;
  display: block;
  margin: 0 auto;
  box-shadow: 0 10px 40px rgba(0,0,0,.35);
  background: #fff;
}

.color-lightbox__caption {
  margin-top: 10px;
  color: #fff;
  font-size: 14px;
  line-height: 1.6;
  text-shadow: 0 1px 2px rgba(0,0,0,.5);
  word-break: break-word;
}

/* オーバーレイ表示中は背面スクロールを止める */
html.color-lightbox-open, body.color-lightbox-open {
  overflow: hidden;
}

/* 画像グリッド側：クリックしやすいよう枠をほんの少し強調（任意） */
.cm-color-grid a {
  border: 1px solid #e6e6e6;
  transition: transform .08s ease, border-color .2s ease;
}
.cm-color-grid a:active { transform: scale(.98); }
.cm-color-grid a:hover  { border-color: #000; }

/* ===== Lightbox: Prev/Next Buttons (beside image) ===== */

/* 全体構造は維持。ナビは画像横の中間高さに浮かせる */
.color-lightbox__nav {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.color-lightbox__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: auto;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(255,255,255,0.92);
  box-shadow: 0 6px 14px rgba(0,0,0,0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  transition: transform 0.15s ease, background-color 0.2s ease, opacity 0.2s ease;
  user-select: none;
  z-index: 20;
}

.color-lightbox__btn:hover {
  transform: translateY(-50%) scale(1.07);
  background: rgba(255,255,255,0.98);
}
.color-lightbox__btn:active {
  transform: translateY(-50%) scale(0.95);
}
.color-lightbox__btn svg {
  width: 24px;
  height: 24px;
  stroke: #000;
  stroke-width: 2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* ← → ボタンを画像の横に配置（画像の外側5&#12316;6%あたり） */
.color-lightbox__btn--prev { left: calc(50% - 480px); }
.color-lightbox__btn--next { right: calc(50% - 480px); }

/* 各商品の画像が600&#12316;900px幅くらい想定なので、±480pxがちょうど脇にくる */
@media (max-width: 1200px) {
  .color-lightbox__btn--prev { left: calc(50% - 42vw); }
  .color-lightbox__btn--next { right: calc(50% - 42vw); }
}

@media (max-width: 768px) {
  /* モバイルでは内側寄せにして指が届くように */
  .color-lightbox__btn {
    width: 44px;
    height: 44px;
    background: rgba(255,255,255,0.85);
  }
  .color-lightbox__btn--prev { left: 4vw; }
  .color-lightbox__btn--next { right: 4vw; }
}

/* お客様の作品写真：srcが空なら非表示 */
#voice img[src=""] {
  display: none;
}

/* お客様の声：全体が「作品募集中」の場合は非表示にしたい場合 */
#voice .cm-card:has(img[src=""]) + .cm-card h4 strong {
  display: none;
}

