/* 今宵の一冊 — front / single / archive (mock準拠) */
:root{
  --k-ink:#16131C;--k-ink2:#1E1925;--k-card:#241E2D;--k-paper:#ECE4D8;--k-text:#E8E1EC;--k-muted:#998FA6;
  --k-rouge:#C2454D;--k-rouge-deep:#8E2F38;--k-brass:#C7A36A;--k-line:rgba(199,163,106,.22);
  --k-display:'Shippori Mincho B1',serif;--k-editorial:'Fraunces',Georgia,serif;--k-body:'Noto Sans JP',sans-serif;--k-mono:ui-monospace,'SFMono-Regular',Menlo,monospace;
}
html.koyoi,body.koyoi{margin:0;padding:0;background:var(--k-ink)!important;color:var(--k-text);font-family:var(--k-body);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.koyoi *{box-sizing:border-box}
body.koyoi a{color:inherit;text-decoration:none}
body.koyoi img{max-width:100%;display:block}
body.koyoi #wpadminbar{position:fixed}
.k-wrap{max-width:1280px;margin:0 auto}

/* header */
.k-head{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(20px,5vw,56px);background:rgba(22,19,28,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--k-line)}
body.admin-bar .k-head{top:32px}
@media(max-width:782px){body.admin-bar .k-head{top:46px}}
.k-brand{display:flex;align-items:center;gap:12px}
.k-brand .k-face{width:36px;height:36px;border-radius:50%;flex:none;border:1.5px solid var(--k-brass);background:var(--k-card);object-fit:cover}
.k-brand .k-mark{font-family:var(--k-display);font-weight:800;font-size:20px;letter-spacing:.06em;color:var(--k-paper)}
.k-brand .k-mark b{color:var(--k-rouge);font-weight:800}
.k-brand .k-sub{font-family:var(--k-editorial);font-style:italic;font-size:12px;color:var(--k-brass);letter-spacing:.08em}
.k-nav{display:flex;gap:26px;font-size:13px;color:var(--k-muted);font-weight:500}
.k-nav a{position:relative;padding:4px 0;transition:color .25s}
.k-nav a:hover{color:var(--k-text)}
.k-nav a::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:0;background:var(--k-brass);transition:width .25s}
.k-nav a:hover::after{width:100%}
.k-pill{font-size:11px;border:1px solid var(--k-line);color:var(--k-brass);padding:5px 10px;border-radius:999px;letter-spacing:.04em;white-space:nowrap}

/* hero */
.k-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(24px,4vw,64px);align-items:stretch;padding:clamp(40px,6vw,80px) clamp(20px,5vw,56px) clamp(28px,4vw,56px);min-height:60vh}
.k-hero-copy{display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.k-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:24px;font-family:var(--k-editorial);font-style:italic;color:var(--k-brass);font-size:15px;letter-spacing:.04em}
.k-eyebrow::before{content:"";width:38px;height:1px;background:var(--k-brass)}
.k-eyebrow .k-date{font-family:var(--k-mono);font-style:normal;font-size:12px;color:var(--k-muted);letter-spacing:.12em}
.k-voice{font-family:var(--k-display);font-weight:700;font-size:clamp(28px,4.2vw,50px);line-height:1.32;letter-spacing:.02em;color:var(--k-paper);margin:0 0 28px}
.k-voice em{font-style:normal;color:var(--k-rouge)}
.k-work{margin-bottom:26px}
.k-work-title{font-family:var(--k-display);font-weight:600;font-size:clamp(20px,2vw,26px);line-height:1.4;color:var(--k-text);margin:0}
.k-work-by{font-size:13px;color:var(--k-muted);margin-top:6px;letter-spacing:.03em}
.k-strip{display:flex;flex-wrap:wrap;border:1px solid var(--k-line);border-radius:10px;overflow:hidden;margin-bottom:22px;background:rgba(199,163,106,.04)}
.k-strip .k-cell{flex:1;min-width:96px;padding:12px 16px;border-right:1px solid var(--k-line)}
.k-strip .k-cell:last-child{border-right:none}
.k-strip .k{font-size:10px;color:var(--k-muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:5px}
.k-strip .v{font-family:var(--k-display);font-size:16px;color:var(--k-text)}
.k-strip .v.star{color:var(--k-brass)}
.k-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.k-tag{font-size:11px;padding:4px 10px;border-radius:999px;border:1px solid var(--k-line);color:var(--k-brass);letter-spacing:.04em}
.k-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.k-btn{font-family:var(--k-body);font-weight:700;font-size:15px;padding:15px 26px;border-radius:999px;cursor:pointer;border:1px solid transparent;transition:transform .2s,background .2s;display:inline-block}
.k-btn-primary{background:var(--k-rouge);color:#fff!important;box-shadow:0 8px 24px -10px var(--k-rouge-deep)}
.k-btn-primary:hover{transform:translateY(-2px);background:var(--k-rouge-deep)}
.k-btn-ghost{background:transparent;border-color:var(--k-line);color:var(--k-text)}
.k-btn-ghost:hover{border-color:var(--k-brass);color:var(--k-brass)}
.k-count{display:flex;align-items:center;gap:10px;margin-left:4px;font-size:12px;color:var(--k-muted)}
.k-count .dot{width:6px;height:6px;border-radius:50%;background:var(--k-rouge);animation:kpulse 1.8s infinite}
@keyframes kpulse{0%,100%{opacity:1}50%{opacity:.3}}
.k-count b{font-family:var(--k-mono);color:var(--k-rouge);font-size:13px;letter-spacing:.04em}
.k-ended{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--k-muted)}
.k-ended .k-endtag{background:rgba(20,17,24,.8);color:var(--k-muted);border:1px solid var(--k-line);font-size:11px;font-weight:700;padding:4px 10px;border-radius:3px}
.k-ended .k-price{font-family:var(--k-mono);color:var(--k-brass)}
.k-hero-visual{position:relative;display:flex;align-items:center;justify-content:center}
.k-cover{position:relative;width:min(340px,80%);aspect-ratio:5/7;border-radius:6px;box-shadow:0 40px 80px -30px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.05);overflow:hidden;background:linear-gradient(155deg,#3a2433,#241726 48%,#15101b);transform:rotate(1.4deg)}
.k-cover img{width:100%;height:100%;object-fit:cover}
.k-cover .k-free{position:absolute;top:8px;right:0;background:var(--k-rouge);color:#fff;font-weight:700;font-size:12px;padding:7px 14px 7px 16px;letter-spacing:.08em;border-radius:3px 0 0 3px}
.k-vrt{position:absolute;top:6%;right:-6px;z-index:3;writing-mode:vertical-rl;text-orientation:upright;font-family:var(--k-display);font-weight:800;font-size:clamp(22px,2.4vw,30px);letter-spacing:.22em;color:var(--k-paper);text-shadow:0 2px 18px rgba(0,0,0,.6);pointer-events:none}

/* editorial */
.k-read{max-width:720px;margin:0 auto;padding:clamp(40px,6vw,72px) clamp(22px,5vw,32px)}
.k-sec{font-family:var(--k-editorial);font-style:italic;font-weight:400;color:var(--k-brass);font-size:14px;line-height:1.6;letter-spacing:.05em;margin:0 0 18px}
.k-read .k-body p{font-size:16px;color:#cfc7d6;margin:0 0 22px;line-height:1.95}
.k-read .k-body p:first-of-type{font-family:var(--k-display);font-weight:500;font-size:clamp(19px,2.1vw,23px);line-height:1.95;color:var(--k-paper);margin-bottom:28px;border-left:2px solid var(--k-rouge);padding-left:22px}
.k-read .k-body h2,.k-read .k-body h3{font-family:var(--k-display);color:var(--k-paper);margin:36px 0 14px}
.k-read .k-body strong{color:var(--k-brass);font-weight:500}
.k-read .k-body a{color:var(--k-brass);text-decoration:underline}
.k-note{display:flex;gap:16px;align-items:flex-start;margin:32px 0;padding:18px 20px;background:rgba(199,163,106,.06);border:1px solid var(--k-line);border-radius:14px}
.k-note img{width:52px;height:52px;border-radius:50%;flex:none;border:1.5px solid var(--k-brass);object-fit:cover;background:var(--k-card)}
.k-note .k-bubble{font-size:14.5px;color:#d9d2e0;line-height:1.85}
.k-note .k-bubble .nm{font-family:var(--k-display);color:var(--k-brass);font-size:12px;display:block;margin-bottom:5px;letter-spacing:.08em}
.k-sign{display:flex;align-items:center;gap:14px;margin-top:36px;padding-top:24px;border-top:1px solid var(--k-line)}
.k-sign img{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--k-brass);object-fit:cover;background:var(--k-card)}
.k-sign .who{font-size:13px;color:var(--k-muted)}
.k-sign .who b{display:block;color:var(--k-text);font-family:var(--k-display);font-size:15px}
.k-more{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:40px}
.k-more a{font-size:13px;color:var(--k-brass);border-bottom:1px solid var(--k-line);padding-bottom:2px}

/* archive */
.k-band{padding:clamp(44px,6vw,80px) clamp(20px,5vw,56px);background:var(--k-ink2);border-top:1px solid var(--k-line)}
.k-band-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px;flex-wrap:wrap}
.k-band-head h2,.k-h2{font-family:var(--k-display);font-weight:700;font-size:clamp(22px,2.6vw,30px);color:var(--k-text);letter-spacing:.03em;margin:0}
.k-band-head h2 span{color:var(--k-brass)}
.k-lede{font-size:13px;color:var(--k-muted);max-width:46ch;margin-top:8px}
.k-tabs{display:flex;gap:8px;flex-wrap:wrap}
.k-tab{font-size:12px;padding:8px 16px;border-radius:999px;border:1px solid var(--k-line);color:var(--k-muted);transition:.2s;font-weight:500;background:transparent}
.k-tab.on,.k-tab:hover{background:var(--k-brass);color:var(--k-ink);border-color:var(--k-brass);font-weight:700}
.k-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px}
.k-tile{position:relative;border-radius:5px;overflow:hidden;aspect-ratio:5/7;transition:transform .25s;background:var(--k-card)}
.k-tile:hover{transform:translateY(-4px)}
.k-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.k-tile .cap{position:absolute;left:0;right:0;bottom:0;padding:14px 12px 12px;background:linear-gradient(transparent,rgba(10,8,14,.92))}
.k-tile .t{font-family:var(--k-display);font-weight:600;font-size:14px;color:var(--k-paper);line-height:1.4}
.k-tile .badge{position:absolute;top:9px;left:9px;font-size:10px;font-weight:700;padding:4px 9px;border-radius:3px;letter-spacing:.06em}
.k-tile .badge.free{background:var(--k-rouge);color:#fff}
.k-tile .badge.ended{background:rgba(20,17,24,.8);color:var(--k-muted);border:1px solid var(--k-line)}
.k-tile .price{position:absolute;top:9px;right:9px;font-family:var(--k-mono);font-size:11px;color:var(--k-brass)}
.k-month{font-family:var(--k-editorial);font-style:italic;color:var(--k-brass);font-size:14px;margin:34px 0 14px;letter-spacing:.05em}
.k-month:first-child{margin-top:0}
.k-empty{color:var(--k-muted);font-size:14px;padding:30px 0}
.k-pager{display:flex;gap:8px;justify-content:center;margin-top:34px}
.k-pager a,.k-pager span{font-size:12px;padding:8px 14px;border-radius:999px;border:1px solid var(--k-line);color:var(--k-muted)}
.k-pager .current{background:var(--k-brass);color:var(--k-ink);border-color:var(--k-brass)}

/* ranking */
.k-rank{padding:clamp(44px,6vw,80px) clamp(20px,5vw,56px);border-top:1px solid var(--k-line)}
.k-rank h2 span{color:var(--k-rouge)}
.k-rank-sub{font-size:13px;color:var(--k-muted);margin:6px 0 30px}
.k-rank-list{display:flex;flex-direction:column;max-width:760px}
.k-row{display:flex;align-items:center;gap:20px;padding:18px 8px;border-bottom:1px solid var(--k-line);transition:.2s}
.k-row:hover{background:rgba(199,163,106,.05)}
.k-row .no{font-family:var(--k-editorial);font-style:italic;font-size:34px;color:var(--k-brass);width:48px;text-align:center;flex:none}
.k-row .mini{width:44px;height:60px;border-radius:3px;flex:none;object-fit:cover;background:var(--k-card)}
.k-row .info{flex:1}
.k-row .rt{font-family:var(--k-display);font-weight:600;font-size:16px;color:var(--k-text)}
.k-row .rm{font-size:12px;color:var(--k-muted);margin-top:3px}
.k-row .reads{font-family:var(--k-mono);font-size:12px;color:var(--k-muted);text-align:right;flex:none}
.k-row .reads b{display:block;color:var(--k-brass);font-size:15px}

/* footer */
.k-foot{padding:clamp(40px,5vw,64px) clamp(20px,5vw,56px) 48px;background:var(--k-ink2);border-top:1px solid var(--k-line)}
.k-foot-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;max-width:1100px}
.k-foot .k-mark{font-family:var(--k-display);font-weight:800;font-size:18px;color:var(--k-paper);letter-spacing:.06em}
.k-foot .k-mark b{color:var(--k-rouge)}
.k-foot p{font-size:12px;color:var(--k-muted);margin:12px 0 0;max-width:38ch;line-height:1.8}
.k-foot-note{font-size:11px;color:var(--k-muted);line-height:2;max-width:32ch}
.k-foot-note .warn{color:var(--k-brass)}
.k-foot-note a{color:var(--k-brass)}
.k-foot-bottom{margin-top:40px;padding-top:20px;border-top:1px solid var(--k-line);font-size:11px;color:var(--k-muted);letter-spacing:.04em}

@media(max-width:860px){
  .k-nav{display:none}
  .k-hero{grid-template-columns:1fr;min-height:auto;padding-top:36px}
  .k-hero-visual{order:-1;margin-bottom:8px}
  .k-vrt{display:none}
  .k-cover{transform:none}
}
@media(prefers-reduced-motion:reduce){body.koyoi *{animation:none!important;transition:none!important}}

/* ---- 表紙ぼかし ---- */
.k-cover.is-blur img,.k-tile.is-blur img,.k-item.is-blur .k-item-img img,.k-row .mini.is-blur{filter:blur(22px) saturate(.6) brightness(.7);transform:scale(1.15)}
.k-cover.is-blur{cursor:pointer}
.k-cover .k-blur-note{display:none;position:absolute;inset:0;z-index:2;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--k-paper);background:rgba(22,19,28,.25)}
.k-cover.is-blur .k-blur-note{display:flex}
.k-cover .k-blur-note b{font-family:var(--k-display);font-size:16px;letter-spacing:.06em;margin-bottom:10px;border:1px solid var(--k-brass);border-radius:999px;padding:6px 14px;background:rgba(22,19,28,.7)}
.k-cover .k-blur-note span{font-size:11.5px;line-height:1.8;color:var(--k-paper);opacity:.9;text-shadow:0 1px 8px rgba(0,0,0,.8)}
.k-tile.is-blur .k-blur-mini,.k-item.is-blur .k-blur-mini{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);font-size:10px;letter-spacing:.08em;color:var(--k-paper);border:1px solid var(--k-brass);border-radius:999px;padding:3px 9px;background:rgba(22,19,28,.7)}
.k-tile.is-blur,.k-cover.is-blur,.k-item-img{overflow:hidden}

/* ---- こよい拡大モーダル ---- */
.k-modal{position:fixed;inset:0;z-index:9999;background:rgba(10,8,14,.86);display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;backdrop-filter:blur(6px)}
.k-modal-in{max-width:min(420px,90vw);text-align:center}
.k-modal-in img{width:100%;height:auto;border-radius:16px;border:1.5px solid var(--k-brass);box-shadow:0 30px 80px -20px rgba(0,0,0,.9)}
.k-modal-cap{margin-top:14px;color:var(--k-paper);font-size:13px;line-height:1.8}
.k-modal-cap b{display:block;font-family:var(--k-display);font-size:16px;letter-spacing:.06em}
.k-modal-cap span{color:var(--k-muted)}

/* ---- スマホ調整 ---- */
@media(max-width:860px){
  .k-brand .k-mark{font-size:17px;white-space:nowrap}
  .k-brand .k-sub{display:none}
  .k-brand .k-face{width:40px;height:40px}
  .k-head{padding:12px 16px;gap:10px}
  .k-pill{font-size:10px;padding:4px 8px}
  .k-cover{width:min(210px,52vw)}
  .k-hero{padding-top:28px;gap:22px}
  .k-voice{font-size:clamp(24px,7vw,34px)}
  .k-strip .k-cell{min-width:80px;padding:10px 12px}
  .k-btn{padding:13px 20px;font-size:14px}
}

/* ---- v0.5: PC も縦1カラム（スマホと同じ流れ） ---- */
.k-hero{grid-template-columns:1fr;max-width:760px;margin:0 auto;min-height:auto;padding:clamp(28px,4vw,48px) clamp(20px,5vw,32px) clamp(20px,3vw,32px);gap:26px;align-items:start}
.k-hero-visual{order:-1;justify-content:center;padding:6px 0 0}
.k-cover{width:min(260px,60vw);transform:none}
.k-vrt{display:none}
.k-hero-copy{justify-content:flex-start}
.k-eyebrow{justify-content:flex-start}
.k-voice{font-size:clamp(26px,3.2vw,38px)}
.k-strip .k-cell{min-width:90px}
.k-read{max-width:760px}
.k-band,.k-rank{padding-left:clamp(20px,5vw,32px);padding-right:clamp(20px,5vw,32px)}
.k-band > *,.k-rank > *{max-width:900px;margin-left:auto;margin-right:auto}
.k-band-head{margin-bottom:26px}
.k-rank-list{max-width:900px}
.k-foot-grid{max-width:900px;margin:0 auto}
.k-foot-bottom{max-width:900px;margin-left:auto;margin-right:auto}
.k-head{padding-left:clamp(16px,4vw,32px);padding-right:clamp(16px,4vw,32px)}
.k-head > *{}
@media(min-width:861px){
  .k-cover{width:280px}
  .k-hero-visual{position:relative}
  .k-vrt{display:block;position:absolute;right:calc(50% - 218px);top:0}
}

/* ---- v0.6: ヘッダーを本文と同じ中心線に。ロゴ＋タグライン＋ナビを中央 ---- */
.k-head{position:static;display:block;padding:18px 16px 12px;background:var(--k-ink)}
.k-head-in{max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:6px}
.k-brand{gap:10px}
.k-brand .k-face{width:38px;height:38px}
.k-brand .k-mark{font-size:22px}
.k-brand .k-sub{display:none}
.k-tagline{margin:0;font-size:12.5px;color:var(--k-brass);letter-spacing:.06em;font-family:var(--k-display)}
.k-navrow{position:relative;width:100%;display:flex;justify-content:center;align-items:center;margin-top:8px;padding-top:10px;border-top:1px solid var(--k-line)}
.k-nav{display:flex!important;gap:22px;font-size:13px}
.k-navrow .k-pill{position:absolute;right:0;top:50%;transform:translateY(-50%);font-size:10px;padding:3px 8px}
@media(max-width:600px){
  .k-brand .k-mark{font-size:19px}
  .k-tagline{font-size:11.5px}
  .k-nav{gap:14px;font-size:12px}
  .k-navrow{justify-content:flex-start}
  .k-navrow .k-pill{position:static;transform:none;margin-left:auto}
}

/* ---- v0.6.1: スマホのフィードバック反映 ---- */
.k-navrow{border-top:1px solid var(--k-line);padding-top:12px;margin-top:8px}
.k-nav{gap:8px!important;flex-wrap:nowrap}
.k-nav a{white-space:nowrap;padding:7px 14px;border:1px solid var(--k-line);border-radius:999px;font-size:12.5px;color:var(--k-muted);transition:.2s}
.k-nav a::after{display:none}
.k-nav a:hover{border-color:var(--k-brass);color:var(--k-brass)}
.k-head-in > .k-pill{position:static;transform:none;margin-top:8px;font-size:10px;padding:3px 9px;opacity:.85}
.k-navrow .k-pill{display:none}
@media(max-width:600px){
  .k-navrow{justify-content:center}
  .k-nav a{padding:6px 11px;font-size:11.5px}
  /* データ帯は2×2 */
  .k-strip{display:grid;grid-template-columns:repeat(2,1fr)}
  .k-strip .k-cell{border-right:1px solid var(--k-line);border-bottom:1px solid var(--k-line)}
  .k-strip .k-cell:nth-child(2n){border-right:none}
  .k-strip .k-cell:last-child{border-bottom:none}
  .k-strip .k-cell:nth-last-child(2):nth-child(odd){border-bottom:none}
  .k-strip .k-cell:last-child:nth-child(odd){grid-column:1/-1;border-right:none}
  /* CTAは全幅で縦積み、カウントダウンは中央 */
  .k-cta{flex-direction:column;align-items:stretch;gap:10px}
  .k-cta .k-btn{width:100%;text-align:center}
  .k-cta .k-count{justify-content:center;margin:2px 0 0}
  .k-cta .k-ended{justify-content:center}
}
/* ぼかし注記：改行を制御 */
.k-cover .k-blur-note{padding:18px 14px}
.k-cover .k-blur-note b{font-size:14px;white-space:nowrap;padding:6px 12px}
.k-cover .k-blur-note span{font-size:11px;line-height:1.7}
.k-cover .k-blur-note em{display:inline-block;margin-top:10px;font-style:normal;font-size:10.5px;letter-spacing:.06em;color:var(--k-brass);white-space:nowrap;border-bottom:1px solid var(--k-brass);padding-bottom:1px}

/* v0.8 こよいの一言：キャラ説明の添え書き */
.k-note .k-bubble .k-who{display:block;font-size:10.5px;color:var(--k-muted);letter-spacing:.04em;margin:-2px 0 8px}

/* ---- v0.9: 過去の一冊をリスト型に（書影＋肉声見出し＋作品名＋評価＋タグ＋日付） ---- */
.k-list{display:flex;flex-direction:column;border-top:1px solid var(--k-line)}
.k-item{display:flex;gap:18px;padding:20px 6px;border-bottom:1px solid var(--k-line);color:inherit;text-decoration:none;transition:background .2s;align-items:flex-start}
.k-item:hover{background:rgba(199,163,106,.05)}
.k-item-img{position:relative;flex:none;width:84px;aspect-ratio:5/7;border-radius:4px;background:var(--k-card);display:block}
.k-item-img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:4px}
.k-item.is-blur .k-item-img{overflow:hidden}
.k-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.k-item-date{font-family:var(--k-mono);font-size:11px;color:var(--k-brass);letter-spacing:.1em}
.k-item-voice{font-family:var(--k-display);font-weight:700;font-size:clamp(16px,2.2vw,19px);line-height:1.5;color:var(--k-paper)}
.k-item-title{font-size:13px;color:var(--k-text);opacity:.85;line-height:1.5}
.k-item-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--k-muted)}
.k-item-star{font-family:var(--k-display);color:var(--k-brass);font-size:14px}
.k-item-cnt{margin-left:-6px}
.k-item-badge{font-size:10px;font-weight:700;padding:3px 8px;border-radius:3px;letter-spacing:.06em}
.k-item-badge.free{background:var(--k-rouge);color:#fff}
.k-item-badge.ended{background:rgba(20,17,24,.8);color:var(--k-muted);border:1px solid var(--k-line)}
/* v0.10.21 CTAを2組に分ける（無料で読む＋期限／買う＋どこで買うか） */
.k-cta{flex-direction:column;align-items:stretch;gap:14px}
.k-cta-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.k-cta-row .k-lp-link{margin-top:0}
.k-cta-row .k-count{margin-left:0}
/* v0.10.23 PCではボタンの幅を揃えて少し大きく（データ帯とのバランスを取る） */
@media(min-width:601px){
  .k-cta-row .k-btn{min-width:280px;text-align:center;font-size:16px;padding:17px 30px}
}
@media(max-width:600px){
  .k-cta{gap:12px}
  .k-cta-row{flex-direction:column;align-items:stretch;gap:8px}
  .k-cta-row .k-count{justify-content:center}
  .k-cta-row .k-ended{justify-content:center}
  .k-cta-row .k-lp-link{display:block;text-align:center;margin-top:0}
}

/* v0.10.20 パンくず */
.k-crumb{max-width:760px;margin:0 auto;padding:14px clamp(20px,5vw,32px) 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px;color:var(--k-muted);letter-spacing:.02em}
.k-crumb a{color:var(--k-muted);border-bottom:1px solid transparent;padding-bottom:1px}
.k-crumb a:hover{color:var(--k-brass);border-bottom-color:var(--k-line)}
.k-crumb .sep{opacity:.45}
.k-crumb .cur{color:var(--k-text);opacity:.85}
@media(max-width:600px){.k-crumb{font-size:11px;padding-top:12px}}
/* v0.10.20 関連記事（同じ気分タグの一冊） */
.k-related{margin-top:44px;padding-top:30px;border-top:1px solid var(--k-line)}
.k-related .k-h2{font-size:clamp(17px,2.2vw,21px)}
.k-related .k-lede{margin:6px 0 16px}

/* v0.10.18 こよい推薦（本気版で出す記事） */
.k-item-badge.honki{background:transparent;color:var(--k-brass);border:1px solid var(--k-brass);font-weight:700}
/* タブが4つになったのでスマホで1行に収める */
@media(max-width:600px){
  .k-tabs{width:100%;gap:6px}
  .k-tab{padding:7px 12px;font-size:11.5px}
}
.k-item-price{font-family:var(--k-mono);font-size:11px;color:var(--k-brass)}
.k-item-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.k-item-tags .k-tag{font-size:10.5px;padding:3px 9px}
@media(max-width:600px){
  .k-item{gap:14px;padding:16px 2px}
  .k-item-img{width:68px}
  .k-item-voice{font-size:15.5px}
  .k-item-title{font-size:12px}
}
/* v0.9: 縦書き「今宵、これを。」をスマホでも書影の右肩に */
@media(max-width:860px){
  .k-hero-visual{position:relative}
  .k-cover{width:min(240px,54vw)}
  .k-vrt{display:block;position:absolute;top:0;right:calc(50% - min(120px,27vw) - 50px);font-size:20px;letter-spacing:.18em}
}

/* v0.10: 記事CTA下 → 置き場所LPへの小リンク */
.k-lp-link{display:inline-block;margin-top:14px;font-size:12.5px;color:var(--k-brass);border-bottom:1px solid var(--k-line);padding-bottom:2px;letter-spacing:.02em}
.k-lp-link:hover{border-bottom-color:var(--k-brass)}
@media(max-width:600px){.k-lp-link{display:block;text-align:center;margin-top:12px}}

/* v0.10.4 過去の一冊：もっと見る */
.k-item.is-hidden,.k-month.is-hidden{display:none}
.k-load{display:flex;justify-content:center;padding:26px 0 6px}
.k-load .k-btn{min-width:240px;text-align:center}
@media (max-width:640px){.k-load .k-btn{width:100%}}

/* v0.10.5 DMMブックス明示 */
.k-head .k-official{margin:2px 0 0;font-size:11px;line-height:1.5;color:var(--k-muted);letter-spacing:.04em;text-align:center;white-space:nowrap;font-family:var(--k-body)}
.k-head .k-official .sp{display:none}
@media(max-width:600px){
  .k-head .k-official{font-size:min(11px,3.2vw);letter-spacing:0}
  .k-head .k-official .pc{display:none}
  .k-head .k-official .sp{display:inline}
}
.k-work-by .k-by-b{color:var(--k-brass)}
@media(max-width:600px){
  .k-work-by .k-by-sep{display:none}
  .k-work-by .k-by-b{display:block;margin-top:3px}
}
/* v0.10.5 共有ブロック */
.k-share{margin-top:34px;padding:22px 22px 20px;border:1px solid var(--k-line);border-radius:14px;background:rgba(199,163,106,.05)}
.k-share .t{font-family:var(--k-display);font-size:15px;color:var(--k-paper);margin:0 0 4px}
.k-share .s{font-size:12px;color:var(--k-muted);margin:0 0 14px}
.k-share-btns{display:flex;gap:10px;flex-wrap:wrap}
.k-share-btns a,.k-share-btns button{font-family:var(--k-body);font-size:13px;font-weight:700;padding:11px 16px;border-radius:999px;border:1px solid var(--k-line);color:var(--k-text);background:transparent;cursor:pointer;display:inline-flex;align-items:center;gap:8px;line-height:1}
.k-share-btns a:hover,.k-share-btns button:hover{border-color:var(--k-brass);color:var(--k-brass)}
.k-share-btns .x{background:#000;border-color:#000;color:#fff!important}
.k-share-btns .line{background:#06C755;border-color:#06C755;color:#fff!important}
.k-share-btns svg{width:16px;height:16px;fill:currentColor}
@media(max-width:600px){.k-share-btns a,.k-share-btns button{flex:1 1 calc(50% - 5px);justify-content:center}}

/* v0.10.15 404ページ（テーマの既定を使わず見た目を揃える） */
.k-404{max-width:760px;margin:0 auto;padding:clamp(36px,6vw,64px) clamp(20px,5vw,32px) clamp(18px,3vw,30px)}
.k-404 .k-voice{margin-bottom:18px}
.k-404 .k-eyebrow .k-date{font-family:var(--k-mono);font-style:normal;font-size:11px;color:var(--k-muted);letter-spacing:.14em}
.k-404-lede{font-size:14px;color:var(--k-muted);line-height:1.95;margin:0 0 26px}
@media(max-width:600px){.k-404 .k-cta .k-btn{width:100%;text-align:center}}

/* v0.10.16 固定ページ（運営者情報・プライバシーポリシーなど） */
.k-page{max-width:760px;margin:0 auto;padding:clamp(30px,5vw,56px) clamp(20px,5vw,32px) clamp(20px,3vw,32px)}
.k-page-title{font-family:var(--k-display);font-weight:700;font-size:clamp(24px,3.4vw,36px);line-height:1.45;color:var(--k-paper);margin:0 0 26px;padding-bottom:18px;border-bottom:1px solid var(--k-line)}
.k-page-body{font-size:15px;color:#cfc7d6;line-height:1.95}
.k-page-body p{margin:0 0 20px}
.k-page-body h2{font-family:var(--k-display);font-weight:700;font-size:clamp(18px,2.2vw,22px);color:var(--k-paper);margin:38px 0 14px;padding-left:14px;border-left:2px solid var(--k-rouge)}
.k-page-body h3{font-family:var(--k-display);font-size:16px;color:var(--k-brass);margin:26px 0 10px}
.k-page-body a{color:var(--k-brass);text-decoration:underline}
.k-page-body strong{color:var(--k-brass);font-weight:500}
.k-page-body ul,.k-page-body ol{margin:0 0 20px;padding-left:1.3em}
.k-page-body li{margin-bottom:8px}
.k-page-body table{width:100%;border-collapse:collapse;margin:0 0 24px;font-size:14px}
.k-page-body th,.k-page-body td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--k-line)}
.k-page-body th{width:9em;white-space:nowrap;color:var(--k-brass);font-weight:500;background:rgba(199,163,106,.05)}
.k-page-body .k-small{font-size:12.5px;color:var(--k-muted)}
.k-page-body .k-note-box{margin:0 0 24px;padding:16px 18px;border:1px solid var(--k-line);border-radius:12px;background:rgba(199,163,106,.05);font-size:14px}
@media(max-width:600px){
  .k-page-body table,.k-page-body tbody,.k-page-body tr,.k-page-body th,.k-page-body td{display:block;width:auto}
  .k-page-body tr{border-bottom:1px solid var(--k-line);padding:6px 0}
  .k-page-body th{background:transparent;padding:8px 2px 0;font-size:12px;white-space:normal}
  .k-page-body td{padding:2px 2px 8px;border-bottom:none}
}
/* v0.10.16 フッターの固定ページリンク */
.k-foot-links{display:flex;gap:20px;flex-wrap:wrap;max-width:900px;margin:32px auto 0;padding-top:20px;border-top:1px solid var(--k-line);font-size:12px}
.k-foot-links a{color:var(--k-muted);border-bottom:1px solid transparent;padding-bottom:1px;transition:.2s}
.k-foot-links a:hover{color:var(--k-brass);border-bottom-color:var(--k-line)}
.k-foot-links + .k-foot-bottom{margin-top:18px;padding-top:16px}
@media(max-width:600px){.k-foot-links{gap:14px;font-size:11.5px}}

/* こよいプロフィール枠（ショートコード [koyoi_profile]） */
.k-profile{display:flex;gap:20px;align-items:flex-start;margin:26px 0 30px;padding:22px;border:1px solid var(--k-line);border-radius:16px;background:rgba(199,163,106,.06)}
.k-profile .k-profile-face{width:96px;height:96px;flex:none;border-radius:50%;border:1.5px solid var(--k-brass);object-fit:cover;background:var(--k-card)}
.k-profile-role{display:block;font-family:var(--k-editorial);font-style:italic;font-size:12px;color:var(--k-brass);letter-spacing:.06em}
.k-profile-name{display:block;font-family:var(--k-display);font-weight:700;font-size:22px;color:var(--k-paper);margin:2px 0 10px}
.k-profile-text p{margin:0 0 12px;font-size:14.5px;line-height:1.9}
.k-profile-text p:last-child{margin-bottom:0}
@media(max-width:600px){
  .k-profile{flex-direction:column;align-items:center;gap:14px;padding:20px 16px}
  .k-profile .k-profile-face{width:110px;height:110px}
  .k-profile-role,.k-profile-name{text-align:center}
}
