.ccs { --navy:#1f3358; --navy-wash:#e3e8f2; --cream:#faf6ec; --sheet:#fffdf8; --ink:#222a36; --soft:#4d5868; --rule:#d8d0bd;
  --low:#a24a14; --low-wash:#f8e6d6; --ok:#25683f; --ok-wash:#dff0e4; --high:#2f4b9a; --high-wash:#e3e8f8;
  font-family:"Hiragino Sans","Yu Gothic","Meiryo",sans-serif; font-size:16px; line-height:1.75; color:var(--ink); background:var(--cream); padding:16px; box-sizing:border-box; }
.ccs *, .ccs *::before, .ccs *::after { box-sizing:inherit; }
.ccs .inner { max-width:1000px; margin:0 auto; display:grid; gap:20px; }
.ccs .inner h2 { font-size:1.25rem; line-height:1.5; margin:0; padding:0; border:0; background:none; color:var(--navy); font-weight:700; }
.ccs .inner p { margin:0; padding:0; }
.ccs .grid { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr); gap:20px; align-items:start; }
@media (max-width:820px){ .ccs .grid { grid-template-columns:minmax(0,1fr); } }
.ccs .panel { background:var(--sheet); border:1px solid var(--rule); border-radius:8px; padding:18px; display:grid; gap:18px; min-width:0; }
.ccs fieldset { border:0; margin:0; padding:0; display:grid; gap:14px; min-width:0; }
.ccs legend { font-weight:700; color:var(--navy); padding:0; margin-bottom:6px; }
.ccs .field { display:grid; gap:4px; min-width:0; }
.ccs label, .ccs .lbl { font-weight:700; }
.ccs .hint { color:var(--soft); }
.ccs .unit { display:flex; align-items:center; gap:8px; }
.ccs .unit span { white-space:nowrap; }
.ccs input[type=number], .ccs select { width:100%; min-width:0; font:inherit; font-size:18px; min-height:48px; padding:8px 10px; color:var(--ink); background:#fff; border:2px solid #9aa4b8; border-radius:6px; }
.ccs input:focus-visible, .ccs select:focus-visible, .ccs button:focus-visible, .ccs summary:focus-visible { outline:3px solid var(--navy); outline-offset:2px; }
.ccs .seg { display:grid; gap:8px; }
.ccs .seg label { display:flex; align-items:center; gap:10px; min-height:48px; padding:6px 12px; border:2px solid #9aa4b8; border-radius:6px; background:#fff; cursor:pointer; font-weight:400; }
.ccs .seg input { width:22px; height:22px; margin:0; accent-color:var(--navy); }
.ccs .seg label:has(input:checked) { border-color:var(--navy); background:var(--navy-wash); font-weight:700; }
.ccs details { border-top:1px dashed var(--rule); padding-top:14px; }
.ccs summary { cursor:pointer; font-weight:700; min-height:44px; }
.ccs details fieldset { margin-top:10px; }
.ccs .sample { background:var(--navy-wash); border-radius:6px; padding:10px 12px; }
.ccs button.reset { justify-self:start; font:inherit; min-height:48px; padding:6px 18px; background:#fff; color:var(--navy); border:2px solid var(--navy); border-radius:6px; cursor:pointer; font-weight:700; }
.ccs .verdict { display:inline-block; font-weight:700; padding:6px 14px; border-radius:999px; justify-self:start; background:var(--navy-wash); color:var(--soft); }
.ccs .verdict.low { background:var(--low-wash); color:var(--low); }
.ccs .verdict.ok { background:var(--ok-wash); color:var(--ok); }
.ccs .verdict.high { background:var(--high-wash); color:var(--high); }
.ccs .big { font-size:clamp(2rem,9vw,2.75rem); font-weight:700; line-height:1.15; color:var(--navy); font-variant-numeric:tabular-nums; }
.ccs .big small { font-size:1rem; font-weight:400; margin-left:4px; }
.ccs .sub { color:var(--soft); font-variant-numeric:tabular-nums; }
.ccs .chart svg { display:block; width:100%; height:auto; }
.ccs dl.facts { margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; border-top:1px solid var(--rule); }
.ccs .facts div { padding:10px 0; border-bottom:1px solid var(--rule); min-width:0; }
.ccs .facts dt { color:var(--soft); }
.ccs .facts dd { margin:0; font-weight:700; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
@media (max-width:520px){ .ccs dl.facts { grid-template-columns:minmax(0,1fr); } }
.ccs .plan { display:grid; gap:8px; padding:14px; border-radius:6px; background:var(--cream); border:1px solid var(--rule); }
.ccs .check { font-weight:700; }
.ccs .check.pass { color:var(--ok); }
.ccs .check.fail { color:var(--low); }
.ccs .tablewrap { overflow-x:auto; }
.ccs table { border-collapse:collapse; width:100%; font-variant-numeric:tabular-nums; }
.ccs th, .ccs td { text-align:left; padding:8px; border-bottom:1px solid var(--rule); }
.ccs th { color:var(--soft); }
.ccs tr.on td { background:var(--navy-wash); font-weight:700; }
.ccs .disclaimer { color:var(--soft); border-top:1px solid var(--rule); padding-top:14px; }
/* テーマ（Cocoon 等）の要素スタイルを打ち消す */
.ccs .inner fieldset, .ccs .inner legend, .ccs .inner dl, .ccs .inner dd, .ccs .inner dt { background:none; box-shadow:none; }
.ccs .inner legend { width:auto; }
.ccs .inner input[type=number], .ccs .inner select { box-shadow:none; height:auto; margin:0; max-width:100%; }
.ccs .inner input[type=radio] { margin:0; }
.ccs .inner table { margin:0; border:0; }
.ccs .inner th, .ccs .inner td { border-top:0; border-left:0; border-right:0; background:none; }
.ccs .inner tr.on td { background:var(--navy-wash); }
.ccs .inner th { font-weight:700; }
.ccs .inner label { margin:0; }
.ccs .inner button.reset { box-shadow:none; text-transform:none; }
.ccs [hidden] { display:none !important; }
/* 費用の目安シミュレーター固有 */
.ccs .seg.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ccs .inner h3 { font-size:1rem; line-height:1.5; margin:0; padding:0; border:0; background:none; color:var(--navy); font-weight:700; }
.ccs #ccs-ref { display:grid; gap:12px; }
.ccs ul.hint { margin:0; padding-left:1.4em; }
.ccs a { color:var(--navy); text-decoration:underline; overflow-wrap:anywhere; }
.ccs .msg { color:var(--soft); font-weight:700; }
.ccs .block { display:grid; gap:12px; padding-bottom:18px; margin-bottom:18px; border-bottom:1px solid var(--rule); }
.ccs .block:last-child { border-bottom:0; margin-bottom:0; }
.ccs .block h3 { font-size:1.1rem; }
.ccs .big small { font-size:1rem; }
.ccs .tablewrap table { min-width:0; }
.ccs th, .ccs td { padding:8px 6px; }
.ccs .inner tr.on td { background:var(--navy-wash); }
.ccs .note { padding:12px; border-radius:6px; background:var(--cream); border:1px solid var(--rule); font-weight:700; }
.ccs .inner .big + .sub, .ccs .inner .sub { overflow-wrap:anywhere; }
@media (max-width:520px){ .ccs .panel { padding:14px; } .ccs th, .ccs td { padding:8px 3px; } }

/* 印刷・PDF保存ボタン */
.ccs .mcp-btnwrap { display:grid; gap:6px; justify-items:start; }
.ccs .mcp-btn { font:inherit; min-height:48px; padding:6px 18px; background:#fff; color:var(--navy); border:2px solid var(--navy); border-radius:6px; cursor:pointer; font-weight:700; }
.ccs .mcp-btn:focus-visible { outline:3px solid var(--navy); outline-offset:2px; }
.ccs .mcp-note { font-size:.8125rem; color:var(--soft); }
.ccs .mcp-head { display:none; }

/* 印刷（A4縦・白黒）。html.mc-print-cost が付いたときだけ、このツールだけを印刷する */
@media print {
  @page { size:A4 portrait; margin:15mm; }
  html.mc-print-cost, html.mc-print-cost body { background:#fff !important; height:auto !important; overflow:visible !important; }
  html.mc-print-cost body * { visibility:hidden !important; }
  html.mc-print-cost header:not(:has(.ccs)), html.mc-print-cost footer:not(:has(.ccs)), html.mc-print-cost nav, html.mc-print-cost aside:not(:has(.ccs)),
  html.mc-print-cost [role=banner], html.mc-print-cost [role=navigation], html.mc-print-cost [role=contentinfo], html.mc-print-cost #wpadminbar,
  html.mc-print-cost .site-header, html.mc-print-cost .site-footer, html.mc-print-cost .sidebar, html.mc-print-cost .widget-area,
  html.mc-print-cost .shz, .sbs { display:none !important; }
  html.mc-print-cost .ccs, html.mc-print-cost .ccs * { visibility:visible !important; }
  html.mc-print-cost .ccs { position:absolute; left:0; top:0; width:100%; margin:0; padding:0; background:#fff !important; color:#000; font-size:11pt; line-height:1.6; }
  html.mc-print-cost .ccs *:not(svg *) { background:transparent !important; box-shadow:none !important; color:#000 !important; border-radius:0 !important; }
  html.mc-print-cost .ccs .inner { display:block; max-width:none; }
  html.mc-print-cost .ccs .inner > * { margin-bottom:12pt; }
  html.mc-print-cost .ccs .grid { display:block; }
  html.mc-print-cost .ccs .panel { border:0 !important; padding:0 !important; }
  html.mc-print-cost .ccs #ccs-form, #ccs-sample, .reset, html.mc-print-cost .ccs .mcp-btnwrap, html.mc-print-cost .ccs details { display:none !important; }
  html.mc-print-cost .ccs .mcp-head { display:block; border-bottom:2px solid #000; padding-bottom:8pt; margin-bottom:14pt; }
  html.mc-print-cost .ccs .mcp-title { font-size:max(1.6em, 18pt) !important; font-weight:700; margin:0 0 4pt; }
  html.mc-print-cost .ccs .mcp-meta { margin:0; }
  html.mc-print-cost .ccs .mcp-cond { width:100%; border-collapse:collapse; margin-top:8pt; }
  html.mc-print-cost .ccs .mcp-cond caption { text-align:left; font-weight:700; }
  html.mc-print-cost .ccs table, html.mc-print-cost .ccs tr, html.mc-print-cost .ccs .tablewrap { break-inside:avoid; }
  html.mc-print-cost .ccs th, html.mc-print-cost .ccs td { border:1px solid #000 !important; padding:4pt 6pt; text-align:left; }
  html.mc-print-cost .ccs tr.on td { font-weight:700; }
  html.mc-print-cost .ccs .block, html.mc-print-cost .ccs .card, html.mc-print-cost .ccs .plan, html.mc-print-cost .ccs .facts > div,
  html.mc-print-cost .ccs .chart, html.mc-print-cost .ccs .disclaimer, html.mc-print-cost .ccs .testband { break-inside:avoid; }
  html.mc-print-cost .ccs .block, html.mc-print-cost .ccs .card, html.mc-print-cost .ccs .plan, html.mc-print-cost .ccs .testband { border:1px solid #000 !important; padding:8pt !important; }
  html.mc-print-cost .ccs .verdict, html.mc-print-cost .ccs .st, html.mc-print-cost .ccs .tag { border:1px solid #000; padding:0 6pt; }
  html.mc-print-cost .ccs .cards { display:block; }
  html.mc-print-cost .ccs .card { margin-bottom:10pt; }
  html.mc-print-cost .ccs svg rect { fill:none !important; stroke:#000 !important; }
  html.mc-print-cost .ccs svg line { stroke:#000 !important; }
  html.mc-print-cost .ccs svg path { fill:#000 !important; }
  html.mc-print-cost .ccs svg text { fill:#000 !important; }
  html.mc-print-cost .ccs a { text-decoration:none; }
}

/* 所在地の補助金カード */
.ccs .areacard { padding:12px; border-radius:6px; background:var(--cream); border:1px solid var(--rule); }
.ccs .areacard h3 { margin:0 0 6px; }
.ccs .areacard ul { margin:6px 0; padding-left:1.4em; }

/* リンク共有・次のツール（1.2.0） */
.ccs .mcp-btnwrap .mcp-btn { margin:4px 8px 4px 0; max-width:100%; }
.ccs .mcp-btn-sub { border-width:1px; font-weight:600; }
.ccs .mcp-sharebox { margin:8px 0; }
.ccs .mcp-sharebox label { display:block; font-size:.9em; }
.ccs .mcp-sharebox input { display:block; width:100%; box-sizing:border-box; margin-top:4px; padding:8px; font:inherit; font-size:.9em; }
.ccs .mcp-next { margin:12px 0 0; font-weight:700; }
.ccs .mcp-next a { color:var(--navy); }

/* 補助金カード（1.4.0） */
.ccs .areacard .mcs-sum { margin:0 0 8px; color:var(--soft); font-size:.95em; }
.ccs .areacard .mcs-list { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.ccs .areacard .mcs-item { background:#fff; border:1px solid var(--rule); border-radius:6px; padding:10px 12px; }
.ccs .areacard .mcs-item.closed { opacity:.75; }
.ccs .areacard .mcs-list.compact { gap:4px; margin-top:8px; }
.ccs .areacard .mcs-list.compact .mcs-item { padding:6px 10px; }
.ccs .areacard .mcs-item p { margin:2px 0; overflow-wrap:anywhere; }
.ccs .areacard .mcs-name { font-weight:700; display:flex; flex-wrap:wrap; gap:4px 10px; align-items:baseline; }
.ccs .areacard .mcs-name a { color:var(--navy); }
.ccs .areacard .mcs-status { font-size:.85em; font-weight:600; color:var(--soft); background:var(--navy-wash); border-radius:999px; padding:0 8px; }
.ccs .areacard .mcs-status.open { color:var(--ok); background:var(--ok-wash); }
.ccs .areacard .mcs-who, .ccs .areacard .mcs-works, .ccs .areacard .mcs-req { font-size:.9em; color:var(--soft); }
.ccs .areacard .mcs-amount { font-weight:600; font-variant-numeric:tabular-nums; }
.ccs .areacard .mcs-url { display:none; font-size:.8em; color:var(--soft); }
.ccs .areacard .mcs-rest summary { cursor:pointer; font-weight:700; color:var(--navy); min-height:44px; display:flex; align-items:center; }
.ccs .areacard .mcs-note { font-size:.85em; color:var(--soft); margin:8px 0 4px; }
@media print {
  html.mc-print-cost .ccs .areacard .mcs-url, html.mc-print-fund .ccs .areacard .mcs-url { display:block; }
  html.mc-print-cost .ccs .areacard .mcs-more, html.mc-print-fund .ccs .areacard .mcs-more,
  html.mc-print-cost .ccs .areacard .mcs-rest, html.mc-print-fund .ccs .areacard .mcs-rest { display:none !important; }
  html.mc-print-cost .ccs .areacard .mcs-item, html.mc-print-fund .ccs .areacard .mcs-item { border:1px solid #000 !important; break-inside:avoid; }
}

/* 1.6.0 見た目の更新：−／＋とスライダー、結果の紺色の欄、白い面と角丸 */
.ccs .panel { background:#fff; border-color:#e2dccb; border-radius:12px; box-shadow:0 1px 3px rgba(31,51,88,.06); padding:20px; }
.ccs input[type=number], .ccs select { border-width:1px; border-color:#b9c2d3; border-radius:8px; }
.ccs .unit input[type=number] { max-width:150px; text-align:right; font-size:20px; }
.ccs .field { gap:6px; }
.ccs .mcr { display:flex; align-items:center; gap:10px; min-width:0; margin-top:2px; }
.ccs .mcr-btn { flex:0 0 44px; height:44px; padding:0; border:0; border-radius:8px; background:var(--navy-wash); color:var(--navy); font:inherit; font-size:22px; font-weight:700; line-height:1; cursor:pointer; }
.ccs .mcr-btn:hover { background:#d3dbe9; }
.ccs .mcr-track { position:relative; flex:1 1 auto; min-width:0; padding-bottom:20px; }
.ccs .mcr input[type=range] { -webkit-appearance:none; appearance:none; display:block; width:100%; height:28px; margin:0; background:transparent; cursor:pointer; }
.ccs .mcr input[type=range]::-webkit-slider-runnable-track { height:6px; border-radius:3px; background:linear-gradient(to right, var(--navy) 0, var(--navy) var(--mcr-p,0%), #d6dce7 var(--mcr-p,0%), #d6dce7 100%); }
.ccs .mcr input[type=range]::-moz-range-track { height:6px; border-radius:3px; background:#d6dce7; }
.ccs .mcr input[type=range]::-moz-range-progress { height:6px; border-radius:3px; background:var(--navy); }
.ccs .mcr input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:24px; height:24px; margin-top:-9px; border-radius:50%; background:#fff; border:2px solid var(--navy); box-shadow:0 1px 3px rgba(0,0,0,.2); }
.ccs .mcr input[type=range]::-moz-range-thumb { width:22px; height:22px; border-radius:50%; background:#fff; border:2px solid var(--navy); }
.ccs .mcr.is-empty input[type=range] { opacity:.45; }
.ccs .mcr-ticks { position:absolute; left:12px; right:12px; bottom:0; height:18px; }
.ccs .mcr-ticks.is-tight span:nth-child(even) { visibility:hidden; }
.ccs .mcr-ticks span { position:absolute; transform:translateX(-50%); font-size:12px; line-height:18px; color:var(--soft); white-space:nowrap; font-variant-numeric:tabular-nums; }
.ccs #ccs-blocks .block > h3 + div { background:var(--navy); color:#fff; border-radius:12px; padding:16px 18px; display:grid; gap:4px; }
.ccs #ccs-blocks .block > h3 + div .sub { color:#d5ddeb; }
.ccs #ccs-blocks .block > h3 + div .big { color:#fff; }
@media print {
  .ccs .mcr { display:none !important; }
  .ccs #ccs-blocks .block > h3 + div { background:#fff !important; color:#000 !important; border:2px solid #000; }
  .ccs #ccs-blocks .block > h3 + div .sub, .ccs #ccs-blocks .block > h3 + div .big { color:#000 !important; }
}

/* 1.7: デザイン案（タブ型・横並びの入力行）に合わせたレイアウト。テーマの本文幅（760px）を超えて、タブと同じ1160pxまで広げる */
.ccs { max-width:1160px !important; width:100%; margin-left:auto !important; margin-right:auto !important; background:#f4f6f9; border-radius:16px; padding:20px; }
.ccs .inner { max-width:none; }
.ccs .grid { grid-template-columns:minmax(0,2.2fr) minmax(340px,1fr); gap:24px; }
.ccs .panel { background:#fff; border:1px solid #dde3ec; border-radius:12px; box-shadow:none; padding:20px 24px; }
.ccs .sample { background:#eef1f6; }
.ccs form.panel { container-type:inline-size; }
.ccs form.panel legend { font-size:.95rem; color:#4a5a78; letter-spacing:.04em; margin:6px 0 2px; }
@container (min-width: 540px) {
  .ccs form.panel fieldset { gap:0; }
  .ccs .field { display:grid; grid-template-columns:150px minmax(0,1fr); column-gap:20px; row-gap:6px; align-items:center; padding:16px 0; border-bottom:1px solid #e8ecf2; }
  .ccs .field > label:first-child, .ccs .field > .lbl:first-child { grid-column:1; grid-row:1; font-size:1rem; }
  .ccs .field > :not(label):not(.lbl) { grid-column:2; }
  .ccs .field .unit input[type=number] { width:120px; }
  .ccs .seg { grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); }
}
@container (min-width: 680px) {
  .ccs .field:has(> .mcr) { grid-template-columns:150px auto minmax(0,1fr); }
  .ccs .field:has(> .mcr) > .unit { grid-column:2; grid-row:1; }
  .ccs .field:has(> .mcr) > .mcr { grid-column:3; grid-row:1; margin-top:0; }
  .ccs .field:has(> .mcr) > .hint, .ccs .field:has(> .mcr) > p { grid-column:2 / -1; }
}
@media (max-width:900px) { .ccs .grid { grid-template-columns:minmax(0,1fr); } }
@media (max-width:600px) { .ccs { padding:12px; border-radius:12px; } .ccs .panel { padding:16px; } }
@media print { .ccs { max-width:none !important; background:#fff !important; padding:0 !important; } }

.ccs.fpl .grid { grid-template-columns:minmax(0,3fr) minmax(0,2fr); }
@media (max-width:900px) { .ccs.fpl .grid { grid-template-columns:minmax(0,1fr); } }
