/* The affiliate button and pick card (affiliate CRO, 2026-11-07; record reports/2026-11-07-mjh-affiliate-cro/REPORT.md).
   Matt: "It's not even super clear that those things can be clicked. There needs to be a proper button." One look for every
   paid link on the site: a filled lime button with an ink edge and a hard shadow, at least 52px tall and full width on
   phones, sentence-case action words that name the product and the merchant, an arrow at the right. Pages write it as
   .aff-btn (japan-picks), `:::pick` (a card: label, name, why, button, note) or `[[Words]](go-link)` inline
   (scripts/lib/markdown.mjs); tests/affiliate-button.test.mjs. .aff-btn--quiet is the outlined second action.
   Its own file (not site.css) so pages without a paid link don't load it (the 50 KB phone CSS budget,
   tests/build-output.test.mjs): templates/partials.mjs head() adds it to any page whose body uses the component. */
.aff-btn{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:52px;margin:14px 0 0;padding:13px 16px;background:var(--lime);color:var(--ink);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);font-family:"Barlow",system-ui,sans-serif;font-weight:600;font-size:17px;line-height:1.25;letter-spacing:0;text-transform:none;text-decoration:none;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .08s ease,box-shadow .08s ease}
.aff-btn .aff-arrow{flex:none;font-size:22px;line-height:1}
.aff-btn:hover{background:#f6ff8a}
.aff-btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}
.aff-btn--quiet{background:var(--paper);box-shadow:none;border-width:var(--rule)}
.aff-btn--quiet:hover{background:var(--lime)}
.aff-stack{margin:4px 0 0}
.aff-stack .aff-btn+.aff-btn{margin-top:14px}
.aff-note{font-size:13px;line-height:1.4;color:var(--link-grey);margin:16px 0 0}
.aff-tips{list-style:none;margin:16px 0 0;padding:0;border-top:var(--rule) solid var(--ink)}
.aff-tips li{padding:10px 0;border-bottom:1px solid #d9d4c6;font-size:15px;line-height:1.4}
.aff-card{background:var(--paper);border:var(--rule) solid var(--ink);padding:14px 15px 16px;margin:14px 0}
.aff-card .aff-label{font-family:"Space Mono",ui-monospace,monospace;font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:var(--link-grey);margin:0 0 4px}
.aff-card .aff-name{font-family:"Barlow Condensed",sans-serif;font-weight:800;font-size:26px;line-height:1.05;margin:0 0 6px}
.aff-card p{margin:0 0 6px}
.aff-card .aff-caveat{font-size:14px;line-height:1.4;border-left:3px solid var(--ink);padding-left:8px}
.aff-card .aff-btn{margin-top:10px}
/* A paid item on a tick-box list: the button sits under the item text, lined up with it, outside the label. */
.aff-check{margin:0 0 12px}
.aff-check .aff-btn{margin-top:0;width:calc(100% - 4px)}
@media (prefers-reduced-motion:reduce){.aff-btn{transition:none}.aff-btn:active{transform:none}}
@media (min-width:700px){.aff-btn{font-size:18px}.aff-card .aff-btn,.aff-stack .aff-btn,.aff-check .aff-btn{max-width:460px}.aff-check{margin-left:30px}}
