/* LPでは共通CSSの字間をいったんリセット */
body.lp-fnb{
  letter-spacing: normal; /* ここがポイント */
}

/* =====================================================
   LP-FNB （飲食店向けライトパッケージ）
   方針：LP単独で崩れない / 既存サイトと干渉しない
   すべて body.lp-fnb 配下に閉じ込める
   ===================================================== */

/* ---- Base / Reset（LP内だけ） ---- */
body.lp-fnb{
  margin: 0;
  background: #fff;
  color: #1b1b1f;
  line-height: 1.85;
  font-family: system-ui, -apple-system, "Segoe UI", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.lp-fnb *{ box-sizing: border-box; }

body.lp-fnb img{
  max-width: 100%;
  height: auto;
  display: block;
}

/* ---- Container（LP共通の横幅） ---- */
body.lp-fnb .lp-fnb-hero__inner,
body.lp-fnb .lp-fnb-gaps,
body.lp-fnb .lp-fnb-features,
body.lp-fnb .lp-fnb-future,
body.lp-fnb .lp-fnb-plans,
body.lp-fnb .lp-fnb-cases,
body.lp-fnb .lp-fnb-faq,
body.lp-fnb .lp-fnb-final-cta,
body.lp-fnb .lp-fnb-mid-cta{
  max-width: 1040px;
  margin: 0 auto;
  padding: 80px 20px;
}

@media (max-width: 767px){
  body.lp-fnb .lp-fnb-hero__inner,
  body.lp-fnb .lp-fnb-gaps,
  body.lp-fnb .lp-fnb-features,
  body.lp-fnb .lp-fnb-future,
  body.lp-fnb .lp-fnb-plans,
  body.lp-fnb .lp-fnb-cases,
  body.lp-fnb .lp-fnb-faq,
  body.lp-fnb .lp-fnb-final-cta,
  body.lp-fnb .lp-fnb-mid-cta{
    padding: 60px 16px;
  }
}

/* =====================================================
   LP-FNB Header（最小構成 / 既存サイトと干渉しない）
   ===================================================== */

body.lp-fnb .site-header{
  position: sticky;
  top: 0;
  z-index: 50;

  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(10px);

  border-bottom: 1px solid #e6eefb;
}

body.lp-fnb .site-header{
  display: flex;
  align-items: center;
  justify-content: space-between;

  padding: 14px 16px;
}

body.lp-fnb .site-header .brand{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

body.lp-fnb .site-header .logo{
  display: block;
  height: 52px;     /* ← ここで“デカすぎ”を止める */
  width: auto;
}

body.lp-fnb .site-header .nav{
  display: flex;
  align-items: center;
  gap: 14px;
}

body.lp-fnb .site-header .nav a{
  color: rgba(27,27,31,0.78);
  text-decoration: none;
  font-size: 14px;
  padding: 8px 10px;
  border-radius: 10px;
}

body.lp-fnb .site-header .nav a:hover{
  background: rgba(12,60,120,0.06);
}

/* LP内のCTAボタンだけ整える（.btn.small が無くてもOK） */
body.lp-fnb .site-header .nav a.btn{
  background: rgba(12,60,120,0.10);
  color: #0c3c78;
  font-weight: 600;
}

/* SP */
@media (max-width: 767px){
  body.lp-fnb .site-header{
    padding: 10px 12px;
  }
  body.lp-fnb .site-header .nav a{
    padding: 8px 8px;
  }
}
/* =========================
   LP Header - 透過仕様
   ========================= */
/* LPだけ、ヘッダーを透過＋軽くぼかす */
body.lp-fnb .site-header{
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(230,238,251,0.9);
}

/* ロゴはCSSでサイズ管理（HTMLのwidth/heightより優先させたいなら） */
body.lp-fnb .site-header .logo{
  height: 34px;
  width: auto;
}


/* =====================================================
   LP-FNB｜HERO（背景画像＋左白ベール｜FIX版）
   方針：
   ・左：読みやすい白ベール
   ・右：写真をそのまま見せる
   ・CTAは画像に自然に乗る
   ===================================================== */

body.lp-fnb .lp-fnb-hero{
  position: relative;
  min-height: 72vh;

  background-image: url("/assets/lp-fnb/hero.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  display: flex;
  align-items: center;

  overflow: hidden;
}

/* 左白 → 右透明 のベール */
body.lp-fnb .lp-fnb-hero::before{
  content: "";
  position: absolute;
  inset: 0;

  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.92) 0%,
    rgba(255,255,255,0.78) 40%,
    rgba(255,255,255,0.30) 60%,
    rgba(255,255,255,0.00) 78%
  );

  pointer-events: none;
}

/* 中身（テキストエリア） */
body.lp-fnb .lp-fnb-hero__inner{
  position: relative;
  z-index: 1;

  max-width: 960px;
  margin-left: clamp(16px, 6vw, 96px);
  margin-right: auto;

  padding: 96px 20px;
  text-align: left;
}

/* タイトル */
body.lp-fnb .lp-fnb-hero__title{
  font-size: clamp(26px, 3.2vw, 36px);
  line-height: 1.6;
  font-weight: 500;

  margin: 0 0 16px;
  color: #0c3c78;
  letter-spacing: 0.04em;
}

/* リード文 */
body.lp-fnb .lp-fnb-hero__lead{
  max-width: 40em;
  margin: 0 0 28px;
  font-size: 15px;
  line-height: 1.9;
  color: rgba(12,60,120,0.9)
  letter-spacing: 0.02em;
}

/* CTA（画像の上に“置いてある”感じ） */
body.lp-fnb .lp-fnb-hero__cta a{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 14px 28px;
  border-radius: 999px;

  background: rgba(255,255,255,0.96);
  color: #0c3c78;

  font-size: 14px;
  font-weight: 600;
  text-decoration: none;

  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  transition: 0.2s ease;
}

body.lp-fnb .lp-fnb-hero__cta a:hover{
  background: #ffffff;
  box-shadow: 0 6px 16px rgba(0,0,0,0.14);
}

body.lp-fnb .lp-fnb-hero__cta a:focus-visible{
  outline: 3px solid rgba(47,130,233,0.35);
  outline-offset: 4px;
}

/* --------------------
   SP（スマホ）
   -------------------- */
@media (max-width: 767px){
  body.lp-fnb .lp-fnb-hero{
    min-height: 420px;
    background-position: center top;
  }

  body.lp-fnb .lp-fnb-hero__inner{
    margin-left: 0;
    padding: 72px 16px 64px;
  }

  body.lp-fnb .lp-fnb-hero__cta a{
    width: 100%;
  }
}


/* =====================================================
   SECTION 2｜伸ばせるポイント
   ===================================================== */
body.lp-fnb .lp-fnb-gaps__title{
  font-size: 26px;
  margin: 0 0 20px;
  font-weight: 700;
  color: #0c3c78;
}

body.lp-fnb .lp-fnb-gaps__lead{
  font-size: 16px;
  color: #444;
  margin: 0 0 28px;
}

body.lp-fnb .lp-fnb-gaps__list{
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
}

body.lp-fnb .lp-fnb-gaps__list li{
  padding-left: 1.2em;
  position: relative;
  margin-bottom: 12px;
  line-height: 1.8;
}

body.lp-fnb .lp-fnb-gaps__list li::before{
  content: "・";
  position: absolute;
  left: 0;
  color: #2f82e9;
}

body.lp-fnb .lp-fnb-gaps__close{
  font-size: 15px;
  line-height: 1.9;
  color: #444;
  margin: 0;
}

/* =====================================================
   SECTION 3｜できること（3つ）
   ===================================================== */
/* =====================================================
   LP-FNB｜FEATURES（画像入りで完成形）
   ===================================================== */

/* セクション全体の締まり */
body.lp-fnb .lp-fnb-features{
  padding-top: clamp(56px, 6vw, 88px);
  padding-bottom: clamp(56px, 6vw, 88px);
}

/* タイトル・リードの間隔 */
body.lp-fnb .lp-fnb-features__title{
  margin: 0 0 14px;
}

body.lp-fnb .lp-fnb-features__lead{
  margin: 0 0 28px;
  color: rgba(27,27,31,0.72);
  line-height: 1.9;
}

/* 3カードレイアウト（PCは3列、タブレット以下は1列） */
body.lp-fnb .lp-fnb-features__items{
  display: grid;
  gap: 22px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 960px){
  body.lp-fnb .lp-fnb-features__items{
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

/* カード本体（画像＋本文を“気持ちよく”） */
body.lp-fnb .lp-fnb-features__item{
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid #e6eefb;
  background: #fff;
  box-shadow: 0 10px 30px rgba(15, 35, 95, 0.06);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

body.lp-fnb .lp-fnb-features__item:hover{
  transform: translateY(-2px);
  border-color: #cfe0ff;
  box-shadow: 0 14px 36px rgba(15, 35, 95, 0.10);
}

/* 画像枠（比率固定でトリミング崩れ防止） */
body.lp-fnb .lp-fnb-features__media{
  margin: 0;
  width: 100%;
  aspect-ratio: 16 / 10;   /* ←ここで“間延び”を抑える */
  background: #f5f8ff;
  overflow: hidden;
}

body.lp-fnb .lp-fnb-features__media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* カード内テキスト領域 */
body.lp-fnb .lp-fnb-features__item h3,
body.lp-fnb .lp-fnb-features__item p{
  padding-left: 18px;
  padding-right: 18px;
}

body.lp-fnb .lp-fnb-features__item h3{
  margin: 16px 0 10px;
  font-size: 18px;
  line-height: 1.6;
  color: #0c3c78;
  letter-spacing: 0.02em;
}

body.lp-fnb .lp-fnb-features__item p{
  margin: 0;
  padding-bottom: 18px;
  color: rgba(27,27,31,0.78);
  line-height: 1.85;
  font-size: 14.5px;
}

/* SP時：文字が詰まらないよう少し余白調整 */
@media (max-width: 767px){
  body.lp-fnb .lp-fnb-features__item h3,
  body.lp-fnb .lp-fnb-features__item p{
    padding-left: 16px;
    padding-right: 16px;
  }

  body.lp-fnb .lp-fnb-features__media{
    aspect-ratio: 16 / 11;
  }
}
/* ---- 途中CTA（HTMLにある前提） ---- */
body.lp-fnb .lp-fnb-mid-cta{
  text-align: center;
  border-top: 1px solid #e5e9f2;
  border-bottom: 1px solid #e5e9f2;
  background: #f8fbff;
}

body.lp-fnb .lp-fnb-mid-cta__text{
  margin: 0 0 16px;
  color: #444;
}

body.lp-fnb .lp-fnb-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

body.lp-fnb .lp-fnb-btn--primary{
  padding: 14px 28px;
  border-radius: 999px;
  background: #2f82e9;
  color: #fff;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(47,130,233,0.25);
  transition: 0.2s ease;
}

body.lp-fnb .lp-fnb-btn--primary:hover{
  background: #11529f;
}

@media (max-width: 767px){
  body.lp-fnb .lp-fnb-btn--primary{
    width: 100%;
  }
}
/* =====================================================
   SECTION 4｜90日後の未来
   ===================================================== */
body.lp-fnb .lp-fnb-future__title{
  font-size: 26px;
  font-weight: 700;
  margin: 0 0 28px;
  color: #0c3c78;
}

body.lp-fnb .lp-fnb-future__cols{
  display: flex;
  gap: 32px;
}

@media (max-width: 900px){
  body.lp-fnb .lp-fnb-future__cols{
    flex-direction: column;
  }
}

body.lp-fnb .lp-fnb-future__col{
  flex: 1;
  padding: 20px;
  background: #fff;
  border: 1px solid #e4e9f3;
  border-radius: 12px;
}

body.lp-fnb .lp-fnb-future__col h3{
  font-size: 18px;
  font-weight: 700;
  margin: 0 0 14px;
  color: #11529f;
}

body.lp-fnb .lp-fnb-future__col ul{
  padding-left: 1em;
  margin: 0;
}

body.lp-fnb .lp-fnb-future__col li{
  margin-bottom: 10px;
  line-height: 1.7;
}

/* =====================================================
   SECTION 5｜料金プラン
   ===================================================== */
/* =====================================================
   LP-FNB｜PLANS（料金）完成
   目的：比較しやすい・Bが一瞬で分かる・安心感
   ===================================================== */

body.lp-fnb .lp-fnb-plans h2{
  margin: 0 0 12px;
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.5;
  color: #0c3c78;
}

body.lp-fnb .lp-fnb-plans__lead{
  margin: 0 0 28px;
  color: rgba(27,27,31,0.75);
  line-height: 1.9;
}

body.lp-fnb .lp-fnb-plans__items{
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

@media (max-width: 900px){
  body.lp-fnb .lp-fnb-plans__items{
    grid-template-columns: 1fr;
  }
}

body.lp-fnb .lp-fnb-plans__item{
  border-radius: 16px;
  border: 1px solid #e6eefb;
  background: #ffffff;
  padding: 18px 18px;
  box-shadow: 0 10px 26px rgba(15,35,95,0.06);
}

body.lp-fnb .lp-fnb-plans__item h3{
  margin: 0 0 12px;
  font-size: 16.5px;
  line-height: 1.6;
  color: rgba(27,27,31,0.88);
}

body.lp-fnb .lp-fnb-plans__item ul{
  margin: 0;
  padding-left: 1.2em;
  color: rgba(27,27,31,0.78);
  line-height: 1.85;
}

/* おすすめバッジを“ちゃんと表示”させる（必須） */
body.lp-fnb .lp-fnb-plans__item.highlight{
  position: relative;        /* ::before の基準 */
  padding-top: 48px;         /* バッジ用レーン（これはOK） */
}

body.lp-fnb .lp-fnb-plans__item.highlight::before{
  content: "おすすめ";       /* ← これが無いと出ない */
  position: absolute;        /* top/right を効かせる */
  top: 14px;
  right: 14px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 28px;
  padding: 0 12px;
  border-radius: 999px;

  background: rgba(47,130,233,0.12);
  border: 1px solid rgba(47,130,233,0.35);
  color: #11529f;

  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

/* =====================================================
   SECTION 6｜事例
   ===================================================== */
/* =====================================================
   LP-FNB｜CASES（事例）完成
   目的：写真→要点→ストーリー が自然に読める
   ===================================================== */

body.lp-fnb .lp-fnb-cases{
  padding-top: clamp(56px, 6vw, 92px);
  padding-bottom: clamp(56px, 6vw, 92px);
}

/* 画像：大きすぎて間延びしない＆きれいにトリミング */
body.lp-fnb .lp-fnb-cases__media{
  margin: 0 0 24px;
  border-radius: 18px;
  overflow: hidden;
  background: #f3f7ff;
  box-shadow: 0 14px 40px rgba(15, 35, 95, 0.10);
}

body.lp-fnb .lp-fnb-cases__media img{
  display: block;
  width: 100%;
  height: auto;
}

/* 見出しとリード */
body.lp-fnb .lp-fnb-cases h2{
  margin: 0 0 12px;
  font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: #0c3c78;
}

body.lp-fnb .lp-fnb-cases__lead{
  margin: 0 0 20px;
  color: rgba(27,27,31,0.75);
  line-height: 1.9;
}

/* 本文ブロック：読み物として整える */
body.lp-fnb .lp-fnb-cases__block{
  border-radius: 16px;
  border: 1px solid #e6eefb;
  background: #ffffff;
  padding: 20px 22px;
  box-shadow: 0 10px 26px rgba(15, 35, 95, 0.06);
}

/* 小見出し */
body.lp-fnb .lp-fnb-cases__block h3{
  margin: 0 0 12px;
  font-size: 18px;
  line-height: 1.6;
  color: #11529f;
  letter-spacing: 0.02em;
}

/* 本文 */
body.lp-fnb .lp-fnb-cases__block p{
  margin: 0;
  color: rgba(27,27,31,0.78);
  line-height: 1.95;
  font-size: 14.8px;
}

/* 本文中の「・」行が読みやすくなる（現状は <br> なので視覚改善だけ） */
body.lp-fnb .lp-fnb-cases__block p{
  word-break: break-word;
}

/* SP最適化 */
@media (max-width: 767px){
  body.lp-fnb .lp-fnb-cases__media{
    margin-bottom: 18px;
    border-radius: 14px;
  }

  body.lp-fnb .lp-fnb-cases__block{
    padding: 18px 16px;
  }
}

/* =====================================================
   SECTION 7｜Q&A
   ===================================================== */
body.lp-fnb .lp-fnb-faq__item{
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e4e9f3;
}

body.lp-fnb .lp-fnb-faq__item h3{
  font-size: 17px;
  margin: 0 0 8px;
  color: #0c3c78;
}

/* =====================================================
   SECTION 8｜最終CTA
   ===================================================== */
body.lp-fnb .lp-fnb-final-cta{
  text-align: center;
  background: #f4f8ff;
  border-top: 1px solid #e5e9f2;
}

body.lp-fnb .lp-fnb-final-cta h2{
  font-size: 26px;
  margin: 0 0 20px;
  color: #0c3c78;
}

body.lp-fnb .lp-fnb-final-cta a{
  margin-top: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 28px;
  background: #2f82e9;
  color: #fff;
  text-decoration: none;
  border-radius: 999px;
  font-weight: 600;
  transition: 0.2s ease;
}

body.lp-fnb .lp-fnb-final-cta a:hover{
  background: #11529f;
}

@media (max-width: 767px){
  body.lp-fnb .lp-fnb-final-cta a{
    width: 100%;
  }
}

/* cases：箇条書きをプロっぽく整える */
body.lp-fnb .lp-fnb-cases__label{
  margin: 14px 0 10px;
  font-weight: 600;
  color: rgba(17,82,159,0.95);
}

body.lp-fnb .lp-fnb-cases__list{
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  display: grid;
  gap: 10px;
}

body.lp-fnb .lp-fnb-cases__list li{
  position: relative;
  padding: 10px 12px 10px 38px;
  border: 1px solid #e6eefb;
  background: #f7fbff;
  border-radius: 12px;
  color: rgba(27,27,31,0.82);
  line-height: 1.7;
}

body.lp-fnb .lp-fnb-cases__list li::before{
  content: "";
  position: absolute;
  left: 14px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  transform: translateY(-50%);
  background: #2f82e9;
  box-shadow: 0 0 0 4px rgba(47,130,233,0.14);
}

/* =====================================================
   LP-FNB Footer（既存サイトと干渉しない）
   ===================================================== */

body.lp-fnb .site-footer{
  margin-top: 120px;
  padding: 40px 16px 24px;
  background: #f7f9fc;
  border-top: 1px solid #e6eefb;
}

body.lp-fnb .site-footer .footer-inner{
  max-width: 1040px;
  margin: 0 auto;
  display: flex;
  justify-content: center;
}

body.lp-fnb .site-footer .foot-links{
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  justify-content: center;
}

body.lp-fnb .site-footer .foot-links a{
  font-size: 13px;
  color: rgba(27,27,31,0.7);
  text-decoration: none;
}

body.lp-fnb .site-footer .foot-links a:hover{
  text-decoration: underline;
}

body.lp-fnb .site-footer .copy{
  margin-top: 24px;
  text-align: center;
  font-size: 12px;
  color: rgba(27,27,31,0.5);
}

/* ヘッダー全体 */
body.lp-fnb .site-header{
  padding: 18px 24px;
}

/* ロゴを主役に */
body.lp-fnb .site-header .logo{
  height: 56px;
  width: auto;
}

/* ナビを控えめに */
body.lp-fnb .site-header .nav a{
  font-size: 14px;
  opacity: 0.65;
}

/* CTAだけは残す */
body.lp-fnb .site-header .nav .btn{
  opacity: 1;
}
