/**
 * 4K対応新型STB交換ページ用スタイル
 * CSS命名規則: l-4kstb_*
 * カラー定義:
 *   メインブルー: #003F90（濃紺）
 *   サブブルー:   #0068B7（青）
 *   アクセント:   #00A0E9（水色）
 *   テキスト黒:   #333
 *   背景グレー:   #f5f5f5
 *   白:          #fff
 *   警告オレンジ: #e65100
 */


/* ============================================
 * 1. ヒーローセクション
 * ============================================ */
.l-4kstb_Hero {
  background: #fff;
  padding: 3rem 1.5rem 2rem;
  text-align: center;
}

.l-4kstb_Hero__Inner {
  max-width: 1000px;
  margin: 0 auto;
}

.l-4kstb_Hero__Image {
  width: 100%;
  max-width: 720px;
  height: auto;
  display: block;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Hero {
    padding: 4rem 2rem 3rem;
  }
  .l-4kstb_Hero__Image {
    max-width: 100%;
  }
}


/* ============================================
 * 2. 交換のメリットセクション
 * ============================================ */
.l-4kstb_Merit {
  background: #fff;
  padding: 3rem 1.5rem 4rem;
}

.l-4kstb_Merit__Inner {
  max-width: 800px;
  margin: 0 auto;
}

/* セクション見出し */
.l-4kstb_Merit__Title {
  font-size: 2rem;
  font-weight: 900;
  color: #333;
  border-left: 5px solid #003F90;
  padding-left: 1.2rem;
  margin-bottom: 2.4rem;
  line-height: 1.4;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Merit {
    padding: 4rem 2rem 5rem;
  }
  .l-4kstb_Merit__Title {
    font-size: 2.4rem;
    border-left-width: 6px;
    padding-left: 1.6rem;
  }
}

/* 各ポイントカード */
.l-4kstb_Merit__Point {
  background: #f5f5f5;
  border-radius: 1.2rem;
  padding: 2rem 1.8rem;
  margin-bottom: 1.6rem;
}

.l-4kstb_Merit__Point:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Merit__Point {
    padding: 2.4rem 3rem;
    margin-bottom: 2rem;
  }
}

/* Pointラベル */
.l-4kstb_Merit__PointLabel {
  display: inline-block;
  background: #003F90;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  padding: 0.3em 1.4em;
  border-radius: 4px;
  margin-bottom: 1rem;
  letter-spacing: 0.08em;
}

/* ポイント見出し */
.l-4kstb_Merit__PointHeading {
  font-size: 1.7rem;
  font-weight: 900;
  color: #003F90;
  line-height: 1.5;
  margin-bottom: 0.8rem;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Merit__PointHeading {
    font-size: 2rem;
  }
}

/* 説明文 */
.l-4kstb_Merit__PointText {
  font-size: 1.4rem;
  line-height: 1.7;
  color: #333;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Merit__PointText {
    font-size: 1.5rem;
  }
}

/* サブテキスト */
.l-4kstb_Merit__PointSubtext {
  font-size: 1.4rem;
  font-weight: 700;
  color: #0068B7;
  margin-top: 1rem;
  margin-bottom: 1rem;
}

/* チャンネルロゴ画像 */
.l-4kstb_Merit__PointImage {
  margin-top: 1.2rem;
}

.l-4kstb_Merit__PointImage img {
  width: 100%;
  height: auto;
  display: block;
}

/* チャンネルカードリスト */
.l-4kstb_Merit__ChannelList {
  list-style: none;
  padding: 0;
  margin-top: 1.6rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.l-4kstb_Merit__ChannelList li {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 8px;
  border: 1px solid #c5ddf5;
  overflow: hidden;
  box-shadow: 0 3px 10px rgba(0, 104, 183, 0.10);
}

.l-4kstb_Merit__ChannelNum {
  display: block;
  background: linear-gradient(135deg, #0068B7 0%, #004fa0 100%);
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  padding: 0.5rem 1rem;
  letter-spacing: 0.04em;
  font-family: 'Oswald', 'Noto Sans JP', sans-serif;
}

.l-4kstb_Merit__ChannelName {
  display: block;
  font-size: 1.3rem;
  font-weight: 700;
  color: #1a1a2e;
  padding: 0.7rem 1rem;
  line-height: 1.4;
  flex: 1;
}

@media (min-width: 768px) {
  .l-4kstb_Merit__ChannelList {
    grid-template-columns: repeat(5, 1fr);
    gap: 1.2rem;
  }
}


/* ============================================
 * 3. お申し込みの流れセクション
 * ============================================ */
.l-4kstb_Flow {
  background: #f5f5f5;
  padding: 3rem 1.5rem 4rem;
}

.l-4kstb_Flow__Inner {
  max-width: 800px;
  margin: 0 auto;
}

.l-4kstb_Flow__Title {
  font-size: 2rem;
  font-weight: 900;
  color: #333;
  border-left: 5px solid #003F90;
  padding-left: 1.2rem;
  margin-bottom: 2.4rem;
  line-height: 1.4;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Flow {
    padding: 4rem 2rem 5rem;
  }
  .l-4kstb_Flow__Title {
    font-size: 2.4rem;
    border-left-width: 6px;
    padding-left: 1.6rem;
  }
}

/* ステップリスト */
.l-4kstb_Flow__List {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* 各ステップ */
.l-4kstb_Flow__Item {
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 0.8rem;
  padding: 2rem 1.8rem;
  margin-bottom: 1.2rem;
  display: flex;
  gap: 1.6rem;
  align-items: flex-start;
}

.l-4kstb_Flow__Item:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Flow__Item {
    padding: 2.4rem 3rem;
    gap: 2.4rem;
  }
}

/* ステップ番号＋アイコン */
.l-4kstb_Flow__ItemHead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
  flex-shrink: 0;
}

.l-4kstb_Flow__Number {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: 'Oswald', sans-serif;
  font-size: 2.4rem;
  font-weight: 700;
  color: #003F90;
  line-height: 1;
}

.l-4kstb_Flow__Number small {
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.l-4kstb_Flow__Icon {
  width: 4.4rem;
  height: 4.4rem;
  background: #003F90;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Flow__Number {
    font-size: 2.8rem;
  }
  .l-4kstb_Flow__Number small {
    font-size: 1.1rem;
  }
  .l-4kstb_Flow__Icon {
    width: 5rem;
    height: 5rem;
    font-size: 2rem;
  }
}

/* ステップ内容 */
.l-4kstb_Flow__ItemBody {
  flex: 1;
}

.l-4kstb_Flow__StepTitle {
  font-size: 1.6rem;
  font-weight: 900;
  color: #333;
  margin-bottom: 0.6rem;
  line-height: 1.4;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Flow__StepTitle {
    font-size: 1.8rem;
  }
}

.l-4kstb_Flow__Text {
  font-size: 1.3rem;
  line-height: 1.7;
  color: #555;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Flow__Text {
    font-size: 1.4rem;
  }
}

/* CTAボタン */
.l-4kstb_Flow__Buttons {
  display: flex;
  gap: 1rem;
  margin-top: 1.2rem;
  flex-wrap: wrap;
}

.l-4kstb_Flow__Button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  padding: 0.7em 1.6em;
  border-radius: 999px;
  font-size: 1.4rem;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.2s;
}

.l-4kstb_Flow__Button:hover {
  opacity: 0.85;
}

.l-4kstb_Flow__Button.-tel {
  background: #00A0E9;
  color: #fff;
  font-family: 'Oswald', 'Noto Sans JP', sans-serif;
}

.l-4kstb_Flow__Button.-form {
  background: #fff;
  color: #003F90;
  border: 2px solid #003F90;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Flow__Button {
    font-size: 1.5rem;
    padding: 0.7em 2em;
  }
}


/* ============================================
 * 4. 新型STBの仕様セクション
 * ============================================ */
.l-4kstb_Spec {
  background: #fff;
  padding: 3rem 1.5rem 4rem;
}

.l-4kstb_Spec__Inner {
  max-width: 800px;
  margin: 0 auto;
}

.l-4kstb_Spec__Title {
  font-size: 2rem;
  font-weight: 900;
  color: #333;
  border-left: 5px solid #003F90;
  padding-left: 1.2rem;
  margin-bottom: 2.4rem;
  line-height: 1.4;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Spec {
    padding: 4rem 2rem 5rem;
  }
  .l-4kstb_Spec__Title {
    font-size: 2.4rem;
    border-left-width: 6px;
    padding-left: 1.6rem;
  }
}

/* 仕様画像 */
.l-4kstb_Spec__Image {
  margin-bottom: 2.4rem;
  text-align: center;
}

.l-4kstb_Spec__Image img {
  width: 100%;
  max-width: 600px;
  height: auto;
  display: block;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Spec__Image img {
    max-width: 100%;
  }
}

/* 仕様テーブル */
.l-4kstb_Spec__TableWrap {
  overflow-x: auto;
}

.l-4kstb_Spec__Table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.3rem;
  line-height: 1.6;
}

.l-4kstb_Spec__Table th,
.l-4kstb_Spec__Table td {
  padding: 1.2rem 1.4rem;
  border: 1px solid #ddd;
  text-align: left;
  vertical-align: top;
}

.l-4kstb_Spec__Table th {
  background: #003F90;
  color: #fff;
  font-weight: 700;
  white-space: nowrap;
  width: 30%;
}

.l-4kstb_Spec__Table td {
  background: #fff;
  color: #333;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Spec__Table {
    font-size: 1.4rem;
  }
  .l-4kstb_Spec__Table th {
    width: 25%;
  }
}

@media screen and (max-width: 767px) {
  .l-4kstb_Spec__Table th,
  .l-4kstb_Spec__Table td {
    display: block;
    width: 100%;
  }
  .l-4kstb_Spec__Table th {
    border-bottom: none;
  }
  .l-4kstb_Spec__Table td {
    border-top: none;
  }
}


/* ============================================
 * 5. 注意事項セクション
 * ============================================ */
.l-4kstb_Notice {
  background: #fff;
  padding: 3rem 1.5rem 4rem;
}

.l-4kstb_Notice__Inner {
  max-width: 800px;
  margin: 0 auto;
}

/* ヘッダー */
.l-4kstb_Notice__Header {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  align-items: center;
  margin-bottom: 2rem;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Notice {
    padding: 4rem 2rem 5rem;
  }
  .l-4kstb_Notice__Header {
    flex-direction: row;
    justify-content: center;
    gap: 2rem;
  }
}

.l-4kstb_Notice__HeaderLeft {
  display: flex;
  align-items: center;
  gap: 0.8rem;
}

.l-4kstb_Notice__Icon {
  font-size: 3rem;
  color: #e65100;
}

.l-4kstb_Notice__Heading {
  font-size: 2rem;
  font-weight: 900;
  color: #333;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Notice__Icon {
    font-size: 3.6rem;
  }
  .l-4kstb_Notice__Heading {
    font-size: 2.4rem;
  }
}

/* バッジ */
.l-4kstb_Notice__Badges {
  display: flex;
  gap: 0.8rem;
}

.l-4kstb_Notice__Badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  background: #003F90;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  padding: 0.5em 1.2em;
  border-radius: 999px;
}

.l-4kstb_Notice__Badge strong {
  font-size: 1.4rem;
}

/* 注意リスト */
.l-4kstb_Notice__List {
  list-style: none;
  padding: 0;
  margin: 0;
}

.l-4kstb_Notice__List li {
  font-size: 1.3rem;
  line-height: 1.7;
  color: #555;
  padding: 0.6em 0;
  border-bottom: 1px solid #eee;
  padding-left: 0;
}

.l-4kstb_Notice__List li:last-child {
  border-bottom: none;
}

@media screen and (min-width: 768px) {
  .l-4kstb_Notice__List li {
    font-size: 1.4rem;
  }
}


/* ============================================
 * 6. お申し込み・お問い合わせCTAセクション
 * ============================================ */
.l-4kstb_CTA {
  background: #003F90;
  padding: 4rem 2rem;
  text-align: center;
}

.l-4kstb_CTA__Inner {
  max-width: 760px;
  margin: 0 auto;
}

.l-4kstb_CTA__Heading {
  font-size: 2.2rem;
  font-weight: 900;
  color: #fff;
  margin-bottom: 2rem;
  letter-spacing: 0.04em;
}

@media screen and (min-width: 768px) {
  .l-4kstb_CTA {
    padding: 4.4rem 2rem 4.8rem;
  }
  .l-4kstb_CTA__Heading {
    font-size: 2.8rem;
  }
}

/* ボタン群 */
.l-4kstb_CTA__Buttons {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
}

@media screen and (min-width: 768px) {
  .l-4kstb_CTA__Buttons {
    flex-direction: row;
    justify-content: center;
    gap: 1.6rem;
  }
}

.l-4kstb_CTA__Button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  min-width: 24rem;
  min-height: 5rem;
  border-radius: 999px;
  font-size: 1.8rem;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.2s;
  letter-spacing: 0.04em;
}

.l-4kstb_CTA__Button:hover {
  opacity: 0.85;
}

.l-4kstb_CTA__Button.-tel {
  background: #00A0E9;
  color: #fff;
  font-family: 'Oswald', 'Noto Sans JP', sans-serif;
  border: 2px solid #00A0E9;
}

.l-4kstb_CTA__Button.-form {
  background: transparent;
  color: #fff;
  border: 2px solid #fff;
}

@media screen and (min-width: 768px) {
  .l-4kstb_CTA__Button {
    font-size: 2rem;
    min-width: 26rem;
    min-height: 5.4rem;
  }
}


/* ============================================
 * 7. ユーティリティ
 * ============================================ */
.u-sp-only {
  display: inline;
}

@media screen and (min-width: 768px) {
  .u-sp-only {
    display: none;
  }
}
