/* ===== FAVTOWN 自治体向け統合サイト — トップ固有スタイル ===== */

/* ============================================================
   ボタンルール（シャドウ共通・hoverは背景一段濃く＋シャドウ濃く）
   CTAカラー＝オレンジ（--secondary）
   オレンジ背景・白文字     … お問い合わせ（主CV） .header-cta / .cta-primary / .plan-cta
   白背景・オレンジ枠・文字 … 資料DL（副CV）       .header-cta--ghost / .cta-ghost
   黄背景・黒文字          … 回遊               .function-link / .cta-nav
   白背景・黒文字（枠なし） … バナー内の詳しく見る .cross-banner-link
   緑・白ボタンは適宜使用／機能色はメディア・DBともオレンジ（--secondary）
   ============================================================ */
.cta-primary{
  background:var(--secondary);color:var(--white);
  box-shadow:0 4px 12px rgba(0,0,0,.10);
}
.cta-primary:hover{
  background:var(--secondary-hover);
  box-shadow:0 6px 16px rgba(0,0,0,.14);
}

/* ===== Header（2ボタン化） ===== */
.logo img{height:48px}
.header-ctas{display:flex;align-items:center;gap:10px;margin-left:28px}
.header-ctas .header-cta{margin-left:0;min-width:150px;text-align:center;font-size:14px;padding:6px 20px}
.header-cta{background:var(--secondary);color:var(--white)}
.header-cta:hover{background:var(--secondary-hover);box-shadow:0 4px 10px rgba(0,0,0,.10)}
.header-cta--ghost{
  background:var(--white);color:var(--secondary);
  border:2px solid var(--secondary);
}
.header-ctas .header-cta--ghost{padding:4px 20px}
.header-cta--ghost:hover{
  background:var(--secondary-light);
  box-shadow:0 4px 10px rgba(0,0,0,.10);
}
/* タブレット〜中型デスクトップ帯（841〜1400px）: ナビが機能ラベル付きで長くなり収まらないため縮小 */
/* .header .header-inner .nav は後方の「ヘッダーナビ7項目対応」(.header .nav) より詳細度を上げて確実に上書きする */
@media (min-width:841px) and (max-width:1400px){
  .header-inner{padding:10px 14px}
  .logo img{height:38px}
  .header .header-inner .nav{gap:8px;font-size:13px}
  .header-ctas{margin-left:8px;gap:6px}
  .header-ctas .header-cta{min-width:0;font-size:12px;padding:7px 12px}
  .header-ctas .header-cta--ghost{padding:5px 12px}
}

/* ===== 資料DL（白背景・オレンジ枠・オレンジ文字） ===== */
.cta-ghost{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--white);color:var(--secondary);text-decoration:none;
  border:2px solid var(--secondary);
  padding:18px 34px;border-radius:999px;
  font-weight:700;font-size:17px;
  box-shadow:0 4px 12px rgba(0,0,0,.10);
  transition:background .15s ease, box-shadow .15s ease;
}
.cta-ghost:hover{
  background:var(--secondary-light);
  box-shadow:0 6px 16px rgba(0,0,0,.14);
}
.cta-ghost .material-symbols-rounded{font-size:22px}

/* ===== Hero ===== */
.hero{
  background:var(--primary);
  padding:64px 24px;
  position:relative;overflow:hidden;
}
.hero .container{position:relative;z-index:1;max-width:1320px}
.hero-circle{
  position:absolute;width:320px;height:auto;
  pointer-events:none;z-index:0;
}
.hero-circle--tl{top:-110px;left:-110px;transform:scaleX(-1)}
.hero-circle--br{bottom:-110px;right:-110px;transform:scaleX(-1) rotate(90deg)}
.hero-card{
  position:relative;
  background:var(--white);
  border-radius:24px;
  padding:96px 24px 80px;
  text-align:center;
}
.hero-content{position:relative;z-index:2}
.hero-badge{
  position:absolute;top:24px;right:24px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:8px;
  padding:14px 24px;
  z-index:3;
}
.hero-badge img{display:block;height:48px;width:auto}
.hero p.hero-lead{
  font-size:18px;font-weight:700;color:var(--ink);
  margin:0 0 8px;letter-spacing:.04em;
}
.hero h1{
  font-weight:700;
  font-size:48px;line-height:1.5;margin:0 0 24px;letter-spacing:.02em;
  font-feature-settings:"palt";
}
.hero h1 .accent{color:var(--secondary)}
.hero p{color:var(--ink);margin:0 0 40px;font-size:18px;line-height:1.9;font-weight:500}
.hero-actions{
  display:flex;justify-content:center;align-items:center;gap:24px;flex-wrap:wrap;
  margin:0 0 28px;
}
.hero-actions .cta-primary,
.hero-actions .cta-ghost{min-width:300px;justify-content:center}

/* ===== ストーリーナビ（lg2） ===== */
.story-nav{
  background:var(--white);
  border-bottom:1px solid var(--line);
  padding:20px 24px;
}
.story-nav-inner{
  max-width:1120px;margin:0 auto;
  display:flex;align-items:center;justify-content:center;gap:10px;
}
.story-step{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:999px;
  padding:8px 18px;
  font-size:15px;font-weight:700;color:var(--ink);
  text-decoration:none;white-space:nowrap;
  box-shadow:0 2px 6px rgba(0,0,0,.06);
  transition:background .15s ease,box-shadow .15s ease;
}
.story-step:hover{
  background:var(--primary-light);
  box-shadow:0 4px 10px rgba(0,0,0,.12);
}
.story-num{font-size:13px;font-weight:700;color:var(--secondary);letter-spacing:.04em}
.story-arrow{font-size:18px;color:var(--muted);flex-shrink:0}
@media (max-width:840px){
  .story-nav{padding:14px 0}
  .story-nav-inner{
    justify-content:flex-start;
    overflow-x:auto;
    padding:2px 16px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .story-nav-inner::-webkit-scrollbar{display:none}
  .story-step{font-size:14px;padding:7px 14px}
}

/* ヒーロー主要数値（1ページLP）
   2026-07-31: HTMLから削除済みで現在未使用。第2弾でこの枠に県・中核市の紋章ロゴを
   並べる案があるため瀬戸さん判断で温存。未使用CSSの刈り込み時も削除しないこと。
   復元用HTMLは git の 30452a1 を参照 */
.hero-stats{
  display:flex;justify-content:center;gap:14px 40px;flex-wrap:wrap;
  margin-top:6px;
}
.hero-stat{display:flex;flex-direction:column;align-items:center}
.hero-stat b{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:30px;font-weight:700;color:var(--secondary);line-height:1.2;
}
.hero-stat b span{font-size:0.55em}
.hero-stat-label{font-size:12px;color:var(--muted)}
/* ヘッダーナビ7項目対応（base.cssのgap24px/16pxを上書き） */
.header .nav{gap:14px;font-size:15px}
/* 写真スクエア（既存LPと共通の演出） */
.hero-square{
  position:absolute;display:block;
  border-radius:8px;z-index:1;
  background:var(--middle-gray) center/cover no-repeat;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
}
.hero-square.s1{background-image:url(../images/photo-01.png)}
.hero-square.s2{background-image:url(../images/photo-08.png)}
.hero-square.s3{background-image:url(../images/photo-09.png)}
.hero-square.s4{background-image:url(../images/photo-04.png)}
.hero-square.s5{background-image:url(../images/photo-05.png)}
.hero-square.s6{background-image:url(../images/photo-03.png)}
.hero-square.s7{background-image:url(../images/photo-07.png)}
.hero-square.s8{background-image:url(../images/photo-02.png)}
.hero-square.s9{background-image:url(../images/photo-06.png)}
.hero-square.s1{top:72px;left:-32px;width:132px;height:132px}
.hero-square.s2{top:32px;left:200px;width:88px;height:88px}
.hero-square.s3{top:160px;left:60px;width:104px;height:104px}
.hero-square.s4{bottom:-16px;left:180px;width:120px;height:120px}
.hero-square.s5{bottom:100px;left:32px;width:84px;height:84px}
.hero-square.s6{top:120px;right:48px;width:144px;height:144px}
.hero-square.s7{top:240px;right:140px;width:96px;height:96px}
.hero-square.s8{bottom:-32px;right:200px;width:132px;height:132px}
.hero-square.s9{bottom:60px;right:-32px;width:112px;height:112px}
.hero-dot{
  position:absolute;top:58%;left:200px;
  transform:translateY(-50%);
  width:90px;height:auto;
  pointer-events:none;z-index:1;
}
.hero-fill{
  position:absolute;top:390px;right:150px;
  width:48px;height:auto;
  pointer-events:none;z-index:1;
}

/* ===== こんな課題 ===== */
#problems{background:var(--bg-soft);position:relative;overflow:hidden}
#problems .eyebrow{color:var(--secondary)}
.problems-circle{
  position:absolute;width:380px;height:auto;
  pointer-events:none;z-index:0;
}
.problems-circle--tl{top:-150px;left:-150px}
.problems-circle--br{bottom:-30px;right:-90px;width:260px}
#problems .container{position:relative;z-index:1}
/* 課題カード直上のラベル（lg2） */
.challenge-label{
  margin:48px auto 20px;text-align:center;
  width:fit-content;
  background:var(--muted);color:var(--white);
  border-radius:999px;padding:8px 28px;
  font-size:20px;font-weight:700;
}
.challenge-label-num{margin-left:8px;white-space:nowrap}
@media (max-width:840px){
  .challenge-label{margin:32px auto 16px;font-size:16px;padding:7px 20px}
}
.challenge-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.challenge-card{
  position:relative;
  background:var(--white);border:1px solid var(--line);border-radius:16px;
  padding:32px;
}
.challenge-rank{
  display:flex;align-items:center;justify-content:center;
  width:fit-content;margin:0 auto;
  padding:5px 16px;border-radius:999px;
  background:var(--muted);color:var(--white);
  font-size:13px;font-weight:700;letter-spacing:.02em;
}
/* 数値が何を測ったものかを示す一行（調査の設問文）
   中身は .challenge-metric-text 1要素にまとめてあるので、
   フレックスにしても折り返しは通常どおり効く */
.challenge-card p.challenge-metric{
  margin:0 0 4px;font-size:13px;font-weight:700;
  color:var(--ink);text-align:center;line-height:1.7;
  display:flex;align-items:center;justify-content:center;
  /* 3枚のカードで数値の縦位置を揃えるため2行分の高さを確保 */
  min-height:calc(13px * 1.7 * 2);
}
/* 中間幅ではカード幅が狭く3行になるものがあるため3行分を確保 */
@media (min-width:841px) and (max-width:1200px){
  .challenge-card p.challenge-metric{min-height:calc(13px * 1.7 * 3)}
  .challenge-card h3{min-height:calc(22px * 1.5 * 3)}
}
.challenge-stat{
  display:flex;align-items:baseline;justify-content:center;gap:10px;
  margin:0 0 18px;
}
.challenge-stat b{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:40px;font-weight:700;color:var(--secondary);line-height:1.1;
  white-space:nowrap;
}
.challenge-stat b .unit{font-size:0.4em;margin-left:2px}
.challenge-pct{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:20px;font-weight:700;color:var(--ink);white-space:nowrap;
}
.challenge-card h3{
  /* 3枚のカードで説明行と数値の縦位置を揃えるため2行分の高さを確保 */
  min-height:calc(22px * 1.5 * 2);
  display:flex;align-items:center;justify-content:center;
  margin:16px 0 10px;font-size:22px;font-weight:700;
  color:var(--ink);line-height:1.5;text-align:center;
}
.challenge-card p{margin:0;font-size:16px;color:var(--ink);line-height:1.85}
/* 2026-07-31: データ補足はHTMLから削除済みで現在未使用。復活の可能性があるため温存。
   未使用CSSの刈り込み時も削除しないこと。復元用HTMLは git の 73fc7f3 を参照 */
.challenge-data{
  margin-top:14px;padding-top:14px;
  border-top:1px solid var(--line);
  font-size:13px;color:var(--muted);line-height:1.8;
}
.problems-source{
  text-align:left;font-size:12px;color:var(--muted);
  margin:24px 0 0;font-weight:500;
}
.problems-closing{
  max-width:860px;margin:36px auto 0;
  background:var(--white);border:3px solid var(--line);border-radius:16px;
  padding:28px 32px;
}
.problems-closing p{margin:0;font-size:16px;line-height:1.9;text-align:center}
.problems-closing strong{color:var(--secondary)}

/* ===== FAVTOWN（ファボタウン）の特長ラベル（特長1・特長2の見出し上バッジ） ===== */
.feature-label{
  display:block;width:fit-content;max-width:100%;
  margin:0 auto 26px;
  background:var(--secondary);color:var(--white);
  border-radius:8px;padding:7px 26px;
  font-size:19px;font-weight:700;letter-spacing:.02em;
  text-align:center;line-height:1.6;
}
.feature-label .name-sub{font-size:0.78em;margin:0 1px}
.feature-label b{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:24px;font-weight:700;margin:0 2px 0 5px;
}
.feature-label-sep{margin:0 4px;opacity:.55}
@media (max-width:840px){
  .feature-label{padding:6px 18px;font-size:15px;margin-bottom:20px}
  .feature-label b{font-size:19px}
}

/* ===== 出身者ならではの3つの価値（特長1・営業資料の Point 01-03 より） ===== */
.value-panel{
  margin-top:48px;
  background:var(--primary-light);border-radius:20px;
  padding:36px 40px 40px;
}
.value-points-title{
  margin:0 0 22px;text-align:center;
  font-size:22px;font-weight:700;color:var(--ink);
}
.value-points{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.value-point{
  background:var(--white);border-radius:16px;
  padding:24px 24px 26px;
}
.value-point h4{
  margin:0 0 16px;padding-bottom:12px;
  border-bottom:2px solid var(--primary);
  font-size:23px;font-weight:700;color:var(--secondary);line-height:1.4;
  text-align:center;
}
.value-point ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.value-point li{
  display:flex;gap:8px;
  font-size:16px;line-height:1.8;color:var(--ink);
}
.value-point li .material-symbols-rounded{
  flex-shrink:0;font-size:20px;color:var(--secondary);line-height:1.45;
}
@media (max-width:840px){
  .value-panel{margin-top:32px;padding:22px 16px 24px;border-radius:16px}
  .value-points-title{margin:0 0 14px;font-size:18px}
  .value-points{grid-template-columns:1fr;gap:12px}
  .value-point{padding:20px}
  .value-point h4{font-size:20px;margin-bottom:12px;padding-bottom:10px}
  .value-point li{font-size:15px}
}

/* ===== 考え方（出身者着目・1ページLP新設） ===== */
/* 上下の余白は共通セクション（96px）を使う。2026-08-05 に狭い上書き（48/24px）を解除 */
#concept{position:relative;overflow:hidden;background:var(--white)}
/* コンセプト見出し（lg2・eyebrowとサブを廃してタイトルを主役に） */
/* 見出しサイズ・下余白は共通の .section-title に揃える（2026-08-05／旧: 44px・下56px） */
/* コンセプト本文（lg2・ビジュアル削除にともない1カラム／将来ビジュアルを戻す場合は2カラムへ） */
.concept-row{
  max-width:880px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:48px;align-items:center;
}
.concept-row .concept-message p{text-align:center}
@media (max-width:840px){
  .concept-row .concept-message p{text-align:left}
}
/* ビジュアルプレースホルダー（素材確定まで） */
.concept-visual{
  aspect-ratio:16/9;
  background:var(--line);border-radius:16px;
  display:flex;flex-direction:column;justify-content:center;gap:10px;
  padding:28px 32px;
}
.concept-visual .cv-title{
  margin:0 0 4px;text-align:center;
  font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.04em;
}
.concept-visual .cv-line{
  margin:0;font-size:12px;font-weight:500;color:var(--muted);line-height:1.8;
}
.concept-visual .cv-label{
  display:inline-block;margin-right:8px;
  font-weight:700;text-transform:uppercase;letter-spacing:.04em;
}
/* セクション間ブリッジ文（lg2・コンセプト→課題／課題→解決策） */
.bridge-copy{
  margin:64px 0 0;text-align:center;
  font-size:24px;font-weight:700;line-height:1.9;
  letter-spacing:.02em;
}
.bridge-copy strong{color:var(--secondary)}
/* 課題セクション最下部のオレンジ帯（lg2） */
.problems-bridge-band{
  position:relative;z-index:1;
  margin:56px -24px -96px;
  background:var(--secondary);
  padding:36px 24px;
}
.problems-bridge-band .bridge-copy{margin:0;color:var(--white)}
.problems-bridge-band .bridge-copy strong{color:var(--white)}
.concept-message p{margin:0;font-size:18px;line-height:2}
.concept-message strong{color:var(--secondary)}
/* 単語の途中で折り返さないための汎用ユーティリティ
   （語の最後の1文字だけが次行に落ちるのを防ぐ。囲んだ範囲は必ず1行に収まる） */
.keep-phrase{white-space:nowrap}

/* ===== 数字で見る ===== */
.results{background:var(--primary-light);position:relative;overflow:hidden}
@media (min-width:841px){
  #problems,
  #actions{
    width:calc(100% - 96px);
    max-width:1360px;
    margin:64px auto;
    border-radius:32px;
  }
}
/* 黄色背景セクションはフルブリードのまま四隅角丸 */
.results,
#solution{border-radius:64px}
@media (max-width:840px){
  .results,
  #solution{border-radius:40px}
}
/* 解決策→事例紹介の間の余白（lg2・旧施策セクション除去に伴う） */
.results{margin-top:64px}
@media (max-width:840px){
  .results{margin-top:24px}
  #problems{margin-bottom:24px}
}
/* 事例紹介タイトル左側のドット円装飾（lg2） */
.results-dot{
  position:absolute;
  left:20%;top:80px;
  width:130px;height:auto;
  pointer-events:none;z-index:0;
}
@media (max-width:840px){
  .results-dot{left:6%;top:36px;width:64px}
}
.results-circle{
  position:absolute;width:640px;height:auto;
  pointer-events:none;z-index:0;
}
.results-circle--tl{top:-220px;left:-220px;transform:scaleX(-1)}
.results-circle--br{bottom:-220px;right:-220px;transform:scaleX(-1) rotate(90deg)}
.results .container{position:relative;z-index:1}
.results-map{
  position:absolute;top:-16px;right:80px;
  width:180px;height:auto;
  pointer-events:none;
}
/* ふるさと便stats（事例紹介セクション上部） */
.stats-panel{background:var(--white);border-radius:16px;padding:56px;margin-bottom:32px}
.stats-panel .kpi-card{border:1px solid var(--line)}
.stats-panel .kpi-source{margin:0}
.stats-lead-row{
  display:flex;align-items:center;justify-content:center;gap:24px;
  margin:0 0 28px;
}
.stats-lead-img{width:150px;height:auto}
.stats-lead{
  text-align:center;font-size:24px;font-weight:700;color:var(--ink);
  margin:0;line-height:1.5;
}
/* ふるさと便の会員の声（lg2） */
.stats-voices-title,.stats-video-title{
  margin:28px 0 14px;
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:18px;font-weight:700;color:var(--ink);
}
.stats-voices-title .material-symbols-rounded,
.stats-video-title .material-symbols-rounded{font-size:22px;color:var(--secondary)}
@media (max-width:840px){
  .stats-voices-title,.stats-video-title{margin:24px 0 12px;font-size:16px}
}

/* ふるさと便のメディア掲載動画（lg2） */
.stats-video{margin:0 0 4px}
.video-frame{
  position:relative;max-width:720px;margin:0 auto;aspect-ratio:16/9;
  border-radius:12px;overflow:hidden;background:var(--ink);
}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-caption{
  max-width:720px;margin:8px auto 0;
  font-size:12px;color:var(--muted);text-align:center;line-height:1.7;
}
.stats-voices{
  list-style:none;margin:0 0 18px;padding:0;
  display:grid;grid-template-columns:repeat(2,1fr);gap:14px;
}
.stats-voices li{
  background:var(--primary-light);border-radius:12px;
  padding:16px 18px;font-size:14px;line-height:1.8;color:var(--ink);
}
@media (max-width:840px){
  .stats-voices{grid-template-columns:1fr;gap:10px}
  .stats-voices li{padding:14px 16px;font-size:13px}
}

/* ふるさと便見出し下の説明コピー（lg2） */
.stats-lead-note{
  margin:-12px 0 24px;text-align:center;
  font-size:16px;color:var(--ink);line-height:1.9;
}
@media (max-width:840px){
  .stats-lead-note{margin:-8px 0 20px;font-size:14px;text-align:left}
}
.stats-matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}
.kpi-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:12px;
}
.kpi-note{font-size:14px;font-weight:700;color:var(--ink);margin-top:8px}
.stats-voice{margin:0 0 12px;text-align:right}
.voice-link{
  display:inline-flex;align-items:center;gap:4px;
  font-size:16px;font-weight:700;color:var(--secondary);text-decoration:none;
  border-bottom:1px solid var(--secondary);
}
.voice-link:hover{color:var(--secondary-hover);border-color:transparent}
.voice-link .material-symbols-rounded{font-size:18px}
.kpi-card{
  background:var(--white);border-radius:16px;
  padding:0 0 16px;text-align:center;
  overflow:hidden;
}
.kpi-card .kpi-label{
  font-size:19px;font-weight:700;
  color:var(--white);background:var(--secondary);
  padding:14px 16px;margin:0 0 16px;
  letter-spacing:.04em;
}
.kpi-card .kpi-value{
  font-family:"Mulish",sans-serif;
  font-size:44px;font-weight:700;color:var(--secondary);
  padding:0 4px;line-height:1.1;letter-spacing:-0.02em;
  white-space:nowrap;
}
.kpi-card .kpi-unit{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:0.5em;margin-left:4px;color:var(--secondary);
}
.kpi-card .kpi-unit--prefix{margin-left:0;margin-right:4px}
.kpi-sub{
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 12px;
}
.kpi-chip{
  background:var(--white);border-radius:12px;padding:14px 16px;
  display:flex;align-items:baseline;justify-content:center;gap:10px;
}
.kpi-chip b{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:24px;font-weight:700;color:var(--secondary);line-height:1.2;white-space:nowrap;
}
.kpi-chip span{font-size:13px;color:var(--ink);font-weight:700}
/* 「約」「%」などの単位はKPIカードと同じく数字より小さく */
.kpi-chip b .unit{font-size:0.6em;margin-left:2px}
.kpi-chip b .unit--prefix{margin-left:0;margin-right:2px}
.kpi-source{
  text-align:left;font-size:12px;color:var(--muted);
  margin:0 0 36px;font-weight:500;
}
.results-logos{
  background:var(--white);border-radius:16px;padding:40px 48px;
  margin-top:48px;
}
.logos{
  display:flex;justify-content:center;gap:24px;flex-wrap:wrap;
  padding:8px 0;
}
.logos .logos-headline{
  width:100%;text-align:center;
  font-size:28px;font-weight:700;color:var(--secondary);
  margin:0;line-height:1.5;
}
.logos-headline .logos-decor{
  display:inline-block;
  color:var(--secondary);
  margin:0 14px;
  font-size:1.1em;
  transform:translateY(2px);
}
.logo-chip{
  display:flex;flex-direction:column;align-items:center;gap:12px;
  font-size:16px;color:var(--ink);font-weight:700;
  flex:1 1 0;min-width:0;max-width:200px;
}
.logo-chip img{
  display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;
  border-radius:20px;border:1px solid var(--line);
}

/* ===== 最終CTA ===== */
.final-cta{
  background:var(--primary-light);
  color:var(--ink);text-align:center;padding:104px 24px 216px;
  position:relative;overflow:hidden;
  border-radius:64px 64px 0 0;
}
.final-cta .container{position:relative;z-index:2}
.cta-decor{
  position:absolute;top:0;bottom:0;left:50%;
  transform:translateX(-50%);
  width:100%;max-width:1400px;
  pointer-events:none;
}
.cta-square{
  position:absolute;display:block;
  background:var(--middle-gray) center/cover no-repeat;border-radius:8px;
  z-index:1;pointer-events:none;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
}
.cta-square.cs1{background-image:url(../images/photo-01.png)}
.cta-square.cs2{background-image:url(../images/photo-04.png)}
.cta-square.cs3{background-image:url(../images/photo-05.png)}
.cta-square.cs4{background-image:url(../images/photo-02.png)}
.cta-square.cs5{background-image:url(../images/photo-06.png)}
.cta-square.cs6{background-image:url(../images/photo-09.png)}
.cta-square.cs1{top:40px;left:140px;width:140px;height:140px}
.cta-square.cs2{bottom:156px;left:240px;width:100px;height:100px}
.cta-square.cs3{top:60px;right:200px;width:110px;height:110px}
.cta-square.cs4{top:230px;right:40px;width:110px;height:110px}
.cta-square.cs5{bottom:120px;right:200px;width:140px;height:140px}
.cta-square.cs6{top:130px;left:60px;width:110px;height:110px}
.cta-circle{
  position:absolute;height:auto;
  pointer-events:none;z-index:1;
}
.cta-border{bottom:80px;left:60px;width:100px}
.cta-fill{top:210px;left:310px;width:35px}
.cta-dot{top:40px;right:40px;width:100px}
.final-cta h2{font-size:38px;margin:0 0 18px;color:var(--ink);font-weight:700;letter-spacing:.02em;line-height:1.4}
.final-cta h2 .accent{color:var(--secondary)}
.final-cta p{color:var(--ink);margin:0 0 36px;font-size:16px}
.final-cta-actions{
  display:flex;justify-content:center;align-items:center;gap:32px;flex-wrap:wrap;
}
.final-cta-actions .cta-primary,
.final-cta-actions .cta-ghost{min-width:300px;justify-content:center}
.cta-line{
  display:block;width:100%;height:auto;
  position:absolute;left:0;
  /* 画像の高さは幅×0.186で伸びる。1440pxで見え高さ約128px、広幅ほど緩やかに見え高さが増えるオフセット */
  bottom:calc(76px - 15vw);
  pointer-events:none;z-index:1;
}

/* ===== Responsive ===== */
@media (max-width:840px){
  .logo img{height:32px}
  .header-ctas{margin-left:8px;gap:6px}
  .header-ctas .header-cta{min-width:0;padding:6px 10px;font-size:11px}
  .header-ctas .header-cta--ghost{padding:4px 10px}
  .hero{padding:48px 16px}
  .hero-circle{width:220px}
  .hero-circle--tl{top:-80px;left:-80px}
  .hero-circle--br{bottom:-80px;right:-80px}
  .hero-card{padding:56px 20px 48px}
  .hero p.hero-lead{font-size:13px;margin-bottom:6px}
  .hero h1{font-size:26px;margin:0 0 16px;line-height:1.5}
  .hero p{font-size:14px;margin:0 0 24px}
  .hero-badge{padding:6px 10px;top:12px;right:12px}
  .hero-badge img{height:18px}
  .hero-actions{gap:10px;margin-bottom:20px}
  .final-cta-actions{gap:16px}
  .hero-actions .cta-primary,
  .hero-actions .cta-ghost,
  .final-cta-actions .cta-primary,
  .final-cta-actions .cta-ghost{
    min-width:0;width:100%;max-width:340px;
    font-size:15px;padding:14px 20px;gap:8px;
  }
  .hero-stats{gap:10px 24px}
  .hero-stat b{font-size:24px}
  .hero-square.s3,
  .hero-square.s5,
  .hero-square.s7,
  .hero-square.s9{display:none}
  .hero-fill{width:19px;top:110px;right:32px;left:auto}
  .hero-dot{display:none}
  .hero-square.s1{top:72px;left:-44px;width:84px;height:84px}
  .hero-square.s2{top:-32px;left:80px;width:64px;height:64px}
  .hero-square.s6{top:105px;right:-32px;width:64px;height:64px;background-image:url(../images/photo-06.png)}
  .hero-square.s8{bottom:-36px;right:16px;width:80px;height:80px}
  .hero-square.s4{bottom:-32px;left:50%;margin-left:-128px;width:64px;height:64px}
  .challenge-grid{grid-template-columns:1fr}
  .problems-circle{width:170px}
  .problems-circle--tl{top:-70px;left:-70px}
  .problems-circle--br{bottom:-70px;right:-70px}
  .challenge-card{padding:24px}
  .challenge-stat b{font-size:32px}
  .challenge-pct{font-size:17px}
  /* SPは1カラムなのでカード間の縦位置を揃える必要がなく、高さの確保は不要 */
  .challenge-card h3{font-size:20px;min-height:0;display:block}
  .challenge-card p.challenge-metric{min-height:0;display:block}
  .challenge-card p{font-size:14px}
  .problems-closing{padding:22px 20px}
  #faq,#news{padding-top:28px}
  .concept-row{grid-template-columns:1fr;gap:20px}
  .concept-visual{border-radius:12px}
  .bridge-copy{margin-top:36px;font-size:16px}
  .problems-bridge-band{margin:40px -16px -56px;padding:28px 16px}
  .concept-message p{font-size:16px}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .kpi-card .kpi-label{font-size:15px;padding:12px 10px}
  .kpi-card .kpi-value{font-size:36px}
  .stats-panel{padding:28px 20px;margin-bottom:24px}
  .stats-lead-row{flex-direction:column;gap:12px;margin-bottom:20px}
  .stats-lead-img{width:120px}
  .stats-lead{font-size:20px}
  .stats-matrix{grid-template-columns:1fr;gap:12px}
  .results-circle{width:200px}
  .results-circle--tl{top:-70px;left:-70px}
  .results-circle--br{bottom:-70px;right:-70px}
  .results-map{width:80px;right:10px;top:-24px}
  .results-logos{padding:24px 16px}
  .logos .logos-headline{font-size:21px}
  .logos-headline .logos-decor{display:none}
  .logos{display:grid;grid-template-columns:repeat(6,1fr);gap:20px 8px;padding:8px 0}
  .logos .logos-headline{grid-column:1/-1}
  .logo-chip{width:auto;font-size:13px;grid-column:span 2}
  .logo-chip:nth-last-of-type(2){grid-column:2/span 2}
  .logo-chip:last-of-type{grid-column:4/span 2}
  .final-cta{padding:64px 16px 160px;border-radius:40px 40px 0 0}
  .final-cta h2{font-size:28px}
  .final-cta p{font-size:14px}
  .cta-line{width:240%;left:-70%;bottom:-70px}
  .cta-square{display:none}
  .cta-border{top:170px;left:8px;bottom:auto;width:50px}
  .cta-fill{top:240px;left:auto;right:40px;width:18px}
  .cta-dot{top:120px;right:-8px;width:60px}
}

/* ============================================================
   サブページ共通（media / db / pricing）
   ============================================================ */

/* ===== 3つの解決策（media・fn-list流用） ===== */
#solution{background:var(--primary);position:relative;overflow:hidden}
#solution .container{position:relative;z-index:1}
/* 特長2のリード文（特長1と同じ扱い・黄背景のため文字は ink） */
#solution .solution-lead{max-width:900px;margin:0 auto 48px;line-height:1.9;color:var(--ink)}
@media (max-width:840px){
  #solution .solution-lead{margin-bottom:28px;text-align:left}
}
/* 統合セクションの締め（制度改正への言及）と出典 */
#solution .solution-closing{
  max-width:860px;margin:48px auto 0;
  background:var(--white);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 4px 16px rgba(0,0,0,.04);
  padding:32px 40px;text-align:center;
}
#solution .solution-closing p{margin:0;font-size:16px;line-height:1.9;color:var(--ink)}
#solution .solution-closing strong{color:var(--secondary)}
#solution .solution-closing .solution-closing-lead{
  margin:10px 0;font-size:22px;font-weight:700;color:var(--secondary);line-height:1.6;
}
/* 黄背景のためグレー文字は使わない */
#solution .problems-source{color:var(--ink);margin-top:20px}
@media (max-width:840px){
  #solution .solution-closing{margin-top:28px;padding:24px 20px}
  #solution .solution-closing p{font-size:14px}
  #solution .solution-closing .solution-closing-lead{font-size:18px;margin:8px 0}
}
.features-circle{
  position:absolute;width:640px;height:auto;
  pointer-events:none;z-index:0;
}
.features-circle--bl{bottom:-220px;left:-220px;transform:rotate(180deg)}
.features-circle--tr{top:-150px;right:-150px;width:440px}

/* ===== できること（media） ===== */
#actions{background:var(--primary-light);position:relative;overflow:hidden}
#actions .container{position:relative;z-index:1}
.efforts-deco{position:absolute;pointer-events:none;z-index:0;width:auto}
.efforts-deco-dot{top:96px;left:110px;height:100px}
.efforts-deco-border{top:88px;right:110px;height:80px}
.efforts-deco-fill{top:170px;right:70px;height:36px}
.efforts-grid--three{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.effort-card--v{
  position:relative;z-index:0;overflow:hidden;
  background:var(--white);border:1px solid var(--line);border-radius:16px;
  padding:28px;text-align:center;
}
.effort-card--v::before{
  content:"";position:absolute;
  top:-110px;left:-110px;
  width:240px;height:240px;
  background:url("../images/circle-fill.svg") no-repeat center/contain;
  z-index:-1;pointer-events:none;
}
.effort-card--v .effort-thumb{width:195px;height:195px;object-fit:contain;display:block;margin:0 auto 18px}
/* 「〜の事例として」の対応リード（解決策セクションとの連結を示す） */
.effort-card--v p.effort-lead{
  margin:0 0 10px;font-size:14px;font-weight:700;line-height:1.7;
  color:var(--muted);text-align:center;
}
.effort-head{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px}
.effort-head .material-symbols-rounded{color:var(--secondary);font-size:26px}
.effort-card--v h3{margin:0;font-size:22px;color:var(--secondary);font-weight:700;line-height:1.4}
.effort-card--v p{margin:0;font-size:15px;color:var(--ink);line-height:1.85;text-align:left}
/* 本文中の強調（黄マーカー＋太字） */
.marker{font-weight:700;background:linear-gradient(transparent 62%,var(--primary) 62%)}
/* ふるさと便パネル（タグ→大見出し→リード→01〜04の2×2カードグリッド）
   2026-07-31: HTMLから削除済みで現在未使用。復活の可能性があるため瀬戸さん判断で温存。
   未使用CSSの刈り込みを行う際も、この .furusato-* / .effort-stats / .effort-stat /
   .f-num / .keep-phrase 一式は削除しないこと。復元用HTMLは git の 00e6605 を参照 */
.furusato-panel{
  position:relative;
  margin:48px 0 0;
  background:var(--secondary-light);
  border:3px solid var(--secondary);border-radius:16px;
  padding:40px;
}
.furusato-tag{
  display:inline-block;background:var(--secondary);color:var(--white);
  font-size:14px;font-weight:700;padding:6px 16px;border-radius:999px;
  margin-bottom:14px;
}
.furusato-head{display:flex;align-items:center;gap:36px}
.furusato-head-text{flex:1;max-width:820px}
.furusato-head h3{margin:0 0 12px;font-size:30px;color:var(--secondary);font-weight:700;line-height:1.4}
.furusato-head p{margin:0;font-size:16px;color:var(--ink);line-height:1.85}
.furusato-head-photo{flex:0 0 280px;width:280px;height:auto}
.furusato-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}
.furusato-item{background:var(--white);border-radius:12px;padding:26px 28px}
.f-num{
  display:block;font-family:"Mulish",sans-serif;
  font-size:14px;font-weight:700;color:var(--secondary);margin-bottom:8px;
}
.furusato-item h4{margin:0 0 8px;font-size:18px;font-weight:700;color:var(--ink);line-height:1.5}
.furusato-item h4 .keep-phrase{display:inline-block}
.furusato-item p{margin:0;font-size:14px;color:var(--ink);line-height:1.85}
.furusato-item .effort-stats{margin-top:14px}
.furusato-note{margin:14px 0 0;font-size:13px;color:var(--muted)}
.effort-stats{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}
.effort-stat{
  background:var(--white);border:1px solid var(--secondary);border-radius:12px;
  padding:12px 20px;text-align:center;
}
.effort-stat b{
  display:block;font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:24px;font-weight:700;color:var(--secondary);line-height:1.3;
}
.effort-stat span{font-size:12px;color:var(--muted)}
.effort-stat b .unit{font-size:0.6em;color:inherit}
.effort-stat--text b{font-size:15px;line-height:1.6;padding:3px 0}
.furusato-voices{
  list-style:none;margin:0 0 14px;padding:0;
  display:flex;flex-direction:column;gap:8px;
}
.furusato-voices li{
  background:var(--secondary-light);border-radius:8px;padding:10px 14px;
  font-size:14px;line-height:1.7;color:var(--ink);
}
.furusato-voices-link{
  display:inline-flex;align-items:center;gap:4px;
  font-size:14px;font-weight:700;color:var(--secondary);text-decoration:none;
  border-bottom:2px solid var(--secondary);padding-bottom:2px;
}
.furusato-voices-link:hover{color:var(--secondary-hover);border-color:transparent}
.furusato-voices-link .material-symbols-rounded{font-size:18px}

/* ===== 導入実績 ケースカード（media） ===== */
.case-card{background:var(--white);border-radius:16px;padding:56px}
.case-card + .case-card{margin-top:32px}
.case-tags{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 16px}
.case-card .insight{
  display:inline-block;margin:0;
  padding:4px 12px;background:var(--secondary);border-radius:999px;
}
.case-card .insight--accent{background:var(--accent)}
.case-card .insight-body{margin:0;font-size:16px;font-weight:700;color:var(--white);line-height:1.5}
.case-tag-sub{font-size:13px;font-weight:700;color:var(--muted)}
.case-title{margin:0 0 14px;font-size:28px;font-weight:700;color:var(--ink);line-height:1.5}
.case-card p{font-size:16px;color:var(--ink);margin:0 0 14px;line-height:1.85}
.case-card p.case-detail{margin:0 0 18px;font-size:17px;color:var(--ink);line-height:1.6}
.case-card p.case-detail .case-detail-num{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  color:var(--secondary);font-weight:700;font-size:21px;
}
.case-stats-block{margin:0 0 12px}
.case-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.case-stats--four{grid-template-columns:repeat(4,1fr)}
.case-stat{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:12px;
  padding:0 0 20px;
  text-align:center;overflow:hidden;
  display:flex;flex-direction:column;
}
.case-stat-label{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:14px;font-weight:700;color:var(--ink);
  background:var(--primary);
  padding:12px 16px;margin:0 0 16px;
  letter-spacing:.04em;
}
.case-stat-value{
  font-family:"Mulish",sans-serif;
  font-size:48px;font-weight:700;color:var(--secondary);
  line-height:1.1;letter-spacing:-0.02em;white-space:nowrap;
  margin-top:auto;
}
.case-stat-unit{font-size:0.45em;margin-left:2px}
.case-stat-unit--prefix{margin-left:0;margin-right:2px}
.case-stat-note{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:11px;color:var(--muted);
  margin-top:4px;font-weight:700;letter-spacing:.04em;
  margin-bottom:auto;
}
.case-voice{
  position:relative;
  background:var(--primary-light);
  border-left:3px solid var(--secondary);
  border-radius:0 12px 12px 0;
  padding:14px 18px 14px 48px;
  font-size:16px;color:var(--ink);line-height:1.85;
  margin:0 0 12px;
}
.case-voice::before{
  content:"\201C";
  position:absolute;left:10px;top:8px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:48px;line-height:1;color:var(--secondary);
}
.case-voice-em{font-weight:700;color:var(--secondary)}
.case-voice .case-voice-meta{display:block;font-size:12px;color:var(--muted);margin-top:6px}

/* ===== 和歌山事例 サブセクション（企画／就職支援／Uターン調査／事例） ===== */
/* 事例カード内に移した統計チップ（カード背景が白なので淡色にする）
   ※旧デザインの .case-stats とは別物。名前が衝突するため .case-kpi にしている */
.case-kpi{margin:0}
.case-kpi .kpi-chip{background:var(--primary-light)}
/* 事例概要（自治体ページキャプチャ＋主要数値＋Uターン就職事例） */
.case-overview{
  display:grid;grid-template-columns:300px 1fr;gap:32px;align-items:start;
  margin:0;
}
/* キャプチャはクロップせず原寸比率で表示（330px幅なら右カラムとほぼ同じ高さになる） */
.case-capture-wrap{
  overflow:hidden;
  border:1px solid var(--line);border-radius:12px;
}
.case-capture{width:100%;height:auto;display:block}
.case-capture-figure{margin:0}
.case-capture-caption{
  margin:8px 0 0;text-align:center;
  font-size:12px;color:var(--muted);
}
.case-overview-body{display:flex;flex-direction:column;gap:16px}
.case-overview-body .case-evidence{margin-top:0}
.case-overview-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
/* 会員属性ドーナツ（lg2） */
.case-overview-stats .kpi-chip.kpi-chip--donut{
  flex-direction:column;align-items:center;gap:12px;
  padding:18px 18px 20px;
}
.kpi-chip--donut > span{text-align:center;line-height:1.6}
.kpi-chip--donut .kpi-donut-row{display:flex;align-items:center;justify-content:center;gap:14px}
.case-overview-stats .kpi-chip.kpi-chip--donut b{font-size:40px}
.kpi-donut-wrap{position:relative;width:80px;height:80px;flex-shrink:0}
.kpi-donut-wrap svg{width:100%;height:100%;display:block}
.kpi-donut-track{stroke:var(--white)}
.kpi-donut-value{stroke:var(--secondary)}
/* ラベルを数字の上に置く縦組みチップ */
.case-overview-stats .kpi-chip{flex-direction:column;align-items:center;gap:6px;padding:18px 16px}
.case-overview-stats .kpi-chip b{font-size:34px}
.case-overview-stats .kpi-chip span{font-size:15px}
/* 以下 .case-section / .case-sub-title / .case-sub-lead / .uturn-* は、
   2026-08-03にUターン調査ブロックをHTMLから削除したため現在未使用。
   復活の可能性があるため瀬戸さん判断で温存。未使用CSSの刈り込み時も削除しないこと。
   復元用HTMLは git の 5cb5290 を参照 */
.case-section{border:1px solid var(--line);border-radius:12px;margin-top:20px;padding:26px 28px}
.case-sub-title{
  display:flex;align-items:center;gap:10px;
  margin:0 0 12px;font-size:19px;font-weight:700;color:var(--secondary);line-height:1.5;
}
/* 2026-07-31: サブセクションが1つだけになり連番が意味をなさなくなったため、
   .case-card の counter-reset と .case-sub-title::before の丸数字を削除 */
.case-card p.case-sub-lead{margin:0 0 18px;font-size:15px}
/* 以下 .project-* / .career-* は、2026-07-31に和歌山事例をコンパクト化した際に
   HTMLから削除済みで現在未使用。復活の可能性があるため瀬戸さん判断で温存。
   未使用CSSの刈り込み時も削除しないこと。復元用HTMLは git の 37727d7 を参照 */
.project-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.project-chip{
  display:flex;flex-direction:column;gap:10px;
  background:var(--white);border:1px solid var(--line);border-radius:12px;
  padding:18px;text-decoration:none;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
  transition:border-color .15s ease;
}
.project-chip:hover{border-color:var(--secondary)}
.p-title{font-size:15px;font-weight:700;color:var(--ink);line-height:1.6}
.p-meta{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted);margin-top:auto}
.p-meta .material-symbols-rounded{font-size:16px}
.p-link{
  display:inline-flex;align-items:center;gap:4px;align-self:flex-start;
  margin-top:2px;font-size:12px;font-weight:700;color:var(--secondary);
  border-bottom:1.5px solid var(--secondary);padding-bottom:2px;
}
.p-link .material-symbols-rounded{font-size:14px}
.project-chip:hover .p-link{color:var(--secondary-hover);border-color:transparent}
.career-row{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:var(--primary-light);border-radius:12px;padding:24px 28px;
}
.career-row h5{margin:0 0 6px;font-size:17px;font-weight:700;color:var(--ink)}
.career-row .career-body{flex:1;min-width:260px}
.case-card .career-row p{margin:0;font-size:14px;line-height:1.8}
.career-link{
  display:inline-flex;align-items:center;gap:6px;flex-shrink:0;
  background:var(--primary);color:var(--ink);text-decoration:none;
  padding:12px 24px;border-radius:999px;font-size:14px;font-weight:700;
  box-shadow:0 4px 12px rgba(0,0,0,.10);
  transition:background .15s ease, box-shadow .15s ease;
}
.career-link:hover{background:var(--primary-hover);box-shadow:0 6px 16px rgba(0,0,0,.14)}
.career-link .material-symbols-rounded{font-size:18px}
.uturn-wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center}
.uturn-chart{display:flex;align-items:flex-end;gap:24px;margin-top:34px}
.uturn-col{flex:1;display:flex;flex-direction:column;align-items:center}
.uturn-bar{
  width:100%;max-width:72px;position:relative;flex-shrink:0;
  background:var(--primary);border-radius:8px 8px 0 0;
}
.uturn-col--highlight .uturn-bar{background:var(--secondary)}
.uturn-bar .val{
  position:absolute;top:-26px;left:0;right:0;text-align:center;
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:15px;font-weight:700;color:var(--ink);white-space:nowrap;
}
.uturn-year{margin-top:8px;font-size:12px;font-weight:700;color:var(--muted)}
.uturn-note{background:var(--secondary-light);border-radius:12px;padding:24px}
.uturn-note b{
  display:block;font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:40px;font-weight:700;color:var(--secondary);margin-bottom:8px;line-height:1.2;
}
.uturn-note b .unit{display:inline;font-size:0.5em;margin-left:2px}
.uturn-note b .unit--prefix{margin-left:0;margin-right:3px}
.uturn-note span{display:block;font-size:14px;color:var(--ink);line-height:1.7}
/* エビデンスエリア（現場の声：Mさん・岡本様） — 番号付きサブセクションとは見せ方を差別化 */
.case-evidence{margin-top:36px;background:var(--primary-light);border-radius:16px;padding:24px}
.evidence-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));
  gap:16px;
}
.evidence-card{position:relative;background:var(--white);border-radius:12px;padding:26px 28px}
.evidence-card::before{
  content:"\201C";
  position:absolute;top:12px;right:20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:64px;line-height:1;color:var(--primary);
}
.evidence-card--photo{display:flex;flex-direction:row-reverse;gap:24px;align-items:flex-start}
.evidence-photo{
  flex:0 0 150px;width:150px;min-width:0;aspect-ratio:3/4;border-radius:12px;
  background:var(--line);
  object-fit:cover;object-position:center 30%;display:block;
}
.evidence-body{flex:1;min-width:0}
.evidence-tag{
  display:inline-block;background:var(--secondary);color:var(--white);
  font-size:14px;font-weight:700;padding:5px 14px;border-radius:999px;margin-bottom:12px;
}
.case-card .evidence-card p{margin:0;font-size:14px;line-height:1.85}
.case-card .evidence-card p.evidence-lead{font-size:21px;font-weight:700;line-height:1.6;margin:0 0 10px}
.evidence-who{margin-top:12px;font-size:12px;font-weight:700;color:var(--muted)}
.evidence-source{
  display:inline-flex;align-items:center;gap:4px;margin-top:8px;
  font-size:15px;font-weight:700;color:var(--secondary);text-decoration:none;
  border-bottom:1px solid var(--secondary);
}
.evidence-source:hover{color:var(--secondary-hover);border-color:transparent}
.evidence-source .material-symbols-rounded{font-size:17px}

/* ===== 3つの機能（db・交互2カラム） ===== */
.fn-list{display:flex;flex-direction:column;gap:32px;counter-reset:fn}
.fn-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:16px;
  padding:40px;
  box-shadow:0 4px 16px rgba(0,0,0,.04);
}
/* 解決策本体（本文＋図版の2カラム。図版列は画像幅ぴったりに畳む） */
.fn-main{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:stretch}
/* 課題（壁）のヘッダー帯：旧 #problems の課題カードをカード上部へ統合（lg2） */
.fn-issue{
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
  background:var(--bg-soft);border-radius:12px;
  padding:18px 24px;margin-bottom:14px;
}
.fn-issue-head{display:flex;align-items:center;gap:14px;min-width:0}
.fn-issue-rank{
  flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;
  padding:5px 16px;border-radius:999px;
  background:var(--muted);color:var(--white);
  font-size:13px;font-weight:700;letter-spacing:.02em;white-space:nowrap;
}
.fn-issue-title{margin:0;font-size:22px;font-weight:700;color:var(--ink);line-height:1.5}
.fn-issue-data{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap}
.fn-card .fn-issue-metric{
  margin:0;max-width:320px;text-align:right;
  font-size:12px;font-weight:700;color:var(--muted);line-height:1.7;
}
.fn-card .fn-issue-stat{
  margin:0;display:flex;align-items:baseline;gap:8px;white-space:nowrap;
}
.fn-issue-stat b{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:34px;font-weight:700;color:var(--secondary);line-height:1.1;
}
.fn-issue-stat b .unit{font-size:0.4em;margin-left:2px}
.fn-issue-pct{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:18px;font-weight:700;color:var(--ink);
}
.fn-body{align-self:center}
.fn-card--reverse .fn-body{order:2}
.fn-title{display:flex;align-items:center;gap:16px;margin:0 0 14px;font-size:26px;font-weight:700;color:var(--secondary);line-height:1.4}
/* 解決策バッジ（正円・「解決策」＋番号の2段） */
.fn-badge{
  flex-shrink:0;
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  width:78px;height:78px;border-radius:50%;
  background:var(--secondary);color:var(--white);
  font-size:12px;font-weight:700;letter-spacing:.02em;line-height:1.2;
}
.fn-badge b{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:28px;font-weight:700;line-height:1.15;
}
.fn-tag{
  display:inline-block;
  background:var(--white);
  border:1px solid var(--muted);border-radius:6px;
  padding:5px 12px;margin-bottom:14px;
  color:var(--muted);
  font-size:13px;font-weight:700;letter-spacing:.02em;
}
.fn-card p{margin:0 0 16px;font-size:16px;line-height:1.9;color:var(--ink)}
.fn-media{display:flex;align-items:center;justify-content:center}
.fn-media img{width:380px;max-width:100%;height:auto;display:block}

/* ===== 施策例（解決策カード内・lg2） ===== */
.fn-example{
  display:flex;align-items:center;gap:16px;
  margin-top:4px;padding:14px 16px;
  background:var(--primary-light);border-radius:12px;
}
.fn-example-thumb{width:96px;height:auto;border-radius:8px;flex-shrink:0}
.fn-example-label{
  display:inline-block;font-size:12px;font-weight:700;color:var(--secondary);
  letter-spacing:.04em;margin-bottom:2px;
}
.fn-example h4{margin:0 0 4px;font-size:17px;font-weight:700;color:var(--ink);line-height:1.4}
.fn-card .fn-example p{margin:0;font-size:14px;line-height:1.7}

/* ===== ほかにもある施策（lg2） ===== */
.fn-more{margin-top:48px;text-align:center}
.fn-more-lead{margin:0 0 20px;font-size:21px;font-weight:700;color:var(--ink)}
.fn-more-chips{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;justify-content:center;gap:12px;
}
.fn-more-chips li{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.55);border-radius:10px;
  padding:10px 20px;font-size:17px;font-weight:700;color:var(--ink);white-space:nowrap;
}
.fn-more-chips li .material-symbols-rounded{font-size:22px;color:var(--secondary)}

/* ===== Footer ===== */
.footer-logo-link{display:inline-block}

/* ===== SPボトムナビ（PCでは非表示） ===== */
.bottom-nav{display:none}
@media (max-width:840px){
  .bottom-nav{
    position:fixed;bottom:0;left:0;right:0;z-index:60;
    display:flex;
    background:var(--white);
    border-top:1px solid var(--line);
    padding:8px 4px calc(8px + env(safe-area-inset-bottom));
  }
  .bottom-nav a{
    flex:1;min-width:0;
    display:flex;flex-direction:column;align-items:center;gap:3px;
    text-decoration:none;color:var(--muted);
    font-size:10px;font-weight:700;white-space:nowrap;
  }
  .bottom-nav a .material-symbols-rounded{font-size:22px}
  body{padding-bottom:64px}
}

/* ===== 料金プラン（pricing） ===== */
#plans{background:var(--white)}
.plan-single{
  background:var(--white);border:3px solid var(--primary);border-radius:20px;
  padding:40px;max-width:880px;margin:0 auto;
}
.plan-badge{
  display:inline-block;background:var(--secondary);color:var(--white);
  font-size:13px;font-weight:700;padding:6px 14px;border-radius:6px;
  letter-spacing:.04em;
  margin-bottom:16px;
}
/* スタータープラン（無償）の告知 */
.plan-free{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  background:var(--accent-light);border-radius:12px;
  padding:20px 24px;margin-bottom:28px;
}
.plan-free-badge{
  display:inline-flex;align-items:baseline;
  background:var(--accent);color:var(--white);
  font-size:18px;font-weight:700;padding:10px 22px;border-radius:8px;
  letter-spacing:.02em;white-space:nowrap;
}
.plan-free-badge b{
  font-family:"Mulish","Zen Kaku Gothic New",sans-serif;
  font-size:26px;font-weight:700;margin-left:2px;
}
.plan-free-text{margin:0;font-size:17px;font-weight:700;color:var(--ink)}
@media (max-width:840px){
  .plan-free{gap:12px;padding:16px 18px;margin-bottom:22px}
  .plan-free-badge{font-size:15px;padding:8px 16px}
  .plan-free-badge b{font-size:21px}
  .plan-free-text{font-size:15px}
}
.plan-single h3{margin:14px 0 24px;font-size:28px;font-weight:700;color:var(--ink)}
.plan-single h3 .name-sub{
  font-size:0.6em;font-weight:700;color:var(--ink);letter-spacing:0;margin:0 2px;
}
.price-table{
  width:100%;border-collapse:separate;border-spacing:0;font-size:16px;
  border:1px solid var(--line);border-radius:12px;overflow:hidden;
}
.price-table th,.price-table td{
  border-bottom:1px solid var(--line);border-right:1px solid var(--line);
  padding:14px 18px;text-align:left;line-height:1.5;
}
.price-table th:last-child,.price-table td:last-child{border-right:0}
.price-table tbody tr:last-child td{border-bottom:0}
.price-table th{background:var(--primary-light);font-weight:700}
.price-note{margin:10px 0 0;font-size:12px;color:var(--muted)}
/* 機能詳細は資料へ誘導（2026-08-05 会議決定） */
.plan-doc{
  margin-top:28px;padding-top:24px;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.plan-doc-text{margin:0;font-size:16px;font-weight:700;color:var(--ink);text-align:center}
.plan-doc-cta{min-width:300px;justify-content:center}
@media (max-width:840px){
  .plan-doc{margin-top:22px;padding-top:20px;gap:12px}
  .plan-doc-text{font-size:14px}
  .plan-doc-cta{min-width:0;width:100%}
}

/* ===== 含まれる機能（機能マトリクス） ===== */
.feature-table-title{margin:40px 0 14px;font-size:18px;font-weight:700;color:var(--ink)}
.feature-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.feature-table{width:100%;min-width:560px;border-collapse:separate;border-spacing:0;font-size:14px;table-layout:fixed}
.feature-table th,.feature-table td{
  border-bottom:1px solid var(--line);border-right:1px solid var(--line);
  padding:10px 14px;text-align:center;line-height:1.5;white-space:nowrap;
}
.feature-table th:nth-child(n+2),.feature-table td:nth-child(n+2){width:22%}
.feature-table th:first-child,.feature-table td:first-child{text-align:left;white-space:normal}
.feature-table th:last-child,.feature-table td:last-child{border-right:0}
.feature-table thead th{background:var(--primary-light);font-weight:700}
.feature-table thead th.ft-free{color:var(--ink)}
.feature-table tbody tr:last-child td{border-bottom:0}
.feature-table .ft-group td{
  background:var(--secondary-light);font-weight:700;text-align:left;color:var(--secondary);
}
.feature-table .ft-yes .material-symbols-rounded{color:var(--ink);font-size:22px}
.feature-table .ft-note{display:block;font-size:11px;color:var(--muted);white-space:nowrap}
.feature-table .ft-cat{display:block;font-size:11px;color:var(--muted);font-weight:700;line-height:1.4}

/* ===== FAQ（pricing） ===== */
#faq{background:var(--white);padding-top:48px}
.faq-list{max-width:900px;margin:0 auto}
.qa{
  background:var(--white);border:1px solid var(--line);border-radius:12px;
  padding:0;margin:0 0 16px;text-align:left;
  transition:border-color .15s ease;
}
details.qa:hover{border-color:var(--secondary)}
details.qa summary{list-style:none;cursor:pointer}
details.qa summary::-webkit-details-marker{display:none}
details.qa[open] .qa-q{padding-bottom:10px}
.qa-q{
  position:relative;
  margin:0;padding:24px 66px 24px 70px;
  font-size:18px;font-weight:700;color:var(--ink);line-height:1.7;
}
.qa-toggle{
  position:absolute;right:28px;top:26px;
  font-size:26px;color:var(--secondary);
  transition:transform .2s ease;
}
details.qa[open] .qa-toggle{transform:rotate(180deg)}
.qa-q::before{
  content:"Q";
  position:absolute;left:28px;top:25px;
  display:flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:50%;
  background:var(--secondary);color:var(--white);
  font-family:"Mulish",sans-serif;font-size:15px;font-weight:700;
}
.qa-a{
  position:relative;
  margin:0;padding:0 28px 24px 70px;
  font-size:16px;color:var(--ink);line-height:1.9;
}
.qa-a::before{
  content:"A";
  position:absolute;left:28px;top:1px;
  display:flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:50%;
  background:var(--accent);color:var(--white);
  font-family:"Mulish",sans-serif;font-size:15px;font-weight:700;
}

/* ===== お知らせ ===== */
#news{background:var(--white);padding-top:48px}
.news-list{
  list-style:none;margin:0 auto;padding:0;max-width:900px;
}
.news-list li{border-bottom:1px solid var(--line)}
.news-list li:first-child{border-top:1px solid var(--line)}
.news-link{
  display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;
  padding:22px 8px;text-decoration:none;color:var(--ink);
}
.news-date{
  font-family:"Mulish",sans-serif;font-size:14px;font-weight:700;
  color:var(--muted);white-space:nowrap;
}
.news-tag{
  display:inline-block;
  background:var(--secondary-light);color:var(--secondary);
  font-size:12px;font-weight:700;
  padding:3px 12px;border-radius:999px;white-space:nowrap;
}
.news-title{
  flex:1;min-width:240px;
  font-size:17px;font-weight:500;line-height:2;
}
.news-link:hover .news-title{text-decoration:underline;text-underline-offset:6px}
.news-arrow{
  align-self:center;margin-left:auto;
  font-size:22px;color:var(--secondary);
}
.news-ext{
  display:inline-block;
  font-size:17px;margin-left:6px;
  vertical-align:-3px;color:var(--muted);
}

/* ===== サブページ Responsive ===== */
@media (max-width:840px){
  .features-circle{width:200px}
  .features-circle--bl{bottom:-70px;left:-70px}
  .features-circle--tr{top:-70px;right:-70px}
  .efforts-grid--three{grid-template-columns:1fr;gap:16px}
  .effort-card--v{padding:22px}
  .effort-card--v h3{font-size:18px}
  .effort-card--v p{font-size:14px}
  .effort-card--v::before{top:-70px;left:-70px;width:140px;height:140px}
  .efforts-deco-dot{top:40px;left:14px;height:50px}
  .efforts-deco-border{top:44px;right:14px;height:40px}
  .efforts-deco-fill{top:84px;right:8px;height:18px}
  .furusato-panel{margin-top:32px;padding:22px 16px}
  .furusato-head{flex-direction:column;gap:16px}
  .furusato-head h3{font-size:22px}
  .furusato-head p{font-size:14px}
  .furusato-head-photo{flex:none;width:100%;max-width:240px;margin:0 auto}
  .furusato-grid{grid-template-columns:1fr;gap:12px;margin-top:20px}
  .furusato-item{padding:20px}
  .furusato-item h4{font-size:16px}
  .furusato-item p{font-size:13px}
  .kpi-sub{grid-template-columns:1fr;gap:8px}
  .kpi-chip{padding:12px 14px;justify-content:flex-start}
  .kpi-chip b{font-size:20px}
  .case-section{margin-top:14px;padding:18px 16px}
  .case-sub-title{font-size:16px;gap:8px}
  .case-sub-title::before{width:24px;height:24px;font-size:13px}
  .case-card p.case-sub-lead{font-size:13px}
  .project-row{grid-template-columns:1fr;gap:10px}
  .career-row{padding:20px;gap:14px}
  .uturn-wrap{grid-template-columns:1fr;gap:18px}
  .uturn-chart{gap:16px}
  .case-evidence{margin-top:26px;padding:14px}
  .evidence-card{padding:20px}
  .evidence-card--photo{flex-direction:column;gap:14px}
  .evidence-card--photo::before{display:none}
  .evidence-photo{flex:none;width:100%;aspect-ratio:16/9}
  .case-card .evidence-card p.evidence-lead{font-size:17px}
  .case-card{padding:28px 20px}
  .case-overview{grid-template-columns:1fr;gap:16px}
  .case-capture-wrap{width:100%;max-width:260px;margin:0 auto}
  .case-overview-stats{grid-template-columns:1fr}
  .case-overview-stats .kpi-chip b{font-size:28px}
  .case-card p{font-size:14px}
  .case-card .insight-body{font-size:14px}
  .case-title{font-size:21px}
  .case-stat-value{font-size:36px}
  .case-card p.case-detail{font-size:14px}
  .case-card p.case-detail .case-detail-num{font-size:18px}
  .case-stats--four{grid-template-columns:1fr 1fr}
  .fn-card{padding:24px 20px}
  .fn-main{grid-template-columns:1fr;gap:24px}
  .fn-card--reverse .fn-body{order:0}
  .fn-issue{
    flex-direction:column;align-items:flex-start;gap:12px;
    padding:16px 18px;margin-bottom:12px;
  }
  .fn-issue-head{flex-direction:column;align-items:flex-start;gap:8px}
  .fn-issue-title{font-size:19px}
  .fn-issue-data{width:100%;justify-content:space-between;gap:12px}
  .fn-card .fn-issue-metric{text-align:left;max-width:none;flex:1 1 auto}
  .fn-issue-stat b{font-size:28px}
  .fn-issue-pct{font-size:16px}
  /* SPはバッジを見出しの上に積む（横並びだと見出しが不自然に割れるため） */
  .fn-title{display:block;font-size:21px}
  .fn-badge{display:flex;width:66px;height:66px;font-size:11px;margin:0 0 12px}
  .fn-badge b{font-size:24px}
  .fn-card p{font-size:14px}
  .fn-example{gap:12px;padding:12px}
  .fn-example-thumb{width:76px}
  .fn-example h4{font-size:16px}
  .fn-card .fn-example p{font-size:13px}
  .fn-more{margin-top:32px}
  .fn-more-lead{font-size:17px}
  .fn-more-chips li{font-size:15px;padding:8px 16px}
  .plan-single{padding:24px 20px}
  .plan-single h3{font-size:21px}
  .price-table{font-size:14px}
  .price-table th,.price-table td{padding:12px 14px}
  .qa-q{font-size:15px;padding:18px 46px 18px 54px}
  .qa-toggle{font-size:22px;right:18px;top:20px}
  .qa-a{font-size:14px;padding:0 20px 18px 54px}
  .qa-q::before,.qa-a::before{width:24px;height:24px;font-size:13px}
  .qa-q::before{left:20px;top:20px}
  .qa-a::before{left:20px;top:1px}
  .news-link{gap:10px;padding:16px 4px}
  .news-title{font-size:14px;min-width:100%}
}
