/*
 * トップページ専用スタイル（DEC-46 U2）
 * 正本：ハイブリッド試作 P2（mocks/visual/hybrid-p2.html）。
 * front-page.php のときだけ functions.php から読み込む。
 * 共通部品（ヘッダー／ボタン／チップ／CTA帯／フッター等）は style.css 側を使い、
 * ここには FV・事業の行リスト・VIZLIVE面の見せ場・進め方・理念・
 * 会社概要ダイジェストと、トップ限定モーション（M-1／線描画／金のゲージ）
 * だけを置く。色は style.css のデザイントークンを参照する。
 */

/* ===== FV（白地＋超大型タイポ＋循環線） ===== */
.fv{background:var(--white);color:var(--ink);padding:84px 0 76px;overflow:hidden}
.hero{display:grid;grid-template-columns:1.25fr .75fr;gap:36px;align-items:center}
.hero-title{
  font-size:clamp(40px,7.4vw,88px);line-height:1.28;letter-spacing:.03em;
  font-weight:600;color:var(--ink);margin:26px 0 0;
}
.hero-mission{margin-top:30px;font-size:17px;color:var(--slate);letter-spacing:.02em}
.hero-links{display:flex;gap:34px;flex-wrap:wrap;margin-top:38px}
.tlink{
  font-weight:700;font-size:15.5px;color:var(--green);padding-bottom:3px;
  background-image:linear-gradient(var(--green),var(--green));
  background-size:0% 2px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size .25s var(--ease);
}
.tlink:hover{background-size:100% 2px}
.tlink .arr{display:inline-block;transition:transform .25s var(--ease)}
.tlink:hover .arr{transform:translateX(4px)}

/* ===== 循環線（署名モチーフ） ===== */
.ring-fig{width:100%;max-width:460px;justify-self:end;margin:0}
.ring{display:block;width:100%;height:auto}
.ring .ring-track{stroke:var(--line)}
.ring .ring-path{stroke:var(--green)}
.ring .ring-arrow{stroke:var(--green);transition:opacity .45s var(--ease)}
.ring-node circle{fill:#fff;stroke:#A9BFAE;stroke-width:2.5;transition:fill .4s var(--ease),stroke .4s var(--ease)}
.ring-node text{opacity:.35;transition:opacity .4s var(--ease)}
.ring-node .rn-num{font-size:14px;font-weight:800;letter-spacing:.18em;fill:var(--green)}
.ring-node .rn-lab{font-family:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;font-size:22px;font-weight:600;fill:var(--ink)}
.ring-node.lit circle{fill:var(--green);stroke:var(--green)}
.ring-node.lit text{opacity:1}
.ring-fig.mini{max-width:118px;justify-self:start}
.ring-fig.mini .ring-node .rn-num,.ring-fig.mini .ring-node .rn-lab{display:none}

/* ===== 事実の帯 ===== */
.facts{
  display:flex;flex-wrap:wrap;gap:10px 0;margin-top:70px;padding-top:20px;
  border-top:1px solid var(--line);font-size:13px;color:var(--slate);letter-spacing:.04em;
}
.facts span{padding:0 18px;border-left:1px solid var(--line)}
.facts span:first-child{padding-left:0;border-left:none}

/* ===== 実素材パネル（FV下部） ===== */
.mat-panel{margin-top:30px;background:var(--black);border-radius:10px;padding:16px 16px 18px}
.mat-head{display:flex;align-items:center;gap:12px;padding:2px 6px 13px}
.mat-name{color:#EDEDED;font-weight:700;font-size:13.5px;letter-spacing:.1em}
.mat-panel img{display:block;width:100%;height:auto;border-radius:6px}
.mat-panel figcaption{color:#B9B9B9;font-size:12.5px;line-height:1.7;padding:13px 6px 2px}

/* ===== 事業インデックス（カードを廃した大きな行リスト） ===== */
.biz-rows{margin-top:42px;border-bottom:1px solid var(--line)}
.biz-row{
  display:grid;grid-template-columns:58px minmax(0,1fr) 34px;gap:22px;align-items:center;
  padding:32px 10px;border-top:1px solid var(--line);
  transition:background-color .25s var(--ease);
}
.biz-row:hover{background:var(--mist)}
.biz-row .num{font-size:14px;font-weight:800;letter-spacing:.2em;color:var(--green)}
.biz-name{font-size:25px;font-weight:800;line-height:1.45;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.biz-row p{color:var(--slate);font-size:14.5px;margin-top:5px;max-width:760px}
.biz-row .arr{font-size:23px;color:var(--green);transition:transform .25s var(--ease)}
.biz-row:hover .arr{transform:translateX(6px)}
/* 行リスト上の「開発中」チップは白地での可読性を優先する（試作 P2 の値） */
.biz-row .chip.dev{color:#8A6D14;background:#FBF4DC}

/* ===== VIZLIVE面の見せ場（金のゲージ＋実画面） ===== */
.vizlive .lead{color:#CFCFCF;max-width:700px}
.vizlive h2{font-weight:800}
.gauge{margin-bottom:40px}
.gauge-track{height:3px;background:#2B2B2B;border-radius:2px;overflow:hidden}
.gauge-fill{
  height:100%;
  background:linear-gradient(90deg,var(--gold) 0%,var(--gold-pale) 100%);
  transform:scaleX(1);transform-origin:left center;
}
html.js .gauge-fill{transform:scaleX(0)}
.gauge.in .gauge-fill{transform:scaleX(1);transition:transform 1.5s var(--ease)}
.gauge-ticks{height:6px;margin-top:5px;background:repeating-linear-gradient(90deg,#333 0 1px,transparent 1px 44px)}
.gauge-cap{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.18em;color:#8A8A8A;margin-top:6px;font-weight:700}
.viz-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:38px;margin-top:34px;align-items:start}
.vizlive .viz-frame b{color:var(--gold-pale);font-size:19px}
.vizlive .viz-frame p{font-size:14.5px}
.viz-shot{margin:0}
.viz-shot img{display:block;width:100%;height:auto;border:1px solid #3A3A3A;border-radius:8px}
.viz-shot figcaption{display:flex;gap:12px;align-items:flex-start;color:#B9B9B9;font-size:12.5px;line-height:1.7;margin-top:13px}
.viz-shot figcaption .chip{flex:none;margin-top:2px}

/* ===== ご支援の進め方（大型循環線＋STEP強調） ===== */
.proc-grid{display:grid;grid-template-columns:minmax(0,470px) minmax(0,1fr);gap:58px;align-items:center;margin-top:46px}
.proc-ring{justify-self:center}
.psteps{display:flex;flex-direction:column;gap:10px}
.pstep{padding:20px 24px;border-radius:8px;transition:background-color .35s var(--ease),box-shadow .35s var(--ease)}
.pstep .n{font-weight:800;color:var(--green);letter-spacing:.16em;font-size:12.5px}
.pstep b{display:block;font-size:17px;margin:5px 0 4px}
.pstep p{font-size:13.5px;color:#3D454C}
.pstep.on{background:var(--mist);box-shadow:0 8px 22px rgba(14,58,34,.08)}
#process .callout{margin-top:46px}
#process .callout .q{font-weight:600;letter-spacing:.02em;line-height:1.85}

/* ===== 理念ブロック（言葉の署名。理念は Noto Serif JP 900） ===== */
.philo-in{display:grid;grid-template-columns:118px minmax(0,1fr);gap:44px;align-items:start}
.philo-title{
  font-size:clamp(30px,4.2vw,44px);line-height:1.55;letter-spacing:.05em;
  font-weight:900;margin:14px 0 16px;
}
.philo-in p{color:var(--slate);max-width:680px}
.philo-link{
  display:inline-block;margin-top:22px;font-weight:700;color:var(--green);font-size:15px;
  padding-bottom:3px;
  background-image:linear-gradient(var(--green),var(--green));
  background-size:0% 2px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size .25s var(--ease);
}
.philo-link:hover{background-size:100% 2px}

/* ===== 会社概要ダイジェスト ===== */
.digest{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:36px}
.digest dt{font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--green);margin-bottom:8px}
.digest dd{font-size:15px;font-weight:600;line-height:1.65}
.digest-link{
  display:inline-block;margin-top:30px;font-weight:700;color:var(--green);font-size:15px;
  padding-bottom:3px;
  background-image:linear-gradient(var(--green),var(--green));
  background-size:0% 2px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size .25s var(--ease);
}
.digest-link:hover{background-size:100% 2px}

/* ===== M-1：FV見出しを行単位で下から現す（トップ限定） ===== */
.hero-title .ln{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.hero-title .ln-in{
  display:block;
  transition:transform .72s var(--ease) var(--ld,0ms),opacity .72s var(--ease) var(--ld,0ms);
}
html.js .hero-title .ln-in{transform:translateY(110%);opacity:0}
html.js body.loaded .hero-title .ln-in{transform:translateY(0);opacity:1}

/* ===== レスポンシブ（試作 P2 準拠：760px以下をスマホ形状） ===== */
@media (max-width:760px){
  .fv{padding:56px 0 58px}
  .hero{grid-template-columns:1fr;gap:30px}
  .hero-mission{font-size:15.5px;margin-top:24px}
  .hero-links{gap:22px;margin-top:30px}
  .ring-fig{max-width:320px;justify-self:center}
  .facts{margin-top:48px}
  .facts span{padding:0 12px}
  .mat-panel{padding:12px 12px 14px}
  .biz-row{grid-template-columns:40px minmax(0,1fr) 24px;gap:14px;padding:26px 4px}
  .biz-name{font-size:20px;gap:10px}
  .biz-row .arr{font-size:19px}
  .viz-grid{grid-template-columns:1fr}
  .proc-grid{grid-template-columns:1fr;gap:30px}
  .philo-in{grid-template-columns:1fr;gap:22px}
  .ring-fig.mini{max-width:84px}
  .digest{grid-template-columns:1fr 1fr;gap:20px}
}

/* ===== reduced-motion：完成形を静止表示（並行デザイン） ===== */
@media (prefers-reduced-motion: reduce){
  html.js .hero-title .ln-in{transform:none;opacity:1;transition:none}
  .gauge-fill{transform:none !important;transition:none}
  .ring .ring-arrow,.ring-node circle,.ring-node text,
  .tlink,.tlink .arr,.philo-link,.digest-link,.biz-row,.biz-row .arr{
    transition:none;
  }
}

/* Stage 2（v0.8.0）：S1 ヒーロー直下の相談ボタン／S4 VIZLIVE節の見せ方強化 */
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.btn-hero{display:inline-block;padding:14px 26px;border-radius:10px;background:var(--green);color:#fff;font-weight:700;font-size:15.5px;line-height:1.4;text-decoration:none;transition:background .2s var(--ease)}
.btn-hero:hover{background:var(--green-hover)}
.btn-hero.gold{background:#FBF6E3;color:#7A5E14;border:1.5px solid var(--gold)}
.btn-hero.gold:hover{background:#F5EBCB}
.viz-more{margin-top:16px}
.viz-more a{color:var(--gold-pale);font-weight:700;text-decoration:none}
.viz-more a .arr{display:inline-block;transition:transform .25s var(--ease)}
.viz-more a:hover .arr{transform:translateX(4px)}
.viz-shot{background:#141414;border:1px solid #3A3A3A;border-radius:12px;padding:16px}
.viz-shot-head{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.viz-shot-name{color:#E8E3D5;font-size:13px;letter-spacing:.06em}
.viz-shot figcaption{margin-top:12px}
@media (max-width:640px){
  .hero-cta .btn-hero{flex:1 1 100%;text-align:center}
}

/* v0.9.0：B1 製品画面パネルをVIZLIVE節へ移動（暗背景でも輪郭が分かるよう枠を追加） */
.vizlive .mat-panel{border:1px solid #3A3A3A;margin-top:38px}
