.campaign-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;            /* モバイルで折り返し */
  gap: .75rem;                /* スペース（Bootstrap4ならmarginで代替可） */
  border: 3px solid #ff8800;  /* 太めの枠で強調 */
}

.campaign-banner__icon { font-size: 2rem; line-height: 1; }
.campaign-banner__text { font-size: 1.6rem; font-weight: 700; letter-spacing: .02em; }

/* ボタンを軽く目立たせるアニメーション（動きが苦手な人には無効化） */
.pulse { animation: pulse 1.8s ease-in-out infinite; }
@keyframes pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.04); } }
@media (prefers-reduced-motion: reduce) { .pulse { animation: none; } }

.campaign-badge {
  display: inline-block;
  background: #dc3545;
  color: #fff;
  font-weight: 700;
  font-size: .95rem;
  padding: .25rem .6rem;
  border-radius: 999px;
  margin-right: .5rem;
  vertical-align: middle;
}

.campaign-banner .campaign-banner__text {
  flex: 0 0 100%;     /* ここで改行発生 */
  margin-top: .25rem;
  text-align: center;
}

/* 3行目: ボタンを1行下に配置（必要なら余白） */
.campaign-banner .btn {
  flex: 0 0 auto;
  margin-top: .5rem;
}

/* 念のため：バッジは行頭でアイコンと並ぶ */
.campaign-banner .campaign-badge {
  display: inline-block;
  margin-right: .5rem;
}

.campaign-banner .campaign-note--top {
  flex: 0 0 100%;
  margin: .3rem 0 .2rem;
  text-align: center;
}
.campaign-banner .campaign-note--top {
  flex: 0 0 100%;
  margin: .3rem 0 .2rem;
  text-align: center;
  font-size: .9rem;      /* smallよりは大きい */
  line-height: 1.4;
  color: #6c757d;
  font-weight: 600;
}

/* サブページ用：本文サイズをやや控えめに */
/* .campaign-banner--sub .campaign-banner__text { font-size: 1.35rem; font-weight: 700; }
@media (max-width: 576px) {
  .campaign-banner--sub .campaign-banner__text { font-size: 1.2rem; }
} */

/* サブページ用：注意文を強調 */
.campaign-banner--sub .campaign-note {
  display: inline-block;
  background: #fff3cd;              /* 警告色の薄い背景 */
  border-left: 6px solid #dc3545;   /* 赤の強調ライン */
  padding: .4rem .6rem;
  border-radius: 4px;
  font-weight: 700;
  line-height: 1.5;
}
/* サブページのキャンペーンボタンを横一杯にしない＋中央寄せ */
#price2_wrapper .campaign-banner--sub .btn {
  display: inline-block;
  width: auto;
  white-space: nowrap;
  text-align: center;
  /* お好みで余白を微調整 */
  padding-left: 1rem;
  padding-right: 1rem;
}

#price2_wrapper .campaign-card .card-body > a.btn.btn-danger {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;      /* 既存の width:100% / 98% を打ち消す */
  white-space: nowrap;
  padding: .6rem 1.2rem;
  margin-top: .5rem;
  text-align: center;
}

/* サブページ：キャンペーン見出しと注意文を少し大きく */
#price2_wrapper .campaign-card .card-body > p.font-weight-bold {
  font-size: 1.5rem;   /* 例: 1.35rem → 1.5rem */
  line-height: 1.4;
}
#price2_wrapper .campaign-card .card-body > p.small {
  font-size: 1rem;     /* Bootstrapの.small(80%)を上書き */
}

/* キャンペーンカード内の注意2行を共通左揃えで中央配置 */
#price2_wrapper .campaign-card .disclaimer-line {
  display: block;
  text-align: left;
  max-width: 600px;
  line-height: 1.45;
  margin: 0 auto .35rem;  /* 中央に配置しつつ下に余白 */
}
#price2_wrapper .campaign-card .disclaimer-line:last-of-type {
  margin-bottom: .5rem;
}
.campaign-banner--sub .campaign-note .badge { vertical-align: baseline; }
#price2_wrapper .campaign-card .card-body { padding: 1rem 1.25rem; }
#price2_wrapper .campaign-card .small { color: #7a6b48; }

/* サブページ：キャンペーン注意行統一 */
#price2_wrapper .campaign-card .campaign-disclaimer {
  font-size: .9rem;
  line-height: 1.45;
  color: #5f5a50;
  margin: 0 auto .4rem;
  font-weight: 600;
}
#price2_wrapper .campaign-card .campaign-disclaimer--exclude {
  color: #7a3e3e;
}
/* 狭い幅での余白調整 */

@media (max-width: 576px) {
  #price2_wrapper .campaign-card .card-body > a.btn.btn-danger {
    white-space: normal;  /* 将来文言が伸びても折り返せる */
    max-width: 100%;
  }
  .campaign-banner--sub .campaign-note { display: block; font-size: .95rem; }
  #price2_wrapper .campaign-card .card-body > p.font-weight-bold { font-size: 1.3rem; }
  #price2_wrapper .campaign-card .card-body > p.small { font-size: .95rem; }

  .campaign-badge { font-size: .85rem; }
  #price2_wrapper .campaign-card .campaign-disclaimer {
  font-size: .9rem;
}
}


