/* --- 設計トークン（カラーパレット） --- */
:root{
  --navy-deep:#08274A;
  --navy:#0A2A4E;
  --navy-700:#0C3163;
  --navy-600:#11407A;
  --blue:#1C6DD0;
  --blue-400:#5BA0F0;
  --blue-200:#9FC2EE;
  --orange:#F26A21;
  --orange-300:#F89C5E;
  --orange-200:#F2A35E;
  --ink:#0A2A4E;
  --ink-2:#3D4F66;
  --ink-3:#5A6B82;
  --ink-4:#7C8AA0;
  --ink-5:#8494A8;
  --bg-soft:#F4F8FD;
  --border:#E2EBF6;
  --border-2:#E6ECF4;
}

/* --- リセット & 基本 --- */
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ font-family:'Noto Sans JP',-apple-system,BlinkMacSystemFont,sans-serif; color:var(--ink); -webkit-font-smoothing:antialiased; }
.page{ width:100%; overflow-x:clip; }

@keyframes scsPulse{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-4px); } }

/* --- 共通レイアウト --- */
.container{ max-width:1080px; margin:0 auto; }
.container-wide{ max-width:1180px; margin:0 auto; padding:0 32px; }

/* --- 共通ボタン --- */
.btn{ display:inline-flex; align-items:center; gap:10px; text-decoration:none; font-weight:700; border-radius:8px; }
.btn--doc{ font-size:13px; color:var(--navy-600); padding:10px 16px; border:1.5px solid #C9D6E8; }
.btn--cta-sm{ font-size:13px; color:#fff; padding:11px 18px; background:var(--orange); box-shadow:0 4px 12px rgba(242,106,33,0.32); }
.btn--cta{ font-size:16px; color:#fff; padding:17px 30px; border-radius:10px; background:var(--orange); box-shadow:0 10px 28px rgba(242,106,33,0.42); }
.btn--ghost{ gap:8px; font-size:15px; color:#fff; padding:16px 26px; border-radius:10px; background:rgba(255,255,255,0.1); border:1.5px solid rgba(255,255,255,0.3); }

/* --- ヘッダー --- */
.site-header{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,0.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--border-2); transition:transform 0.3s ease; }
.site-header--hidden{ transform:translateY(-100%); }
.site-header__inner{ height:72px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; flex-shrink:0; }
.brand__logo{ width:34px; height:34px; border-radius:8px; background:linear-gradient(135deg,var(--navy-600),var(--blue)); display:flex; align-items:center; justify-content:center; color:#fff; font-weight:900; font-size:15px; }
.brand__text{ line-height:1.2; }
.brand__name{ font-size:15px; font-weight:700; color:var(--navy); letter-spacing:0.01em; }
.brand__sub{ font-size:10.5px; font-weight:500; color:var(--ink-4); letter-spacing:0.06em; }
.gnav{ display:flex; align-items:center; gap:26px; }
.gnav__link{ font-size:13.5px; font-weight:500; color:var(--ink-2); text-decoration:none; }
.header-actions{ display:flex; align-items:center; gap:12px; flex-shrink:0; }

/* --- ヒーロー --- */
.hero{ position:relative; background:linear-gradient(180deg,#08274A 0%,#0C3163 55%,#11407A 100%); color:#fff; overflow:hidden; }
.hero__glow{ position:absolute; inset:0; background-image:radial-gradient(circle at 18% 22%,rgba(28,109,208,0.35),transparent 42%),radial-gradient(circle at 88% 78%,rgba(28,109,208,0.28),transparent 46%); pointer-events:none; }
.hero__grid{ position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px); background-size:46px 46px; mask-image:linear-gradient(180deg,rgba(0,0,0,0.6),transparent 70%); pointer-events:none; }
.hero__inner{ position:relative; max-width:1180px; margin:0 auto; padding:64px 32px 76px; display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:center; }
.hero__eyebrow{ font-size:13px; font-weight:500; letter-spacing:0.14em; color:var(--blue-200); margin-bottom:16px; }
.hero__title{ margin:0; font-size:70px; font-weight:900; letter-spacing:0.005em; line-height:1.04; white-space:nowrap; text-shadow:0 4px 30px rgba(0,0,0,0.25); }
.hero__catch{ margin:12px 0 16px; font-size:33px; font-weight:900; line-height:1.4; color:#EAF2FF; white-space:nowrap; }
.hero__catch .accent{ color:var(--orange-300); }
.hero__lead{ margin:0 0 32px; font-size:15px; font-weight:400; line-height:1.85; color:#C2D4EC; max-width:480px; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.hero__note{ margin-top:18px; font-size:12.5px; color:#9FB6D4; display:flex; align-items:center; gap:10px; }
.hero__note span{ display:inline-flex; align-items:center; gap:5px; }

/* 診断レポートのモックアップ */
.report-wrap{ position:relative; }
.report-badge{ position:absolute; top:-18px; right:-10px; background:var(--orange); color:#fff; font-size:12px; font-weight:700; padding:8px 16px; border-radius:999px; box-shadow:0 8px 20px rgba(0,0,0,0.25); z-index:3; animation:scsPulse 3s ease-in-out infinite; }
.report{ background:#fff; border-radius:18px; box-shadow:0 30px 70px rgba(3,18,40,0.5); overflow:hidden; color:var(--navy); }
.report__bar{ padding:18px 22px; border-bottom:1px solid #EDF1F7; display:flex; align-items:center; justify-content:space-between; }
.report__dots{ display:flex; align-items:center; gap:9px; }
.report__dot{ width:9px; height:9px; border-radius:50%; }
.report__dot--r{ background:#FF5F57; }
.report__dot--y{ background:#FEBC2E; }
.report__dot--g{ background:#28C840; }
.report__title{ font-size:11px; font-weight:700; color:#8A98AD; letter-spacing:0.04em; }
.report__body{ padding:22px 22px 24px; }
.report__score{ background:linear-gradient(135deg,#1C6DD0,#2E7BE0); border-radius:12px; padding:15px 20px; text-align:center; margin-bottom:18px; }
.report__score-label{ font-size:11px; font-weight:600; color:#D6E6FB; margin-bottom:2px; }
.report__score-value{ font-size:40px; font-weight:900; line-height:1; color:#fff; }
.report__score-value span{ font-size:18px; margin-left:2px; }
.report__charts{ display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; }
.report__chart{ background:#F7F9FC; border:1px solid #EDF1F7; border-radius:10px; padding:10px 8px; }
.report__chart-title{ font-size:11px; font-weight:700; color:var(--ink-3); text-align:center; margin-bottom:4px; }
.report__radar{ width:100%; height:auto; display:block; }
.report__pie{ width:92px; height:92px; border-radius:50%; margin:8px auto 10px; background:conic-gradient(#27B36B 0 75%, #F2A35E 75% 94%, #E0564E 94% 100%); }
.report__legend{ display:flex; flex-direction:column; gap:5px; padding:0 4px 4px; }
.report__legend-item{ display:flex; align-items:center; gap:6px; font-size:10px; color:var(--ink-3); }
.report__legend-dot{ width:8px; height:8px; border-radius:2px; flex-shrink:0; }
.report__legend-dot--done{ background:#27B36B; }
.report__legend-dot--partial{ background:#F2A35E; }
.report__legend-dot--none{ background:#E0564E; }

/* トラストストリップ */
.trust{ position:relative; border-top:1px solid rgba(255,255,255,0.12); background:rgba(0,0,0,0.14); }
.trust__inner{ max-width:1180px; margin:0 auto; padding:18px 32px; display:flex; flex-wrap:wrap; gap:14px 40px; justify-content:center; }
.trust__item{ font-size:13px; color:#BFD2EC; font-weight:500; }

/* --- 共通：セクション見出し --- */
.section-title{ font-size:38px; font-weight:900; line-height:1.3; }

/* --- 2. お悩み・共感 --- */
.worries{ background:var(--bg-soft); padding:88px 32px; }
.worries__inner{ max-width:1180px; margin:0 auto; }
.worries__head{ text-align:center; margin-bottom:48px; }
.worries__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.worry-card{ background:#fff; border:1px solid #E7EEF7; border-radius:14px; padding:28px 24px; box-shadow:0 4px 16px rgba(11,42,78,0.04); }
.worry-card__q{ font-size:19px; font-weight:800; color:var(--navy); line-height:1.55; text-align:center; margin-bottom:14px; }
.worry-card__a{ font-size:15px; font-weight:700; color:var(--navy-600); line-height:1.6; text-align:center; margin-bottom:12px; }
.worry-card__desc{ margin:0; font-size:13px; color:var(--ink-3); line-height:1.85; }

/* --- 3. SCS評価制度とは --- */
.about{ background:#fff; padding:92px 32px; scroll-margin-top:80px; }
.about__inner{ max-width:1080px; margin:0 auto; }
.about__head{ text-align:center; margin-bottom:18px; }
.about__head .section-title{ margin-bottom:20px; }
.about__lead{ margin:0 auto; max-width:760px; font-size:16px; color:var(--ink-2); line-height:1.95; }

.scheme{ margin-top:46px; background:linear-gradient(180deg,#F4F8FD,#EDF3FB); border:1px solid var(--border); border-radius:20px; padding:40px; }
.scheme__title{ margin:0 0 8px; text-align:center; font-size:21px; font-weight:900; line-height:1.5; }
.scheme__lead{ margin:0 auto 34px; max-width:680px; text-align:center; font-size:14px; color:var(--ink-3); line-height:1.85; }
.scheme__note{ margin:30px 0 0; text-align:center; font-size:12px; color:var(--ink-5); }

.scheme-diagram{ display:grid; grid-template-columns:1fr auto 1fr; gap:24px; align-items:center; max-width:760px; margin:0 auto; }
.party{ background:#fff; border:1px solid #DCE7F4; border-radius:16px; padding:26px 24px; text-align:center; box-shadow:0 6px 18px rgba(11,42,78,0.06); }
.party__img{ width:104px; height:104px; object-fit:contain; display:block; margin:0 auto 14px; }
.party__name{ font-size:17px; font-weight:900; margin-bottom:6px; }
.party__role{ font-size:12.5px; color:var(--ink-3); line-height:1.7; }
.scheme-arrows{ display:flex; flex-direction:column; gap:14px; min-width:130px; }
.scheme-arrow{ position:relative; text-align:center; }
.scheme-arrow__label{ font-size:11px; font-weight:700; }
.scheme-arrow__label--req{ color:var(--navy-600); margin-bottom:4px; }
.scheme-arrow__label--share{ color:#D2691E; margin-top:4px; }
.scheme-arrow__line{ height:3px; border-radius:2px; position:relative; }
.scheme-arrow__line--req{ background:var(--navy-600); }
.scheme-arrow__line--share{ background:var(--orange); }
.scheme-arrow__line span{ position:absolute; top:50%; transform:translateY(-50%); width:0; height:0; border-top:5px solid transparent; border-bottom:5px solid transparent; }
.scheme-arrow__line--req span{ right:-6px; border-left:8px solid var(--navy-600); }
.scheme-arrow__line--share span{ left:-6px; border-right:8px solid var(--orange); }

.merits{ margin-top:30px; display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.merit{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:24px; }
.merit__label{ display:inline-block; font-size:12px; font-weight:700; padding:5px 12px; border-radius:6px; margin-bottom:14px; }
.merit__label--principal{ color:var(--navy-600); background:#E7ECF3; }
.merit__label--contractor{ color:var(--blue); background:#E8F0FB; }
.merit__list{ margin:0; padding-left:0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.merit__item{ font-size:13.5px; color:var(--ink-2); line-height:1.6; display:flex; gap:9px; }
.merit__check{ font-weight:900; }
.merit--principal .merit__check{ color:var(--navy-600); }
.merit--contractor .merit__check{ color:var(--blue); }

.levels-head{ margin:76px 0 14px; text-align:center; font-size:27px; font-weight:900; line-height:1.4; color:var(--navy); }
.levels-lead{ margin:0 auto 40px; max-width:780px; text-align:center; font-size:14.5px; color:var(--ink-2); line-height:1.9; }
.levels{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:end; }
.level{ background:#fff; border:1px solid var(--border); border-radius:16px; padding:30px 26px; box-shadow:0 4px 16px rgba(11,42,78,0.05); }
.level--featured{ padding:34px 26px; box-shadow:0 16px 40px rgba(28,109,208,0.18); }
.level__stars{ font-size:22px; letter-spacing:2px; margin-bottom:10px; }
.level__stars .on{ color:var(--orange-200); }
.level__stars .off{ color:#D8E0EC; }
.level__badge{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.level__badge .stars{ font-size:22px; letter-spacing:2px; color:var(--orange-200); }
.level__badge .tag{ font-size:10px; font-weight:700; color:var(--ink-3); background:#EDF1F7; padding:3px 8px; border-radius:5px; }
.level__name{ font-size:22px; font-weight:900; margin-bottom:4px; color:var(--navy); }
.level__desc{ margin:0 0 20px; font-size:13px; color:var(--ink-3); line-height:1.7; }
.level__specs{ border-top:1px solid #EDF1F7; padding-top:16px; display:flex; flex-direction:column; gap:12px; }
.level--featured .level__specs{ border-top-color:#DCE7F4; }
.level__spec-label{ font-size:11px; color:var(--ink-5); margin-bottom:2px; }
.level__spec-value{ font-size:13px; color:var(--ink-2); line-height:1.6; }

.schedule-head{ margin:76px 0 40px; text-align:center; font-size:27px; font-weight:900; line-height:1.4; color:var(--navy); }
.timeline{ position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.timeline__line{ position:absolute; top:18px; left:8%; right:8%; height:2px; background:linear-gradient(90deg,#1C6DD0,#5BA0F0,#C9D6E8); z-index:0; }
.timeline__step{ position:relative; z-index:1; text-align:center; }
.timeline__num{ width:38px; height:38px; margin:0 auto 16px; border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:14px; box-shadow:0 0 0 6px #fff; }
.timeline__num--1{ background:var(--navy-600); }
.timeline__num--2{ background:var(--blue); }
.timeline__num--3{ background:var(--blue-400); }
.timeline__card{ background:var(--bg-soft); border:1px solid var(--border); border-radius:12px; padding:18px 16px; }
.timeline__date{ font-size:14px; font-weight:900; color:var(--navy-600); margin-bottom:6px; }
.timeline__text{ font-size:12.5px; color:var(--ink-3); line-height:1.7; }
.schedule-note{ margin:22px 0 0; text-align:center; font-size:12px; color:var(--ink-5); line-height:1.7; }

.bridge{ margin-top:48px; background:linear-gradient(135deg,#11407A,#1C6DD0); border-radius:20px; padding:44px; color:#fff; display:flex; align-items:center; justify-content:space-between; gap:36px; flex-wrap:wrap; }
.bridge__body{ flex:1; min-width:320px; }
.bridge__title{ margin:0 0 12px; font-size:24px; font-weight:900; line-height:1.5; }
.bridge__text{ margin:0; font-size:14px; color:#D6E4F7; line-height:1.9; }
.bridge__cta{ flex-shrink:0; display:inline-flex; align-items:center; gap:10px; font-size:16px; font-weight:700; color:#fff; text-decoration:none; padding:17px 30px; border-radius:10px; background:var(--orange); box-shadow:0 10px 28px rgba(0,0,0,0.3); }

/* --- 6. 進め方の原則 --- */
.approach{ background:var(--bg-soft); padding:92px 32px 56px; }
.approach__inner{ max-width:1080px; margin:0 auto; }
.approach__head{ text-align:center; margin-bottom:40px; }
.approach__title{ margin:0 0 16px; font-size:36px; font-weight:900; line-height:1.45; }
.approach__title .muted{ color:#9AA9BE; }
.approach__title .accent{ color:var(--blue); }
.approach__lead{ margin:0 auto; max-width:720px; font-size:15px; color:var(--ink-3); line-height:1.9; }
.compare{ display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:stretch; }
.compare-card{ border-radius:16px; padding:30px 28px; }
.compare-card--bad{ background:#fff; border:1px solid #F0DAD0; }
.compare-card--good{ background:#fff; border:2px solid var(--blue); box-shadow:0 14px 34px rgba(28,109,208,0.14); }
.compare-card__tag{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:800; padding:6px 14px; border-radius:999px; margin-bottom:18px; }
.compare-card__tag span{ font-size:15px; }
.compare-card--bad .compare-card__tag{ color:#C2553A; background:#FBEAE3; }
.compare-card--good .compare-card__tag{ color:#fff; background:var(--blue); }
.compare-card__title{ margin:0 0 10px; font-size:16px; font-weight:800; color:var(--navy); line-height:1.6; }
.compare-card__desc{ margin:0; font-size:13.5px; color:var(--ink-3); line-height:1.85; }
.compare-card__desc .em-bad{ color:#C2553A; }
.compare-card__desc .em-good{ color:var(--blue); }
.approach__benefit{ margin-top:36px; text-align:center; }
.approach__benefit p{ margin:0 auto; max-width:880px; font-size:16px; font-weight:700; color:var(--navy-600); line-height:1.85; }
.approach__benefit .accent{ color:var(--blue); }

/* --- 7. 無料診断 --- */
.diag{ background:var(--bg-soft); padding:16px 32px 92px; scroll-margin-top:80px; }
.diag__inner{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:0.85fr 1.15fr; gap:48px; align-items:center; }
.diag__title{ margin:0 0 18px; font-size:36px; font-weight:900; line-height:1.4; }
.diag__lead{ margin:0 0 28px; font-size:15px; color:var(--ink-2); line-height:1.95; }
.diag-list-box{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:24px 26px; margin-bottom:28px; }
.diag-list-box__title{ font-size:13px; font-weight:700; color:var(--navy-600); margin-bottom:14px; }
.diag-list{ display:flex; flex-direction:column; gap:11px; }
.diag-list__item{ display:flex; gap:10px; font-size:14px; color:var(--ink-2); line-height:1.5; }
.diag-list__item span{ color:var(--blue); font-weight:900; }
.btn--cta-lg{ font-size:17px; color:#fff; padding:18px 34px; border-radius:10px; background:var(--orange); box-shadow:0 12px 30px rgba(242,106,33,0.4); }
.diag__meta{ margin-top:14px; font-size:12.5px; color:var(--ink-4); }
.diag__caveat{ margin-top:14px; font-size:12.5px; color:var(--ink-4); line-height:1.75; }
.diag-screen{ background:#fff; border:1px solid var(--border); border-radius:18px; box-shadow:0 24px 60px rgba(11,42,78,0.14); overflow:hidden; }
.diag-screen__inner{ padding:22px 22px 20px; }
.dx-steps-wrap{ text-align:center; }
.dx-badge{ display:inline-block; font-size:11px; font-weight:700; color:#fff; background:var(--blue); padding:4px 14px; border-radius:999px; margin-bottom:12px; }
.dx-steps{ position:relative; display:grid; grid-template-columns:repeat(3,1fr); margin-bottom:16px; }
.dx-steps__track{ position:absolute; top:15px; left:16.7%; right:16.7%; height:3px; background:var(--border); z-index:0; }
.dx-steps__track-fill{ position:absolute; top:15px; left:16.7%; width:33.3%; height:3px; background:var(--blue); z-index:1; }
.dx-step{ position:relative; z-index:2; text-align:center; }
.dx-step__dot{ width:30px; height:30px; margin:0 auto 8px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:900; background:var(--border); color:#9AA9BE; }
.dx-step--done .dx-step__dot, .dx-step--active .dx-step__dot{ background:var(--blue); color:#fff; }
.dx-step__label{ font-size:11px; color:var(--ink-3); }
.dx-step--active .dx-step__label{ color:var(--navy-600); font-weight:700; }
.dx-title{ font-size:17px; font-weight:900; color:var(--navy); margin-bottom:10px; }
.dx-progress-row{ display:flex; justify-content:space-between; align-items:baseline; font-size:11px; color:var(--ink-3); margin-bottom:5px; }
.dx-progress{ height:5px; border-radius:3px; background:var(--border); overflow:hidden; margin-bottom:14px; }
.dx-cat{ font-size:13px; font-weight:900; color:var(--navy-600); margin-bottom:10px; }
.dx-cat span{ font-size:11px; font-weight:500; color:var(--ink-4); margin-left:6px; }
.dx-q{ background:#F7F9FC; border:1px solid #EDF1F7; border-radius:10px; padding:12px 14px; margin-bottom:8px; }
.dx-q__head{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700; color:var(--navy); margin-bottom:5px; }
.dx-q__no{ width:18px; height:18px; flex-shrink:0; border-radius:50%; background:var(--navy); color:#fff; font-size:10px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.dx-q__text{ margin:0 0 8px; font-size:11.5px; color:var(--ink-3); line-height:1.7; }
.dx-opts{ display:flex; flex-wrap:wrap; gap:6px 14px; }
.dx-opt{ display:flex; align-items:center; gap:5px; font-size:11px; color:var(--ink-2); }
.dx-opt::before{ content:""; width:12px; height:12px; border-radius:50%; border:1.5px solid #C9D6E8; flex-shrink:0; }
.dx-nav{ display:flex; justify-content:space-between; margin-top:14px; }
.dx-nav__back{ font-size:11px; color:#B6C2D2; border:1px solid var(--border); border-radius:8px; padding:8px 16px; }
.dx-nav__next{ font-size:11px; font-weight:700; color:#fff; background:var(--blue); border-radius:8px; padding:8px 16px; }
.diag-disclaimer{ margin:18px 4px 0; font-size:11.5px; color:var(--ink-5); line-height:1.75; }

/* --- 8. 支援内容 --- */
.support{ background:linear-gradient(180deg,#08274A,#0C3163); color:#fff; padding:92px 32px; scroll-margin-top:80px; }
.support__inner{ max-width:1080px; margin:0 auto; }
.support__head{ text-align:center; margin-bottom:14px; }
.support__title{ margin:0 0 18px; font-size:36px; font-weight:900; line-height:1.4; }
.support__lead{ margin:0 auto; max-width:960px; font-size:15px; color:#C2D4EC; line-height:1.95; }
.steps{ margin-top:46px; display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
.step{ position:relative; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); border-radius:14px; padding:26px 18px; }
.step__free{ position:absolute; top:12px; right:12px; font-size:13px; font-weight:800; color:var(--navy-deep); background:#39D98A; padding:5px 14px; border-radius:999px; }
.step__no{ font-size:11px; font-weight:700; letter-spacing:0.1em; color:#7FB0EC; margin-bottom:6px; }
.step__name{ font-size:17px; font-weight:900; margin-bottom:10px; line-height:1.4; }
.step__desc{ margin:0 0 16px; font-size:12px; color:#C2D4EC; line-height:1.75; }
.step__deliverable{ border-top:1px solid rgba(255,255,255,0.12); padding-top:12px; }
.step__deliverable-label{ font-size:10px; color:#7FA0C8; margin-bottom:4px; }
.step__deliverable-value{ font-size:12.5px; font-weight:700; color:var(--orange-200); line-height:1.5; }
.scope{ margin-top:48px; padding-top:38px; border-top:1px solid rgba(255,255,255,0.16); display:grid; grid-template-columns:1fr 1.3fr; gap:36px; align-items:center; }
.scope__title{ margin:0 0 10px; font-size:21px; font-weight:900; line-height:1.5; }
.scope__note{ margin:0; font-size:12.5px; color:#9FB6D4; line-height:1.8; }
.scope__list{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.scope__item{ display:flex; gap:9px; font-size:13px; color:#E5EEFA; line-height:1.5; }
.scope__item span{ color:var(--orange-200); }

/* --- 9. 選ばれる理由 --- */
.reasons{ background:#fff; padding:92px 32px; scroll-margin-top:80px; }
.reasons__inner{ max-width:1080px; margin:0 auto; }
.reasons__head{ text-align:center; margin-bottom:46px; }
.reasons__title{ font-size:38px; font-weight:900; line-height:1.4; }
.reasons__lead{ margin:16px auto 0; max-width:660px; font-size:17px; font-weight:700; color:var(--ink-2); line-height:1.7; }
.reasons__grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.reason{ background:var(--bg-soft); border:1px solid var(--border); border-radius:16px; padding:30px; display:flex; gap:22px; align-items:flex-start; }
.reason__img{ flex-shrink:0; width:64px; height:64px; display:block; }
.reason__no{ font-size:11px; font-weight:700; color:var(--blue); margin-bottom:5px; }
.reason__title{ margin:0 0 8px; font-size:17px; font-weight:900; }
.reason__desc{ margin:0; font-size:13.5px; color:var(--ink-3); line-height:1.85; }

/* --- 10. 診断から支援開始までの流れ --- */
.flow{ background:var(--bg-soft); padding:92px 32px; }
.flow__inner{ max-width:1080px; margin:0 auto; }
.flow__head{ text-align:center; margin-bottom:14px; }
.flow__title{ margin:0 0 16px; font-size:36px; font-weight:900; line-height:1.4; }
.flow__lead{ margin:0 auto; max-width:640px; font-size:15px; color:var(--ink-3); line-height:1.9; }
.flow__grid{ margin-top:42px; display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.flow-step{ background:#fff; border:1px solid var(--border); border-radius:14px; padding:26px 22px; text-align:center; }
.flow-step__num{ width:42px; height:42px; margin:0 auto 14px; border-radius:50%; color:#fff; font-weight:900; font-size:16px; display:flex; align-items:center; justify-content:center; }
.flow-step__num--1{ background:var(--orange); }
.flow-step__num--2{ background:var(--blue); }
.flow-step__num--3{ background:var(--blue); }
.flow-step__num--4{ background:var(--navy-600); }
.flow-step__title{ font-size:15px; font-weight:900; margin-bottom:8px; color:var(--navy-600); }
.flow-step__desc{ font-size:12.5px; color:var(--ink-3); line-height:1.75; }
.flow__note{ margin:24px 0 0; text-align:center; font-size:12px; color:var(--ink-5); }

/* --- 11. 資料請求 --- */
.guide{ background:#fff; padding:92px 32px; scroll-margin-top:80px; }
.guide__inner{ max-width:1000px; margin:0 auto; background:linear-gradient(135deg,#0C3163,#11407A); border-radius:24px; padding:52px; display:grid; grid-template-columns:0.85fr 1.15fr; gap:48px; align-items:center; color:#fff; }
.guide__cover-wrap{ display:flex; justify-content:center; }
.guide-book{ width:230px; background:#fff; border-radius:10px; box-shadow:0 24px 50px rgba(0,0,0,0.4); padding:32px 26px; color:var(--navy); transform:rotate(-3deg); }
.guide-book__eyebrow{ font-size:10px; font-weight:700; letter-spacing:0.12em; color:var(--blue); margin-bottom:14px; }
.guide-book__title{ font-size:25px; font-weight:900; line-height:1.4; margin-bottom:18px; }
.guide-book__bar{ height:3px; width:50px; background:var(--orange); border-radius:2px; margin-bottom:18px; }
.guide-book__company{ font-size:11px; color:var(--ink-4); line-height:1.7; }
.guide-book__lines{ margin-top:20px; display:flex; flex-direction:column; gap:6px; }
.guide-book__line{ height:6px; background:#EAF0F8; border-radius:3px; }
.guide__title{ margin:0 0 14px; font-size:28px; font-weight:900; line-height:1.5; }
.guide__lead{ margin:0 0 22px; font-size:14px; color:#D6E4F7; line-height:1.9; }
.guide__list{ display:grid; grid-template-columns:1fr 1fr; gap:9px 18px; margin-bottom:28px; }
.guide__item{ display:flex; gap:8px; font-size:13px; color:#EAF2FF; line-height:1.5; }
.guide__item span{ color:var(--orange-200); }
.guide__cta{ display:inline-flex; align-items:center; gap:10px; font-size:15px; font-weight:700; color:var(--navy-600); text-decoration:none; padding:16px 30px; border-radius:10px; background:#fff; }

/* --- 12. FAQ --- */
.faq{ background:var(--bg-soft); padding:92px 32px; scroll-margin-top:80px; }
.faq__inner{ max-width:840px; margin:0 auto; }
.faq__head{ text-align:center; margin-bottom:44px; }
.faq__title{ font-size:36px; font-weight:900; }
.faq__list{ display:flex; flex-direction:column; gap:12px; }
.faq-item{ background:#fff; border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.faq-item__q{ list-style:none; cursor:pointer; padding:20px 24px; display:flex; gap:14px; align-items:center; font-size:15.5px; font-weight:700; color:var(--navy); }
.faq-item__q::-webkit-details-marker{ display:none; }
.faq-item__q-mark{ color:var(--blue); font-weight:900; }
.faq-item__a{ padding:0 24px 22px 48px; font-size:14px; color:var(--ink-3); line-height:1.9; }

/* --- 13. 最終CTA --- */
.finalcta{ position:relative; background:linear-gradient(135deg,#08274A,#11407A); color:#fff; padding:84px 32px; overflow:hidden; }
.finalcta__glow{ position:absolute; inset:0; background-image:radial-gradient(circle at 80% 30%,rgba(28,109,208,0.4),transparent 50%); pointer-events:none; }
.finalcta__inner{ position:relative; max-width:920px; margin:0 auto; text-align:center; }
.finalcta__title{ margin:0 0 16px; font-size:38px; font-weight:900; line-height:1.45; }
.finalcta__lead{ margin:0 0 34px; font-size:15px; color:#C2D4EC; line-height:1.9; }
.finalcta__actions{ display:flex; flex-wrap:wrap; gap:14px; justify-content:center; align-items:flex-start; }
.finalcta__primary{ font-size:17px; color:#fff; padding:18px 36px; border-radius:10px; background:var(--orange); box-shadow:0 12px 30px rgba(242,106,33,0.42); }
.finalcta__secondary{ gap:8px; font-size:15px; color:#fff; padding:17px 30px; border-radius:10px; background:rgba(255,255,255,0.1); border:1.5px solid rgba(255,255,255,0.3); }
.finalcta__primary-group{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.finalcta__note{ margin-top:0; font-size:12.5px; color:#9FB6D4; }

/* --- 14. フッター --- */
.footer{ background:#08203D; color:#fff; padding:54px 32px 30px; }
.footer__inner{ max-width:1080px; margin:0 auto; }
.footer__top{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:30px; padding-bottom:30px; border-bottom:1px solid rgba(255,255,255,0.1); }
.footer__brand{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.footer__name{ font-size:16px; font-weight:700; }
.footer__tagline{ margin:0; font-size:13px; color:#9FB6D4; line-height:1.7; }
.footer__nav{ display:flex; gap:32px; flex-wrap:wrap; }
.footer__nav a{ font-size:13px; color:#C2D4EC; text-decoration:none; }
.footer__copy{ padding-top:22px; font-size:12px; color:#6F87A5; }

/* --- ロゴ画像（ヘッダー／フッター） --- */
.brand__img{ height:40px; width:auto; display:block; }
.footer__logo-img{ height:60px; width:auto; display:block; margin-bottom:12px; }

/* --- ガイド表紙の画像スロット（横型・透明PNG／傾き・影は画像側で付与） --- */
.guide-cover-img{ display:block; width:100%; height:auto; }

/* ============================================================
   レスポンシブ対応
   - 980px以下：タブレット（多くを1〜2カラムに）
   - 600px以下：スマホ（ほぼ1カラム・文字サイズ縮小）
   ============================================================ */

/* ---------- タブレット（≤980px） ---------- */
@media (max-width: 980px){
  /* 共通：左右の余白を詰める */
  .container-wide{ padding:0 20px; }
  .worries, .about, .approach, .diag, .support, .reasons, .flow, .guide, .faq, .finalcta{
    padding-left:20px; padding-right:20px;
  }

  /* ヘッダー：ナビのテキストリンクは隠す（ロゴ＋ボタンは残す） */
  .gnav{ display:none; }
  .site-header__inner{ gap:14px; }

  /* ヒーロー：左右2カラム→縦積み */
  .hero__inner{ grid-template-columns:1fr; gap:40px; padding:48px 20px 56px; }
  .hero__title{ font-size:clamp(44px,11vw,64px); white-space:normal; }
  .hero__catch{ font-size:clamp(22px,5.2vw,30px); white-space:normal; }
  .hero__lead{ max-width:none; }
  .report-wrap{ max-width:430px; margin:0 auto; }

  /* 見出しのサイズ調整 */
  .section-title{ font-size:30px; }
  .approach__title, .diag__title, .support__title, .flow__title, .finalcta__title{ font-size:30px; }
  .reasons__title, .faq__title{ font-size:30px; }
  .guide__title{ font-size:24px; }

  /* グリッドの段組みを減らす */
  .levels{ grid-template-columns:1fr; }
  .timeline{ grid-template-columns:1fr; gap:24px; }
  .timeline__line{ display:none; }
  .steps{ grid-template-columns:repeat(2,1fr); }
  .flow__grid{ grid-template-columns:repeat(2,1fr); }
  .scope{ grid-template-columns:1fr; gap:24px; }
  .diag__inner{ grid-template-columns:1fr; gap:32px; }
  /* 診断画面のモックアップ：縦積み時に大きくなりすぎないよう幅を制限 */
  .diag-screen{ width:100%; max-width:480px; margin:0 auto; }
  .guide__inner{ grid-template-columns:1fr; gap:36px; padding:40px; }

  /* 委託元↔委託先の図：横並び→縦積み（矢印は縦向きに作り替え） */
  .scheme{ padding:32px 22px; }
  .scheme-diagram{ grid-template-columns:1fr; gap:8px; justify-items:center; }
  .party{ width:100%; max-width:360px; }
  .scheme-arrows{ flex-direction:row; justify-content:center; gap:56px; min-width:0; padding:6px 0; }
  .scheme-arrow{ display:flex; flex-direction:column; align-items:center; gap:6px; }
  .scheme-arrow__label--req{ margin:0; }
  .scheme-arrow__label--share{ margin:0; }
  /* 横棒（高さ3px）→ 縦棒（幅3px）へ */
  .scheme-arrow__line{ width:3px; height:46px; }
  /* 要求：上の委託元から下の委託先へ ↓ */
  .scheme-arrow__line--req span{
    top:auto; bottom:-7px; left:50%; right:auto; transform:translateX(-50%);
    border-top:8px solid var(--navy-600); border-bottom:0;
    border-left:5px solid transparent; border-right:5px solid transparent;
  }
  /* 共有：下の委託先から上の委託元へ ↑ */
  .scheme-arrow__line--share span{
    top:-7px; bottom:auto; left:50%; right:auto; transform:translateX(-50%);
    border-bottom:8px solid var(--orange); border-top:0;
    border-left:5px solid transparent; border-right:5px solid transparent;
  }
}

/* ---------- スマホ（≤600px） ---------- */
@media (max-width: 600px){
  /* セクションの上下余白を圧縮 */
  .worries, .about, .approach, .support, .reasons, .flow, .guide, .faq{
    padding-top:56px; padding-bottom:56px;
  }
  .finalcta{ padding-top:60px; padding-bottom:60px; }

  /* 無料診断の診断画面モックアップはスマホでは非表示（飾りのため） */
  .diag-screen{ display:none; }
  .diag{ padding-bottom:56px; }

  /* 残りのグリッドを1カラムに */
  .worries__grid{ grid-template-columns:1fr; }
  .merits{ grid-template-columns:1fr; }
  .compare{ grid-template-columns:1fr; }
  .reasons__grid{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; }
  .flow__grid{ grid-template-columns:1fr; }
  .scope__list{ grid-template-columns:1fr; }
  .guide__list{ grid-template-columns:1fr; }

  /* 見出しをさらに縮小 */
  .section-title,
  .approach__title, .diag__title, .support__title, .flow__title, .finalcta__title,
  .reasons__title, .faq__title{ font-size:25px; }

  /* ヒーロー：ボタンを縦に並べて全幅 */
  .hero__actions{ flex-direction:column; align-items:stretch; }
  .hero__actions .btn{ justify-content:center; width:100%; }

  /* ヘッダー：狭いので資料請求ボタンは隠し、無料診断のみ残す */
  .btn--doc{ display:none; }
  .btn--cta-sm{ padding:9px 14px; font-size:12px; }
  .brand__img{ height:34px; }

  /* 最終CTA・フッターのボタン/段組み */
  .finalcta__actions{ flex-direction:column; align-items:stretch; }
  .finalcta__primary, .finalcta__secondary{ width:100%; justify-content:center; }
  .footer__top{ flex-direction:column; gap:24px; }
  .footer__nav{ gap:18px 28px; }

  /* 図・カードの内側余白を少し詰める */
  .scheme{ padding:26px 16px; }
  .guide__inner{ padding:32px 22px; }
  .bridge{ padding:32px 24px; }
}