/* ============================================================
   Central AX — 助成金ツール（/tools/ 配下）共通スタイル
   動き: 1つの枠が形を変えながら状態を切り替える（PromptMotion #2 の考え方をWeb向けに置き換え）
   ・ばねは linear() で近似（行き過ぎは最大2%）。光・グラデーション・跳ねる動きは使わない
   ============================================================ */

:root{
  /* ばね（速い・行き過ぎ2%）／ばね（遅め・行き過ぎ0.5%） */
  --spring:cubic-bezier(.22,1,.36,1);
  --spring-soft:cubic-bezier(.22,1,.36,1);
  --ok:#1559c2; --warn:#9a5b00; --ng:#b3261e;
}
@supports (transition-timing-function:linear(0,1)){
  :root{
    --spring:linear(0,0.0241,0.0852,0.1692,0.2653,0.3655,0.4639,0.5566,0.6412,0.7163,0.7814,0.8365,0.8823,0.9194,0.9489,0.9717,0.9888,1.0012,1.0098,1.0153,1.0184,1.0198,1.0198,1.0189,1.0175,1.0156,1.0137,1.0117,1.0098,1.008,1.0064,1.005,1.0038,1.0028,1.002,1.0013,1);
    --spring-soft:linear(0,0.0193,0.0684,0.1365,0.2156,0.2993,0.3833,0.4644,0.5406,0.6105,0.6735,0.7294,0.7783,0.8205,0.8566,0.887,0.9123,0.9332,0.9503,0.964,0.9749,0.9834,0.99,0.9949,0.9985,1.0011,1.0029,1.0041,1.0047,1.005,1.005,1.0048,1.0045,1.0042,1.0037,1.0033,1);
  }
}

/* ---------- 導入 ---------- */
.tool-page .breadcrumb{margin-top:0}
.tool-intro h1,.sc-q-text,.sc-v-title,.tool-doc h2{word-break:auto-phrase}
.tool-intro{max-width:880px;margin-top:28px}
.tool-intro .label{margin-bottom:14px;color:var(--blue)}
.tool-intro h1{font-family:var(--serif);font-size:clamp(26px,3.8vw,40px);font-weight:600;line-height:1.5;letter-spacing:.03em;color:var(--ink)}
.tool-intro .tool-lead{margin-top:18px;font-size:15px;line-height:2.1}
.tool-meta{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:18px;font-size:12.5px;color:var(--muted);letter-spacing:.04em}
.tool-meta b{color:var(--ink);font-weight:600;margin-right:4px}

/* ---------- 判定ツール本体 ---------- */
.sc{max-width:880px;margin-top:40px}
.sc-progress{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.sc-bar{flex:1;height:4px;background:var(--line);border-radius:99px;overflow:hidden}
.sc-bar span{display:block;height:100%;width:0;background:var(--blue);border-radius:99px;transition:width .6s var(--spring-soft)}
.sc-count{font-size:12.5px;font-weight:600;color:var(--ink);letter-spacing:.06em;min-width:44px;text-align:right;font-variant-numeric:tabular-nums}

/* 形を変える1つの枠 */
.sc-stage{position:relative;margin:0 auto;width:100%;max-width:880px;background:#fff;border:1px solid var(--line);
  overflow:hidden;border-radius:0;
  transition:height .6s var(--spring-soft),max-width .6s var(--spring),border-radius .6s var(--spring),background-color .3s}
.sc-inner{padding:clamp(24px,4vw,40px);transition:opacity .2s ease,filter .2s ease,transform .45s var(--spring)}
.sc-stage.is-out .sc-inner{opacity:0;filter:blur(4px);transform:translateY(-10px)}
.sc-stage.is-in .sc-inner{opacity:0;filter:blur(4px);transform:translateY(12px);transition:none}

.sc-q-num{font-size:12px;font-weight:600;color:var(--blue);letter-spacing:.14em}
.sc-q-text{margin-top:10px;font-family:var(--serif);font-size:clamp(19px,2.4vw,23px);font-weight:600;line-height:1.7;color:var(--ink);letter-spacing:.02em;outline:none}
.sc-q-help{margin-top:12px;font-size:13.5px;line-height:2;color:var(--text)}

/* 選択肢（選んだ所へ囲み枠が伸び縮みしながら移動する） */
.sc-opts{position:relative;display:grid;gap:10px;margin-top:24px}
.sc-ind{position:absolute;left:0;right:0;top:0;height:0;border:2px solid var(--blue);background:rgba(21,89,194,.05);
  pointer-events:none;opacity:0;transform:scale(.97)}
.sc-ind.is-on{opacity:1;transform:none;transition:opacity .2s ease,transform .5s var(--spring)}
.sc-opt{position:relative;z-index:1;display:flex;align-items:center;gap:14px;width:100%;min-height:58px;padding:14px 20px;
  background:transparent;border:1px solid var(--line);font-family:var(--sans);font-size:15px;font-weight:500;color:var(--ink);
  text-align:left;line-height:1.7;cursor:pointer;transition:border-color .2s,color .2s}
.sc-opt:hover{border-color:var(--blue)}
.sc-opt:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.sc-opt[aria-checked="true"]{border-color:transparent;color:var(--blue-d)}
.sc-key{flex:none;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--line);
  font-size:12px;font-weight:600;color:var(--muted);transition:border-color .2s,color .2s,background-color .2s}
.sc-opt[aria-checked="true"] .sc-key{border-color:var(--blue);background:var(--blue);color:#fff}

.sc-nav{display:flex;justify-content:space-between;align-items:center;margin-top:14px;min-height:36px}
.sc-back{background:none;border:0;padding:6px 0;font-family:var(--sans);font-size:13px;color:var(--muted);cursor:pointer;transition:color .2s}
.sc-back:hover{color:var(--ink)}
.sc-back[hidden],.sc-progress[hidden],.sc-nav[hidden]{display:none}
.sc-hint{font-size:12px;color:var(--muted)}

/* 判定中：枠が丸く縮み → 円を描く → チェックに変わる */
.sc-stage.is-pill{max-width:260px;border-radius:999px}
.sc-stage.is-judging .sc-inner{padding:0}
.sc-judge{display:flex;align-items:center;justify-content:center;gap:14px;padding:18px 26px}
.sc-judge svg{width:40px;height:40px;flex:none}
.sc-judge .ring{fill:none;stroke:var(--line);stroke-width:3}
.sc-judge .arc{fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round;stroke-dasharray:126;stroke-dashoffset:126;
  transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .9s cubic-bezier(.4,0,.2,1)}
.sc-judge .tick{fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;
  transition:stroke-dashoffset .35s var(--spring)}
.sc-judge.is-run .arc{stroke-dashoffset:0}
.sc-judge.is-done .tick{stroke-dashoffset:0}
.sc-judge p{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:.06em;white-space:nowrap}

/* ---------- 結果 ---------- */
.sc-verdict{display:flex;gap:18px;align-items:flex-start}
.sc-icon{flex:none;width:52px;height:52px}
.sc-icon circle{fill:none;stroke-width:2.5}
.sc-icon path{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.lv-ok .sc-icon *{stroke:var(--ok)} .lv-warn .sc-icon *{stroke:var(--warn)} .lv-ng .sc-icon *{stroke:var(--ng)}
.sc-v-label{font-size:12px;font-weight:600;letter-spacing:.14em}
.lv-ok .sc-v-label{color:var(--ok)} .lv-warn .sc-v-label{color:var(--warn)} .lv-ng .sc-v-label{color:var(--ng)}
.sc-v-title{margin-top:4px;font-family:var(--serif);font-size:clamp(21px,2.8vw,27px);font-weight:600;line-height:1.55;color:var(--ink);outline:none}
.sc-v-desc{margin-top:10px;font-size:14.5px;line-height:2}

.sc-sec{margin-top:30px;padding-top:24px;border-top:1px solid var(--line)}
.sc-sec h3{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:.05em}
.sc-issues{list-style:none;margin-top:14px;display:grid;gap:12px}
.sc-issue{padding:18px 20px;background:var(--gray)}
.sc-issue-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.sc-tag{font-size:11.5px;font-weight:700;letter-spacing:.08em}
.sc-tag.ng{color:var(--ng)} .sc-tag.warn{color:var(--warn)}
.sc-issue-title{font-size:15px;font-weight:700;color:var(--ink)}
.sc-issue p{margin-top:8px;font-size:13.5px;line-height:2}
.sc-issue a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;font-size:12.5px}

.sc-pass{margin-top:14px;font-size:13.5px}
.sc-pass summary{cursor:pointer;color:var(--ink);font-weight:600}
.sc-pass ul{margin:10px 0 0 1.2em;line-height:2.1}

.sc-steps{margin:14px 0 0 1.3em;font-size:14px;line-height:2.1}
.sc-steps li + li{margin-top:4px}

.sc-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.sc-cta .btn{min-width:0;flex:1 1 240px}
.sc-cta-note{margin-top:12px;font-size:12.5px;color:var(--muted);line-height:1.9}
.sc-retry{display:inline-block;margin-top:18px;background:none;border:0;padding:4px 0;font-family:var(--sans);font-size:13px;
  color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.sc-retry:hover{color:var(--ink)}

.sc-note{margin-top:26px;font-size:12px;line-height:2;color:var(--muted)}
.sc-note ul{margin-left:1.2em}

/* ---------- 解説（静的テキスト） ---------- */
.tool-doc{max-width:880px;margin-top:80px;padding-top:44px;border-top:1px solid var(--line)}
.tool-doc h2{font-family:var(--serif);font-size:clamp(20px,2.5vw,25px);font-weight:600;color:var(--ink);line-height:1.6}
.tool-doc > p{margin-top:14px;font-size:14.5px;line-height:2.1}
.tool-conds{margin-top:22px;counter-reset:c}
.tool-conds > div{padding:18px 0;border-bottom:1px solid var(--line)}
.tool-conds dt{font-size:15px;font-weight:700;color:var(--ink)}
.tool-conds dt::before{counter-increment:c;content:counter(c) ". ";color:var(--blue)}
.tool-conds dd{margin-top:6px;font-size:14px;line-height:2}
.tool-faq{margin-top:22px}
.tool-faq details{border-bottom:1px solid var(--line);padding:16px 0}
.tool-faq summary{cursor:pointer;font-size:15px;font-weight:700;color:var(--ink);line-height:1.8}
.tool-faq details p{margin-top:10px;font-size:14px;line-height:2.1}
.tool-src{margin-top:26px;font-size:12.5px;line-height:2;color:var(--muted)}
.tool-src a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}

@media (max-width:700px){
  .sc-opt{font-size:14.5px;padding:13px 16px}
  .sc-verdict{flex-direction:column;gap:12px}
  .sc-icon{width:44px;height:44px}
  .sc-hint{display:none}
}

@media (prefers-reduced-motion:reduce){
  .sc-stage,.sc-inner,.sc-ind,.sc-bar span,.sc-judge .arc,.sc-judge .tick{transition:none !important}
}

/* ============================================================
   申請スケジュール逆算（/tools/subsidy-schedule/）
   ============================================================ */
.ss-form{margin-top:40px;max-width:880px;background:var(--gray);padding:clamp(22px,3.4vw,34px)}
.ss-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 26px}
.ss-field{display:flex;flex-direction:column}
.ss-field label{font-size:12.5px;font-weight:700;color:var(--ink);letter-spacing:.05em;margin-bottom:9px}
.ss-field .hint{font-weight:400;color:var(--muted);letter-spacing:0;margin-left:6px}
.ss-field input{height:54px;padding:0 15px;background:#fff;border:1px solid var(--line);border-radius:0;font-family:var(--sans);
  font-size:16px;color:var(--ink);transition:border-color .2s}
.ss-field input:hover{border-color:var(--blue)}
.ss-field input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ss-submit{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:24px}
.ss-err{font-size:13px;color:var(--ng);font-weight:600}
.ss-stage{margin-top:28px}

.ss-redo{margin-top:20px;min-width:0;height:auto;min-height:52px;padding:10px 24px;font-size:14px}

/* タイムライン：線が上から引かれ、印が順にばねで出る */
.ss-tl{position:relative;list-style:none;margin-top:32px;padding-left:34px}
.ss-tl::before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:2px;background:var(--line);
  transform:scaleY(0);transform-origin:top}
.ss-item{position:relative;padding-bottom:26px;opacity:0;transform:translateY(8px)}
.ss-item:last-child{padding-bottom:0}
.ss-dot{position:absolute;left:-34px;top:7px;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--line);transform:scale(0)}
.ss-item.is-em .ss-dot{background:var(--blue);border-color:var(--blue)}
.ss-item.is-today .ss-dot{border-color:var(--ink)}
.ss-date{font-size:15px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.ss-rel{display:inline-block;white-space:nowrap;margin-left:10px;font-size:12px;font-weight:600;color:var(--muted)}
.ss-item.is-em .ss-date,.ss-item.is-em .ss-rel{color:var(--blue-d)}
.ss-what{margin-top:2px;font-size:14px;font-weight:600;color:var(--ink)}
.ss-item.is-em .ss-what{font-size:15.5px}
.ss-desc{margin-top:4px;font-size:13px;line-height:1.95}
.ss-item.is-past .ss-date,.ss-item.is-past .ss-what,.ss-item.is-past .ss-rel{color:var(--muted)}
.ss-item.is-past.is-em .ss-dot{background:#fff;border-color:var(--ng)}
.ss-item.is-past.is-em .ss-rel{color:var(--ng)}

.is-drawn .ss-tl::before{transform:scaleY(1);transition:transform .9s var(--spring-soft)}
.is-drawn .ss-item{opacity:1;transform:none;transition:opacity .3s ease calc(var(--i) * 90ms + 120ms),transform .55s var(--spring) calc(var(--i) * 90ms + 120ms)}
.is-drawn .ss-dot{transform:scale(1);transition:transform .5s var(--spring) calc(var(--i) * 90ms + 160ms)}

.ss-warn{margin-top:26px;padding:16px 18px;background:var(--gray);font-size:13.5px;line-height:2;color:var(--ink)}
.ss-ics{text-align:left;background:none;border:0;padding:0;font-family:var(--sans);font-size:12.5px;color:var(--blue);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.sc-cta-note a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}

.tool-table{width:100%;margin-top:18px;border-collapse:collapse;font-size:14px}
.tool-table th,.tool-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;line-height:1.8}
.tool-table th{font-size:12.5px;color:var(--muted);font-weight:600}
.tool-table td:first-child{font-weight:700;color:var(--ink);white-space:nowrap}

@media (max-width:700px){
  .ss-fields{grid-template-columns:1fr}
  .tool-table{font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  .ss-tl::before,.ss-item,.ss-dot{transition:none !important;transform:none !important;opacity:1 !important}
}
