*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { font-size:16px; scroll-behavior:smooth; }
body { background:#f7f7f5; color:#1a1a2e; font-family:'Inter',sans-serif; line-height:1.6; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }

nav { background:#1a1a2e; padding:0 40px; display:flex; align-items:center; justify-content:space-between; height:56px; position:sticky; top:0; z-index:200; }
.nav-logo { font-family:'DM Serif Display',serif; font-size:1.35rem; color:#f7f7f5; letter-spacing:.01em; }
.nav-logo span { color:#f59e0b; }
.nav-links { display:flex; gap:32px; }
.nav-links a { color:rgba(247,247,245,.65); font-size:.8rem; font-weight:500; letter-spacing:.04em; text-transform:uppercase; transition:color .15s; }
.nav-links a:hover { color:#f7f7f5; }

.badge { display:inline-block; padding:3px 10px; border-radius:3px; font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; line-height:1.6; }
.badge-until { background:#fef3c7; color:#b45309; }
.badge-since { background:#dbeafe; color:#1d4ed8; }
.cat-pill { display:inline-block; padding:3px 10px; border-radius:3px; font-size:.7rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; background:#f7f7f5; color:#6b6b7b; border:1px solid #e2e2de; }

.ad-slot { width:100%; max-width:728px; margin:32px auto; min-height:90px; background:#ffffff; border:1px dashed #e2e2de; border-radius:4px; display:flex; align-items:center; justify-content:center; color:#6b6b7b; font-size:.75rem; overflow:hidden; }

footer { background:#1a1a2e; color:rgba(247,247,245,.5); text-align:center; padding:32px 24px; font-size:.8rem; margin-top:80px; }
footer a { color:rgba(247,247,245,.6); }
footer a:hover { color:#f7f7f5; }
.footer-links { display:flex; justify-content:center; gap:24px; margin-bottom:12px; }

@media(max-width:640px) { nav { padding:0 16px; } .nav-links { gap:16px; } .nav-links a { font-size:.72rem; } }

/* ── Affiliate block ── */
.aff-block { }
.aff-note { font-size:.8rem !important; color:#6b6b7b; margin-bottom:14px !important; font-style:italic; }
.aff-grid { display:flex; flex-direction:column; gap:8px; }
.aff-link { display:flex; justify-content:space-between; align-items:center; background:#f7f7f5; border:1px solid #e2e2de; border-radius:4px; padding:13px 16px; text-decoration:none; transition:border-color .15s,background .15s; }
.aff-link:hover { border-color:#999; background:#ffffff; }
.aff-text { font-size:.875rem; font-weight:500; color:#1a1a2e; }
.aff-source { font-size:.75rem; color:#6b6b7b; white-space:nowrap; margin-left:12px; }
