.section-heading { margin-bottom: 24px; display:flex; align-items:flex-end; justify-content:space-between; gap:16px; border-bottom:1px solid var(--color-border); padding-bottom:12px; }
.section-title { margin: 0; font-size: 28px; line-height: 1.35; letter-spacing:.02em; }
.section-subtitle { margin: 4px 0 0; color: var(--color-muted); font-size: 14px; }
.post-card { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); background: #fff; transition: transform .2s ease, box-shadow .2s ease; height:100%; }
.post-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.post-card__link { display:block; height:100%; }
.post-card__thumbnail { aspect-ratio: 16/10; overflow: hidden; background: var(--color-bg-soft); }
.post-card__thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.post-card__body { padding: 16px; }
.post-card__meta { display:flex; align-items:center; gap:8px; margin-bottom:8px; font-size:12px; color:var(--color-muted); flex-wrap:wrap; }
.post-category-label { display:inline-flex; padding:2px 9px; border-radius:999px; background: var(--color-accent-soft); color:#9a5631; font-size:12px; font-weight:700; }
.post-card__title { margin:0 0 8px; font-size:16px; line-height:1.58; }
.post-card__excerpt { margin:0; color:var(--color-muted); font-size:13px; line-height:1.7; }
.ranking-list { display:grid; gap:14px; }
.ranking-list__item { display:grid; grid-template-columns: 34px 1fr; align-items:start; gap:12px; }
.ranking-list__number { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--color-main); color:#fff; font-weight:800; }
.ranking-card { border:1px solid var(--color-border); border-radius:var(--radius-md); background:#fff; overflow:hidden; }
.ranking-card__link { display:grid; grid-template-columns:96px 1fr; gap:12px; align-items:center; padding:10px; }
.ranking-card__thumbnail { aspect-ratio:1; border-radius:var(--radius-sm); overflow:hidden; background:var(--color-bg-soft); }
.ranking-card__thumbnail img { width:100%; height:100%; object-fit:cover; }
.ranking-card__title { margin:0 0 6px; font-size:15px; line-height:1.5; }
.ad-box { margin: 30px 0; padding: 24px; text-align: center; color: var(--color-muted); background: var(--color-bg-soft); border: 1px dashed #d6cabe; border-radius: var(--radius-md); overflow:hidden; }
.affiliate-disclosure { margin: 20px 0 0; padding: 12px 14px; border-radius: var(--radius-sm); background:#fff; border:1px solid var(--color-border); color:var(--color-muted); font-size:12px; line-height:1.7; }
.affiliate-disclosure p { margin:0; }
.affiliate-button-wrap { margin: 26px 0; text-align:center; }
.affiliate-button, .cta-box__button { display:inline-flex; justify-content:center; align-items:center; min-width:240px; max-width:100%; padding:13px 24px; border-radius:999px; background:var(--color-main); color:#fff; font-weight:800; box-shadow:var(--shadow-soft); }
.affiliate-button:hover, .cta-box__button:hover { filter:brightness(.95); transform:translateY(-1px); }
.affiliate-button-note { margin: 8px 0 0; color:var(--color-muted); font-size:12px; }
.review-box { margin: 0 0 32px; padding: 22px; border-radius: var(--radius-md); background:#fff; border:2px solid var(--color-accent-soft); box-shadow: var(--shadow-soft); }
.review-box__label { margin:0 0 6px; color:#9a5631; font-size:12px; font-weight:800; }
.review-box__title { margin:0 0 12px; font-size:22px; }
.review-box__list { display:grid; gap:8px; margin:0 0 18px; }
.review-box__list div { display:flex; justify-content:space-between; gap:16px; padding-bottom:8px; border-bottom:1px solid var(--color-border); }
.review-box__list dt { color:var(--color-muted); }
.review-box__list dd { margin:0; font-weight:800; }
.breadcrumb { margin: 0 0 20px; color: var(--color-muted); font-size: 12px; }
.breadcrumb a { text-decoration: underline; }
@media (max-width:640px){ .section-heading{display:block;} .section-title{font-size:23px;} .ranking-card__link{grid-template-columns:82px 1fr;} .affiliate-button,.cta-box__button{width:100%; min-width:0;} }
