/* デスクトップ特有のスタイル（992px以上） */
@media (min-width: 992px) {
  /* 旧 payment-box は不要なので非表示 */
  .payment-box {
    display: none !important;
  }

  /* イラスト要素の配置調整 */
  .illust-people {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: clamp(40px, 8vw, 120px);
    margin: calc(var(--gap) * 2) auto;
  }

  .illust-left,
  .illust-right {
    position: relative;
    width: clamp(120px, 15vw, 160px);
    height: clamp(70px, 9vw, 95px);
    background-size: contain;
    background-repeat: no-repeat;
  }

  .illust-left {
    background-image: url('./images/introduct.png');
  }

  .illust-right {
    background-image: url('./images/introducted.png');
  }

  /* 紹介者・被紹介者ラベル */
  .referrer-bg,
  .referred-bg {
    position: absolute;
    top: -10px;
    width: 123px;
    height: 30px;
    background: #EA6088;
    border-radius: 25px;
    opacity: 1;
    z-index: 4;
  }
  
  .referrer-bg {
    left: 50%;
    transform: translateX(-50%);
  }
  
  .referred-bg {
    left: 50%;
    transform: translateX(-50%);
  }

  .referrer-text,
  .referred-text {
    position: absolute;
    top: -2px;
    left: 50%;
    transform: translateX(-50%);
    width: 123px;
    text-align: center;
    font-size: 14px;
    line-height: 24px;
    font-family: 'Hiragino Kaku Gothic ProN W6', sans-serif;
    font-weight: 600;
    color: #FFFFFF;
    z-index: 5;
  }
}

/* ---- reset & base ---- */
:root {
  --main-pink: #E86186;
  --site-max: 1080px;        /* PC 最大幅 */
  --gap: clamp(12px, 2vw, 32px);
}

html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  min-width: 320px;
  min-height: auto;
  background: #FFFFFF;
  opacity: 1;
  overflow-x: hidden;        /* ①横スクロール禁止を常時ON */
  font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'Meiryo', 'メイリオ', sans-serif;
}

/* ②中央寄せ用ラッパー（全ページ共通） */
.wrapper {
  width: min(100%, var(--site-max));
  margin: 0 auto; /* 完全中央寄せ */
  padding: 0; /* 左右パディングを削除 */
  position: relative;        /* 内部 absolute の座標基準 */
}

.main-container {
  max-width: 1080px;
  margin: 0 auto;
  width: 100%;
}

body {
  position: relative;
}

/* セクション配置の基本設定 */
.hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap);
  padding-block: var(--gap);
  margin-bottom: 0;
  padding-bottom: 0; /* 下パディングも削除 */
}

.reward {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap);
  padding-block: 0 var(--gap);
  margin-top: 0;
  padding-top: 0; /* 上パディングも削除 */
}

.payment {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-block: var(--gap) var(--gap); /* 上下のパディングを回復 */
}

.steps {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* gap: var(--gap); を削除して、子要素のマージンで制御 */
  padding: calc(var(--gap) * 2) 0 calc(var(--gap) * 3); /* 上パディングを増やす */
}

.menicon {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap);
  padding-block: var(--gap);
}

.menicon.wrapper {
  position: relative;
  z-index: 1;
}
.menicon.wrapper::before {
  content: '';
  position: absolute;
  top: -20px;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  height: calc(100% + 20px);
  background: #FDF4E5;
  z-index: -1;
}

/* タブレット以上でのレイアウト調整 */
@media (min-width: 768px) {
  .reward {
    flex-direction: row;
    justify-content: center;
    gap: calc(var(--gap) * 2);
  }

  /* 既存バルーン img は非表示 (デスクトップ) */
  .balloon-left, .balloon-right{display:none;}

  /* reward ボックス左右にバルーンを疑似要素で追加 */
  .reward-box::before,
  .reward-box::after{
    content:'';
    position:absolute;
    top:-240px; /* バルーン高さ250px分上へ */
    width:120px; /* 100px → 120px に変更 */
    height:240px; /* 220px → 250px に変更 */
    background-size:contain;
    background-repeat:no-repeat;
  }
  .reward-box::before{
    left:-40px; /* -30px → -40px に変更（サイズ増加に合わせて調整） */
    background-image:url('./images/baloon-left.png');
  }
  .reward-box::after{
    right:-40px; /* -30px → -40px に変更（サイズ増加に合わせて調整） */
    background-image:url('./images/baloon-right.png');
  }
}

/* タブレット用調整 */
@media (min-width: 481px) and (max-width: 991px) {
  .hero {
    gap: calc(var(--gap) * 1.5);
  }
  
  .reward-box {
    width: 90%;
  }
  
  .step-container {
    grid-template-columns: repeat(2, 1fr);
    max-width: 600px;
  }
  
  .step1-text,
  .step2-text,
  .step3-text {
    max-width: 260px;
  }
}

/* デスクトップ用調整 */
@media (min-width: 992px) {
  .hero {
    gap: calc(var(--gap) * 2);
  }
  
  .reward {
    flex-direction: row;
    justify-content: center;
  }
}

/* スマホ用レスポンシブ対応 */
@media screen and (max-width: 480px) {
  .main-container {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  
  html, body {
    width: 100%;
    min-height: auto;
    background: #FFFFFF;
    opacity: 1;
  }
  
  body {
    margin: 0 !important;
    width: 100% !important;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .baloon-left-img {
    display: block !important;
    position: absolute;
    top: 50px; /* 位置を下に調整 */
    left: -20px;
    width: 65px;
    height: auto;
    z-index: 0;
  }

  .baloon-right-img {
    display: block !important;
    position: absolute;
    top: 50px; /* 位置を下に調整 */
    right: -20px;
    width: 65px;
    height: auto;
    z-index: 0;
  }
}

.header {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  padding-block: var(--gap);
  background: transparent;
}

/* スマホ用ヘッダー */
@media screen and (max-width: 480px) {
  .header {
    padding-block: calc(var(--gap) * 0.8);
  }
}

.header-inner {
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.logo {
  width: clamp(224px, 30vw, 320px);
  height: auto;
  max-height: 53px;
  object-fit: contain;
  background: transparent;
  opacity: 1;
}

/* スマホ用ロゴ */
@media screen and (max-width: 480px) {
  .header-inner {
    justify-content: center; /* ヘッダー内で中央寄せ */
  }
  
  .logo {
    width: clamp(180px, 60vw, 224px);
    max-height: 37px;
  }
}

.referral-en-title {
  position: relative;
  width: auto;
  text-align: center;
  font-size: clamp(12px, 2vw, 20px);
  line-height: 1.7;
  font-family: 'Hiragino Kaku Gothic ProN W6', sans-serif;
  font-weight: bold;
  letter-spacing: 0px;
  color: #E86186;
  opacity: 1;
}

/* スマホ用英字タイトル */
@media screen and (max-width: 480px) {
  .referral-en-title {
    font-size: 12px;
    line-height: 20px;
  }
}

.main-title {
  position: relative;
  width: 100%;
  max-width: min(90%, 880px);
  text-align: center;
  font-size: clamp(26px, 4vw, 40px);
  line-height: 1.3;
  font-family: 'Hiragino Kaku Gothic ProN W6', sans-serif;
  font-weight: bold;
  letter-spacing: 0px;
  color: #000000;
  opacity: 1;
  margin: 0;
}

/* スマホ用メインタイトル */
@media screen and (max-width: 480px) {
  .main-title {
    max-width: 286px;
    font-size: 26px;
    line-height: 44px;
  }
}
/* リボン装飾 -------------------------------------------------- */
.ribbon-container {
  position: relative;
  width: clamp(320px, 45vw, 480px);
  height: clamp(60px, 8vw, 80px);
  z-index: 3;
}

/* スマホ用リボン */
@media screen and (max-width: 480px) {
  .ribbon-container {
    width: 100%;
    max-width: 320px;
    height: 60px;
  }
}
.ribbon-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 1;
  z-index: 2;
}

/* スマホ用リボン画像 */
@media screen and (max-width: 480px) {
  .ribbon-img {
    height: 60px;
  }
}

/* モバイル用リボン画像（さらに大きく） */
@media screen and (max-width: 430px) {
  .ribbon-container {
    width: 100%;
    max-width: 380px; /* 320px -> 380px に拡大 */
    height: 80px; /* 60px -> 80px に拡大 */
  }
  
  .ribbon-img {
    height: 80px; /* 60px -> 80px に拡大 */
  }
}
.banner-intro {
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 5;
}
.banner-intro span {
  color: #FFFFFF;
  text-align: center;
  font: normal normal 600 28px/48px 'Hiragino Kaku Gothic ProN W6', sans-serif;
  letter-spacing: 0px;
  display: block;
}

/* スマホ用バナーテキスト */
@media screen and (max-width: 430px) {
  .banner-intro {
    position: absolute;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: auto;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 4;
  }
  
  .banner-intro span {
    color: #FFFFFF;
    text-align: center;
    font: normal normal 600 18px/20px 'Hiragino Kaku Gothic ProN W6', sans-serif;
    letter-spacing: 0px;
    display: block;
  }
}
/* バルーン */
.hero {
  position: relative;
}

.balloon-left,
.balloon-right {
  position: absolute;
  width: clamp(46px, 10vw, 105px);
  height: clamp(103px, 22vw, 235px);
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 1;
  z-index: 1;
  top: auto;
  bottom: 0;
  transform: none;
}

.balloon-left {
  background-image: url('./images/baloon-left.png');
  left: 0;
  max-width: 15%;
}

.balloon-right {
  background-image: url('./images/baloon-right.png');
  right: 0;
  max-width: 15%;
}

/* スマホ用バルーン */
@media screen and (max-width: 480px) {
  .balloon-left,
  .balloon-right {
    width: 62px; /* 52px -> 62px */
    height: 138px; /* 116px -> 138px */
    top: 60%;
  }
  
  .balloon-left {
    left: 5px;
  }
  
  .balloon-right {
    right: 5px;
  }
}

/* モバイル用バルーン（reward-boxに近づける） */
@media screen and (max-width: 430px) {
  .balloon-left,
  .balloon-right {
    width: 62px;
    height: 138px;
    top: 64%; /* 60% -> 75% に変更してreward-boxに近づける */
  }
  
  .balloon-left {
    left: 5px;
  }
  
  .balloon-right {
    right: 5px;
  }
}
/* 特典ボックス */
.reward-box {
  position: relative;
  width: clamp(60%, 28.125rem, 450px);
  min-height: 275px;
  background: #FFFFFF;
  box-shadow: 3px 3px 0px #F09401;
  border: 1px solid #F09401;
  border-radius: 20px;
  opacity: 1;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: var(--gap) var(--gap) 0; /* 下パディングを0に */
  margin: 0 auto;
  margin-top: 0 !important; /* 上マージンもゼロ */
}

/* スマホ用特典ボックス */
@media screen and (max-width: 430px) {
  .reward-box {
    position: relative !important;
    width: 90% !important;
    max-width: 390px !important;
    height: auto !important;
    margin: 0 auto !important; /* 上下のマージンを調整し、左右をautoで中央寄せ */
    padding: 0 0 0 0 !important; /* 内側の余白を調整 */
    top: auto !important;
    left: auto !important;
    display: block !important; /* 通常ブロックに戻す */
  }
  .reward-desc-top,
  .reward-amount,
  .reward-menicoin-logo,
  .reward-unit,
  .reward-desc,
  .cracker-icon {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    margin: 0 auto !important;
    text-align: center;
    width: auto !important;
    height: auto !important;
  }
  .reward-desc-top {
    font-size: 16px !important;
    line-height: 24px !important;
    margin: 0 auto 4px auto !important; /* 左右のautoで中央寄せ */
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: auto !important; /* コンテンツに合わせた幅に戻す */
  }
  .reward-amount {
    font-size: 80px !important;
    line-height: 1.1 !important;
    margin: 8px auto !important;
    text-shadow:
      1px 1px 0px #E52318,
      -1px 1px 0px #E52318,
      3px 3px 0px #F9B6B3 !important;
    text-align: center !important;
  }
  .reward-menicoin-logo,
  .reward-unit {
    display: inline-block !important;
    vertical-align: middle !important;
  }
  .reward-menicoin-logo {
    width: 195px !important;
    height: 52px !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    margin-right: 0 !important;
  }
  
  .reward-unit {
    font-size: 22px !important;
    line-height: 43px !important;
  }
  .reward-desc {
    margin-top: 16px !important;
    margin-bottom: 16px !important;
    width: 90% !important;
    font-size: 15px !important;
    line-height: 26px !important;
  }
  .cracker-icon {
    position: absolute !important;
    top: 9px !important;
    left: auto !important;
    right: 20px !important;
    transform: none !important;
    width: 30px !important;
    height: 30px !important;
  }
}
.reward-desc-top {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  white-space: nowrap;
  text-align: center;
  opacity: 1;
  font-size: 0; /* span間の余白を除去 */
  color: #333;
}

/* スマホ用特典説明 */
@media screen and (max-width: 430px) {
  .reward-desc-top {
    font-size: 16px !important;
    line-height: 24px !important;
    margin: 15px auto 4px auto !important; /* 上マージン15px追加 */
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: auto !important; /* コンテンツに合わせた幅に戻す */
  }
}
.reward-amount {
  position: relative;
  text-align: center;
  font-size: clamp(60px, 8vw, 75px);
  line-height: 1.1;
  font-family: Geneva, sans-serif;
  font-weight: 600;
  letter-spacing: 0px;
  color: #E52318;
  text-shadow: 
    1px 1px 0px #E52318,
    -1px 1px 0px #E52318,
    3px 3px 0px #F9B6B3;
  opacity: 1;
  margin-bottom: calc(var(--gap) * 0.5);
}

/* スマホ用金額 */
@media screen and (max-width: 430px) {
  .reward-amount {
  }
}
.reward-menicoin-unit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--gap) * 0.5);

}

.reward-menicoin-logo {
  position: relative;
  width: clamp(150px, 18vw, 195px);
  height: clamp(40px, 5vw, 52px);
  background: url('./images/logo-menicoin.jpg') no-repeat;
  background-size: contain;
  opacity: 1;
}

.reward-unit {
  position: relative;
  text-align: left;
  font-size: clamp(20px, 3vw, 25px);
  line-height: 1.7;
  font-family: 'Hiragino Kaku Gothic ProN W6', sans-serif;
  font-weight: 600;
  letter-spacing: 0px;
  color: #333333;
  opacity: 1;
}

/* スマホ用ロゴとユニット */
@media screen and (max-width: 430px) {
  .reward-menicoin-logo,
  .reward-unit {
    display: inline-block !important;
    vertical-align: middle !important;
  }
  .reward-menicoin-logo {
    width: 195px !important;
    height: 52px !important;
    margin-right: 0 !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
  }
  
  .reward-unit {
    font-size: 22px !important;
    line-height: 43px !important;
  }
}
.reward-desc {
  position: relative;
  width: 100%;
  max-width: 442px;
  text-align: center;
  font-size: clamp(13px, 1.5vw, 15px);
  line-height: 1.7;
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  letter-spacing: 0px;
  color: #000000;
  opacity: 1;
}

/* スマホ用説明文 */
@media screen and (max-width: 430px) {
  .reward-desc {
  }
}
/* 決済サービス例エリア（デスクトップ） */
.payment-box-border {
  top: 1009px;
  left: 622px;
  width: 680px;
  height: 479px;
  background: #FFFFFF;
  border: 5px solid #F09401;
  opacity: 1;
  z-index: 2;
}
.payment-title-ex {
  position: relative;
  width: auto;
  text-align: center;
  font-size: clamp(14px, 1.8vw, 15px);
  line-height: 2.4;
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  letter-spacing: 0px;
  color: #F09401;
  opacity: 1;
  z-index: 5;
}
.payment-title-ex-w6 {
  font-family: 'Hiragino Kaku Gothic ProN W6', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-weight: normal;
  font-size: 21px;
}
.payment-img {
  top: 1030px;
  left: 130px;
  width: 300px;
  height: 340px;
  object-fit: contain;
  opacity: 1;
  z-index: 3;
}
.payment-note {
  top: 1391px;
  left: 664px;
  width: 900px;
  height: 62px;
  text-align: left;
  font: normal normal normal 13px/24px 'Hiragino Kaku Gothic ProN', sans-serif;
  letter-spacing: 0px;
  color: #000000;
  opacity: 1;
  z-index: 10;
}
/* 紹介方法タイトル */
.steps-title {
  position: relative;
  width: auto;
  text-align: center;
  font-size: clamp(24px, 3.5vw, 28px);
  line-height: 1.7;
  font-family: 'Hiragino Kaku Gothic ProN W6', sans-serif;
  letter-spacing: 0px;
  color: #EA6088;
  opacity: 1;
  z-index: 5;
}

.steps-desc {
  position: relative;
  width: 100%;
  max-width: 607px;
  text-align: center;
  font-size: clamp(14px, 1.5vw, 15px);
  line-height: 1.7;
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  letter-spacing: 0px;
  color: #000000;
  opacity: 1;
  z-index: 5;
}
.step1-text,
.step2-text,
.step3-text {
  position: relative;
  width: 100%;
  max-width: 180px; /* 220px -> 200px */
  min-height: 160px; /* 180px -> 160px */
  padding: var(--gap) var(--gap) var(--gap); /* 上パディングを更に減らす */
  background: #FDF4E5;
  border-radius: 20px;
  text-align: center;
  font-size: clamp(14px, 1.5vw, 15px);
  line-height: 1.7;
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  letter-spacing: 0px;
  color: #000000;
  opacity: 1;
  z-index: 10;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  background-size: 65% auto; /* 60% -> 65% */
  background-repeat: no-repeat;
  background-position: bottom 15px center; /* 20px -> 15px */
}

.step1-text::before,
.step2-text::before,
.step3-text::before {
  content: '';
  position: absolute;
  top: -16px;
  left: 16px;
  width: 33px;
  height: 33px;
  background: #ED9203;
  border-radius: 50%;
  z-index: 1;
}

.step1-text::after,
.step2-text::after,
.step3-text::after {
  position: absolute;
  top: -16px;
  left: 16px;
  width: 33px;
  height: 33px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Times New Roman', serif;
  font-size: 20px;
  font-weight: normal;
  color: #FFFFFF;
  z-index: 2;
}

.step1-text {
  background-image: url('./images/step1.png');
}

.step1-text::after {
  content: '1';
}

.step2-text {
  background-image: url('./images/step2.png');
}

.step2-text::after {
  content: '2';
}

.step3-text {
  background-image: url('./images/step3.png');
}

.step3-text::after {
  content: '3';
}
/* ステップ囲み枠・画像・番号（旧スタイル）を非表示 */
.step1-box,
.step2-box,
.step3-box,
.step1-img,
.step2-img,
.step3-img,
.step-number-1,
.step-number-2,
.step-number-3,
.step-number-bg-1,
.step-number-bg-2,
.step-number-bg-3 {
  display: none;
}
.menicon-id-title {
  position: relative;
  width: auto;
  text-align: center;
  font-size: clamp(24px, 3.5vw, 28px);
  line-height: 1.7;
  font-family: 'Hiragino Kaku Gothic ProN W6', 'Hiragino Kaku Gothic ProN', sans-serif;
  font-weight: 600;
  letter-spacing: 0px;
  color: #000000;
  opacity: 1;
  z-index: 5;
}

/* Menicon IDエリア */
.menicon-id-area {
  position: relative;
  width: 100%;
  max-width: 600px;
  background: transparent;
  border-radius: 20px;
  padding: var(--gap);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

/* 背景を非表示 */
.menicon-id-background {
  display: none;
}

.menicon-id-input {
  position: relative;
  width: 100%;
  max-width: 350px;
  height: 44px;
  padding: 0 16px;
  background: #FFFFFF;
  border: 1px solid #A5A5A5;
  border-radius: 8px;
  font-size: 16px;
  opacity: 1;
  z-index: 5;
  box-sizing: border-box;
}

.menicon-id-note,
.menicon-id-forgot,
.menicon-id-sns,
.menicon-id-privacy,
.menicon-id-other,
.menicon-id-store,
.menicon-id-stores {
  position: relative;
  width: 100%;
  text-align: center;
  font-size: clamp(12px, 1.4vw, 15px);
  line-height: 1.5;
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  letter-spacing: 0px;
  color: #000000;
  opacity: 1;
  z-index: 5;
}
.download-ticket-btn {
  position: relative;
  width: 100%;
  max-width: 350px;
  height: 55px;
  background: #E56083;
  box-shadow: 3px 3px 5px #0000002F;
  border-radius: 37px;
  opacity: 1;
  border: none;
  color: #FFFFFF;
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.2;
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  font-weight: 600;
  cursor: pointer;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 15px;
}
.download-ticket-btn-w6 {
  font: normal normal normal 22px/26px 'Hiragino Kaku Gothic ProN W6', 'Hiragino Kaku Gothic ProN', sans-serif;
}
.download-icon {
  width: 20px;
  height: 20px;
  margin-right: 8px;
  opacity: 1;
}
/* イラスト要素（モバイル・デスクトップで共通） */
.illust-people {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: clamp(60px, 10vw, 120px);
  margin: 0 !important; /* 全マージンゼロ */
}

.illust-left,
.illust-right {
  position: relative;
  width: auto;
  height: clamp(65px, 12vw, 95px);
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 1;
  z-index: 5;
}

.illust-left {
  background-image: url('./images/introduct.png');
}

.illust-right {
  background-image: url('./images/introducted.png');
}

/* スマホ用イラスト */
@media screen and (max-width: 430px) {
  .illust-people {
    display: flex !important;
    gap: 20px !important;
    column-gap: 20px !important;
    margin: 30px auto 0 auto !important;
  }

  .illust-people img {
    width: 115px;
    height: 68px;
    display: block;
  }

  /* CSSで画像の表示順を入れ替え */
  .illust-right { /* OKサインの人（ご紹介した方） */
    order: 1; 
  }
  .illust-left { /* サムズアップの人（ご紹介された方） */
    order: 2;
  }
}
.coupon-area {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 0 0 var(--gap) 0; /* 上の余白を削除し、下は維持 */
  background: transparent;
}

.coupon-real {
  position: relative;
  width: clamp(300px, 50vw, 445px);
  height: auto;
  opacity: 1;
  z-index: 10;
}

.l-footer.wrapper {
  max-width: 100%;
  padding: 0 0 68px 0;
  position: static;
}

/* 紹介者・被紹介者ラベルテキスト */
.referrer-text,
.referred-text {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  font-size: clamp(10px, 1.2vw, 14px);
  line-height: clamp(20px, 4vw, 30px);
  font-family: 'Hiragino Kaku Gothic ProN W6', sans-serif;
  font-weight: 600;
  color: #FFFFFF;
  text-align: center;
  width: clamp(80px, 15vw, 123px);
}

/* 紹介者・被紹介者ラベル背景 */
.referrer-bg,
.referred-bg {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  width: clamp(80px, 15vw, 123px);
  height: clamp(20px, 4vw, 30px);
  background: #EA6088;
  border-radius: 25px;
}

/* スマホ用テキスト */
@media screen and (max-width: 430px) {
  .referrer-text,
  .referred-text,
  .referrer-bg,
  .referred-bg {
    position: absolute !important;
    display: block !important;
    box-sizing: border-box !important;
    /* PC用の値をリセット */
    top: -15px !important;
    left: 220px !important;
    right: auto !important;
    width: auto !important;
    height: auto !important;
    transform: none !important;
    z-index: 5 !important;
  }

  /* 「ご紹介した方」のラベル（左側） */
  .referrer-bg {
    top: -33px !important;
    left: 0px !important;
    width: 115px !important;
    height: 30px !important;
    background: #EA6088 !important;
    border-radius: 25px !important;
    z-index: 5 !important;
  }
  .referrer-text {
    top: -24px !important;
    left: 0px !important;
    width: 115px !important;
    height: auto !important;
    text-align: center !important;
    font: 600 12px/16px 'Hiragino Kaku Gothic ProN W6', sans-serif !important;
    color: white !important;
    z-index: 6 !important;
  }

  /* 「ご紹介された方」のラベル（右側） */
  .referred-bg {
    top: -33px !important;
    right: 25px !important;
    width: 115px !important;
    height: 30px !important;
    background: #EA6088 !important;
    border-radius: 25px !important;
    z-index: 5 !important;
  }
  .referred-text {
    top: -24px !important;
    right: 25px !important;
    width: 115px !important;
    height: auto !important;
    text-align: center !important;
    font: 600 12px/16px 'Hiragino Kaku Gothic ProN W6', sans-serif !important;
    color: white !important;
    z-index: 6 !important;
  }
}
.reward-desc-intro {
  font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W6', sans-serif;
  font-size: 21px;
  line-height: 36px;
  color: #000000;
}
.reward-desc-people {
  font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W6', sans-serif;
  font-weight: bold;
  font-size: 21px;
  line-height: 36px;
  color: #000000;
}
.reward-desc-together {
  font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W6', sans-serif;
  font-weight: bold;
  font-size: 28px;
  line-height: 36px;
  color: #E76086;
}
.cracker-icon {
  display: inline-block;
  width: 22px;
  height: 22px;
  margin-left: 2px;
  position: relative;
  top: 4px;
}

/* スマホ用クラッカーアイコン */
@media screen and (max-width: 430px) {
  .cracker-icon {
    top: auto !important;
    position: static !important;
    margin: 0 !important;
  }
  
  /* モバイル用のフォントサイズを元に戻す */
  .reward-desc-intro {
    font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W6', sans-serif !important;
    font-size: 16px !important;
    line-height: 36px !important;
  }
  .reward-desc-people {
    font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W6', sans-serif !important;
    font-weight: bold !important;
    font-size: 16px !important;
    line-height: 36px !important;
  }
  .reward-desc-together {
    font-family: 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W6', sans-serif !important;
    font-weight: bold !important;
    font-size: 24px !important;
    line-height: 36px !important;
  }
}
.step-number-1 {
  top: 1693px;
  left: 634px;
  width: 15px;
  height: 33px;
  text-align: left;
  font: normal normal normal 30px/34px 'Times New Roman', serif;
  letter-spacing: 0px;
  color: #FFFFFF;
  opacity: 1;
  z-index: 10;
}
.step-number-2 {
  top: 1691px;
  left: 872px;
  width: 15px;
  height: 33px;
  text-align: left;
  font: normal normal normal 30px/34px 'Times New Roman', serif;
  letter-spacing: 0px;
  color: #FFFFFF;
  opacity: 1;
  z-index: 10;
}
.step-number-3 {
  top: 1691px;
  left: 1111px;
  width: 15px;
  height: 33px;
  text-align: left;
  font: normal normal normal 30px/34px 'Times New Roman', serif;
  letter-spacing: 0px;
  color: #FFFFFF;
  opacity: 1;
  z-index: 10;
}
.step-number-bg-1 {
  top: 1693px;
  left: 626px;
  width: 33px;
  height: 33px;
  background: #ED9203;
  border-radius: 50%;
  opacity: 1;
  z-index: 9;
}
.step-number-bg-2 {
  top: 1693px;
  left: 863px;
  width: 33px;
  height: 33px;
  background: #ED9203;
  border-radius: 50%;
  opacity: 1;
  z-index: 9;
}
.step-number-bg-3 {
  top: 1693px;
  left: 1102px;
  width: 33px;
  height: 33px;
  background: #ED9203;
  border-radius: 50%;
  opacity: 1;
  z-index: 9;
}
/* 調整した独立左パーツ */
.ribbon-left-part {
  top: 268px;
  left: 700px;
  width: 40px;
  height: 48px;
  background: var(--ribbon-color, #E02319);
  z-index: 3;
  clip-path: polygon(
      0 0,        /* 左上 */
      100% 0%,    /* 右上 角度合わせ */
      98% 96%,    /* 右下 角度合わせ */
      0 100%,
      30% 50%     /* 中央切り込み */
  );
}
.copyright {
  position: relative;
  width: 100%;
  text-align: center;
  font-size: clamp(12px, 1.5vw, 15px);
  line-height: 1.7;
  font-family: 'Hiragino Kaku Gothic ProN W3', 'Hiragino Kaku Gothic ProN', sans-serif;
  letter-spacing: 0px;
  opacity: 1;
  z-index: 5;
  padding: var(--gap) 0;
}

/* スマホ用決済サービス */
@media screen and (max-width: 430px) {
  /* Hide the first redundant block and the empty border div */
  .payment-box,
  .payment-box-border {
    display: none !important;
  }

  /* 共通の位置リセット */
  .payment-title-ex,
  .payment-title-ex + .payment-img,
  .payment-note {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
  }

  /* Style the title */
  .payment-title-ex {
    display: block !important; /* 表示する */
    width: 90%;
    max-width: 390px;
    margin: 32px auto 8px;
    font-weight: 600;
    font-size: 15px;
    line-height: 30px;
    color: #F09401;
    text-align: center;
    z-index: 1;
  }

  /* The image part of the box (upper section) */
  .payment-title-ex + .payment-img {
    display: block !important;
    width: 90%;
    max-width: 390px;
    height: auto;
    margin: 0 auto;
    box-sizing: border-box;
    border: 5px solid #F09401; /* 枠線を四方に設定 */
    padding: 20px 15px;
    background: #fff;
    z-index: 2;
  }

  /* The note part of the box (lower section) */
  .payment-note {
    display: block !important;
    width: 90%;
    max-width: 390px;
    margin: 0 auto 40px auto; /* 上に5px重ねて枠線を隠す */
    box-sizing: border-box;
    /* 上以外の枠線を設定 */
    border-left: 5px solid #F09401;
    border-right: 5px solid #F09401;
    border-bottom: 5px solid #F09401;
    border-top: none;
    padding: 15px;
    background: #fff;
    font-size: 12px;
    line-height: 20px;
    text-align: left;
    color: #000;
    z-index: 3; /* 画像より手前に表示 */
    position: relative; /* z-indexを有効にする */
    height: auto !important;
  }
}

/* スマホ用ステップタイトル */
@media screen and (max-width: 430px) {
  .steps-title {
    display: block !important;
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    max-width: 252px;
    height: 28px;
    text-align: center;
    font: normal normal normal 28px/48px 'Hiragino Kaku Gothic ProN W6', sans-serif;
    letter-spacing: 0px;
    color: #EA6088;
    opacity: 1;
    z-index: 5;
    margin: 40px auto 0 auto;
  }
  
  .steps-desc {
    display: block !important;
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    max-width: 350px;
    height: auto;
    text-align: center;
    font: normal normal normal 15px/20px 'Hiragino Kaku Gothic ProN', sans-serif;
    padding-top: 15px;
    letter-spacing: 0px;
    color: #000000;
    opacity: 1;
    z-index: 5;
    margin: 10px auto 40px auto; 
  }
}

/* スマホ用ステップボックス（縦並び） */
@media screen and (max-width: 430px) {
  .step-container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 60px !important;
    padding: 0 20px !important;
    margin: 0 auto 40px auto !important;
    max-width: 450px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .step-box {
    width: 100% !important;
    max-width: 400px !important;
    height: 320px !important;
    margin: 0 auto !important;
    padding: 20px !important;
    box-sizing: border-box !important;
    border: 1px solid #ccc !important;
    border-radius: 10px !important;
    background-color: #fff !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    font-size: 16px !important;
    line-height: 1.5 !important;
    font-family: 'Hiragino Kaku Gothic ProN', sans-serif !important;
    font-weight: normal !important;
    color: #000 !important;
    opacity: 1 !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
  }

  .step-box img {
    width: 100% !important;
    max-width: 100px !important;
    height: auto !important;
    margin-bottom: 10px !important;
  }

  .step-box .step-number {
    font-size: 24px !important;
    font-weight: bold !important;
    margin-bottom: 10px !important;
  }

  .step-box .step-text {
    font-size: 18px !important;
    font-weight: bold !important;
  }
}

/* スマホ用Menicon IDエリア */
@media screen and (max-width: 430px) {
  .menicon-id-background {
    display: none; /* Use .menicon-id-area for background instead */
  }

  .menicon-id-area {
    width: 100%;
    background: transparent;
    padding: 0 20px; /* 左右20pxの余白 */
    margin-top: 0; /* 40pxから0に変更 */
    display: flex;
    flex-direction: column;
    align-items: center; /* 中央寄せに戻す */
    gap: 3px; /* 要素間距離を縮小 */
  }
  
  .menicon-id-title {
    position: relative;
    width: 100%;
    height: auto;
    text-align: center;
    font: normal normal 600 32px/46px 'Hiragino Kaku Gothic ProN W6', 'Hiragino Kaku Gothic ProN', sans-serif; /* サイズUP */
    color: #000000;
    z-index: 5;
    margin: 0 auto;
  }
  
  .menicon-id-input {
    position: relative;
    width: 100%;
    height: 44px;
    background: #FFFFFF;
    border: 1px solid #A5A5A5;
    border-radius: 4px;
    z-index: 5;
    margin: 20px auto 0 auto; /* 中央寄せに戻す */
    display: block;
    box-sizing: border-box;
    padding: 0 10px;
    font-size: 16px;
  }
  
  .menicon-id-note,
  .menicon-id-forgot,
  .menicon-id-sns,
  .menicon-id-privacy,
  .menicon-id-other,
  .menicon-id-store,
  .menicon-id-stores {
    text-align: left !important; /* 左寄せ */
    font-size: clamp(13px, 3.4vw, 14px) !important;
    margin: -4px 20px 0 20px !important; /* 左右20px, 要素間を詰める */
    width: 100%;
    max-width: 380px; /* 長い行の適度な折返し */
    line-height: 1.8;
  }
    
  .download-ticket-btn {
    position: relative;
    width: 90% !important;          /* 横幅をやや狭く */
    max-width: 320px !important;   /* 最大幅を制限 */
    height: 55px;
    background: #E56083;
    box-shadow: 2px 2px 4px #0000002F;
    border-radius: 30px;
    border: none;
    color: #FFFFFF;
    font: normal normal 600 18px/22px 'Hiragino Kaku Gothic ProN W6', sans-serif;
    cursor: pointer;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 30px auto 0 auto; /* 中央寄せに戻す */
  }
  
  .download-icon {
    width: 20px;
    height: 20px;
    margin-right: 8px;
  }

  /* 1) 入力欄と最初の注釈テキストの距離を広げる */
  .menicon-id-note {
    margin: 12px 20px 0 20px !important; /* 上余白+左右20px */
  }

  /* 3) ボタンとクーポン画像エリア間の距離を広げる */
  .coupon-area {
    margin-top: 32px !important;   /* ボタンとの間隔を追加 */
  }
}

/* スマホ用クーポンとフッター */
@media screen and (max-width: 430px) {
  .coupon-area {
    width: 100%;
    background: transparent;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 0 40px 0; /* 上の余白を32pxから0に */
    box-sizing: border-box;
  }
  .coupon-real {
    width: 90%;
    max-width: 350px;
    height: auto;
    background: none;
    margin: 0 auto;
    display: block;
  }
  
  .copyright {
    position: relative;
    top: auto;
    left: auto;
    width: 100%;
    height: auto;
    text-align: center;
    font: normal normal normal 12px/20px 'Hiragino Kaku Gothic ProN W3', 'Hiragino Kaku Gothic ProN', sans-serif;
    letter-spacing: 0px;
    color: #000000;
    opacity: 1;
    z-index: 5;
    margin: 0 auto; /* 20px auto 20px auto から 0 に変更 */
    display: block;
  }
}

@media screen and (max-width: 430px) {
  .steps-title,
  .steps-desc,
  .step1-text,
  .step2-text,
  .step3-text {
    top: auto !important;
    left: auto !important;
  }
}

/* --- ここからステップのスタイルを修正 --- */
@media screen and (max-width: 430px) {
  /* PC用の不要なステップ要素をすべて非表示にする */
  .step1-box, .step2-box, .step3-box,
  .step1-img, .step2-img, .step3-img,
  .step-number-bg-1, .step-number-bg-2, .step-number-bg-3,
  .step-number-1, .step-number-2, .step-number-3 {
    display: none !important;
  }

  .step-container {
    grid-template-columns: 1fr !important; /* これより後に同名があっても上書き */
    padding: 0; /* 左右のパディングを削除 */
    box-sizing: border-box;
    justify-items: center;
  }

  /* ステップカードの基本スタイル */
  .step1-text,
  .step2-text,
  .step3-text {
    display: flex !important;
    align-items: flex-start !important; /* テキストを上寄せに */
    justify-content: center;
    position: relative !important;
    width: 90% !important; /* 85% -> 90% */
    max-width: 450px !important; 
    height: 320px !important; 
    padding-top: 30px !important;
    background-color: #FDF4E5 !important;
    border-radius: 20px !important;
    font-size: 20px !important;
    line-height: 24px !important;
    text-align: center !important;
    color: #333 !important;
    box-sizing: border-box !important;
    background-size: auto 50% !important;
    background-repeat: no-repeat !important;
    background-position: bottom 20px center !important;
  }

  /* 各ステップに背景画像を設定 */
  .step1-text { 
    background-image: url('./images/step1.png'); 
    background-size: auto 65% !important; /* 50% -> 60% に変更してサイズを大きく */
  }
  .step2-text { 
    background-image: url('./images/step2.png'); 
    background-size: auto 65% !important; /* 50% -> 60% に変更してサイズを大きく */
  }
  .step3-text { 
    background-image: url('./images/step3.png'); 
    background-size: auto 65% !important; /* 50% -> 60% に変更してサイズを大きく */
  }

  /* 番号の丸（::beforeで背景） */
  .step1-text::before,
  .step2-text::before,
  .step3-text::before {
    content: '';
    position: absolute;
    width: 44px;
    height: 44px;
    top: -22px; /* カードの上にはみ出す */
    left: 7px; /* 左に固定 */
    background: #ED9203;
    border-radius: 50%;
    z-index: 1;
  }

  /* 番号の数字（::afterで数字） */
  .step1-text::after,
  .step2-text::after,
  .step3-text::after {
    position: absolute;
    width: 44px;
    height: 44px;
    top: -22px;
    left: 7px; /* 左に固定 */
    font-family: 'Times New Roman', serif;
    font-size: 28px;
    line-height: 44px;
    color: #fff;
    text-align: center;
    z-index: 2;
  }

  /* 各ステップの番号を設定 */
  .step1-text::after { content: '1'; }
  .step2-text::after { content: '2'; }
  .step3-text::after { content: '3'; }
}
/* --- ここまでステップのスタイル修正 --- */

@media (max-width: 430px) {
  /* 1) 画像エリア ── 枠を四辺に付ける */
  .payment-title-ex + .payment-img{
    border: 5px solid #F09401;          /* ← bottom も付ける */
    box-sizing: border-box;
  }

  /* 2) 注意書き ── 枠は左右+下だけ */
  .payment-note{
    position: relative;
    top: 0;                             /* -5pxを0に変更 */
    margin: 0 auto 40px;                /* 上マージンを0に変更 */
    width: 90%;
    box-sizing: border-box;
    border-left: 5px solid #F09401;
    border-right: 5px solid #F09401;
    border-bottom: 5px solid #F09401;
    padding: 18px 15px 15px;            /* 文字の余白 */
    background:#fff;
    font-size: 12px;
    line-height: 20px;
    text-align: left;
  }
}

/* モバイル用任意改行クラス */
.sp-br {
  display: none;
}
@media screen and (max-width: 430px) {
  .sp-br {
    display: block;
    height: 0;
  }
  .sp-br:before {
    content: '　' !important;
    display: inline;
  }
}

/* 決済サービス例エリア（デスクトップ） */
.payment-section {
  position: relative;
  width: clamp(60%, 28.125rem, 450px);
  background: #FFFFFF;
  border: 5px solid #F09401;
  border-radius: 0; /* 10px -> 0 に変更して角を直角に */
  opacity: 1;
  z-index: 2;
  padding: var(--gap);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gap);
}

/* 子要素の位置を枠線内の相対位置に補正 */
.payment-section .payment-img {
  position: relative;
  top: auto;
  left: auto;
  width: 100%;
  max-width: 467px;
  height: auto;
  object-fit: contain;
  opacity: 1;
  z-index: 3;
}

.payment-section .payment-note {
  position: relative;
  top: auto;
  left: auto;
  width: 100%;
  text-align: left;
  font-size: clamp(12px, 1.3vw, 13px);
  line-height: 1.8;
  font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  color: #000;
  opacity: 1;
  z-index: 10;
}

/* ======== モバイルレイアウト ======== */
@media screen and (max-width: 430px) {
  /* ラッピングコンテンツ自体に枠線を付けて１枚の箱にする */
  .payment-section {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: 95% !important; /* 90% -> 95% に拡張 */
    max-width: 420px; /* 390px -> 420px に拡張 */
    margin: 5px auto 0 auto;
    padding: 25px 20px 20px; /* 上左右下の余白を調整：20px 15px 0 -> 25px 20px 20px */
    box-sizing: border-box;
    border: 5px solid #F09401 !important;
    background: #fff !important;
    height: auto !important; /* 中身に合わせて高さを自動調整 */
  }

  /* 画像は幅いっぱい、余白のみ */
  .payment-section .payment-img {
    display: block !important;
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 auto 15px auto;
    box-sizing: border-box;
    border: none !important;
    padding: 0; /* 親の padding があるため不要 */
    background: transparent !important;
    z-index: 2;
  }

  /* 注釈は親の幅に合わせて中央揃え */
  .payment-section .payment-note {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    margin: 0 auto 15px auto; /* 下マージンを0から15pxに変更 */
    box-sizing: border-box;
    border: none !important;
    padding: 0;
    font-size: 12px;
    line-height: 20px;
    text-align: left;
    color: #000;
    z-index: 3;
  }
}

.inline-link-icon {
  width: 1em;
  height: 1em;
  vertical-align: text-top;
  margin-left: 0.2em;
  display: inline-block;
}

/* ステップコンテナ */
.step-container {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--gap);
  justify-items: center;
  margin-top: calc(var(--gap) * 2);
}

@media (min-width: 768px) {
  .step-container {
    grid-template-columns: repeat(3, 1fr);
    max-width: 900px;
  }
}

/* デスクトップ用ステップコンテナの距離調整 */
@media (min-width: 431px) {
  .step-container {
    margin-top: calc(var(--gap) * 1.2);
    gap: calc(var(--gap) * 0.8);
    max-width: clamp(73%, 28.125rem, 450px); 
  }

  /* デスクトップ用ステップカードのサイズ調整 */
  .step1-text,
  .step2-text,
  .step3-text {
    max-width: 160px !important; /* 180px -> 160px に縮小 */
    min-height: 140px !important; /* 160px -> 140px に縮小 */
  }

  /* デスクトップ用 Menicon ID エリアの要素間距離調整 */
  .menicon-id-area {
    gap: 6px; /* 10px -> 6px に縮小して要素間の距離を小さく */
  }
}

/* イラストとラベルを同じセルに重ねる */
.illust-people {
  display: grid;
  grid-template-columns: 1fr 1fr;
  justify-content: center;
  align-items: end;
  column-gap: clamp(60px, 10vw, 120px);
  margin: 0 !important;
}

/* デスクトップ用イラストエリアの距離調整 */
@media (min-width: 431px) {
  .illust-people {
    margin: calc(var(--gap) * 2) auto 0 auto !important; /* 上マージンを追加してribbon-containerとの距離を拡大 */
  }
}

/* 全て同じセルに配置 */
.illust-left,
.referrer-bg,
.referrer-text {
  grid-column: 1;
  grid-row: 1;
}

.illust-right,
.referred-bg,
.referred-text {
  grid-column: 2;
  grid-row: 1;
}

/* イラストは基準 */
.illust-left,
.illust-right {
  position: relative;
  z-index: 1;
  align-self: end;
  justify-self: center;
}

/* 背景ラベルはイラスト上部に */
.referrer-bg,
.referred-bg {
  position: relative;
  z-index: 2;
  align-self: start;
  justify-self: start; /* center → start に変更 */
  width: clamp(80px, 15vw, 123px);
  height: clamp(20px, 4vw, 30px);
  background: #EA6088;
  border-radius: 25px;
  margin-bottom: 100px; /* 25px → 35px に変更 */
}

/* テキストは背景の上に */
.referrer-text,
.referred-text {
  position: relative;
  z-index: 3;
  align-self: start;
  justify-self: start; /* center → start に変更 */
  font-size: clamp(10px, 1.2vw, 14px);
  line-height: clamp(20px, 4vw, 30px);
  font-family: 'Hiragino Kaku Gothic ProN W6', sans-serif;
  font-weight: 600;
  color: #FFFFFF;
  margin-bottom: 35px; /* 25px → 35px に変更 */
}

/* セクション内で必要な場合のみ内側パディング */
.reward-box,
.payment-section,
.menicon-id-area {
  padding-left: var(--gap);
  padding-right: var(--gap);
}

.l-footer .footer {
  position: absolute;
  width: 100vw;
  left: 0;
  bottom: 0;
  height: 68px;
  background-image: url("images/footer.png");
}

.l-footer .footer-img {
  position: relative;
  width: 100%;
  height: clamp(40px, 8vw, 68px);
  object-fit: cover;
  display: block;
}

/* ===== 強制的にステップを1列にする最終ガード ===== */
@media screen and (max-width: 430px) {
  .step-container {
    grid-template-columns: 1fr !important; /* これより後に同名があっても上書き */
  }
}

/* ===== Menicon IDエリアのレイアウトを強制的に修正 ===== */
@media screen and (max-width: 430px) {
  .menicon-id-area {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
  }

  .menicon-id-note,
  .menicon-id-forgot,
  .menicon-id-sns,
  .menicon-id-privacy,
  .menicon-id-other,
  .menicon-id-store,
  .menicon-id-stores {
    width: 100% !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* モバイルでのみ有効な改行 */
@media (min-width: 431px) {
  .br-sp {
    display: none;
  }
}

/* ===== モバイルでのイラスト表示を強制上書き ===== */
@media screen and (max-width: 430px) {
  .illust-people {
    display: flex !important;
    gap: 20px !important;
    column-gap: 20px !important;
    margin: 70px auto 0 auto !important; /* 30px -> 50px に変更してスペースを追加 */
  }

  .illust-people img {
    width: 115px;
    height: 68px;
    display: block;
  }

  /* CSSで画像の表示順を入れ替え */
  .illust-right { /* OKサインの人（ご紹介した方） */
    order: 1; 
  }
  .illust-left { /* サムズアップの人（ご紹介された方） */
    order: 2;
  }
}


.illust-people2 {
  width: calc(700px - 300px);
  display: flex;
  justify-content: space-around;
}

@media screen and (max-width: 600px) {
  .illust-people2 {
    width: 75%;
    padding: 0 60px;
  }
}

.illust-people2 .referred-text2, .illust-people2 .referrer-text2 {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  color: #ffffff;
  height: 30px;
  background-color: #EA6088;
  border-radius: 15px;
  font-size: 14px;
}