:root{
  --aff-color-primary:#ff7a1a;
  --aff-surface:#ffffff;
  --aff-surface-soft:#f7f8fb;
  --aff-border-color:#e6e8ee;
  --aff-text:#222427;
  --aff-text-muted:#5b616e;
  --aff-text-faint:#8b93a3;
  --aff-radius:14px;
  --aff-gap:12px;
  --aff-border:1px solid var(--aff-border-color);
}
.affk-note{margin-top:6px;color:var(--aff-text-faint);font-size:.9rem}

/* ===== Card (aff_box) ===== */
.affk-card{display:grid;grid-template-columns:200px 1fr;gap:var(--aff-gap);border:var(--aff-border);border-radius:var(--aff-radius);background:var(--aff-surface);color:var(--aff-text);padding:var(--aff-gap);align-items:center;box-shadow:0 2px 10px rgba(16,24,40,.04)}
@media (max-width:640px){.affk-card{grid-template-columns:1fr}}
.affk-card-media{position:relative}
.affk-card-media img{width:100%;height:auto;border-radius:10px;display:block;background:#fff}
.affk-badge{position:absolute;top:8px;left:8px;background:var(--aff-color-primary);color:var(--aff-text);font-weight:700;padding:2px 8px;border-radius:999px;font-size:12px}
.affk-card-title{font-size:1.15rem;margin:0 0 6px}
.affk-card-meta{font-size:.92rem;color:var(--aff-text-muted);margin-bottom:10px}
.affk-stores,.affk-stores-inline,.affk-stores-compact{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.affk-store-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;text-decoration:none;font-weight:800;min-width:168px;padding:10px 14px;border-radius:12px;border:1px solid rgba(16,24,40,.25);box-shadow:0 2px 0 rgba(16,24,40,.35);color:#fff;line-height:1.15;transition:transform .05s ease, filter .2s, color .2s}
.affk-store-btn:hover{transform:translateY(-1px);filter:brightness(1.05);color:#fff}
.affk-store-label{font-size:.95rem}
.affk-store-price{font-size:.8rem;opacity:.95}
.affk-store-amazon{background:#ff9900;color:#fff}
.affk-store-rakuten{background:#bf0000}
.affk-store-yahoo{background:#ed002f}
.affk-store--xs{min-width:88px;padding:4px 6px;border-radius:9px}
.affk-stores-xs{gap:6px}
.affk-stores-xs .affk-store-label{font-size:.78rem}
@media (max-width:640px){.affk-store--xs{min-width:80px}}

/* ===== Ranking ===== */
.affk-ranking{display:grid;gap:12px}
.affk-rank-item{border:var(--aff-border);border-radius:12px;background:var(--aff-surface);padding:10px;box-shadow:0 2px 10px rgba(16,24,40,.04)}
.affk-rank-grid{display:grid;grid-template-columns:25% 75%;gap:14px;align-items:center}
@media (max-width:640px){.affk-rank-grid{grid-template-columns:100px 1fr;align-items:flex-start}}
.affk-rank-image{position:relative;display:block;text-decoration:none}
.affk-rank-badge{position:absolute;top:8px;left:8px;width:32px;height:32px;line-height:32px;text-align:center;border-radius:999px;background:var(--aff-color-primary);color:var(--aff-text);font-weight:700}
.affk-rank-thumb{width:100%;height:120px;object-fit:contain;border-radius:10px;background:#fff;border:1px solid var(--aff-border-color)}
@media (max-width:640px){.affk-rank-thumb{height:80px}}
.affk-rank-info{display:flex;flex-direction:column;gap:4px}
.affk-rank-title{font-weight:800;font-size:1.06rem;line-height:1.2;color:var(--aff-text);text-decoration:none}
.affk-rank-title:hover{text-decoration:underline}
.affk-rank-meta,.affk-rank-refprice{color:var(--aff-text-faint);font-size:.82rem;font-weight:400}

/* ===== Stacked (aff_box layout="stacked") ===== */
.affk-stack{border:var(--aff-border);border-radius:14px;background:var(--aff-surface);padding:16px;box-shadow:0 4px 14px rgba(16,24,40,.06)}
.affk-stack-head{margin-bottom:10px}
.affk-stack-brand{font-size:.9rem;color:var(--aff-text-muted);margin-bottom:4px}
.affk-stack-title{font-size:1.3rem;margin:0 0 6px}
.affk-stack-title a{text-decoration:none;color:var(--aff-text)}
.affk-stack-title a:hover{text-decoration:underline}
.affk-stack-price{font-weight:700;margin:6px 0 8px}
.affk-stack-body{display:grid;grid-template-columns:240px 1fr;gap:16px}
@media (max-width:720px){.affk-stack-body{grid-template-columns:1fr}}
.affk-stack-main{width:100%;height:auto;border:1px solid var(--aff-border-color);border-radius:10px;background:#fff}
.affk-stack-meta{display:flex;flex-direction:column;gap:12px}
.affk-ctas{display:flex;flex-direction:column;gap:10px}
.affk-cta{display:block;width:100%;text-decoration:none;color:#fff;font-weight:800;text-align:center;padding:12px 14px;border-radius:12px;border:1px solid rgba(16,24,40,.25);box-shadow:0 3px 0 rgba(16,24,40,.35);transition:transform .05s ease, filter .2s, color .2s}
.affk-cta:hover{transform:translateY(-1px);filter:brightness(1.05);color:#fff}
.affk-cta:active{transform:translateY(0);box-shadow:0 1px 0 rgba(16,24,40,.35)}
.affk-cta-amazon{background:#ff9900}
.affk-cta-rakuten{background:#bf0000}
.affk-cta-yahoo{background:#ed002f}
.affk-cta-official{background:#1f2937}

/* ===== Tables ===== */
.affk-table-wrap{overflow:auto}
.affk-table{width:100%;border-collapse:collapse}
.affk-table th,.affk-table td{border:var(--aff-border);padding:8px}
.affk-table thead th{background:var(--aff-surface-soft);text-align:left}

/* aff_specs 専用微調整 */
.affk-specs{margin:14px 0 18px}
.affk-table-specs th{background:var(--aff-surface-soft);width:38%;white-space:nowrap;font-weight:700;color:var(--aff-text-muted)}
.affk-table-specs th span::after{content:'：';margin:0 .25em;color:var(--aff-text-faint)}
.affk-table-specs td{font-weight:700;color:var(--aff-text)}

/* ===== Callouts (single) ===== */
.affk-callout{border:var(--aff-border);border-left-width:6px;border-radius:12px;background:var(--aff-surface);padding:12px 14px;margin:14px 0;box-shadow:0 2px 10px rgba(16,24,40,.04)}
.affk-callout-title{display:flex;align-items:center;gap:.5em;font-weight:800;margin-bottom:6px;color:var(--aff-text)}
.affk-callout-icon{font-size:1.1em;line-height:1;font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',system-ui,sans-serif;display:inline-block;min-width:1.1em;text-align:center}
.affk-callout-body{color:var(--aff-text);}
.affk-callout-body p{margin:.4em 0}
.affk-callout-body ul{margin:.4em 0 .2em 1.2em}
.affk-callout-fit{border-left-color:#16a34a;background:linear-gradient(0deg,#f0fdf4,transparent)}
.affk-callout-pros{border-left-color:#2563eb;background:linear-gradient(0deg,#eff6ff,transparent)}
.affk-callout-cons{border-left-color:#dc2626;background:linear-gradient(0deg,#fef2f2,transparent)}
.affk-callout-info{border-left-color:#6b7280;background:linear-gradient(0deg,#f3f4f6,transparent)}

/* ===== Callouts (group wrapper) ===== */
.affk-callouts{border:var(--aff-border);border-radius:12px;background:var(--aff-surface);padding:10px;box-shadow:0 3px 12px rgba(16,24,40,.05);margin:14px 0}
.affk-callouts .affk-callout{border:none;background:transparent;box-shadow:none;margin:6px 0;padding:10px 12px;border-left-width:6px}
.affk-callouts .affk-callout + .affk-callout{border-top:1px solid var(--aff-border-color)}
