/* ==================================================
   キービジュアル（スマ口座キャンペーン）
================================================== */
/* 1. 全体枠 ＆ エンドレス背景（雲 ＋ 建物 ＋ 空色） */
.main-visual-smakoza {
  max-width: 100% !important; /* 既存の最大幅制限(1440px)を解除して幅いっぱいに */
  padding: 40px 0 50px !important; /* 既存の左右の余白を消し、上下の余白を再指定 */
  position: relative;
  width: 100%;
  min-height: 660px;
  background-color: #cbe7f8; /* 背景の空色 */
  background-image:
    url("../img/img_cloud.png"), /* 上層：雲 */ url("../img/img_building.png"); /* 下層：建物（街並み） */
  background-repeat: repeat-x, repeat-x;
  background-position: center 110px, center bottom;
  background-size: auto, auto;
  box-sizing: border-box;
  /* ▼追加：背景を流すアニメーション（150秒かけて一定の速度で無限ループ） */
  animation: bg-scroll 150s linear infinite;
  overflow: hidden; /* 画面外から飛んでくる飛行機による横スクロールバー発生を防止 */
}
/* ▼追加：背景スクロール用のアニメーション定義 */
@keyframes bg-scroll {
  0% {
    background-position: 0 120px, 0 bottom;
  }
  100% {
    /* 雲は右へ2000px、建物は右へ3000px移動（数値を大きくすると速くなります） */
    /* ※カクつきなく綺麗にループさせるには、ここの数値を「画像の実際の横幅」の倍数に設定してください */
    background-position: 1600px 120px, 3774px bottom;
  }
}
/* 2. インナーコンテンツ（中央揃え・基準枠） */
.main-visual-smakoza__inner {
  position: relative;
  z-index: 2;
  width: 1008px; /* デザイン全体のコンテンツ幅に合わせる */
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* 3. 右上：限定バッジ */
.main-visual-smakoza__badge {
  position: absolute;
  top: 0px;
  right: 0;
  background-color: #7dcf85;
  color: #222;
  font-weight: bold;
  font-size: 18px;
  padding: 8px 24px;
  border-radius: 20px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  z-index: 2;
}
/* 4. メインタイトル画像 */
.main-visual-smakoza__title {
  margin-top: 15px;
  margin-bottom: 25px;
  text-align: center;
}
.main-visual-smakoza__title img {
  height: auto;
}
/* 5. 下部コンテンツ（期間 ＋ スマとん）の親要素 */
.main-visual-smakoza__content {
  position: relative;
  display: inline-block;
}
/* 6. 対象期間画像 */
.main-visual-smakoza__period img {
  width: 100%; /* 期間枠の幅調整 */
  height: auto;
  display: block;
}
/* 7. キャラクター（スマとん）の配置 */
.main-visual-smakoza__chara {
  position: absolute;
  right: -260px; /* 期間枠の右側に重ねる調整 */
  bottom: 35px;
  z-index: 2;
  animation: fuwafuwa 4s ease-in-out infinite;
}
/* ふわふわ浮くアニメーション定義 */
@keyframes fuwafuwa {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-25px); /* 15px 上に移動 */
  }
  100% {
    transform: translateY(0);
  }
}
.main-visual-smakoza__chara img {
  width: 100%; /* スマとんのサイズ調整 */
  height: auto;
}
/* 飛行機の配置 */
.main-visual-smakoza__plane {
  position: absolute;
  left: 50%; /* 初期位置：画面中央 */
  bottom: 132px; /* スマとんと同じ高さ付近 */
  z-index: 1; /* インナーコンテンツ(z-index: 2)の奥 */
  pointer-events: none;
  /* 初回(8秒) ➔ 8.5秒後に2回目以降(18秒周期)の無限ループを開始 */
  animation:
    fly-first 8s linear forwards, fly-loop 18s linear 8.5s infinite;
}
.main-visual-smakoza__plane img {
  width: auto !important;
  height: auto !important;
  display: block;
}
/* --- アニメーション1：初回（画面中央 ➔ 画面左外側へ） --- */
@keyframes fly-first {
  0% {
    transform: translateX(-50%) translateY(0);
  }
  100% {
    /* 画面左端の外側までそのまま通り抜ける */
    transform: translateX(calc(-50vw - 200px)) translateY(-10px);
  }
}
/* --- アニメーション2：2回目以降（画面右外側 ➔ 画面左外側へ横断） --- */
@keyframes fly-loop {
  0% {
    /* 画面右端の外側からスタート */
    transform: translateX(calc(50vw + 200px)) translateY(0);
  }
  100% {
    /* 画面左端の外側までそのまま通り抜ける */
    transform: translateX(calc(-50vw - 200px)) translateY(-10px);
  }
}



/* ==================================================
   レスポンシブ調整 (スマートフォン対応)
================================================== */
@media screen and (max-width: 767px) {
  .main-visual-smakoza {
    min-height: auto;
    padding: 30px 15px 52px !important;
    /* ★ スマホ用の縦長雲画像（1枚）＋ 建物の構成に戻します */
    background-color: #cbe7f8;
    background-image:
      url("../img/img_cloud_sp.png"), /* スマホ専用の縦長雲画像 */ url("../img/img_building.png"); /* 建物 */
    background-repeat: repeat-x, repeat-x; /* 横方向にだけリピート */
    /* 位置：雲は上端固定、建物は下端 */
    background-position: 0 0, center bottom;
    /* サイズ：雲は画像の原寸（または auto 100%）、建物は高さ50px */
    background-size: auto 100%, auto 50px;
    /* スマホ用背景スクロールアニメーション */
    animation: bg-scroll-sp 120s linear infinite;
  }
  /* ★ 横方向だけにスクロールさせるアニメーション */
  @keyframes bg-scroll-sp {
    0% {
      background-position: 0 0, 0 bottom;
    }
    100% {
      /* 雲と建物を横へスクロール（カクつく場合は1600pxを雲画像の横幅の倍数に調整してください） */
      background-position: 1600px 0, 3774px bottom;
    }
  }
  .main-visual-smakoza__inner {
    width: 100%;
  }
  .main-visual-smakoza__badge {
    position: static;
    font-size: 13px;
    padding: 4px 16px;
  }
  .main-visual-smakoza__title {
    margin-top: 16px;
    margin-bottom: 10px;
    text-align: center;
  }
  .main-visual-smakoza__title img {
    max-width: 100%;
  }
  .main-visual-smakoza__content {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .main-visual-smakoza__period img {
    width: 100%;
    max-width: 340px;
  }
  .main-visual-smakoza__chara {
    position: relative;
    right: auto;
    bottom: auto;
    margin-top: 24px;
    margin-left: 90px;
  }
  /* ふわふわ浮くアニメーション定義 */
  @keyframes fuwafuwa {
    0% {
      transform: translateY(0);
    }
    50% {
      transform: translateY(-15px); /* 15px 上に移動 */
    }
    100% {
      transform: translateY(0);
    }
  }
  .main-visual-smakoza__chara img {
    width: 140px;
  }
  .main-visual-smakoza__plane {
    left: 50%;
    bottom: 80px;
    animation:
      fly-first-sp 6s linear forwards, fly-loop-sp 14s linear 6.5s infinite;
  }
  .main-visual-smakoza__plane img {
    width: 80px !important;
  }
  @keyframes fly-first-sp {
    0% {
      transform: translateX(-50%) translateY(0);
    }
    100% {
      transform: translateX(calc(-50vw - 100px)) translateY(-5px);
    }
  }
  @keyframes fly-loop-sp {
    0% {
      transform: translateX(calc(50vw + 100px)) translateY(0);
    }
    100% {
      transform: translateX(calc(-50vw - 100px)) translateY(-5px);
    }
  }
}

/* 本文エリア：画面いっぱいの水色背景（アーチ上部） */
.section-bg-blue {
  width: 100%;
  position: relative;
  background-color: #def3ff; /* 下部の塗りつぶし色（キービジュアルの空色と同色） */
  background-image: url("../img/about_bg_pc.svg");
  background-repeat: no-repeat;
  background-position: center top; /* 画像を中央上端に配置 */
  background-size: 100% auto; /* 横幅いっぱいにフィットさせてアスペクト比を維持 */
  /* 上部のアーチ部分にテキストが被らないよう余白（padding-top）を調整 */
  padding-top: 100px;
  padding-bottom: 60px;
}

/* ==================================================
   特典の対象となる2つの取引（カードデザイン）
================================================== */

/* カード全体のコンテナ */
.c-transaction-wrap {
  margin: 0 auto;
}

/* 白枠カード */
.c-transaction-card {
  position: relative;
  background-color: #ffffff;
  border-radius: 10px;
  padding: 40px 40px;
  display: flex;
  align-items: center;
}

/* キャラクター（スマとん）配置 */
.c-transaction-card__chara {
  position: absolute;
  pointer-events: none;
}

.c-transaction-card__chara--left {
  top: -68px;
  left: 40px;
  width: auto;
}

.c-transaction-card__chara--right {
  top: -42px;
  right: 42px;
  width: auto;
}

.c-transaction-card__chara img {
  width: 100%;
  height: auto;
  display: block;
}

/* 左側：金額表示エリア */
.c-transaction-card__price {
  width: 280px;
  flex-shrink: 0;
  text-align: center;
  color: #2083bd;
  font-weight: 600;
}

/* 数字フォント指定用ユーティリティクラス */
.u-font-num {
  font-family: "Jost", Futura, sans-serif;
  font-weight: 600;
}

.c-transaction-card__num {
  font-size: 78px;
  line-height: 1;
  font-family: "Jost", Futura, sans-serif; /* ★変更 */
  letter-spacing: -0.02em;
}

.c-transaction-card__unit {
  font-size: 35px;
  margin-left: 2px;
}

/* 右側：詳細エリア */
.c-transaction-card__detail {
  flex: 1;
  padding-left: 36px;
}

/* カード見出し */
.c-transaction-card__ttl {
  font-size: 24px;
  font-weight: bold;
  display: flex;
  align-items: center;
  gap: 10px;
  line-height: 1.4;
}

/* 丸数字バッジ（①②） */
.c-transaction-card__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background-color: #39b0e5;
  color: #ffffff;
  border-radius: 50%;
  font-size: 21px;
  font-weight: bold;
  flex-shrink: 0;
    margin-bottom: -4px;
}

/* 黄色下線マーカー */
.u-marker {
  background: linear-gradient(transparent 70%, #fff697 70%);
  color: #2083bd;
  font-weight: bold;
    margin: 0 4px;
}

/* ピンク色下線マーカー */
.u-marker-pink {
  background: linear-gradient(transparent 95%, #ff9bb5 95%);
  font-weight: bold;
    margin: 0 4px;
}

/* 区切り線 */
.c-transaction-card__line {
  height: 1px;
  background-color: #39b0e5;
  margin: 16px 0 28px;
}


/* カード間の「さらに」つなぎエリア */
.c-transaction-between {
  text-align: center;
  padding: 36px 0 24px;
}

.c-transaction-between__ttl {
  font-size: 24px;
  font-weight: bold;
  color: #222222;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

/* 「さ・ら・に」の上の黒ドット */
.c-transaction-between__dots {
  text-emphasis: dot #222222;
  -webkit-text-emphasis: dot #222222;
  margin-right: 6px;
}

.c-transaction-between__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background-color: #39b0e5;
  color: #ffffff;
  border-radius: 50%;
  font-size: 21px;
  font-weight: bold;
    margin-bottom: -4px
}

/* 下向き黒矢印 */
.c-transaction-between__arrow {
  width: 0;
  height: 0;
  border-left: 15px solid transparent;  /* ★左右の幅を広げる（9px ➔ 15px） */
  border-right: 15px solid transparent; /* ★左右の幅を広げる（9px ➔ 15px） */
  border-top: 12px solid #222222;        /* ★高さ） */
  margin: 8px auto 14px;
}
/* ==================================================
   レスポンシブ調整 (スマートフォン対応)
================================================== */
@media screen and (max-width: 767px) {
  .section-bg-blue {
    background-image: url("../img/about_bg_sp.svg");
    background-size: 100% auto;
    background-position: center top;
    /* スマホ用にアーチの高さに合わせた余白調整 */
    padding-top: 40px;
    padding-bottom: 10px;
    margin-top: 10px;
  }
  .c-transaction-card {
    flex-direction: column;
    padding: 24px 20px 20px;
  }

  .c-transaction-card__chara--left {
    top: -50px;
    left: 15px;
    width: 60px;
  }

  .c-transaction-card__chara--right {
    top: -36px;
    right: 15px;
    width: 64px;
  }

  .c-transaction-card__price {
    width: 100%;
    margin-bottom: 8px;
  }

  .c-transaction-card__num {
    font-size: 58px;
  }
    
.c-transaction-card__unit {
  font-size: 24px;
}

  .c-transaction-card__detail {
    border-left: none;
    padding-left: 0;
    padding-top: 16px;
    width: 100%;
  }

  .c-transaction-card__ttl {
    font-size: 16px;
  }

  .c-transaction-card__badge {
    width: 28px;
    height: 28px;
    font-size: 16px;
    margin-bottom: 0;
    align-self: flex-start; /* ★上揃えに設定 */
    margin-top: -4px;        /* ★テキストの1行目と文字の高さを美しく揃える微調整 */
  }

  .c-transaction-between {
    padding: 24px 0 8px;
  }

  .c-transaction-between__ttl {
    font-size: 18px;
    flex-wrap: wrap;
  }

  .c-transaction-between__badge {
    width: 22px;
    height: 22px;
    font-size: 13px;
  }
}

/* ==================================================
   画面いっぱいの水色背景（通常特典とおトク比較エリア）
================================================== */

/* 左右いっぱいに広がる鮮やかな水色背景 */
.section-bg-vivid-blue {
  width: 100%;
  background-color: #39b0e5; /* 画面全体の水色背景 */
  padding: 80px 0 60px;
}

/* タイトル（がま口アイコン ＋ テキスト） */
.c-total-bonus__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: #ffffff;
  font-size: 38px;
  font-weight: bold;
  margin-bottom: 80px;
}

/* がま口アイコン枠（白背景・丸枠・サイズ固定を削除） */
.c-total-bonus__icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* アイコン（原寸表示） */
.c-total-bonus__icon {
  width: auto;  /* ★原寸大表示 */
  height: auto; /* ★原寸大表示 */
  display: block;
}

/* カードをまとめるコンテナ */
.c-total-bonus__wrap {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 68px;
}

/* 白いケースカード */
.c-total-bonus-card {
  position: relative;
  background-color: #ffffff;
  border-radius: 12px;
  padding: 52px 40px 38px;
  text-align: center;
}

/* 上部の中央にまたがる黄色いバッジ */
.c-total-bonus-card__badge {
  position: absolute;
  top: -22px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #fff697; /* 明るい黄色 */
  color: #2083bd;           /* 青文字 */
  font-weight: bold;
  font-size: 21px;
  padding: 8px 36px;
  border-radius: 30px;
  white-space: nowrap;
}

/* 獲得金額表示エリア */
.c-total-bonus-card__amount {
  font-size: 24px;
  font-size: 1.5rem;
  font-weight: bold;
  color: #111111;
  margin-bottom: 20px;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
}

.c-total-bonus-card__label {
  font-size: 22px;
}

/* 1. 数字フォント用クラス（等幅化の指定を追加） */
.u-font-num {
  font-family: "Jost", Futura, sans-serif;
  font-weight: 600;
  font-variant-numeric: tabular-nums; /* ★数字(0-9)の横幅を均一にして揺れを防止 */
  font-feature-settings: "tnum";
}

/* 2. ケース別カード（獲得金額）の数字エリア */
.c-total-bonus-card__num {
  display: inline-block;              /* ★横幅の固定を有効化 */
  min-width: 160px;                   /* ★数字エリアの最小横幅を確保（揺れをシャットアウト） */
  text-align: center;                 /* ★固定幅の中で中央に数字を配置 */
  font-size: 50px;
  font-weight: 600;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

/* 3. 特典カード（5,000円 / 1,500円）の数字エリアも同様に保護 */
.c-transaction-card__num {
  display: inline-block;
  min-width: 220px;                   /* ★大文字数字用の最小横幅 */
  text-align: center;
  font-size: 78px;
  line-height: 1;
  font-family: "Jost", Futura, sans-serif;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

.c-total-bonus-card__unit {
  font-size: 22px;
}


/* ==================================================
   レスポンシブ調整 (スマートフォン対応)
================================================== */
@media screen and (max-width: 767px) {
  .section-bg-vivid-blue {
    padding: 40px 0 10px;
  }

  .c-total-bonus__title {
    font-size: 20px;
    font-size: 1.25rem;
    gap: 10px;
    margin-bottom: 40px;
  }

  .c-total-bonus__icon-wrap {
    width: 44px;
    height: 44px;
  }

  .c-total-bonus__wrap {
    gap: 48px;
  }

  .c-total-bonus-card {
    padding: 46px 20px 24px;
  }

  .c-total-bonus-card__badge {
    top: -24px;
    font-size: 13px;
    padding: 6px 32px;
  }

  .c-total-bonus-card__amount {
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: 16px;
  }

  .c-total-bonus-card__label {
    font-size: 16px;
    width: 100%;
      margin-bottom: -10px;
  }

.c-total-bonus-card__num {
    min-width: 120px;
    font-size: 36px;
  }

  .c-transaction-card__num {
    min-width: 160px;
    font-size: 58px;
  }
  .c-total-bonus-card__unit {
    font-size: 18px;
  }

}