html{ box-sizing:border-box; }
*,*::before,*::after{ box-sizing:inherit; }
body {
    margin: 0;
    min-width: 1000px;
    font-size: .875rem;
    line-height: 1.5;
    color: #363b3f;
    background: #fff;
}
@media (min-width: 641px){
  .lp-intro{ padding-inline:5%; }
  .lp-intro .lp-container{ width:1200px; max-width:none; margin-inline:auto; }
  .lp-cashback{ padding:40px 5%; }
  .lp-cashback .lp-container{ max-width:1200px; width:100%; margin-inline:auto; }
  .cashback-card{ width:1200px; margin:0 auto; }
  .flow-card{ padding:28px; }
  .cb-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8%; max-width:80%; margin:0 auto; }
}
:root{
  --hero-img-pc: url('http://fs-airport.jp/wp-content/uploads/2025/08/0827_KV-scaled.jpg');
  --hero-img-m:  url('http://fs-airport.jp/wp-content/uploads/2025/08/0808_banner_w800_h800.jpg');
}


:root{
  --jp-head: 'Zen Kaku Gothic New', 'M PLUS Rounded 1c', 'Noto Sans JP',
             'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif;
}

/* 見出し・強調に適用（必要な箇所だけでOK） */
.kv-title,
.kv-offer,
.kv-period,
.kv-applystart,
.kv-badge{
  font-family: var(--jp-head);
}


/* MV：背景画像 + 比率固定（1366:796） */
.lp-hero--bg{position:relative;display:grid;align-items:end;overflow:hidden}
.lp-hero--ratio{aspect-ratio:1366/796;min-height:420px}

.lp-hero__media{
  position:absolute;inset:0;background-position:center;background-size:cover;
  background-image:var(--hero-img-pc);
}
@media (max-width:640px){
  .lp-hero__media{background-image: var(--hero-img-pc);}
}

.lp-hero__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.35));
}

.lp-hero__content{position:relative;color:#fff;padding:56px 16px 24px}
.lp-hero__title{margin:0 0 8px;color:#fff}
.lp-hero__lead{margin:0 0 16px;color:#eef}





:root{
  --accent-red:#D94B44; /* タイトル赤系。必要に応じて調整 */
}

/* タイトルセクション */
.lp-intro { padding-top: 40px; padding-bottom: 40px; }

.lp-intro .lp-container{
  width: 100%;
  max-width: none;
  margin-inline: auto;   /* 中央 */
  padding-inline: 0;     /* ← ここがズレの元になりやすいので0に */
  background: #F6F4EB;


}
.lp-container{
 padding: 40px;
}
.lp-intro{
  text-align: center;
  padding-inline: 5%;
}
.lp-intro .lp-container{
  width: 1200px;
}
.kv-title{
  /* 31pt ≒ 41px を上限に */
  font-size: clamp(22px, 4.2vw, 32px);
  line-height: 1.35;
  font-weight: 700;
  margin: 0 0 10px;
  letter-spacing: .02em;
}
.kv-sub1{
  font-size: clamp(16px, 2.6vw, 22px);
  margin: 0 0 6px;
}
.kv-strong b{ font-size: 1.25em; }
.kv-sub2{
  font-size: clamp(13px, 2.1vw, 18px);
  color:#6b6b6b;
  margin: 0 0 18px;
}

.kv-offer{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:14px;
  flex-wrap:wrap;
  margin:6px 0 15px;
  text-align:center;
}

/* 左・右テキスト（ベース：31pt=約41pxを上限に） */
.kv-offer .kv-left,
.kv-offer .kv-right{
  font-weight:700;
  font-size: clamp(18px, 3vw, 41px);
  letter-spacing:.02em;
}

/* 「往復」「最大」を縦積みで小さめに */
.kv-offer .kv-stack{
  display:flex;
  flex-direction:column;
  line-height:1;
  font-weight:800;
  font-size: clamp(14px, 2.3vw, 22px);
  transform: translateY(-6px); /* ベースライン調整 */
}
.kv-offer .kv-stack em{font-style:normal}

/* 金額を大きく、円は小さく添える */
.kv-offer .kv-price{
  display:flex;
  align-items:flex-end;
  line-height:1;
  font-weight:900;
}
.kv-offer .kv-price b{ font-size: clamp(16px, 10vw, 68px); }
.kv-offer .kv-price small{ font-size:2.5em; margin-left:6px; }

/* 区切り線（デザインの点線風） */
.lp-rule{
  border:0; height:0; margin: 36px 0 36px;
  border-bottom: 1px dashed #e1ddd7;
}

/* 期間ボックス */
.kv-box { text-align:center; }
.kv-badge{
 font-weight:700;
  display: inline-flex;        /* 中央配置のため */
  align-items: center;
  justify-content: center;
  width: 300px;                /* 固定幅 */
  height: 40px;                /* 固定高さ */
  padding: 0;                  /* 余白は高さで管理 */
  border-radius: 9999px;       /* pill形 */
    background: var(--accent-red, #D94B44); /* 変数が無ければ #D94B44 を使う */
  color:#fff;
  font-size: 21px;
}
.kv-period{
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:20px;
  margin:10px 0 6px;
  font-weight:800;
  letter-spacing:.02em;
}
.kv-date{display:inline-flex; align-items:flex-end; line-height:1;}
.kv-date b{ font-size: clamp(36px, 6.8vw, 62px); line-height:1; }
.kv-date small{
  font-size:1.38em;           /* (MON)/(FRI)を小さく */
  margin-left:.45em;         /* 数字との間隔 */
  transform: translateY(-.25em); /* ちょい上げて揃える */
  display:inline-block;
  letter-spacing:.02em;
}
.kv-arrow{
  font-size: clamp(24px, 4.8vw, 21px); /* ← これでem基準が拡大 */
  width:0;height:0;
  border-top:.5em solid transparent;
  border-bottom:.5em solid transparent;
  border-left:.8em solid #000;
  margin:0 .45em .12em;
  vertical-align:baseline;
}

.kv-applystart{
  text-align:center;
  font-weight:800;
  margin: 8px 0 2px;
  letter-spacing:.02em;
}
.kv-applystart .label{
  font-size: clamp(16px, 2.6vw, 36px);
}
.kv-applystart .date{
  display:inline-flex; align-items:flex-end; line-height:1; margin-left:.2em;
}
.kv-applystart .date b{ font-size: clamp(32px, 5.6vw, 48px); }
.kv-applystart .date small{
  font-size:1.38em; margin-left:.45em; transform: translateY(-.2em); display:inline-block;
}

.kv-cbnote{
  text-align:center;
  color:#D94B44;             /* 赤文 */
  font-weight:700;
  font-size: clamp(12px, 1.9vw, 16px);
  margin: 4px 0 0;
}


.kv-block{
  text-align: left;
  max-width: 1000px;    /* 読みやすい幅に絞る（不要なら削除） */
  margin: 10px auto 0;
}
.kv-list{
    max-width: 90%;
    margin: 0 auto;
    list-style: disc;
    padding-left: 1.2em;
    text-align: left;
}
.kv-list li{
  font-size: clamp(14px, 2.1vw, 16px);
  line-height: 1.9;
}
.kv-list .islands b{ color:#D94B44; font-weight:800; }

.kv-notes{
  list-style: none;
  padding-left: 0;
  margin: 8px 0 0;
}
.kv-notes li{
  font-size: clamp(12px, 1.9vw, 14px);
  color:#666;
  line-height: 1.7;
}

.kv-people{
  text-align:center;
  font-family: var(--jp-head, inherit);
  font-weight: 800;
  font-size: clamp(24px, 6vw, 28px);
  line-height: 1.2;
  letter-spacing: .02em;
  margin: 6px 0 0;
}
.kv-people b{ font-size: 1.25em; }

.kv-list--number{
  list-style: none;    /* ディスクを消す */
  padding-left: 0;     /* 既定のインデントを削除 */
}
.kv-list--number li{
  /* 文字サイズ・行間は .kv-list li と同じ設定が効いています */
}












.lp-cashback{ background:#eaf4ff; }                 /* セクション外側の薄いブルー（任意） */
.lp-cashback .lp-container{ max-width:1200px; }     /* このセクションだけ1200pxに */
.lp-container2 {

    width: 1200px;
    max-width: none;
    margin-inline: auto;
    padding-inline: 0;
background:#eaf4ff;
}
:root{ --cb-indigo:#55689a; } /* お好みで調整 */

.cb-title{
  position: relative;
  text-align: center;
  color: var(--cb-indigo);
  font-family: var(--jp-head, inherit);
  font-weight: 900;
  letter-spacing: .06em;
  font-size: clamp(18px, 4.5vw, 40px);
    padding: 20px;
}
.cb-grid{
    max-width:80%;
    display: grid
;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:8%;
    align-items: center;
    margin: 0 auto;
}
.cb-item img{ display:block; width:100%; height:auto; }

.lp-cashback{
  background:#eaf4ff;      /* 全幅の青 */
  padding: 40px 5%;        /* 画面左右に余白（5%） */
}

.lp-cashback .lp-container{
  max-width:1200px;        /* 中身は1200px上限 */
  width:100%;
  margin-inline:auto;      /* 中央寄せ */
}

.cashback-card{
  width: 1200px;
  margin: 0 auto;
  background:#fff;         /* 中を白に */
  border-radius:16px;

  box-shadow:0 6px 24px rgba(0,0,0,.06); /* 任意：軽い影 */
}

.cb-darrow{ display:flex; justify-content:center; margin:12px auto 8px; }
.cb-darrow img{ display:block; width:clamp(48px, 12vw, 60px); height:auto; }



.cb-lead{
  text-align:center; font-weight:800;
  margin: 10px 0 14px; letter-spacing:.02em;
}

.cb-table-wrap{ max-width:1000px; margin: 0 auto; overflow-x:auto; }
.cb-table{ width:100%; border-collapse:collapse; font-size:clamp(14px,2vw,16px); margin-bottom: 50px;}
.cb-table th, .cb-table td{
  border:1px solid #222; padding:14px 10px; text-align:center;
}
.cb-table thead th{
  background:#DFF1FF; font-weight:800;
}
.cb-table tbody td:first-child{ font-weight:700; } /* 第◯期の列 */



/* 運航ダイヤ：結合型（写真の見た目に寄せる） */
.sch-table--merge{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
  font-size:clamp(13px,1.9vw,15px);
  background:#fff;
  min-width:820px;              /* SPでは横スクロール */
}
.sch-table-wrap{ overflow-x:auto; }

.sch-table--merge th,
.sch-table--merge td{
  border:1px solid #2b2b2b;
  text-align:center;
  padding:10px 8px;
  vertical-align:middle;        /* 高さをきれいに合わせる */
}

/* ヘッダー（黄色帯） */
.sch-table--merge thead th{
  background:#FFE200;           /* 画像寄りの黄 */
  font-weight:800;
}

/* 左列（行き先）は薄グレー帯＋太字 */
.sch-table--merge .sch-dest{
  background:#EFEFEF;
  font-weight:700;
  white-space:nowrap;
}

/* 中央2列の結合セル（静岡発／鹿児島着） */
.sch-mainblock{ padding:0; }
.sch-maincell{
  min-height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  flex-direction:column;
  padding:12px 8px;
}
.sch-flight{ font-weight:800; }
.sch-time{   font-weight:700; }

/* 右側2列はゼブラで見やすく（左列＆結合列は除外） */
.sch-row:nth-child(odd) td:not(.sch-dest):not(.sch-mainblock){
  background:#F7F7F7;
}

/* 小さな注記（※1） */
.sch-note{ font-size:.85em; }



/* 左：行先（既定は薄グレー） */
.sch-table--merge .sch-dest{
  background:#EFEFEF;
  font-weight:700;
  white-space:nowrap;
}
/* 左を白にしたい行だけ： <td class="sch-dest dest-white">… */
.sch-table--merge .sch-dest.dest-white{
  background:#fff;
}

/* 右：2列（鹿児島発・離島着）を行単位で切替 */
/* グレーにしたい行： <tr class="sch-row is-gray-right">… */
.sch-table--merge .sch-row.is-gray-right td:nth-last-child(-n+2){
  background:#E9E9E9;
}
/* 白にしたい行： <tr class="sch-row is-white-right">… */
.sch-table--merge .sch-row.is-white-right td:nth-last-child(-n+2){
  background:#fff;
}

/* 既存の“奇数行ゼブラ”がある場合は打ち消し（任意） */
.sch-table--merge .sch-row:nth-child(odd) td:not(.sch-dest):not(.sch-mainblock){
  background:transparent;
}






:root{
  --cream:#FBF4DC;          /* クリーム色（調整可） */
  --y: #FFC72C;             /* 矢印黄 */
  --btn-green:#1FA463; --btn-red:#E24D3D; --btn-blue:#2F66B3;
}

/* 全幅クリーム＋中は白カード */
.lp-flow{ background:var(--cream); padding:40px 5%; }
.lp-flow .lp-container{ max-width:1200px; width:100%; margin-inline:auto; }
.flow-card{ background:#fff; border-radius:16px; padding:28px; }

/* タイトル（斜線付き）：cb-titleと同じ見た目に */
.cb-title, .flow-title{
  display:flex; align-items:center; justify-content:center;
  gap: clamp(12px,3vw,24px); padding-inline:clamp(4px,1.5vw,12px);
  position:relative; text-align:center; color:#55689a;
  font-family: var(--jp-head, inherit); font-weight:900; letter-spacing:.06em;
  font-size: clamp(18px,3.5vw,24px); margin:0 0 18px;
}


/* フロー5ステップ＋矢印 */
.flow-grid{
  display:grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr auto 1fr;
  gap:16px; align-items: start; margin:8px 0 16px;
}
.flow-step{ text-align:center; padding:6px; display:flex; flex-direction:column; align-items:center;   /* ← 上から順に */}
.flow-step img{ width:120px; height:auto; object-fit:contain; object-position:center;
  display:block; margin:0 auto 6px; }
.flow-step h4{ margin:4px 0 4px; font-weight:800; font-size:clamp(14px,2.3vw,18px); }
.flow-step p{ margin:0; font-size:clamp(12px,2vw,14px); color:#555; }

/* 右向き黄色三角（CSS） */
.flow-arrow{
  width:0;height:0; justify-self:center;align-self: center;  /* ← 追加 */
  border-left: 18px solid var(--y);
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
}

/* ボタン群 */
.flow-ctas{ display:flex; gap: 25px; justify-content:center; flex-wrap:wrap; margin-top:25px; }
.btn{
  display:inline-block; padding:14px 18px; border-radius:10px; font-weight:800;
  color:#fff; text-decoration:none;
}
.btn-green{ background:var(--btn-green); }
.btn-red{ background:var(--btn-red); }
.btn-blue{ background:var(--btn-blue); }

.flow-grid{
  list-style: none;      /* マーカー無効化 */
  padding-left: 0;       /* 左インデント除去 */
  margin: 8px 0 16px;
}
.flow-grid > li{ list-style: none; }      /* 念のため */
.flow-grid > li::marker{ content: ""; }   /* Safari 等の保険 */

/* サポーターズクラブCTA */
.cta-block{ max-width:1200px; margin:8px auto 0; text-align:center; }
.cta-btn{
  position:relative; display:block; width:100%;
  background:var(--btn-green); color:#fff; text-decoration:none;
  border-radius:20px;
  padding: clamp(16px,4vw,28px) clamp(20px,4vw,40px);
  box-shadow:0 4px 16px rgba(0,0,0,.08);
}
.cta-btn .cta-main{
  display:block; font-family:var(--jp-head,inherit);
  font-weight:900; letter-spacing:.04em;
  font-size: clamp(22px,5vw,48px);
}
.cta-btn .cta-sub{
  display:block; margin-top:.35em;
  font-weight:700; font-size: clamp(12px,2.6vw,20px);
}
.cta-btn .cta-arrow{
  position:absolute; top:50%;
  right: clamp(12px,3vw,28px); transform:translateY(-50%);
  width:0; height:0;
  border-left: clamp(14px,3.5vw,26px) solid #fff;
  border-top:  clamp(9px,2.2vw,16px) solid transparent;
  border-bottom: clamp(9px,2.2vw,16px) solid transparent;
}
.cta-note{
  margin:10px 0 0; color:#1FA463; font-weight:800;
  font-size: clamp(13px,2.6vw,14px);
}
.cta-block{ text-align:center; }
.cta-btn{
  width: 450px;
  height: 65px;
  padding: 6px 48px 8px 16px;     /* → 矢印スペース確保で右を広めに */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 3px;                       /* 行間 */
  border-radius: 12px;
      margin: 0 auto;
}

/* 主文＝大きく太く */
.cta-btn .cta-main{
  font-weight: 900;
  font-size: 22px;                /* ← 大 */
  line-height: 1;
}


.cta-btn .cta-arrow{
  right: 16px;
  border-left: 14px solid #fff;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
}
/* 補足＝小さく、はみ出しは省略記号で処理 */
.cta-btn .cta-sub{
  font-weight: 700;
  font-size: 10px;                /* ← 小 */
  line-height: 1.2;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 右の矢印は中央に固定 */
.cta-btn .cta-arrow{
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  width: 0; height: 0;
  border-left: 14px solid #fff;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
}

/* ボタン下の注意書きはそのまま */
.cta-note{ margin-top: 10px; }

.lp-btn,
.flow-ctas .btn{
  width: 450px;
  height: 65px;
  padding: 0;                     /* 高さで管理 */
  display: inline-flex;           /* サイズを効かせる */
  align-items: center;
  justify-content: center;
  font-size: 18px;
  border-radius: 12px;
}
.flow-step img{
  width: 120px;
  height: 120px;
  object-fit: contain;      /* 画像を潰さず内側にフィット */
  object-position: center;
  display: block;
  margin: 0 auto 6px;
}

.flow-ctas .btn{
  display: inline-flex;           /* 中央寄せのまま矢印も横に並べる */
  align-items: center;
  justify-content: center;
  gap: 8px;                       /* 文字と矢印の間隔 */
  white-space: nowrap;
  position: relative;
}

.flow-ctas .btn::after{
  content: "";
  display: inline-block;
  width: 0; height: 0;
  border-left: 14px solid #fff;   /* → 白い三角矢印 */
  border-top:   9px solid transparent;
  border-bottom:9px solid transparent;
}

/* 背景は白（デフォルト） */
.lp-schedule .lp-container{ max-width:1200px; margin-inline:auto; }

.sch-title{
  text-align:center; font-weight:900; letter-spacing:.06em;
  color:#333; font-size:clamp(18px,4.2vw,32px); margin:0 0 6px;
}
.sch-note{
  text-align:center; color:#666; font-size:clamp(12px,1.8vw,14px);
  margin:0 0 14px;
}

.sch-table-wrap{ overflow-x:auto; margin: 8px 0 18px; }
.sch-sub{ font-weight:800; margin: 0 0 6px; font-size: 18px;}

.sch-table{
  width:100%; min-width:820px; border-collapse:collapse;
  font-size:clamp(13px,1.9vw,15px); background:#fff;
}
.sch-table th,.sch-table td{
  border:1px solid #2b2b2b; text-align:center; padding:12px 10px;
}
.sch-table thead th{
  background:#FFF1A6;        /* 見出しの淡い黄 */
  font-weight:800;
}
.sch-table td small{ font-size:.9em; }

.sch-table td.is-main{
  background:#F2F2F2;        /* 静岡⇄鹿児島の共通区間をグレーで強調 */
  font-weight:700;
}





:root{
  --faq-pink:#FBE6E9;   /* クリーム寄りの薄ピンクに調整可 */
  --faq-red:#D94B44;
  --faq-gray:#E9E4DE;
}

.lp-faq2{ background: var(--faq-pink); padding: 40px 5%; }
.lp-faq2 .lp-container{ max-width:1200px; width:100%; margin-inline:auto; }
.faq-card{ background:#fff; border-radius:16px; padding:24px; }
.faq-title{
  text-align:center; font-weight:900; letter-spacing:.06em;
  font-size: clamp(18px,4.2vw,32px); margin:0 0 16px;
}

/* リスト本体 */
.qa-list{ list-style:none; margin:0; padding:0; }
.qa-item + .qa-item{ margin-top:10px; }

/* 質問行 */
.qa-q{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  gap:12px; text-align:left;
  background:#fff; border:1px solid var(--faq-gray);
  border-radius:8px; padding:12px 16px; cursor:pointer;
  font-weight:700; letter-spacing:.02em;
}
.qa-q:hover{ background:#FFF7F7; }
.qa-qtext{ flex:1; }

/* 右の＋ボタン（丸） */
.qa-toggle{
  position:relative; flex:0 0 auto;
  width:28px; height:28px; border-radius:50%;
  background: var(--faq-red);
}
.qa-toggle::before, .qa-toggle::after{
  content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:14px; height:2px; background:#fff; border-radius:2px;
}
.qa-toggle::after{ transform:translate(-50%,-50%) rotate(90deg); } /* 縦棒=プラス */

.qa-q[aria-expanded="true"] .qa-toggle::after{ display:none; } /* 開いたらマイナスだけに */

/* 回答ボックス */
.qa-a{
  border:1px solid var(--faq-gray); border-top:none;
  border-radius:0 0 8px 8px;
  padding:12px 16px; background:#fff;
}
.qa-a p{ margin:0; line-height:1.8; }
.qa-a-label{ color:var(--faq-red); font-weight:900; margin-right:.4em; }



/* 問合せセクション：中央600pxボックス */
.lp-contact{ padding:40px 5%; background:#fff; }
.contact-box{
  width:100%; max-width:600px; margin:0 auto; text-align:center;
}
.contact-title{
  margin:0 0 10px; font-weight:900; letter-spacing:.04em;
  font-size: clamp(18px,4vw,24px);
}
/* タイトル直下の点線 */
.contact-rule{
  width:100%; border:0; margin:10px 0 16px;
  border-top: 1.5px dashed #bdb7b0;
}

.contact-line{ margin:0 0 6px; font-weight:700; }
.contact-line a{ color:#2F66B3; font-weight:900; text-decoration:underline; }

.contact-note{
  margin:10px 0 0; color:#1FA463; font-weight:800;
  font-size: clamp(13px,2.6vw,16px);
}
/* SPでも中央のまま（600px上限なので特に追加不要） */




/* ===== バナーセクション ===== */
.lp-banners{  padding:40px 5%; }
.lp-banners .banners{ max-width:1200px; margin:auto; display:flex; flex-direction:column; gap:22px; align-items:center; }

/* ベース：背景画像＋黒70%レイヤー＋テキスト */
.bn{
  position:relative; display:block; overflow:hidden; border-radius:10px;
  width:250px; height:80px;        /* 下段の既定サイズ */
  background-position:center; background-size:cover; background-repeat:no-repeat;
  background-image: var(--bg);

  
}
.bn::before{
  content:"";
  position:absolute; inset:0;
  background-image: var(--bg);
  background-position:center;
  background-repeat:no-repeat;
  background-size: 100%;
  transform: scale(1);
  transition: transform .45s ease, background-size .45s ease, filter .45s ease;
  z-index: 0;
}

/* 黒70%オーバーレイ */
.bn::after{
  content:"";
  position:absolute; inset:0;
  background: rgba(0,0,0,.70);
  transition: background-color .35s ease;
  z-index: 1;
}
/* 文字は一番上 */

.bn__label{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:#fff; text-align:center; font-weight:900; letter-spacing:.06em;
  padding:0 10px; line-height:1.3; z-index:1; text-shadow:0 1px 2px rgba(0,0,0,.4);
  font-size: clamp(13px,1.6vw,18px);
}
.bn__label{ z-index: 2; }
/* 上段ワイド */
.bn--wide{ width:450px; height:100px; }

/* 下段グリッド（3列×4行） */
.bn-grid{
  display:grid;
  grid-template-columns: repeat(3, 250px);
  gap: 30px 30px;
  justify-content:center;
      margin-top: 30px;
}

/* 角丸をなくす（PC/スマホ共通） */
.bn,
.bn--wide{
  border-radius: 0 !important;
}

/* バナー見出し（黒背景に白） */
.bn-title{
  color:#000;
  margin:0 0 12px;
  text-align:center;
  font-family:var(--jp-head, inherit);
  font-weight:900;
  letter-spacing:.06em;
  font-size: clamp(18px,4.5vw,32px);

  /* 斜線デコ（cb-title/flow-title と同テイスト） */
  display:flex; align-items:center; justify-content:center;
  gap: clamp(12px,3vw,24px);
}

/* -------------- 固定長にしたい時用 -------------- */
.bn-title.--fixed::before,
.bn-title.--fixed::after{
  flex:0 0 var(--line,160px);  /* ← 長さを変数で指定 */
  width:var(--line,160px);
}
.bn-title::before,
.bn-title::after{
  content: "";
  flex: 1 1 0;               /* ← コンテナの左右へ伸ばす */
  height: 2px;               /* 線の太さ */
  background: currentColor;  /* 文字色と同じ（白） */
  opacity: .6;               /* 少しだけ薄く */
  transform: none;           /* ← 斜め回転を打ち消す */
  border-radius: 0;
  width: auto;               /* 以前のwidth指定を上書き */
}

.bn-title.is-short.--fixed { --line:100px; }
.bn-title.is-mid.--fixed   { --line:180px; }
.bn-title.is-long.--fixed  { --line:260px; }



/* ホバー時：ふわっと拡大＋少し明るく */
.bn:hover::before{ transform: scale(1.06); }
.bn:hover::after { background: rgba(0,0,0,.55); }

/* アクセシビリティ：動きを抑える設定の人には無効化 */
@media (prefers-reduced-motion: reduce){
  .bn::before, .bn::after{ transition: none; }
}

/* タッチ端末ではホバー拡大を無効化したい場合（任意） */
@media (hover: none){
  .bn:hover::before{ transform:none; }
  .bn:hover::after { background: rgba(0,0,0,.70); }
}

/* footer */
.lp-footer{ padding: 28px 5% 36px; background:#fff; }
.lp-footer .lp-container{ max-width:1200px; margin:0 auto; text-align:center; }

.ft-links{
  margin:0 0 16px;
  font-weight:900; letter-spacing:.04em;
  font-size: clamp(14px, 3.2vw, 10); /* 見出し行は少し大きめ */
  color:#111;
}
.ft-links a{ color:inherit; text-decoration:none; }
.ft-links a:hover{ text-decoration:underline; }
.ft-links .dot{ margin:0 .35em; opacity:.85; }

.ft-copy{
  margin:0;
  font-size: 12px;        /* ≒ 9pt */
  line-height:1.7;
  letter-spacing:.08em;
  color:#111;
}

@media (max-width:640px){
 
}
/* 右2セルをまとめてグレーに（行単位） */
.sch-table--merge .sch-row.is-gray-right > td:not(.sch-dest):not(.sch-mainblock){
  background:#E9E9E9 !important;
}

/* 右2セルを白に戻したい行（必要なら） */
.sch-table--merge .sch-row.is-white-right > td:not(.sch-dest):not(.sch-mainblock){
  background:#fff !important;
}



.sch-nav{
  display:flex; gap:12px; justify-content:center; flex-wrap:wrap;
  margin:20px 0;
}
.sch-btn{
  display:inline-block;
  background:#D94B44;  /* お好みで色変え */
  color:#fff;
  padding:10px 18px;
  border-radius:6px;
  font-weight:700;
  text-decoration:none;
  transition: background .3s;
}
.sch-btn:hover{ background:#1E4C8F; }
html{ scroll-behavior:smooth; }