/* =========================================================
   FC加盟募集LP デザイン強化レイヤー v4「premium」（E・2026-09-30）
   ・ベース(澤野原案の構造/文言)は不変。この上乗せ層だけで高級感を付与
   ・html は font-size:62.5%（1rem=10px）＝フォントは px 指定で統一
   ・素材で格上げ：温かいアイボリー地／アンティークゴールドの極細罫／
     明朝ディスプレイの字詰め／余白拡張／数字バンドの深化
   ・#lp_market は触らない（暗い背景画像＋白文字の設計を壊さないため）
   ========================================================= */
:root{
  --fc-ink:#221c18; --fc-sub:#5b524b; --fc-mute:#9a8f87;
  --fc-accent:#e0592f; --fc-accent-d:#c4471f; --fc-soft:#f6ece5;
  --fc-gold:#b0894f; --fc-gold-l:#caa46a;
  --fc-ivory:#faf5ef; --fc-cream:#fbf7f3; --fc-line:#ece0d6; --fc-hair:#e4d6c8;
  --fc-dark:#191410;
  --fc-wrap:min(1200px, 90vw);
  --fc-shadow:0 24px 60px -28px rgba(80,50,30,.28);
}
body{ font-family:"Noto Sans JP",sans-serif !important; color:var(--fc-ink) !important; background:#fff; -webkit-font-smoothing:antialiased; font-size:18px !important; line-height:1.95 !important; letter-spacing:.012em; }

/* ---- ヘッダー ---- */
.lp_header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.86); backdrop-filter:saturate(1.25) blur(12px); box-shadow:0 1px 0 rgba(120,90,60,.08); padding-top:15px; padding-bottom:15px; }
.lp_header .btn_01{ background:var(--fc-accent); box-shadow:0 10px 26px -8px rgba(224,89,47,.5); border-radius:100px; border:1px solid rgba(255,255,255,.25); }

/* ---- 見出し（英キッカー＝ゴールド／和文＝大きな明朝） ---- */
.headline_01{ text-align:center; margin-bottom:clamp(40px,4.4vw,70px); }
.headline_01 .eng{ display:block; font-family:"Noto Serif JP",serif; letter-spacing:.42em; font-size:13px !important; color:var(--fc-gold); font-weight:600; margin:0 0 24px !important; padding-bottom:0; text-transform:uppercase; }
.headline_01 .eng::after{ content:""; position:static !important; display:block; width:40px !important; height:1px !important; margin:16px auto 0 !important; background:linear-gradient(90deg,transparent,var(--fc-gold),transparent); }
.headline_01 .jp{ display:block; font-family:"Noto Serif JP",serif; font-weight:700; font-size:clamp(27px,3.4vw,50px) !important; line-height:1.52; color:var(--fc-ink); letter-spacing:.03em; }

/* ---- セクション余白・コンテナ ---- */
#lp_management,#lp_market,#lp_reason,#lp_data,#lp_model,#lp_support,#lp_flow,#lp_faq,#lp_contact{
  padding-top:clamp(88px,10vw,150px); padding-bottom:clamp(88px,10vw,150px);
}
.inner{ max-width:var(--fc-wrap) !important; margin-left:auto; margin-right:auto; padding-left:24px; padding-right:24px; }
#lp_management{ background:var(--fc-ivory); }
#lp_support{ background:var(--fc-ivory); }
#lp_reason{ background:#fff !important; }
#lp_model{ background:var(--fc-ivory); }

/* ---- 本文 ---- */
#lp_management p{ font-size:clamp(16px,1.2vw,19px); line-height:2.15; color:var(--fc-sub); max-width:800px; margin:0 auto 1.2em; text-align:center; }
#lp_management .headline_01 .jp{ line-height:1.48; }

/* ================= Reason：明朝＋ゴールド番号／上質な白カード ================= */
#lp_reason .item{ max-width:var(--fc-wrap) !important; margin-left:auto; margin-right:auto; }
#lp_reason .item .text{ transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s ease; border:1px solid var(--fc-line); box-shadow:var(--fc-shadow); }
#lp_reason .item:hover .text{ transform:translateY(-6px); box-shadow:0 34px 70px -30px rgba(224,89,47,.5) !important; }
#lp_reason .number{ font-family:"Noto Serif JP",serif !important; color:var(--fc-accent) !important; letter-spacing:.02em; }
#lp_reason .number::after{ content:""; display:inline-block; width:34px; height:1px; margin:0 0 10px 14px; vertical-align:middle; background:linear-gradient(90deg,var(--fc-gold),transparent); }
#lp_reason .headline{ font-family:"Noto Serif JP",serif; color:var(--fc-ink); letter-spacing:.02em; }
#lp_reason .item p{ color:var(--fc-sub); }
#lp_reason .fc_01{ color:var(--fc-accent); font-weight:700; }
#lp_reason .item .img img{ border-radius:14px; box-shadow:0 20px 44px -24px rgba(60,40,25,.4); }

/* ================= Data：漆黒×ゴールドの「数字」バンド ================= */
#lp_data{ background:radial-gradient(120% 100% at 50% 0%, #241d18 0%, var(--fc-dark) 60%); }
#lp_data .headline_01 .jp{ color:#fbf3ea !important; }
#lp_data .headline_01 .eng{ color:var(--fc-gold-l) !important; }
.fc-kpi__wrap{ max-width:var(--fc-wrap); margin:0 auto; padding:0 24px; }
.fc-kpi__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(202,164,106,.22); border:1px solid rgba(202,164,106,.28); border-radius:20px; overflow:hidden; box-shadow:0 40px 90px -40px rgba(0,0,0,.7); }
.fc-kpi{ background:linear-gradient(180deg,#1f1913,#181310); padding:56px 24px 48px; text-align:center; transition:background .3s ease; min-width:0; }
.fc-kpi__v{ overflow-wrap:break-word; }
.fc-kpi:hover{ background:linear-gradient(180deg,#2a2018,#201914); }
.fc-kpi__v{ display:block; font-family:"Noto Serif JP",serif; font-weight:700; font-size:clamp(34px,4vw,56px); color:#f6ede2; line-height:1.04; letter-spacing:.01em; }
.fc-kpi__v small{ font-size:.4em; margin-left:5px; font-weight:600; color:var(--fc-gold-l); }
.fc-kpi__l{ display:block; font-weight:700; font-size:18px; margin-top:20px; color:#efe7dd; letter-spacing:.02em; }
.fc-kpi__n{ display:block; font-size:13.5px; color:rgba(240,230,220,.5); margin-top:11px; line-height:1.65; }
.fc-kpi__note{ font-size:13.5px; color:rgba(240,230,220,.46); line-height:1.95; margin:38px auto 0; max-width:900px; text-align:center; }
.fc-kpi__cta{ text-align:center; margin-top:44px; }
.fc-kpi__cta .btn_01{ background:linear-gradient(180deg,var(--fc-accent),var(--fc-accent-d)); color:#fff; box-shadow:0 18px 40px -14px rgba(224,89,47,.6); border:1px solid rgba(202,164,106,.35); }

/* ---- ボタン（深いテラコッタ＋ゴールドの縁） ---- */
.btn_01{ transition:transform .22s ease, box-shadow .22s ease, background .22s ease; letter-spacing:.06em; font-weight:700; }
.btn_01:hover{ transform:translateY(-2px); background:var(--fc-accent-d); }

/* ================= Support ================= */
#lp_support .headline{ font-family:"Noto Serif JP",serif; letter-spacing:.02em; }
#lp_support .monitoring{ border-top:1px solid var(--fc-hair); }

/* ================= Model ================= */
#lp_model .headline{ font-family:"Noto Serif JP",serif; }
#lp_model .sub_headline{ color:var(--fc-accent); }

/* ================= Flow ================= */
#lp_flow .step_list .number{ font-family:"Noto Serif JP",serif; color:var(--fc-gold); }
#lp_flow .step_list .tit{ color:var(--fc-ink); font-weight:700; }

/* ================= FAQ：上品な白アコーディオン（ゴールドのQ/A） ================= */
#lp_faq{ background:var(--fc-ivory); }
#lp_faq .inner{ max-width:min(940px,92vw) !important; }
#lp_faq .accordion{ margin-bottom:16px !important; border:1px solid var(--fc-line); border-radius:16px; overflow:hidden; box-shadow:0 14px 34px -22px rgba(120,80,50,.28); background:#fff; }
#lp_faq .accordion .label{ background:#fff !important; color:var(--fc-ink) !important; font-size:clamp(16px,1.4vw,20px) !important; font-weight:700 !important; line-height:1.7 !important; padding:26px 62px 26px 80px !important; letter-spacing:.01em; }
#lp_faq .accordion .label::after{ content:"Q" !important; color:var(--fc-gold) !important; font-family:"Noto Serif JP",serif !important; font-size:38px !important; left:30px !important; top:20px !important; font-weight:700; }
#lp_faq .accordion .label::before{ border-top-color:var(--fc-accent) !important; border-right-color:var(--fc-accent) !important; right:30px !important; }
#lp_faq .accordion .content{ padding-left:80px !important; padding-right:30px !important; }
#lp_faq .accordion .content::before{ color:var(--fc-gold) !important; font-family:"Noto Serif JP",serif !important; font-size:38px !important; left:30px !important; font-weight:700; }
#lp_faq .accordion .content p{ color:var(--fc-sub); line-height:2.05; font-size:16px; }
#lp_faq .accordion .fc_01{ color:var(--fc-accent); font-weight:700; }

/* ---- アンカー飛び先がヘッダーに隠れないように ---- */
#lp_contact,#lp_reason,#lp_data,#lp_model,#lp_support,#lp_flow,#lp_faq{ scroll-margin-top:96px; }

/* ================= Contact（資料請求フォーム・上質仕様） ================= */
#lp_contact{ background:linear-gradient(180deg,#fff 0%,var(--fc-soft) 100%); }
#lp_contact .inner{ max-width:min(860px,92vw) !important; }
#lp_contact .headline_01 .eng{ color:var(--fc-gold); }

.fc-form__lead{ text-align:center; color:var(--fc-sub); font-size:16.5px; line-height:2; margin:0 auto 44px; max-width:660px; }
.fc-form{ position:relative; background:#fff; border:1px solid var(--fc-line); border-radius:24px; padding:clamp(30px,4.2vw,52px); box-shadow:var(--fc-shadow); }
.fc-form::before{ content:""; position:absolute; inset:0 0 auto 0; height:4px; border-radius:24px 24px 0 0; background:linear-gradient(90deg,var(--fc-gold),var(--fc-accent),var(--fc-gold)); }
.fc-form__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px 24px; }
.fc-field{ display:flex; flex-direction:column; gap:9px; }
.fc-field--full{ grid-column:1 / -1; }
.fc-field > span{ font-size:13.5px; font-weight:700; color:var(--fc-ink); letter-spacing:.03em; }
.fc-field > span b{ display:inline-block; margin-left:8px; font-size:10.5px; font-weight:700; color:#fff; background:var(--fc-accent); border-radius:4px; padding:2px 7px; vertical-align:middle; letter-spacing:.05em; }
.fc-field input, .fc-field select, .fc-field textarea{
  width:100%; font-family:inherit; font-size:16px; color:var(--fc-ink);
  background:var(--fc-cream); border:1px solid var(--fc-hair); border-radius:12px;
  padding:15px 16px; line-height:1.6; transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
  -webkit-appearance:none; appearance:none;
}
.fc-field input::placeholder, .fc-field textarea::placeholder{ color:#b7aca3; }
.fc-field textarea{ resize:vertical; min-height:112px; }
.fc-field select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23b0894f' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; }
.fc-field input:focus, .fc-field select:focus, .fc-field textarea:focus{
  outline:none; border-color:var(--fc-accent); background:#fff; box-shadow:0 0 0 3px rgba(224,89,47,.13);
}
.fc-form__subhead{ grid-column:1/-1; margin:34px 0 4px; padding-top:26px; border-top:1px solid var(--fc-hair); font-size:14px; font-weight:700; color:var(--fc-ink); letter-spacing:.02em; }
.fc-form__subhead span{ display:block; margin-top:5px; font-size:12.5px; font-weight:400; color:var(--fc-mute); letter-spacing:0; }
.fc-hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.fc-form__privacy{ font-size:12.5px; color:var(--fc-mute); text-align:center; margin:26px 0 0; line-height:1.75; }
.fc-form__submit{ text-align:center; margin-top:28px; }
.fc-form__submit .btn_01{
  display:inline-block; min-width:300px; background:linear-gradient(180deg,var(--fc-accent),var(--fc-accent-d)); color:#fff; font-weight:700;
  font-size:18px; letter-spacing:.08em; border:1px solid rgba(202,164,106,.4); cursor:pointer;
  padding:19px 52px; border-radius:100px; box-shadow:0 20px 44px -16px rgba(224,89,47,.62);
}
.fc-form__submit .btn_01:hover{ transform:translateY(-2px); }
.fc-form__submit .btn_01:disabled{ opacity:.6; cursor:default; transform:none; }
.fc-form__msg{ text-align:center; margin:22px auto 0; font-size:15px; line-height:1.85; max-width:600px; }
.fc-form__done{ text-align:center; margin-top:22px; padding-top:22px; border-top:1px solid var(--fc-hair); }
.fc-form__doclink{ display:inline-block; background:var(--fc-dark); color:#fff; font-weight:700; font-size:16px; letter-spacing:.04em; padding:16px 40px; border-radius:100px; text-decoration:none; box-shadow:0 14px 32px -12px rgba(32,27,24,.6); }
.fc-form__doclink:hover{ transform:translateY(-2px); }
.fc-form__donenote{ font-size:12.5px; color:var(--fc-mute); margin:14px 0 0; line-height:1.7; }
.fc-form__msg.is-success{ color:#1c7a4d; font-weight:700; }
.fc-form__msg.is-error{ color:#c4471f; font-weight:700; }
#lp_contact form > .fc-field--full{ margin-top:0; }

/* 応募区分 セグメント（法人/個人） */
.fc-seg{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.fc-seg__opt{ position:relative; display:flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 14px; border:1px solid var(--fc-hair); border-radius:12px; background:var(--fc-cream);
  font-size:15.5px; font-weight:700; color:var(--fc-sub); cursor:pointer; transition:all .18s ease; text-align:center; }
.fc-seg__opt input{ position:absolute; opacity:0; width:0; height:0; }
.fc-seg__opt::before{ content:""; width:18px; height:18px; border-radius:50%; border:2px solid var(--fc-hair); flex:0 0 auto; transition:all .18s ease; }
.fc-seg__opt:hover{ border-color:var(--fc-gold); }
.fc-seg__opt:has(input:checked), .fc-seg__opt.is-on{ border-color:var(--fc-accent); background:#fff; color:var(--fc-accent-d); box-shadow:0 0 0 3px rgba(224,89,47,.12); }
.fc-seg__opt:has(input:checked)::before, .fc-seg__opt.is-on::before{ border-color:var(--fc-accent); background:radial-gradient(circle at center, var(--fc-accent) 0 5px, #fff 6px); }
.fc-seg__opt input:focus-visible + span{ text-decoration:underline; }

/* 都道府県 複数選択（検索付き） */
.fc-pref{ position:relative; }
.fc-pref__box{ width:100%; text-align:left; display:flex; flex-wrap:wrap; gap:8px; align-items:center; min-height:52px;
  background:var(--fc-cream); border:1px solid var(--fc-hair); border-radius:12px; padding:10px 40px 10px 14px; cursor:pointer;
  font-family:inherit; font-size:16px; color:var(--fc-ink); position:relative; -webkit-appearance:none; appearance:none; }
.fc-pref__box::after{ content:""; position:absolute; right:16px; top:50%; width:0; height:0; margin-top:-3px;
  border-left:5px solid transparent; border-right:5px solid transparent; border-top:6px solid var(--fc-gold); }
.fc-pref__box[aria-expanded="true"]{ border-color:var(--fc-accent); background:#fff; box-shadow:0 0 0 3px rgba(224,89,47,.13); }
.fc-pref__ph{ color:#b7aca3; }
.fc-pref__chip{ display:inline-flex; align-items:center; gap:6px; background:var(--fc-soft); color:var(--fc-accent-d);
  border:1px solid rgba(224,89,47,.28); border-radius:100px; padding:5px 10px 5px 12px; font-size:13.5px; font-weight:700; }
.fc-pref__x{ font-style:normal; cursor:pointer; color:var(--fc-accent); font-weight:700; line-height:1; }
.fc-pref__panel{ position:absolute; z-index:20; left:0; right:0; top:calc(100% + 6px); background:#fff;
  border:1px solid var(--fc-line); border-radius:14px; box-shadow:0 24px 54px -20px rgba(80,50,30,.4); padding:12px; }
.fc-pref__search{ width:100%; font-family:inherit; font-size:15px; border:1px solid var(--fc-hair); border-radius:10px; padding:11px 14px; margin-bottom:10px; background:var(--fc-cream); }
.fc-pref__search:focus{ outline:none; border-color:var(--fc-accent); background:#fff; box-shadow:0 0 0 3px rgba(224,89,47,.12); }
.fc-pref__list{ display:grid; grid-template-columns:repeat(4,1fr); gap:6px; max-height:230px; overflow:auto; }
.fc-pref__opt{ font-family:inherit; font-size:14px; text-align:center; padding:9px 6px; border:1px solid var(--fc-line); border-radius:9px; background:#fff; color:var(--fc-sub); cursor:pointer; transition:all .15s ease; }
.fc-pref__opt:hover{ border-color:var(--fc-gold); color:var(--fc-ink); }
.fc-pref__opt.is-on{ background:var(--fc-accent); border-color:var(--fc-accent); color:#fff; font-weight:700; }

/* 入力エラー表示 */
.fc-field.is-invalid input, .fc-field.is-invalid select, .fc-field.is-invalid textarea{ border-color:#d64527 !important; background:#fdf3f0 !important; box-shadow:0 0 0 3px rgba(214,69,39,.12) !important; }
.fc-field.is-invalid .fc-pref__box{ border-color:#d64527 !important; background:#fdf3f0 !important; }
.fc-err{ display:block; margin-top:6px; color:#c4471f; font-size:12.5px; font-weight:700; }

@media screen and (max-width:768px){
  .fc-pref__list{ grid-template-columns:repeat(3,1fr); }
}

/* ================= Footer ================= */
.lp_footer{ background:#141009; }
.lp_footer p{ color:#a89d94; line-height:2; font-size:13.5px; }
.lp_footer small{ color:#786e64; }

/* ---- スクロール表示アニメ ---- */
@media (prefers-reduced-motion:no-preference){
  #lp_reason .item,.fc-kpi,#lp_support .item,#lp_faq .accordion{ opacity:0; transform:translateY(22px); animation:fcup .85s cubic-bezier(.2,.7,.3,1) forwards; }
  @keyframes fcup{ to{ opacity:1; transform:none; } }
}

/* ---- レスポンシブ ---- */
@media screen and (max-width:768px){
  body{ font-size:16.5px !important; }
  /* セクション余白を圧縮（間延び防止・バランス改善） */
  #lp_management,#lp_market,#lp_reason,#lp_data,#lp_model,#lp_support,#lp_flow,#lp_faq,#lp_contact{
    padding-top:58px !important; padding-bottom:58px !important;
  }
  .headline_01{ margin-bottom:30px; }
  .headline_01 .jp{ font-size:23px !important; line-height:1.55; }
  /* 本文リード：phrase改行(dsp_ib)がモバイルで中央ラグ改行になり崩れるため、通常フロー＋左寄せに */
  #lp_management p, #lp_market .lead, #lp_model .lead_1, #lp_model .lead_3, #lp_market p{ text-align:left !important; }
  #lp_market p .dsp_ib, #lp_model p .dsp_ib, #lp_management p .dsp_ib{ display:inline; }
  #lp_market .lead{ font-size:17px !important; line-height:1.95 !important; font-weight:700; }
  #lp_market p{ font-size:15.5px; line-height:1.95; }
  .headline_01 .eng{ font-size:12px !important; letter-spacing:.32em; margin-bottom:18px !important; }
  .inner{ padding-left:20px; padding-right:20px; }
  /* 数字バンド：見切れ防止（数字を縮小し2列に収める） */
  .fc-kpi__wrap{ padding:0 20px; }
  .fc-kpi__grid{ grid-template-columns:repeat(2,1fr); border-radius:16px; }
  .fc-kpi{ padding:26px 8px 22px; }
  .fc-kpi__v{ font-size:23px; letter-spacing:0; }
  .fc-kpi__v small{ font-size:.5em; margin-left:2px; }
  .fc-kpi__l{ font-size:13.5px; margin-top:12px; }
  .fc-kpi__n{ font-size:11.5px; margin-top:8px; line-height:1.5; }
  .fc-kpi__note{ font-size:12px; margin-top:26px; }
  .fc-kpi__cta{ margin-top:30px; }
  .fc-form__grid{ grid-template-columns:1fr; }
  .fc-form__submit .btn_01{ width:100%; min-width:0; }
  #lp_faq .accordion .label{ padding:20px 52px 20px 62px !important; }
  #lp_faq .accordion .content{ padding-left:62px !important; }
}
