/* KSK Aurum — theme.css
   02_design/PREVIEW_ALL_PAGES.html の <style> を、プレビュー専用UI（.pv-bar / .pg[hidden]）だけ
   取り除いてそのまま移したものです。値は1つも変更していません。 */
/* ===== KSK Aurum tokens (02_design/tokens.css) ===== */
:root{
  color-scheme:light;
  --paper:#FFFFFF;--paper-2:#FAF8F3;
  --ink:#1A1A1A;--ink-2:#4A4A4A;--ink-3:#6F6A60;
  --rule:#E6E0D2;
  --gold:#85661C;--gold-line:#C9A85C;--gold-deep:#7D5F18;--gold-soft:#F4ECD9;
  --good:#1F6B4A;--crit:#A33A2A;
  --font-display:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
  --font-body:"Zen Kaku Gothic New","Hiragino Sans","Noto Sans JP",system-ui,sans-serif;
  --shadow:0 1px 2px rgba(26,26,26,.06),0 12px 32px -16px rgba(26,26,26,.18);
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.8;line-break:strict;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding-bottom:64px}
@media(min-width:900px){body{font-size:17px;padding-bottom:0}}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold);text-underline-offset:3px}
h1,h2,h3{font-family:var(--font-display);font-weight:900;line-height:1.3;margin:0;letter-spacing:.01em;text-wrap:balance;word-break:auto-phrase}
p{margin:0 0 16px;max-width:36em;text-wrap:pretty}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.container{max-width:1200px;margin:0 auto;padding:0 24px}
.section{padding:64px 0}
@media(min-width:900px){.section{padding:128px 0}}
.section--alt{background:var(--paper-2)}
.eyebrow{font-size:13px;letter-spacing:.16em;font-weight:700;color:var(--gold);margin:0 0 12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;word-break:keep-all}
.eyebrow::before{content:"";width:32px;height:1px;background:var(--gold-line)}
.sec-head{margin:0 0 48px;max-width:40em}
.sec-head h2{font-size:31px}
@media(min-width:900px){.sec-head h2{font-size:39px}}
.sec-head .lead{color:var(--ink-2);margin:16px 0 0}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 24px;border-radius:4px;font-weight:700;font-size:16px;text-decoration:none;border:1px solid transparent;transition:background var(--ease) 200ms,color 200ms,transform 200ms;white-space:nowrap;cursor:pointer}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:var(--gold-deep)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--paper-2)}
.btn:active{transform:translateY(1px)}

/* header */
.header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.header .container{display:flex;align-items:center;justify-content:space-between;height:56px;gap:24px}
@media(min-width:900px){.header .container{height:72px}}
.logo{font-family:var(--font-display);font-weight:900;font-size:17px;letter-spacing:.06em;color:var(--ink);text-decoration:none;display:flex;align-items:baseline;gap:10px;white-space:nowrap}
@media(min-width:900px){.logo{font-size:20px}}
.logo small{font-family:var(--font-body);font-weight:500;font-size:11px;letter-spacing:.12em;color:var(--ink-3);display:none}
@media(min-width:480px){.logo small{display:inline}}
.nav{display:none;gap:28px;font-size:14px;font-weight:500}
.nav a{color:var(--ink);text-decoration:none}
.nav a:hover{color:var(--gold)}
@media(min-width:1080px){.nav{display:flex}}
.header-cta{display:none;gap:8px}
@media(min-width:900px){.header-cta{display:flex}}
.header-cta .btn{height:40px;padding:0 18px;font-size:14px}
.menu-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:1px solid var(--rule);border-radius:4px;height:40px;padding:0 14px;font-family:inherit;font-size:14px;color:var(--ink)}
@media(min-width:1080px){.menu-btn{display:none}}

/* mobile bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1.4fr 1fr;background:var(--paper);border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom)}
.mbar a{height:56px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;text-decoration:none;color:var(--ink);border-right:1px solid var(--rule)}
.mbar a:last-child{border-right:0}
.mbar a.primary{background:var(--ink);color:#fff}
@media(min-width:900px){.mbar{display:none}}

/* hero */
.hero{padding:48px 0 56px;border-bottom:1px solid var(--rule)}
@media(min-width:900px){.hero{padding:96px 0 88px}}
.hero-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center}
.hero-grid>*{min-width:0}
@media(min-width:900px){.hero-grid{grid-template-columns:7fr 5fr;gap:64px}}
.hero h1{font-size:39px;text-wrap:pretty;word-break:auto-phrase;overflow-wrap:break-word}
/* H1では .nb（折り返し禁止）を使わない。1行が列幅を超えると溢れる。改行は <br> で指定する
   word-break:auto-phrase は日本語を文節で折り返す指定。以前の overflow-wrap:anywhere は
   「AI導入｜支援」「AIコン｜サルティング」のように語の途中で改行していた（1440pxで13件・375pxで18件を実測）。
   auto-phrase に変えて 1440px 1件・375px 7件まで減り、はみ出しは両幅とも0のまま。
   auto-phrase 未対応のブラウザは word-break:normal 相当に戻り、従来と同じ挙動になる。 */
@media(min-width:900px){.hero h1{font-size:49px;line-height:1.25}}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero .sub{font-size:17px;color:var(--ink-2);margin:24px 0 32px;line-height:1.85}
@media(min-width:900px){.hero .sub{font-size:18px}}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.hero-note{font-size:13px;color:var(--ink-3);margin:12px 0 0}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);margin:40px 0 0;border-top:1px solid var(--rule)}
.kpi{padding:20px 16px 0 0;border-right:1px solid var(--rule)}
.kpi:last-child{border-right:0;padding-right:0}
.kpi:not(:first-child){padding-left:16px}
.kpi b{display:block;font-family:var(--font-display);font-weight:900;font-size:31px;line-height:1.1;font-variant-numeric:tabular-nums}
@media(min-width:900px){.kpi b{font-size:39px}}
.kpi b small{font-family:var(--font-body);font-size:14px;font-weight:700;margin-left:3px}
.kpi span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:6px;line-height:1.5}
@media(max-width:599px){.kpis{grid-template-columns:1fr;border-top:1px solid var(--rule)}.kpi{display:flex;align-items:baseline;gap:14px;padding:12px 0;border-right:0;border-bottom:1px solid var(--rule)}.kpi:not(:first-child){padding-left:0}.kpi:last-child{border-bottom:0}.kpi b{font-size:28px;white-space:nowrap;min-width:6.2em}.kpi span{margin:0}}

/* instrument card (signature visual: 棚卸しシート) */
.instrument{background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:24px;box-shadow:var(--shadow)}
.instrument-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;border-bottom:1px solid var(--gold-line);padding-bottom:12px;margin-bottom:12px}
.instrument-head b{font-family:var(--font-display);font-size:16px;font-weight:700}
.instrument-head span{font-size:12px;color:var(--ink-3);letter-spacing:.06em}
.instrument .tw-in{overflow-x:auto}
.instrument table{width:100%;min-width:360px;border-collapse:collapse;font-size:13.5px}
.instrument td:first-child{white-space:nowrap}
.instrument th{font-size:11.5px;color:var(--ink-3);font-weight:500;text-align:left;padding:6px 4px;border-bottom:1px solid var(--rule);letter-spacing:.04em}
.instrument td{padding:10px 4px;border-bottom:1px solid var(--rule);vertical-align:middle}
.instrument td.n,.instrument th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.instrument td.before{color:var(--crit)}
.instrument td.after{color:var(--good);font-weight:700}
.instrument tfoot td{border-bottom:0;padding-top:14px;font-weight:700}
.instrument tfoot .total{font-family:var(--font-display);font-size:25px;color:var(--gold);font-weight:900}
.instrument .cap{font-size:12px;color:var(--ink-3);margin:12px 0 0;line-height:1.5}

/* proof band */
.proof{border-bottom:1px solid var(--rule);background:var(--paper-2)}
.proof .container{display:flex;flex-wrap:wrap;gap:8px 32px;align-items:center;justify-content:space-between;padding-top:16px;padding-bottom:16px;font-size:13.5px;color:var(--ink-2)}
.proof ul{display:flex;flex-wrap:wrap;gap:8px 28px;font-weight:700;color:var(--ink)}
.proof li::before{content:"◆";color:var(--gold-line);margin-right:8px;font-size:10px;vertical-align:2px}
.proof .note{font-size:12.5px;color:var(--ink-3)}

/* problems */
.grid-2{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:760px){.grid-2{grid-template-columns:1fr 1fr;gap:24px}}
.grid-3{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:760px){.grid-3{grid-template-columns:repeat(3,1fr);gap:24px}}
.grid-4{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:760px){.grid-4{grid-template-columns:1fr 1fr;gap:24px}}
@media(min-width:1080px){.grid-4{grid-template-columns:repeat(4,1fr)}}
.card{background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:32px;transition:transform 200ms var(--ease),box-shadow 200ms;display:flex;flex-direction:column}
.card .price{margin-top:auto;padding-top:16px}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.card h3{font-size:20px;margin:0 0 12px;line-height:1.5}
.card p{font-size:15px;color:var(--ink-2);margin:0}
.card .num{font-family:var(--font-display);font-weight:900;font-size:25px;color:var(--gold);line-height:1;margin:0 0 16px;font-variant-numeric:tabular-nums}
.card .tag{display:inline-block;align-self:flex-start;font-size:11.5px;font-weight:700;letter-spacing:.08em;color:var(--gold);background:var(--gold-soft);padding:2px 10px;border-radius:999px;margin:0 0 14px}
.card .price{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--ink)}
.card .price small{font-family:var(--font-body);font-size:13px;color:var(--ink-3);font-weight:500;margin-left:6px}
.card .more{font-size:14px;font-weight:700;margin-top:16px;display:inline-block;align-self:flex-start}
.card p+.more:last-child{margin-top:auto;padding-top:16px}

/* reasons */
.reasons{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule)}
.reason{display:grid;grid-template-columns:1fr;gap:12px;padding:32px 0;border-bottom:1px solid var(--rule)}
@media(min-width:900px){.reason{grid-template-columns:120px 1fr 1.4fr;gap:40px;padding:40px 0}}
.reason .num{font-family:var(--font-display);font-size:49px;font-weight:900;color:var(--gold);line-height:1;font-variant-numeric:tabular-nums}
.reason h3{font-size:25px;line-height:1.4}
.reason p{color:var(--ink-2);margin:0;font-size:16px}

/* cases */
.case{background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:28px;display:flex;flex-direction:column;gap:14px;transition:transform 200ms var(--ease),box-shadow 200ms}
.case:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.case .tags{display:flex;flex-wrap:wrap;gap:6px}
.case .tags span{font-size:11.5px;font-weight:700;border:1px solid var(--rule);border-radius:999px;padding:2px 10px;color:var(--ink-2)}
.case h3{font-size:20px;line-height:1.5}
.case h3 em{font-style:normal;color:var(--gold)}
.case .ba{font-size:14px;color:var(--ink-2);margin:0;padding-top:12px;border-top:1px solid var(--rule)}
.case .ba b{color:var(--good)}
.placeholder{color:var(--gold);background:var(--gold-soft);padding:0 4px;border-radius:2px;font-weight:700}

/* flow */
.flow{display:grid;grid-template-columns:1fr;gap:0;counter-reset:step}
@media(min-width:900px){.flow{grid-template-columns:repeat(5,1fr);gap:24px}}
.step{position:relative;padding:24px 0 24px 56px;border-bottom:1px solid var(--rule)}
@media(min-width:900px){.step{padding:32px 0 0;border-bottom:0;border-top:2px solid var(--rule)}}
.step::before{counter-increment:step;content:"0" counter(step);position:absolute;left:0;top:26px;font-family:var(--font-display);font-weight:900;font-size:25px;color:var(--gold);line-height:1;font-variant-numeric:tabular-nums}
@media(min-width:900px){.step::before{position:static;display:block;margin:0 0 12px}}
.step h3{font-size:18px;margin:0 0 8px;line-height:1.5}
.step p{font-size:14.5px;color:var(--ink-2);margin:0}
.step.gold{border-top-color:var(--gold-line)}

/* price */
.tw{overflow-x:auto;border:1px solid var(--rule);border-radius:4px;background:var(--paper)}
.price-table{width:100%;border-collapse:collapse;min-width:560px;font-size:15px}
.price-table th{text-align:left;font-size:12.5px;letter-spacing:.04em;color:var(--ink-3);font-weight:700;padding:14px 18px;background:var(--paper-2);border-bottom:1px solid var(--rule)}
.price-table td{padding:18px;border-bottom:1px solid var(--rule);vertical-align:top}
.price-table tr:last-child td{border-bottom:0}
.price-table td.amt{font-family:var(--font-display);font-size:20px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.price-table td.cond{color:var(--ink-2);font-size:14px}
.subsidy{margin:24px 0 0;padding:20px 24px;background:var(--gold-soft);border-left:3px solid var(--gold);border-radius:0 4px 4px 0;font-size:15px;max-width:none}
.subsidy b{color:var(--gold)}

/* message */
.message{display:grid;grid-template-columns:1fr;gap:32px;align-items:center}
@media(min-width:900px){.message{grid-template-columns:5fr 7fr;gap:64px}}
.portrait{aspect-ratio:4/5;background:linear-gradient(180deg,var(--paper-2),#efe9dc);border:1px solid var(--rule);border-radius:4px;display:flex;align-items:flex-end;padding:20px;position:relative;overflow:hidden}
.portrait::before{content:"";position:absolute;inset:auto 0 0 0;height:60%;background:radial-gradient(ellipse at 50% 100%,rgba(201,168,92,.25),transparent 70%)}
.portrait span{position:relative;font-size:12.5px;color:var(--ink-2);line-height:1.5}
.message blockquote{margin:0;font-family:var(--font-display);font-size:22px;line-height:1.75;font-weight:700}
@media(min-width:900px){.message blockquote{font-size:25px}}
.message .who{font-size:14px;color:var(--ink-2);margin:20px 0 0}
.message .who b{color:var(--ink)}

/* media */
.media-list{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--rule)}
.media-list li{display:grid;grid-template-columns:1fr;gap:6px;padding:20px 0;border-bottom:1px solid var(--rule)}
@media(min-width:760px){.media-list li{grid-template-columns:120px 1fr;gap:24px}}
.media-list time{font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.media-list a{color:var(--ink);text-decoration:none;font-weight:700;font-size:16px}
.media-list a:hover{color:var(--gold)}
.media-list .cat{font-size:12px;color:var(--gold);font-weight:700;letter-spacing:.06em;display:block;margin-bottom:2px}
.note-small{font-size:13px;color:var(--ink-3);margin:16px 0 0}

/* tool chips */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px}
.chips a{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--rule);background:var(--paper);border-radius:999px;padding:9px 16px;font-size:14px;font-weight:700;color:var(--ink);text-decoration:none;transition:border-color 200ms var(--ease),background 200ms}
.chips a:hover{border-color:var(--gold-line);background:var(--gold-soft)}
.chips a small{font-family:var(--font-body);font-weight:500;font-size:12px;color:var(--ink-3)}
.chips span{display:inline-flex;align-items:center;gap:8px;border:1px dashed var(--rule);background:transparent;border-radius:999px;padding:9px 16px;font-size:14px;font-weight:700;color:var(--ink-3)}
.toolbar-note{display:flex;flex-wrap:wrap;gap:8px 24px;max-width:62em;font-size:13.5px;color:var(--ink-3);margin:0 0 28px;padding:14px 18px;border-left:3px solid var(--gold-line);background:var(--gold-soft)}
.toolbar-note b{color:var(--ink)}

/* faq */
.faq{border-top:1px solid var(--rule);max-width:56em}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;font-weight:700;font-size:17px;position:relative;line-height:1.6}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"＋";position:absolute;right:4px;top:18px;color:var(--gold);font-weight:700;font-size:20px}
.faq details[open] summary::after{content:"−"}
.faq details p{color:var(--ink-2);font-size:15.5px;margin:0 0 24px;max-width:40em}

/* cta band */
.cta-band{background:var(--paper-2);border-top:1px solid var(--gold-line);border-bottom:1px solid var(--gold-line)}
.cta-band .container{padding-top:64px;padding-bottom:64px;display:grid;grid-template-columns:1fr;gap:24px;align-items:center}
@media(min-width:900px){.cta-band .container{grid-template-columns:1.4fr 1fr;gap:64px;padding-top:96px;padding-bottom:96px}}
.cta-band h2{font-size:25px}
@media(min-width:900px){.cta-band h2{font-size:31px}}
.cta-band p{color:var(--ink-2);margin:16px 0 0}
.cta-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.cta-actions .tel{font-size:14px;color:var(--ink-2)}
.cta-actions .tel b{font-family:var(--font-display);font-size:20px;color:var(--ink);font-variant-numeric:tabular-nums;margin-right:6px}

/* footer */
.footer{background:var(--paper-2);padding:56px 0 40px;font-size:14px;color:var(--ink-2)}
.footer-grid{display:grid;grid-template-columns:1fr;gap:32px}
@media(min-width:900px){.footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:40px}}
.footer h4,.footer .footer-h{font-family:var(--font-body);font-size:12.5px;letter-spacing:.12em;color:var(--ink-3);margin:0 0 12px;font-weight:700;line-height:1.8}
.footer li{margin:0 0 8px}
.footer a{color:var(--ink);text-decoration:none}
.footer a:hover{color:var(--gold)}
.footer .nap{line-height:1.9;word-break:keep-all;overflow-wrap:anywhere}
.footer .nap span.nb{white-space:nowrap}
.card .price span.nb{white-space:nowrap}
.footer .nap b{font-family:var(--font-display);font-size:18px;color:var(--ink);display:block;margin-bottom:8px}
.footer .badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.footer .badges span{border:1px solid var(--rule);background:var(--paper);border-radius:4px;padding:6px 10px;font-size:12px;color:var(--ink-2)}
.footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;font-size:12.5px;color:var(--ink-3)}
.header{top:0}
@media(min-width:900px){.header{top:0}}

/* ===== IMAGE SYSTEM: mood band / texture divider / monogram placeholder ===== */
.mood-band{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;min-height:340px}
@media(min-width:900px){.mood-band{min-height:440px}}
.mood-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% center;z-index:-2}
.mood-band::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,15,14,.42) 0%,rgba(15,15,14,.74) 28%,rgba(15,15,14,.94) 50%,rgba(15,15,14,.96) 100%);z-index:-1}
@media(max-width:899px){.mood-band{min-height:520px}.mood-band.news-band{min-height:620px}.mood-band img{object-position:60% 15%}.mood-band.scene-band .container{padding-bottom:64px}}
.mood-band{align-items:flex-end}
.mood-band .container{padding:28px 0 32px;width:100%}
@media(min-width:900px){
  .mood-band::after{background:linear-gradient(100deg,rgba(15,15,14,.90) 0%,rgba(15,15,14,.74) 34%,rgba(15,15,14,.30) 62%,rgba(15,15,14,.08) 100%)}
  .mood-band{align-items:center}
  .mood-band .container{padding:0}
}
.mood-band .mood-inner{max-width:540px}
.mood-band .eyebrow{color:var(--gold-soft)}
.mood-band .eyebrow::before{background:var(--gold-line)}
.mood-band h2{color:#fff;font-size:26px;line-height:1.5;margin:0}
@media(min-width:900px){.mood-band h2{font-size:34px}}
.mood-band .mood-lead{color:rgba(255,255,255,.86);margin:20px 0 0;font-size:15.5px;line-height:1.9}
@media(min-width:900px){.mood-band .mood-lead{font-size:16px}}

.tx-divider{position:relative;height:96px;overflow:hidden}
@media(min-width:900px){.tx-divider{height:128px}}
.tx-divider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.92)}
.tx-divider::after{content:"";position:absolute;inset:0;background:rgba(12,11,9,.76)}
.tx-divider .container{position:relative;z-index:1;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}
.tx-divider p{margin:0;color:#fff;font-family:var(--font-display);font-size:14px;letter-spacing:.16em;font-weight:500}
@media(min-width:900px){.tx-divider p{font-size:16px}}
.tx-divider p b{color:var(--gold-line);font-weight:700;margin:0 10px}

.portrait{position:relative}
.portrait .seal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.portrait .seal b{font-family:var(--font-display);font-weight:700;font-size:96px;line-height:1;color:var(--gold-line);opacity:.9}
@media(min-width:900px){.portrait .seal b{font-size:120px}}
.portrait span{background:rgba(255,255,255,.86);padding:4px 8px;border-radius:2px;backdrop-filter:blur(1px)}

/* ===== PEOPLE & SCENES (real photo of 代表 + AI社員 persona images) ===== */
.logo img{height:34px;width:auto;display:block}
@media(min-width:900px){.logo img{height:44px}}
.logo{align-items:center}
.footer .nap .flogo{display:block;height:36px;width:auto;margin:0 0 12px}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.portrait span{position:absolute;left:12px;right:12px;bottom:12px}
.scene-band .scene-note{position:absolute;right:16px;bottom:12px;font-size:12px;color:#fff;letter-spacing:.04em;z-index:1;background:rgba(15,15,14,.78);padding:4px 12px;border-radius:999px}
@media(max-width:899px){.mood-band .eyebrow{color:var(--gold-soft)}.mood-band .eyebrow::before{background:var(--gold-soft)}}
.scene-band .mood-inner{max-width:520px}
.scene-band img{object-position:82% 22%}
@media(min-width:900px){.scene-band{min-height:520px}}
.byline span.ai-badge{display:inline-block}
.byline{display:flex;align-items:center;gap:12px;margin:0 0 24px}
.byline img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:center top;border:1px solid var(--gold-line)}
.byline b{display:block;font-size:14px}
.byline span{display:block;font-size:12.5px;color:var(--ink-3)}
.ai-badge{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.1em;color:var(--gold);border:1px solid var(--gold-line);border-radius:999px;padding:1px 8px;margin-left:6px;vertical-align:middle}
.team{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:760px){.team{grid-template-columns:repeat(3,1fr);gap:24px}}
.person{background:var(--paper);border:1px solid var(--rule);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}
.person .ph{aspect-ratio:4/5;background:var(--paper-2);overflow:hidden}
.person .ph img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.person .pb{padding:20px 24px 24px}
.person .pb b{font-family:var(--font-display);font-size:18px;display:block}
.person .pb .role{font-size:12.5px;color:var(--gold);font-weight:700;letter-spacing:.06em;margin:4px 0 10px;display:block}
.person .pb p{font-size:14px;color:var(--ink-2);margin:0}
.person .pb .ai-note{font-size:12px;color:var(--ink-3);margin:10px 0 0;line-height:1.5}
.rep-card{display:flex;gap:20px;align-items:center;padding:20px 24px;border:1px solid var(--rule);background:var(--paper-2);border-radius:4px;margin:0 0 32px;max-width:640px}
.rep-card img{width:84px;height:84px;border-radius:50%;object-fit:cover;object-position:center top;flex:none;border:1px solid var(--gold-line)}
.rep-card b{display:block;font-family:var(--font-display);font-size:16px}
.rep-card p{margin:4px 0 0;font-size:14px;color:var(--ink-2)}
.news-band .mood-inner{max-width:560px}
.news-band .cta-row{margin:24px 0 0;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.news-band .cta-row .btn-white{background:#fff;color:var(--ink);border-color:#fff}
.news-band .cta-row .btn-white:hover{background:var(--gold-soft)}

/* ===== プレビューとの1px差を消すための指定（1件だけ） =====
   PREVIEW_ALL_PAGES.html は DOCTYPE を持たない断片で、ブラウザは互換モード（BackCompat）で描画します。
   互換モードでは body の line-height が表の中へ継承されません（Chrome の table line-height quirk）。
   本番は標準モードなので、そのままだと表の行が 1行あたり約5px 高くなり、承認済みの見た目とずれます。
   承認済みの表示に合わせて、デザイン内の表だけ line-height を normal に戻します。
   本文（.entry）の表には当てません。 */
.instrument table,
.price-table{line-height:normal}
/* 同じ理由（互換モードではストラットを持たない行ボックスがある）で、カードの価格欄で <small> が
   2行目に回ったときだけ、行の高さが body の 1.8 ではなく <small> 自身の高さになります。
   標準モードで同じ結果にするため、価格欄だけを折り返しありのフレックスにします。
   1行に収まるときの見た目は変わりません。 */
.card .price{display:flex;flex-wrap:wrap;align-items:baseline}
/* 同上。記事一覧のタイトルは16pxですが、囲みのdivは17pxのため、標準モードでは
   17px分のストラット（30.6px）が行の高さになり、互換モードの28.8pxより1行あたり1.8px 高くなります。
   リンクをブロックにすると、行の高さがリンク自身の文字サイズで決まり、承認済みの表示に一致します。 */
.media-list a{display:block}

/* ===== 実装で追加した分だけ（プレビューに入力欄が無いフォームと、記事本文・アーカイブ） =====
   色・角丸・影・書体はトークンの値だけを使い、寸法はプレビューに出てくる値だけを使っています。 */
.ksk-form{margin:32px 0 0;max-width:640px}
.ksk-form .fld{margin:0 0 24px}
.ksk-form label{display:block;font-size:14px;font-weight:700;color:var(--ink);margin:0 0 8px}
.ksk-form .req{font-size:11.5px;font-weight:700;letter-spacing:.08em;color:var(--gold);background:var(--gold-soft);padding:2px 10px;border-radius:999px;margin-left:6px}
.ksk-form .opt{font-size:11.5px;font-weight:700;letter-spacing:.08em;color:var(--ink-3);border:1px solid var(--rule);padding:2px 10px;border-radius:999px;margin-left:6px}
.ksk-form input[type=text],.ksk-form input[type=email],.ksk-form input[type=tel],.ksk-form select,.ksk-form textarea{width:100%;font-family:var(--font-body);font-size:16px;line-height:1.8;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:12px 16px}
.ksk-form input[type=text],.ksk-form input[type=email],.ksk-form input[type=tel],.ksk-form select{height:48px;padding-top:0;padding-bottom:0}
.ksk-form textarea{resize:vertical}
.ksk-form input:focus-visible,.ksk-form select:focus-visible,.ksk-form textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.ksk-form input:hover,.ksk-form select:hover,.ksk-form textarea:hover{border-color:var(--gold-line)}
.ksk-form .fld-check label{font-weight:500;font-size:15px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ksk-form .fld-check input[type=checkbox]{width:24px;height:24px;accent-color:var(--ink)}
.ksk-form .fld-err{display:block;font-size:13px;font-weight:700;color:var(--crit);margin:8px 0 0}
.ksk-form .ksk-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ksk-form button[type=submit]{margin-top:8px}
.form-alert{max-width:640px;margin:24px 0 0;padding:16px 20px;border-radius:4px;border:1px solid var(--rule);background:var(--paper-2,#FAF8F4)}
.form-alert--error{border-color:var(--crit);border-left-width:4px;background:#FCF3F2}
.form-alert p{margin:0;font-size:14.5px;line-height:1.8;color:var(--ink)}
.form-alert ul{margin:10px 0 0;padding-left:1.25em}
.form-alert li{font-size:14px;line-height:1.8;color:var(--ink-2);margin:0 0 4px}
.form-alert a{color:var(--gold);text-underline-offset:2px}
.form-alert:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.ksk-form .form-note{max-width:640px;margin:20px 0 0;font-size:13.5px;line-height:1.85;color:var(--ink-3)}
.ksk-form [aria-invalid=true]{border-color:var(--crit)}
.ksk-form .fld-check a{color:var(--gold);text-underline-offset:2px}

/* 記事本文・アーカイブ（プラグインが注入するブロックをそのまま並べます） */
.entry{max-width:720px}
.entry h2{font-size:25px;margin:48px 0 16px}
@media(min-width:900px){.entry h2{font-size:31px}}
.entry h3{font-size:20px;margin:32px 0 12px}
.entry p{margin:0 0 16px}
.entry ul,.entry ol{margin:0 0 16px;padding-left:1.4em;list-style:disc}
.entry ol{list-style:decimal}
.entry li{margin:0 0 8px}
.entry table{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 24px}
.entry th,.entry td{padding:12px 16px;border:1px solid var(--rule);text-align:left;vertical-align:top}
.entry th{background:var(--paper-2);font-size:12.5px;letter-spacing:.04em;color:var(--ink-3)}
.entry img{margin:0 0 24px}
.entry blockquote{margin:0 0 24px;padding:0 0 0 24px;border-left:3px solid var(--gold-line);color:var(--ink-2)}
.entry-meta{font-size:13px;color:var(--ink-3);margin:0 0 24px;font-variant-numeric:tabular-nums}
.pager{display:flex;flex-wrap:wrap;gap:12px;margin:48px 0 0}
.pager a,.pager span{display:inline-flex;align-items:center;justify-content:center;height:44px;min-width:44px;padding:0 14px;border:1px solid var(--rule);border-radius:4px;text-decoration:none;color:var(--ink);font-size:14px;font-weight:700}
.pager .current{background:var(--ink);color:#fff;border-color:var(--ink)}
.search-form{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 32px}
.search-form input[type=search]{flex:1 1 240px;height:48px;font-family:var(--font-body);font-size:16px;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:0 16px}
