@charset "UTF-8";
/* =========================================================
   ClaroTech - main.css  (renewal)
   BtoB / 信頼感・清潔感・情報整理 を優先した設計
   ========================================================= */

/* ---------- Design Tokens ---------- */
:root{
  --navy:#10334f;
  --navy-d:#0a2338;
  --navy-l:#1d4d72;
  --teal:#0d7f8c;
  --teal-d:#0a6a75;
  --accent:#e8703a;          /* 少量のみ使用 */
  --ink:#1b2733;
  --ink-2:#4a5a6a;
  --ink-3:#748493;
  --line:#dfe5ec;
  --line-2:#eef2f6;
  --bg:#ffffff;
  --bg-soft:#f5f8fb;
  --bg-navy:#10334f;
  --radius:10px;
  --radius-lg:16px;
  --shadow-s:0 1px 2px rgba(16,51,79,.06), 0 2px 8px rgba(16,51,79,.05);
  --shadow-m:0 2px 6px rgba(16,51,79,.07), 0 10px 28px rgba(16,51,79,.08);
  --wrap:1160px;
  --header-h:78px;
  --ease:cubic-bezier(.2,.7,.3,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 12px); -webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  font-size:16px; line-height:1.85; font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;
}
body.is-locked{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,figure{margin:0}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
table{border-collapse:collapse;width:100%}

/* ---------- Layout ---------- */
.wrap{width:min(100% - 40px, var(--wrap)); margin-inline:auto}
.section{padding:96px 0}
.section--soft{background:var(--bg-soft)}
.sec-head{margin-bottom:48px}
.sec-head--center{text-align:center}
.eyebrow{
  display:inline-block; font-size:13px; font-weight:700; letter-spacing:.14em;
  color:var(--teal); margin-bottom:14px;
}
.sec-title{
  font-size:clamp(25px,3.1vw,36px); font-weight:700; line-height:1.5; letter-spacing:.01em;
}
.sec-lead{margin-top:16px; color:var(--ink-2); font-size:16px}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding:16px 30px; border-radius:8px; font-weight:700; font-size:16px;
  line-height:1.4; text-align:center; transition:all .2s var(--ease); border:2px solid transparent;
}
.btn--primary{background:var(--accent); color:#fff; box-shadow:0 4px 14px rgba(232,112,58,.28)}
.btn--primary:hover{background:#d5602c; transform:translateY(-2px); box-shadow:0 8px 20px rgba(232,112,58,.32)}
.btn--ghost{border-color:rgba(255,255,255,.55); color:#fff}
.btn--ghost:hover{background:rgba(255,255,255,.12)}
.btn--outline{border-color:var(--navy); color:var(--navy); background:#fff}
.btn--outline:hover{background:var(--navy); color:#fff}
.btn--lg{padding:20px 44px; font-size:17px}
.btn .arw{font-size:.9em;transform:translateY(1px)}

.txtlink{
  display:inline-flex; align-items:center; gap:.4em; color:var(--teal-d);
  font-weight:700; font-size:15px; border-bottom:1px solid rgba(13,127,140,.35); padding-bottom:2px;
  transition:.2s var(--ease);
}
.txtlink:hover{color:var(--navy); border-color:var(--navy)}

/* =========================================================
   Header
   ========================================================= */
.header{
  position:fixed; inset:0 0 auto 0; z-index:100; background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line);
}
.header__inner{
  width:min(100% - 32px, 1280px); margin-inline:auto; height:var(--header-h);
  display:flex; align-items:center; gap:28px;
}
.brand{display:flex; flex-direction:column; justify-content:center; flex-shrink:0}
.brand__name{font-size:22px; font-weight:700; letter-spacing:.02em; color:var(--navy); line-height:1.2}
.brand__name span{color:var(--teal)}
.brand__desc{font-size:11px; color:var(--ink-3); letter-spacing:.04em; line-height:1.4; margin-top:3px}

.gnav{margin-left:auto}
.gnav__list{display:flex; align-items:center; gap:4px}
.drawer-cta{display:none}
.gnav__link{
  display:flex; align-items:center; gap:.35em; padding:10px 14px; border-radius:6px;
  font-size:14.5px; font-weight:600; color:var(--ink); transition:.2s var(--ease);
}
.gnav__link:hover{background:var(--bg-soft); color:var(--teal-d)}
.gnav__link .caret{font-size:9px; color:var(--ink-3); transition:transform .2s}
.has-mega:hover .caret{transform:rotate(180deg)}

.head-cta{display:flex; align-items:center; gap:10px; flex-shrink:0}
.head-cta__sub{
  font-size:13px; font-weight:600; color:var(--ink-2); padding:11px 14px;
  border:1px solid var(--line); border-radius:6px; transition:.2s var(--ease);
}
.head-cta__sub:hover{border-color:var(--navy); color:var(--navy)}
.head-cta__main{
  display:flex; flex-direction:column; align-items:center;
  background:var(--accent); color:#fff; border-radius:7px; padding:9px 22px;
  font-weight:700; font-size:14.5px; line-height:1.3; transition:.2s var(--ease);
  box-shadow:0 3px 10px rgba(232,112,58,.25);
}
.head-cta__main:hover{background:#d5602c; transform:translateY(-1px)}
.head-cta__main small{font-size:10px; font-weight:500; opacity:.9; letter-spacing:.02em}

/* Mega menu */
.has-mega{position:relative}
.mega{
  position:absolute; top:calc(100% + 10px); left:50%; translate:-50% 0;
  width:760px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-m); padding:28px 30px 22px;
  opacity:0; visibility:hidden; transform:translateY(-6px); transition:.22s var(--ease);
}
.has-mega:hover .mega, .has-mega:focus-within .mega{opacity:1; visibility:visible; transform:translateY(0)}
.mega__grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.mega__ttl{
  font-size:12px; font-weight:700; color:var(--teal-d); letter-spacing:.06em;
  padding-bottom:9px; margin-bottom:10px; border-bottom:1px solid var(--line-2);
}
.mega__list li + li{margin-top:2px}
.mega__list a{display:block; padding:7px 8px; border-radius:5px; font-size:14px; font-weight:600; transition:.15s}
.mega__list a:hover{background:var(--bg-soft); color:var(--teal-d)}
.mega__foot{
  margin-top:20px; padding-top:16px; border-top:1px solid var(--line-2);
  display:flex; justify-content:space-between; align-items:center; gap:16px;
  font-size:13px; color:var(--ink-3);
}

/* Hamburger */
.burger{display:none; width:46px; height:46px; border-radius:8px; flex-direction:column; align-items:center; justify-content:center; gap:5px; border:1px solid var(--line)}
.burger span{display:block; width:20px; height:2px; background:var(--navy); transition:.25s var(--ease)}
.is-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.is-open .burger span:nth-child(2){opacity:0}
.is-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* =========================================================
   Hero (S0)
   ========================================================= */
.hero{
  position:relative; padding:calc(var(--header-h) + 76px) 0 84px;
  background:
    radial-gradient(1200px 520px at 88% -8%, rgba(13,127,140,.10), transparent 62%),
    linear-gradient(180deg,#f7fafc 0%, #eef4f9 100%);
  overflow:hidden;
}
.hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:56px 56px; opacity:.4;
  -webkit-mask-image:radial-gradient(900px 480px at 78% 30%, #000, transparent 72%);
          mask-image:radial-gradient(900px 480px at 78% 30%, #000, transparent 72%);
}
.hero__inner{position:relative; z-index:2; display:grid; grid-template-columns:1.08fr .92fr; gap:56px; align-items:center}
.hero__eyebrow{
  display:inline-block; background:#fff; border:1px solid var(--line);
  color:var(--navy); font-size:13px; font-weight:700; letter-spacing:.02em;
  padding:8px 16px; border-radius:99px; box-shadow:var(--shadow-s); margin-bottom:24px;
}
.hero__title{
  font-size:clamp(30px,4.2vw,52px); font-weight:700; line-height:1.38; letter-spacing:-.01em; color:var(--navy-d);
}
.hero__title .mk{background:linear-gradient(transparent 62%, rgba(13,127,140,.20) 62%)}
.hero__lead{margin-top:26px; font-size:16.5px; color:var(--ink-2); line-height:1.95}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:26px}
.chips li{
  background:#fff; border:1px solid var(--line); color:var(--navy);
  font-size:13px; font-weight:600; padding:7px 13px; border-radius:6px;
}
.hero__cta{display:flex; flex-wrap:wrap; gap:14px; margin-top:32px}
.trustbar{
  display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:26px; padding-top:22px;
  border-top:1px solid var(--line); font-size:13.5px; color:var(--ink-2); font-weight:600;
}
.trustbar li{display:flex; align-items:center; gap:7px}
.trustbar .ck{color:var(--teal); font-weight:700}

/* Hero visual */
.hero__visual{position:relative}
.hcard{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-m); overflow:hidden;
}
.hcard__bar{display:flex; align-items:center; gap:7px; padding:13px 16px; background:var(--navy); color:#fff}
.hcard__bar i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.35)}
.hcard__bar b{margin-left:8px; font-size:12.5px; font-weight:600; letter-spacing:.04em}
.hcard__body{padding:20px 20px 24px}
.hrow{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 4px; border-bottom:1px dashed var(--line)}
.hrow:last-child{border-bottom:0}
.hrow__l{display:flex; align-items:center; gap:11px; font-size:14px; font-weight:600; color:var(--ink)}
.hrow__ico{
  width:32px;height:32px;border-radius:8px;display:grid;place-items:center;
  background:rgba(13,127,140,.09); color:var(--teal-d); font-size:14px; flex-shrink:0;
}
.tag{font-size:11.5px; font-weight:700; padding:4px 10px; border-radius:99px; white-space:nowrap}
.tag--ok{background:rgba(13,127,140,.10); color:var(--teal-d)}
.tag--warn{background:rgba(232,112,58,.12); color:#c0562a}
.tag--run{background:rgba(16,51,79,.08); color:var(--navy)}
.hcard__foot{
  background:var(--bg-soft); border-top:1px solid var(--line); padding:14px 20px;
  font-size:12.5px; color:var(--ink-2); display:flex; justify-content:space-between; align-items:center; gap:12px;
}
.hbadge{
  position:absolute; right:-14px; bottom:-18px; background:var(--teal); color:#fff;
  border-radius:12px; padding:14px 18px; box-shadow:0 10px 26px rgba(13,127,140,.3); line-height:1.4;
}
.hbadge b{display:block; font-size:19px; font-weight:700}
.hbadge small{font-size:11.5px; opacity:.92}

/* =========================================================
   S1 課題提起
   ========================================================= */
.probs{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.prob{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 24px; display:flex; gap:14px; align-items:flex-start; box-shadow:var(--shadow-s);
}
.prob__no{
  width:30px;height:30px;border-radius:8px;flex-shrink:0;display:grid;place-items:center;
  background:var(--navy); color:#fff; font-size:12.5px; font-weight:700;
}
.prob p{font-size:15.5px; font-weight:600; line-height:1.75}
.bridge{
  margin-top:40px; background:var(--navy); color:#fff; border-radius:var(--radius-lg);
  padding:36px 40px; text-align:center;
}
.bridge p{font-size:clamp(16px,2vw,20px); font-weight:600; line-height:1.85}
.bridge strong{color:#ffd0b4; font-weight:700}

/* =========================================================
   S2 サービス
   ========================================================= */
.svc-main{
  display:grid; gap:32px; align-items:center;
  background:linear-gradient(115deg,var(--navy) 0%, var(--navy-l) 100%);
  color:#fff; border-radius:var(--radius-lg); padding:40px 44px; box-shadow:var(--shadow-m);
  position:relative; overflow:hidden;
}
.svc-main::after{
  content:""; position:absolute; right:-70px; top:-70px; width:280px; height:280px; border-radius:50%;
  background:rgba(255,255,255,.05);
}
.svc-main__body{position:relative; z-index:2}
.svc-main .card-bg{color:#fff; opacity:.10; width:230px; height:230px; top:-26px; right:-26px; z-index:1}
.svc-main__label{
  display:inline-flex; align-items:center; gap:6px; background:var(--accent); color:#fff;
  font-size:12px; font-weight:700; padding:5px 13px; border-radius:99px; margin-bottom:14px;
}
.svc-main__ttl{font-size:clamp(22px,2.6vw,30px); font-weight:700; line-height:1.5}
.svc-main__txt{margin-top:12px; color:#c9dcea; font-size:15.5px; max-width:700px}
.svc-main__tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:18px}
.svc-main__tags li{
  font-size:13px; font-weight:600; background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.2); padding:5px 12px; border-radius:6px;
}
.svc-branch{
  text-align:center; color:var(--ink-3); font-size:13.5px; font-weight:700;
  margin:26px 0 18px; display:flex; align-items:center; gap:14px; justify-content:center;
}
.svc-branch::before,.svc-branch::after{content:""; height:1px; width:min(160px,18vw); background:var(--line)}
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px}
.svc-grid + .svc-grid{margin-top:18px}
.svc{
  position:relative; overflow:hidden;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:28px 26px; box-shadow:var(--shadow-s); transition:.22s var(--ease);
}
.svc > *:not(.card-bg){position:relative; z-index:1}
.svc:hover{transform:translateY(-3px); box-shadow:var(--shadow-m); border-color:#c9d6e2}
/* カード内の大きな透過アイコン（枠をはみ出した部分は切り取られる） */
.card-bg{
  position:absolute; top:-18px; right:-18px; width:168px; height:168px;
  color:var(--navy); opacity:.085; pointer-events:none; z-index:0;
}
.card-bg svg{
  width:100%; height:100%; display:block;
  fill:none; stroke:currentColor; stroke-width:1.25;
  stroke-linecap:round; stroke-linejoin:round;
}
.card-bg--sm{width:132px; height:132px; top:-14px; right:-14px}
.card-bg--lg{width:196px; height:196px; top:-22px; right:-22px; opacity:.075}
.svc__ttl{font-size:18px; font-weight:700; color:var(--navy); line-height:1.5}
.svc__catch{margin-top:10px; font-size:14.5px; color:var(--ink-2); line-height:1.8}
.svc__list{margin-top:16px; padding-top:16px; border-top:1px solid var(--line-2)}
.svc__list li{position:relative; padding-left:17px; font-size:13.5px; color:var(--ink-2); line-height:1.95}
.svc__list li::before{content:""; position:absolute; left:3px; top:.82em; width:6px;height:6px;border-radius:50%;background:var(--teal); opacity:.6}
.svc--sub{background:var(--bg-soft); box-shadow:none}
.svc--sub .card-bg{opacity:.09}
.svc--sub .svc__ttl{font-size:16.5px}
.svc__flag{
  display:inline-block; font-size:11.5px; font-weight:700; color:var(--teal-d);
  background:rgba(13,127,140,.10); padding:3px 9px; border-radius:4px; margin-bottom:12px;
}
.sec-foot{margin-top:36px; text-align:center}

/* =========================================================
   S3 外部情シスとは
   ========================================================= */
.cmp{margin-top:8px; background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-s)}
.cmp table{font-size:15px}
.cmp th,.cmp td{padding:17px 20px; border-bottom:1px solid var(--line-2); text-align:left; vertical-align:middle}
.cmp thead th{background:var(--bg-soft); font-size:14px; font-weight:700; color:var(--ink-2); white-space:nowrap}
.cmp thead th.is-us{background:var(--navy); color:#fff}
.cmp tbody th{font-weight:700; color:var(--navy); width:24%; background:#fbfcfe}
.cmp td.is-us{background:rgba(13,127,140,.05); font-weight:700; color:var(--navy)}
.cmp tr:last-child th,.cmp tr:last-child td{border-bottom:0}
.cmp .mute{color:var(--ink-3); font-weight:400}

.vendor{
  margin-top:34px; background:#fff; border:1px solid var(--line); border-left:4px solid var(--teal);
  border-radius:var(--radius); padding:28px 30px; box-shadow:var(--shadow-s);
}
.vendor h3{font-size:18px; font-weight:700; color:var(--navy); margin-bottom:12px}
.vendor p{font-size:15px; color:var(--ink-2)}
.support3{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:18px}
.support3 > div{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px}
.support3 b{display:block; color:var(--navy); font-size:16px; margin-bottom:8px}
.support3 p{font-size:14px; color:var(--ink-2)}

/* =========================================================
   S4 / S10 CTA
   ========================================================= */
.cta{
  background:linear-gradient(115deg,var(--navy-d) 0%, var(--navy-l) 100%);
  color:#fff; position:relative; overflow:hidden;
}
.cta::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:48px 48px;
}
.cta__inner{position:relative; z-index:2; text-align:center}
.cta__ttl{font-size:clamp(21px,2.7vw,31px); font-weight:700; line-height:1.6}
.cta__txt{margin-top:18px; color:#c9dcea; font-size:16px; line-height:1.95}
.cta__btns{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-top:30px}
.cta__note{margin-top:18px; font-size:13px; color:#9fb8cb}

/* =========================================================
   S5 選ばれる理由
   ========================================================= */
/* 実績サマリー */
.stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-bottom:32px;
  background:linear-gradient(115deg,var(--navy) 0%, var(--navy-l) 100%);
  border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-m);
}
.stat{
  padding:30px 24px; text-align:center; color:#fff;
  border-right:1px solid rgba(255,255,255,.13);
}
.stat:last-child{border-right:0}
.stat__n{
  display:block; font-size:clamp(24px,2.8vw,32px); font-weight:700; line-height:1.3; letter-spacing:.01em;
}
.stat__l{display:block; margin-top:9px; font-size:13px; color:#b6cde0; line-height:1.7}

/* タブレット幅：4列だと1項目が狭くなるため2×2にする */
@media (max-width:1024px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat{padding:26px 20px}
  .stat:nth-child(2n){border-right:0}
  .stat:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.13)}
}

.reasons{display:grid; grid-template-columns:repeat(2,1fr); gap:20px}
.reason{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:30px; box-shadow:var(--shadow-s); display:flex; gap:20px;
}
.reason__no{
  font-size:13px; font-weight:700; color:#fff; background:var(--teal); width:34px; height:34px;
  border-radius:8px; display:grid; place-items:center; flex-shrink:0;
}
.reason h3{font-size:18.5px; font-weight:700; color:var(--navy); line-height:1.55}
.reason p{margin-top:10px; font-size:14.5px; color:var(--ink-2)}
.reason--wide{grid-column:1/-1; background:linear-gradient(100deg,#fff 0%, #f3f9fa 100%); border-color:#cfe5e8}

/* =========================================================
   S6 対応例
   ========================================================= */
.cases{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.case{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--shadow-s); display:flex; flex-direction:column;
}
.case__head{background:var(--navy); color:#fff; padding:15px 22px}
.case__tag{
  display:inline-block; font-size:11px; font-weight:700; letter-spacing:.04em;
  padding:3px 10px; border-radius:99px; margin-bottom:9px;
  background:rgba(255,255,255,.16); color:#cfe1ee; border:1px solid rgba(255,255,255,.24);
}
.case__tag--real{background:var(--accent); color:#fff; border-color:var(--accent)}
.case__head b{display:block; font-size:16px; font-weight:700}
.case__head small{display:block; font-size:12px; color:#a9c3d6; margin-top:2px}
.case__body{padding:22px; flex:1}
.case__row + .case__row{margin-top:16px; padding-top:16px; border-top:1px solid var(--line-2)}
.case__lbl{font-size:11.5px; font-weight:700; letter-spacing:.06em; color:var(--teal-d); display:block; margin-bottom:5px}
.case__row p{font-size:14px; color:var(--ink-2); line-height:1.8}
.case__row--res p{color:var(--navy); font-weight:600}
.note{margin-top:22px; font-size:13px; color:var(--ink-3); text-align:center}

/* =========================================================
   S6.5 創業期
   ========================================================= */
.startup{
  background:linear-gradient(100deg,#fdf7f3 0%, #f7fafc 65%);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:76px 0;
}
.startup__grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:start}
.startup__label{
  display:inline-block; background:var(--accent); color:#fff; font-size:12px; font-weight:700;
  padding:5px 14px; border-radius:99px; margin-bottom:16px;
}
.startup__ttl{font-size:clamp(22px,2.6vw,29px); font-weight:700; color:var(--navy-d); line-height:1.55}
.startup__sub{margin-top:14px; font-size:15.5px; font-weight:700; color:#c0562a}
.startup__txt{margin-top:16px; font-size:14.8px; color:var(--ink-2); line-height:1.95}
.startup__items{display:grid; grid-template-columns:repeat(2,1fr); gap:14px}
.sitem{
  position:relative; overflow:hidden;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow-s);
}
.sitem > *:not(.card-bg){position:relative; z-index:1}
.sitem--wide{grid-column:1/-1; background:linear-gradient(105deg,#fff 0%, #f3f9fa 100%); border-color:#cfe5e8}

.sitem b{display:block; font-size:15.5px; color:var(--navy); font-weight:700}
.sitem p{margin-top:8px; font-size:13.5px; color:var(--ink-2); line-height:1.8}
.startup__foot{
  grid-column:1/-1; background:#fff; border:1px solid var(--line);
  border-radius:var(--radius); padding:20px 24px; display:flex; flex-wrap:wrap;
  align-items:center; justify-content:space-between; gap:16px;
}
.startup__foot p{font-size:14px; color:var(--ink-2)}

/* =========================================================
   S7 料金
   ========================================================= */
.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start}
.plan{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:32px 28px; box-shadow:var(--shadow-s); position:relative;
}
.plan--main{border:2px solid var(--teal); box-shadow:0 10px 30px rgba(13,127,140,.14); padding-top:40px}
.plan__reco{
  position:absolute; top:-13px; left:50%; translate:-50% 0; background:var(--teal); color:#fff;
  font-size:12px; font-weight:700; padding:5px 18px; border-radius:99px; white-space:nowrap;
}
.plan__name{font-size:20px; font-weight:700; color:var(--navy)}
.plan__for{margin-top:8px; font-size:13.5px; color:var(--teal-d); font-weight:700}
.plan__price{margin-top:18px; padding:16px 0; border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2)}
.plan__price b{font-size:26px; font-weight:700; color:var(--navy)}
.plan__price small{font-size:13px; color:var(--ink-3); display:block; margin-top:4px; line-height:1.7}
.plan__list{margin-top:18px}
.plan__list li{position:relative; padding-left:22px; font-size:14px; color:var(--ink-2); line-height:2}
.plan__list li::before{content:"✓"; position:absolute; left:0; color:var(--teal); font-weight:700; font-size:13px}
.price-note{margin-top:26px; background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--radius); padding:20px 24px}
.price-note p{font-size:13.5px; color:var(--ink-2)}
.price-note p + p{margin-top:8px}

/* =========================================================
   S8 流れ
   ========================================================= */
.flow{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.step{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:28px 24px; position:relative; box-shadow:var(--shadow-s);
  display:flex; flex-direction:column;           /* 所要時間のバッジを下端でそろえるため */
}
.step__no{font-size:12px; font-weight:700; color:var(--teal); letter-spacing:.1em; display:block; margin-bottom:10px}
.step h3{font-size:17.5px; font-weight:700; color:var(--navy)}
.step p{margin-top:10px; margin-bottom:14px; font-size:14px; color:var(--ink-2)}
.step__time{
  margin-top:auto; align-self:flex-start;        /* 本文の行数にかかわらず下端にそろえる */
  font-size:12px; font-weight:700; color:var(--ink-2);
  background:var(--bg-soft); border:1px solid var(--line); padding:4px 11px; border-radius:5px;
}
.step:not(:last-child)::after{
  content:"▶"; position:absolute; right:-14px; top:50%; translate:0 -50%;
  color:var(--line); font-size:13px; z-index:2;
}

/* =========================================================
   S9 FAQ
   ========================================================= */
.faq{max-width:900px; margin-inline:auto}
.faq details{background:#fff; border:1px solid var(--line); border-radius:var(--radius); margin-bottom:12px; overflow:hidden}
.faq details[open]{border-color:#c3d8de; box-shadow:var(--shadow-s)}
.faq summary{
  display:flex; align-items:flex-start; gap:14px; padding:20px 54px 20px 22px; cursor:pointer;
  font-size:16px; font-weight:700; color:var(--navy); position:relative; list-style:none; line-height:1.6;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q"; color:var(--teal); font-weight:700; flex-shrink:0}
.faq summary::after{
  content:""; position:absolute; right:24px; top:27px; width:11px; height:11px;
  border-right:2px solid var(--ink-3); border-bottom:2px solid var(--ink-3);
  transform:rotate(45deg); transition:.2s var(--ease);
}
.faq details[open] summary::after{transform:rotate(-135deg); top:31px}
.faq__a{display:flex; gap:14px; padding:0 24px 22px 22px; font-size:15px; color:var(--ink-2); line-height:1.9}
.faq__a::before{content:"A"; color:var(--accent); font-weight:700; flex-shrink:0}

/* =========================================================
   S10 会社概要
   ========================================================= */
/* 代表者紹介 */
.profile{
  background:#fff; border:1px solid var(--line); border-left:4px solid var(--teal);
  border-radius:var(--radius-lg); padding:34px 38px; box-shadow:var(--shadow-s); margin-bottom:32px;
}
.profile__head{display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 16px; margin-bottom:18px}
.profile__name{font-size:21px; font-weight:700; color:var(--navy)}
.profile__role{font-size:13px; font-weight:700; color:#fff; background:var(--teal); padding:4px 12px; border-radius:99px}
.profile p{font-size:15px; color:var(--ink-2); line-height:2}
.profile p + p{margin-top:14px}
/* よくあるご相談（引用調のリスト） */
.profile__voices{
  list-style:none; margin:22px 0 0; padding:0;
  display:grid; gap:10px;
}
.profile__voices li{
  position:relative; padding:13px 18px 13px 40px;
  background:var(--bg-soft); border-radius:10px;
  font-size:14.5px; line-height:1.85; color:var(--ink-2);
}
.profile__voices li::before{
  content:"”"; position:absolute; left:15px; top:12px;
  font-size:26px; line-height:1; font-weight:700; color:var(--teal);
}
.profile__voices + p{margin-top:18px}

.profile__skills{margin-top:22px; padding-top:20px; border-top:1px solid var(--line-2)}
.profile__skills dt{font-size:12.5px; font-weight:700; color:var(--teal-d); letter-spacing:.04em; margin-bottom:10px}
.profile__skills dd{margin:0; display:flex; flex-wrap:wrap; gap:8px}
.profile__skills span{
  font-size:13px; font-weight:600; color:var(--navy); background:var(--bg-soft);
  border:1px solid var(--line); padding:5px 12px; border-radius:6px;
}
.about{display:grid; grid-template-columns:1fr 1.15fr; gap:40px; align-items:start}
.about__tbl{background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden}
.about__tbl th,.about__tbl td{padding:15px 20px; font-size:14.5px; border-bottom:1px solid var(--line-2); text-align:left}
.about__tbl th{width:34%; background:#fbfcfe; font-weight:700; color:var(--navy); white-space:nowrap}
.about__tbl td{color:var(--ink-2)}
.about__tbl tr:last-child th,.about__tbl tr:last-child td{border-bottom:0}
.area{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:28px 30px}
.area h3{font-size:17px; font-weight:700; color:var(--navy); margin-bottom:18px}
.area__row + .area__row{margin-top:18px; padding-top:18px; border-top:1px solid var(--line-2)}
.area__lbl{display:inline-block; font-size:12px; font-weight:700; color:#fff; background:var(--teal); padding:3px 11px; border-radius:4px; margin-bottom:8px}
.area__row p{font-size:14px; color:var(--ink-2); line-height:1.85}
.area__note{margin-top:20px; padding-top:16px; border-top:1px solid var(--line-2); font-size:12.5px; color:var(--ink-3); line-height:1.8}

/* =========================================================
   Footer
   ========================================================= */
.footer{background:var(--navy-d); color:#b9cbd9; padding:64px 0 0; font-size:14px}
.footer__top{display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:36px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.12)}
.footer__brand .brand__name{color:#fff}
.footer__brand p{margin-top:14px; font-size:13.5px; line-height:1.9}
.footer h4{font-size:13px; font-weight:700; color:#fff; letter-spacing:.06em; margin-bottom:14px}
.footer__list li + li{margin-top:9px}
.footer__list a{font-size:13.5px; transition:.15s}
.footer__list a:hover{color:#fff}
.footer__bottom{display:flex; flex-wrap:wrap; gap:12px 24px; justify-content:space-between; align-items:center; padding:22px 0}
.footer__bottom small{font-size:12.5px; color:#8fa6b8}
.footer__bottom nav{display:flex; gap:20px; font-size:12.5px}

/* News line */
.newsline{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:16px 24px; margin-top:44px;
}
.newsline__ttl{font-size:12px; font-weight:700; letter-spacing:.08em; color:var(--teal-d)}
.newsline time{font-size:13px; color:var(--ink-3); font-variant-numeric:tabular-nums}
.newsline p{font-size:14px; font-weight:600; color:var(--ink)}
.newsline a{margin-left:auto; font-size:13px; font-weight:700; color:var(--teal-d)}

/* SP fixed CTA */
.spbar{
  position:fixed; left:0; right:0; bottom:0; z-index:90; display:none;
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96); backdrop-filter:blur(8px); border-top:1px solid var(--line);
  gap:10px; transform:translateY(110%); transition:transform .3s var(--ease);
}
.spbar.is-show{transform:translateY(0)}
.spbar .btn{padding:14px 10px; font-size:15px}
.spbar__sub{
  flex:0 0 34%; display:flex; align-items:center; justify-content:center; border:1px solid var(--line);
  border-radius:8px; font-size:13px; font-weight:700; color:var(--navy);
}
.spbar__main{flex:1}

/* Reveal */
.rv{opacity:0; transform:translateY(18px); transition:opacity .6s var(--ease), transform .6s var(--ease)}
.rv.is-in{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1; transform:none; transition:none}
  html{scroll-behavior:auto}
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1180px){
  .mega{width:680px}
  .brand__desc{display:none}
}
@media (max-width:1024px){
  :root{--header-h:66px}
  .section{padding:72px 0}
  .gnav{display:none}
  .burger{display:flex}
  .head-cta{margin-left:auto}
  .head-cta__sub{display:none}
  .hero__inner{grid-template-columns:1fr; gap:44px}
  .hero{padding:calc(var(--header-h) + 44px) 0 64px}
  .hbadge{right:8px; bottom:-14px}
  .probs{grid-template-columns:repeat(2,1fr)}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .svc-main{padding:32px 28px}
  .support3{grid-template-columns:1fr}
  .cases{grid-template-columns:1fr}
  .startup__grid{grid-template-columns:1fr; gap:32px}
  .plans{grid-template-columns:1fr}
  .plan--main{order:-1}
  .flow{grid-template-columns:repeat(2,1fr)}
  .step:not(:last-child)::after{display:none}
  .about{grid-template-columns:1fr}
  .footer__top{grid-template-columns:1fr 1fr; gap:28px}

  /* Drawer */
  /* .header に backdrop-filter があるため、ドロワーの包含ブロックはヘッダー自身になる。
     そのため top:100% 起点＋高さ指定で viewport 下端まで伸ばす。 */
  .gnav.is-drawer{
    display:block; position:absolute; top:100%; left:0; right:0; bottom:auto;
    height:calc(100vh - var(--header-h)); background:#fff;
    overflow-y:auto; padding:24px 20px 120px; border-top:1px solid var(--line);
  }
  @supports (height:100dvh){
    .gnav.is-drawer{height:calc(100dvh - var(--header-h))}
  }
  .gnav.is-drawer .gnav__list{flex-direction:column; align-items:stretch; gap:0}
  .gnav.is-drawer .gnav__link{
    padding:17px 6px; font-size:16px; border-bottom:1px solid var(--line-2); border-radius:0;
  }
  .gnav.is-drawer .mega{
    position:static; opacity:1; visibility:visible; transform:none; width:auto;
    box-shadow:none; border:0; border-bottom:1px solid var(--line-2); border-radius:0;
    padding:8px 0 18px; translate:none;
  }
  .gnav.is-drawer .mega__grid{grid-template-columns:1fr; gap:18px}
  .gnav.is-drawer .mega__foot{flex-direction:column; align-items:flex-start}
  .gnav.is-drawer .drawer-cta{margin-top:24px; display:grid; gap:10px}
}
@media (max-width:767px){
  body{font-size:15.5px}
  .section{padding:56px 0}
  .wrap{width:min(100% - 32px, var(--wrap))}
  .sec-head{margin-bottom:32px}
  .hero{padding:calc(var(--header-h) + 30px) 0 48px}
  .hero__eyebrow{font-size:11.5px; padding:7px 12px; margin-bottom:18px; line-height:1.5}
  .hero__title{line-height:1.45}
  .hero__lead{margin-top:20px; font-size:15px}
  .chips{gap:6px; margin-top:20px}
  .chips li{font-size:11.5px; padding:5px 9px}
  .hero__cta{margin-top:26px; gap:10px}
  .hero__cta .btn{width:100%}
  .trustbar{gap:8px 16px; font-size:12.5px; margin-top:22px; padding-top:18px}
  .hero__visual{display:none}
  .probs{grid-template-columns:1fr; gap:12px}
  .prob{padding:20px 18px}
  .bridge{padding:26px 22px; margin-top:28px}
  .svc-grid{grid-template-columns:1fr; gap:12px}
  .svc-grid + .svc-grid{margin-top:12px}
  .svc{padding:24px 20px}
  .card-bg{width:120px; height:120px; top:-10px; right:-10px}
  .card-bg--sm{width:104px; height:104px; top:-8px; right:-8px}
  .card-bg--lg{width:130px; height:130px; top:-12px; right:-12px}
  .svc-main{padding:26px 22px}
  .reasons{grid-template-columns:1fr}
  .reason{padding:24px 20px; gap:14px}
  .stats{grid-template-columns:1fr; margin-bottom:24px}
  .stat:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.13)}
  .stat{
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    text-align:left; padding:18px 22px;
    border-right:0; border-bottom:1px solid rgba(255,255,255,.13);
  }
  .stat:last-child{border-bottom:0}
  .stat__n{font-size:21px}
  .stat__l{margin-top:0; font-size:12px; text-align:right; max-width:60%}
  .flow{grid-template-columns:1fr; gap:12px}
  .step{padding:22px 20px}
  .startup{padding:56px 0}
  .startup__items{grid-template-columns:1fr}
  .startup__foot{flex-direction:column; align-items:stretch}
  .startup__foot .txtlink{justify-content:center}
  .cmp{border:0; box-shadow:none; background:transparent}
  .cmp table,.cmp thead,.cmp tbody,.cmp th,.cmp td,.cmp tr{display:block}
  .cmp thead{display:none}
  .cmp tbody tr{background:#fff; border:1px solid var(--line); border-radius:var(--radius); margin-bottom:12px; overflow:hidden}
  .cmp tbody th{width:auto; font-size:14px; padding:12px 16px}
  .cmp tbody td{padding:11px 16px; font-size:14px; border-bottom:1px solid var(--line-2); display:flex; gap:10px}
  .cmp tbody td::before{content:attr(data-l); font-size:12px; font-weight:700; color:var(--ink-3); flex:0 0 34%}
  .about__tbl th{width:32%; font-size:13.5px; padding:12px 14px}
  .about__tbl td{font-size:13.5px; padding:12px 14px}
  .area{padding:22px 20px}
  .profile{padding:24px 20px; margin-bottom:24px}
  .profile__name{font-size:18.5px}
  .profile p{font-size:14.5px; line-height:1.95}
  .profile__voices li{padding:12px 15px 12px 35px; font-size:14px}
  .profile__voices li::before{left:13px; top:11px; font-size:23px}
  .faq summary{font-size:15px; padding:17px 46px 17px 18px}
  .faq__a{padding:0 18px 18px; font-size:14.5px}
  .footer__top{grid-template-columns:1fr; gap:26px; padding-bottom:32px}
  .footer{padding-top:48px; padding-bottom:70px}
  .newsline{padding:16px 18px; gap:8px 14px}
  .newsline a{margin-left:0; width:100%}
  .spbar{display:flex}
  .cta__btns .btn{width:100%}
}

/* =========================================================
   タブレット幅（2列表示）で、あまった1枚を中央にそろえる
   ---------------------------------------------------------
   grid のままだと、あまりが必ず左端に寄ってしまうため、
   この幅のときだけ flex に切り替えて中央そろえにしています。
   （2枚そろっている行は横幅いっぱいになるため、見た目は変わりません）
   ========================================================= */
@media (min-width:768px) and (max-width:1024px){
  .svc-grid,
  .probs,
  .flow,
  .startup__items{
    display:flex; flex-wrap:wrap; justify-content:center;
  }
  .svc-grid > *,
  .probs > *,
  .flow > *{flex:0 1 calc(50% - 9px)}      /* gap:18px の半分 */
  .startup__items > *{flex:0 1 calc(50% - 7px)}  /* gap:14px の半分 */
  .startup__items > .sitem--wide{flex-basis:100%}
}

/* ---------- 改行制御 ---------- */
.sp-br{display:none}
@media (max-width:767px){
  .pc-br{display:none}
  .sp-br{display:inline}
}
