.post-header{margin-bottom:1.5rem}
.post-category-badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;background:var(--accent-light);color:var(--accent);border:1px solid var(--accent-mid);margin-bottom:.5rem}
.post-title{font-size:1.6rem;font-weight:900;color:var(--text);line-height:1.4;margin-bottom:.5rem}
.post-meta{font-size:.8rem;color:var(--text-muted);display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.post-meta-author{font-weight:700}
.post-eyecatch{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);margin-bottom:1.5rem;border:1px solid var(--border)}

/* TOC */
.post-toc{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1.1rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}
.post-toc-title{font-size:.82rem;font-weight:800;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em}
.post-toc-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.25rem}
.post-toc-list a{font-size:.84rem;color:var(--text-sub);text-decoration:none;padding:.2rem 0;display:block;transition:color .1s}
.post-toc-list a:hover{color:var(--accent)}
.post-toc-list .toc-h3{padding-left:1rem;font-size:.8rem;color:var(--text-muted)}

/* Article body */
.post-body{font-size:.94rem;line-height:1.1;color:var(--text-sub);margin-bottom:2rem}
.post-body h2{font-size:1.2rem;font-weight:800;color:var(--text);margin:1.6rem 0 .6rem;padding-bottom:.4rem;border-bottom:2px solid var(--border)}
.post-body h3{font-size:1.05rem;font-weight:700;color:var(--text);margin:1.2rem 0 .4rem}
.post-body p{margin-bottom:1rem}
.post-body ul,.post-body ol{padding-left:1.5rem;margin-bottom:1rem}
.post-body li{margin-bottom:.3rem}
.post-body a{color:var(--accent);text-decoration:underline}
.post-body img{max-width:100%;height:auto;border-radius:8px;margin:1rem 0}
.post-body h2~img,.post-body h3~img,.post-body p~img{float:right;max-width:min(45%, 280px);margin:0 0 .8rem 1rem;border-radius:8px;clear:right}
.post-body img.img-right{float:right;max-width:min(45%, 280px);margin:0 0 .8rem 1rem;border-radius:8px;clear:right}
.post-body img.img-left{float:left;max-width:min(45%, 280px);margin:0 1rem .8rem 0;border-radius:8px;clear:left}
.post-body img.img-full{float:none;max-width:100%;margin:1rem 0}
.post-body h2{clear:both}
@media(max-width:600px){.post-body h2~img,.post-body h3~img,.post-body p~img,.post-body img.img-right,.post-body img.img-left{float:none;max-width:100%;margin:.8rem 0}}
.post-body mark{background:#fff176;padding:.1rem .2rem;border-radius:2px}
.post-body blockquote{border-left:3px solid var(--accent);padding:.6rem 1rem;margin:1rem 0;background:var(--accent-light);border-radius:0 8px 8px 0;color:var(--text-sub)}
.post-body pre{background:var(--surface-strong);border:1px solid var(--border);border-radius:8px;padding:.85rem 1rem;overflow-x:auto;font-size:.82rem;margin:1rem 0}
.post-body code{background:var(--tag-bg);padding:.1rem .35rem;border-radius:4px;font-size:.85rem}
.post-body pre code{background:none;padding:0;border-radius:0}

/* Review rating card */
.review-ratings{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.2rem;margin-bottom:1.2rem;box-shadow:var(--shadow)}
.review-ratings-title{font-size:.82rem;font-weight:800;color:var(--text-muted);margin-bottom:.6rem;text-transform:uppercase;letter-spacing:.04em}
.review-rating-row{display:flex;align-items:center;gap:.6rem;padding:.3rem 0;border-bottom:1px solid var(--border)}
.review-rating-row:last-child{border-bottom:none}
.review-rating-label{font-size:.85rem;font-weight:700;color:var(--text);min-width:120px}
.review-stars{color:#ffd700;font-size:1rem;letter-spacing:.1rem}
.review-stars-empty{color:var(--text-muted);opacity:.3}
.review-verdict{margin-top:.8rem;padding-top:.8rem;border-top:2px solid var(--border)}
.review-verdict-label{font-size:.75rem;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}
.review-verdict-score{font-size:1.8rem;font-weight:900;color:var(--accent);line-height:1}
.review-recommend{margin-top:.8rem;display:flex;flex-direction:column;gap:.4rem}
.review-recommend-good,.review-recommend-bad{font-size:.82rem;padding:.35rem .7rem;border-radius:6px}
.review-recommend-good{background:rgba(67,160,71,.1);border:1px solid rgba(67,160,71,.3);color:#43a047}
.review-recommend-bad{background:rgba(229,57,53,.1);border:1px solid rgba(229,57,53,.3);color:#e53935}
.review-recommend-good::before{content:"◎ "}
.review-recommend-bad::before{content:"△ "}
.review-affiliate-btn{display:block;text-align:center;background:#c0392b;color:#fff;font-size:.9rem;font-weight:800;padding:.7rem 1rem;border-radius:10px;text-decoration:none;margin-top:.8rem;transition:opacity .12s}
.review-affiliate-btn:hover{opacity:.85;color:#fff;text-decoration:none}

/* Tags */
.post-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1.5rem}
.post-tag{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.76rem;font-weight:700;background:var(--tag-bg);color:var(--tag-text);border:1px solid var(--tag-border);text-decoration:none}
.post-tag:hover{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent);text-decoration:none}

/* Related works */
.related-works{margin-bottom:1.5rem}
.related-works h2{font-size:1rem;font-weight:800;color:var(--text);border-left:3px solid var(--accent);padding-left:.55rem;margin-bottom:.7rem}
.related-works-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem}
@media(max-width:700px){.related-works-grid{grid-template-columns:repeat(2,1fr)}}

/* Related posts */
.related-posts{margin-bottom:1.5rem}
.related-posts h2{font-size:1rem;font-weight:800;color:var(--text);border-left:3px solid var(--green);padding-left:.55rem;margin-bottom:.7rem}
.related-posts-list{display:flex;flex-direction:column;gap:.5rem}
.related-post-item{display:flex;gap:.7rem;align-items:center;padding:.55rem .7rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;transition:border-color .1s,box-shadow .1s}
.related-post-item:hover{border-color:var(--accent);box-shadow:var(--shadow-hover);text-decoration:none}
.related-post-thumb{width:80px;height:52px;object-fit:cover;border-radius:6px;flex-shrink:0;background:var(--bg)}
.related-post-info{flex:1;min-width:0}
.related-post-title{font-size:.84rem;font-weight:700;color:var(--text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.related-post-item:hover .related-post-title{color:var(--accent)}
.related-post-date{font-size:.7rem;color:var(--text-muted);margin-top:.15rem}

/* Share */
.share-buttons{display:flex;gap:.5rem;margin-bottom:2rem}
.share-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.45rem .9rem;border-radius:8px;font-size:.8rem;font-weight:700;text-decoration:none;transition:opacity .12s}
.share-btn:hover{opacity:.85;text-decoration:none}
.share-btn-x{background:#000;color:#fff}
.share-btn-hatena{background:#00a4de;color:#fff}
