/* build: 2026-09-10-b  ← このコメントが見えれば新しいCSSです */
:root{
  --gold:#9A7B2F;   /* 受賞バッジ。2026-09-10 に jisseki.html から統合し損ねていた */
  --paper:#F2F1EF; --surface:#FFFFFF; --surface-2:#EAE8E5;
  --text:#1C1815; --muted:#5F5854; --faint:#918A85;
  --line:#D8D4D0; --line-strong:#C0BAB5;
  --ink:#201A17; --ink-2:#2C2320;
  --on-ink:#EDEBE9; --on-ink-muted:#A79D97; --on-ink-line:#463A34;
  --accent:#C73B27; --accent-ink:#E8705A; --accent-soft:rgba(199,59,39,.09);
  --shadow:0 1px 2px rgba(28,24,21,.06), 0 8px 24px -16px rgba(28,24,21,.25);
  --maxw:1080px;
  --f-display:"Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --f-body:"Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
  --f-mono:"Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#14110F; --surface:#1D1917; --surface-2:#241F1C;
    --text:#E9E5E2; --muted:#A69D97; --faint:#8A817B;
    --line:#332C28; --line-strong:#463D38;
    --ink:#140F0D; --ink-2:#1E1815;
    --on-ink:#E9E5E2; --on-ink-muted:#A0968F; --on-ink-line:#3A302B;
    --accent:#E4674C; --accent-ink:#E4674C; --accent-soft:rgba(228,103,76,.13);
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -18px rgba(0,0,0,.8);
  }
}
:root[data-theme="dark"]{
  --paper:#14110F; --surface:#1D1917; --surface-2:#241F1C;
  --text:#E9E5E2; --muted:#A69D97; --faint:#8A817B;
  --line:#332C28; --line-strong:#463D38;
  --ink:#140F0D; --ink-2:#1E1815;
  --on-ink:#E9E5E2; --on-ink-muted:#A0968F; --on-ink-line:#3A302B;
  --accent:#E4674C; --accent-ink:#E4674C; --accent-soft:rgba(228,103,76,.13);
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -18px rgba(0,0,0,.8);
}
.logo{height:34px;width:auto;display:block}
.logo--rev{height:30px;width:auto;display:block}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--f-body);
  font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased;}
img{max-width:100%}
a{color:inherit}
h1,h2,h3,h4{text-wrap:balance;word-break:auto-phrase;margin:0;line-height:1.35;font-weight:900;letter-spacing:.01em}
p{margin:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.band{padding:88px 0}
.band--ink{background:var(--ink);color:var(--on-ink)}
.band--surface{background:var(--surface)}
.eyebrow{font-family:var(--f-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);font-weight:500;margin-bottom:20px;display:block}
.band--ink .eyebrow{color:var(--accent-ink)}
.lede{max-width:34em;color:var(--muted);font-size:15.5px;word-break:auto-phrase}
.band--ink .lede{color:var(--on-ink-muted)}


/* ===== graphic system ===== */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.03;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.watermark{position:absolute;right:-13%;top:-10%;width:min(760px,72vw);opacity:.055;
  pointer-events:none;user-select:none;animation:spin 150s linear infinite;z-index:0}
@keyframes spin{to{transform:rotate(360deg)}}
.vrail{position:absolute;left:-38px;top:96px;writing-mode:vertical-rl;font-family:var(--f-mono);
  font-size:10.5px;letter-spacing:.42em;color:var(--accent-ink);z-index:2}
@media (max-width:1240px){.vrail{display:none}}
.mk{display:flex;align-items:center;gap:13px;margin-bottom:20px}
.mk img{width:20px;height:auto;flex:none;filter:var(--markfilter,none)}
.mk .lbl{font-family:var(--f-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--accent);font-weight:500;white-space:nowrap}
.mk .rule{flex:1;height:1px;background:var(--line)}
.band--ink .mk{--markfilter:invert(1) brightness(1.15)}
.band--ink .mk .lbl{color:var(--accent-ink)}
.band--ink .mk .rule{background:var(--on-ink-line)}
.hero .mk{--markfilter:invert(1) brightness(1.15)}
.hero .mk .lbl{color:var(--accent-ink)}
.hero .mk .rule{background:var(--on-ink-line)}
.rule-accent{height:3px;background:var(--accent)}
/* ROOT ring */
.ringwrap{display:grid;grid-template-columns:minmax(300px,.95fr) 1fr;gap:52px;align-items:center;
  margin-top:40px}
@media (max-width:900px){.ringwrap{grid-template-columns:1fr;gap:34px}}
.ringbox{position:relative;max-width:430px;margin:0 auto;width:100%}
.ring{width:100%;display:block;--ring:var(--line-strong);--ringbg:var(--surface)}
.ring .rl{font-family:var(--f-mono);font-weight:700;font-size:26px;fill:var(--text)}
.ring .rj{font-size:15px;font-weight:700;fill:var(--text);font-family:var(--f-body)}
.ring .re{font-family:var(--f-mono);font-size:9.5px;fill:var(--faint);letter-spacing:.06em}
.ring .rn{font-family:var(--f-mono);font-size:11px;fill:var(--accent);letter-spacing:.1em;font-weight:700}
.ringmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:31%;
  filter:var(--markfilter,none);opacity:.92}
/* numerals */
.ev-band b{font-size:clamp(30px,4.6vw,42px);letter-spacing:-.02em}
.ev-band > div{position:relative}
.ev-band > div::after{content:"";position:absolute;left:24px;bottom:16px;width:26px;height:2px;
  background:var(--accent)}
.ev-band span{display:block;margin-top:14px}
/* case study kanji numerals */
.seg h4{display:flex;align-items:baseline;gap:11px}
.seg .kj{font-family:var(--f-display);font-size:21px;font-weight:800;color:var(--accent);
  line-height:1;opacity:.85}
/* note feed */
.feed{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:34px}
@media (max-width:760px){.feed{grid-template-columns:1fr}}
.ncard{position:relative;min-height:420px;background:var(--surface);border:1px solid var(--line)}
.nembed{position:relative;z-index:2;width:100%;height:420px;border:0;display:block}
.nfall{position:absolute;inset:0;z-index:1;padding:26px;display:flex;flex-direction:column;gap:12px;
  text-decoration:none;transition:.15s}
.nfall:hover{background:var(--accent-soft)}
.nfall .d{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:var(--faint)}
.nfall h3{font-family:var(--f-display);font-weight:600;font-size:17.5px;line-height:1.65;
  word-break:auto-phrase}
.nfall p{font-size:13.5px;color:var(--muted);line-height:1.85;word-break:auto-phrase}
.nfall .go{margin-top:auto;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:var(--accent)}
:root{--markfilter:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--markfilter:invert(1) brightness(1.15)}}
:root[data-theme="dark"]{--markfilter:invert(1) brightness(1.15)}


/* news */
.ticker{background:var(--ink-2);color:var(--on-ink);border-top:1px solid var(--on-ink-line)}
.ticker .wrap{display:flex;align-items:center;gap:18px;padding-top:15px;padding-bottom:15px;font-size:13.5px}
.ticker .tl{font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;color:var(--accent-ink);flex:none}
.ticker .td{font-family:var(--f-mono);font-size:11px;color:var(--on-ink-muted);flex:none}
.ticker a{color:var(--on-ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ticker a:hover{color:var(--accent-ink)}
.ticker .ta{margin-left:auto;flex:none;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;
  color:var(--on-ink-muted)}
@media (max-width:760px){.ticker .ta,.ticker .td{display:none}}
.news{list-style:none;margin:28px 0 0;padding:0;border-top:1px solid var(--line)}
.news li{display:flex;gap:20px;align-items:baseline;padding:17px 2px;border-bottom:1px solid var(--line)}
@media (max-width:640px){.news li{flex-wrap:wrap;gap:8px 14px}}
.news .nd{font-family:var(--f-mono);font-size:11.5px;color:var(--faint);width:5.4em;flex:none}
.news .nc{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;color:var(--accent);
  border:1px solid var(--accent);padding:1px 8px;flex:none}
.news a{font-size:15.5px;font-weight:700;text-decoration:none;word-break:auto-phrase}
.news a:hover{color:var(--accent)}
/* giant section numerals */
.mk{position:relative}
.bignum{position:absolute;right:0;top:-46px;font-family:var(--f-mono);font-weight:700;
  font-size:96px;line-height:1;color:var(--text);opacity:.05;pointer-events:none;letter-spacing:-.04em}
.band--ink .bignum{color:var(--on-ink);opacity:.07}
@media (max-width:820px){.bignum{font-size:64px;top:-28px}}
/* sticky CTA */
.scta{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ink);
  border-top:2px solid var(--accent);transform:translateY(110%);transition:transform .32s ease}
.scta.on{transform:none}
.scta .wrap{display:flex;align-items:center;gap:20px;padding-top:13px;padding-bottom:13px}
.scta p{color:var(--on-ink);font-size:14.5px;font-weight:700;word-break:auto-phrase}
.scta .btn{flex:none}
.scta .btn--primary{margin-left:auto}
.scta .btn--ghost{border-color:var(--on-ink-line);color:var(--on-ink)}
@media (max-width:700px){.scta p{font-size:13px}.scta .btn{padding:10px 16px;font-size:13px}}
@media (prefers-reduced-motion:reduce){.scta{transition:none}}


/* diagram */
.fig{margin:34px 0 0;background:var(--surface);border:1px solid var(--line);padding:30px 28px 24px}
.fig svg{width:100%;height:auto;display:block;color:var(--text);overflow:visible}
.fig figcaption{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:13.5px;
  color:var(--muted);line-height:1.85;word-break:auto-phrase}
.fig figcaption b{color:var(--text)}
.dp{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;fill:var(--faint)}
.dpa{fill:var(--accent)}
.dl{font-size:13px;font-weight:700;fill:var(--text);font-family:var(--f-body)}
.ds{font-size:10.5px;fill:var(--muted);font-family:var(--f-body)}
.da{font-size:11.5px;fill:var(--muted);font-family:var(--f-body)}
.dn{font-family:var(--f-mono);font-size:12px;fill:var(--faint);letter-spacing:.06em}
.dna{fill:var(--accent);font-weight:700}
/* statement band */
.stmt{background:var(--ink);color:var(--on-ink);padding:78px 0;position:relative;overflow:hidden}
.stmt .watermark{right:auto;left:-16%;top:-52%;width:min(620px,58vw);opacity:.05}
.stmt .wrap{position:relative}
.stmt p{font-family:var(--f-display);font-weight:600;font-size:clamp(21px,3.4vw,34px);line-height:1.75;
  max-width:22em;word-break:auto-phrase}
.stmt p b{color:var(--accent-ink);font-weight:800}
.stmt .src{margin-top:26px;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.2em;
  color:var(--on-ink-muted)}

/* notice */
.notice{background:var(--accent);color:#fff;font-size:13px;line-height:1.6;padding:10px 24px;
  text-align:center;font-weight:500;letter-spacing:.02em}
.notice b{font-weight:700}

/* header */
.head{position:sticky;top:0;z-index:20;background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.head .wrap{display:flex;align-items:center;gap:24px;height:64px}
.mark{font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:.14em;white-space:nowrap}
.mark span{color:var(--accent)}
.nav{display:flex;gap:22px;margin-left:auto;font-size:13.5px;color:var(--muted)}
.nav a{text-decoration:none}
.nav a:hover{color:var(--accent)}
@media (max-width:820px){.nav{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:2px;
  font-size:15px;font-weight:700;text-decoration:none;border:1px solid transparent;transition:.15s}
.btn--primary{background:var(--accent);color:#fff}
.btn--primary:hover{filter:brightness(1.08)}
.btn--ghost{border-color:var(--on-ink-line);color:var(--on-ink)}
.btn--ghost:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
.btn--line{border-color:var(--line-strong);color:var(--text)}
.btn--line:hover{border-color:var(--accent);color:var(--accent)}
.btn--sm{padding:9px 16px;font-size:13px}
.btn .arw{font-family:var(--f-mono);font-weight:400}

/* hero */
.hero{background:var(--ink);color:var(--on-ink);padding:96px 0 0;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 80% at 78% 8%, rgba(199,59,39,.20), transparent 58%)}
.hero .wrap{position:relative}
.hero .q{font-family:var(--f-display);font-weight:800;letter-spacing:.02em;
  font-size:clamp(30px,5.4vw,58px);line-height:1.4;margin:0 0 26px}
.hero .q em{font-style:normal;color:var(--accent-ink)}
.hero .a{font-size:clamp(19px,2.4vw,26px);font-weight:900;line-height:1.6;margin:0 0 26px;max-width:22em;word-break:auto-phrase}
.hero .lede{max-width:36em;margin-bottom:38px}
.cta-row{display:flex;flex-wrap:wrap;gap:14px}
.proof{margin-top:76px;border-top:1px solid var(--on-ink-line);padding:22px 0 26px;
  display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 30px}
.proof .k{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.2em;color:var(--on-ink-muted);
  text-transform:uppercase;width:100%}
.proof li{list-style:none;font-size:14px;font-weight:500;color:var(--on-ink)}
.proof--2{margin-top:0;border-top:0;padding-top:0;padding-bottom:14px}
.proof--2 + .proof--2{padding-top:0}
.proof--2 li{font-size:13.5px;letter-spacing:.01em}
.proof .gold li{color:#D9B45C}
.proof ul{display:flex;flex-wrap:wrap;gap:12px 34px;margin:0;padding:0}
.titles .yr{font-family:var(--f-mono);font-size:11px;color:var(--faint);letter-spacing:.06em;margin-left:.6em;white-space:nowrap}

/* symptoms */
.sym-h{font-family:var(--f-display);font-weight:800;font-size:clamp(22px,3.2vw,34px);line-height:1.5;
  max-width:20em;margin-bottom:36px}
.sym{display:grid;gap:0;border-top:1px solid var(--line);max-width:52em}
.sym li{list-style:none;display:flex;gap:18px;padding:20px 4px;border-bottom:1px solid var(--line);
  font-size:16.5px;font-weight:500;align-items:baseline;word-break:auto-phrase}
.sym .no{font-family:var(--f-mono);font-size:12px;color:var(--accent);font-weight:500;
  padding-top:4px;flex:none}
.sym b{font-weight:700;background:linear-gradient(transparent 62%, var(--accent-soft) 62%)}
.sym-close{margin-top:32px;font-size:17px;font-weight:700;max-width:34em;line-height:1.8}

/* root steps */
.root{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:44px}
@media (max-width:860px){.root{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.root{grid-template-columns:1fr}}
.step{background:var(--surface);padding:26px 22px 30px;display:flex;flex-direction:column;gap:10px}
.step .ltr{font-family:var(--f-mono);font-weight:700;font-size:34px;line-height:1;color:var(--accent)}
.step .en{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;color:var(--faint)}
.step h3{font-size:16px;font-weight:900}
.step p{font-size:14px;color:var(--muted);line-height:1.8}
.biotope{margin-top:34px;border-left:3px solid var(--accent);padding:6px 0 6px 22px;max-width:44em}
.biotope p{font-size:15px;color:var(--muted)}
.biotope b{color:var(--text)}

/* services */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.card--wide{grid-column:1 / -1}
@media (max-width:900px){.card--wide{grid-column:auto}}
@media (max-width:900px){.svc{grid-template-columns:1fr}}
.card{background:var(--surface);border:1px solid var(--line);padding:28px 24px 26px;
  display:flex;flex-direction:column;gap:14px}
.card h3{font-size:19px}
.card .num{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;color:var(--accent)}
.card p{font-size:14.5px;color:var(--muted)}
.spec{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:8px}
.spec div{display:flex;gap:14px;font-size:13.5px}
.spec dt{color:var(--faint);flex:none;width:5.2em}
.spec dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.tag{display:inline-block;font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;
  border:1px solid var(--accent);color:var(--accent);padding:1px 6px;margin-left:6px;vertical-align:2px}
.note-line{margin-top:30px;font-size:14.5px;color:var(--muted);max-width:44em;
  border-top:1px solid var(--line);padding-top:20px}
.note-line b{color:var(--text)}

.ev-band{display:flex;flex-wrap:wrap;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:30px}
.ev-band > div{background:var(--surface);padding:20px 24px;flex:1;min-width:170px}
.ev-band b{display:block;font-family:var(--f-mono);font-weight:700;font-size:30px;line-height:1.2;
  font-variant-numeric:tabular-nums}
.ev-band span{font-size:12.5px;color:var(--muted)}

/* case */
.case{background:var(--surface);border:1px solid var(--line);margin-top:40px}
.case-head{padding:24px 28px;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;
  gap:8px 18px;align-items:baseline}
.case-head h3{font-size:21px}
.case-head .meta{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;color:var(--faint);margin-left:auto}
.case-body{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
@media (max-width:820px){.case-body{grid-template-columns:1fr}}
.seg{background:var(--surface);padding:24px 28px 26px}
.seg h4{font-size:13px;letter-spacing:.06em;color:var(--accent);margin-bottom:12px;font-weight:700}
.seg p{font-size:15px;line-height:1.9}
.seg .qt{font-family:var(--f-display);font-weight:600;font-size:17px;line-height:1.8}
.seg ol{margin:0;padding-left:1.3em;font-size:14.5px;line-height:1.9;color:var(--muted)}
.seg ol b{color:var(--text)}
.pending{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}
@media (max-width:820px){.pending{grid-template-columns:1fr}}
.pending div{border:1px dashed var(--line-strong);padding:18px 20px;color:var(--faint);font-size:14px}
.pending b{display:block;color:var(--muted);font-weight:700;font-size:15px;margin-bottom:4px}

/* doors */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--on-ink-line);
  border:1px solid var(--on-ink-line);margin-top:44px}
.doors--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:900px){.doors,.doors--2{grid-template-columns:1fr}}
.asklist{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:7px}
.asklist li{font-size:12.5px;color:var(--on-ink-muted);border:1px solid var(--on-ink-line);
  padding:4px 11px;border-radius:2px}
.substep{margin-top:16px;padding-top:14px;border-top:1px dashed var(--on-ink-line);display:grid;gap:5px}
.substep span{font-size:12.5px;color:var(--on-ink-muted)}
.substep b{font-size:14.5px;color:var(--on-ink)}
.door{background:var(--ink-2);padding:28px 24px;display:flex;flex-direction:column;gap:12px}
.door .st{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;color:var(--accent-ink)}
.door h3{font-size:19px}
.door p{font-size:14.5px;color:var(--on-ink-muted)}
.door .price{margin-top:auto;padding-top:16px;border-top:1px solid var(--on-ink-line);
  font-size:22px;font-weight:900;font-variant-numeric:tabular-nums}
.door .price small{font-size:12px;font-weight:500;color:var(--on-ink-muted);margin-left:8px}
.door--pick{background:var(--ink);outline:2px solid var(--accent);outline-offset:-2px}
.door-note{margin-top:26px;font-family:var(--f-display);font-weight:600;font-size:19px;
  color:var(--on-ink);border-left:3px solid var(--accent-ink);padding-left:20px}

.faq{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);margin-top:30px}
.faq > div{background:var(--surface);padding:22px 26px;display:grid;grid-template-columns:17em 1fr;gap:24px}
@media (max-width:860px){.faq > div{grid-template-columns:1fr;gap:8px}}
.faq dt{font-weight:900;font-size:16px;line-height:1.6;word-break:auto-phrase}
.faq dd{margin:0;font-size:14.5px;color:var(--muted);line-height:1.9;word-break:auto-phrase}

.rep-head{display:flex;gap:26px;align-items:flex-start}
@media (max-width:520px){.rep-head{flex-direction:column;gap:18px}}
.rep-photo{width:220px;height:auto;flex:none;object-fit:cover;filter:grayscale(1) contrast(1.04);
  transition:filter .25s}
.rep-photo:hover{filter:none}
.rep-en{font-family:var(--f-mono);font-size:11px;letter-spacing:.22em;color:var(--faint);margin-top:10px}

/* rep */
.rep{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start}
@media (max-width:860px){.rep{grid-template-columns:1fr;gap:32px}}
.titles{width:100%;border-collapse:collapse;font-size:14.5px}
.titles th,.titles td{text-align:left;padding:11px 0;border-bottom:1px solid var(--line);vertical-align:top}
.titles th{font-weight:700;width:11em;color:var(--muted)}
.titles th.grp{width:auto;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.2em;
  color:var(--accent);padding-top:22px;border-bottom:1px solid var(--accent)}
.titles tr:first-child th.grp{padding-top:0}
.titles .hl{background:linear-gradient(transparent 60%, var(--accent-soft) 60%);font-weight:700}
.repquote{font-family:var(--f-display);font-weight:600;font-size:19px;line-height:1.95;
  border-left:3px solid var(--accent);padding-left:22px}

/* open items */
.open{border:1px solid var(--line-strong);background:var(--surface-2);padding:30px 28px}
.open h2{font-size:18px;margin-bottom:8px}
.open p{font-size:14px;color:var(--muted);margin-bottom:18px}
.open ul{margin:0;padding:0;display:grid;gap:10px}
.open li{list-style:none;display:flex;gap:12px;font-size:14.5px;align-items:baseline}
.chip{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;border:1px solid var(--accent);
  color:var(--accent);padding:1px 6px;flex:none}
.chip--g{border-color:var(--line-strong);color:var(--muted)}
.chip--g{border-color:var(--line-strong);color:var(--muted)}

/* footer */
.foot{background:var(--ink);color:var(--on-ink-muted);padding:44px 0;font-size:13px}
.foot .wrap{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:baseline}
.foot .mark{color:var(--on-ink);font-size:17px}
h2.sec{font-size:clamp(24px,3.4vw,34px);line-height:1.45}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ===== multi-page additions ===== */
.page-hero{background:var(--ink);color:var(--on-ink);padding:64px 0 56px;position:relative;overflow:hidden}
.page-hero .wrap{position:relative}
.page-hero h1{font-family:var(--f-display);font-weight:800;font-size:clamp(28px,4.6vw,44px);line-height:1.45}
.page-hero .lede{max-width:38em;color:var(--on-ink-muted);font-size:15.5px;margin-top:18px}
.crumb{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--on-ink-muted);
  margin-bottom:18px;display:block}
.crumb a{color:var(--on-ink-muted);text-decoration:none}
.crumb a:hover{color:var(--accent-ink)}
.prose{max-width:44em}
.prose p{margin-bottom:18px;word-break:auto-phrase}
.prose h3{font-size:19px;margin:34px 0 12px}
.dl2{display:grid;grid-template-columns:11em 1fr;gap:0;border-top:1px solid var(--line);max-width:52em}
@media (max-width:640px){.dl2{grid-template-columns:1fr}}
.dl2 dt{font-weight:700;font-size:14px;color:var(--muted);padding:16px 0;border-bottom:1px solid var(--line)}
.dl2 dd{margin:0;font-size:15.5px;padding:16px 0;border-bottom:1px solid var(--line);word-break:auto-phrase}
@media (max-width:640px){.dl2 dt{border-bottom:0;padding-bottom:2px}}
.cta-band{background:var(--ink);color:var(--on-ink);padding:56px 0}
.cta-band h2{font-size:clamp(21px,3.2vw,28px)}
.cta-band p{color:var(--on-ink-muted);margin-top:14px;max-width:38em;word-break:auto-phrase}
.svc-detail{border-top:1px solid var(--line);padding:38px 0}
.svc-detail:first-of-type{border-top:0}
.svc-detail h2{font-size:clamp(21px,3vw,27px);margin-bottom:14px}
.svc-detail .num{font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;color:var(--accent);
  display:block;margin-bottom:10px}
.svc-detail p{font-size:15.5px;color:var(--muted);line-height:1.95;max-width:44em;word-break:auto-phrase}
.svc-detail p b{color:var(--text)}
.workhero{display:grid;grid-template-columns:1fr 260px;gap:44px;align-items:start}
@media (max-width:820px){.workhero{grid-template-columns:1fr;gap:24px}}
.workmeta{border:1px solid var(--line);background:var(--surface);padding:20px 22px;display:grid;gap:12px}
.workmeta div{display:grid;gap:3px}
.workmeta dt{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;color:var(--faint)}
.workmeta dd{margin:0;font-size:14.5px;font-weight:700;word-break:auto-phrase}

/* ---------------------------------------------------------- 実績の個別ページ */
.csmeta{display:grid;grid-template-columns:6.5em 1fr;gap:10px 22px;margin:0 0 44px;
  padding-bottom:26px;border-bottom:1px solid var(--line);font-size:14.5px}
.csmeta dt{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;color:var(--faint);
  padding-top:5px}
.csmeta dd{margin:0;font-weight:700}
.csmeta dd.wcats{display:flex;flex-wrap:wrap;gap:7px}
.wcat{font-family:var(--f-body);font-size:12px;font-weight:500;color:var(--muted);
  border:1px solid var(--line-strong);border-radius:99px;padding:3px 12px}
@media(max-width:560px){.csmeta{grid-template-columns:1fr;gap:2px 0}
  .csmeta dt{padding-top:14px}}

.cslist{display:flex;flex-direction:column;gap:0}
.cs{display:grid;grid-template-columns:auto 1fr;gap:26px;padding:32px 0;
  border-top:1px solid var(--line)}
.cs:first-child{border-top:0;padding-top:0}
.csn{font-family:var(--f-mono);font-size:12px;font-weight:700;color:var(--faint);
  letter-spacing:.12em;padding-top:7px}
.cs h2{font-family:var(--f-display);font-weight:800;font-size:clamp(19px,2.6vw,23px);
  margin:0 0 14px;line-height:1.5}
.cs p{margin:0;font-size:16px;line-height:1.95;word-break:auto-phrase}
.cs--hi{background:var(--accent-soft);margin:0 -28px;padding:32px 28px;border-radius:3px;
  border-top-color:transparent}
.cs--hi .csn,.cs--hi h2{color:var(--accent)}
@media(max-width:640px){.cs{grid-template-columns:1fr;gap:6px}
  .cs--hi{margin:0 -18px;padding:26px 18px}}

ol.csdid{margin:0;padding:0;list-style:none;counter-reset:d;
  display:flex;flex-direction:column;gap:18px}
ol.csdid li{counter-increment:d;position:relative;padding-left:2.1em;font-size:15.5px;
  line-height:1.9;word-break:auto-phrase}
ol.csdid li::before{content:counter(d);position:absolute;left:0;top:.15em;
  font-family:var(--f-mono);font-size:11px;font-weight:700;color:var(--accent);
  border:1px solid var(--accent);border-radius:99px;width:1.5em;height:1.5em;
  display:grid;place-items:center}
ol.csdid b{display:block;font-weight:900;margin-bottom:2px}

ul.csres{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px}
ul.csres li{font-size:16px;line-height:1.95;padding-left:1.1em;position:relative;
  word-break:auto-phrase}
ul.csres li::before{content:"";position:absolute;left:0;top:.72em;width:5px;height:5px;
  background:var(--accent);border-radius:99px}
ul.csevi{margin:24px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
ul.csevi li{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.03em;
  background:var(--surface-2);border:1px solid var(--line);border-radius:2px;padding:6px 12px;
  color:var(--ink)}

.csnote{border-left:3px solid var(--accent);padding:6px 0 6px 26px;max-width:46em}
.csnote .k{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.18em;color:var(--accent);
  display:block;margin-bottom:10px}
.csnote p{margin:0;font-size:15px;line-height:1.95;color:var(--muted);word-break:auto-phrase}

.wlinks{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;
  margin-top:32px;background:var(--line)}
.wlink{background:var(--surface);padding:22px 24px;text-decoration:none;color:var(--ink);
  display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:start;
  transition:background .16s}
.wlink:hover{background:var(--surface-2)}
.wlink b{font-size:15.5px;font-weight:900;line-height:1.55;word-break:auto-phrase}
.wlink > span:not(.arw){grid-column:1;font-size:12.5px;color:var(--muted)}
.wlink em{grid-column:1;font-style:normal;font-family:var(--f-mono);font-size:11px;
  color:var(--accent);margin-top:8px;letter-spacing:.02em}
.wlink .arw{grid-row:1;grid-column:2;color:var(--accent);font-size:15px}


/* ------------------------------------------- 実績一覧（jisseki.html より統合）
   2026-09-10: 一覧ページの本文だけを取り込んでいて、ページ専用CSSが
   抜け落ちていた。以後は共通CSSに置く。 */
.head a.back{margin-left:auto;font-size:13px;color:var(--muted);text-decoration:none}
.head a.back:hover{color:var(--accent)}
/* hero + evidence */
.hero{background:var(--ink);color:var(--on-ink);padding:64px 0 0}
.hero h1{font-family:var(--f-display);font-weight:800;font-size:clamp(28px,4.6vw,44px);line-height:1.45}
.awards{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--on-ink-line);
  border:1px solid var(--on-ink-line);margin-top:44px}
@media (max-width:900px){.awards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.awards{grid-template-columns:1fr}}
.aw{background:var(--ink-2);padding:22px 20px 24px;display:flex;flex-direction:column;gap:7px}
.aw .k{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;color:var(--gold)}
.aw b{font-size:16px;line-height:1.5;word-break:auto-phrase}
.aw span{font-size:13px;color:var(--on-ink-muted);line-height:1.7}
.stats{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--on-ink-line);margin-top:0;
  padding:26px 0 40px}
.stat{flex:1;min-width:150px;padding-right:24px}
.stat b{display:block;font-family:var(--f-mono);font-weight:700;font-size:clamp(24px,3.4vw,34px);
  color:var(--on-ink);font-variant-numeric:tabular-nums;line-height:1.2}
.stat span{font-size:12.5px;color:var(--on-ink-muted)}
/* clients */
.band{padding:64px 0}
.clients{display:grid;grid-template-columns:8.5em 1fr;gap:14px 22px;margin-top:26px;font-size:15px}
@media (max-width:640px){.clients{grid-template-columns:1fr;gap:4px 0}}
.clients dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--faint);padding-top:6px}
.clients dd{margin:0;display:flex;flex-wrap:wrap;gap:10px 26px}
.clients dd span{font-weight:700;padding:3px 0;white-space:nowrap}
@media(max-width:640px){.clients dd{gap:8px 18px}.clients dd span{white-space:normal}}
/* filters */
.filters{display:flex;flex-wrap:wrap;gap:9px;margin:26px 0 8px}
.f{font-family:inherit;font-size:13.5px;font-weight:700;padding:9px 16px;border:1px solid var(--line-strong);
  background:transparent;color:var(--muted);cursor:pointer;border-radius:2px;transition:.12s}
.f:hover{border-color:var(--accent);color:var(--accent)}
.f[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}
.f .c{font-family:var(--f-mono);font-size:11px;opacity:.7;margin-left:7px}
.count{font-size:13px;color:var(--faint);font-family:var(--f-mono);margin-bottom:20px;display:block}
/* cards */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:980px){.grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:660px){.grid{grid-template-columns:1fr}}
.item{background:var(--surface);border:1px solid var(--line);padding:22px 22px 24px;
  display:flex;flex-direction:column;gap:11px}
.item .top{display:flex;gap:10px;align-items:baseline;font-family:var(--f-mono);font-size:10.5px;
  letter-spacing:.1em;color:var(--faint)}
.item .top .cat{color:var(--accent)}
.item h3{font-size:17px;line-height:1.5}
.item .cl{font-size:13px;color:var(--muted);font-weight:700}
.item .ask{border-left:3px solid var(--accent);padding-left:14px;font-size:14.5px;line-height:1.8;
  color:var(--text);word-break:auto-phrase}
.item .ev{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);display:flex;
  flex-wrap:wrap;gap:6px}
.badge{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;border:1px solid var(--gold);
  color:var(--gold);padding:2px 8px}
.badge--n{border-color:var(--line-strong);color:var(--muted)}
/* media + books */
.two{display:grid;grid-template-columns:1.15fr 1fr;gap:44px}
@media (max-width:860px){.two{grid-template-columns:1fr;gap:34px}}
.mlist{display:grid;gap:8px;margin-top:20px}
.mlist div{display:flex;gap:12px;font-size:14.5px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.mlist .src{font-weight:700;flex:none;width:9.5em;color:var(--muted);font-size:13px;padding-top:2px}
.mlist .st{color:var(--accent);flex:none;font-family:var(--f-mono);font-size:11px;padding-top:4px}
.books{display:grid;gap:14px;margin-top:20px}
.book{border:1px solid var(--line);background:var(--surface);padding:20px}
.book b{display:block;font-family:var(--f-display);font-size:17px;font-weight:800;margin-bottom:6px}
.book .pub{font-family:var(--f-mono);font-size:11px;color:var(--faint);letter-spacing:.08em}
.book p{font-size:13.5px;color:var(--muted);margin-top:8px;line-height:1.8}
/* cta + open */
.cta{background:var(--ink);color:var(--on-ink);padding:44px 0}
.cta h2{font-size:clamp(21px,3.2vw,28px)}
.cta p{color:var(--on-ink-muted);margin-top:14px;max-width:38em;word-break:auto-phrase}
.row{display:flex;flex-wrap:wrap;gap:13px;margin-top:26px}

/* --------------------------------------- 2026-09-10 レイアウト修正
   ① 暗い背景の上の本文が薄く読めなかった
   ② カード本文が狭い段で不自然に折り返していた（auto-phrase を外す）
   ③ カードの高さが揃わず、短いカードに空白が大きく出ていた            */
.band--ink .lede, .page-hero .lede{color:#CFC5BF}
.cta-band p{color:#D6CCC6}
.hero .sub, .band--ink p.sub{color:#CFC5BF}

.card .cl, .card > p, .item p{word-break:normal;line-break:strict}
.grid{align-items:start}
.card{height:auto}

/* 証拠バッジ：枠線が出ず、隣同士が繋がって読めていなかった（2026-09-10 修正） */
.item .ev{gap:6px 8px}
.badge{border-radius:2px;padding:3px 9px;background:var(--surface);white-space:nowrap;
  font-size:10.5px;line-height:1.5}
.badge--n{background:var(--surface-2)}
@media(max-width:520px){.badge{white-space:normal}}

/* 個別ページを持つ案件のカードは、記事へのリンクを出す */
.item .more{margin-top:12px;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;
  color:var(--accent);text-decoration:none;display:inline-flex;gap:6px;align-items:center;
  border-bottom:1px solid transparent}
.item .more:hover{border-bottom-color:var(--accent)}

/* スマホ：下部の固定バーの文が不自然に折り返していた（2026-09-10 修正）
   狭い画面では文を隠し、ボタンだけにする */
@media (max-width:560px){
  .scta .wrap{gap:8px;justify-content:stretch}
  .scta p{display:none}
  .scta .btn{flex:1;text-align:center;white-space:nowrap}
  .clients dd span{font-size:13.5px}
}
