@charset "utf-8";
/* サイト刷新 第2段階 バッチ2 専用の追加CSS（/terasaki_lp.html・/download/・/hojokin/）
   ss-site-v3.css の後に読む。色は必ず var(--v3-*) 経由で書く＝濃紺・金・オレンジを
   構造的に混入させない。子孫セレクタの深さは共通CSSと同じかそれ以上にする
   （共通CSSは .v3-foot .v3-foot-copy のように (0,2,0) が多く、単一クラスでは負ける）。 */

/* ---------------------------------------------------------------- 共通 */
body.v3{word-break:auto-phrase}

/* 画像つきの図（代表者写真・セミナー写真・所属活動） */
body.v3 .b2-pic{margin:0 0 18px}
body.v3 .b2-pic img{display:block;width:100%;height:auto;border:1px solid var(--v3-line);
  border-radius:var(--v3-radius);background:var(--v3-base)}
body.v3 .b2-pic figcaption{font-size:14px;color:var(--v3-deep);margin:8px 0 0;line-height:1.8}

/* 本文＋写真の2段組（セミナー・タイアップ） */
body.v3 .b2-duo{display:grid;gap:22px;grid-template-columns:minmax(220px,320px) 1fr;
  align-items:start;margin:0 0 18px}
body.v3 .b2-duo>*{min-width:0}
@media (max-width:760px){body.v3 .b2-duo{grid-template-columns:1fr}}

/* 孤立行対策の <span class="v3-nb"> は必ずインライン。
   共通CSSの .v3-stats span / .v3-gate span のような「子孫の span」を狙った指定は
   入れ子の v3-nb にも当たるため、display:block を継いで強制改行になる
   （「技術資料／・提案書」と割れた。text-wrap を変えても直らない＝折返しではない）。 */
body.v3 .v3-nb{display:inline}

/* 共通CSSで text-wrap:balance が効いている短い塊では、行末4文字を束ねる v3-nb が
   かえって不自然な位置（「（19 / 98年〜）」のように数字の途中）で改行させる。
   balance 側に任せる＝孤立行は balance が防ぐ（qa.js の孤立行検査で0を実測）。 */
body.v3 .v3-stats span .v3-nb,
body.v3 .v3-seven-list b .v3-nb,
body.v3 .v3-seven-list span .v3-nb,
body.v3 .v3-steps h3 .v3-nb,
body.v3 .v3-tag .v3-nb{white-space:normal}

/* 氏名と肩書き（代表者プロフィールの先頭） */
body.v3 .b2-name{margin:0 0 6px}
body.v3 .b2-name .b2-nm{display:block;font-size:clamp(20px,2.4vw,24px);
  font-weight:800;color:var(--v3-head);line-height:1.5}
body.v3 .b2-name .b2-rl{display:block;font-size:14px;color:var(--v3-deep);font-weight:700}

/* 署名（ごあいさつ末尾） */
body.v3 .b2-sign{margin:18px 0 0;text-align:right;font-weight:800;color:var(--v3-head)}
body.v3 .b2-sign small{display:block;font-weight:600;font-size:13px;color:var(--v3-deep)}

/* ステップ丸のうち絵文字のもの（共通CSSの白文字×#0E9AB4 では 4.5:1 に届かない） */
body.v3 .v3-steps .v3-step-n.b2-ic{width:36px;height:36px;font-size:18px;
  background:var(--v3-band);color:var(--v3-head)}

/* 実績バッジ（SINCE 1998 / 28 YEARS） */
body.v3 .b2-badge{display:inline-flex;align-items:baseline;gap:8px;margin:0 0 10px;
  padding:6px 14px;border-radius:999px;background:var(--v3-band);
  color:var(--v3-head);font-weight:800;font-size:14px;letter-spacing:.04em}
body.v3 .b2-badge b{font-size:19px;color:var(--v3-deep)}

/* 旧CSSを外したことで素になる本文中のアイコンSVG。
   width/height が無い SVG は親いっぱい（実測 674〜699px）に膨らみ、fill の既定が
   black なので「黒い巨大な図形」になる。本文に置かれる裸のSVGは文字サイズに揃える。 */
body.v3 .v3-eyebrow svg,
body.v3 .v3-note svg,
body.v3 p > svg,
body.v3 li > svg{width:1.15em;height:1.15em;flex:0 0 auto;vertical-align:-.15em;
  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ヒーロー見出しの副題（h1 の中の <small>）は行を分ける */
body.v3 .v3-hero h1 small{display:block;margin-top:10px;font-size:.5em;
  font-weight:700;line-height:1.6;color:var(--v3-body)}

/* ---------------------------------------------------------------- 入力部品 */
body.v3 .b2-form{display:grid;gap:14px;margin:0;padding:22px;background:var(--v3-white);
  border:1px solid var(--v3-line);border-radius:var(--v3-radius);box-shadow:var(--v3-shadow)}
body.v3 .b2-form .field{display:grid;gap:6px}
body.v3 .b2-form label{font-size:14px;font-weight:700;color:var(--v3-head)}
body.v3 .b2-form .rq,body.v3 .b2-form .req{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;
  background:var(--v3-cta);color:#fff;font-size:11px;font-weight:800;vertical-align:2px}
body.v3 .b2-form input,body.v3 .b2-form select,body.v3 .b2-form textarea{
  width:100%;box-sizing:border-box;min-height:46px;padding:11px 13px;
  font-family:inherit;font-size:16px;line-height:1.6;color:var(--v3-head);
  background:var(--v3-white);border:1px solid var(--v3-line);border-radius:8px}
body.v3 .b2-form textarea{min-height:120px;resize:vertical}
/* チェックボックス・ラジオまで width:100%/min-height:46px を当てると
   「巨大な四角＋下に回り込んだラベル」になる（資料請求の同意欄で発生） */
body.v3 .b2-form input[type="checkbox"],
body.v3 .b2-form input[type="radio"]{width:20px;min-width:20px;height:20px;
  min-height:20px;margin:0;padding:0;flex:0 0 auto;accent-color:var(--v3-cta)}
body.v3 .b2-form label:has(input[type="checkbox"]),
body.v3 .b2-form label:has(input[type="radio"]){display:flex;align-items:flex-start;
  gap:10px;font-weight:600;line-height:1.8}
body.v3 .b2-form input:focus,body.v3 .b2-form select:focus,body.v3 .b2-form textarea:focus{
  border-color:var(--v3-cta);outline:3px solid var(--v3-accent);outline-offset:1px}
/* 入力エラーは既定で非表示。JS が style.display で出し入れする
   （本番はインライン style で隠していたが、style属性は全部落としたのでCSSで持つ） */
body.v3 .b2-form .err{display:none;font-size:13px;color:var(--v3-deep);font-weight:700}
body.v3 .b2-form .form-msg{margin:10px 0 0;font-size:14px;font-weight:700;color:var(--v3-deep)}
body.v3 .b2-form input.bad,body.v3 .b2-form select.bad{border-color:var(--v3-cta)}
body.v3 .b2-form .b2-note{font-size:13px;color:var(--v3-deep);line-height:1.8;margin:0}
body.v3 .b2-form button[type="submit"],body.v3 .b2-form .b2-submit{
  min-height:52px;padding:12px 22px;border:0;border-radius:8px;cursor:pointer;
  background:var(--v3-cta);color:#fff;font-family:inherit;font-size:17px;font-weight:800}
body.v3 .b2-form button[type="submit"]:hover,body.v3 .b2-form .b2-submit:hover{
  background:var(--v3-cta-h)}
body.v3 .b2-radio{display:flex;flex-wrap:wrap;gap:10px}
body.v3 .b2-radio label{display:inline-flex;align-items:center;gap:7px;min-height:44px;
  padding:8px 16px;border:1px solid var(--v3-line);border-radius:999px;
  background:var(--v3-white);cursor:pointer;font-weight:700;color:var(--v3-head)}
body.v3 .b2-radio input{width:auto;min-height:0;margin:0}
body.v3 .b2-thanks{display:none;margin:16px 0 0;padding:18px 20px;background:var(--v3-band);
  border:1px solid var(--v3-line);border-radius:var(--v3-radius);color:var(--v3-head)}

/* チェック付きの箇条（資料請求の左側） */
body.v3 .cpts{list-style:none;padding-left:0;margin:0 0 14px;display:grid;gap:8px}
body.v3 .cpts>li{display:flex;align-items:flex-start;gap:9px;margin:0;color:var(--v3-body)}
body.v3 .cpts>li>svg{width:19px;height:19px;margin-top:4px;flex:0 0 auto;fill:none;
  stroke:var(--v3-cta);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

/* 検索欄（資料ライブラリ） */
body.v3 .b2-search{display:flex;gap:10px;align-items:center;margin:0 0 18px}
body.v3 .b2-search svg{flex:0 0 auto;width:22px;height:22px;fill:none;
  stroke:var(--v3-deep);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.v3 .b2-search input{flex:1;min-width:0;box-sizing:border-box;min-height:50px;
  padding:12px 16px;font-family:inherit;font-size:16px;color:var(--v3-head);
  background:var(--v3-white);border:1px solid var(--v3-line);border-radius:999px}
body.v3 .b2-search input:focus{border-color:var(--v3-cta);
  outline:3px solid var(--v3-accent);outline-offset:1px}

/* タブ（法人／個人の切り替え） */
body.v3 .b2-seg{display:inline-flex;gap:4px;margin:0 0 16px;padding:4px;
  background:var(--v3-base);border:1px solid var(--v3-line);border-radius:999px}
body.v3 .b2-seg button{min-height:42px;padding:8px 20px;border:0;border-radius:999px;
  cursor:pointer;background:transparent;font-family:inherit;font-size:15px;
  font-weight:800;color:var(--v3-deep)}
body.v3 .b2-seg button[aria-selected="true"],body.v3 .b2-seg button.on{
  background:var(--v3-cta);color:#fff}

/* 正七角形の項目（b/span/br の素の並び） */
body.v3 .v3-seven-list>li>div{min-width:0}
body.v3 .v3-seven-list>li>div>b{display:block;color:var(--v3-head);font-size:16px}
body.v3 .v3-seven-list>li>div>br{display:none}
body.v3 .v3-seven-list>li>div>span{display:block;font-size:14px;
  color:var(--v3-body);line-height:1.8}

/* ---------------------------------------------------------------- 資料ライブラリ */
/* 人気の資料（横スクロール1列） */
body.v3 .b2-pop{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  margin:0 0 6px;padding:0;list-style:none}
body.v3 .b2-pop .pop{display:block;text-decoration:none;background:var(--v3-white);
  border:1px solid var(--v3-line);border-radius:var(--v3-radius);overflow:hidden;
  box-shadow:var(--v3-shadow);color:var(--v3-head)}
body.v3 .b2-pop .pop:hover{border-color:var(--v3-accent);box-shadow:var(--v3-shadow-l)}
body.v3 .b2-pop .pop-img img{display:block;width:100%;aspect-ratio:16/10;
  object-fit:cover;background:var(--v3-base)}
body.v3 .b2-pop .pop-b{padding:12px 14px}
body.v3 .b2-pop .pop-b .k{font-size:12px;font-weight:800;color:var(--v3-deep);
  letter-spacing:.02em}
body.v3 .b2-pop .pop-b .t{font-size:15px;font-weight:800;color:var(--v3-head);
  line-height:1.6;margin-top:2px}

/* カテゴリのタイル */
body.v3 .b2-cnav{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(252px,1fr));
  margin:0;padding:0;list-style:none}
body.v3 .b2-cnav .cnav{display:block;overflow:hidden;
  border:1px solid var(--v3-line);border-radius:var(--v3-radius);
  text-decoration:none;box-shadow:var(--v3-shadow);background:var(--v3-base)}
body.v3 .b2-cnav .cnav:hover{border-color:var(--v3-accent);box-shadow:var(--v3-shadow-l)}
body.v3 .b2-cnav .cnav img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
body.v3 .b2-cnav .cnav .ov{display:none}
body.v3 .b2-cnav .cnav .cin{position:static;
  display:flex;align-items:center;gap:10px;padding:12px 14px;
  background:var(--v3-white);color:var(--v3-head)}
body.v3 .b2-cnav .cnav .cin .ic{flex:0 0 auto;display:inline-flex;align-items:center;
  justify-content:center;width:34px;height:34px;border-radius:8px;background:var(--v3-cta)}
body.v3 .b2-cnav .cnav .cin .ic svg{width:19px;height:19px;fill:none;stroke:#fff;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.v3 .b2-cnav .cnav .cin .nm{flex:1;min-width:0;font-size:15px;font-weight:800;
  line-height:1.5;color:var(--v3-head);
  /* auto-phrase では「省エネダブルプラン」が途中で割れた（Chrome の文節辞書に無い）。
     keep-all で語中改行を止め、どうしても収まらない時だけ anywhere に逃がす */
  word-break:keep-all;overflow-wrap:anywhere}
body.v3 .b2-cnav .cnav .cin .ct{flex:0 0 auto;font-size:12px;font-weight:800;
  padding:3px 9px;border-radius:999px;background:var(--v3-cta);color:#fff}

/* カテゴリ節と資料カード（JSが生成する） */
body.v3 #lib .cat-sec{padding:clamp(34px,4.4vw,56px) 0;background:var(--v3-white)}
body.v3 #lib .cat-sec:nth-of-type(even){background:var(--v3-base)}
body.v3 #lib .cat-sec>.wrap{max-width:var(--v3-wide);margin-inline:auto;padding-inline:20px}
body.v3 #lib .cat-head{display:flex;align-items:center;gap:12px;margin:0 0 6px}
body.v3 #lib .cat-head .cx{flex:0 0 auto;display:inline-flex;align-items:center;
  justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--v3-cta)}
body.v3 #lib .cat-head .cx svg{width:22px;height:22px;fill:none;stroke:#fff;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body.v3 #lib .cat-head h2{margin:0;font-size:clamp(20px,2.6vw,26px);color:var(--v3-head)}
body.v3 #lib .cat-sub{margin:0 0 18px;font-size:15px;color:var(--v3-body)}
body.v3 #lib .grid{display:grid;gap:18px;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
body.v3 #lib .doc{display:flex;flex-direction:column;background:var(--v3-white);
  border:1px solid var(--v3-line);border-top:3px solid var(--v3-card-band);
  border-radius:var(--v3-radius);overflow:hidden;box-shadow:var(--v3-shadow)}
body.v3 #lib .doc .cover{position:relative;background:var(--v3-base)}
body.v3 #lib .doc .cover img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover}
body.v3 #lib .doc .cover .tag{position:absolute;left:10px;top:10px;padding:3px 10px;
  border-radius:999px;background:var(--v3-cta);color:#fff;font-size:12px;font-weight:800}
body.v3 #lib .doc .cover .vbadge{position:absolute;right:10px;top:10px;
  display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;
  background:var(--v3-deep);color:#fff;font-size:12px;font-weight:800}
body.v3 #lib .doc .cover .vbadge svg{width:12px;height:12px;fill:#fff}
body.v3 #lib .doc .in{display:flex;flex-direction:column;gap:10px;padding:16px 18px 18px}
body.v3 #lib .doc .in h3{margin:0;font-size:17px;line-height:1.55}
body.v3 #lib .doc .in .meta{font-size:13px;color:var(--v3-deep);font-weight:700}
body.v3 #lib .doc .in .acts{display:grid;gap:8px;margin-top:auto}
body.v3 #lib .doc .in .acts .row{display:grid;gap:8px;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
body.v3 #lib .doc .in .acts .v3-btn,body.v3 #lib .doc .in .acts .v3-btn-out{
  width:100%;box-sizing:border-box;justify-content:center;font-size:14px;padding:11px 12px}
body.v3 #lib .doc .in .acts .v3-btn svg,body.v3 #lib .doc .in .acts .v3-btn-out svg{
  width:15px;height:15px;flex:0 0 auto}
body.v3 .b2-noresult{display:none;max-width:var(--v3-read);margin:0 auto 24px;
  padding:18px 20px;background:var(--v3-band);border:1px solid var(--v3-line);
  border-radius:var(--v3-radius);color:var(--v3-head);font-weight:700;text-align:center}
body.v3 .b2-noresult.on{display:block}

/* 動画モーダル */
body.v3 .b2-vmodal{position:fixed;inset:0;z-index:90;display:none;
  align-items:center;justify-content:center;padding:20px;
  background:rgba(30,58,76,.72)}
body.v3 .b2-vmodal.on{display:flex}
body.v3 .b2-vmodal .vbox{position:relative;width:min(960px,100%);
  background:var(--v3-head);border-radius:var(--v3-radius);overflow:hidden}
body.v3 .b2-vmodal .vclose{position:absolute;right:8px;top:8px;z-index:2;min-height:40px;
  padding:7px 14px;border:0;border-radius:8px;cursor:pointer;
  background:var(--v3-cta);color:#fff;font-family:inherit;font-size:14px;font-weight:800}
body.v3 .b2-vmodal .vclose:hover{background:var(--v3-cta-h)}
body.v3 .b2-vmodal iframe{display:block;width:100%;aspect-ratio:16/9;border:0}

/* ---------------------------------------------------------------- 補助金ページ */
/* 7つの経営効果（正七角形）。共通の .v3-seven を使い、図のサイズだけ合わせる */
body.v3 .b2-seven-fig{width:100%;max-width:340px;height:auto;justify-self:center}
body.v3 .b2-seven-fig text{font-family:var(--v3-font)}

/* 役割分担のロックアップ */
body.v3 .b2-lockup{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:10px 18px;margin:0 0 18px;padding:16px 18px;background:var(--v3-base);
  border:1px solid var(--v3-line);border-radius:var(--v3-radius);text-align:center}
body.v3 .b2-lockup b{display:block;font-size:17px;color:var(--v3-head)}
body.v3 .b2-lockup small{display:block;font-size:12px;font-weight:700;color:var(--v3-deep)}
body.v3 .b2-lockup .x{font-size:18px;font-weight:800;color:var(--v3-accent)}

/* 課題の並び（✕つき） */
body.v3 .b2-pains{display:grid;gap:10px;margin:0 0 16px;padding:0;list-style:none}
body.v3 .b2-pains>li{display:flex;gap:10px;align-items:flex-start;margin:0;
  padding:12px 14px;background:var(--v3-white);border:1px solid var(--v3-line);
  border-left:3px solid var(--v3-accent);border-radius:8px;color:var(--v3-body)}
body.v3 .b2-pains .b2-x{flex:0 0 auto;display:inline-flex;align-items:center;
  justify-content:center;width:24px;height:24px;margin-top:3px;border-radius:50%;
  background:var(--v3-band);color:var(--v3-deep);font-size:13px;font-weight:800}

/* 強調の一文（「まるごと引き受けます」） */
body.v3 .b2-payoff{margin:0;padding:16px 18px;background:var(--v3-band);
  border:1px solid var(--v3-line);border-radius:var(--v3-radius);
  color:var(--v3-head);font-weight:800;font-size:clamp(16px,2.1vw,19px);text-align:center}
