/* Visual unification, 2026-10-27: presentation only.
   Provider anchor contents/attributes and raw image tags remain byte-identical.
   Preview controls stay disabled. 44px is this project's production target. */
:root{--gin-link:#213f39;--gin-shop-amazon:#f1bc78;--gin-shop-amazon-ink:#283229;--gin-shop-rakuten:#9f2f35;--gin-shop-yahoo:#68747d;--gin-shop-border:#c7d1c1}
main .affiliate-review,main .returned-purchase,main .batch-purchase{margin-block:28px;padding:24px;border:1px solid var(--gin-shop-border);border-radius:8px;background:#fffdf7;box-sizing:border-box;min-width:0}
main .affiliate-review .ad-label,main .returned-purchase .ad-label,main .batch-purchase .ad-label{margin:0 0 16px;font:12px/1.6 sans-serif;letter-spacing:.04em;color:#526456}
main .affiliate-image-card,main .returned-purchase-grid,main .unified-purchase-grid{display:grid;grid-template-columns:304px minmax(0,1fr);gap:24px;align-items:center;min-width:0}
main .affiliate-image-source{width:100%;max-width:304px;min-width:0;justify-self:center}
main .affiliate-image-source img{max-width:100%;height:auto}
main .batch-product-image{box-sizing:border-box;width:100%;max-width:300px;aspect-ratio:1;min-width:0;margin:0 2px;padding:20px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;border:1px solid #d4dacd;background:#f4f2eb;color:#526456;font:14px/1.8 sans-serif}
main .affiliate-review h3,main .returned-purchase h3{font-size:20px;line-height:1.65;margin:0 0 14px}
main .batch-purchase .unified-purchase-grid>div>strong{display:block;font-family:inherit;font-size:20px;line-height:1.65;font-weight:700;margin:0 0 10px}
main .batch-purchase .unified-purchase-grid>div>p{font-size:13px;line-height:1.8;margin:0 0 12px}
main .affiliate-buttons,main .returned-shop-options,main .batch-stores{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-auto-rows:1fr;gap:10px!important;margin:0;padding:0;min-width:0}
main .affiliate-buttons>*,main .returned-shop-options>*,main .batch-stores>*{min-width:0;max-width:100%;width:100%;margin:0;box-sizing:border-box}
main .affiliate-buttons .purchase-store>a,main .affiliate-buttons .rakuten-button>a,main .affiliate-buttons>a,main .returned-shop-options .returned-vendor>a,main .returned-shop-options .returned-vendor>button,main .batch-stores>span{display:flex;align-items:center;justify-content:center;min-height:48px;height:100%;width:100%;padding:12px 14px;box-sizing:border-box;border-radius:4px;font:600 13px/1.6 sans-serif;text-align:center;text-decoration:none;overflow-wrap:anywhere;box-shadow:none!important;opacity:1}
main .affiliate-buttons .purchase-store-amazon>a,main .returned-shop-options .returned-vendor[data-vendor="amazon"]>a,main .returned-shop-options .returned-vendor[data-vendor="amazon"]>button,main .batch-stores>.amazon{background:var(--gin-shop-amazon)!important;color:var(--gin-shop-amazon-ink)!important;border:1px solid #a45c00!important}
main .affiliate-buttons .rakuten-button,main .affiliate-buttons .rakuten-button>a,main .returned-shop-options .returned-vendor[data-vendor="rakuten"]>a,main .returned-shop-options .returned-vendor[data-vendor="rakuten"]>button,main .batch-stores>.rakuten{background:var(--gin-shop-rakuten)!important;color:#fff!important;border:1px solid var(--gin-shop-rakuten)!important}
main .affiliate-buttons .rakuten-button{border:0!important}
main .affiliate-buttons .purchase-store-yahoo>a,main .returned-shop-options .returned-vendor[data-vendor="yahoo"]>a,main .returned-shop-options .returned-vendor[data-vendor="yahoo"]>button,main .batch-stores>.yahoo{background:var(--gin-shop-yahoo)!important;color:#fff!important;border:1px solid var(--gin-shop-yahoo)!important}
main .affiliate-buttons a[aria-disabled="true"],main .returned-shop-options button:disabled,main .batch-stores>[aria-disabled="true"]{cursor:default;text-decoration:none!important}
main .affiliate-buttons a[aria-disabled="true"]::after,main .returned-shop-options a[aria-disabled="true"]::after{content:none!important}
main .affiliate-buttons a[href]:not([aria-disabled="true"]):hover,main .returned-shop-options a[href]:not([aria-disabled="true"]):hover{text-decoration:underline;text-underline-offset:3px}
main .v40-shop-notice,main .returned-purchase>.returned-note{font-size:12px;line-height:1.8;margin:14px 0 0;color:#526456}
/* Actual reading links keep a persistent non-color cue. Decorations/non-links do not gain it. */
main .article-prose a[href]:not([aria-disabled="true"]){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}
main .article-prose a[href]:not([aria-disabled="true"]):hover{text-decoration-thickness:2px}
main .article-prose a[href]:not([href^="http"]):not([href^="mailto:"]){color:var(--gin-link)}
main .article-prose .affiliate-review a,main .article-prose .returned-purchase a{ text-decoration:none }
main a.v46-reading-card,main a.batch-related-card{border:1px solid #aab8af;border-radius:6px;background:#fffefb;color:var(--gin-link);text-decoration:none}
main a.v46-reading-card strong,main a.v46-reading-card h3,main a.batch-related-card strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}
main a.batch-related-card small,main a.v46-reading-card .v46-read-cue{font:700 14px/1.7 sans-serif;color:var(--gin-link);text-decoration:underline;text-underline-offset:.22em}
main a.batch-related-card:hover,main a.v46-reading-card:hover{border-color:var(--gin-link);background:#f0f3ed}
a[href]:focus-visible,button:not(:disabled):focus-visible,summary:focus-visible{outline:3px solid #213f39!important;outline-offset:4px;box-shadow:0 0 0 2px #fffdf7}
main .article-outline a[href],main .index-jump a[href]{display:inline-flex;align-items:center;min-height:44px;box-sizing:border-box}
@media(max-width:800px){
 main .affiliate-review,main .returned-purchase,main .batch-purchase{padding:18px}
 main .affiliate-image-card,main .returned-purchase-grid,main .unified-purchase-grid{grid-template-columns:minmax(0,1fr);gap:18px}
 main .affiliate-image-source,main .batch-product-image{justify-self:center}
 main .returned-purchase-grid>.returned-vendor{justify-self:center;max-width:100%}
 main .batch-product-image{margin:0;width:min(100%,300px)}
}
/* Retain the supplied 304px ad wrapper without changing its raw image dimensions. */
@media(max-width:400px){main .returned-purchase{margin-left:-12px;margin-right:-12px;padding-left:8px;padding-right:8px}}
@media(max-width:350px){main .returned-purchase{margin-left:-22px;margin-right:-22px;padding-left:4px;padding-right:4px}}
@media(prefers-reduced-motion:reduce){main a{transition:none!important}}
main .article-prose a.v46-reading-card,main .article-prose a.batch-related-card{ text-decoration:none }
/* Legacy budget pages have ID-scoped font/padding rules; match their controls too. */
main .affiliate-buttons .purchase-store>a,main .affiliate-buttons .rakuten-button>a,main .affiliate-buttons>a,main .returned-shop-options .returned-vendor>a,main .returned-shop-options .returned-vendor>button,main .batch-stores>span{font:600 13px/1.6 sans-serif!important;padding:12px 14px!important;min-height:48px!important}
/* Raw ads occupy 300px + the supplied 2px margins on each side.
   Preserve that size: adapt only their outer frame/available card width.
   The scroll fallback is needed only below the supported 320px QA viewport;
   do not crop or silently scale a generated advertisement. */
main .affiliate-image-source{width:304px;max-width:100%;min-width:0;overflow-x:auto;line-height:0}
main .affiliate-image-source>a{display:flex;align-items:flex-start;width:304px;min-width:304px;line-height:0}
main .returned-ad-scroll{width:304px;max-width:100%;line-height:0}
main .returned-code{width:304px;min-width:304px;line-height:0}
main .returned-code>a{display:flex;align-items:flex-start;width:304px;min-width:304px;line-height:0}
@media(max-width:400px){
 main .affiliate-review:not(.v41-purchase),main .batch-purchase{margin-left:-12px;margin-right:-12px;padding-left:8px;padding-right:8px}
}
@media(max-width:350px){
 main .affiliate-review:not(.v41-purchase),main .batch-purchase{margin-left:-22px;margin-right:-22px;padding-left:4px;padding-right:4px}
}
/* The two budget comparison articles also contain raw ads outside purchase cards.
   Their historical 190/180px image columns must not shrink the 300px creative. */
main .article-budget .v41-overview{grid-template-columns:304px minmax(0,1fr)!important}
main .article-budget .v41-picture{width:min(304px,calc(100vw - 16px))!important;max-width:none!important;min-width:0;justify-self:center}
@media(max-width:800px){main .article-budget .v41-overview{grid-template-columns:minmax(0,1fr)!important}}
/* At the QA widths the full ad fits, so no scroll container or baseline scrollbar
   is needed. Keep the underlying auto-scroll fallback below 320px, not cropping. */
@media(min-width:320px){main .affiliate-image-source,main .returned-ad-scroll{overflow:visible}}
