/* MONOSASHI 新しい見た目（v2-sub）。deploy/tools/build_v2_css.py が組む。手で直さない（直すのは試作の CSS） */
/* ---- 本番の style.css から：色・寸法とヘッダー・フッター ---- */
:root { --bg:#FFFFFF;
  --bg-2:#F3F4F9;        
  --bg-3:#E8EAF3;        
  --ink:#17181F;         
  --ink-2:#3B3F4D;
  --ink-3:#6A6F80;
  --ink-4:#9CA1B3;
  --line:#E7E9F1;
  --line-2:#D6DAE8;

  --brand:#3B5BFF;       
  --brand-2:#2742D6;
  --brand-soft:#EBEFFF;

  
  --c-est:#FF5A5F;       
  --c-claude:#8B5CF6;    
  --c-ai:#06B6D4;        
  --c-dev:#16A34A;       
  --c-dx:#F59E0B;        
  --c-auto:#EC4899;      

  --ok:#16A34A;
  --indigo:#15172E;      
  --indigo-2:#1E2147;

  --gothic:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic Medium",Meiryo,sans-serif;
  --mono:"Inter","Helvetica Neue",Arial,sans-serif;

  --max:1200px;
  --r:18px;       
  --r-sm:12px;    
  --r-pill:999px; 
  --hd-h:74px;
  --sh:0 6px 24px -10px rgba(23,24,31,.14);
  --sh-2:0 18px 50px -22px rgba(23,24,31,.22); }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.head { position:sticky;top:0;z-index:50;min-height:var(--hd-h);background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line); }
.head__row { height:var(--hd-h);display:flex;align-items:center;gap:22px;max-width:var(--max);margin:0 auto;padding:0 24px; }
.head__brand { display:flex;align-items:center;gap:9px;flex-shrink:0; }
.head__logo { height:36px;width:auto;display:block; }
@media(max-width:560px) {
  .head__logo { height:30px; }
}
.head__brand-name { font-weight:900;font-size:23px;letter-spacing:-.01em;color:var(--ink); }
.head__nav { display:flex;align-items:center;gap:10px;margin-left:auto; }
.head__nav a { font-size:14.5px;font-weight:800;color:var(--ink-2);padding:10px 16px;border-radius:var(--r-pill);transition:background .15s,color .15s; }
.head__nav a:hover { background:var(--bg-2);color:var(--ink); }
.head__nav a.is-active { background:var(--ink);color:#fff; }
.head__cta { display:flex;align-items:center;gap:10px; }
.head__search { display:inline-grid;place-items:center;width:40px;height:40px;border-radius:var(--r-pill);border:0;background:var(--bg-2);color:var(--ink); }
.head__search:hover { background:var(--bg-3); }
.nav-tg { display:none;width:42px;height:42px;border:0;background:var(--bg-2);border-radius:var(--r-pill);align-items:center;justify-content:center; }
.nav-tg span, .nav-tg span::before, .nav-tg span::after { display:block;width:18px;height:2.4px;border-radius:2px;background:var(--ink);position:relative; }
.nav-tg span::before { content:"";position:absolute;top:-6px;left:0; }
.nav-tg span::after { content:"";position:absolute;top:6px;left:0; }
.foot { background:var(--indigo);color:rgba(255,255,255,.64);padding:56px 0 26px;margin-top:64px; }
.foot a { color:rgba(255,255,255,.64);transition:color .15s; }
.foot a:hover { color:#fff; }
.foot__eco { margin-bottom:46px; }
.foot__eco-hd { display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:16px; }
.foot__eco-ttl { font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.16em;color:#fff; }
.foot__eco-sub { font-size:12px;color:rgba(255,255,255,.46); }
.foot__eco-cards { display:grid;grid-template-columns:repeat(3,1fr);gap:14px; }
.foot__grid { display:flex;flex-wrap:wrap;justify-content:space-between;gap:38px 40px;margin-bottom:44px; }
.foot__brandcol { flex:0 1 340px; }
.foot__nav { display:flex;gap:clamp(44px,7vw,110px);flex-wrap:wrap; }
.foot__nav > div { min-width:118px; }
.foot__brand { display:flex;align-items:center;gap:9px;margin-bottom:15px; }
.foot__logo { height:30px;width:auto;display:block; }
.foot__brand .head__brand-name { color:#fff; }
.foot__desc { font-size:12.5px;line-height:1.9;max-width:300px; }
.foot a.foot__cta { display:inline-flex;align-items:center;gap:8px;margin-top:18px;height:44px;padding:0 22px;border-radius:var(--r-pill);background:#fff;color:var(--indigo);font-weight:800;font-size:13.5px;transition:background .16s,color .16s; }
.foot a.foot__cta:hover { background:var(--brand);color:#fff; }
.foot a.foot__cta .arr { transition:transform .2s; }
.foot a.foot__cta:hover .arr { transform:translateX(3px); }
.foot__title { font-family:var(--mono);font-size:11px;font-weight:800;color:#fff;letter-spacing:.14em;margin-bottom:15px; }
.foot__list { padding:0;margin:0;list-style:none; }
.foot__list li { font-size:13px;margin-bottom:11px; }
.foot__bottom { border-top:1px solid rgba(255,255,255,.14);padding-top:20px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-family:var(--mono);font-size:11px; }
@media(max-width:1024px) {
  .foot__eco-cards { grid-template-columns:1fr 1fr; }
  .foot__brandcol { flex-basis:100%; }
}
@media(max-width:760px) {
  .foot__eco-cards { grid-template-columns:1fr; }
}
@media(max-width:1024px) {
  .head__nav { display:none;position:absolute;top:var(--hd-h);left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:14px 24px 22px;gap:4px;border-bottom:1px solid var(--line);box-shadow:var(--sh); }
  .head__nav.open { display:flex; }
  .head__nav a { padding:13px 16px;font-size:16px; }
  .head__cta { margin-left:auto; }
  .nav-tg { display:inline-flex;margin-left:0; }
}
@media(max-width:760px) {
  .foot__grid { grid-template-columns:1fr 1fr;gap:32px; }
}
@media(max-width:480px) {
  .foot__grid { grid-template-columns:1fr;gap:24px; }
}
@media(max-width:760px) {
  .foot__grid { grid-template-columns:1fr 1fr; }
}
/* ヘッダー・フッターの文字は今のサイトと同じ組み。行は本体と同じ外枠（--fx）にそろえる */
.head, .foot { font-family: var(--gothic); font-size: 15.5px; line-height: 1.8; letter-spacing: .08em; font-feature-settings: "palt"; -webkit-font-smoothing: antialiased; }
.head img, .head svg, .foot img, .foot svg { display: block; max-width: 100%; }
.head a, .foot a { text-decoration: none; }
.foot p { margin: 0; }
.foot ul { margin: 0; padding: 0; list-style: none; }
/* ---- 試作：../proto/css/base.css ---- */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; letter-spacing: inherit; color: inherit; }
[hidden] { display: none !important; }
.k { display: inline-block; }
.ttl__crumb { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.ttl__h1 { margin: 0; }
.mo { display: flex; flex-wrap: wrap; align-items: center; }
.mt { white-space: nowrap; cursor: pointer; }
.body { display: grid; grid-template-columns: var(--side) minmax(0, 1fr); align-items: start; }
.side { position: sticky; top: calc(var(--gh) + 12px); max-height: calc(100vh - var(--gh) - 24px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.side__head, .side__foot { display: none; }
.side__title { margin: 0; }
.cur__t, .fs__t { display: flex; justify-content: space-between; align-items: center; margin: 0; }
.cur__l { margin: 0; padding: 0; list-style: none; }
.cur__l li { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.cur__l li button { flex: none; cursor: pointer; }
.kw { display: flex; }
.kw input { flex: 1; min-width: 0; }
.kw button { flex: none; cursor: pointer; }
.fs__t button, .fs__more { border: 0; background: none; padding: 0; cursor: pointer; }
.opt { display: grid; grid-template-columns: 15px 1fr; gap: 8px; align-items: center; width: 100%; border: 0; background: none; text-align: left; cursor: pointer; }
.opt__b { width: 15px; height: 15px; display: grid; place-items: center; }
.main { min-width: 0; }
.hit { display: flex; align-items: baseline; flex-wrap: wrap; }
.hit__n, .hit__asof { margin: 0; }
.tabs { display: flex; align-items: flex-end; }
.tabs button { cursor: pointer; }
.evt { width: 100%; border-collapse: collapse; table-layout: fixed; }
.evt th { position: sticky; top: var(--gh); z-index: 2; text-align: left; white-space: nowrap; }
.evt td { vertical-align: top; }
.c-m { width: 60px; }
.c-d { width: 112px; }
.c-v { width: 19%; }
.c-i { width: 116px; }
.c-s { width: 96px; }
.c-f { width: 80px; }
.mlab { position: sticky; top: calc(var(--gh) + 36px); display: block; }
.nm, .vn, .pf { display: block; }
.nm__s { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.c-s { text-align: right; }
.ev { display: grid; grid-template-columns: var(--ev-d, 96px) minmax(0, 1fr) 150px; }
.ev__r { display: flex; flex-direction: column; justify-content: space-between; align-items: flex-end; gap: 10px; text-align: right; }
.ev__kv { display: grid; grid-template-columns: auto 1fr; margin: 0; }
.ev__kv dd { margin: 0; }
.ev__n, .ev__k, .ev__sz { margin: 0; }
.tp { display: grid; grid-template-columns: 190px minmax(0, 1fr); grid-template-areas: "d b" "f f"; }
.tp__d { grid-area: d; }
.tp__b { grid-area: b; min-width: 0; }
.tp__f { grid-area: f; display: flex; align-items: center; gap: 16px; }
.tp__n { margin: 0; }
.tp__w { display: flex; flex-wrap: wrap; align-items: baseline; margin: 0; }
.tp__s { margin-left: auto; }
.near { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.near:empty, .feat:empty { display: none; }
.near__b h2 { margin: 0; }
.near__l { margin: 0; padding: 0; list-style: none; columns: 3 120px; }
.near__l li { break-inside: avoid; }
.fab { display: none; }
.scrim { position: fixed; inset: 0; z-index: 45; background: rgba(21,23,46,.42); }
@media (min-width: 1024px) {
  .scrim { display: none; }
}
@media (max-width: 1023px) {
  html.is-lock { overflow: hidden; }
}
.chips { display: none; }
@media (min-width: 1024px) and (max-width: 1279px) {
  .c-i { display: none; }
  .c-v { width: 24%; }
}
@media (max-width: 1023px) {
  .mo { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .body { display: block; }
  .side { position: fixed; inset: 0; z-index: 50; max-height: none; transform: translateY(100%); transition: transform .22s ease; }
  .side.is-open { transform: none; }
  .side__head { display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; z-index: 2; height: 50px; }
  .side__close { border: 0; background: none; padding: 8px 0; font-weight: 700; }
  .side__foot { display: block; position: fixed; left: 0; right: 0; bottom: 0; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); }
  .side__apply { width: 100%; height: 48px; border: 0; font-weight: 700; }
  .evt thead { display: none; }
  .evt, .evt tbody { display: block; }
  .evt { table-layout: auto; }
  .evt tr { display: grid; grid-template-columns: 84px minmax(0, 1fr); grid-template-areas: "m m" "d n" "d v" "d i" "d s" "d f"; }
  .evt td { display: block; width: auto !important; }
  .evt td.c-m { grid-area: m; }
  .evt td.c-d { grid-area: d; }
  .evt td.c-n { grid-area: n; }
  .evt td.c-v { grid-area: v; }
  .evt td.c-i { grid-area: i; display: block; }
  .evt td.c-s { grid-area: s; text-align: left; }
  .evt td.c-f { grid-area: f; }
  .evt td.c-s.na { display: none; }
  .mlab { position: static; display: flex; align-items: baseline; gap: 8px; }
  .ev { grid-template-columns: var(--ev-d-sp, 72px) minmax(0, 1fr); }
  .ev__r { grid-column: 2; flex-direction: row; align-items: center; justify-content: space-between; text-align: left; }
  .tp { grid-template-columns: 1fr; grid-template-areas: "d" "b" "f"; }
  .tp__s { margin-left: 0; }
  .near { grid-template-columns: 1fr; }
  .near__l { columns: 2 120px; }
  .fab { display: inline-flex; align-items: center; gap: 8px; position: fixed; left: 50%; bottom: calc(14px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 40; height: 46px; padding: 0 24px; border: 0; font-weight: 700; }
}
/* ---- 試作：../proto/css/site.css ---- */
:root { --ink: #17181F; --ink-2: #3B3F4D; --ink-3: #4A4E5A; --meta: #6A6F80; --pale: #A3A8B6;
  --line: #E7E9F1; --line-2: #D6DAE8; --mist: #F3F4F9;
  --brand: #3B5BFF; --brand-2: #2742D6; --brand-soft: #EEF1FF;
  --indigo: #15172E;
  --jp: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", sans-serif;
  --num: "Inter", "Noto Sans JP", sans-serif;
  
  --gh: 74px; --pad: 64px; --side: 288px; --cg: 40px; --gut: 20px; --bw: 320px; --max: 1600px;  
  --fx: max(var(--pad), calc((100% - var(--max)) / 2)); }
body { background: var(--mist); color: var(--ink); font: 400 15px/1.8 var(--jp); letter-spacing: .04em; }
.ico { display: inline-block; flex: none; vertical-align: middle; }
.band { padding: 20px var(--fx); background: var(--indigo); }
.band__f { display: grid; grid-template-columns: var(--side) var(--cg) minmax(0, 1fr) var(--gut) var(--bw); }
.band__g { display: grid; gap: 12px; min-width: 0; }
.band__g > * { min-width: 0; width: 100%; }
.band__g--kw { grid-column: 1; }
.band__g--sel { grid-column: 3; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr) minmax(0, 1.1fr); }
.band__g--btn { grid-column: 5; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.band__f input, .band__f select { height: 54px; padding: 0 16px; border: 0; border-radius: 10px; background: #fff; color: var(--ink); font-size: 15px; }
.band__f input { padding-left: 46px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236A6F80' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 16px 50% no-repeat; }
.band__f input::placeholder { color: var(--pale); }
.band__f input:focus, .band__f select:focus { outline: 3px solid rgba(59,91,255,.55); outline-offset: 0; }
.band__f select { appearance: none; padding-right: 34px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%233B3F4D' stroke-width='1.6'/%3E%3C/svg%3E") calc(100% - 16px) 50% no-repeat; font-weight: 500; cursor: pointer; }
.band__f button { height: 54px; border: 0; border-radius: 10px; background: var(--brand); color: #fff; font-size: 16px; font-weight: 800; letter-spacing: .08em; cursor: pointer; }
.band__f button:hover { background: var(--brand-2); }
.band__f .band__cal { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 12px; border: 1.5px solid rgba(255,255,255,.5); background: transparent; color: #fff; font-size: 15px; font-weight: 700; letter-spacing: .04em; white-space: nowrap; }
.band__f .band__cal:hover { background: rgba(255,255,255,.08); border-color: #fff; }
.band__f .band__cal.is-open { border-color: #fff; background: rgba(255,255,255,.12); }
.band__f .band__cal.is-on { background: #fff; border-color: #fff; color: var(--ink); }
.band__ci { width: 20px; height: 20px; }
.calp { padding: 22px var(--fx) 26px; background: #fff; border-bottom: 1px solid var(--line); }
.calp__hd { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; margin-bottom: 14px; }
.calp__t { margin: 0; font-size: 16px; font-weight: 800; letter-spacing: .04em; }
.calp__sel { margin: 0; font-size: 14px; color: var(--ink-3); }
.calp__sel b { color: var(--ink); font-weight: 800; }
.calp__sel button { margin-left: 12px; padding: 0; border: 0; background: none; color: var(--brand-2); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.calp__nav { display: flex; gap: 6px; margin-left: auto; }
.calp__nav button { width: 34px; height: 34px; border: 1px solid var(--line-2); border-radius: 50%; background: #fff; color: var(--ink-2); font-size: 18px; line-height: 1; cursor: pointer; }
.calp__nav button:hover:not(:disabled) { border-color: var(--ink); color: var(--ink); }
.calp__nav button:disabled { opacity: .3; cursor: default; }
.calp__x { padding: 0; border: 0; background: none; color: var(--meta); font-size: 13.5px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.calp__x:hover { color: var(--ink); }
.calp__ms { display: grid; grid-template-columns: repeat(var(--cal-n, 3), minmax(0, 1fr)); gap: 0 48px; }
.cm__t { margin: 0 0 8px; font-size: 14.5px; font-weight: 800; letter-spacing: .04em; }
.cm__g { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); row-gap: 2px; text-align: center; }
.cw { padding: 2px 0 6px; font-size: 12px; font-weight: 500; color: var(--meta); }
.cw.sun { color: #C22F33; }
.cw.sat { color: var(--brand-2); }
.cd { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 40px; height: 40px; margin: 0 auto; padding: 0; border: 0; border-radius: 50%; background: none; font: 500 14px/1 var(--num); color: #C3C7D2; }
.cd.has { color: var(--ink); font-weight: 800; cursor: pointer; }
.cd.has:hover:not(.on) { background: var(--mist); }
.cd__dots { display: flex; gap: 2px; height: 4px; margin-top: 3px; }
.cd__dots i { width: 4px; height: 4px; border-radius: 50%; background: var(--brand); }
.cd.on { background: var(--brand); color: #fff; }
.cd.on .cd__dots i { background: #fff; }
.cd.today { outline: 1.5px solid var(--ink); outline-offset: -1.5px; }
.cd.past { opacity: .45; }
.hit__n[data-day]::before { content: attr(data-day); }
.ttl { padding: 30px var(--fx) 6px; }
.ttl__crumb { margin-bottom: 14px; font-size: 13px; color: var(--meta); }
.ttl__crumb li + li::before { content: "›"; margin: 0 .7em; color: var(--pale); }
.ttl__crumb a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.ttl__h1 { font-size: 36px; line-height: 1.4; font-weight: 800; letter-spacing: .02em; }
.body { column-gap: var(--cg); padding: 22px var(--fx) 96px; }
.kw { display: none; }
.side { padding: 20px 20px 6px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.cur { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.cur__t, .fs__t { margin-bottom: 10px; font-size: 14px; font-weight: 800; color: var(--ink); letter-spacing: .06em; }
.cur__l { display: flex; flex-wrap: wrap; gap: 8px; }
.cur__l li { gap: 6px; padding: 4px 5px 4px 13px; border: 1px solid var(--line-2); border-radius: 999px; font-size: 14px; font-weight: 700; }
.cur__l li button { width: 22px; height: 22px; border: 0; border-radius: 50%; background: var(--mist); color: var(--ink-3); font-size: 12px; line-height: 1; }
.cur__l li button:hover { background: var(--ink); color: #fff; }
.cur__l li.cur__none { padding: 0; border: 0; font-weight: 500; color: var(--meta); }
.cur__l li.cur__all { padding: 0; border: 0; }
.cur__l li.cur__all button { width: auto; height: auto; background: none; border-radius: 0; font-size: 13px; font-weight: 500; color: var(--brand-2); text-decoration: underline; text-underline-offset: 3px; }
.fs { padding: 20px 0 16px; border-bottom: 1px solid var(--line); }
.fs:last-child { border-bottom: 0; }
.fs__t button { font-size: 13px; font-weight: 500; color: var(--brand-2); text-decoration: underline; text-underline-offset: 3px; }
.opt { grid-template-columns: 18px 1fr; gap: 10px; padding: 5px 0; font-size: 15px; color: var(--ink-2); }
.opt__b { width: 18px; height: 18px; border: 1.5px solid #A9AEBD; border-radius: 5px; background: #fff; }
.opt--radio .opt__b { border-radius: 50%; }
.opt.is-on .opt__b { background: var(--brand); border-color: var(--brand); }
.opt.is-on .opt__b::after { content: ""; width: 9px; height: 5px; border: solid #fff; border-width: 0 0 2px 2px; transform: translateY(-1px) rotate(-45deg); }
.opt--radio.is-on .opt__b { background: #fff; }
.opt--radio.is-on .opt__b::after { width: 8px; height: 8px; border: 0; border-radius: 50%; background: var(--brand); transform: none; }
.opt__l { display: flex; align-items: center; gap: 0; }
.opt__ic { width: 20px; height: 20px; margin-right: 8px; color: var(--ic); }
.opt.is-on .opt__l { font-weight: 800; color: var(--ink); }
.opt__n { margin-left: 4px; font: 500 13px var(--num); color: var(--meta); }
.opt:hover .opt__l { color: var(--ink); }
.opt.is-zero { color: var(--pale); }
.opt.is-zero .opt__ic { opacity: .4; }
.opt--sub { padding-left: 28px; }
.fs__more { margin-top: 6px; font-size: 13px; color: var(--brand-2); text-decoration: underline; text-underline-offset: 3px; }
.hit { gap: 6px 18px; margin-bottom: 26px; }
.hit__n { font-size: 15px; font-weight: 700; color: var(--ink-3); }
.hit__n::before { content: "開催予定"; margin-right: 6px; }
.hit__n b { margin-right: 2px; font: 800 30px/1 var(--num); color: var(--ink); letter-spacing: -.01em; }
.hit__n span { display: none; }
.hit__asof { font-size: 13px; color: var(--meta); }
.sortsel { display: flex; align-items: center; gap: 10px; margin-left: auto; font-size: 13px; color: var(--meta); }
.sortsel select { height: 42px; padding: 0 38px 0 14px; border: 1px solid var(--line-2); border-radius: 10px; appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%233B3F4D' stroke-width='1.6'/%3E%3C/svg%3E") calc(100% - 14px) 50% no-repeat; color: var(--ink); font-size: 14px; font-weight: 700; cursor: pointer; }
.feat { margin-bottom: 44px; padding: 24px 24px 26px; background: var(--indigo); border-radius: 20px; }
.feat__t { display: flex; align-items: baseline; gap: 14px; margin: 0 0 18px; color: #fff; font-size: 22px; font-weight: 800; letter-spacing: .03em; }
.feat__t span { font-size: 13px; font-weight: 500; color: rgba(255,255,255,.66); letter-spacing: .04em; }
.feat .gc { border-color: transparent; }
.feat .gc:hover { border-color: var(--ic); }
.feat__b { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gh2 { display: flex; align-items: baseline; gap: 12px; margin: 8px 0 14px; font-size: 21px; font-weight: 800; letter-spacing: .03em; }
.gh2 span { font: 500 14px var(--num); color: var(--meta); }
.gcs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 40px; }
.gc { display: flex; flex-direction: column; padding: 20px 22px 16px; background: #fff; border: 1px solid #E1E4EE; border-radius: 16px; transition: border-color .15s; }
.gc:hover { border-color: var(--ic); }
.gc__top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 12px; font-size: 13px; color: var(--meta); }
.gc__ind { display: inline-flex; align-items: center; gap: 6px; color: var(--ic); font-size: 14px; font-weight: 800; letter-spacing: .04em; }
.gc__ic { width: 24px; height: 24px; }
.gc__ind small { margin-left: 2px; font-size: 12px; font-weight: 500; color: var(--meta); }
.gc[data-ind="cross"] .gc__ind { color: var(--ink-2); }
.st { padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; }
.st--live { background: rgba(220,38,38,.10); color: #B91C1C; }
.st--rec { background: rgba(180,83,9,.10); color: #B45309; }
.gc__date { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 4px; margin: 0 0 6px; color: var(--ink); }
.gc__date b { font: 800 26px/1.15 var(--num); letter-spacing: -.01em; }
.gc__date b.gc__d1 { font-size: 20px; }
.gc__date span { font-size: 14px; font-weight: 700; color: var(--meta); }
.gc__date span::before { content: "("; }
.gc__date span::after { content: ")"; }
.gc__date span.sun { color: #C22F33; }
.gc__date span.sat { color: var(--brand-2); }
.gc__date i { margin: 0 4px; font-style: normal; font-size: 16px; color: var(--meta); }
.gc__n { margin: 0 0 12px; font-size: 18px; line-height: 1.55; font-weight: 800; letter-spacing: .03em; }
.gc__n a:hover { color: var(--brand-2); text-decoration: underline; text-underline-offset: 3px; }
.gc__v { display: flex; gap: 8px; margin: 0 0 14px; font-size: 14px; line-height: 1.6; color: var(--ink-2); }
.gc__v small { display: block; font-size: 13px; color: var(--meta); }
.gc__mi { width: 18px; height: 18px; margin-top: 2px; color: var(--meta); }
.gc__f { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: auto 0 0; padding-top: 12px; border-top: 1px solid var(--line); font-size: 14px; color: var(--meta); }
.gc__s { display: inline-flex; align-items: center; gap: 6px; }
.gc__s b { font: 800 18px var(--num); color: var(--ink); }
.gc__s .na { font-size: 13px; color: var(--pale); }
.gc__fee { font-size: 13.5px; font-weight: 700; color: var(--ink-3); }
.gc__fee.free { color: #15803D; }
.gc--f { padding: 24px 24px 18px; }
.gc--f .gc__date b { font-size: 30px; }
.gc--f .gc__n { font-size: 19.5px; }
.gc--f .gc__s b { font-size: 24px; }
.empty { padding: 64px 0; text-align: center; color: var(--meta); }
.near { gap: 0 56px; margin-top: 16px; padding: 4px 28px 26px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.near__b { padding-top: 26px; }
.near__b h2 { margin-bottom: 12px; font-size: 15px; font-weight: 800; letter-spacing: .03em; }
.near__l li { padding: 4px 0; font-size: 14.5px; }
.near__l a { color: var(--brand-2); }
.near__l a:hover { text-decoration: underline; text-underline-offset: 3px; }
.near__l b { color: var(--ink); }
.near__l span { font: 500 13px var(--num); color: var(--meta); }
@media (min-width: 1600px) {
  :root { --pad: 80px; --side: 304px; --cg: 48px; --gut: 24px; }
  .gcs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1560px) {
  :root { --bw: calc((100% - var(--side) - var(--cg) - 2 * var(--gut)) / 3); }
}
@media (min-width: 1024px) and (max-width: 1439px) {
  :root { --bw: calc((100% - var(--side) - var(--cg) - var(--gut)) / 2); }
  .band__g--sel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .band__g--sel select:nth-child(3) { display: none; }
  .band__f select { padding: 0 28px 0 12px; font-size: 14px; background-position: calc(100% - 12px) 50%; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  :root { --pad: 48px; --side: 264px; --cg: 32px; --gut: 16px; }
  .ttl__h1 { font-size: 30px; }
  .side { padding: 18px 16px 6px; }
  .opt { font-size: 14px; }
  .gcs { grid-template-columns: 1fr; }
  .feat__b { grid-template-columns: 1fr; }
}
@media (max-width: 1023px) {
  :root { --gh: 64px; --pad: 32px; --cg: 24px; --gut: 16px; --bw: clamp(260px, calc(100% - 820px), 440px); }
  .band { padding: 14px var(--fx); }
  .band__f { grid-template-columns: minmax(0, 1fr) auto; column-gap: 8px; }
  .band__g--kw { grid-column: 1; }
  .band__g--sel { display: none; }
  .band__g--btn { grid-column: 2; grid-template-columns: auto; }
  .band__g--btn button[type="submit"] { display: none; }
  .calp { padding: 16px var(--fx) 20px; }
  .calp__ms { gap: 0 20px; }
  .cd { width: 42px; height: 42px; font-size: 15px; }
  .band__f input, .band__f select, .band__f button { height: 48px; font-size: 14.5px; border-radius: 9px; }
  .ttl { padding: 22px var(--fx) 4px; }
  .ttl__crumb { margin-bottom: 8px; font-size: 12.5px; }
  .ttl__h1 { font-size: 26px; }
  .body { padding: 14px var(--fx) 104px; }
  .side { padding: 0 16px 104px; background: #fff; border: 0; border-radius: 0; }
  .side__head { margin: 0 -16px 12px; padding: 0 16px; background: #fff; border-bottom: 1px solid var(--line); }
  .side__close { color: var(--brand-2); }
  .side__foot { background: #fff; border-top: 1px solid var(--line); }
  .side__apply { border-radius: 999px; background: var(--brand); color: #fff; }
  .hit { margin-bottom: 18px; }
  .hit__n b { font-size: 24px; }
  .sortsel { margin-left: 0; }
  .feat { margin: 0 -2px 32px; padding: 18px 14px 18px; border-radius: 16px; }
  .feat__t { font-size: 18px; flex-wrap: wrap; gap: 4px 10px; }
  .feat__b, .gcs { grid-template-columns: 1fr; gap: 12px; }
  .gh2 { font-size: 18px; }
  .gc { padding: 16px 16px 14px; border-radius: 14px; }
  .gc__date b { font-size: 22px; }
  .gc__n { font-size: 16.5px; }
  .gc--f .gc__date b { font-size: 24px; }
  .gc--f .gc__n { font-size: 17px; }
  .gc--f .gc__s b { font-size: 20px; }
  .fab { border-radius: 999px; background: var(--brand); color: #fff; }
  .fab span:not(:empty) { font: 700 12px var(--num); background: #fff; color: var(--brand-2); min-width: 20px; height: 20px; line-height: 20px; text-align: center; border-radius: 10px; }
}
@media (max-width: 599px) {
  :root { --gh: 58px; --pad: 16px; --gut: 12px; }
  .calx { display: none; }
  .band { padding: 12px var(--fx) 14px; }
  .band__f input, .band__f select, .band__f button { height: 46px; font-size: 14px; border-radius: 8px; }
  .ttl { padding-top: 16px; }
  .ttl__crumb { font-size: 12px; }
  .ttl__h1 { font-size: 22px; }
}
@media (min-width: 600px) and (max-width: 1023px) {
  .side { inset: 0 auto 0 0; width: min(420px, 86vw); transform: translateX(-100%); border-right: 1px solid var(--line); }
  .side.is-open { transform: none; }
  .side__foot { right: auto; width: min(420px, 86vw); }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .gcs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* ---- 試作：../proto/css/s.css ---- */
[data-cat="ai"] { --cc: #06B6D4; --ic: #0E7490; }
[data-cat="dx"] { --cc: #8B5CF6; --ic: #6D28D9; }
[data-cat="it"] { --cc: #3B5BFF; --ic: #2742D6; }
[data-cat="productivity"] { --cc: #16A34A; --ic: #15803D; }
[data-cat="labor"] { --cc: #EA6264; --ic: #C0393C; }
[data-cat="equipment"] { --cc: #F59E0B; --ic: #B45309; }
.hit__n::before { content: none; }
.hit__n .hit__l { display: inline; margin-right: 6px; }
.hit__b { margin-left: 8px; font-style: normal; font-size: 13.5px; font-weight: 500; color: var(--meta); }
.rg { display: flex; align-items: center; gap: 4px; width: 100%; padding: 6px 0; border: 0; background: none; color: var(--ink-2); font-size: 15px; font-weight: 700; text-align: left; cursor: pointer; }
.rg span:first-child::before { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 12px 2px 4px; border: solid var(--meta); border-width: 0 1.6px 1.6px 0; transform: rotate(-45deg); transition: transform .15s; }
.rg.is-open span:first-child::before { transform: rotate(45deg); margin-bottom: 4px; }
.rg.is-zero { color: var(--pale); }
.opt--sub2 { padding-left: 52px; font-size: 14px; }
.fs__more[data-more="city"] { margin: 2px 0 6px 52px; }
.fs__note { margin: -4px 0 8px; font-size: 12.5px; line-height: 1.6; color: var(--meta); }
.sd { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--ink-2); }
.sd::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sd); }
.sd--open { --sd: #16A34A; }
.sd--year { --sd: #3B5BFF; }
.sd--upcoming { --sd: #D97706; }
.sd--closed { --sd: #A3A8B6; color: var(--meta); }
.scs { --cols: 2; display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); column-gap: var(--gut); row-gap: 0; margin-bottom: calc(40px - var(--gut)); }
.sc { display: grid; grid-row: span 6; grid-template-rows: subgrid; row-gap: 0; margin-bottom: var(--gut); padding: 20px 22px 18px; background: #fff; border: 1px solid #E1E4EE; border-radius: 16px; transition: border-color .15s; }
.sc:hover { border-color: var(--cc); }
.sc__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin: 0 0 10px; }
.sc__cat { display: inline-flex; align-items: center; gap: 7px; color: var(--ic); font-size: 14px; font-weight: 800; letter-spacing: .04em; }
.sc__cat small { margin-left: 2px; font-size: 12px; font-weight: 500; color: var(--meta); }
.sc__ic { width: 24px; height: 24px; }
.sc__n { margin: 0 0 8px; font-size: 18px; line-height: 1.55; font-weight: 800; letter-spacing: .03em; }
.sc__n a:hover { color: var(--brand-2); text-decoration: underline; text-underline-offset: 3px; }
.sc__w { display: flex; align-items: center; gap: 7px; margin: 0 0 14px; font-size: 14px; color: var(--ink-2); }
.sc__w small { margin-left: 6px; font-size: 14px; color: var(--ink-2); }
.sc__mi { width: 18px; height: 18px; color: var(--meta); }
.sc__lb { display: block; margin-bottom: 2px; font-size: 12.5px; font-weight: 700; color: var(--meta); letter-spacing: .06em; }
.sc__nums { container-type: inline-size; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 0 18px; margin: 0 0 12px; padding: 12px 0 0; border-top: 1px solid var(--line); }
.sc__amt, .sc__rate { margin: 0; color: var(--ink); line-height: 1.2; }
.sc__amt b, .sc__rate b { font: 800 28px/1.15 var(--num); letter-spacing: -.01em; }
.sc__amt small, .sc__rate small { margin: 0 2px 0 1px; font-size: 14px; font-weight: 700; }
.sc__amt.na, .sc__rate.na { font-size: 14px; color: var(--meta); }
.sc__rate.na { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.5; }
.sc__dl { display: flex; align-items: center; gap: 7px; margin: 0 0 12px; font-size: 14px; color: var(--ink-2); }
.sc__dl b { margin: 0 2px 0 6px; font: 800 18px var(--num); color: var(--ink); }
.sc__dl i { font-style: normal; font-size: 13px; font-weight: 700; color: var(--meta); }
.sc__dl i::before { content: "("; }
.sc__dl i::after { content: ")"; }
.sc__dl i.sun { color: #C22F33; }
.sc__dl i.sat { color: var(--brand-2); }
.sc__dl small { margin-left: 6px; font-size: 13px; color: var(--meta); }
.sc__dl.is-closed, .sc__dl.is-none, .sc__dl.is-wait { color: var(--meta); }
.sc__ex { display: flex; flex-wrap: wrap; align-items: center; align-self: start; gap: 6px; margin: 0; padding-top: 12px; border-top: 1px solid var(--line); }
.sc__ex .sc__lb { display: inline; margin: 0 4px 0 0; }
.xc { padding: 2px 9px; border: 1px solid var(--line-2); border-radius: 6px; font-size: 12.5px; font-weight: 700; color: var(--ink-2); }
.xc.is-cond { border-style: dashed; color: var(--ink-3); }
.xc.is-hit { border-color: var(--ink); color: var(--ink); }
.sc__ex small { font-size: 12px; color: var(--meta); }
@media (min-width: 1024px) {
  .main { min-height: calc(100vh - var(--gh) - 32px); }
}
.gh2 em { font-style: normal; font-size: 13px; font-weight: 500; color: var(--meta); letter-spacing: .02em; }
@container (max-width: 309px) {
  .sc__amt b, .sc__rate b { font-size: 24px; }
  .sc__amt small, .sc__rate small { font-size: 13px; }
}
@container (min-width: 440px) {
  .sc__amt b, .sc__rate b { font-size: 30px; }
}
.chips__x { margin-left: 2px; }
@media (min-width: 1560px) {
  .scs { --cols: 3; }
}
@media (min-width: 1280px) and (max-width: 1559px) {
  .sc__n { font-size: 19px; }
  .sc__nums { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 28px; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .sc { padding: 18px 18px 16px; }
  .sc__n { font-size: 17px; }
  .rg { font-size: 14px; }
}
@media (max-width: 1023px) {
  .sc { padding: 18px 18px 16px; border-radius: 14px; }
  .sc__n { font-size: 17px; }
  .gh2 { flex-wrap: wrap; gap: 4px 12px; }
  .chips { display: flex; gap: 8px; margin: -6px calc(-1 * var(--fx)) 18px; padding: 0 var(--fx) 2px; list-style: none; overflow-x: auto; scrollbar-width: none; }
  .chips::-webkit-scrollbar { display: none; }
  .chips li { flex: none; display: inline-flex; align-items: center; gap: 4px; height: 36px; padding: 0 6px 0 14px; background: #fff; border: 1px solid var(--line-2); border-radius: 999px; font-size: 13.5px; font-weight: 700; color: var(--ink); white-space: nowrap; }
  .chips li button { width: 26px; height: 26px; padding: 0; border: 0; border-radius: 50%; background: var(--mist); color: var(--ink-3); font-size: 12px; line-height: 1; cursor: pointer; }
  .chips li.chips__all { padding: 0 4px; background: none; border: 0; }
  .chips li.chips__all button { width: auto; height: auto; background: none; border-radius: 0; color: var(--brand-2); font-size: 13px; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
  .chips:empty { display: none; }
}
@media (max-width: 679px) {
  .scs { --cols: 1; }
}
@media (max-width: 599px) {
  .sc { padding: 16px 16px 14px; }
  .sc__n { font-size: 16.5px; }
  .hit { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; }
  .hit__n { grid-column: 1; }
  .hit__n .hit__b { display: block; margin: 2px 0 0; }
  .sortsel { grid-column: 2; grid-row: 1; gap: 6px; font-size: 12px; }
  .sortsel select { height: 40px; padding: 0 30px 0 12px; font-size: 13.5px; background-position: calc(100% - 12px) 50%; }
  .hit__asof { grid-column: 1 / -1; font-size: 12px; }
}
/* ---- 試作：../proto/css/sd_live.css ---- */
.sd-top { display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:16px; }
.sd-title { font-size:clamp(24px,3vw,36px);line-height:1.35;margin-bottom:14px; }
.sd-lead { font-size:16px;line-height:1.95;color:var(--ink-2);max-width:760px; }
.sd-wrap { max-width:880px; }
.sd-keys { display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:34px; }
.sd-key { background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:18px 20px; }
.sd-key__lbl { font-size:12px;font-weight:800;color:var(--ink-4);letter-spacing:.04em;margin-bottom:8px; }
.sd-key__val { font-family:var(--mono);font-weight:900;font-size:19px;line-height:1.4;font-feature-settings:"tnum";color:var(--ink); }
.sd-key__val small { display:block;font-family:var(--gothic);font-size:12px;font-weight:700;color:var(--ink-3);margin-top:4px;letter-spacing:.03em; }
.sd-block { padding:26px 0;border-top:1px solid var(--line); }
.sd-h2 { display:flex;align-items:center;gap:10px;font-size:19px;margin-bottom:18px; }
.sd-h2__dot { width:12px;height:12px;border-radius:4px;flex-shrink:0; }
.sd-note-s { margin-top:14px;font-size:12px;color:var(--ink-4);line-height:1.7; }
.sd-mech2__stats { display:flex;gap:14px;margin-bottom:18px;flex-wrap:wrap; }
.sd-stat { flex:1;min-width:172px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:16px 20px; }
.sd-stat__lbl { font-size:12px;font-weight:800;color:var(--ink-4);letter-spacing:.03em;margin-bottom:7px; }
.sd-stat__val { font-family:var(--mono);font-weight:900;font-size:28px;line-height:1.1;font-feature-settings:"tnum";color:var(--ink); }
.sd-stat__sub { font-size:12px;font-weight:700;color:var(--ink-3);margin-top:6px; }
.sd-calc { background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:18px 20px; }
.sd-calc__caprow { display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px;font-size:13.5px;font-weight:700;color:var(--ink-2); }
.sd-calc__caprow b { font-family:var(--mono);font-size:16px;color:var(--ink); }
.sd-calc__caprow small { margin-left:auto;font-size:11px;color:var(--ink-4);font-weight:700; }
.sd-calc__bar { display:flex;height:46px;border-radius:9px;overflow:hidden;border:1px solid var(--line); }
.sd-calc__seg { display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-weight:900;font-size:14px;color:#fff;min-width:36px; }
.sd-calc__seg--self { background:var(--bg-3);color:var(--ink-3); }
.sd-calc__legend { display:flex;flex-wrap:wrap;gap:9px 26px;margin-top:14px; }
.sd-calc__li { display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:700;color:var(--ink-2); }
.sd-calc__dot { width:13px;height:13px;border-radius:4px;flex-shrink:0; }
.sd-calc__dot--self { background:var(--bg-3);border:1px solid var(--line-2); }
.sd-calc__li b { font-family:var(--mono);font-size:17px;margin-left:2px;font-feature-settings:"tnum"; }
.sd-mech__cap { margin-top:14px;font-size:14px;line-height:1.9;color:var(--ink-2); }
.sd-mech--note { background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:20px 22px; }
.sd-mech--note p { font-size:14.5px;line-height:1.95;color:var(--ink-2); }
.sd-mech--note .sd-mech__cap { margin-top:10px;font-weight:800;color:var(--ink); }
.sd-uses { list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px 22px; }
.sd-uses li { display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.7;color:var(--ink);font-weight:700; }
.sd-uses__ic { flex-shrink:0;font-weight:900;font-size:15px;line-height:1.6; }
.sd-facts { margin:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden; }
.sd-facts > div { display:flex;gap:18px;padding:14px 18px;font-size:14px;line-height:1.7; }
.sd-facts > div + div { border-top:1px solid var(--line); }
.sd-facts dt { flex-shrink:0;width:84px;font-weight:800;color:var(--ink-4);margin:0; }
.sd-facts dd { margin:0;color:var(--ink-2);font-weight:700; }
.sd-steps { list-style:none;padding:0;margin:0;counter-reset:none; }
.sd-step { display:flex;gap:16px;align-items:flex-start;padding:14px 0; }
.sd-step + .sd-step { border-top:1px dashed var(--line); }
.sd-step__n { flex-shrink:0;width:30px;height:30px;border-radius:50%;color:#fff;display:grid;place-items:center;font-family:var(--mono);font-weight:900;font-size:14px; }
.sd-step__t { font-weight:900;font-size:15.5px;margin-bottom:3px; }
.sd-step__d { font-size:13.5px;line-height:1.8;color:var(--ink-3); }
.sd-cta { margin-top:34px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r);padding:26px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px 28px;flex-wrap:wrap; }
.sd-cta__t { font-weight:900;font-size:17px;margin-bottom:6px; }
.sd-cta__s { font-size:12.5px;line-height:1.8;color:var(--ink-3);max-width:560px; }
.sd-cta__btn { white-space:nowrap; }
.sd-cta__btn:hover { filter:brightness(.94); }
.sd-back { display:inline-block;margin-top:26px;font-weight:800;font-size:14px;color:var(--ink-3); }
.sd-back:hover { color:var(--cc,var(--brand)); }
@media(max-width:680px) {
  .sd-keys { grid-template-columns:1fr; }
  .sd-uses { grid-template-columns:1fr; }
  .sd-cta { flex-direction:column;align-items:stretch; }
  .sd-cta__btn { width:100%; }
}
.sd-detail p { font-size:16.5px;line-height:2;color:#222;margin:0 0 16px }
.sd-detail p:last-child { margin-bottom:0 }
.sd-expgrid { display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:10px }
.sd-expitem { display:flex;align-items:center;gap:10px;border:1px solid #eee;border-radius:10px;padding:11px 14px;background:#fff }
.sd-expitem__m { flex:0 0 22px;height:22px;display:flex;align-items:center;justify-content:center }
.sd-expitem__m svg { width:22px;height:22px;display:block }
.sd-expitem__n { font-size:14.5px;font-weight:700;color:#111 }
.sd-expitem--ok { border-color:color-mix(in srgb,var(--cc) 45%,#fff) }
.sd-expitem--ok .sd-expitem__m { color:var(--cc) }
.sd-expitem--cond .sd-expitem__m { color:#d9a41a }
.sd-expitem--cond .sd-expitem__n small { display:block;font-size:11.5px;font-weight:700;color:#a07c14;margin-top:1px }
.sd-expitem--no { background:#fafafa;border-color:#eee }
.sd-expitem--no .sd-expitem__m { color:#c4c4ca }
.sd-expitem--no .sd-expitem__n { color:#9a9aa0 }
.sd-expitem--none { background:#fcfcfc;border-style:dashed }
.sd-expitem--none .sd-expitem__m { color:#d8d8de }
.sd-expitem--none .sd-expitem__n { color:#aaa;font-weight:600 }
.sd-expnotes { list-style:none;margin:18px 0 0;padding:0;border-top:1px solid #eee;padding-top:14px }
.sd-expnotes li { font-size:14px;line-height:1.85;color:#444;margin-bottom:8px;padding-left:16px;position:relative }
.sd-expnotes li::before { content:"※";position:absolute;left:0;color:#bbb;font-size:12px;top:3px }
.sd-expnotes b { font-weight:800;color:#111 }
.sd-caution { border:1px solid #f0e2c8;background:#fffdf7;border-radius:12px;padding:18px 22px }
.sd-caution ul { list-style:none;margin:0;padding:0 }
.sd-caution li { position:relative;padding-left:24px;font-size:15.5px;line-height:1.9;margin-bottom:9px;color:#3a3327 }
.sd-caution li:last-child { margin-bottom:0 }
.sd-caution li::before { content:"";position:absolute;left:2px;top:7px;width:16px;height:16px;background:#d99b1c;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%3E%20%3Cpath%20d%3D%22M%2015%203%20C%2014.168432%203%2013.456063%203.5067238%2013.154297%204.2285156%20L%202.3007812%2022.947266%20L%202.3007812%2022.949219%20A%202%202%200%200%200%202%2024%20A%202%202%200%200%200%204%2026%20A%202%202%200%200%200%204.140625%2025.994141%20L%204.1445312%2026%20L%2015%2026%20L%2025.855469%2026%20L%2025.859375%2025.992188%20A%202%202%200%200%200%2026%2026%20A%202%202%200%200%200%2028%2024%20A%202%202%200%200%200%2027.699219%2022.947266%20L%2027.683594%2022.919922%20A%202%202%200%200%200%2027.681641%2022.917969%20L%2016.845703%204.2285156%20C%2016.543937%203.5067238%2015.831568%203%2015%203%20z%20M%2013.787109%2011.359375%20L%2016.212891%2011.359375%20L%2016.011719%2017.832031%20L%2013.988281%2017.832031%20L%2013.787109%2011.359375%20z%20M%2015.003906%2019.810547%20C%2015.825906%2019.810547%2016.318359%2020.252813%2016.318359%2021.007812%20C%2016.318359%2021.748812%2015.825906%2022.189453%2015.003906%2022.189453%20C%2014.175906%2022.189453%2013.679688%2021.748813%2013.679688%2021.007812%20C%2013.679688%2020.252813%2014.174906%2019.810547%2015.003906%2019.810547%20z%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%3E%20%3Cpath%20d%3D%22M%2015%203%20C%2014.168432%203%2013.456063%203.5067238%2013.154297%204.2285156%20L%202.3007812%2022.947266%20L%202.3007812%2022.949219%20A%202%202%200%200%200%202%2024%20A%202%202%200%200%200%204%2026%20A%202%202%200%200%200%204.140625%2025.994141%20L%204.1445312%2026%20L%2015%2026%20L%2025.855469%2026%20L%2025.859375%2025.992188%20A%202%202%200%200%200%2026%2026%20A%202%202%200%200%200%2028%2024%20A%202%202%200%200%200%2027.699219%2022.947266%20L%2027.683594%2022.919922%20A%202%202%200%200%200%2027.681641%2022.917969%20L%2016.845703%204.2285156%20C%2016.543937%203.5067238%2015.831568%203%2015%203%20z%20M%2013.787109%2011.359375%20L%2016.212891%2011.359375%20L%2016.011719%2017.832031%20L%2013.988281%2017.832031%20L%2013.787109%2011.359375%20z%20M%2015.003906%2019.810547%20C%2015.825906%2019.810547%2016.318359%2020.252813%2016.318359%2021.007812%20C%2016.318359%2021.748812%2015.825906%2022.189453%2015.003906%2022.189453%20C%2014.175906%2022.189453%2013.679688%2021.748813%2013.679688%2021.007812%20C%2013.679688%2020.252813%2014.174906%2019.810547%2015.003906%2019.810547%20z%22%2F%3E%3C%2Fsvg%3E") center/contain no-repeat }
.sd-toc { display:flex;flex-wrap:wrap;gap:7px;margin:0 0 34px }
.sd-toc a { font-size:13px;font-weight:700;color:#333;text-decoration:none;border:1px solid #e6e6e8;border-radius:999px;padding:6px 13px;background:#fff }
.sd-toc a:hover { border-color:#bbb }
.sd-frames { width:100%;border-collapse:collapse;font-size:14.5px }
.sd-frames th, .sd-frames td { border-bottom:1px solid #eee;padding:11px 12px;text-align:left;vertical-align:top;line-height:1.75 }
.sd-frames thead th { font-size:12.5px;color:#666;font-weight:800;border-bottom:1.5px solid #ddd;white-space:nowrap }
.sd-frames td:first-child { font-weight:800;color:#111 }
.sd-frames td:nth-child(2) { color:var(--cc);font-weight:800;white-space:nowrap }
.sd-frames td:nth-child(3) { white-space:nowrap }
.sd-tablewrap { overflow-x:auto;-webkit-overflow-scrolling:touch }
.sd-elig { list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px 24px }
.sd-elig li { position:relative;padding:7px 0 7px 24px;font-size:15px;line-height:1.8 }
.sd-elig li::before { content:"";position:absolute;left:5px;top:15px;width:7px;height:7px;border-radius:50%;background:var(--cc) }
.sd-steps { list-style:none;counter-reset:st;margin:0;padding:0 }
.sd-steps li { position:relative;padding:0 0 20px 46px;counter-increment:st }
.sd-steps li::before { content:counter(st);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--cc);color:#fff;font-weight:900;font-size:13px;display:flex;align-items:center;justify-content:center }
.sd-steps li::after { content:"";position:absolute;left:13.5px;top:32px;bottom:2px;width:1px;background:#e8e8ea }
.sd-steps li:last-child { padding-bottom:0 }
.sd-steps li:last-child::after { display:none }
.sd-steps__t { font-weight:800;font-size:15.5px;margin:4px 0 5px;line-height:1.5 }
.sd-steps__d { font-size:14.5px;line-height:1.85;color:#444;margin:0 }
.sd-checked { font-size:12.5px;color:#888;margin:-6px 0 26px }
.sd-flow { list-style:none;margin:0;padding:0;border-top:1px solid #eee }
.sd-flow li { display:flex;gap:18px;padding:13px 2px;border-bottom:1px solid #eee;font-size:15px;line-height:1.8 }
.sd-flow__k { flex:0 0 170px;font-weight:800;color:#111 }
.sd-flow__v { color:#333 }
@media(max-width:600px) {
  .sd-flow li { display:block }
  .sd-flow__k { margin-bottom:3px }
}
.sd-docs { list-style:none;margin:0;padding:0 }
.sd-docs li { position:relative;padding-left:26px;font-size:15.5px;line-height:1.9;margin-bottom:8px }
.sd-docs li::before { content:"";position:absolute;left:4px;top:11px;width:8px;height:8px;border-radius:2px;background:var(--cc) }
.sd-faq__q { border-top:1px solid #eee;padding:16px 2px 0 }
.sd-faq__q:first-child { border-top:0;padding-top:0 }
.sd-faq__t { font-weight:800;font-size:16px;line-height:1.7;margin:0 0 8px;display:flex;gap:10px }
.sd-faq__t::before { content:"Q";color:var(--cc);font-weight:900 }
.sd-faq__a { font-size:15.5px;line-height:1.95;color:#333;margin:0 0 16px;padding-left:24px }
.sd-scenario__body { font-size:16px;line-height:1.95;color:#222;margin:0 }
.sd-scenario__fit { display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px }
.sd-scenario__fitlbl { font-size:12px;font-weight:800;color:#888;margin-right:2px }
.sd-scenario__tag { display:inline-block;padding:4px 11px;border-radius:6px;font-size:12.5px;font-weight:700;color:#555;background:#f4f4f5 }
.sd-rel { margin-top:44px;padding-top:34px;border-top:1px solid #eee }
.sd-rel__grp { margin-bottom:30px }
.sd-rel__hd { display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap }
.sd-rel__t { font-size:17px;font-weight:900;color:#111 }
.sd-rel__all { font-size:13.5px;font-weight:800;color:var(--cc);text-decoration:none;white-space:nowrap }
.sd-rel__all:hover { text-decoration:underline }
.sd-rel__list { display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px }
.sd-relcard { display:block;border:1px solid #eee;border-radius:10px;padding:14px 16px;text-decoration:none;color:inherit;transition:border-color .15s }
.sd-relcard:hover { border-color:#ccc }
.sd-relcard__t { font-size:14.5px;font-weight:800;line-height:1.6;color:#111;margin-bottom:8px }
.sd-relcard__m { display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:#666 }
.sd-relcard__a { font-weight:800;color:var(--cc) }
.sd-relcard__s { padding:1px 8px;border-radius:4px;font-weight:700;font-size:11.5px }
.sd-relcard__s--open { background:#e8f7ee;color:#16803c }
.sd-relcard__s--year { background:#eaefff;color:#2f49c4 }
.sd-relcard__s--closed { background:#f2f2f4;color:#8a8a90 }
.sd-read { display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:4px }
.sd-readcard { display:block;border:1px solid #eee;border-radius:10px;padding:15px 17px;text-decoration:none;color:inherit;transition:border-color .15s }
.sd-readcard:hover { border-color:#ccc }
.sd-readcard__t { font-size:14.5px;font-weight:800;line-height:1.6;color:#111 }
.sd-readcard__s { font-size:12.5px;line-height:1.75;color:#666;margin-top:7px }
.sd-readcard__go { display:inline-block;font-size:12.5px;font-weight:800;color:var(--cc);margin-top:10px }
.sd-demo { display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:10px;margin-top:4px }
.sd-democard { display:flex;flex-direction:column;border:1px solid #eee;border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .15s }
.sd-democard:hover { border-color:#ccc }
.sd-democard__img { display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top center;background:#f4f4f5 }
.sd-democard__b { padding:14px 16px 16px }
.sd-democard__ind { font-size:11.5px;font-weight:800;color:#888;letter-spacing:.02em }
.sd-democard__t { font-size:15px;font-weight:800;line-height:1.55;color:#111;margin-top:5px }
.sd-democard__s { font-size:12.5px;line-height:1.75;color:#666;margin-top:7px }
.sd-blocklead { font-size:14px;line-height:1.85;color:#555;margin:0 0 16px }
/* ---- 試作：../proto/css/sd.css ---- */
.single-subsidy { --bg-2: var(--mist); --bg-3: #E8EAF3; --ink-4: #8A8F9E; --r: 16px; --r-sm: 12px; --mono: var(--num); --gothic: var(--jp); }
.dband .band__cal { height: 54px; border-radius: 10px; text-decoration: none; }
.dband__tg { display: none; }
.dwrap { padding: 22px var(--fx) 88px; }
.dcrumb { display: flex; flex-wrap: wrap; gap: 0 .55em; margin-bottom: 18px; font-size: 13px; color: var(--meta); }
.dcrumb a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.dcrumb span[aria-hidden] { color: var(--pale); }
.dcrumb [aria-current] { color: var(--ink-2); }
.dgrid { display: grid; grid-template-columns: minmax(0, 1fr) var(--bw); column-gap: var(--gut); align-items: start; }
.dmain { min-width: 0; }
.dhero { margin-bottom: 18px; }
.dhero__top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; margin: 0 0 10px; }
.dhero__w { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ink-2); }
.dhero__h1 { margin: 0; font-size: 34px; line-height: 1.42; font-weight: 800; letter-spacing: .02em; }
.dkeys { container-type: inline-size; margin: 0 0 16px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.dkeys .sd-keys { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.2fr); gap: 0; margin: 0; padding: 0; }
.dkeys .sd-key { margin: 0; padding: 18px 22px 18px; background: none; border: 0; border-left: 1px solid var(--line); border-radius: 0; box-shadow: none; }
.dkeys .sd-key:first-child { border-left: 0; }
.dkeys .sd-key__lbl { margin: 0 0 6px; font-size: 13px; font-weight: 700; color: var(--meta); letter-spacing: .06em; }
.dkeys .sd-key__val { margin: 0; font-size: 16px; font-weight: 800; line-height: 1.55; color: var(--ink); }
.dkeys .sd-key__val .kv { font: 800 34px/1.1 var(--num); letter-spacing: -.01em; }
.dkeys .sd-key--rate .sd-key__val { font-size: 15px; }
.dkeys .sd-key--rate .kv { font-size: 30px; }
.dkeys .sd-key__val small { display: block; margin-top: 6px; font-size: 13px; font-weight: 500; line-height: 1.7; color: var(--ink-3); }
.dkeys .sd-key--status .sd-key__val::before { content: ""; display: inline-block; width: 9px; height: 9px; margin: 0 8px 2px 0; border-radius: 50%; background: #16A34A; }
@container (max-width: 639px) {
  .dkeys .sd-keys { grid-template-columns: 1fr 1fr; }
  .dkeys .sd-key--status { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--line); }
}
.dsum { margin: 0 0 14px; }
.dsum__t, .dsum__more { display: none; }
.dsum .sd-lead { margin: 0; max-width: none; font-size: 16px; line-height: 1.95; color: var(--ink); }
.single-subsidy .sd-checked { margin: 0 0 16px; font-size: 13px; color: var(--meta); }
.single-subsidy .sd-toc { display: flex; flex-wrap: wrap; gap: 4px 22px; margin: 0 0 16px; padding: 14px 22px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.single-subsidy .sd-toc::before { content: "このページの内容"; flex-basis: 100%; margin-bottom: 2px; font-size: 13px; font-weight: 800; color: var(--ink); letter-spacing: .04em; }
.single-subsidy .sd-toc a { padding: 2px 0; border: 0; border-radius: 0; background: none; font-size: 14.5px; font-weight: 700; color: var(--brand-2); }
.single-subsidy .sd-toc a:hover { text-decoration: underline; text-underline-offset: 3px; }
.single-subsidy .sd-block { margin: 0 0 16px; padding: 26px 30px 24px; background: #fff; border: 1px solid var(--line); border-radius: 16px; scroll-margin-top: calc(var(--gh) + 16px); }
.single-subsidy .sd-block::before, .single-subsidy .sd-block::after { display: none; }
.single-subsidy .sd-h2 { display: block; margin: 0 0 14px; padding: 0; border: 0; font-size: 21px; font-weight: 800; letter-spacing: .03em; line-height: 1.45; }
.single-subsidy .sd-block p, .single-subsidy .sd-block li { font-size: 16px; line-height: 1.95; color: var(--ink-2); }
.single-subsidy .sd-stat__val { color: var(--ink) !important; }
.single-subsidy .sd-calc__seg:not(.sd-calc__seg--self) { background: var(--cc) !important; }
.single-subsidy .sd-cta { display: flex; align-items: center; gap: 24px; margin: 0 0 16px; padding: 22px 26px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.single-subsidy .sd-cta__t { font-size: 17px; font-weight: 800; color: var(--ink); }
.single-subsidy .sd-cta__s { margin-top: 4px; font-size: 13px; line-height: 1.7; color: var(--ink-3); }
.single-subsidy .sd-cta__btn { flex: none; display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 52px; padding: 0 26px; border-radius: 10px !important; background: var(--brand) !important; border-color: var(--brand) !important; color: #fff !important; font-size: 15.5px; font-weight: 800; }
.single-subsidy .sd-cta__btn:hover { background: var(--brand-2) !important; }
.single-subsidy .sd-rel { margin: 0 0 16px; padding: 24px 28px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.single-subsidy .sd-back { display: inline-block; margin-top: 8px; font-size: 14px; font-weight: 700; color: var(--brand-2); }
.ogp { display: block; margin: 0 0 14px; color: var(--ink); }
.ogp__img { display: block; aspect-ratio: 1200 / 630; overflow: hidden; border: 1px solid var(--line-2); border-radius: 10px; background: var(--mist); }
.ogp__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ogp__t { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 9px; font-size: 13.5px; font-weight: 700; line-height: 1.6; }
.ogp__d { display: block; margin-top: 2px; font: 500 12px var(--num); color: var(--meta); }
.dact { display: none; }
.dside { position: sticky; top: calc(var(--gh) + 16px); display: grid; gap: 14px; }
.dside__cta { padding: 22px 22px 20px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.dside__cta .b, .dact .b { display: flex; align-items: center; justify-content: center; height: 52px; border-radius: 10px; font-size: 15.5px; font-weight: 800; letter-spacing: .04em; }
.dside__cta .b--brand, .dact .b--brand { background: var(--brand); color: #fff; }
.dside__cta .b--brand:hover, .dact .b--brand:hover { background: var(--brand-2); }
.evside__note { margin: 14px 0 0; font-size: 12.5px; line-height: 1.8; color: var(--meta); }
.dfind { padding: 20px 22px 18px; background: #fff; border: 1px solid var(--line); border-radius: 16px; }
.dfind h2 { margin: 0 0 8px; font-size: 15px; font-weight: 800; letter-spacing: .04em; }
.dfind ul { margin: 0; padding: 0; list-style: none; }
.dfind li { padding: 7px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; }
.dfind li:last-child { border-bottom: 0; }
.dfind a { color: var(--brand-2); font-weight: 700; }
.dfind a:hover { text-decoration: underline; text-underline-offset: 3px; }
.dfind span { margin-left: 2px; font: 500 12.5px var(--num); color: var(--meta); }
@media (min-width: 1440px) {
  .dgrid { grid-template-columns: var(--side) var(--cg) minmax(0, 1fr) var(--gut) var(--bw); column-gap: 0; }
  .dmain { display: contents; }
  .dmain > * { grid-column: 3; }
  .single-subsidy .dmain > .sd-toc { grid-column: 1; grid-row: 1 / span 60; align-self: start; position: sticky; top: calc(var(--gh) + 16px); display: block; margin: 0; padding: 18px 12px 12px; }
  .dside { grid-column: 5; grid-row: 1 / span 60; }
  .single-subsidy .sd-toc::before { display: block; margin: 0 0 6px; padding: 0 10px; }
  .single-subsidy .sd-toc a { display: block; padding: 8px 10px; border-radius: 8px; font-size: 14.5px; line-height: 1.5; color: var(--ink-2); }
  .single-subsidy .sd-toc a:hover { background: var(--mist); color: var(--ink); text-decoration: none; }
  .single-subsidy .sd-toc a.is-on { background: var(--brand-soft); color: var(--brand-2); }
  .dhero__h1 { font-size: 32px; }
}
@media (min-width: 1600px) {
  .dhero__h1 { font-size: 34px; }
  .single-subsidy .sd-block { padding: 30px 34px 28px; }
  .single-subsidy .sd-block p, .single-subsidy .sd-block li { font-size: 16.5px; }
  .dsum .sd-lead { font-size: 16.5px; }
}
@media (min-width: 900px) and (max-width: 1439px) {
  .dhero__h1 { font-size: 30px; }
  .single-subsidy .sd-block { padding: 26px 28px 24px; }
}
@media (max-width: 1023px) {
  .dband { padding: 10px var(--fx); }
  .dband__tg { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; height: 44px; border: 1.5px solid rgba(255,255,255,.5); border-radius: 8px; background: transparent; color: #fff; font-size: 14.5px; font-weight: 700; cursor: pointer; }
  .dband .band__f { display: none; margin-top: 10px; grid-template-columns: minmax(0, 1fr); row-gap: 8px; }
  .dband.is-open .band__f { display: grid; }
  .dband .band__g--kw, .dband .band__g--sel, .dband .band__g--btn { grid-column: 1; }
  .dband .band__g--sel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .dband .band__g--sel select:nth-child(3) { display: block; grid-column: 1 / -1; }
  .dband .band__g--btn { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .dband .band__g--btn button[type="submit"] { display: block; }
  .dband .band__cal { height: 46px; border-radius: 8px; }
}
@media (max-width: 899px) {
  .dwrap { padding: 14px var(--fx) 72px; }
  .dcrumb { font-size: 12px; margin-bottom: 12px; }
  .dgrid { display: block; }
  .dhero { margin-bottom: 14px; }
  .dkeys { border-radius: 14px; }
  .dact { display: block; margin: 0 0 14px; padding: 14px 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; }
  .dact--btn { padding: 0; background: none; border: 0; }
  .dact .ogp__t { -webkit-line-clamp: 1; font-size: 14px; }
  .dside__cta > .ogp, .dside__cta > .b { display: none; }
  .dsum { display: block; }
  .dsum__t { display: block; margin: 0 0 6px; font-size: 15px; font-weight: 800; color: var(--ink); }
  .dsum:not(.is-open) .sd-lead { max-height: 5.7em; overflow: hidden; }
  .dsum__more { display: block; margin: 6px 0 0; padding: 6px 0; border: 0; background: none; font-size: 14.5px; font-weight: 800; color: var(--brand-2); cursor: pointer; }
  .dside { position: static; margin-top: 18px; }
}
@media (min-width: 600px) and (max-width: 899px) {
  .dhero__h1 { font-size: 28px; }
  .dkeys .sd-key { padding: 16px 20px; }
  .dact:not(.dact--btn) { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); grid-template-rows: 1fr auto 1fr; column-gap: 22px; }
  .dact:not(.dact--btn) .ogp { grid-column: 1; grid-row: 1 / -1; margin: 0; }
  .dact:not(.dact--btn) .b { grid-column: 2; grid-row: 2; }
  .dsum .sd-lead { font-size: 16.5px; line-height: 1.9; }
  .single-subsidy .sd-toc { padding: 14px 22px; }
  .single-subsidy .sd-block { padding: 26px 28px 24px; }
  .single-subsidy .sd-h2 { font-size: 20px; }
  .single-subsidy .sd-block p, .single-subsidy .sd-block li { font-size: 16.5px; }
}
@media (max-width: 599px) {
  .dhero__h1 { font-size: 23px; }
  .dkeys .sd-key { padding: 14px 16px; }
  .dkeys .sd-key__val .kv { font-size: 28px; }
  .dkeys .sd-key--rate .kv { font-size: 24px; }
  .dsum .sd-lead { font-size: 15px; line-height: 1.9; }
  .single-subsidy .sd-toc { padding: 12px 16px; border-radius: 14px; }
  .single-subsidy .sd-block { padding: 20px 16px 18px; border-radius: 14px; }
  .single-subsidy .sd-h2 { font-size: 18.5px; }
  .single-subsidy .sd-block p, .single-subsidy .sd-block li { font-size: 15px; }
  .single-subsidy .sd-cta { flex-direction: column; align-items: stretch; gap: 14px; padding: 18px 16px; border-radius: 14px; }
  .single-subsidy .sd-rel { padding: 20px 16px; border-radius: 14px; }
}
.single-subsidy .sd-block [style*="color:"] { color: var(--ic) !important; }
/* ---- 試作：tools/v2-sub-extra.css ---- */
.v2-sub .head__nav a.is-active { background: none; color: var(--ink-2); }
.v2-sub .head__nav a.is-active:hover { background: var(--bg-2); color: var(--ink); }
.v2-sub .head__nav a[href$="/subsidies/"] { background: var(--ink); color: #fff; }
@media (max-width: 1023px) {
  :root { --gh: var(--hd-h, 74px); }
}
/* ---- 外枠をそろえる（試作の --fx が決まった後に当てる） ---- */
.head__row { max-width: none; padding-left: var(--fx); padding-right: var(--fx); }
.foot .wrap { max-width: none; padding-left: var(--fx); padding-right: var(--fx); }
/* ヘッダーの右の欄（記事の検索）は記事が0本の間は空のまま並び、行の間隔 22px の分だけナビの右端が本体の右端より内側に寄る。
   ナビを横に並べる幅では、空の欄を外して右端をそろえる（1024px 以下は、空の欄がメニューのボタンを右へ寄せる役なので残す。2026-11-01） */
@media (min-width: 1025px) { .head__cta:not(:has(*)) { display: none; } }
/* アイコンは文字の色で塗る。試作は <svg fill="currentColor"> で出していたが、本番はページに1回置く束を <use> で参照するので、
   ここで1か所にまとめて当てる（サーバーが出す物にも JS が出す物にも効く。2026-11-01 分類の色が抜けて黒くなっていた） */
.ico { fill: currentColor; }
