.lp2-cpn { background:#ffffff; padding:50px 16px; }
.lp2-cpn__inner { max-width:1000px; margin:0 auto; }
.lp2-cpn__title { position:relative; text-align:center; font-size:3.8rem; font-weight:700; color:#00a3e0; margin-bottom:40px; padding-bottom:18px; }
.lp2-cpn__title::after { content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%); width:88px; height:5px; border-radius:3px; background:#ffd23f; }
.lp2-cpn__icon { text-align:center; margin-bottom:6px; line-height:0; }
.lp2-cpn__icon-svg { width:78px; height:auto; display:inline-block; }
.lp2-cpn__codes { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:36px; }
.lp2-cpn__codebox { display:flex; align-items:center; gap:10px; background:#fff; border:2px dashed #00a3e0; border-radius:12px; padding:14px 18px; }
.lp2-cpn__codelabel { font-size:1.5rem; font-weight:700; color:#00a3e0; }
.lp2-cpn__code { font-size:2.2rem; font-weight:700; letter-spacing:.06em; font-family:"Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif; }
.lp2-coupon__copy { border:none; background:#00a3e0; color:#fff; font-size:1.4rem; font-weight:700; border-radius:6px; padding:6px 14px; cursor:pointer; transition:background .2s; }
.lp2-coupon__copy.is-copied { background:#4caf50; }
.lp2-cpn__steps { display:flex; flex-direction:column; gap:20px; margin-bottom:36px; }
.lp2-cpn__step { background:#f4fbff; border-radius:16px; padding:24px; }
.lp2-cpn__num { display:inline-block; background:#00a3e0; color:#fff; font-size:1.5rem; font-weight:700; padding:4px 14px; border-radius:999px; font-family:"Helvetica Neue",Arial,sans-serif; letter-spacing:.04em; }
.lp2-cpn__name { font-size:2.2rem; font-weight:700; color:#333; margin:10px 0 8px; }
.lp2-cpn__text { font-size:1.6rem; line-height:1.7; color:#555; margin-bottom:14px; }
.lp2-cpn__img { width:100%; height:auto; display:block; border:1px solid #e2ecf2; border-radius:8px; }
.lp2-cpn__imgs { display:flex; gap:12px; }
.lp2-cpn__imgs .lp2-cpn__img { flex:1; min-width:0; }
.lp2-cpn__notice { background:#fff; border-radius:16px; padding:24px; }
.lp2-cpn__notice-title { font-size:1.9rem; font-weight:700; color:#333; margin-bottom:12px; }
.lp2-cpn__notice ul { margin:0; padding-left:1.3em; }
.lp2-cpn__notice li { font-size:1.4rem; line-height:1.7; color:#555; list-style:disc; margin-bottom:6px; }
.lp2-cpn-label { text-align:center; color:#ff6607; font-size:1.8rem; font-weight:700; line-height:1.4; margin:0 0 8px; }
.lp2-cpn-label__sup { font-size:.6em; vertical-align:super; }
@media (max-width:767px){
  .lp2-cpn__title{ font-size:2.6rem; }
  .lp2-cpn__codes{ flex-direction:column; align-items:stretch; }
  .lp2-cpn__name{ font-size:1.9rem; }
}

.form__send { margin: 0 0 40px; }
.course__list .unit--paper { margin: 15px 0; }
.course__list .form__button { margin-block: 0 10px; }

/* PC：定期/1回どちらの申込ボタンも同じ高さに揃える（固定160pxスペーサー廃止→flex下揃え） */
@media (min-width: 768px) {
  .course__list .item__inner { display: flex; flex-direction: column; }
  .course__list .item__body { display: flex; flex-direction: column; flex: 1 1 auto; }
  .course__list .form { display: flex; flex-direction: column; flex: 1 1 auto; }
  /* 申込ボタン(＋クーポンラベル)をカード下端へ。※注記はボタンより上に置き、両カードでボタン下端を一致させる */
  .course__list .item__foot { order: 1; }
  .course__list .form__send { order: 2; margin-top: auto; margin-bottom: 0; }
}

/* l-cts__inner: max-width(1246px)をやめ、左右paddingで余白調整（PC・イントロのみ。top/bottomは各modifier維持のため左右だけ指定） */
@media (min-width: 768px) {
  .l-cts__inner { max-width: none; padding-left: 5%; padding-right: 5%; }
}

/* リボン・お得バッジ：親(u-ancher)をrelativeにしてカード基準で配置（PC） */
@media (min-width: 768px) {
  .u-ancher { position: relative; }
  .item__ribbon { position: absolute; top: -1%; left: 50%; transform: translate(-50%, -50%); width: 380px; }
  .item__otoku { position: absolute; top: 18%; left: -5%; transform: translate(-50%, -50%); width: 155px; }
}
