:root{--sage:#46593d;--sage-soft:#e6ecde}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.aff-banner{position:relative;margin:1.4rem 0 0;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-family:system-ui,sans-serif}
.aff-sponsored{position:absolute;top:.4rem;right:.65rem;z-index:1;font-size:.72rem;line-height:1;letter-spacing:.02em;color:var(--muted);pointer-events:none}
.aff-disclaimer{margin:2rem 0 0;font:.8rem/1.4 system-ui,sans-serif;color:var(--muted)}
.aff-disclaimer a{color:inherit}
.aff-link{display:flex;align-items:stretch;min-height:44px;color:var(--ink);text-decoration:none}
.aff-link:hover .aff-title,.aff-link:focus .aff-title{text-decoration:underline}
.aff-link:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;border-radius:14px}
.aff-media{flex:none;width:150px;background:#fff;display:grid;place-items:center;padding:.6rem;border-right:1px solid var(--line)}
.aff-img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain}
.aff-banner[data-merchant="giftcards"],.aff-banner[data-merchant="giftcards"] .aff-media{background:var(--why-bg,#f3f7f1)}
.aff-banner[data-merchant="giftcards"] .aff-img{object-fit:contain;object-position:center;background:transparent}
.aff-body{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-width:0;flex:1;padding:1.3rem .95rem .85rem}
.aff-title{font-weight:700;font-size:1.05rem;line-height:1.3;overflow-wrap:anywhere}
.aff-why{font-size:.92rem;line-height:1.42;color:var(--ink)}
.aff-merchant{margin-top:.35rem;display:inline-flex;align-items:center;min-height:44px;padding:.55rem 1.05rem;border-radius:10px;background:var(--accent);color:#fff;font:700 .95rem/1.2 system-ui,sans-serif}
.aff-from{font-size:.78rem;line-height:1.2;color:var(--muted)}
.aff-link:hover .aff-merchant{background:#6f3a1f}
@media (max-width:520px){.aff-link{flex-direction:row}.aff-media{margin-top:0;width:104px;border-right:1px solid var(--line);border-bottom:0;padding:.5rem}.aff-img{width:100%}.aff-body{padding:1.5rem .75rem .75rem;gap:.3rem}.aff-merchant{align-self:stretch;justify-content:center;padding:.5rem .75rem}.aff-sponsored{font-size:.875rem}.aff-from{font-size:.875rem}.aff-disclaimer{font-size:.875rem}.aff-disclaimer a{padding:.85rem 0}}
