/* =========================
   料金プラン：カードレイアウト（要素削減版）
   ========================= */
.rate-cards-section {
  background: #fff;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

/* =========================
   Scene Cards Layout（4カラム版のみ運用）
   ========================= */
.scene-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(260px, 1fr)); /* 4カラム固定 */
  gap: 16px;               /* 余白は控えめに調整 */
  padding: 0 12px;         /* 両端の余白を軽減 */
  align-items: start;
}

/* 画面幅1100px以下 → 2カラム */
@media (max-width: 1100px) {
  .scene-cards {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 16px;
  }
}

/* 画面幅640px以下 → 1カラム */
@media (max-width: 640px) {
  .scene-cards {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 0 8px;
  }
}

/* カード本体 */
.rate-card {
  position: relative;
  background: #fff;
  border-radius: 10px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.rate-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
}

/* 画像（16:9で中身は「contain」） */
.rate-card .card-media {
  aspect-ratio: 16/9;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  background: #fafafa;
}
.rate-card .card-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* タイトル：下の価格枠と左端を一致させる */
:root { --gutter-x: .9rem; } /* 価格ボックスの左右paddingと同値 */
.rate-card .card-title {
  margin: .8rem 0 0;
  padding: 0 var(--gutter-x);
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 500;
  display: -webkit-box;
  -webkit-line-clamp: 2;      /* 2行で省略 */
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 価格ボックス（薄いグレー枠を2段） */
.rate-card .card-prices {
  margin-top: .75rem;
  padding: 0 var(--gutter-x);
}
.rate-card .price-box {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: .75rem var(--gutter-x);
  background: #fff;
}
.rate-card .price-box + .price-box { margin-top: .6rem; }

.rate-card .price-label {
  font-size: .85rem;
  color: #333;
  margin-bottom: .25rem;
}
.rate-card .price-main {
  font-size: 1.35rem;
  font-weight: 800;
}
.rate-card .price-main strong { font-size: 1.6rem; font-weight: 900; }
.rate-card .price-main small { font-size: .9rem; }

.rate-card .price-sub {
  font-size: 1.05rem;
  font-weight: 700;
}
.rate-card .price-sub strong { font-size: 1.2rem; font-weight: 900; }
.rate-card .price-sub small { font-size: .9rem; }



/* =========================
   Scene Cards Layout（カード1に適用）
   ========================= */
.scene-section {
  background: #fff;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

/* 旧3カラム定義はコメントアウト（別運用停止）
.scene-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
  align-items: start;
}
@media (max-width: 1100px) {
  .scene-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .scene-cards { grid-template-columns: 1fr; gap: 1.25rem; }
}
*/

/* カード本体（新命名） */
.scene-card {
  position: relative;
  background: #fff;
  border-radius: 10px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.scene-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0,0,0,.08);
}

/* 画像 */
.scene-card-media {
  aspect-ratio: 16/9;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  background: #fafafa;
}
.scene-card-media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* タイトル（下の枠と左端合わせ） */
.scene-card-title {
  margin: .8rem 0 0;
  padding: 0 .9rem;
  font-size: 1rem;
  line-height: 1.5;
  font-weight: 500;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 共通スタイル */
.scene-card-title {
  position: relative;
  display: inline-block;  /* テキスト幅にだけ背景を当てる */
  font-size: 1rem;
  font-weight: bold;
  margin-bottom: 10px;
  padding: 0 2px;
}

/* 色ごとの蛍光ペン風 */
.scene-card-title.highlight-y {
  background: linear-gradient(transparent 60%, rgba(255, 255, 0, 0.6) 60%);
}

.scene-card-title.highlight-g {
  background: linear-gradient(transparent 60%, rgba(0, 255, 128, 0.4) 60%);
}

.scene-card-title.highlight-p {
  background: linear-gradient(transparent 60%, rgba(255, 105, 180, 0.4) 60%);
}

.scene-card-title.highlight-b {
  background: linear-gradient(transparent 60%, rgba(135, 206, 250, 0.5) 60%);
}

/* スペック縦並び（価格ボックス相当） */
.scene-specs { margin-top: .75rem; padding: 0 .9rem; }
.spec-box {
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: .75rem .9rem;
  background: #fff;
}
.spec-box + .spec-box { margin-top: .6rem; }

.spec-label {
  font-size: .85rem;
  color: #333;
  margin-bottom: .25rem;
}
.spec-value {
  font-size: 0.9rem;
  font-weight: 500;
}


/* =========================
   Scene CTA buttons (adjusted slim style)
   ========================= */
.scene-cta {
  margin: 20px 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding: 0 12px;
}

/* 矢印をテキスト右側に自然に配置 */
.scene-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em; /* テキストと矢印の間隔 */
  height: 60px;
  padding: 0 20px;
  border-radius: 999px;
  background: #ffd400;
  color: #111;
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
  box-shadow: 0 1px 0 #e5c200, 0 3px 8px rgba(0,0,0,.08);
  border: 1px solid #ffe16a;
  line-height: 1;
  transition: all .25s ease;  /* hover時の反転に滑らかさを追加 */
}

.scene-cta-btn .arrow {
  font-weight: 900;
  display: inline-block; /* inline-flexから変更して揃えやすく */
}

/* hoverで背景と文字色を反転 */
.scene-cta-btn:hover {
  background: #111;   /* 背景を黒 */
  color: #ffd400;     /* 文字を黄 */
  border-color: #111; /* 枠線も黒で統一 */
  box-shadow: 0 1px 0 #000, 0 5px 10px rgba(0,0,0,.12);
}


/* CTA内の矢印（グローバル .arrow と競合しない専用クラス） */
.scene-cta-btn .cta-arrow{
  display: inline-flex;
  align-items: center;
  margin-left: .5em;
  font-weight: 900;
  line-height: 1;
}

/* スマホ時は縦積み */
@media (max-width: 640px) {
  .scene-cta {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 0 8px;
  }
}

