/* AGENTA 2026-08-03 spacing phase2 COMPLETE + media-query consolidation: off-scale rounding Batch A–F (75 declarations, 121→191 tokens, 112,268→111,721 B), @media blocks 48→31 (−641 B) */
/*
 * SPACING SCALE (AGENTA 2026-08-03, Phase 1 — Bootstrap rem scale)
 * ------------------------------------------------------------------
 * Canonical spacing tokens. Use var(--space-N) for margin/padding instead of
 * raw px or fractional rem values. All values map to Bootstrap's 8-step rem
 * scale at a 16px root (no html{font-size} override is set):
 *
 *   --space-1: 0.25rem  (4px)
 *   --space-2: 0.5rem   (8px)
 *   --space-3: 0.75rem  (12px)
 *   --space-4: 1rem     (16px)
 *   --space-5: 1.5rem   (24px)
 *   --space-6: 2rem     (32px)
 *   --space-7: 2.5rem   (40px)
 *   --space-8: 3rem     (48px)
 *   --space-9: 4rem     (64px)
 *
 * When to use which:
 *   --space-1/2  → tight UI gaps (icon spacing, chip padding, thumb gutters)
 *   --space-3/4  → default card / section padding, list item gaps
 *   --space-5    → section separators, hero margins
 *   --space-6/7  → large section padding, modal gutters
 *   --space-8/9  → page-level hero / footer spacing
 *
 * Deliberately NOT tokenized (stay raw, do not snap):
 *   - fractional values below 0.25rem: .1rem/.125rem → 0; .15rem/.18rem/.2rem/.22rem/.3rem/.32rem/.35rem/.4rem/.45rem/.55rem/.6rem/.65rem/.7rem/.85rem/.875rem/.95rem/1.1rem/1.4rem → --space-1/--space-2/--space-3/--space-4
 *     Phase 2 Batch A+B+C+D+E+F done 2026-08-03; 1.25rem rows verified via visual diff; px values: 1px kept raw, 10px→.75rem+1.25rem on .skip-to-main:focus
 *   - 1px hairlines / borders and off-scale px (6px, 7px, 10px) — visual tuning,
 *     see Phase 5 rounding spec before changing.
 *   - on-scale values inside @media (exempt by convention) — tokenization stops at
 *     the media-query boundary. Top-level on-scale values should be var(--space-N);
 *     if you see a raw .5rem/.25rem/.75rem at top level, tokenize it (Phase 1-FIX,
 *     x_docs/operations/spacing-system-phase1-fix.md).
 * Legacy --spacing-xs/sm/md/lg/xl/2xl/3xl tokens were REMOVED in Phase 3
 * (2026-08-03) — they had zero consumers after Phase 1. Do not reintroduce.
 */

/*
 * TOKEN OWNERSHIP (Phase 2, 2026-09-06)
 * ======================================
 * Bootstrap 5.3.3 (--bs-*) owns: colour tokens (--bs-primary, --bs-body-color,
 *   --bs-border-color, etc.) and the base font stack (--bs-font-sans-serif).
 *
 * site.css owns: the type scale (--font-size-*, --h1-*  --h6-*, --line-height-*,
 *   --font-weight-*, --letter-spacing-*) and spacing (--space-*).
 *
 * Rule: new CSS must consume --bs-* for colour and site.css scale for type.
 *   Do not introduce a third system. The site's --font-family-sans is an alias of
 *   --bs-font-sans-serif; --font-family-display and --font-family-mono are distinct.
 */
:root{--logo-font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Liberation Sans",Arial,sans-serif;/* Q1c 2026-09-10: hard literal — the wordmark must NOT route through --font-family-sans / --bs-font-sans-serif, which Bootswatch themes (Sketchy, Cosmo...) redefine. */--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:2.5rem;--space-8:3rem;--space-9:4rem;--avatar-bg-soft:#eff6ff;--avatar-text-soft:#1d4ed8;--product-img-fallback:url("/assets/images/noimage.jpg");--grid-cols-desktop:4;--font-family-sans:var(--bs-font-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Liberation Sans",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");/* Phase 1 (2026-09-06): alias Bootstrap's --bs-font-sans-serif; BlinkMacSystemFont added to Bootstrap's stack for Chrome/macOS fidelity */--font-family-display:var(--font-family-sans);/* 2026-09-07: dropped "Space Grotesk" — headings use the Bootstrap sans stack for now. Per-theme heading fonts go here later by overriding --font-family-display. */--font-family-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--font-weight-normal:400;--font-weight-semibold:600;--font-weight-bold:700;--font-size-sm:0.9375rem;--font-size-base:1.0625rem;--font-size-md:1.125rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-3xl:2.25rem;--text-fine:0.875rem;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.625;--letter-spacing-normal:0;/* --bs-primary + siblings intentionally unset: the active Bootswatch theme owns them */--color-urgent:#d32f2f;--color-urgent-light:#fff5f5;--color-urgent-border:#ffcdd2;--color-limited:#c62828;--color-limited-bg:#ffebee;--color-critical:#b71c1c;--color-critical-bg:#fff0f0;--color-critical-border:#ffbaba;--color-discount:#ff6b6b;--btn-deals-bg:#d4220e;--btn-deals-border:#c01f0d;--btn-deals-hover-bg:#b51d0c;--btn-deals-hover-border:#a01909;--shadow-none:none;--shadow-xs:0 1px 2px rgba(0,0,0,0.05);--shadow-sm:0 2px 4px rgba(0,0,0,0.1);--shadow-base:0 10px 28px -8px rgba(0,0,0,0.13);--shadow-md:0 4px 12px rgba(0,0,0,0.2);--shadow-lg:0 6px 16px rgba(0,0,0,0.12);--shadow-xl:0 8px 16px rgba(0,0,0,0.1);--shadow-elevation:0 22px 40px -10px rgba(0,0,0,0.2);--shadow-upward:0 -4px 16px rgba(0,0,0,0.08);--shadow-inset-light:inset 0 1px 0 rgba(255,255,255,0.45);--bs-secondary-color:#626a72;--card-radius:0.5rem;--card-radius-sm:0.375rem;--card-radius-lg:0.75rem;--radius-none:0;--radius-sm:var(--card-radius-sm);--radius-md:var(--card-radius);--radius-lg:var(--card-radius-lg);--avatar-color-1:#0891b2;--avatar-color-2:#16a34a;--avatar-color-3:#b45309;--avatar-color-4:#be185d;--avatar-color-5:#0f766e;--avatar-color-6:#9333ea;--avatar-color-7:#dc2626;--avatar-color-8:#2563eb;--avatar-color-9:#0891b2;--avatar-color-10:#15803d;--avatar-color-11:#7c3aed;--avatar-color-12:#64748b;--h1-size: clamp(1.55rem, 3vw, 2.15rem);--h1-weight: 700;--h1-line-height: 1.2;--h1-margin-bottom: var(--space-3);--h2-size: clamp(1.375rem, 2.2vw, 1.75rem);--h2-weight: 700;--h2-line-height: 1.25;--h2-margin-bottom: var(--space-2);--h3-size: 1.25rem;--h3-weight: 700;--h3-line-height: 1.3;--h3-margin-bottom: var(--space-2);--h4-size: 1.125rem;--h4-weight: 700;--h4-line-height: 1.35;--h4-margin-bottom: var(--space-2);--h5-size: 1rem;--h5-weight: 700;--h5-line-height: 1.35;--h5-margin-bottom: var(--space-2);--h6-size: 0.875rem;--h6-weight: 700;--h6-line-height: 1.4;--h6-margin-bottom: var(--space-2);--body-size: 1.0625rem;--body-line-height: 1.5;--body-margin-bottom: var(--space-3);--lead-size: 1.1875rem;--text-muted: var(--bs-secondary-color, #6c757d)}
.btn,.display-1,.display-2,.display-3,.display-4,.display-5,.display-6,.navbar-brand{font-family:var(--font-family-sans)}
@font-face{font-family:bootstrap-icons;src:url('/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2') format('woff2'),url('/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff') format('woff');font-weight:400;font-style:normal;font-display:block}
@font-face{font-family:Inter;src:url('/assets/fonts/inter/inter-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:block}
@font-face{font-family:Inter;src:url('/assets/fonts/inter/inter-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:block}
@font-face{font-family:Inter;src:url('/assets/fonts/inter/inter-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:block}
@font-face{font-family:"Inter Logo";src:url('/assets/fonts/inter/inter-latin-800-normal.woff2') format('woff2');font-weight:800;font-style:normal;font-display:block}
:root{--font-family-sans:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Liberation Sans",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-display:var(--font-family-sans);--logo-font-family:"Inter Logo",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Liberation Sans",Arial,sans-serif;--bs-font-sans-serif:var(--font-family-sans)}
@view-transition{navigation:auto}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation:none!important}
*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;animation-delay:0s!important;animation-name:none!important;transition-duration:0s!important;transition-delay:0s!important;scroll-behavior:auto!important}
}
.category-directory{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);gap:1.5rem;margin-top:1.5rem}.category-directory h2{font-size:var(--font-size-sm);letter-spacing:.08em;margin:0 0 .75rem;text-transform:uppercase;color:var(--bs-secondary-color,#6c757d)}.category-directory-demand{display:flex;flex-direction:column;gap:.75rem}.category-directory-all{min-width:0}.category-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.category-directory-card{display:grid;grid-template-columns:2.5rem minmax(0,1fr) auto;align-items:center;gap:.75rem;min-width:0;padding:.75rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:.5rem;background:var(--bs-body-bg,#fff);color:inherit;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.category-directory-card:hover,.category-directory-card:focus-visible{border-color:var(--bs-primary,#0d6efd);box-shadow:0 .25rem .85rem rgba(15,23,42,.08);color:inherit;transform:translateY(-1px)}.category-directory-card:focus-visible{outline:2px solid var(--bs-primary,#0d6efd);outline-offset:2px}.category-directory-featured{padding:.9rem}.category-directory-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--bs-primary-border-subtle,#cfe2ff);border-radius:.65rem;background:var(--bs-primary-bg-subtle,#cfe2ff);color:var(--bs-primary,#0d6efd);font-weight:700;font-size:1.1rem;text-transform:uppercase}.category-directory-copy{display:block;min-width:0}.category-directory-copy strong,.category-directory-copy span{display:block;overflow-wrap:anywhere}.category-directory-copy strong{font-size:.95rem;line-height:1.25}.category-directory-copy span{margin-top:.2rem;color:var(--bs-secondary-color,#6c757d);font-size:.78rem;line-height:1.35}.category-directory-count{color:var(--bs-secondary-color,#6c757d);font-size:.8rem;white-space:nowrap}
@media (max-width:767.98px){.category-directory{grid-template-columns:1fr;gap:1.25rem}.category-directory-grid{grid-template-columns:1fr}.category-directory-demand{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.category-directory-featured{display:flex;flex-wrap:wrap;align-items:flex-start}.category-directory-featured .category-directory-copy{flex:1 1 calc(100% - 3.25rem)}.category-directory-featured .category-directory-count{margin-left:auto}.category-directory-featured .category-directory-copy span{font-size:var(--text-fine)}}@media (max-width:480px){.category-directory-demand{grid-template-columns:1fr}}
@media (max-width:767.98px){.category-directory-card{grid-template-columns:2.25rem minmax(0,1fr) auto;min-height:4.75rem;padding:.9rem;align-items:center}.category-directory-featured{display:grid;grid-template-columns:2.25rem minmax(0,1fr) auto;flex-wrap:initial}.category-directory-featured .category-directory-copy{flex:initial}.category-directory-featured .category-directory-count{margin-left:0}.category-directory-copy{overflow-wrap:anywhere}.category-directory-count{align-self:center}}
@media (max-width:480px){.category-directory-card{min-height:5rem;padding:.85rem}.category-directory-icon{width:2.25rem;height:2.25rem}.category-directory-copy strong{font-size:.9rem}.category-directory-copy span{font-size:.75rem}}
.brand-directory{display:block}.brand-directory .category-directory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sitemap-directory{margin-top:1.5rem}.sitemap-directory h2{font-size:var(--font-size-sm);letter-spacing:.08em;margin:0 0 .75rem;text-transform:uppercase;color:var(--bs-secondary-color,#6c757d)}.sitemap-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.sitemap-directory-card .category-directory-count{font-size:1.1rem;color:var(--bs-primary,#0d6efd)}
@media (max-width:991.98px){.brand-directory .category-directory-grid,.sitemap-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767.98px){.brand-directory .category-directory-grid,.sitemap-directory-grid{grid-template-columns:1fr}.brand-directory .category-directory-card,.sitemap-directory-card{min-height:4.75rem}}
.stores-directory-approved{margin-top:1rem}.store-directory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.stores-approved-card{min-width:0;min-height:100%;padding:1.125rem;border:1px solid var(--bs-border-color,#dbe2ea);border-radius:.75rem;background:var(--bs-body-bg,#fff);overflow:hidden}.stores-approved-card .sc-name,.stores-approved-card .sc-name a{overflow-wrap:anywhere}.stores-approved-card .sc-name a{text-decoration:none}.stores-approved-card .sc-name a:hover{text-decoration:underline;text-underline-offset:3px}.stores-approved-card .sc-logo-img-wrap,.stores-approved-card .sc-avatar{width:56px!important;height:56px!important;border-radius:14px!important}.stores-approved-card .sc-logo-img-wrap img{border-radius:14px!important}.stores-approved-card .sc-metrics{margin-top:1rem}.stores-approved-card .sc-pill-links{max-width:100%;overflow-wrap:anywhere}.stores-approved-description{margin:.25rem 0 .75rem;color:var(--bs-secondary-color,#626a72);font-size:var(--font-size-sm);line-height:1.4;overflow-wrap:anywhere}.stores-approved-card .btn{white-space:normal}.stores-approved-card:focus-within{border-color:rgba(var(--bs-primary-rgb),.45);box-shadow:0 .5rem 1.5rem rgba(16,42,67,.08)}
@media (max-width:767.98px){.store-directory-grid{grid-template-columns:1fr;gap:.75rem}.stores-approved-card{padding:1rem}.stores-approved-card .sc-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.stores-approved-card .sc-pill-links{gap:.35rem}.stores-approved-card .sc-pill-links a{max-width:100%;overflow-wrap:anywhere}}
.sitemap-view-header{margin-bottom:1.5rem;max-width:70rem}.sitemap-view-header h1{color:#0b2239;font-size:clamp(1.8rem,4vw,2.75rem);font-weight:700;line-height:1.15;margin:0 0 .75rem}.sitemap-view-header p{color:var(--bs-secondary-color,#626a72);font-size:1rem;line-height:1.5;margin:0;max-width:62rem;overflow-wrap:anywhere}.sitemap-list-item{min-width:0;overflow-wrap:anywhere}.list-group .sitemap-list-item{border:1px solid var(--bs-border-color,#dee2e6);border-radius:.5rem!important;margin-bottom:.5rem;padding:.8rem .9rem;background:var(--bs-body-bg,#fff);transition:border-color .15s ease,box-shadow .15s ease}.list-group .sitemap-list-item:hover,.list-group .sitemap-list-item:focus-within{border-color:var(--bs-primary,#0d6efd);box-shadow:0 .25rem .85rem rgba(15,23,42,.08)}.sitemap-list-item .sitemap-link,.sitemap-list-item>a{min-width:0;overflow-wrap:anywhere}.sitemap-list-item .sitemap-count{flex:0 0 auto;margin-left:.75rem;white-space:nowrap;color:var(--bs-secondary-color,#626a72)}
.store-directory-grid,.category-directory,.category-directory-grid,.sitemap-directory,.sitemap-directory-grid{min-width:0}
@media (max-width:767.98px){.sitemap-view-header{margin-bottom:1.25rem}.sitemap-view-header h1{font-size:clamp(1.65rem,8vw,2.2rem)}.sitemap-view-header p{font-size:.95rem}.sitemap-list-item{min-height:3.25rem}.row>.col-md-6,.row>.col-lg-4{min-width:0}.list-group .sitemap-list-item{padding:.85rem}.sitemap-list-item .sitemap-count{margin-left:.5rem}}
.scroll-to-top{transition:none}
.theme-card{transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease;transform:translateY(0);border-radius:var(--radius-sm);border:1px solid transparent}
.theme-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.theme-card.active,.theme-card.selected{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:rgba(0,0,0,.08)}
body{background-color:var(--bs-body-bg,#f7f7f8);font-family:var(--font-family-sans);font-size:var(--font-size-base);line-height:var(--body-line-height,1.55);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.navbar-brand .text-logo{font-size:clamp(1rem,6.2vw,1.6rem);white-space:nowrap;line-height:1.2}
.navbar-brand h1{white-space:nowrap;line-height:1.2}
/* N72 (2026-07-03): auto-fit tagline — always one line under the logo, full text shown,   font-size scales with .navbar-brand's width via container query units (cqi). The brand   has container-type:inline-size and a max-width cap, so cqi resolves to a real pixel   value. clamp() keeps font between 0.5rem (legible on tiny phones) and 0.85rem (the   original desktop size). overflow:visible + text-overflow:clip + max-width:100% replace   the previous hidden/ellipsis/fixed-max-width combo so the AI-generated tagline is   never truncated with "..." — it shrinks instead of getting cut. *//* N72-FIX (2026-07-03): switched from cqi (container queries) to vw (viewport units).   Reason: on iPhone 12 (390px) the cqi clamp was rendering the tagline at ~10px because   container-type:inline-size on .navbar-brand made flex-basis treat content as 0 — the   brand's effective inline-size collapsed well below its max-width, so cqi resolved to   a tiny value and clamp landed in the middle of its range.   vw is rock-solid and viewport-scaled, which is what we actually want here. On mobile,   viewport ≈ available width (the navbar fills the row), so vw scaling is equivalent in   practice to "scale with available space" and avoids the flex-basis footgun.   3.7vw at the iPhone-12 viewport (390px) = 14.43px → clamped to 0.85rem max.   3.7vw at 320px = 11.84px = 0.74rem. Bumping min from .5rem to .72rem (~11.5px) keeps   the tagline readable on the narrowest phones; anything narrower drops below ~280px   viewports where this is no longer a "normal" mobile. */.navbar-tagline-text{font-weight:400;line-height:1.2;white-space:nowrap;display:block;text-align:center;align-self:center;margin-top:1px;overflow:visible;text-overflow:clip;max-width:100%}
/* N72: removed @media rules that hard-pinned tagline max-width to 200px / 140px on   tablet / mobile — cqi-based font-size in the base rule now handles all widths. *//* stale minified h2-h6 + .text-heading-* removed 2026-09-08 (typography Phase 0): superseded by the token-driven heading block further down (see "Listing / insider page headers") */.section-heading-lg{margin-bottom:var(--space-3)}
p{font-size:var(--font-size-base);line-height:1.5;margin-bottom:var(--space-4);color:var(--bs-body-color,#212529)}
.store-coupon-strip h2{font-weight:700}
.js-product-card .card-title,.product-card .card-title{font-size:var(--font-size-base);font-weight:600;line-height:1.4;margin-bottom:0}
.hero-btn{padding:0 .65rem}
.hero-btn-grid{gap:.5rem!important}
.hero-stats-row{margin-top:.6rem}
.hero-stat-tile{padding-left:.15rem;padding-right:.15rem}
.site-header{border-bottom:1px solid var(--bs-border-color)}
.breadcrumb{--bs-breadcrumb-bg:var(--bs-secondary-bg,#e9ecef);--bs-breadcrumb-border-radius:var(--radius-sm);padding:.5rem .85rem}
nav[aria-label=breadcrumb]{margin-bottom:var(--space-4)}
main.main-content-area > nav[aria-label="breadcrumb"]{margin-bottom:var(--space-5)!important}
@media (max-width:767.98px){main.main-content-area > nav[aria-label="breadcrumb"]{margin-bottom:1.25rem!important}}

@media (max-width:767.98px){.breadcrumb,.breadcrumb .breadcrumb-item,.breadcrumb .breadcrumb-item a,.breadcrumb .breadcrumb-item.active.breadcrumb,.breadcrumb .breadcrumb-item,.breadcrumb .breadcrumb-item a,.breadcrumb .breadcrumb-item.active{font-size:var(--text-fine)}
}
.breadcrumb-item.category-crumb,.breadcrumb-item.category-crumb a{font-size:var(--text-fine);color:var(--bs-secondary-color);font-style:italic;opacity:.8}
.breadcrumb-item.category-crumb a:hover{color:var(--bs-body-color);opacity:1}
.breadcrumb-item.active{color:var(--bs-secondary-color);font-weight:400}
.static-page.container{width:92%;max-width:1320px}
.static-page-hero{background:var(--bs-primary);color:#fff!important;padding:var(--space-9) 0;text-align:center;margin-bottom:var(--space-6)}
.static-page-hero .lead,.static-page-hero .text-body-secondary,.static-page-hero [class*=text-],.static-page-hero h1,.static-page-hero h2,.static-page-hero h3,.static-page-hero p{opacity:1}
.static-page-cta{background:var(--bs-primary);color:#fff!important;padding:var(--space-6) 1.5rem;margin-top:var(--space-6)}
.static-page-cta .lead,.static-page-cta .text-body-secondary,.static-page-cta [class*=text-],.static-page-cta h1,.static-page-cta h2,.static-page-cta h3,.static-page-cta p{opacity:1}
.merchant-card-hover .card-body h5{font-weight:600;margin-bottom:var(--space-1);color:var(--bs-body-color)}
.site-logo{height:60px;width:auto}
@media (max-width:400px){.site-header-main-nav .container-xl{justify-content:space-between;align-items:center!important;width:100%!important;padding-left:8px!important;padding-right:8px!important}
}
/* N72-FIX (2026-07-03): removed container-type:inline-size — was making the brand's   flex-basis treat content as 0 in flex layout, which collapsed the brand's effective   inline-size and made cqi-based font scaling resolve to a tiny value (rendering at   ~10px on iPhone 12). The tagline now uses viewport units (vw) for fluid sizing   instead, so container queries are no longer needed here. Kept the max-width cap   (calc(100% - 52px)) so the brand can never grow wide enough to push the hamburger   toggle to the next row, and removed overflow:hidden so the auto-fit tagline can   stay fully visible. */.navbar-brand{flex-shrink:1;min-width:0;max-width:calc(100% - 52px);overflow:visible}
.site-logo{max-width:calc(100vw - 80px)!important;height:auto!important}
@media (min-width:401px){.site-header-main-nav .container-xl{padding-left:1.25rem;padding-right:1.25rem}
}
.container-xl{max-width:1200px}
.aa-product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;align-items:stretch}
.aa-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;align-items:stretch}
@media (min-width:992px){.aa-product-grid,.aa-card-grid.aa-product-grid,.aa-card-grid{grid-template-columns:repeat(var(--grid-cols-desktop,4),1fr)}
}
.hero-text-container{max-width:75%;width:75%}
@media (max-width:575.98px){.aa-product-grid,.aa-card-grid.aa-product-grid,.aa-card-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}
}
.deal-related-reading{grid-template-columns:repeat(2,1fr);gap:.5rem}
.hero-bg-image,.hero-bg-picture,.hero-section,.site-hero-final{max-height:none}
.hero-text-container .display-5{line-height:1.25;margin-bottom:.6rem!important}
.hero-text-container .fs-5{margin-bottom:.85rem}
.hero-overlay{background:linear-gradient(to right,rgba(0,0,0,.65) 0,rgba(0,0,0,.6) 70%,rgba(0,0,0,.25) 100%)!important}
.specs-table{border:none!important;background:0 0!important}
.specs-table th,.specs-table thead{display:none!important}
.specs-table tbody{display:block!important;width:100%!important}
.specs-table tr{display:block!important;background:var(--bs-card-bg,#fff)!important;border:1px solid var(--bs-border-color,#dee2e6)!important;border-radius:var(--radius-md)!important;margin-bottom:.75rem!important;padding:.5rem .75rem!important;box-shadow:0 2px 4px rgba(0,0,0,.03)!important;width:100%!important}
.specs-table td{text-align:right;width:100%!important}
.specs-table td:last-child{border-bottom:none!important}
.specs-table td::before{text-align:left;margin-right:.5rem!important;font-size:var(--font-size-sm)}
.ph{margin-bottom:.5rem}
.ph__meta{font-size:var(--text-fine);gap:.2rem .3rem;margin-bottom:.4rem}
.ph__desc{font-size:var(--text-fine);margin:0 auto .3rem}
.ph__dd>summary{font-size:var(--text-fine);padding:.15rem .35rem}
.fsr{flex-wrap:wrap}
.fsr__label{width:100%;padding-top:0;margin-bottom:.15rem}
.fsr__wrap{width:100%}
.js-product-card .card-body,.product-card .card-body{padding:var(--space-2) var(--space-3)}
.product-card-badge-overlay{gap:4px}
.product-card-badge-overlay .badge{padding:.2rem .4rem;font-size:var(--text-fine)}
.kwh-stat-pill{font-size:var(--text-fine)}
.kwh-hero{padding:1.25rem}
@media (max-width:767.98px){.rsc-hero.rsc-hero{flex-direction:column}
}
.rsc-grid{grid-template-columns:repeat(2,1fr)}
.related-reading-block{padding:.75rem .9rem;margin:1.25rem 0 .75rem}
.related-reading-block__heading{font-size:var(--text-sm-plus)}
.js-product-card.card,.product-card.card{height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.js-product-card.card:hover,.product-card.card:hover,.js-product-card.card:focus-visible,.product-card.card:focus-visible{will-change:transform}
.js-product-card.card:hover,.product-card.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.js-product-card .card-body,.product-card .card-body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.js-product-card .card-body.pt-0,.product-card .card-body.pt-0{flex:0 0 auto}
.js-product-card .product-name-container,.product-card .product-name-container{height:4.5em;overflow:hidden}
.js-product-card .product-name-container .card-title,.product-card .product-name-container .card-title{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5;margin-bottom:0}
.js-product-card .category-brand-container,.product-card .category-brand-container{height:1.5em;overflow:hidden}
.js-product-card .category-brand-container .product-card-meta,.product-card .category-brand-container .product-card-meta{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-bottom:0}
.js-product-card .card-body.product-card-price-body,.product-card .card-body.product-card-price-body{margin-top:auto;flex:0 0 auto}
.js-product-card .product-card-price-wrap,.product-card .product-card-price-wrap{display:flex;align-items:center}
.js-product-card .button-container,.product-card .button-container{display:flex;flex-direction:column;width:100%}
.js-product-card .button-container>div,.product-card .button-container>div{width:100%}
.js-product-card .btn,.product-card .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:normal;line-height:1.2;width:100%}
.product-card-img-wrap{width:100%;aspect-ratio:1/1;height:clamp(10rem,48vw,15.5rem);min-height:0;flex-shrink:0;overflow:hidden;background-color:var(--bs-tertiary-bg);background-image:var(--product-img-fallback);background-repeat:no-repeat;background-position:center;background-size:contain;display:flex;align-items:center;justify-content:center}
@media (min-width:576px) and (max-width:991.98px){.product-card-img-wrap.product-card-img-wrap{height:clamp(11rem,28vw,14rem)}
}
.product-card-img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center;padding:var(--space-1);display:block;background-color:#fff;color:transparent}
.product-card-img.product-card-img--hidden{display:none!important}
.product-name-container .card-title{color:var(--bs-primary);text-decoration:none}
.product-card-link-block{color:inherit}
.product-card-link-block:hover .card-title{text-decoration:underline}
.specs-table a{color:var(--bs-primary);text-decoration:none}
.coupon-advertiser-link{color:var(--bs-primary);text-decoration:none}
.footer-community-link{color:var(--bs-primary);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:var(--bs-small,.875em)}
.product-card-meta{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d);margin-bottom:var(--space-2)}
.product-card-meta a{color:inherit;text-decoration:none}
.product-card-meta a:hover{text-decoration:underline}
.product-card-editorial{padding-top:var(--space-1);border-top:1px dashed var(--bs-border-color,#dee2e6)}
.product-card-editorial-line{color:var(--bs-secondary-color,#6c757d);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-card-editorial-line i{color:var(--bs-primary)}
.product-discount-badge{width:52px;height:52px;min-width:52px;min-height:52px;font-size:var(--font-size-sm);line-height:1;display:inline-grid;place-items:center;text-align:center;padding:var(--space-1)}
.product-detail-discount-badge{z-index:100!important;pointer-events:auto;width:52px;height:52px;min-width:52px;min-height:52px;display:inline-grid;place-items:center;text-align:center;padding:var(--space-1);font-size:var(--font-size-sm);line-height:1}
.product-detail-discount-badge .product-discount-off,.product-detail-discount-badge small{display:block;font-size:var(--text-fine);line-height:1;text-transform:uppercase;letter-spacing:.04em}
.product-card-badge-overlay{position:absolute;top:0;left:0;margin:var(--space-2);z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.product-card-price-wrap a{text-decoration:none}
.product-card-price{font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--bs-body-color)}
.product-card-price-was{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--bs-secondary-color,#6c757d)}
.product-card-price-verified{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d)}
.product-card-premium-badge{font-size:var(--font-size-sm)}
.js-product-card .card h4,.product-card .card h4{line-height:1.3;margin-bottom:var(--space-2);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;min-height:5.2rem;height:5.2rem}
.js-product-card[data-go-url]{cursor:pointer}
.js-product-card[data-go-url]:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}
.card .category-brand-store{line-height:1.2;display:block}
.card .category-brand-store span{display:inline}
.card .category-brand-store span:not(:last-child)::after{content:' - ';color:var(--bs-secondary-color)}
#global-search-form{width:100%}
.search-bar-input-group{position:relative;width:100%;display:flex;flex-wrap:nowrap}
.search-bar-input-group .form-control{flex:1 1 auto;min-width:0;width:0}
@media (max-width:991.98px){.search-btn-text.search-btn-text{display:none}
}
.search-bar-input-group .btn{padding-left:1.1rem;padding-right:1.1rem;flex:0 0 auto;min-width:52px}
.search-bar-input-group .btn-lg{padding-left:var(--space-4);padding-right:var(--space-4);min-width:48px}
.hero-static-bg{min-height:460px;max-height:none}
.search-clear-btn{position:absolute;right:90px;top:50%;transform:translateY(-50%);z-index:5;background:0 0;border:none;cursor:pointer;color:var(--bs-secondary-color,#6c757d);font-size:var(--font-size-base);line-height:1;padding:var(--space-1);display:none}
.search-clear-btn.visible{display:flex;align-items:center;justify-content:center}
.search-clear-btn:hover{color:var(--bs-body-color)}
.card .card-text .bg-danger,.card .card-text .bg-danger *,.card .card-text .bg-info,.card .card-text .bg-info *,.card .card-text .bg-primary,.card .card-text .bg-primary *,.card .card-text .bg-success,.card .card-text .bg-success *{color:var(--bs-white)}
.card .card-text .bg-warning,.card .card-text .bg-warning *{color:var(--bs-dark)}
.card .card-text .bg-danger .text-decoration-line-through,.card .card-text .bg-info .text-decoration-line-through,.card .card-text .bg-primary .text-decoration-line-through,.card .card-text .bg-success .text-decoration-line-through{color:var(--bs-white);text-decoration-color:rgba(255,255,255,0.6)}
.card .card-text .bg-warning .text-decoration-line-through{color:var(--bs-dark);text-decoration-color:rgba(0,0,0,0.45)}
.card-deal-badge{display:block;width:fit-content;white-space:nowrap;font-size:var(--text-fine);font-weight:600;letter-spacing:.02em;padding:.3em .65em;border-radius:2em;line-height:1.4;pointer-events:none}
.new-arrival-item:hover{background:var(--bs-tertiary-bg,#f8f9fa)}
.hero-bg-image,.hero-bg-picture{border-radius:inherit;overflow:hidden;object-fit:cover;object-position:center;display:block}
.hero-text-container{z-index:2;max-width:100%}
.hero-btn-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;width:100%}
.hero-stat-tile .bi,.hero-stat-tile i{vertical-align:middle;line-height:1;display:inline-flex;align-items:center}
.hero-btn{min-height:2.5rem;border-radius:var(--radius-md);font-weight:600;transition:transform .15s ease,box-shadow .15s ease,opacity .2s ease}
.hero-btn:hover,.hero-btn:focus-visible{will-change:transform;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-hero-deals{background-color:var(--btn-deals-bg)!important;border-color:var(--btn-deals-border)!important;color:#fff!important}
.btn-hero-deals:focus,.btn-hero-deals:hover{background-color:var(--btn-deals-hover-bg)!important;border-color:var(--btn-deals-hover-border)!important;color:#fff!important}
.btn-hero-coupons{background-color:var(--bs-success)!important;border-color:var(--bs-success)!important;color:#fff!important}
.btn-hero-coupons:focus,.btn-hero-coupons:hover{background-color:color-mix(in srgb,var(--bs-success),#000 15%)!important;border-color:color-mix(in srgb,var(--bs-success),#000 15%)!important;color:#fff!important}
.site-hero-final{max-height:none}
.hero-stats-row{flex-wrap:wrap}
@media (min-width:768px){.hero-stats-row.hero-stats-row{flex-wrap:nowrap}
}
.meta-row-toggle-label{display:none!important}
.meta-row-content{display:flex!important;margin-bottom:.5rem}
.share-btn-row{display:flex;flex-wrap:nowrap;gap:.35rem}
.share-btn-row .share-btn-item{flex:1 1 0;min-width:0}
/* CSS-AUD-11 (2026-07-16, mavis): stat-tile light-bg contrast fix.   Tile was rgba(255,255,255,.15) — 85% transparent. On a light hero   background the tile basically disappeared, and white-inherited   text (the hero's default) became invisible. Bumped to a solid-ish   light card with explicit dark text so it reads in both light and   dark hero themes. */.hero-stat-tile{min-height:3rem;background:rgba(255,255,255,.85);border:1px solid rgba(0,0,0,.1);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .15s ease,border-color .15s ease}
.hero-stat-tile:hover{background:rgba(255,255,255,.95);border-color:rgba(0,0,0,.2)}
.hero-stat-count{font-size:var(--font-size-base);color:var(--bs-body-color,#212529)}
.hero-stat-label{font-size:var(--text-fine);line-height:1;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;color:var(--bs-secondary-color,#6c757d)}
.product-h1-link{color:inherit;text-decoration:none}
.product-h1-link:hover{text-decoration:underline;text-underline-offset:3px;color:inherit}
.pdp-price-card{display:block;padding:var(--space-4) 1rem;border:none;border-radius:var(--radius-md);background:var(--bs-body-bg);transition:box-shadow .18s ease,transform .18s ease;cursor:pointer}
.pdp-price-card:focus-visible,.pdp-price-card:hover{will-change:transform;box-shadow:var(--shadow-xs);transform:translateY(-1px);outline:0}
.pdp-price-card .editorial-take-card,.pdp-price-card .editorial-who-for-card{background:0 0;border-top:1px solid var(--bs-border-color)!important;border-radius:0!important;margin-left:-1rem;margin-right:-1rem;padding-left:var(--space-4);padding-right:var(--space-4)}
.pdp-price-card .editorial-take-card .card-body,.pdp-price-card .editorial-who-for-card .card-body{padding-left:0;padding-right:0}
.pdp-price-card .product-info-trust-zone{margin-left:-1rem;margin-right:-1rem;border-radius:0 0 var(--radius-md) var(--radius-md);border-left:none;border-right:none;border-bottom:none}
.price-alert{font-size:var(--font-size-lg);margin-bottom:0}
.price-alert .price-display{font-size:var(--font-size-xl);font-weight:700;color:inherit;text-decoration:none}
.price-alert .price-cents{font-size:inherit;font-weight:inherit}
.price-alert .savings-badge{font-size:var(--font-size-md);font-weight:700;padding:var(--space-2) 1rem;border-radius:var(--radius-sm);background:var(--bs-success-bg-subtle);color:var(--bs-success-text-emphasis);border:1px solid var(--bs-success-border-subtle)}
.price-alert .savings-cents{font-size:var(--text-sm-plus);font-weight:600}
.product-detail-card{transition:box-shadow .15s ease;position:relative;overflow:visible;animation:slideInLeft .3s ease}
.product-detail-card::after,.product-detail-card::before{content:'';position:absolute;top:50%;transform:translateY(-50%);width:0;height:0;opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1);z-index:10}
.product-detail-card::before{left:-20px}
.product-detail-card::after{right:-20px}
.product-detail-card:hover,.product-detail-card:focus-visible{will-change:transform;box-shadow:var(--shadow-xl)}
.product-detail-card:hover::before{opacity:1;left:-30px}
.product-detail-card:hover::after{opacity:1;right:-30px}
.product-image-gallery{transition:transform .15s ease;animation:slideInRight .4s ease}
.product-image-gallery:hover{transform:scale(1.005)}
.product-discount-badge-wrap{z-index:100!important;pointer-events:auto}
.product-detail-image-container.product-image-gallery{background-color:var(--bs-tertiary-bg,#f8f9fa);background-image:var(--product-img-fallback,url("/assets/images/noimage.jpg"));background-repeat:no-repeat;background-position:center;background-size:contain}
.product-image-ghost-wrap{position:relative;margin-left:-3rem;margin-right:-3rem;padding-left:var(--space-8);padding-right:var(--space-8)}
.product-image-ghost-wrap::after,.product-image-ghost-wrap::before{content:'';position:absolute;top:5%;width:42%;height:90%;background-image:var(--product-img-main);background-size:contain;background-repeat:no-repeat;background-position:center top;opacity:.28;filter:blur(1px);pointer-events:none;z-index:0}
.product-image-ghost-wrap::before{left:0}
.product-image-ghost-wrap::after{right:0}
@media (max-width:767.98px){.product-image-ghost-wrap.product-image-ghost-wrap{margin-left:-1rem;margin-right:-1rem;padding-left:var(--space-4);padding-right:var(--space-4)}
.product-image-ghost-wrap::after.product-image-ghost-wrap::after{display:none}
}
.product-nav-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:20;width:38px;height:38px;border-radius:7px;background:rgba(120,120,120,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:background .18s ease,transform .18s ease;border:none;cursor:pointer}
.product-nav-arrow:hover{background:rgba(80,80,80,.75);transform:translateY(-50%) scale(1.08);color:#fff;text-decoration:none}
.product-nav-arrow--prev{left:.5rem}
.product-nav-arrow--next{right:.5rem}
.product-detail-main-img{position:relative;z-index:1}
.product-detail-main-img,.product-detail-single-img{background-color:#fff}
.product-detail-image img{transition:transform .15s ease,filter .15s ease}
.product-detail-image:hover img{transform:scale(1.005);filter:brightness(1.02)}
.product-info-section{transition:background-color .15s ease;animation:slideInLeft .5s ease}
.product-info-section:hover{background-color:rgba(var(--bs-tertiary-bg-rgb,248,249,250),.6)}
.product-title{transition:color .15s ease;position:relative}
.product-title:hover{color:var(--bs-primary)}
.product-title::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--bs-primary),var(--bs-secondary));transition:width .15s ease}
.product-title:hover::after{width:100%}
.product-price-section{transition:color .15s ease}
.product-price-section:hover{color:var(--bs-primary)}
.go-link{transition:background-color .15s ease,box-shadow .15s ease;position:relative;overflow:hidden}
.go-link:hover{box-shadow:0 2px 4px rgba(13,110,253,.2)}
.go-link::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .15s ease}
.go-link:hover::before{left:100%}
.related-product-card{transition:box-shadow .15s ease}
.related-product-card:hover{box-shadow:var(--shadow-sm)}
.product-description-section{transition:opacity .15s ease}
.product-description-section:hover{opacity:.95}
.product-tags .badge{transition:background-color .15s ease}
.product-tags .badge:hover{background-color:var(--bs-primary);color:var(--bs-white)}
.share-button{transition:opacity .15s ease}
.share-button:hover{opacity:.8}
.carousel-control-next,.carousel-control-prev{transition:background-color .15s ease}
.carousel-control-next:hover,.carousel-control-prev:hover{background-color:rgba(0,0,0,.1)}
.accordion-button:hover{background-color:var(--bs-tertiary-bg)}
.product-info-section a.d-block.text-reset{cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s ease;padding:var(--space-2);margin:-.5rem}
.product-info-section a.d-block.text-reset:hover{background-color:rgba(var(--bs-primary-rgb,13,110,253),.04);text-decoration:none!important}
@media (max-width:767.98px){.product-detail-card:hover.product-detail-card:hover{box-shadow:var(--shadow-xs)}
.product-info-section:hover.product-info-section:hover{background-color:rgba(var(--bs-tertiary-bg-rgb,248,249,250),.35)}
.product-price-section:hover{color:var(--bs-secondary-color)}
.go-link:hover{background-color:var(--bs-tertiary-bg)}
}
@keyframes slideInLeft{from{transform:translateX(-20px);opacity:0}
to{transform:translateX(0);opacity:1}
}
@keyframes slideInRight{from{transform:translateX(20px);opacity:0}
to{transform:translateX(0);opacity:1}
}
.sticky-buy-btn{pointer-events:none!important}
.sticky-bottom-bar{position:fixed;bottom:0;left:0;right:0;z-index:1050;background-color:var(--bs-body-bg,#fff);color:var(--bs-body-color);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:3px solid var(--bs-primary,#0d6efd);box-shadow:0 -6px 20px rgba(0,0,0,.14);transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);padding:var(--space-4) 1.25rem calc(1.1rem + env(safe-area-inset-bottom, 0)) 1.25rem;cursor:pointer;text-decoration:none;display:flex;flex-direction:column;align-items:stretch;gap:.55rem}
.sticky-bottom-bar .pdp-sticky-info{min-width:0;width:90%;margin:0 auto;text-align:center;padding:.15rem 0 .25rem}
.sticky-bottom-bar .pdp-sticky-actions{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:.75rem;width:80%;margin:0 auto}
.sticky-bottom-bar.active{will-change:transform;transform:translateY(0)}
.sticky-bottom-bar:active{background-color:var(--bs-tertiary-bg,#f1f3f5)}
.sticky-bottom-bar .sticky-thumb{width:56px;height:56px;object-fit:contain;justify-self:center;border-radius:10px;background-color:var(--bs-secondary-bg,#f8f9fa);border:1px solid var(--bs-border-color,#dee2e6);flex-shrink:0}
.sticky-bottom-bar .pdp-sticky-name{max-width:none;white-space:normal!important;overflow-wrap:anywhere;line-height:1.18;font-size:var(--font-size-md);font-weight:700;color:var(--bs-body-color)}
.sticky-bottom-bar .pdp-sticky-merch{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes stickyCtaPulse{0%,100%{box-shadow:0 4px 14px rgba(212,34,14,.42)}50%{box-shadow:0 4px 18px rgba(212,34,14,.62),0 0 0 4px rgba(212,34,14,.12)}}
.sticky-bottom-bar .sticky-buy-btn{width:max-content;min-height:52px;white-space:nowrap;background:#d4220e!important;border-color:#c01f0d!important;color:#fff!important;font-size:var(--font-size-md);font-weight:700;border-radius:var(--radius-md);box-shadow:0 4px 14px rgba(212,34,14,.42);padding:var(--space-4) 1rem;animation:stickyCtaPulse 2.8s ease-in-out infinite}
.view-product.sticky-mobile-cta-active main.main-content-area{padding-bottom:calc(var(--coupon-cta-height, 72px) + 1rem + env(safe-area-inset-bottom, 0))}
.author-avatar{width:90px;height:90px;object-fit:cover;border:3px solid var(--bs-body-bg)}
.reassurance-icon{font-size:var(--font-size-xl);color:var(--bs-primary)}
.author-bio-card{border:none;background-color:var(--bs-body-bg)}
.pdp-click-zone{border-radius:var(--radius-lg);transition:transform .18s ease,box-shadow .18s ease;cursor:pointer}
.pdp-click-zone:hover,.pdp-click-zone:focus-visible{will-change:transform;transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.08)}
.pdp-click-zone:active{transform:translateY(0);box-shadow:none;transition-duration:80ms}
.pdp-trust-link,.pdp-trust-link:focus,.pdp-trust-link:hover{background:0 0;outline:0}
.pdp-click-zone .author-bio-card--clickable{transition:none}
.pdp-click-zone .author-bio-card--clickable:focus,.pdp-click-zone .author-bio-card--clickable:hover{border-color:transparent;background-color:var(--bs-body-bg);outline:0}
.pdp-click-zone:hover .animate-pulse,.pdp-click-zone:hover .product-cta-btn{animation-play-state:paused!important}
.author-bio-card--clickable{cursor:pointer;transition:box-shadow .18s ease,transform .18s ease}
.author-bio-card--clickable:focus,.author-bio-card--clickable:hover{will-change:transform;box-shadow:0 4px 16px rgba(0,0,0,.08);transform:translateY(-2px);outline:0}
.author-card-meta h3{margin-bottom:var(--space-2)}
.product-store-count-badge{font-size:var(--text-sm-plus);padding:var(--space-2) .8rem}
.product-info-trust-zone{border-radius:var(--radius-lg);background-color:var(--bs-secondary-bg,#e9ecef);color:var(--bs-body-color)}
.product-info-trust-icon{margin-right:var(--space-2);font-size:var(--font-size-base)}
.product-cta-subtext{display:block;margin-top:var(--space-1);font-size:var(--text-sm-plus);opacity:.85}
.editorial-take-card,.editorial-who-for-card{background-color:var(--bs-secondary-bg,#f8f9fa);border-color:transparent}
.editorial-take-card .card-body,.editorial-who-for-card .card-body{padding:var(--space-4)}
.editorial-faq-details{background:var(--bs-body-bg,#fff);border:1px solid var(--bs-border-color,#dee2e6);border-radius:.55rem;padding:0;margin-bottom:var(--space-3)}
.editorial-faq-details[open]{box-shadow:0 0 0 1px rgba(13,110,253,.12)}
.editorial-faq-summary{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;padding:var(--space-4) 1rem;font-size:var(--font-size-base);font-weight:600;color:var(--bs-body-color,#212529);list-style:none}
.editorial-faq-summary::-webkit-details-marker{display:none}
.editorial-faq-summary::after{content:'\2193';font-size:var(--font-size-base);transition:transform .2s ease;color:var(--bs-secondary-color,#6c757d)}
.editorial-faq-details[open]>.editorial-faq-summary::after{transform:rotate(180deg)}
.editorial-faq-answer{padding:0 1rem 1rem;line-height:1.7;color:var(--bs-secondary-color,#6c757d)}
.product-notjoined-card{background-color:var(--bs-body-bg,#fff)}
.sidebar-card{background:var(--bs-body-bg,#fff)!important;color:var(--bs-body-color)!important}
.sidebar-panel-title{color:var(--bs-body-color)!important}
.sidebar-panel-action{font-size:var(--text-fine);}
.sidebar-panel-link{background:var(--bs-body-bg,#fff)!important;color:var(--bs-body-color)!important;border-color:var(--bs-border-color)!important}
.sidebar-count-badge{background:var(--bs-secondary-bg)!important;color:var(--bs-secondary-text-emphasis,#41464b)!important;}
.compact-dir-link{font-size:var(--font-size-sm)}
.compact-dir-link:hover{text-decoration:underline}
.site-wing{position:fixed;top:50%;transform:translateY(-50%);width:160px;z-index:90;display:none;overflow:hidden}
.site-wing-left{right:calc(50% + 660px + 16px)}
.site-wing-right{left:calc(50% + 660px + 16px)}
@media (min-width:1668px){.site-wing.site-wing{display:block}
}
.footer-social-icon{font-size:var(--font-size-xl)}
.sc-card{height:100%;display:flex;flex-direction:column;border:1px solid var(--bs-border-color,rgba(15,23,42,.12));border-radius:var(--radius-lg);background:var(--bs-card-bg,#fff);padding:var(--space-5);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.sc-card:focus-within,.sc-card:hover{border-color:rgba(var(--bs-primary-rgb),.35);box-shadow:0 .75rem 1.75rem rgba(15,23,42,.09);transform:translateY(-2px)}
.sc-avatar{width:72px;height:72px;border-radius:1rem;display:grid;place-items:center;font-size:2rem;font-weight:700;line-height:1;flex-shrink:0;text-transform:uppercase;color:var(--bs-primary,#1d4ed8);background:var(--bs-primary-bg-subtle,#f8f9ff);border:1px solid var(--bs-primary-border-subtle,#e9ecf4)}
.sc-av-a,.sc-av-b{background:var(--avatar-bg-soft,#eff6ff);color:var(--avatar-text-soft,#1d4ed8)}
.sc-av-c,.sc-av-d{background:var(--avatar-color-11,#7c3aed)}
.sc-av-e,.sc-av-f{background:var(--avatar-color-1)}
.sc-av-g,.sc-av-h{background:var(--avatar-color-2)}
.sc-av-i,.sc-av-j{background:var(--avatar-color-3)}
.sc-av-k,.sc-av-l{background:var(--avatar-color-4)}
.sc-av-m,.sc-av-n{background:var(--avatar-color-5)}
.sc-av-o,.sc-av-p{background:var(--avatar-color-6)}
.sc-av-q,.sc-av-r{background:var(--avatar-color-7)}
.sc-av-s,.sc-av-t{background:var(--avatar-color-8)}
.sc-av-u,.sc-av-v{background:var(--avatar-color-9)}
.sc-av-w,.sc-av-x{background:var(--avatar-color-10)}
.sc-av-y,.sc-av-z{background:var(--avatar-color-11)}
.sc-av-num{background:var(--avatar-color-12)}
.sc-name{font-size:var(--font-size-md);font-weight:700;line-height:1.2;overflow-wrap:anywhere}
.sc-name a{color:inherit;text-decoration:none}
.sc-name a:hover{text-decoration:underline}
.sc-badges{display:flex;flex-wrap:wrap;gap:.35rem}
.sc-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--text-fine);font-weight:600;padding:var(--space-1) .52rem;border-radius:999px;line-height:1;white-space:nowrap}
.sc-badge-verified{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}
.sc-badge-active{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.sc-badge-curated{background:#faf5ff;color:#7e22ce;border:1px solid #e9d5ff}
.sc-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.sc-metric{border:1px solid var(--bs-border-color);border-radius:var(--radius-sm);padding:var(--space-2) .6rem;background:var(--bs-light,#f8f9fa);text-align:center}
.sc-metric strong{display:block;font-size:var(--font-size-md);line-height:1}
.sc-metric span{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.sc-links-label{font-size:var(--text-fine);font-weight:600;color:var(--bs-secondary-color,#6c757d);margin-bottom:var(--space-1)}
.sc-pill-links{display:flex;flex-wrap:wrap;gap:.4rem}
.sc-pill-links a{display:inline-block;font-size:var(--text-fine);color:var(--bs-body-color);background:var(--bs-light,#f8f9fa);border:1px solid var(--bs-border-color);border-radius:999px;padding:var(--space-1) .55rem;text-decoration:none;transition:background .12s ease,color .12s ease}
.sc-pill-links a:hover{background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);border-color:rgba(var(--bs-primary-rgb),.3)}
.grid-col-eq{display:flex;align-items:stretch}
.grid-col-eq>.card,.grid-col-eq>a{height:100%;display:flex;flex-direction:column}
.grid-col-eq .card-body{flex:1 1 auto}
.merchant-favicon-wrap{height:32px;display:flex;align-items:center;justify-content:center}
.merchant-favicon{border-radius:6px;object-fit:contain;display:block}
.footer-badge-link{display:flex;align-items:stretch;width:100%;text-decoration:none;color:inherit}
.footer-badge-inner{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:0 .5rem}
.footer-badge-title{margin-bottom:0;font-weight:700;font-size:var(--bs-small,.875em)}
.product-description-text *,.product-description-text em,.product-description-text i:not([class^=bi]){font-style:normal!important}
.meta-row-toggle{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.meta-row-toggle-label{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);user-select:none;gap:var(--space-1);padding:var(--space-1) 0}
.meta-row-toggle-label:hover{color:var(--bs-body-color)}
.meta-chevron{display:inline-block;font-size:var(--text-fine);transition:transform .2s ease}
.meta-row-toggle:checked~.meta-row-toggle-label .meta-chevron{will-change:transform;transform:rotate(180deg)}
.meta-row-toggle:not(:checked)~.meta-row-toggle-label .meta-chevron{will-change:transform}
.meta-show-txt{display:inline}
.meta-hide-txt{display:none}
.meta-row-toggle:checked~.meta-row-toggle-label .meta-show-txt{display:none}
.meta-row-toggle:checked~.meta-row-toggle-label .meta-hide-txt{display:inline}
@media (max-width:767.98px){.meta-row-content.meta-row-content{display:none!important}
.meta-row-toggle:checked~.meta-row-content,.meta-row-toggle:checked~.meta-row-toggle-label~.meta-row-content.meta-row-toggle:checked~.meta-row-content,.meta-row-toggle:checked~.meta-row-toggle-label~.meta-row-content{display:flex!important;flex-wrap:wrap;margin-top:.35rem}
}
.related-deal-card{cursor:pointer;color:inherit;border:.5px solid var(--bs-border-color,#dee2e6);border-radius:var(--radius-md);transition:transform .15s ease,box-shadow .15s ease;overflow:visible}
.related-deal-card:hover{will-change:transform;transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.1);color:inherit;text-decoration:none}
.related-deal-card:active{transform:translateY(-1px)}
.related-deal-img-wrap{position:relative;background:var(--bs-secondary-bg,#f8f9fa);overflow:visible}
.related-deal-badge{position:absolute;top:-10px;right:-10px;width:56px;height:56px;background:var(--bs-danger,#dc3545);color:#fff;font-size:var(--text-fine);font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.15;box-shadow:0 2px 6px rgba(220,53,69,.45);pointer-events:none;z-index:10;white-space:pre-line}
.related-deal-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.4;color:var(--bs-body-color);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.related-deal-price-row{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.related-deal-price{font-size:var(--font-size-base);font-weight:700;color:var(--bs-body-color)}
.related-deal-was{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);text-decoration:line-through}
.related-deal-store{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.related-deal-btn{pointer-events:none;font-size:var(--text-fine)}
.related-deal-savings{font-size:var(--text-fine);font-weight:600;color:#16a34a;margin:0}
/* IMG-FALLBACK-1 (2026-09-16): store "watching" panel alternative-product cards.
   The class had no rule at all, so a broken merchant image rendered as an
   unsized/garbled box. Give it a fixed 1:1 box and carry the no-image fallback
   as the element's OWN background: JS swaps src, this guarantees a placeholder
   is visible even if the swap fails (offline / JS disabled). */
.store-product-image{width:100%;aspect-ratio:1/1;height:auto;object-fit:contain;background-color:var(--bs-tertiary-bg,#f8f9fa);background-image:var(--product-img-fallback,url("/assets/images/noimage.jpg"));background-repeat:no-repeat;background-position:center;background-size:contain;padding:var(--space-2)}
.store-product-image-placeholder{width:100%;aspect-ratio:1/1;height:auto;font-size:var(--font-size-xl)}
.store-product-title{line-height:1.35}
.related-items-link{color:inherit;display:block}
.related-items-link:focus,.related-items-link:hover{text-decoration:none}
.related-deal-badge--featured{background:#f59e0b;color:#1a1a1a;font-size:var(--text-fine);box-shadow:0 2px 6px rgba(245,158,11,.45)}
.yml-section{margin-top:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--bs-border-color)}
.yml-header{display:flex;align-items:center;gap:.75rem;margin-bottom:var(--space-5);flex-wrap:wrap}
.yml-header-icon{background:linear-gradient(135deg,#ff6b35,#f7c59f);border-radius:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.yml-header-icon i{font-size:var(--font-size-lg);color:#fff}
.yml-header-text h2{margin:0;line-height:1.1}
.yml-header-text p{margin:0;font-size:var(--text-fine);color:var(--bs-secondary-color)}
.yml-group-label{font-size:var(--text-fine);font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-2);padding:var(--space-1) .6rem;border-radius:6px;display:inline-block}
.yml-label-related{background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary)}
.yml-label-featured{background:linear-gradient(90deg,#ff6b35,#f7931e);color:#fff}
.yml-label-discovery{background:rgba(108,117,125,.08);color:var(--bs-secondary-color);border:1px solid rgba(108,117,125,.18)}
.yml-card{display:block;text-decoration:none;color:inherit;border-radius:var(--radius-lg);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease;height:100%;position:relative;cursor:pointer}
.yml-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.18);text-decoration:none;color:inherit}
.yml-card-related{border:2px solid var(--bs-border-color);background:var(--bs-body-bg)}
.yml-card-related:hover{border-color:var(--bs-primary)}
.yml-card-featured{border:2px solid #ff6b35;background:var(--bs-body-bg)}
.yml-card-featured:hover{border-color:#e55a25;box-shadow:0 12px 32px rgba(255,107,53,.25)}
.yml-card-discovery{border:2px solid rgba(108,117,125,.22);background:rgba(var(--bs-body-bg-rgb),.95)}
.yml-card-discovery:hover{border-color:rgba(108,117,125,.45);box-shadow:0 10px 24px rgba(0,0,0,.12)}
.yml-cta-discovery{background:0 0;color:var(--bs-secondary-color);border:1px solid rgba(108,117,125,.35);box-shadow:none}
.yml-card:hover .yml-cta-discovery{background:rgba(108,117,125,.08)}
.yml-discovery-badge{font-size:var(--text-fine);font-weight:700;color:var(--bs-secondary-color);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.06em}
.yml-img-wrap{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;background:var(--bs-light)}
.yml-img-wrap img{width:100%;height:100%;object-fit:contain;padding:var(--space-2);transition:transform .22s ease}
.yml-card:hover .yml-img-wrap img{transform:scale(1.05)}
.yml-discount-badge{position:absolute;top:8px;right:8px;background:#dc3545;color:#fff;font-size:var(--text-fine);font-weight:700;border-radius:50%;width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;box-shadow:0 2px 6px rgba(220,53,69,.4)}
.yml-featured-crown{position:absolute;top:8px;left:8px;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;font-size:var(--text-fine);font-weight:700;border-radius:20px;padding:var(--space-1) .5rem;line-height:1.3;box-shadow:0 2px 6px rgba(255,107,53,.4)}
.yml-body{padding:var(--space-3)}
.yml-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--space-2);color:var(--bs-body-color)}
.yml-price-row{display:flex;align-items:baseline;gap:.4rem;margin-bottom:var(--space-2);flex-wrap:wrap}
.yml-price{font-size:var(--font-size-md);font-weight:700;color:var(--bs-body-color)}
.yml-was{font-size:var(--text-fine);color:var(--bs-secondary-color);text-decoration:line-through}
.yml-save{font-size:var(--text-fine);font-weight:700;color:#198754;background:rgba(25,135,84,.1);border-radius:4px;0 .35rem}
.yml-store{font-size:var(--text-fine);color:var(--bs-secondary-color);margin-bottom:var(--space-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yml-cta{display:block;text-align:center;font-size:var(--text-fine);font-weight:700;border-radius:8px;padding:var(--space-2) .5rem;margin-top:auto;transition:filter .15s ease}
.yml-cta-related{background:var(--bs-primary);color:#fff}
.yml-card:hover .yml-cta-related{filter:brightness(1.1)}
.yml-cta-featured{background:linear-gradient(90deg,#ff6b35,#f7931e);color:#fff;box-shadow:0 2px 8px rgba(255,107,53,.35)}
.yml-card:hover .yml-cta-featured{filter:brightness(1.12)}
.scroll-to-top{position:fixed;bottom:1.5rem;right:1.25rem;width:42px;height:42px;border-radius:50%;background:var(--bs-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-md);z-index:1030;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.scroll-to-top.visible{opacity:1;pointer-events:auto}
.scroll-to-top:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.22)}
.product-peek-strip{display:flex;align-items:stretch;gap:6px;margin-top:var(--space-2);height:52px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bs-tertiary-bg,#f8f9fa);border:1px solid var(--bs-border-color,#dee2e6);padding:6px;box-sizing:border-box}
.product-peek-ghost{flex:0 0 44px;border-radius:4px;background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.08);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.product-peek-ghost--left::after{content:'';position:absolute;inset:0;pointer-events:none}
.product-peek-ghost--right::after{content:'';position:absolute;inset:0;pointer-events:none}
.product-peek-ghost img{width:100%;height:100%;object-fit:cover;object-position:center;opacity:.45;filter:blur(1.5px);display:block}
.product-peek-active{flex:1 1 auto;border-radius:4px;background:var(--bs-body-bg,#fff);border:2px solid var(--bs-primary,#0d6efd);overflow:hidden;display:flex;align-items:center;justify-content:center}
.product-peek-active img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}
.product-peek-count{position:absolute;bottom:3px;right:4px;font-size:var(--text-fine);font-weight:600;color:var(--bs-secondary-color,#6c757d);line-height:1;z-index:2;pointer-events:none}
@media (prefers-color-scheme:dark){.product-peek-ghost.product-peek-ghost{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1)}
}
.product-peek-ghost--left::after{background:linear-gradient(to right,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 100%)}
.product-peek-ghost--right::after{background:linear-gradient(to left,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 100%)}
.related-deal-card{background-color:var(--bs-card-bg,#1e1e2e)!important;border-color:rgba(255,255,255,.12)!important}
.related-deal-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.45);border-color:rgba(255,255,255,.25)}
.related-deal-img-wrap{background:rgba(255,255,255,.05)!important}
.related-deal-savings{color:#4ade80!important}
.related-deal-store,.related-deal-was{color:rgba(255,255,255,.55)!important}
.product-cta-btn.animate-pulse{box-shadow:0 0 0 0 rgba(var(--bs-primary-rgb,13,110,253),.5)!important}
.ph{margin-bottom:var(--space-3)}
.ph h1{margin-bottom:var(--space-1);line-height:1.2}
.ph__meta{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .4rem;font-size:var(--font-size-sm);color:var(--bs-secondary-color,#666);margin-bottom:var(--space-2);line-height:1.6}
.ph__meta .sep{color:var(--bs-border-color,#ddd);padding:0 .05rem}
.ph p{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#666);margin:0 0 .45rem;line-height:1.45}
.ph__dd{position:relative;display:inline-block}
.ph__dd>summary{display:inline-flex;align-items:center;gap:.2rem;cursor:pointer;font-size:var(--text-fine);padding:var(--space-1) .42rem;border-radius:.3rem;border:1px solid var(--bs-border-color,#ccc);background:var(--bs-body-bg,#fff);color:var(--bs-secondary-color,#444);list-style:none;user-select:none;white-space:nowrap}
.ph__dd>summary::-webkit-details-marker{display:none}
.ph__dd>summary .dd-caret{font-size:var(--text-fine);color:var(--bs-secondary-color,#aaa);0}
.ph__dd>summary .dd-label{color:var(--bs-secondary-color,#999);font-size:var(--text-fine);0}
.ph__dd__panel{position:absolute;top:calc(100% + 3px);left:0;z-index:400;background:var(--bs-body-bg,#fff);border:1px solid var(--bs-border-color,#d0d0d0);border-radius:.4rem;box-shadow:0 4px 14px rgba(0,0,0,.11);min-width:160px;max-height:260px;overflow-y:auto;padding:var(--space-1) 0}
.ph__dd--right .ph__dd__panel{left:auto;right:0}
.ph__dd__panel a,.ph__dd__panel span{display:block;padding:var(--space-1) .85rem;font-size:var(--text-fine);text-decoration:none;color:var(--bs-body-color,#333);white-space:nowrap}
.ph__dd__panel a:hover{background:var(--bs-tertiary-bg,#f4f6ff);color:var(--bs-primary)}
.ph__dd__panel .dd-active{font-weight:600;color:var(--bs-primary);background:var(--bs-primary-bg-subtle,#eef3ff)}
.ph__dd__panel::-webkit-scrollbar{width:4px}
.ph__dd__panel::-webkit-scrollbar-thumb{background:var(--bs-border-color,#ddd);border-radius:4px}
.cat-intro{font-size:var(--text-sm-plus);color:var(--bs-secondary-color,#555);line-height:1.6;margin:var(--space-2) 0 1.1rem}
.category-editorial{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--bs-border-color,#dee2e6);font-size:var(--text-sm-plus);line-height:1.65;color:var(--bs-body-color,#333)}
.category-editorial h2{margin:var(--space-5) 0 .35rem}
.category-editorial h2:first-child{margin-top:0}
.category-editorial h3{margin:var(--space-4) 0 .3rem;color:var(--bs-secondary-color)}
.category-editorial h4,.category-editorial h5{margin:var(--space-3) 0 .25rem;color:var(--bs-secondary-color)}
.category-editorial p{font-size:var(--text-sm-plus);line-height:1.65;color:var(--bs-secondary-color);margin-bottom:var(--space-2)}
.category-editorial strong{font-weight:600;color:var(--bs-body-color,#222)}
.brand-editorial,.store-editorial{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--bs-border-color,#e9ecef);font-size:var(--text-sm-plus);line-height:1.7;color:var(--bs-body-color,#333)}
.brand-editorial h2,.store-editorial h2{margin:var(--space-5) 0 .4rem}
.brand-editorial h2:first-child,.store-editorial h2:first-child{margin-top:0}
.brand-editorial p,.store-editorial p{margin:0 0 .7rem}
.brand-editorial strong,.store-editorial strong{font-weight:600;color:var(--bs-body-color,#222)}
.admin-feature-bar{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:rgba(20,20,28,.94);backdrop-filter:blur(6px);color:#fff;font-size:var(--text-fine);padding:7px 18px;display:flex;align-items:center;gap:12px}
.admin-feature-bar strong{color:#ffd966}
.admin-feature-bar span{opacity:.76}
.admin-feature-bar .admin-bar-hi{color:#6cf17c;font-weight:700}
.admin-feature-form{position:absolute;top:7px;left:7px;z-index:100;margin:0;padding:0;line-height:1}
.admin-feature-form button{width:34px;height:34px;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:rgba(25,135,84,.92);color:#fff;font-size:var(--font-size-md);line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.45);transition:transform .12s,box-shadow .12s;padding:0}
.admin-feature-form button:hover{transform:scale(1.18);box-shadow:0 4px 14px rgba(0,0,0,.5)}
.admin-feature-form.is-featured button{background:rgba(200,140,0,.95);border-color:#ffd966}
.admin-feature-form--inline{position:static;display:block;margin:var(--space-2) 0 0;padding:0;line-height:1}
.admin-feature-form--inline button{width:100%;height:auto;border-radius:8px;padding:var(--space-2) .75rem;font-size:var(--font-size-sm);font-weight:600;gap:.35rem;display:flex;align-items:center;justify-content:center}
.category-list-item{display:flex;justify-content:space-between;align-items:center;background:var(--bs-body-bg,#fff)!important;color:var(--bs-body-color,#212529)!important;border-color:var(--bs-border-color,#dee2e6)!important}
.category-list-item a{color:var(--bs-body-color,#212529)!important;text-decoration:none}
.category-list-item a:hover{color:var(--bs-primary)!important}
.category-list-item .list-item-count{color:var(--bs-secondary-color,#6c757d)!important}
.footer-version-label{font-size:var(--text-fine);color:#e8e8e8;letter-spacing:.03em;opacity:.45}
.mob-sidebar-chk{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.mob-sidebar-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:var(--space-2) 0;font-size:var(--font-size-sm);font-weight:600;color:var(--bs-secondary-color,#6c757d);user-select:none}
.mob-sidebar-chevron{transition:transform .2s ease;font-size:var(--text-fine)}
.mob-sidebar-chk:checked~.mob-sidebar-label .mob-sidebar-chevron{transform:rotate(180deg)}
.mob-sidebar-content{display:none}
.mob-sidebar-chk:checked~.mob-sidebar-content{display:block}
.fsr{display:flex;align-items:flex-start;flex-wrap:nowrap;gap:.4rem;margin-bottom:var(--space-1);font-size:var(--font-size-sm);overflow:hidden}
.fsr__label{color:var(--bs-secondary-color);white-space:nowrap;flex-shrink:0;font-size:var(--text-fine);padding-top:var(--space-1)}
.fsr__wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.fsr__wrap::-webkit-scrollbar{display:none}
.fsr__track{display:flex;flex-wrap:wrap;gap:.25rem .3rem;align-items:center}
.fsr__track a{display:inline-flex;align-items:center;padding:var(--space-1) .55rem;font-size:var(--text-fine);font-weight:400;white-space:nowrap;color:var(--bs-secondary-color);text-decoration:none;border:1px solid var(--bs-border-color);border-radius:999px;background:0 0;transition:background-color .12s ease,border-color .12s ease,color .12s ease}
.fsr__track a:hover{color:var(--bs-body-color);border-color:var(--bs-secondary-color);background-color:var(--bs-secondary-bg,rgba(0,0,0,.04));text-decoration:none}
.fsr__track .dot{display:none}
.fsr-section{margin-top:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--bs-border-color,#dee2e6)}
.filter-chip-group{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;gap:.5rem;padding:var(--space-2) 0;margin:var(--space-2) 0}
.filter-chip-group::-webkit-scrollbar{display:none}
.filter-chip{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:var(--space-2) 1rem;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;border:1px solid var(--bs-border-color);border-radius:999px;background-color:transparent;color:var(--bs-body-color);text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease;flex-shrink:0;cursor:pointer}
.filter-chip.active,.filter-chip:hover{background-color:var(--bs-primary);color:#fff;border-color:var(--bs-primary);text-decoration:none}
.cta-card{background:var(--bs-primary)!important;color:var(--bs-white)!important;border-radius:var(--radius-sm)}
.cta-card .lead,.cta-card h1,.cta-card h2,.cta-card h3,.cta-card h4,.cta-card p{color:var(--bs-white)!important}
.cta-card .btn-cta-primary{background:var(--bs-white)!important;color:var(--bs-primary)!important;border:2px solid var(--bs-white)!important}
.cta-card .btn-cta-primary:hover{background:0 0!important;color:var(--bs-white)!important;border-color:var(--bs-white)!important}
.cta-card .btn-cta-secondary{background:0 0!important;color:var(--bs-white)!important;border:2px solid var(--bs-white)!important}
.cta-card .btn-cta-secondary:hover{background:var(--bs-white)!important;color:var(--bs-primary)!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:var(--space-6) 1rem;text-align:center;color:var(--bs-secondary-color,#6c757d);border:1px dashed var(--bs-border-color,#dee2e6);border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(13,110,253,.04),rgba(13,110,253,.02))}
.empty-state .empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;background:rgba(13,110,253,.12);color:var(--bs-primary,#0d6efd)}
.theme-picker-card{transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease}
.theme-picker-card:focus-within,.theme-picker-card:hover{transform:translateY(-2px);box-shadow:0 .5rem 1.25rem rgba(15,23,42,.12);border-color:var(--bs-primary,#0d6efd)!important}
.hero-overlay{border-radius:inherit;overflow:hidden;z-index:1;background:linear-gradient(to right,rgba(0,0,0,.55) 0,rgba(0,0,0,.5) 65%,rgba(0,0,0,.15) 85%,rgba(0,0,0,.05) 100%)}
.hero-btn .bi{vertical-align:middle;line-height:1}
.hp-list-item{min-width:0;text-decoration:none}
.hp-list-item:hover{background:var(--bs-tertiary-bg)}
.hp-list-item:hover .text-body{color:var(--bs-link-color)}
.hp-dot{flex-shrink:0;width:7px;height:7px;border-radius:50%;display:inline-block}
.hp-dot--success{background:var(--bs-success)}
.hp-dot--warning{background:var(--bs-warning)}
.hp-list-name{flex-grow:1;font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.text-logo-wrap{font-weight:800;font-family:var(--logo-font-family);letter-spacing:-.025em;line-height:1.15;--logo-track:min(80vw,26rem);--logo-cap:clamp(1.5rem,1rem + 1.5vw,1.8rem);font-size:clamp(.9rem,calc(var(--logo-track) / (var(--logo-chars,13) * .6)),var(--logo-cap));position:relative;gap:0}
.text-logo-tld{font-weight:400;color:#8a8f98}
.text-logo-accent{color:var(--bs-primary)}
.mobile-nav-section-label{font-size:var(--text-fine);letter-spacing:.06em;text-transform:uppercase}
.icon-cat{font-size:2rem}
/* Homepage category tiles: even padding, restrained hover lift, reduced-motion safe. */.category-tile-body{padding:.9rem .5rem}
.category-tile-icon{align-items:center;height:2rem;justify-content:flex-end;line-height:1.35;margin-bottom:.5rem!important;min-width:2rem}
.category-card .card-title{display:flex;align-items:center;justify-content:center;line-height:1.35;min-height:2.7em;text-align:center}
.category-card{border:1px solid var(--bs-border-color)!important;border-radius:.6rem;transition:border-color .15s,box-shadow .15s}
.category-card:hover{border-color:var(--bs-primary)!important;box-shadow:0 2px 10px rgba(var(--bs-primary-rgb),.10)}
.category-tile-count{position:absolute;top:-.5rem;right:-.75rem;min-width:1.15rem;height:1.15rem;padding:0 .3rem;display:flex;align-items:center;justify-content:center;border-radius:1rem;background:var(--bs-tertiary-bg);color:var(--bs-secondary-color);font-size:.7rem;font-weight:600;line-height:1;border:2px solid var(--bs-body-bg)}
.category-card:hover .category-tile-count{background:var(--bs-primary);color:#fff}
.icon-xl{font-size:48px}
.icon-sm-fixed{font-size:var(--text-sm-plus);flex-shrink:0}
.pdp-list-item,.sitemap-list-item{background:#fff!important;border-color:#dee2e6!important}
.pdp-list-wrap{background:#fff!important}
.kwh-hero{background:linear-gradient(135deg,#0d6efd 0,#0a58ca 50%,#084298 100%);border-radius:var(--radius-lg);color:#fff;position:relative;overflow:hidden}
.kwh-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 20%,rgba(255,255,255,.1) 0,transparent 55%),radial-gradient(ellipse at 20% 90%,rgba(255,255,255,.06) 0,transparent 50%);pointer-events:none}
.kwh-hero-inner{position:relative;z-index:1}
.kwh-stat-pill{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:2rem;padding:var(--space-1) .85rem;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}
.kwh-stat-pill .kwh-num{font-size:var(--font-size-md);font-weight:700}
.kwh-badge-primary{background:rgba(255,255,255,.2);color:#fff;font-size:var(--text-fine);letter-spacing:.06em;text-transform:uppercase}
.kwh-badge-secondary{background:rgba(255,255,255,.15);color:rgba(255,255,255,.85);font-size:var(--text-fine)}
.kwh-hero-title{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:700;line-height:1.15;color:#fff}
.kwh-hero-desc{max-width:560px;color:rgba(255,255,255,.85);font-size:var(--text-sm-plus);line-height:1.55}
.kwh-hero-desc-alt{max-width:560px;color:rgba(255,255,255,.8);font-size:var(--text-sm-plus);line-height:1.5}
.kwh-search{max-width:480px}
.kwh-trust-sep{opacity:.8;margin-left:var(--space-1)}
.kwh-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--bs-border-color,#dee2e6)}
.kwh-section-head h2{margin:0}
.kwh-section-head a{font-size:var(--text-fine);text-decoration:none;color:var(--bs-primary);white-space:nowrap}
.kwh-section-head a:hover{text-decoration:underline}
.kwh-cat-tile{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) .85rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--bs-border-radius,.375rem);text-decoration:none;color:var(--bs-body-color);background:var(--bs-body-bg,#fff);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;height:100%}
.kwh-cat-tile:hover{border-color:var(--bs-primary,#0d6efd);box-shadow:0 2px 8px rgba(13,110,253,.12);transform:translateY(-1px);color:var(--bs-primary,#0d6efd)}
.kwh-cat-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.3}
.kwh-cat-count{font-size:var(--text-fine);font-weight:700;background:var(--bs-primary-bg-subtle,#cfe2ff);color:var(--bs-primary-text-emphasis,#052c65);border-radius:2rem;padding:var(--space-1) .55rem;margin-left:var(--space-2);flex-shrink:0}
.kwh-price-card{border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;background:var(--bs-body-bg,#fff);height:100%;position:relative;overflow:hidden}
.kwh-price-card::after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--bs-primary,#0d6efd);transform-origin:left;transform:scaleX(0);transition:transform .3s ease}
.kwh-price-card:hover::after{transform:scaleX(1)}
.kwh-price-label{font-weight:700;font-size:var(--text-sm-plus)}
.kwh-price-count{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);margin-top:var(--space-1)}
.kwh-price-bar-track{height:5px;background:var(--bs-border-color,#dee2e6);border-radius:3px;margin-top:var(--space-3);overflow:hidden}
.kwh-price-bar-fill{height:100%;background:linear-gradient(90deg,var(--bs-primary,#0d6efd),#6ea8fe);border-radius:3px;transition:width .6s ease}
.kwh-recent-card{display:block;text-decoration:none;color:var(--bs-body-color);border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--radius-md);overflow:hidden;height:100%;transition:box-shadow .18s ease,transform .18s ease;background:var(--bs-body-bg,#fff)}
.kwh-recent-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-3px);color:var(--bs-body-color)}
.kwh-recent-img{width:100%;height:150px;object-fit:contain;background:var(--bs-secondary-bg,#f8f9fa);padding:var(--space-2);display:block}
.kwh-recent-img-placeholder{width:100%;height:150px;background:var(--bs-secondary-bg,#f8f9fa);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--bs-secondary-color,#6c757d)}
.kwh-recent-body{padding:var(--space-3) .75rem .75rem}
.kwh-recent-cat{font-size:var(--text-fine);text-transform:uppercase;letter-spacing:.07em;color:var(--bs-primary,#0d6efd);font-weight:600;margin-bottom:var(--space-1)}
.kwh-recent-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.2em}
.kwh-recent-price{margin-top:var(--space-2);font-weight:700;font-size:var(--font-size-sm);color:var(--bs-body-color)}
.kwh-recent-brand{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.kwh-brand-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) .85rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--bs-border-radius,.375rem);text-decoration:none;color:var(--bs-body-color);background:var(--bs-body-bg,#fff);transition:border-color .15s ease,background .15s ease}
.kwh-brand-row:hover{border-color:var(--bs-warning,#ffc107);background:var(--bs-warning-bg-subtle,#fff8e1);color:var(--bs-body-color)}
.kwh-brand-name{font-size:var(--font-size-sm);font-weight:600}
.kwh-brand-badge{font-size:var(--text-fine);font-weight:700;background:var(--bs-warning-bg-subtle,#fff3cd);color:var(--bs-warning-text-emphasis,#664d03);border-radius:2rem;padding:var(--space-1) .55rem;flex-shrink:0}
.kwh-store-row{display:block;padding:var(--space-2) .85rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--bs-border-radius,.375rem);text-decoration:none;color:var(--bs-body-color);background:var(--bs-body-bg,#fff);transition:border-color .15s ease,background .15s ease}
.kwh-store-row:hover{border-color:var(--bs-success,#198754);background:var(--bs-success-bg-subtle,#d1e7dd);color:var(--bs-body-color)}
.kwh-store-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}
.kwh-store-name{font-size:var(--font-size-sm);font-weight:600}
.kwh-store-count{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.kwh-store-bar-track{height:3px;background:var(--bs-border-color,#dee2e6);border-radius:2px;overflow:hidden}
.kwh-store-bar-fill{height:100%;background:var(--bs-success,#198754);border-radius:2px}
.kwh-tag{display:inline-flex;align-items:center;gap:.35rem;padding:var(--space-1) .7rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:2rem;text-decoration:none;color:var(--bs-body-color);font-size:var(--text-fine);background:var(--bs-body-bg,#fff);transition:border-color .12s ease,background .12s ease,color .12s ease;white-space:nowrap}
.kwh-tag:hover{border-color:var(--bs-primary,#0d6efd);background:var(--bs-primary-bg-subtle,#cfe2ff);color:var(--bs-primary-text-emphasis,#052c65)}
.kwh-tag-count{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.kwh-search .form-control{border-right:0;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.15);color:#fff;border-radius:var(--radius-md) 0 0 var(--radius-md)}
.kwh-search .form-control::placeholder{color:rgba(255,255,255,.65)}
.kwh-search .form-control:focus{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.7);box-shadow:none;color:#fff}
.kwh-search .btn{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.2);color:#fff;font-weight:600;border-radius:0 var(--radius-md) var(--radius-md) 0}
.kwh-search .btn:hover{background:rgba(255,255,255,.3)}
.kwh-quicklinks{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:var(--space-3)}
.kwh-quicklink{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--text-fine);font-weight:600;padding:var(--space-1) .75rem;border-radius:2rem;text-decoration:none;border:1px solid rgba(255,255,255,.35);color:rgba(255,255,255,.9);background:rgba(255,255,255,.1);transition:background .15s ease}
.kwh-quicklink:hover{background:rgba(255,255,255,.22);color:#fff}
.kwh-footer{background:var(--bs-secondary-bg,#f8f9fa);border-radius:var(--bs-border-radius-lg,.75rem);padding:var(--space-5);border:1px solid var(--bs-border-color,#dee2e6)}
.coupon-card{border-radius:var(--radius-lg);overflow:hidden}
.cc-expiry-label{font-size:var(--text-fine);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.product-img-placeholder{min-height:280px;display:flex;align-items:center;justify-content:center;background:#f8f9fa}
.product-badge-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:7px;background:#0a7abf;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.product-share-group{position:absolute;top:0;left:0;margin:var(--space-2);z-index:20;display:flex;flex-direction:column;gap:5px;pointer-events:auto}
.psb-pin{width:38px;height:38px;border-radius:7px;display:flex;align-items:center;justify-content:center;text-decoration:none;background:#e60023;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:transform .15s ease}
.psb-pin:hover{transform:scale(1.1);text-decoration:none}
.psb-pin svg{display:block}
.a2a_kit.a2a_kit_size_38{width:38px}
.product-discount-off{font-size:var(--text-fine);opacity:.9}
.product-main-img{max-height:420px;width:100%;object-fit:contain;object-position:center}
.product-img-min-h{min-height:280px}
.color-card-swatch{height:72px}
.color-dot-swatch{width:12px;height:12px;flex-shrink:0}
.custom-field-image{max-width:200px;max-height:200px}
.social-card{transition:box-shadow .15s,transform .15s}
.social-card:hover{box-shadow:0 .25rem .75rem rgba(0,0,0,.1);transform:translateY(-2px)}
.fb-page-wrapper iframe{border-radius:var(--radius-md)}
.pdp-attr-link-icon{font-size:var(--text-sm-plus);flex-shrink:0}
.cursor-pointer{cursor:pointer}
.pdp-sticky-name{max-width:150px}
.price-display{line-height:1}
.mobile-offcanvas-menu .nav-link,.navbar .nav-link{min-height:44px;display:inline-flex;align-items:center}
.navbar-toggler{min-width:44px;min-height:44px}
.btn-close{min-width:44px;min-height:44px}
.store-logo-wrap{height:56px;padding:6px 10px;overflow:hidden}
.store-logo-img{max-height:100%;max-width:100%;object-fit:contain}
.store-discount-lbl{font-size:var(--text-sm-plus)}
.search-landing-form{max-width:620px}
.not-found-form-wrap{max-width:500px}
.icon-32{font-size:32px}
.icon-custom-sz{font-size:var(--icon-sz,1em);line-height:1}
.store-logo{max-height:100px;max-width:100%;object-fit:contain}
.footer-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:rgba(var(--bs-primary-rgb),.1);border-radius:8px;margin-bottom:var(--space-2);transition:background-color .2s ease}
.footer-icon:hover{background-color:rgba(var(--bs-primary-rgb),.15)}
.footer-icon i{font-size:var(--font-size-xl);color:var(--bs-primary)}
.footer-icon-wrapper{display:flex;flex-direction:column;align-items:center;text-align:center}
.footer-icon-text{font-size:var(--font-size-sm);font-weight:600;color:var(--bs-body-color)}
.breadcrumb-mobile{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none}
.breadcrumb-mobile::-webkit-scrollbar{display:none}
.breadcrumb-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:767.98px){.breadcrumb-container.breadcrumb-container{padding:.5rem 0}
.breadcrumb-item.breadcrumb-item{display:inline-flex;align-items:center}
}
.store-logo-box,.store-logo-box-sm,.store-logo-box-xs{display:flex;align-items:center;justify-content:center;background-color:var(--bs-tertiary-bg,#f4f6f8);border:1px solid var(--bs-border-color,#dde1e7);border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}
.store-logo-box{width:64px;height:64px}
.store-logo-box-md{width:56px;height:56px}
.store-logo-box-lg{width:112px;height:112px}
.store-logo-box-sm{width:40px;height:40px}
.store-logo-box-xs{width:48px;height:48px}
.store-logo-box img,.store-logo-box-lg img,.store-logo-box-md img,.store-logo-box-sm img,.store-logo-box-xs img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.min-w-110{min-width:110px}
.w-180{width:180px}
.w-60{width:60px}
.w-120{width:120px}
.fixed-width-320{width:320px;max-width:100%}
.fixed-width-380{width:380px;max-width:100%}
.product-thumb{width:48px;height:48px;object-fit:cover}
.store-logo-preview{max-width:160px;max-height:80px;object-fit:contain}
.resize-vertical{resize:vertical}
.card-rounded-15{border-radius:15px}
.progress.progress-thin{height:6px}
.theme-card-img-fallback{height:200px;display:flex;align-items:center;justify-content:center}
.share-toggle-check{display:none}
.share-btn-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}
.share-btn-item .btn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-fine)}
.share-extra-panel{display:none;margin-top:var(--space-2)}
.share-toggle-check:checked~.share-extra-panel{display:block}
.share-toggle-check:checked~.share-btn-row .sxt-show{display:none}
.share-toggle-check:checked~.share-btn-row .sxt-hide{display:inline}
.sxt-hide{display:none}
.pill-base{display:inline-block;padding:var(--space-1) .75rem;font-size:var(--font-size-sm);font-weight:600;border-radius:50rem;line-height:1.2}
.pill-done,.pill-success{background-color:var(--bs-success-bg-subtle);color:var(--bs-success-text-emphasis)}
.pill-left,.pill-warn{background-color:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis)}
.pill-none,.pill-muted{background-color:var(--bs-secondary-bg-subtle);color:var(--bs-secondary-text-emphasis)}
.pill-info{background-color:var(--bs-info-bg-subtle);color:var(--bs-info-text-emphasis)}
.truncate-80{max-width:80px}
.truncate-220{max-width:220px}
.step-circle{background-color:var(--bs-tertiary-bg);color:var(--bs-body-color)}
.step-circle-primary{background-color:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis)}
.code-snippet{display:block;padding:var(--space-1) .5rem;background-color:var(--bs-tertiary-bg);border-radius:.25rem;font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--bs-body-color);word-break:break-all}
.scroll-y{max-height:240px}
.scroll-y-md{max-height:320px}
.scroll-y-lg{max-height:380px}
.merchant-card{background-color:var(--bs-card-bg);border:1px solid var(--bs-border-color);border-radius:var(--radius-lg);padding:var(--space-4);transition:box-shadow .15s ease,transform .15s ease}
.merchant-card:hover{transform:translateY(-3px);box-shadow:0 .5rem 1.5rem rgba(0,0,0,.08)}
.nav-section-label{font-size:var(--text-fine);text-transform:uppercase;letter-spacing:.04em;color:var(--bs-secondary-color);padding:var(--space-2) 1rem .25rem;font-weight:600}
.nav-item-beta{font-size:var(--text-fine);font-weight:600;letter-spacing:.03em;background:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis);0 .35rem;border-radius:.25rem;margin-left:auto;text-transform:uppercase}
.log-tail{margin:0;padding:var(--space-4);max-height:320px;overflow-y:auto;font-size:var(--text-fine);background-color:var(--bs-tertiary-bg);border-radius:0 0 var(--radius-md) var(--radius-md);color:var(--bs-secondary-color);white-space:pre-wrap;word-break:break-all}
/* REMOVED (R12): .theme-card-img,.theme-card-img-placeholder - unused selectors per 2026-09-11 CSS audit */
.navbar-toggler{min-width:44px;min-height:44px}
nav[aria-label=breadcrumb]{margin-bottom:var(--space-4)}
@media (max-width:767.98px){.breadcrumb,.breadcrumb .breadcrumb-item,.breadcrumb .breadcrumb-item a,.breadcrumb .breadcrumb-item.active.breadcrumb,.breadcrumb .breadcrumb-item,.breadcrumb .breadcrumb-item a,.breadcrumb .breadcrumb-item.active{font-size:var(--text-fine)}
}
.breadcrumb-item.category-crumb,.breadcrumb-item.category-crumb a{font-size:var(--text-fine);color:var(--bs-secondary-color);font-style:italic;opacity:.8}
.breadcrumb-item.category-crumb a:hover{color:var(--bs-body-color);opacity:1}
.breadcrumb-item.active{color:var(--bs-secondary-color);font-weight:400}
.static-page-hero{background:var(--bs-primary);color:#fff!important;padding:var(--space-9) 0;text-align:center;margin-bottom:var(--space-6)}
.static-page-hero .lead,.static-page-hero .text-body-secondary,.static-page-hero [class*=text-],.static-page-hero h1,.static-page-hero h2,.static-page-hero h3,.static-page-hero p{opacity:1}
.static-page-cta{background:var(--bs-primary);color:#fff!important;padding:var(--space-6) 1.5rem;margin-top:var(--space-6)}
.static-page-cta .lead,.static-page-cta .text-body-secondary,.static-page-cta [class*=text-],.static-page-cta h1,.static-page-cta h2,.static-page-cta h3,.static-page-cta p{opacity:1}
.site-logo{height:60px;width:auto}
@media (max-width:400px){.site-header-main-nav .container-xl{justify-content:space-between;align-items:center!important;width:100%!important;padding-left:8px!important;padding-right:8px!important}
}
/* N72-FIX (2026-07-03): removed container-type:inline-size — was making the brand's   flex-basis treat content as 0 in flex layout, which collapsed the brand's effective   inline-size and made cqi-based font scaling resolve to a tiny value (rendering at   ~10px on iPhone 12). The tagline now uses viewport units (vw) for fluid sizing   instead, so container queries are no longer needed here. Kept the max-width cap   (calc(100% - 52px)) so the brand can never grow wide enough to push the hamburger   toggle to the next row, and removed overflow:hidden so the auto-fit tagline can   stay fully visible. */.navbar-brand{flex-shrink:1;min-width:0;max-width:calc(100% - 52px);overflow:visible}
.site-logo{max-width:calc(100vw - 80px)!important;height:auto!important}
@media (min-width:401px){.site-header-main-nav .container-xl{padding-left:1.25rem;padding-right:1.25rem}
}
.container-xl{max-width:1200px}
.aa-product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;align-items:stretch}
.aa-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;align-items:stretch}
@media (min-width:992px){.aa-product-grid,.aa-card-grid.aa-product-grid,.aa-card-grid{grid-template-columns:repeat(var(--grid-cols-desktop,4),1fr)}
}
.hero-text-container{max-width:75%;width:75%}
@media (max-width:575.98px){.aa-product-grid,.aa-card-grid.aa-product-grid,.aa-card-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}
}
.deal-related-reading{grid-template-columns:repeat(2,1fr);gap:.5rem}
.hero-bg-image,.hero-bg-picture,.hero-section,.site-hero-final{max-height:none}
.hero-text-container .display-5{line-height:1.25;margin-bottom:.6rem!important}
.hero-text-container .fs-5{margin-bottom:.85rem}
.hero-overlay{background:linear-gradient(to right,rgba(0,0,0,.65) 0,rgba(0,0,0,.6) 70%,rgba(0,0,0,.25) 100%)!important}
.specs-table{border:none!important;background:0 0!important}
.specs-table th,.specs-table thead{display:none!important}
.specs-table tbody{display:block!important;width:100%!important}
.specs-table tr{display:block!important;background:var(--bs-card-bg,#fff)!important;border:1px solid var(--bs-border-color,#dee2e6)!important;border-radius:var(--radius-md)!important;margin-bottom:.75rem!important;padding:.5rem .75rem!important;box-shadow:0 2px 4px rgba(0,0,0,.03)!important;width:100%!important}
.specs-table td{text-align:right;width:100%!important}
.specs-table td:last-child{border-bottom:none!important}
.specs-table td::before{text-align:left;margin-right:.5rem!important;font-size:var(--font-size-sm)}
.ph{margin-bottom:.5rem}
.ph__meta{font-size:var(--text-fine);gap:.2rem .3rem;margin-bottom:.4rem}
.ph__desc{font-size:var(--text-fine);margin:0 auto .3rem}
.ph__dd>summary{font-size:var(--text-fine);padding:.15rem .35rem}
.fsr{flex-wrap:wrap}
.fsr__label{width:100%;padding-top:0;margin-bottom:.15rem}
.fsr__wrap{width:100%}
.js-product-card .card-body,.product-card .card-body{padding:var(--space-2) var(--space-3)}
.product-card-badge-overlay{gap:4px}
.product-card-badge-overlay .badge{padding:.2rem .4rem;font-size:var(--text-fine)}
.kwh-stat-pill{font-size:var(--text-fine)}
.kwh-hero{padding:1.25rem}
@media (max-width:767.98px){.rsc-hero.rsc-hero{flex-direction:column}
}
.rsc-grid{grid-template-columns:repeat(2,1fr)}
.related-reading-block{padding:.75rem .9rem;margin:1.25rem 0 .75rem}
.related-reading-block__heading{font-size:var(--text-sm-plus)}
.js-product-card.card,.product-card.card{height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.js-product-card.card:hover,.product-card.card:hover,.js-product-card.card:focus-visible,.product-card.card:focus-visible{will-change:transform}
.js-product-card.card:hover,.product-card.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.js-product-card .card-body,.product-card .card-body{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.js-product-card .card-body.pt-0,.product-card .card-body.pt-0{flex:0 0 auto}
.js-product-card .product-name-container,.product-card .product-name-container{height:4.5em;overflow:hidden}
.js-product-card .product-name-container .card-title,.product-card .product-name-container .card-title{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5;margin-bottom:0}
.js-product-card .category-brand-container,.product-card .category-brand-container{height:1.5em;overflow:hidden}
.js-product-card .category-brand-container .product-card-meta,.product-card .category-brand-container .product-card-meta{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-bottom:0}
.js-product-card .card-body.product-card-price-body,.product-card .card-body.product-card-price-body{margin-top:auto;flex:0 0 auto}
.js-product-card .product-card-price-wrap,.product-card .product-card-price-wrap{display:flex;align-items:center}
.js-product-card .button-container,.product-card .button-container{display:flex;flex-direction:column;width:100%}
.js-product-card .button-container>div,.product-card .button-container>div{width:100%}
.js-product-card .btn,.product-card .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;white-space:normal;line-height:1.2;width:100%}
.product-card-img-wrap{width:100%;aspect-ratio:1/1;height:clamp(10rem,48vw,15.5rem);min-height:0;flex-shrink:0;overflow:hidden;background-color:var(--bs-tertiary-bg);background-image:var(--product-img-fallback);background-repeat:no-repeat;background-position:center;background-size:contain;display:flex;align-items:center;justify-content:center}
@media (min-width:576px) and (max-width:991.98px){.product-card-img-wrap.product-card-img-wrap{height:clamp(11rem,28vw,14rem)}
}
.product-card-img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center;padding:var(--space-1);display:block;background-color:#fff;color:transparent}
.product-card-img.product-card-img--hidden{display:none!important}
.product-name-container .card-title{color:var(--bs-primary);text-decoration:none}
.product-card-link-block{color:inherit}
.product-card-link-block:hover .card-title{text-decoration:underline}
.specs-table a{color:var(--bs-primary);text-decoration:none}
.coupon-advertiser-link{color:var(--bs-primary);text-decoration:none}
.footer-community-link{color:var(--bs-primary);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:var(--bs-small,.875em)}
.product-card-meta{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d);margin-bottom:var(--space-2)}
.product-card-meta a{color:inherit;text-decoration:none}
.product-card-meta a:hover{text-decoration:underline}
.product-card-editorial{padding-top:var(--space-1);border-top:1px dashed var(--bs-border-color,#dee2e6)}
.product-card-editorial-line{color:var(--bs-secondary-color,#6c757d);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-card-editorial-line i{color:var(--bs-primary)}
.product-discount-badge{width:52px;height:52px;min-width:52px;min-height:52px;font-size:var(--font-size-sm);line-height:1;display:inline-grid;place-items:center;text-align:center;padding:var(--space-1)}
.product-detail-discount-badge{z-index:100!important;pointer-events:auto;width:52px;height:52px;min-width:52px;min-height:52px;display:inline-grid;place-items:center;text-align:center;padding:var(--space-1);font-size:var(--font-size-sm);line-height:1}
.product-detail-discount-badge .product-discount-off,.product-detail-discount-badge small{display:block;font-size:var(--text-fine);line-height:1;text-transform:uppercase;letter-spacing:.04em}
.product-card-badge-overlay{position:absolute;top:0;left:0;margin:var(--space-2);z-index:10;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.product-card-price-wrap a{text-decoration:none}
.product-card-price{font-weight:var(--font-weight-bold);font-size:var(--font-size-xl);color:var(--bs-body-color)}
.product-card-price-was{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--bs-secondary-color,#6c757d)}
.product-card-price-verified{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d)}
.product-card-premium-badge{font-size:var(--font-size-sm)}
.js-product-card .card h4,.product-card .card h4{line-height:1.3;margin-bottom:var(--space-2);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;min-height:5.2rem;height:5.2rem}
.js-product-card[data-go-url]{cursor:pointer}
.js-product-card[data-go-url]:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}
.card .category-brand-store{line-height:1.2;display:block}
.card .category-brand-store span{display:inline}
.card .category-brand-store span:not(:last-child)::after{content:' - ';color:var(--bs-secondary-color)}
#global-search-form{width:100%}
.search-bar-input-group{position:relative;width:100%;display:flex;flex-wrap:nowrap}
.search-bar-input-group .form-control{flex:1 1 auto;min-width:0;width:0}
@media (max-width:991.98px){.search-btn-text.search-btn-text{display:none}
}
.search-bar-input-group .btn{padding-left:1.1rem;padding-right:1.1rem;flex:0 0 auto;min-width:52px}
.search-bar-input-group .btn-lg{padding-left:var(--space-4);padding-right:var(--space-4);min-width:48px}
.hero-static-bg{min-height:460px;max-height:none}
.search-clear-btn{position:absolute;right:90px;top:50%;transform:translateY(-50%);z-index:5;background:0 0;border:none;cursor:pointer;color:var(--bs-secondary-color,#6c757d);font-size:var(--font-size-base);line-height:1;padding:var(--space-1);display:none}
.search-clear-btn.visible{display:flex;align-items:center;justify-content:center}
.search-clear-btn:hover{color:var(--bs-body-color)}
.card .card-text .bg-danger,.card .card-text .bg-danger *,.card .card-text .bg-info,.card .card-text .bg-info *,.card .card-text .bg-primary,.card .card-text .bg-primary *,.card .card-text .bg-success,.card .card-text .bg-success *{color:var(--bs-white)}
.card .card-text .bg-warning,.card .card-text .bg-warning *{color:var(--bs-dark)}
.card .card-text .bg-danger .text-decoration-line-through,.card .card-text .bg-info .text-decoration-line-through,.card .card-text .bg-primary .text-decoration-line-through,.card .card-text .bg-success .text-decoration-line-through{color:var(--bs-white);text-decoration-color:rgba(255,255,255,0.6)}
.card .card-text .bg-warning .text-decoration-line-through{color:var(--bs-dark);text-decoration-color:rgba(0,0,0,0.45)}
.card-deal-badge{display:block;width:fit-content;white-space:nowrap;font-size:var(--text-fine);font-weight:600;letter-spacing:.02em;padding:.3em .65em;border-radius:2em;line-height:1.4;pointer-events:none}
.new-arrival-item:hover{background:var(--bs-tertiary-bg,#f8f9fa)}
.hero-bg-image,.hero-bg-picture{border-radius:inherit;overflow:hidden;object-fit:cover;object-position:center;display:block}
.hero-text-container{z-index:2;max-width:100%}
.hero-btn-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;width:100%}
.hero-stat-tile .bi,.hero-stat-tile i{vertical-align:middle;line-height:1;display:inline-flex;align-items:center}
.hero-btn{min-height:2.5rem;border-radius:var(--radius-md);font-weight:600;transition:transform .15s ease,box-shadow .15s ease,opacity .2s ease}
.hero-btn:hover,.hero-btn:focus-visible{will-change:transform;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-hero-deals{background-color:var(--btn-deals-bg)!important;border-color:var(--btn-deals-border)!important;color:#fff!important}
.btn-hero-deals:focus,.btn-hero-deals:hover{background-color:var(--btn-deals-hover-bg)!important;border-color:var(--btn-deals-hover-border)!important;color:#fff!important}
.btn-hero-coupons{background-color:var(--bs-success)!important;border-color:var(--bs-success)!important;color:#fff!important}
.btn-hero-coupons:focus,.btn-hero-coupons:hover{background-color:color-mix(in srgb,var(--bs-success),#000 15%)!important;border-color:color-mix(in srgb,var(--bs-success),#000 15%)!important;color:#fff!important}
.site-hero-final{max-height:none}
.hero-stats-row{flex-wrap:wrap}
@media (min-width:768px){.hero-stats-row.hero-stats-row{flex-wrap:nowrap}
}
.meta-row-toggle-label{display:none!important}
.meta-row-content{display:flex!important;margin-bottom:.5rem}
.share-btn-row{display:flex;flex-wrap:nowrap;gap:.35rem}
.share-btn-row .share-btn-item{flex:1 1 0;min-width:0}
/* CSS-AUD-11 (2026-07-16, mavis): stat-tile light-bg contrast fix.   Tile was rgba(255,255,255,.15) — 85% transparent. On a light hero   background the tile basically disappeared, and white-inherited   text (the hero's default) became invisible. Bumped to a solid-ish   light card with explicit dark text so it reads in both light and   dark hero themes. */.hero-stat-tile{min-height:3rem;background:rgba(255,255,255,.85);border:1px solid rgba(0,0,0,.1);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .15s ease,border-color .15s ease}
.hero-stat-tile:hover{background:rgba(255,255,255,.95);border-color:rgba(0,0,0,.2)}
.hero-stat-count{font-size:var(--font-size-base);color:var(--bs-body-color,#212529)}
.hero-stat-label{font-size:var(--text-fine);line-height:1;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;color:var(--bs-secondary-color,#6c757d)}
.product-h1-link{color:inherit;text-decoration:none}
.product-h1-link:hover{text-decoration:underline;text-underline-offset:3px;color:inherit}
.pdp-price-card{display:block;padding:var(--space-4) 1rem;border:none;border-radius:var(--radius-md);background:var(--bs-body-bg);transition:box-shadow .18s ease,transform .18s ease;cursor:pointer}
.pdp-price-card:focus-visible,.pdp-price-card:hover{will-change:transform;box-shadow:var(--shadow-xs);transform:translateY(-1px);outline:0}
.pdp-price-card .editorial-take-card,.pdp-price-card .editorial-who-for-card{background:0 0;border-top:1px solid var(--bs-border-color)!important;border-radius:0!important;margin-left:-1rem;margin-right:-1rem;padding-left:var(--space-4);padding-right:var(--space-4)}
.pdp-price-card .editorial-take-card .card-body,.pdp-price-card .editorial-who-for-card .card-body{padding-left:0;padding-right:0}
.pdp-price-card .product-info-trust-zone{margin-left:-1rem;margin-right:-1rem;border-radius:0 0 var(--radius-md) var(--radius-md);border-left:none;border-right:none;border-bottom:none}
.price-alert{font-size:var(--font-size-lg);margin-bottom:0}
.price-alert .price-display{font-size:var(--font-size-xl);font-weight:700;color:inherit;text-decoration:none}
.price-alert .price-cents{font-size:inherit;font-weight:inherit}
.price-alert .savings-badge{font-size:var(--font-size-md);font-weight:700;padding:var(--space-2) 1rem;border-radius:var(--radius-sm);background:var(--bs-success-bg-subtle);color:var(--bs-success-text-emphasis);border:1px solid var(--bs-success-border-subtle)}
.price-alert .savings-cents{font-size:var(--text-sm-plus);font-weight:600}
.product-detail-card{transition:box-shadow .15s ease;position:relative;overflow:visible;animation:slideInLeft .3s ease}
.product-detail-card::after,.product-detail-card::before{content:'';position:absolute;top:50%;transform:translateY(-50%);width:0;height:0;opacity:0;transition:opacity .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1);z-index:10}
.product-detail-card::before{left:-20px}
.product-detail-card::after{right:-20px}
.product-detail-card:hover,.product-detail-card:focus-visible{will-change:transform;box-shadow:var(--shadow-xl)}
.product-detail-card:hover::before{opacity:1;left:-30px}
.product-detail-card:hover::after{opacity:1;right:-30px}
.product-image-gallery{transition:transform .15s ease;animation:slideInRight .4s ease}
.product-image-gallery:hover{transform:scale(1.005)}
.product-discount-badge-wrap{z-index:100!important;pointer-events:auto}
.product-detail-image-container.product-image-gallery{background-color:var(--bs-tertiary-bg,#f8f9fa);background-image:var(--product-img-fallback,url("/assets/images/noimage.jpg"));background-repeat:no-repeat;background-position:center;background-size:contain}
.product-image-ghost-wrap{position:relative;margin-left:-3rem;margin-right:-3rem;padding-left:var(--space-8);padding-right:var(--space-8)}
.product-image-ghost-wrap::after,.product-image-ghost-wrap::before{content:'';position:absolute;top:5%;width:42%;height:90%;background-image:var(--product-img-main);background-size:contain;background-repeat:no-repeat;background-position:center top;opacity:.28;filter:blur(1px);pointer-events:none;z-index:0}
.product-image-ghost-wrap::before{left:0}
.product-image-ghost-wrap::after{right:0}
@media (max-width:767.98px){.product-image-ghost-wrap.product-image-ghost-wrap{margin-left:-1rem;margin-right:-1rem;padding-left:var(--space-4);padding-right:var(--space-4)}
.product-image-ghost-wrap::after.product-image-ghost-wrap::after{display:none}
}
.product-nav-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:20;width:38px;height:38px;border-radius:7px;background:rgba(120,120,120,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:background .18s ease,transform .18s ease;border:none;cursor:pointer}
.product-nav-arrow:hover{background:rgba(80,80,80,.75);transform:translateY(-50%) scale(1.08);color:#fff;text-decoration:none}
.product-nav-arrow--prev{left:.5rem}
.product-nav-arrow--next{right:.5rem}
.product-detail-main-img{position:relative;z-index:1}
.product-detail-main-img,.product-detail-single-img{background-color:#fff}
.product-detail-image img{transition:transform .15s ease,filter .15s ease}
.product-detail-image:hover img{transform:scale(1.005);filter:brightness(1.02)}
.product-info-section{transition:background-color .15s ease;animation:slideInLeft .5s ease}
.product-info-section:hover{background-color:rgba(var(--bs-tertiary-bg-rgb,248,249,250),.6)}
.product-title{transition:color .15s ease;position:relative}
.product-title:hover{color:var(--bs-primary)}
.product-title::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:linear-gradient(90deg,var(--bs-primary),var(--bs-secondary));transition:width .15s ease}
.product-title:hover::after{width:100%}
.product-price-section{transition:color .15s ease}
.product-price-section:hover{color:var(--bs-primary)}
.go-link{transition:background-color .15s ease,box-shadow .15s ease;position:relative;overflow:hidden}
.go-link:hover{box-shadow:0 2px 4px rgba(13,110,253,.2)}
.go-link::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .15s ease}
.go-link:hover::before{left:100%}
.related-product-card{transition:box-shadow .15s ease}
.related-product-card:hover{box-shadow:var(--shadow-sm)}
.product-description-section{transition:opacity .15s ease}
.product-description-section:hover{opacity:.95}
.product-tags .badge{transition:background-color .15s ease}
.product-tags .badge:hover{background-color:var(--bs-primary);color:var(--bs-white)}
.share-button{transition:opacity .15s ease}
.share-button:hover{opacity:.8}
.carousel-control-next,.carousel-control-prev{transition:background-color .15s ease}
.carousel-control-next:hover,.carousel-control-prev:hover{background-color:rgba(0,0,0,.1)}
.accordion-button:hover{background-color:var(--bs-tertiary-bg)}
.product-info-section a.d-block.text-reset{cursor:pointer;border-radius:var(--radius-sm);transition:background-color .15s ease;padding:var(--space-2);margin:-.5rem}
.product-info-section a.d-block.text-reset:hover{background-color:rgba(var(--bs-primary-rgb,13,110,253),.04);text-decoration:none!important}
@media (max-width:767.98px){.product-detail-card:hover.product-detail-card:hover{box-shadow:var(--shadow-xs)}
.product-info-section:hover.product-info-section:hover{background-color:rgba(var(--bs-tertiary-bg-rgb,248,249,250),.35)}
.product-price-section:hover{color:var(--bs-secondary-color)}
.go-link:hover{background-color:var(--bs-tertiary-bg)}
}
@keyframes slideInLeft{from{transform:translateX(-20px);opacity:0}
to{transform:translateX(0);opacity:1}
}
@keyframes slideInRight{from{transform:translateX(20px);opacity:0}
to{transform:translateX(0);opacity:1}
}
.sticky-buy-btn{pointer-events:none!important}
.sticky-bottom-bar{position:fixed;bottom:0;left:0;right:0;z-index:1050;background-color:var(--bs-body-bg,#fff);color:var(--bs-body-color);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:3px solid var(--bs-primary,#0d6efd);box-shadow:0 -6px 20px rgba(0,0,0,.14);transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);padding:var(--space-4) 1.25rem calc(1.1rem + env(safe-area-inset-bottom, 0)) 1.25rem;cursor:pointer;text-decoration:none;display:flex;flex-direction:column;align-items:stretch;gap:.55rem}
.sticky-bottom-bar.active{will-change:transform;transform:translateY(0)}
.sticky-bottom-bar:active{background-color:var(--bs-tertiary-bg,#f1f3f5)}
.sticky-bottom-bar .sticky-thumb{width:56px;height:56px;object-fit:contain;justify-self:center;border-radius:10px;background-color:var(--bs-secondary-bg,#f8f9fa);border:1px solid var(--bs-border-color,#dee2e6);flex-shrink:0}
.sticky-bottom-bar .pdp-sticky-info{min-width:0;width:90%;margin:0 auto;text-align:center;padding:.15rem 0 .25rem}.sticky-bottom-bar .pdp-sticky-actions{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:.75rem;width:80%;margin:0 auto}
.sticky-bottom-bar .pdp-sticky-name{max-width:none;white-space:normal!important;overflow-wrap:anywhere;line-height:1.18;font-size:var(--font-size-md);font-weight:700;color:var(--bs-body-color)}
.sticky-bottom-bar .pdp-sticky-merch{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-bottom-bar .sticky-buy-btn{width:max-content;min-height:52px;white-space:nowrap;background:#d4220e!important;border-color:#c01f0d!important;color:#fff!important;font-size:var(--font-size-md);font-weight:700;border-radius:var(--radius-md);box-shadow:0 4px 14px rgba(212,34,14,.42);padding:var(--space-4) 1rem;animation:stickyCtaPulse 2.8s ease-in-out infinite}
.view-product.sticky-mobile-cta-active main.main-content-area{padding-bottom:calc(var(--coupon-cta-height, 72px) + 1rem + env(safe-area-inset-bottom, 0))}
.author-avatar{width:90px;height:90px;object-fit:cover;border:3px solid var(--bs-body-bg)}
.reassurance-icon{font-size:var(--font-size-xl);color:var(--bs-primary)}
.author-bio-card{border:none;background-color:var(--bs-body-bg)}
.pdp-click-zone{border-radius:var(--radius-lg);transition:transform .18s ease,box-shadow .18s ease;cursor:pointer}
.pdp-click-zone:hover,.pdp-click-zone:focus-visible{will-change:transform;transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.08)}
.pdp-click-zone:active{transform:translateY(0);box-shadow:none;transition-duration:80ms}
.pdp-trust-link,.pdp-trust-link:focus,.pdp-trust-link:hover{background:0 0;outline:0}
.pdp-click-zone .author-bio-card--clickable{transition:none}
.pdp-click-zone .author-bio-card--clickable:focus,.pdp-click-zone .author-bio-card--clickable:hover{border-color:transparent;background-color:var(--bs-body-bg);outline:0}
.pdp-click-zone:hover .animate-pulse,.pdp-click-zone:hover .product-cta-btn{animation-play-state:paused!important}
.author-bio-card--clickable{cursor:pointer;transition:box-shadow .18s ease,transform .18s ease}
.author-bio-card--clickable:focus,.author-bio-card--clickable:hover{will-change:transform;box-shadow:0 4px 16px rgba(0,0,0,.08);transform:translateY(-2px);outline:0}
.author-card-meta h3{margin-bottom:var(--space-2)}
.product-store-count-badge{font-size:var(--text-sm-plus);padding:var(--space-2) .8rem}
.product-info-trust-zone{border-radius:var(--radius-lg);background-color:var(--bs-secondary-bg,#e9ecef);color:var(--bs-body-color)}
.product-info-trust-icon{margin-right:var(--space-2);font-size:var(--font-size-base)}
.product-cta-subtext{display:block;margin-top:var(--space-1);font-size:var(--text-sm-plus);opacity:.85}
.editorial-take-card,.editorial-who-for-card{background-color:var(--bs-secondary-bg,#f8f9fa);border-color:transparent}
.editorial-take-card .card-body,.editorial-who-for-card .card-body{padding:var(--space-4)}
.editorial-faq-details{background:var(--bs-body-bg,#fff);border:1px solid var(--bs-border-color,#dee2e6);border-radius:.55rem;padding:0;margin-bottom:var(--space-3)}
.editorial-faq-details[open]{box-shadow:0 0 0 1px rgba(13,110,253,.12)}
.editorial-faq-summary{display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;padding:var(--space-4) 1rem;font-size:var(--font-size-base);font-weight:600;color:var(--bs-body-color,#212529);list-style:none}
.editorial-faq-summary::-webkit-details-marker{display:none}
.editorial-faq-summary::after{content:'\2193';font-size:var(--font-size-base);transition:transform .2s ease;color:var(--bs-secondary-color,#6c757d)}
.editorial-faq-details[open]>.editorial-faq-summary::after{transform:rotate(180deg)}
.editorial-faq-answer{padding:0 1rem 1rem;line-height:1.7;color:var(--bs-secondary-color,#6c757d)}
.product-notjoined-card{background-color:var(--bs-body-bg,#fff)}
.sidebar-card{background:var(--bs-body-bg,#fff)!important;color:var(--bs-body-color)!important}
.sidebar-panel-title{color:var(--bs-body-color)!important}
.sidebar-panel-action{font-size:var(--text-fine);}
.sidebar-panel-link{background:var(--bs-body-bg,#fff)!important;color:var(--bs-body-color)!important;border-color:var(--bs-border-color)!important}
.sidebar-count-badge{background:var(--bs-secondary-bg)!important;color:var(--bs-secondary-text-emphasis,#41464b)!important;}
.compact-dir-link{font-size:var(--font-size-sm)}
.compact-dir-link:hover{text-decoration:underline}
.site-wing{position:fixed;top:50%;transform:translateY(-50%);width:160px;z-index:90;display:none;overflow:hidden}
.site-wing-left{right:calc(50% + 660px + 16px)}
.site-wing-right{left:calc(50% + 660px + 16px)}
@media (min-width:1668px){.site-wing.site-wing{display:block}
}
.footer-social-icon{font-size:var(--font-size-xl)}
.sc-card{height:100%;display:flex;flex-direction:column;border:1px solid var(--bs-border-color,rgba(15,23,42,.12));border-radius:var(--radius-lg);background:var(--bs-card-bg,#fff);padding:var(--space-5);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.sc-card:focus-within,.sc-card:hover{border-color:rgba(var(--bs-primary-rgb),.35);box-shadow:0 .75rem 1.75rem rgba(15,23,42,.09);transform:translateY(-2px)}
.sc-avatar{width:72px;height:72px;border-radius:1rem;display:grid;place-items:center;font-size:2rem;font-weight:700;line-height:1;flex-shrink:0;text-transform:uppercase;color:var(--bs-primary,#1d4ed8);background:var(--bs-primary-bg-subtle,#f8f9ff);border:1px solid var(--bs-primary-border-subtle,#e9ecf4)}
.sc-av-a,.sc-av-b{background:var(--avatar-bg-soft,#eff6ff);color:var(--avatar-text-soft,#1d4ed8)}
.sc-av-c,.sc-av-d{background:var(--avatar-color-11,#7c3aed)}
.sc-av-e,.sc-av-f{background:var(--avatar-color-1)}
.sc-av-g,.sc-av-h{background:var(--avatar-color-2)}
.sc-av-i,.sc-av-j{background:var(--avatar-color-3)}
.sc-av-k,.sc-av-l{background:var(--avatar-color-4)}
.sc-av-m,.sc-av-n{background:var(--avatar-color-5)}
.sc-av-o,.sc-av-p{background:var(--avatar-color-6)}
.sc-av-q,.sc-av-r{background:var(--avatar-color-7)}
.sc-av-s,.sc-av-t{background:var(--avatar-color-8)}
.sc-av-u,.sc-av-v{background:var(--avatar-color-9)}
.sc-av-w,.sc-av-x{background:var(--avatar-color-10)}
.sc-av-y,.sc-av-z{background:var(--avatar-color-11)}
.sc-av-num{background:var(--avatar-color-12)}
.sc-name{font-size:var(--font-size-md);font-weight:700;line-height:1.2;overflow-wrap:anywhere}
.sc-name a{color:inherit;text-decoration:none}
.sc-name a:hover{text-decoration:underline}
.sc-badges{display:flex;flex-wrap:wrap;gap:.35rem}
.sc-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--text-fine);font-weight:600;padding:var(--space-1) .52rem;border-radius:999px;line-height:1;white-space:nowrap}
.sc-badge-verified{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}
.sc-badge-active{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}
.sc-badge-curated{background:#faf5ff;color:#7e22ce;border:1px solid #e9d5ff}
.sc-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.sc-metric{border:1px solid var(--bs-border-color);border-radius:var(--radius-sm);padding:var(--space-2) .6rem;background:var(--bs-light,#f8f9fa);text-align:center}
.sc-metric strong{display:block;font-size:var(--font-size-md);line-height:1}
.sc-metric span{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.sc-links-label{font-size:var(--text-fine);font-weight:600;color:var(--bs-secondary-color,#6c757d);margin-bottom:var(--space-1)}
.sc-pill-links{display:flex;flex-wrap:wrap;gap:.4rem}
.sc-pill-links a{display:inline-block;font-size:var(--text-fine);color:var(--bs-body-color);background:var(--bs-light,#f8f9fa);border:1px solid var(--bs-border-color);border-radius:999px;padding:var(--space-1) .55rem;text-decoration:none;transition:background .12s ease,color .12s ease}
.sc-pill-links a:hover{background:rgba(var(--bs-primary-rgb),.08);color:var(--bs-primary);border-color:rgba(var(--bs-primary-rgb),.3)}
.grid-col-eq{display:flex;align-items:stretch}
.grid-col-eq>.card,.grid-col-eq>a{height:100%;display:flex;flex-direction:column}
.grid-col-eq .card-body{flex:1 1 auto}
.merchant-favicon-wrap{height:32px;display:flex;align-items:center;justify-content:center}
.merchant-favicon{border-radius:6px;object-fit:contain;display:block}
.footer-badge-link{display:flex;align-items:stretch;width:100%;text-decoration:none;color:inherit}
.footer-badge-inner{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:0 .5rem}
.footer-badge-title{margin-bottom:0;font-weight:700;font-size:var(--bs-small,.875em)}
.product-description-text *,.product-description-text em,.product-description-text i:not([class^=bi]){font-style:normal!important}
.meta-row-toggle{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.meta-row-toggle-label{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);user-select:none;gap:var(--space-1);padding:var(--space-1) 0}
.meta-row-toggle-label:hover{color:var(--bs-body-color)}
.meta-chevron{display:inline-block;font-size:var(--text-fine);transition:transform .2s ease}
.meta-row-toggle:checked~.meta-row-toggle-label .meta-chevron{will-change:transform;transform:rotate(180deg)}
.meta-row-toggle:not(:checked)~.meta-row-toggle-label .meta-chevron{will-change:transform}
.meta-show-txt{display:inline}
.meta-hide-txt{display:none}
.meta-row-toggle:checked~.meta-row-toggle-label .meta-show-txt{display:none}
.meta-row-toggle:checked~.meta-row-toggle-label .meta-hide-txt{display:inline}
@media (max-width:767.98px){.meta-row-content.meta-row-content{display:none!important}
.meta-row-toggle:checked~.meta-row-content,.meta-row-toggle:checked~.meta-row-toggle-label~.meta-row-content.meta-row-toggle:checked~.meta-row-content,.meta-row-toggle:checked~.meta-row-toggle-label~.meta-row-content{display:flex!important;flex-wrap:wrap;margin-top:.35rem}
}
.related-deal-card:hover{will-change:transform;transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.1);color:inherit;text-decoration:none}
.related-deal-card:active{transform:translateY(-1px)}
.related-deal-img-wrap{position:relative;background:var(--bs-secondary-bg,#f8f9fa);overflow:visible}
.related-deal-badge{position:absolute;top:-10px;right:-10px;width:56px;height:56px;background:var(--bs-danger,#dc3545);color:#fff;font-size:var(--text-fine);font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.15;box-shadow:0 2px 6px rgba(220,53,69,.45);pointer-events:none;z-index:10;white-space:pre-line}
.related-deal-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.4;color:var(--bs-body-color);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}
.related-deal-price-row{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.related-deal-price{font-size:var(--font-size-base);font-weight:700;color:var(--bs-body-color)}
.related-deal-was{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);text-decoration:line-through}
.related-deal-store{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.related-deal-btn{pointer-events:none;font-size:var(--text-fine)}
.related-deal-savings{font-size:var(--text-fine);font-weight:600;color:#16a34a;margin:0}
/* IMG-FALLBACK-1 (2026-09-16): store "watching" panel alternative-product cards.
   The class had no rule at all, so a broken merchant image rendered as an
   unsized/garbled box. Give it a fixed 1:1 box and carry the no-image fallback
   as the element's OWN background: JS swaps src, this guarantees a placeholder
   is visible even if the swap fails (offline / JS disabled). */
.store-product-image{width:100%;aspect-ratio:1/1;height:auto;object-fit:contain;background-color:var(--bs-tertiary-bg,#f8f9fa);background-image:var(--product-img-fallback,url("/assets/images/noimage.jpg"));background-repeat:no-repeat;background-position:center;background-size:contain;padding:var(--space-2)}
.store-product-image-placeholder{width:100%;aspect-ratio:1/1;height:auto;font-size:var(--font-size-xl)}
.store-product-title{line-height:1.35}
.related-items-link{color:inherit;display:block}
.related-items-link:focus,.related-items-link:hover{text-decoration:none}
.related-deal-badge--featured{background:#f59e0b;color:#1a1a1a;font-size:var(--text-fine);box-shadow:0 2px 6px rgba(245,158,11,.45)}
.yml-section{margin-top:var(--space-1);padding-top:var(--space-3);border-top:1px solid var(--bs-border-color)}
.yml-header{display:flex;align-items:center;gap:.75rem;margin-bottom:var(--space-5);flex-wrap:wrap}
.yml-header-icon{background:linear-gradient(135deg,#ff6b35,#f7c59f);border-radius:12px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.yml-header-icon i{font-size:var(--font-size-lg);color:#fff}
.yml-header-text h2{margin:0;line-height:1.1}
.yml-header-text p{margin:0;font-size:var(--text-fine);color:var(--bs-secondary-color)}
.yml-group-label{font-size:var(--text-fine);font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-2);padding:var(--space-1) .6rem;border-radius:6px;display:inline-block}
.yml-label-related{background:rgba(var(--bs-primary-rgb),.1);color:var(--bs-primary)}
.yml-label-featured{background:linear-gradient(90deg,#ff6b35,#f7931e);color:#fff}
.yml-label-discovery{background:rgba(108,117,125,.08);color:var(--bs-secondary-color);border:1px solid rgba(108,117,125,.18)}
.yml-card{display:block;text-decoration:none;color:inherit;border-radius:var(--radius-lg);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease;height:100%;position:relative;cursor:pointer}
.yml-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.18);text-decoration:none;color:inherit}
.yml-card-related{border:2px solid var(--bs-border-color);background:var(--bs-body-bg)}
.yml-card-related:hover{border-color:var(--bs-primary)}
.yml-card-featured{border:2px solid #ff6b35;background:var(--bs-body-bg)}
.yml-card-featured:hover{border-color:#e55a25;box-shadow:0 12px 32px rgba(255,107,53,.25)}
.yml-card-discovery{border:2px solid rgba(108,117,125,.22);background:rgba(var(--bs-body-bg-rgb),.95)}
.yml-card-discovery:hover{border-color:rgba(108,117,125,.45);box-shadow:0 10px 24px rgba(0,0,0,.12)}
.yml-cta-discovery{background:0 0;color:var(--bs-secondary-color);border:1px solid rgba(108,117,125,.35);box-shadow:none}
.yml-card:hover .yml-cta-discovery{background:rgba(108,117,125,.08)}
.yml-discovery-badge{font-size:var(--text-fine);font-weight:700;color:var(--bs-secondary-color);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.06em}
.yml-img-wrap{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;background:var(--bs-light)}
.yml-img-wrap img{width:100%;height:100%;object-fit:contain;padding:var(--space-2);transition:transform .22s ease}
.yml-card:hover .yml-img-wrap img{transform:scale(1.05)}
.yml-discount-badge{position:absolute;top:8px;right:8px;background:#dc3545;color:#fff;font-size:var(--text-fine);font-weight:700;border-radius:50%;width:44px;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;box-shadow:0 2px 6px rgba(220,53,69,.4)}
.yml-featured-crown{position:absolute;top:8px;left:8px;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;font-size:var(--text-fine);font-weight:700;border-radius:20px;padding:var(--space-1) .5rem;line-height:1.3;box-shadow:0 2px 6px rgba(255,107,53,.4)}
.yml-body{padding:var(--space-3)}
.yml-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:var(--space-2);color:var(--bs-body-color)}
.yml-price-row{display:flex;align-items:baseline;gap:.4rem;margin-bottom:var(--space-2);flex-wrap:wrap}
.yml-price{font-size:var(--font-size-md);font-weight:700;color:var(--bs-body-color)}
.yml-was{font-size:var(--text-fine);color:var(--bs-secondary-color);text-decoration:line-through}
.yml-save{font-size:var(--text-fine);font-weight:700;color:#198754;background:rgba(25,135,84,.1);border-radius:4px;0 .35rem}
.yml-store{font-size:var(--text-fine);color:var(--bs-secondary-color);margin-bottom:var(--space-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yml-cta{display:block;text-align:center;font-size:var(--text-fine);font-weight:700;border-radius:8px;padding:var(--space-2) .5rem;margin-top:auto;transition:filter .15s ease}
.yml-cta-related{background:var(--bs-primary);color:#fff}
.yml-card:hover .yml-cta-related{filter:brightness(1.1)}
.yml-cta-featured{background:linear-gradient(90deg,#ff6b35,#f7931e);color:#fff;box-shadow:0 2px 8px rgba(255,107,53,.35)}
.yml-card:hover .yml-cta-featured{filter:brightness(1.12)}
.scroll-to-top{position:fixed;bottom:1.5rem;right:1.25rem;width:42px;height:42px;border-radius:50%;background:var(--bs-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-md);z-index:1030;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.scroll-to-top.visible{opacity:1;pointer-events:auto}
.scroll-to-top:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.22)}
.product-peek-strip{display:flex;align-items:stretch;gap:6px;margin-top:var(--space-2);height:52px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bs-tertiary-bg,#f8f9fa);border:1px solid var(--bs-border-color,#dee2e6);padding:6px;box-sizing:border-box}
.product-peek-ghost{flex:0 0 44px;border-radius:4px;background:rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.08);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.product-peek-ghost--left::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.45) 100%);pointer-events:none}
.product-peek-ghost--right::after{content:'';position:absolute;inset:0;background:linear-gradient(to left,rgba(255,255,255,0) 0,rgba(255,255,255,.45) 100%);pointer-events:none}
.product-peek-ghost img{width:100%;height:100%;object-fit:cover;object-position:center;opacity:.45;filter:blur(1.5px);display:block}
.product-peek-active{flex:1 1 auto;border-radius:4px;background:var(--bs-body-bg,#fff);border:2px solid var(--bs-primary,#0d6efd);overflow:hidden;display:flex;align-items:center;justify-content:center}
.product-peek-active img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}
.product-peek-count{position:absolute;bottom:3px;right:4px;font-size:var(--text-fine);font-weight:600;color:var(--bs-secondary-color,#6c757d);line-height:1;z-index:2;pointer-events:none}
@media (prefers-color-scheme:dark){.product-peek-ghost.product-peek-ghost{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1)}
}
.product-peek-ghost--left::after{background:linear-gradient(to right,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 100%)}
.product-peek-ghost--right::after{background:linear-gradient(to left,rgba(0,0,0,0) 0,rgba(0,0,0,.35) 100%)}
.related-deal-card{background-color:var(--bs-card-bg,#1e1e2e)!important;border-color:rgba(255,255,255,.12)!important}
.related-deal-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.45);border-color:rgba(255,255,255,.25)}
.related-deal-img-wrap{background:rgba(255,255,255,.05)!important}
.related-deal-savings{color:#4ade80!important}
.related-deal-store,.related-deal-was{color:rgba(255,255,255,.55)!important}
.product-cta-btn.animate-pulse{box-shadow:0 0 0 0 rgba(var(--bs-primary-rgb,13,110,253),.5)!important}
.ph{margin-bottom:var(--space-3)}
.ph h1{margin-bottom:var(--space-1);line-height:1.2}
.ph__meta{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .4rem;font-size:var(--font-size-sm);color:var(--bs-secondary-color,#666);margin-bottom:var(--space-2);line-height:1.6}
.ph__meta .sep{color:var(--bs-border-color,#ddd);padding:0 .05rem}
.ph p{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#666);margin:0 0 .45rem;line-height:1.45}
.ph__dd{position:relative;display:inline-block}
.ph__dd>summary{display:inline-flex;align-items:center;gap:.2rem;cursor:pointer;font-size:var(--text-fine);padding:var(--space-1) .42rem;border-radius:.3rem;border:1px solid var(--bs-border-color,#ccc);background:var(--bs-body-bg,#fff);color:var(--bs-secondary-color,#444);list-style:none;user-select:none;white-space:nowrap}
.ph__dd>summary::-webkit-details-marker{display:none}
.ph__dd>summary .dd-caret{font-size:var(--text-fine);color:var(--bs-secondary-color,#aaa);0}
.ph__dd>summary .dd-label{color:var(--bs-secondary-color,#999);font-size:var(--text-fine);0}
.ph__dd__panel{position:absolute;top:calc(100% + 3px);left:0;z-index:400;background:var(--bs-body-bg,#fff);border:1px solid var(--bs-border-color,#d0d0d0);border-radius:.4rem;box-shadow:0 4px 14px rgba(0,0,0,.11);min-width:160px;max-height:260px;overflow-y:auto;padding:var(--space-1) 0}
.ph__dd--right .ph__dd__panel{left:auto;right:0}
.ph__dd__panel a,.ph__dd__panel span{display:block;padding:var(--space-1) .85rem;font-size:var(--text-fine);text-decoration:none;color:var(--bs-body-color,#333);white-space:nowrap}
.ph__dd__panel a:hover{background:var(--bs-tertiary-bg,#f4f6ff);color:var(--bs-primary)}
.ph__dd__panel .dd-active{font-weight:600;color:var(--bs-primary);background:var(--bs-primary-bg-subtle,#eef3ff)}
.ph__dd__panel::-webkit-scrollbar{width:4px}
.ph__dd__panel::-webkit-scrollbar-thumb{background:var(--bs-border-color,#ddd);border-radius:4px}
.cat-intro{font-size:var(--text-sm-plus);color:var(--bs-secondary-color,#555);line-height:1.6;margin:var(--space-2) 0 1.1rem}
.category-editorial{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--bs-border-color,#dee2e6);font-size:var(--text-sm-plus);line-height:1.65;color:var(--bs-body-color,#333)}
.category-editorial h2{margin:var(--space-5) 0 .35rem}
.category-editorial h2:first-child{margin-top:0}
.category-editorial h3{margin:var(--space-4) 0 .3rem;color:var(--bs-secondary-color)}
.category-editorial h4,.category-editorial h5{margin:var(--space-3) 0 .25rem;color:var(--bs-secondary-color)}
.category-editorial p{font-size:var(--text-sm-plus);line-height:1.65;color:var(--bs-secondary-color);margin-bottom:var(--space-2)}
.category-editorial strong{font-weight:600;color:var(--bs-body-color,#222)}
.brand-editorial,.store-editorial{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--bs-border-color,#e9ecef);font-size:var(--text-sm-plus);line-height:1.7;color:var(--bs-body-color,#333)}
.brand-editorial h2,.store-editorial h2{margin:var(--space-5) 0 .4rem}
.brand-editorial h2:first-child,.store-editorial h2:first-child{margin-top:0}
.brand-editorial p,.store-editorial p{margin:0 0 .7rem}
.brand-editorial strong,.store-editorial strong{font-weight:600;color:var(--bs-body-color,#222)}
.admin-feature-bar{position:fixed;bottom:0;left:0;right:0;z-index:9999;background:rgba(20,20,28,.94);backdrop-filter:blur(6px);color:#fff;font-size:var(--text-fine);padding:7px 18px;display:flex;align-items:center;gap:12px}
.admin-feature-bar strong{color:#ffd966}
.admin-feature-bar span{opacity:.76}
.admin-feature-bar .admin-bar-hi{color:#6cf17c;font-weight:700}
.admin-feature-form{position:absolute;top:7px;left:7px;z-index:100;margin:0;padding:0;line-height:1}
.admin-feature-form button{width:34px;height:34px;border-radius:50%;border:2px solid rgba(255,255,255,.85);background:rgba(25,135,84,.92);color:#fff;font-size:var(--font-size-md);line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.45);transition:transform .12s,box-shadow .12s;padding:0}
.admin-feature-form button:hover{transform:scale(1.18);box-shadow:0 4px 14px rgba(0,0,0,.5)}
.admin-feature-form.is-featured button{background:rgba(200,140,0,.95);border-color:#ffd966}
.admin-feature-form--inline{position:static;display:block;margin:var(--space-2) 0 0;padding:0;line-height:1}
.admin-feature-form--inline button{width:100%;height:auto;border-radius:8px;padding:var(--space-2) .75rem;font-size:var(--font-size-sm);font-weight:600;gap:.35rem;display:flex;align-items:center;justify-content:center}
.category-list-item{display:flex;justify-content:space-between;align-items:center;background:var(--bs-body-bg,#fff)!important;color:var(--bs-body-color,#212529)!important;border-color:var(--bs-border-color,#dee2e6)!important}
.category-list-item a{color:var(--bs-body-color,#212529)!important;text-decoration:none}
.category-list-item a:hover{color:var(--bs-primary)!important}
.category-list-item .list-item-count{color:var(--bs-secondary-color,#6c757d)!important}
.footer-version-label{font-size:var(--text-fine);color:#e8e8e8;letter-spacing:.03em;opacity:.45}
.mob-sidebar-chk{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.mob-sidebar-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:var(--space-2) 0;font-size:var(--font-size-sm);font-weight:600;color:var(--bs-secondary-color,#6c757d);user-select:none}
.mob-sidebar-chevron{transition:transform .2s ease;font-size:var(--text-fine)}
.mob-sidebar-chk:checked~.mob-sidebar-label .mob-sidebar-chevron{transform:rotate(180deg)}
.mob-sidebar-content{display:none}
.mob-sidebar-chk:checked~.mob-sidebar-content{display:block}
.fsr{display:flex;align-items:flex-start;flex-wrap:nowrap;gap:.4rem;margin-bottom:var(--space-1);font-size:var(--font-size-sm);overflow:hidden}
.fsr__label{color:var(--bs-secondary-color);white-space:nowrap;flex-shrink:0;font-size:var(--text-fine);padding-top:var(--space-1)}
.fsr__wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.fsr__wrap::-webkit-scrollbar{display:none}
.fsr__track{display:flex;flex-wrap:wrap;gap:.25rem .3rem;align-items:center}
.fsr__track a{display:inline-flex;align-items:center;padding:var(--space-1) .55rem;font-size:var(--text-fine);font-weight:400;white-space:nowrap;color:var(--bs-secondary-color);text-decoration:none;border:1px solid var(--bs-border-color);border-radius:999px;background:0 0;transition:background-color .12s ease,border-color .12s ease,color .12s ease}
.fsr__track a:hover{color:var(--bs-body-color);border-color:var(--bs-secondary-color);background-color:var(--bs-secondary-bg,rgba(0,0,0,.04));text-decoration:none}
.fsr__track .dot{display:none}
.fsr-section{margin-top:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--bs-border-color,#dee2e6)}
.filter-chip-group{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;gap:.5rem;padding:var(--space-2) 0;margin:var(--space-2) 0}
.filter-chip-group::-webkit-scrollbar{display:none}
.filter-chip{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:var(--space-2) 1rem;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;border:1px solid var(--bs-border-color);border-radius:999px;background-color:transparent;color:var(--bs-body-color);text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease;flex-shrink:0;cursor:pointer}
.filter-chip.active,.filter-chip:hover{background-color:var(--bs-primary);color:#fff;border-color:var(--bs-primary);text-decoration:none}
.cta-card{background:var(--bs-primary)!important;color:var(--bs-white)!important;border-radius:var(--radius-sm)}
.cta-card .lead,.cta-card h1,.cta-card h2,.cta-card h3,.cta-card h4,.cta-card p{color:var(--bs-white)!important}
.cta-card .btn-cta-primary{background:var(--bs-white)!important;color:var(--bs-primary)!important;border:2px solid var(--bs-white)!important}
.cta-card .btn-cta-primary:hover{background:0 0!important;color:var(--bs-white)!important;border-color:var(--bs-white)!important}
.cta-card .btn-cta-secondary{background:0 0!important;color:var(--bs-white)!important;border:2px solid var(--bs-white)!important}
.cta-card .btn-cta-secondary:hover{background:var(--bs-white)!important;color:var(--bs-primary)!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:var(--space-6) 1rem;text-align:center;color:var(--bs-secondary-color,#6c757d);border:1px dashed var(--bs-border-color,#dee2e6);border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(13,110,253,.04),rgba(13,110,253,.02))}
.empty-state .empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;background:rgba(13,110,253,.12);color:var(--bs-primary,#0d6efd)}
.theme-picker-card{transition:transform 160ms ease,box-shadow 160ms ease,border-color 160ms ease}
.theme-picker-card:focus-within,.theme-picker-card:hover{transform:translateY(-2px);box-shadow:0 .5rem 1.25rem rgba(15,23,42,.12);border-color:var(--bs-primary,#0d6efd)!important}
.hero-overlay{border-radius:inherit;overflow:hidden;z-index:1;background:linear-gradient(to right,rgba(0,0,0,.55) 0,rgba(0,0,0,.5) 65%,rgba(0,0,0,.15) 85%,rgba(0,0,0,.05) 100%)}
.hero-btn .bi{vertical-align:middle;line-height:1}
.hp-list-item{min-width:0;text-decoration:none}
.hp-list-item:hover{background:var(--bs-tertiary-bg)}
.hp-list-item:hover .text-body{color:var(--bs-link-color)}
.hp-dot{flex-shrink:0;width:7px;height:7px;border-radius:50%;display:inline-block}
.hp-dot--success{background:var(--bs-success)}
.hp-dot--warning{background:var(--bs-warning)}
.hp-list-name{flex-grow:1;font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.text-logo-wrap{font-weight:800;font-family:var(--logo-font-family);letter-spacing:-.025em;line-height:1.15;--logo-track:min(80vw,26rem);--logo-cap:clamp(1.5rem,1rem + 1.5vw,1.8rem);font-size:clamp(.9rem,calc(var(--logo-track) / (var(--logo-chars,13) * .6)),var(--logo-cap));position:relative;gap:0}
.text-logo-tld{font-weight:400;color:#8a8f98}
.text-logo-accent{color:var(--bs-primary)}
.mobile-nav-section-label{font-size:var(--text-fine);letter-spacing:.06em;text-transform:uppercase}
.icon-cat{font-size:2rem}
/* Homepage category tiles: even padding, restrained hover lift, reduced-motion safe. */.category-tile-body{padding:var(--space-4) var(--space-2)}
.category-tile-icon{line-height:1.35}
.icon-xl{font-size:48px}
.icon-sm-fixed{font-size:var(--text-sm-plus);flex-shrink:0}
.pdp-list-item,.sitemap-list-item{background:#fff!important;border-color:#dee2e6!important}
.pdp-list-wrap{background:#fff!important}
.kwh-hero{background:linear-gradient(135deg,#0d6efd 0,#0a58ca 50%,#084298 100%);border-radius:var(--radius-lg);color:#fff;position:relative;overflow:hidden}
.kwh-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 20%,rgba(255,255,255,.1) 0,transparent 55%),radial-gradient(ellipse at 20% 90%,rgba(255,255,255,.06) 0,transparent 50%);pointer-events:none}
.kwh-hero-inner{position:relative;z-index:1}
.kwh-stat-pill{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:2rem;padding:var(--space-1) .85rem;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}
.kwh-stat-pill .kwh-num{font-size:var(--font-size-md);font-weight:700}
.kwh-badge-primary{background:rgba(255,255,255,.2);color:#fff;font-size:var(--text-fine);letter-spacing:.06em;text-transform:uppercase}
.kwh-badge-secondary{background:rgba(255,255,255,.15);color:rgba(255,255,255,.85);font-size:var(--text-fine)}
.kwh-hero-title{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:700;line-height:1.15;color:#fff}
.kwh-hero-desc{max-width:560px;color:rgba(255,255,255,.85);font-size:var(--text-sm-plus);line-height:1.55}
.kwh-hero-desc-alt{max-width:560px;color:rgba(255,255,255,.8);font-size:var(--text-sm-plus);line-height:1.5}
.kwh-search{max-width:480px}
.kwh-trust-sep{opacity:.8;margin-left:var(--space-1)}
.kwh-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--bs-border-color,#dee2e6)}
.kwh-section-head h2{margin:0}
.kwh-section-head a{font-size:var(--text-fine);text-decoration:none;color:var(--bs-primary);white-space:nowrap}
.kwh-section-head a:hover{text-decoration:underline}
.kwh-cat-tile{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) .85rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--bs-border-radius,.375rem);text-decoration:none;color:var(--bs-body-color);background:var(--bs-body-bg,#fff);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;height:100%}
.kwh-cat-tile:hover{border-color:var(--bs-primary,#0d6efd);box-shadow:0 2px 8px rgba(13,110,253,.12);transform:translateY(-1px);color:var(--bs-primary,#0d6efd)}
.kwh-cat-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.3}
.kwh-cat-count{font-size:var(--text-fine);font-weight:700;background:var(--bs-primary-bg-subtle,#cfe2ff);color:var(--bs-primary-text-emphasis,#052c65);border-radius:2rem;padding:var(--space-1) .55rem;margin-left:var(--space-2);flex-shrink:0}
.kwh-price-card{border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;background:var(--bs-body-bg,#fff);height:100%;position:relative;overflow:hidden}
.kwh-price-card::after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--bs-primary,#0d6efd);transform-origin:left;transform:scaleX(0);transition:transform .3s ease}
.kwh-price-card:hover::after{transform:scaleX(1)}
.kwh-price-label{font-weight:700;font-size:var(--text-sm-plus)}
.kwh-price-count{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);margin-top:var(--space-1)}
.kwh-price-bar-track{height:5px;background:var(--bs-border-color,#dee2e6);border-radius:3px;margin-top:var(--space-3);overflow:hidden}
.kwh-price-bar-fill{height:100%;background:linear-gradient(90deg,var(--bs-primary,#0d6efd),#6ea8fe);border-radius:3px;transition:width .6s ease}
.kwh-recent-card{display:block;text-decoration:none;color:var(--bs-body-color);border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--radius-md);overflow:hidden;height:100%;transition:box-shadow .18s ease,transform .18s ease;background:var(--bs-body-bg,#fff)}
.kwh-recent-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-3px);color:var(--bs-body-color)}
.kwh-recent-img{width:100%;height:150px;object-fit:contain;background:var(--bs-secondary-bg,#f8f9fa);padding:var(--space-2);display:block}
.kwh-recent-img-placeholder{width:100%;height:150px;background:var(--bs-secondary-bg,#f8f9fa);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--bs-secondary-color,#6c757d)}
.kwh-recent-body{padding:var(--space-3) .75rem .75rem}
.kwh-recent-cat{font-size:var(--text-fine);text-transform:uppercase;letter-spacing:.07em;color:var(--bs-primary,#0d6efd);font-weight:600;margin-bottom:var(--space-1)}
.kwh-recent-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.2em}
.kwh-recent-price{margin-top:var(--space-2);font-weight:700;font-size:var(--font-size-sm);color:var(--bs-body-color)}
.kwh-recent-brand{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.kwh-brand-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) .85rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--bs-border-radius,.375rem);text-decoration:none;color:var(--bs-body-color);background:var(--bs-body-bg,#fff);transition:border-color .15s ease,background .15s ease}
.kwh-brand-row:hover{border-color:var(--bs-warning,#ffc107);background:var(--bs-warning-bg-subtle,#fff8e1);color:var(--bs-body-color)}
.kwh-brand-name{font-size:var(--font-size-sm);font-weight:600}
.kwh-brand-badge{font-size:var(--text-fine);font-weight:700;background:var(--bs-warning-bg-subtle,#fff3cd);color:var(--bs-warning-text-emphasis,#664d03);border-radius:2rem;padding:var(--space-1) .55rem;flex-shrink:0}
.kwh-store-row{display:block;padding:var(--space-2) .85rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--bs-border-radius,.375rem);text-decoration:none;color:var(--bs-body-color);background:var(--bs-body-bg,#fff);transition:border-color .15s ease,background .15s ease}
.kwh-store-row:hover{border-color:var(--bs-success,#198754);background:var(--bs-success-bg-subtle,#d1e7dd);color:var(--bs-body-color)}
.kwh-store-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}
.kwh-store-name{font-size:var(--font-size-sm);font-weight:600}
.kwh-store-count{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.kwh-store-bar-track{height:3px;background:var(--bs-border-color,#dee2e6);border-radius:2px;overflow:hidden}
.kwh-store-bar-fill{height:100%;background:var(--bs-success,#198754);border-radius:2px}
.kwh-tag{display:inline-flex;align-items:center;gap:.35rem;padding:var(--space-1) .7rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:2rem;text-decoration:none;color:var(--bs-body-color);font-size:var(--text-fine);background:var(--bs-body-bg,#fff);transition:border-color .12s ease,background .12s ease,color .12s ease;white-space:nowrap}
.kwh-tag:hover{border-color:var(--bs-primary,#0d6efd);background:var(--bs-primary-bg-subtle,#cfe2ff);color:var(--bs-primary-text-emphasis,#052c65)}
.kwh-tag-count{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.kwh-search .form-control{border-right:0;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.15);color:#fff;border-radius:var(--radius-md) 0 0 var(--radius-md)}
.kwh-search .form-control::placeholder{color:rgba(255,255,255,.65)}
.kwh-search .form-control:focus{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.7);box-shadow:none;color:#fff}
.kwh-search .btn{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.2);color:#fff;font-weight:600;border-radius:0 var(--radius-md) var(--radius-md) 0}
.kwh-search .btn:hover{background:rgba(255,255,255,.3)}
.kwh-quicklinks{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:var(--space-3)}
.kwh-quicklink{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--text-fine);font-weight:600;padding:var(--space-1) .75rem;border-radius:2rem;text-decoration:none;border:1px solid rgba(255,255,255,.35);color:rgba(255,255,255,.9);background:rgba(255,255,255,.1);transition:background .15s ease}
.kwh-quicklink:hover{background:rgba(255,255,255,.22);color:#fff}
.kwh-footer{background:var(--bs-secondary-bg,#f8f9fa);border-radius:var(--bs-border-radius-lg,.75rem);padding:var(--space-5);border:1px solid var(--bs-border-color,#dee2e6)}
.coupon-card{border-radius:var(--radius-lg);overflow:hidden}
.cc-expiry-label{font-size:var(--text-fine);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.product-img-placeholder{min-height:280px;display:flex;align-items:center;justify-content:center;background:#f8f9fa}
.product-badge-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:7px;background:#0a7abf;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.product-share-group{position:absolute;top:0;left:0;margin:var(--space-2);z-index:20;display:flex;flex-direction:column;gap:5px;pointer-events:auto}
.psb-pin{width:38px;height:38px;border-radius:7px;display:flex;align-items:center;justify-content:center;text-decoration:none;background:#e60023;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:transform .15s ease}
.psb-pin:hover{transform:scale(1.1);text-decoration:none}
.psb-pin svg{display:block}
.a2a_kit.a2a_kit_size_38{width:38px}
.product-discount-off{font-size:var(--text-fine);opacity:.9}
.product-main-img{max-height:420px;width:100%;object-fit:contain;object-position:center}
.product-img-min-h{min-height:280px}
.color-card-swatch{height:72px}
.color-dot-swatch{width:12px;height:12px;flex-shrink:0}
.custom-field-image{max-width:200px;max-height:200px}
.social-card{transition:box-shadow .15s,transform .15s}
.social-card:hover{box-shadow:0 .25rem .75rem rgba(0,0,0,.1);transform:translateY(-2px)}
.fb-page-wrapper iframe{border-radius:var(--radius-md)}
.pdp-attr-link-icon{font-size:var(--text-sm-plus);flex-shrink:0}
.cursor-pointer{cursor:pointer}
.pdp-sticky-name{max-width:150px}
.price-display{line-height:1}
.mobile-offcanvas-menu .nav-link,.navbar .nav-link{min-height:44px;display:inline-flex;align-items:center}
.navbar-toggler{min-width:44px;min-height:44px}
.btn-close{min-width:44px;min-height:44px}
.store-logo-wrap{height:56px;padding:6px 10px;overflow:hidden}
.store-logo-img{max-height:100%;max-width:100%;object-fit:contain}
.store-discount-lbl{font-size:var(--text-sm-plus)}
.search-landing-form{max-width:620px}
.not-found-form-wrap{max-width:500px}
.icon-32{font-size:32px}
.icon-custom-sz{font-size:var(--icon-sz,1em);line-height:1}
.store-logo{max-height:100px;max-width:100%;object-fit:contain}
.footer-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:rgba(var(--bs-primary-rgb),.1);border-radius:8px;margin-bottom:var(--space-2);transition:background-color .2s ease}
.footer-icon:hover{background-color:rgba(var(--bs-primary-rgb),.15)}
.footer-icon i{font-size:var(--font-size-xl);color:var(--bs-primary)}
.footer-icon-wrapper{display:flex;flex-direction:column;align-items:center;text-align:center}
.footer-icon-text{font-size:var(--font-size-sm);font-weight:600;color:var(--bs-body-color)}
.breadcrumb-mobile{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none}
.breadcrumb-mobile::-webkit-scrollbar{display:none}
.breadcrumb-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:767.98px){.breadcrumb-container.breadcrumb-container{padding:.5rem 0}
.breadcrumb-item.breadcrumb-item{display:inline-flex;align-items:center}
}
.store-logo-box,.store-logo-box-sm,.store-logo-box-xs{display:flex;align-items:center;justify-content:center;background-color:var(--bs-tertiary-bg,#f4f6f8);border:1px solid var(--bs-border-color,#dde1e7);border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}
.store-logo-box{width:64px;height:64px}
.store-logo-box-md{width:56px;height:56px}
.store-logo-box-lg{width:112px;height:112px}
.store-logo-box-sm{width:40px;height:40px}
.store-logo-box-xs{width:48px;height:48px}
.store-logo-box img,.store-logo-box-lg img,.store-logo-box-md img,.store-logo-box-sm img,.store-logo-box-xs img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.min-w-110{min-width:110px}
.w-180{width:180px}
.w-60{width:60px}
.w-120{width:120px}
.fixed-width-320{width:320px;max-width:100%}
.fixed-width-380{width:380px;max-width:100%}
.product-thumb{width:48px;height:48px;object-fit:cover}
.store-logo-preview{max-width:160px;max-height:80px;object-fit:contain}
.resize-vertical{resize:vertical}
.card-rounded-15{border-radius:15px}
.progress.progress-thin{height:6px}
.theme-card-img-fallback{height:200px;display:flex;align-items:center;justify-content:center}
.share-toggle-check{display:none}
.share-btn-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}
.share-btn-item .btn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-fine)}
.share-extra-panel{display:none;margin-top:var(--space-2)}
.share-toggle-check:checked~.share-extra-panel{display:block}
.share-toggle-check:checked~.share-btn-row .sxt-show{display:none}
.share-toggle-check:checked~.share-btn-row .sxt-hide{display:inline}
.sxt-hide{display:none}
.pill-base{display:inline-block;padding:var(--space-1) .75rem;font-size:var(--font-size-sm);font-weight:600;border-radius:50rem;line-height:1.2}
.pill-done,.pill-success{background-color:var(--bs-success-bg-subtle);color:var(--bs-success-text-emphasis)}
.pill-left,.pill-warn{background-color:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis)}
.pill-none,.pill-muted{background-color:var(--bs-secondary-bg-subtle);color:var(--bs-secondary-text-emphasis)}
.pill-info{background-color:var(--bs-info-bg-subtle);color:var(--bs-info-text-emphasis)}
.truncate-80{max-width:80px}
.truncate-220{max-width:220px}
.step-circle{background-color:var(--bs-tertiary-bg);color:var(--bs-body-color)}
.step-circle-primary{background-color:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis)}
.code-snippet{display:block;padding:var(--space-1) .5rem;background-color:var(--bs-tertiary-bg);border-radius:.25rem;font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--bs-body-color);word-break:break-all}
.scroll-y{max-height:240px}
.scroll-y-md{max-height:320px}
.scroll-y-lg{max-height:380px}
.merchant-card{background-color:var(--bs-card-bg);border:1px solid var(--bs-border-color);border-radius:var(--radius-lg);padding:var(--space-4);transition:box-shadow .15s ease,transform .15s ease}
.merchant-card:hover{transform:translateY(-3px);box-shadow:0 .5rem 1.5rem rgba(0,0,0,.08)}
.nav-section-label{font-size:var(--text-fine);text-transform:uppercase;letter-spacing:.04em;color:var(--bs-secondary-color);padding:var(--space-2) 1rem .25rem;font-weight:600}
.nav-item-beta{font-size:var(--text-fine);font-weight:600;letter-spacing:.03em;background:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis);0 .35rem;border-radius:.25rem;margin-left:auto;text-transform:uppercase}
.log-tail{margin:0;padding:var(--space-4);max-height:320px;overflow-y:auto;font-size:var(--text-fine);background-color:var(--bs-tertiary-bg);border-radius:0 0 var(--radius-md) var(--radius-md);color:var(--bs-secondary-color);white-space:pre-wrap;word-break:break-all}
.text-logo,.text-logo-accent,.text-logo-tld{font-family:var(--logo-font-family)}
.text-logo-c1,.text-logo-c2,.text-logo-c3,.text-logo-c4{font-family:var(--logo-font-family)}
.text-logo-tld{font-weight:400;color:#8a8f98}
.text-logo-accent{color:var(--bs-primary)}
.mobile-nav-section-label{font-size:var(--text-fine);letter-spacing:.06em;text-transform:uppercase}
.icon-cat{font-size:2rem}
/* Homepage category tiles: even padding, restrained hover lift, reduced-motion safe. */.category-tile-body{padding:var(--space-4) var(--space-2)}
.category-tile-icon{line-height:1.35}
.category-card-transition{transition:transform .2s ease,box-shadow .2s ease}
.category-card-transition:hover,.category-card-transition:focus-visible{transform:translateY(-2px);box-shadow:var(--shadow-md,0 4px 12px rgba(0,0,0,.12))}
.category-card-transition:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.category-card-transition{transition:none}
.category-card-transition:hover,.category-card-transition:focus-visible{transform:none}
}
.icon-xl{font-size:48px}
.icon-sm-fixed{font-size:var(--text-sm-plus);flex-shrink:0}
.pdp-list-item,.sitemap-list-item{background:#fff!important;border-color:#dee2e6!important}
.pdp-list-wrap{background:#fff!important}
.kwh-hero{background:linear-gradient(135deg,#0d6efd 0,#0a58ca 50%,#084298 100%);border-radius:var(--radius-lg);color:#fff;position:relative;overflow:hidden}
.kwh-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 20%,rgba(255,255,255,.1) 0,transparent 55%),radial-gradient(ellipse at 20% 90%,rgba(255,255,255,.06) 0,transparent 50%);pointer-events:none}
.kwh-hero-inner{position:relative;z-index:1}
.kwh-stat-pill{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:2rem;padding:var(--space-1) .85rem;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}
.kwh-stat-pill .kwh-num{font-size:var(--font-size-md);font-weight:700}
.kwh-badge-primary{background:rgba(255,255,255,.2);color:#fff;font-size:var(--text-fine);letter-spacing:.06em;text-transform:uppercase}
.kwh-badge-secondary{background:rgba(255,255,255,.15);color:rgba(255,255,255,.85);font-size:var(--text-fine)}
.kwh-hero-title{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:700;line-height:1.15;color:#fff}
.kwh-hero-desc{max-width:560px;color:rgba(255,255,255,.85);font-size:var(--text-sm-plus);line-height:1.55}
.kwh-hero-desc-alt{max-width:560px;color:rgba(255,255,255,.8);font-size:var(--text-sm-plus);line-height:1.5}
.kwh-search{max-width:480px}
.kwh-trust-sep{opacity:.8;margin-left:var(--space-1)}
.kwh-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--bs-border-color,#dee2e6)}
.kwh-section-head h2{margin:0}
.kwh-section-head a{font-size:var(--text-fine);text-decoration:none;color:var(--bs-primary);white-space:nowrap}
.kwh-section-head a:hover{text-decoration:underline}
.kwh-cat-tile{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) .85rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--bs-border-radius,.375rem);text-decoration:none;color:var(--bs-body-color);background:var(--bs-body-bg,#fff);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;height:100%}
.kwh-cat-tile:hover{border-color:var(--bs-primary,#0d6efd);box-shadow:0 2px 8px rgba(13,110,253,.12);transform:translateY(-1px);color:var(--bs-primary,#0d6efd)}
.kwh-cat-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.3}
.kwh-cat-count{font-size:var(--text-fine);font-weight:700;background:var(--bs-primary-bg-subtle,#cfe2ff);color:var(--bs-primary-text-emphasis,#052c65);border-radius:2rem;padding:var(--space-1) .55rem;margin-left:var(--space-2);flex-shrink:0}
.kwh-price-card{border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;background:var(--bs-body-bg,#fff);height:100%;position:relative;overflow:hidden}
.kwh-price-card::after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--bs-primary,#0d6efd);transform-origin:left;transform:scaleX(0);transition:transform .3s ease}
.kwh-price-card:hover::after{transform:scaleX(1)}
.kwh-price-label{font-weight:700;font-size:var(--text-sm-plus)}
.kwh-price-count{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);margin-top:var(--space-1)}
.kwh-price-bar-track{height:5px;background:var(--bs-border-color,#dee2e6);border-radius:3px;margin-top:var(--space-3);overflow:hidden}
.kwh-price-bar-fill{height:100%;background:linear-gradient(90deg,var(--bs-primary,#0d6efd),#6ea8fe);border-radius:3px;transition:width .6s ease}
.kwh-recent-card{display:block;text-decoration:none;color:var(--bs-body-color);border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--radius-md);overflow:hidden;height:100%;transition:box-shadow .18s ease,transform .18s ease;background:var(--bs-body-bg,#fff)}
.kwh-recent-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-3px);color:var(--bs-body-color)}
.kwh-recent-img{width:100%;height:150px;object-fit:contain;background:var(--bs-secondary-bg,#f8f9fa);padding:var(--space-2);display:block}
.kwh-recent-img-placeholder{width:100%;height:150px;background:var(--bs-secondary-bg,#f8f9fa);display:flex;align-items:center;justify-content:center;font-size:2rem;color:var(--bs-secondary-color,#6c757d)}
.kwh-recent-body{padding:var(--space-3) .75rem .75rem}
.kwh-recent-cat{font-size:var(--text-fine);text-transform:uppercase;letter-spacing:.07em;color:var(--bs-primary,#0d6efd);font-weight:600;margin-bottom:var(--space-1)}
.kwh-recent-name{font-size:var(--font-size-sm);font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.2em}
.kwh-recent-price{margin-top:var(--space-2);font-weight:700;font-size:var(--font-size-sm);color:var(--bs-body-color)}
.kwh-recent-brand{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.kwh-brand-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) .85rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--bs-border-radius,.375rem);text-decoration:none;color:var(--bs-body-color);background:var(--bs-body-bg,#fff);transition:border-color .15s ease,background .15s ease}
.kwh-brand-row:hover{border-color:var(--bs-warning,#ffc107);background:var(--bs-warning-bg-subtle,#fff8e1);color:var(--bs-body-color)}
.kwh-brand-name{font-size:var(--font-size-sm);font-weight:600}
.kwh-brand-badge{font-size:var(--text-fine);font-weight:700;background:var(--bs-warning-bg-subtle,#fff3cd);color:var(--bs-warning-text-emphasis,#664d03);border-radius:2rem;padding:var(--space-1) .55rem;flex-shrink:0}
.kwh-store-row{display:block;padding:var(--space-2) .85rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:var(--bs-border-radius,.375rem);text-decoration:none;color:var(--bs-body-color);background:var(--bs-body-bg,#fff);transition:border-color .15s ease,background .15s ease}
.kwh-store-row:hover{border-color:var(--bs-success,#198754);background:var(--bs-success-bg-subtle,#d1e7dd);color:var(--bs-body-color)}
.kwh-store-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}
.kwh-store-name{font-size:var(--font-size-sm);font-weight:600}
.kwh-store-count{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.kwh-store-bar-track{height:3px;background:var(--bs-border-color,#dee2e6);border-radius:2px;overflow:hidden}
.kwh-store-bar-fill{height:100%;background:var(--bs-success,#198754);border-radius:2px}
.kwh-tag{display:inline-flex;align-items:center;gap:.35rem;padding:var(--space-1) .7rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:2rem;text-decoration:none;color:var(--bs-body-color);font-size:var(--text-fine);background:var(--bs-body-bg,#fff);transition:border-color .12s ease,background .12s ease,color .12s ease;white-space:nowrap}
.kwh-tag:hover{border-color:var(--bs-primary,#0d6efd);background:var(--bs-primary-bg-subtle,#cfe2ff);color:var(--bs-primary-text-emphasis,#052c65)}
.kwh-tag-count{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d)}
.kwh-search .form-control{border-right:0;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.15);color:#fff;border-radius:var(--radius-md) 0 0 var(--radius-md)}
.kwh-search .form-control::placeholder{color:rgba(255,255,255,.65)}
.kwh-search .form-control:focus{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.7);box-shadow:none;color:#fff}
.kwh-search .btn{border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.2);color:#fff;font-weight:600;border-radius:0 var(--radius-md) var(--radius-md) 0}
.kwh-search .btn:hover{background:rgba(255,255,255,.3)}
.kwh-quicklinks{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:var(--space-3)}
.kwh-quicklink{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--text-fine);font-weight:600;padding:var(--space-1) .75rem;border-radius:2rem;text-decoration:none;border:1px solid rgba(255,255,255,.35);color:rgba(255,255,255,.9);background:rgba(255,255,255,.1);transition:background .15s ease}
.kwh-quicklink:hover{background:rgba(255,255,255,.22);color:#fff}
.kwh-footer{background:var(--bs-secondary-bg,#f8f9fa);border-radius:var(--bs-border-radius-lg,.75rem);padding:var(--space-5);border:1px solid var(--bs-border-color,#dee2e6)}
.coupon-card{border-radius:var(--radius-lg);overflow:hidden}
.cc-expiry-label{font-size:var(--text-fine);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.product-img-placeholder{min-height:280px;display:flex;align-items:center;justify-content:center;background:#f8f9fa}
.product-badge-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:7px;background:#0a7abf;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.product-share-group{position:absolute;top:0;left:0;margin:var(--space-2);z-index:20;display:flex;flex-direction:column;gap:5px;pointer-events:auto}
.psb-pin{width:38px;height:38px;border-radius:7px;display:flex;align-items:center;justify-content:center;text-decoration:none;background:#e60023;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:transform .15s ease}
.psb-pin:hover{transform:scale(1.1);text-decoration:none}
.psb-pin svg{display:block}
.a2a_kit.a2a_kit_size_38{width:38px}
.product-discount-off{font-size:var(--text-fine);opacity:.9}
.product-main-img{max-height:420px;width:100%;object-fit:contain;object-position:center}
.product-img-min-h{min-height:280px}
.color-card-swatch{height:72px}
.color-dot-swatch{width:12px;height:12px;flex-shrink:0}
.custom-field-image{max-width:200px;max-height:200px}
.social-card{transition:box-shadow .15s,transform .15s}
.social-card:hover{box-shadow:0 .25rem .75rem rgba(0,0,0,.1);transform:translateY(-2px)}
.fb-page-wrapper iframe{border-radius:var(--radius-md)}
.pdp-attr-link-icon{font-size:var(--text-sm-plus);flex-shrink:0}
.cursor-pointer{cursor:pointer}
.pdp-sticky-name{max-width:150px}
.price-display{line-height:1}
.mobile-offcanvas-menu .nav-link,.navbar .nav-link{min-height:44px;display:inline-flex;align-items:center}
.navbar-toggler{min-width:44px;min-height:44px}
.btn-close{min-width:44px;min-height:44px}
.store-logo-wrap{height:56px;padding:6px 10px;overflow:hidden}
.store-logo-img{max-height:100%;max-width:100%;object-fit:contain}
.store-discount-lbl{font-size:var(--text-sm-plus)}
.search-landing-form{max-width:620px}
.not-found-form-wrap{max-width:500px}
.icon-32{font-size:32px}
.icon-custom-sz{font-size:var(--icon-sz,1em);line-height:1}
.store-logo{max-height:100px;max-width:100%;object-fit:contain}
.footer-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;background-color:rgba(var(--bs-primary-rgb),.1);border-radius:8px;margin-bottom:var(--space-2);transition:background-color .2s ease}
.footer-icon:hover{background-color:rgba(var(--bs-primary-rgb),.15)}
.footer-icon i{font-size:var(--font-size-xl);color:var(--bs-primary)}
.footer-icon-wrapper{display:flex;flex-direction:column;align-items:center;text-align:center}
.footer-icon-text{font-size:var(--font-size-sm);font-weight:600;color:var(--bs-body-color)}
.breadcrumb-mobile{overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;-ms-overflow-style:none}
.breadcrumb-mobile::-webkit-scrollbar{display:none}
.breadcrumb-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:767.98px){.breadcrumb-container.breadcrumb-container{padding:.5rem 0}
.breadcrumb-item.breadcrumb-item{display:inline-flex;align-items:center}
}
.store-logo-box,.store-logo-box-sm,.store-logo-box-xs{display:flex;align-items:center;justify-content:center;background-color:var(--bs-tertiary-bg,#f4f6f8);border:1px solid var(--bs-border-color,#dde1e7);border-radius:var(--radius-md);overflow:hidden;flex-shrink:0}
.store-logo-box{width:64px;height:64px}
.store-logo-box-md{width:56px;height:56px}
.store-logo-box-lg{width:112px;height:112px}
.store-logo-box-sm{width:40px;height:40px}
.store-logo-box-xs{width:48px;height:48px}
.store-logo-box img,.store-logo-box-lg img,.store-logo-box-md img,.store-logo-box-sm img,.store-logo-box-xs img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.min-w-110{min-width:110px}
.w-180{width:180px}
.w-60{width:60px}
.w-120{width:120px}
.fixed-width-320{width:320px;max-width:100%}
.fixed-width-380{width:380px;max-width:100%}
.product-thumb{width:48px;height:48px;object-fit:cover}
.store-logo-preview{max-width:160px;max-height:80px;object-fit:contain}
.resize-vertical{resize:vertical}
.card-rounded-15{border-radius:15px}
.progress.progress-thin{height:6px}
.theme-card-img-fallback{height:200px;display:flex;align-items:center;justify-content:center}
.share-toggle-check{display:none}
.share-btn-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.35rem}
.share-btn-item .btn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--text-fine)}
.share-extra-panel{display:none;margin-top:var(--space-2)}
.share-toggle-check:checked~.share-extra-panel{display:block}
.share-toggle-check:checked~.share-btn-row .sxt-show{display:none}
.share-toggle-check:checked~.share-btn-row .sxt-hide{display:inline}
.sxt-hide{display:none}
.pill-base{display:inline-block;padding:var(--space-1) .75rem;font-size:var(--font-size-sm);font-weight:600;border-radius:50rem;line-height:1.2}
.pill-done,.pill-success{background-color:var(--bs-success-bg-subtle);color:var(--bs-success-text-emphasis)}
.pill-left,.pill-warn{background-color:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis)}
.pill-none,.pill-muted{background-color:var(--bs-secondary-bg-subtle);color:var(--bs-secondary-text-emphasis)}
.pill-info{background-color:var(--bs-info-bg-subtle);color:var(--bs-info-text-emphasis)}
.truncate-80{max-width:80px}
.truncate-220{max-width:220px}
.step-circle{background-color:var(--bs-tertiary-bg);color:var(--bs-body-color)}
.step-circle-primary{background-color:var(--bs-primary-bg-subtle);color:var(--bs-primary-text-emphasis)}
.code-snippet{display:block;padding:var(--space-1) .5rem;background-color:var(--bs-tertiary-bg);border-radius:.25rem;font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--bs-body-color);word-break:break-all}
.scroll-y{max-height:240px}
.scroll-y-md{max-height:320px}
.scroll-y-lg{max-height:380px}
.merchant-card{background-color:var(--bs-card-bg);border:1px solid var(--bs-border-color);border-radius:var(--radius-lg);padding:var(--space-4);transition:box-shadow .15s ease,transform .15s ease}
.merchant-card:hover{transform:translateY(-3px);box-shadow:0 .5rem 1.5rem rgba(0,0,0,.08)}
.nav-section-label{font-size:var(--text-fine);text-transform:uppercase;letter-spacing:.04em;color:var(--bs-secondary-color);padding:var(--space-2) 1rem .25rem;font-weight:600}
.nav-item-beta{font-size:var(--text-fine);font-weight:600;letter-spacing:.03em;background:var(--bs-warning-bg-subtle);color:var(--bs-warning-text-emphasis);0 .35rem;border-radius:.25rem;margin-left:auto;text-transform:uppercase}
.log-tail{margin:0;padding:var(--space-4);max-height:320px;overflow-y:auto;font-size:var(--text-fine);background-color:var(--bs-tertiary-bg);border-radius:0 0 var(--radius-md) var(--radius-md);color:var(--bs-secondary-color);white-space:pre-wrap;word-break:break-all}
/* REMOVED (R12): theme card image selectors - unused per 2026-09-11 CSS audit */
/* REMOVED (R12): comparison table wrap selector - unused per 2026-09-11 CSS audit */

/* Compare Top Picks — Bootstrap-Native 3-Card Design */
.ctp-tier{font-size:var(--text-fine);font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .55rem}
.ctp-tier--low{background:#d1e7dd;color:#0a3622}
.ctp-tier--mid{background:#cfe2ff;color:#052c65}
.ctp-tier--high{background:#f8d7da;color:#58151c}
.product-card--accent{border:2px solid var(--bs-primary)!important}
@media (max-width:767.98px){.admin-products-table th:nth-child(3),.admin-products-table td:nth-child(3){display:table-cell}.admin-products-table th:nth-child(4),.admin-products-table td:nth-child(4),.admin-products-table th:nth-child(5),.admin-products-table td:nth-child(5),.admin-products-table th:nth-child(8),.admin-products-table td:nth-child(8){display:none}.admin-products-table th:nth-child(1),.admin-products-table td:nth-child(1){width:40px}.admin-products-table th:nth-child(2),.admin-products-table td:nth-child(2){width:52px}.admin-products-table th:nth-child(6),.admin-products-table td:nth-child(6){width:92px}.admin-products-table th:nth-child(7),.admin-products-table td:nth-child(7){width:76px}.admin-products-table th:nth-child(9),.admin-products-table td:nth-child(9){width:92px}}
/* ADMIN-TABLE-FIX (2026-09-17): the block below was written with PRE-checkbox column
   numbering. The bulk-select checkbox added the same day (commit 23f7a78) shifted every
   column by one, so its nth-child(3){display:none} hid the product NAME column on mobile
   while the very same block still styled .admin-product-name for wrapping - self-contradictory.
   After renumbering, its nth-child display/width rules were identical to the block above, so
   they were removed and only its unique additions kept. The block ABOVE governs column
   visibility (3=Name visible; 4=Brand, 5=Category, 8=Source hidden). Do not re-add
   nth-child display/width rules here. */
@media (max-width:767.98px){.admin-products-table{table-layout:fixed;width:100%}.admin-products-table .admin-product-name{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.admin-products-table .admin-product-name a,.admin-products-table .admin-product-name span{white-space:normal;overflow-wrap:anywhere;word-break:break-word}.admin-products-table .admin-product-name small{display:block;overflow-wrap:anywhere;word-break:break-word}}
@media (min-width:768px) and (max-width:991.98px){.compare-top-picks .ctp-card--low{display:none}.compare-top-picks .ctp-card{width:50%}}
.rsc-block{background:var(--bs-body-bg,#fff);border:1px solid var(--bs-border-color);border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-5)}.rsc-hero{display:flex;align-items:flex-start;gap:1rem;padding:var(--space-5) 1.25rem 1rem}.rsc-logo-wrap{flex-shrink:0;align-self:flex-start}.rsc-info{flex:1;min-width:0}.rsc-name{font-size:var(--font-size-md);font-weight:700;margin-bottom:var(--space-1)}.rsc-subname{display:block;font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d);margin-bottom:var(--space-1)}.rsc-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:var(--space-2)}.rsc-badge{font-size:var(--text-fine);font-weight:600;padding:var(--space-1) .5rem;border-radius:1rem;border:1px solid transparent;white-space:nowrap}.rsc-badge-cat{background:var(--bs-secondary-bg-subtle,#f8f9fa);color:var(--bs-secondary-color,#6c757d);border-color:var(--bs-border-color)}.rsc-badge-loc{background:var(--bs-light,#f8f9fa);color:var(--bs-body-color);border-color:var(--bs-border-color)}.rsc-badge-deals{background:var(--bs-warning-bg-subtle,#fff3cd);color:var(--bs-warning-text-emphasis,#664d03);border-color:var(--bs-warning-border-subtle,#ffecb5)}.rsc-desc{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d);line-height:1.5;margin-bottom:var(--space-3);max-width:100%}.rsc-meta{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--bs-border-color)}.rsc-meta .sep{opacity:.4}.rsc-actions{display:flex;flex-wrap:wrap;gap:.5rem}.rsc-btn{display:inline-flex;align-items:center;gap:.3rem;padding:var(--space-2) .9rem;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:600;text-decoration:none;white-space:nowrap;border:1px solid transparent;transition:opacity .15s}.rsc-btn:hover{opacity:.85;text-decoration:none}.rsc-btn-primary{background:var(--bs-primary,#0d6efd);color:#fff;border-color:var(--bs-primary,#0d6efd)}.rsc-btn-outline{background:0 0;color:var(--bs-body-color);border-color:var(--bs-border-color)}.rsc-divider{height:1px;background:var(--bs-border-color);margin:0 1.25rem}.rsc-coupons{padding:var(--space-4) 1.25rem 1.25rem}.rsc-section-label{font-size:var(--text-fine);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--bs-secondary-color,#6c757d);margin-bottom:var(--space-4)}.rsc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.75rem}.rsc-coupon-card{border:1px solid var(--bs-border-color);border-radius:var(--radius-sm);padding:var(--space-4);display:flex;flex-direction:column;gap:.45rem;background:var(--bs-body-bg,#fff);transition:border-color .15s}.rsc-coupon-card:hover{border-color:var(--bs-primary,#0d6efd)}.rsc-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.4rem}.rsc-type{font-size:var(--text-fine);font-weight:600;padding:var(--space-1) .5rem;border-radius:1rem;white-space:nowrap}.rsc-type-sale{background:#cfe2ff;color:#084298}.rsc-type-deal{background:#d1e7dd;color:#0a3622}.rsc-type-code{background:#e0cffc;color:#3d0a91}.rsc-type-ship{background:#fff3cd;color:#664d03}.rsc-discount{font-size:var(--font-size-base);font-weight:700;color:var(--bs-body-color);white-space:nowrap;line-height:1}.rsc-card-title{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d);line-height:1.4;flex:1}.rsc-code-box{background:var(--bs-tertiary-bg,#f8f9fa);border:1px dashed var(--bs-border-color);border-radius:var(--radius-sm);padding:var(--space-2) .75rem;font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--bs-body-color);text-align:center;cursor:pointer;letter-spacing:.06em;user-select:all;transition:background .15s,border-color .15s}.rsc-code-box:hover{background:var(--bs-primary-bg-subtle,#cfe2ff);border-color:var(--bs-primary,#0d6efd);border-style:solid}.rsc-cta{display:block;text-align:center;padding:var(--space-2) .75rem;border-radius:var(--radius-sm);font-size:var(--text-fine);font-weight:600;text-decoration:none;transition:opacity .15s}.rsc-cta:hover{opacity:.85;text-decoration:none}.rsc-cta-primary{background:var(--bs-primary,#0d6efd);color:#fff}.rsc-cta-outline{color:var(--bs-primary,#0d6efd);border:1px solid var(--bs-primary-border-subtle,#9ec5fe)}.rsc-cta-outline:hover{background:var(--bs-primary-bg-subtle,#cfe2ff)}.rsc-exp{font-size:var(--text-fine);color:var(--bs-secondary-color,#6c757d);display:flex;align-items:center;gap:.25rem}.rsc-exp-urgent{color:var(--bs-danger,#dc3545);font-weight:600}.rsc-footer{padding:var(--space-3) 1.25rem;border-top:1px solid var(--bs-border-color);text-align:right}.rsc-view-all{font-size:var(--font-size-sm);color:var(--bs-primary,#0d6efd);text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:.25rem}.rsc-view-all:hover{text-decoration:underline}/* QW30-10 (2026-07-03): "Related Reading" internal-link block emitted by \AaStore\Helpers\RelatedSeoHelper::renderRelatedReadingBlock(). Plain text-only markup by design - no images, no JS - so the text-link graph is fully crawlable for SEO (C1 internal-link audit). */.related-reading-block{margin:var(--space-6) 0 1rem;padding:var(--space-4) 1.25rem;background:var(--bs-tertiary-bg,#f8f9fa);border:1px solid var(--bs-border-color,#e9ecef);border-radius:var(--card-radius)}.related-reading-block__heading{font-size:var(--font-size-md);font-weight:600;margin:0 0 .5rem;color:var(--bs-body-color,#212529)}.related-reading-block__list{list-style:none;padding-left:0;margin:0}.related-reading-block__item{padding:var(--space-1) 0;line-height:1.4}.related-reading-block__link{color:var(--bs-primary,#0d6efd);text-decoration:none;font-weight:600}.related-reading-block__link:hover{text-decoration:underline}.related-reading-block__desc{color:var(--bs-secondary-color,#6c757d);font-size:var(--font-size-sm)}.skip-to-main{position:absolute;top:-100%;left:0;background:var(--bs-primary);color:var(--bs-white);padding:var(--space-2) 1rem;border-radius:0 0 var(--radius-sm) var(--radius-sm);font-weight:600;font-size:var(--text-sm-plus);text-decoration:none;z-index:1080;box-shadow:0 4px 12px rgba(0,0,0,.25);transition:top .2s ease,box-shadow .2s ease,outline-color .2s ease;outline:2px solid transparent;outline-offset:2px}.skip-to-main:focus-visible{top:0;outline-color:var(--bs-warning);box-shadow:0 6px 20px rgba(0,0,0,.35),0 0 0 .25rem rgba(13,110,253,.4)}.visually-hidden-focusable{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.visually-hidden-focusable:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}/* CSS-AUD-05 (2026-07-09): Custom scrollbar styling for scrollable admin containers */.scroll-y::-webkit-scrollbar,.scroll-y-md::-webkit-scrollbar,.scroll-y-lg::-webkit-scrollbar,.log-tail::-webkit-scrollbar{width:8px;height:8px}.scroll-y::-webkit-scrollbar-track,.scroll-y-md::-webkit-scrollbar-track,.scroll-y-lg::-webkit-scrollbar-track,.log-tail::-webkit-scrollbar-track{background:var(--bs-tertiary-bg,#f8f9fa);border-radius:4px}.scroll-y::-webkit-scrollbar-thumb,.scroll-y-md::-webkit-scrollbar-thumb,.scroll-y-lg::-webkit-scrollbar-thumb,.log-tail::-webkit-scrollbar-thumb{background:var(--bs-secondary-color,#6c757d);border-radius:4px}.scroll-y::-webkit-scrollbar-thumb:hover,.scroll-y-md::-webkit-scrollbar-thumb:hover,.scroll-y-lg::-webkit-scrollbar-thumb:hover,.log-tail::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color,#6c757d);opacity:0.8}/* CSS-AUD-04 (2026-07-09): Empty state component for consistent no-results styling */.empty-state-icon{font-size:2.5rem;margin-bottom:var(--space-4);color:var(--bs-tertiary-color,#6c757d);opacity:0.5}.empty-state-title{font-size:var(--font-size-md);font-weight:600;margin-bottom:var(--space-2);color:var(--bs-body-color,#212529)}.empty-state-text{font-size:var(--text-sm-plus);margin-bottom:0}/* CSS-AUD-06 (2026-07-09): :focus-visible rules for keyboard navigation */.js-product-card.card:focus-visible,.product-card.card:focus-visible{transform:translateY(-3px);box-shadow:var(--shadow-md);outline:2px solid var(--bs-primary,#0d6efd);outline-offset:2px}.btn:focus-visible{outline:2px solid var(--bs-primary,#0d6efd);outline-offset:2px;box-shadow:0 0 0 4px rgba(13,110,253,.25)}.nav-link:focus-visible{outline:2px solid var(--bs-primary,#0d6efd);outline-offset:2px;background-color:var(--bs-tertiary-bg,#f8f9fa)}.form-control:focus-visible{outline:2px solid var(--bs-primary,#0d6efd);outline-offset:0;box-shadow:0 0 0 4px rgba(13,110,253,.25)}/* N20 (2026-07-13): Card hover micro-animations */.js-product-card.card:hover,.product-card.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);transition:transform .2s ease,box-shadow .2s ease}/* N41 (2026-07-13): Homepage trust strip + primary CTA */.homepage-trust-strip{background:var(--bs-tertiary-bg,#f8f9fa);border-radius:var(--card-radius,0.5rem);padding:var(--space-3) 1rem}.homepage-trust-strip .fw-semibold{font-size:var(--font-size-sm);line-height:1.1}.homepage-trust-strip .text-body-secondary{font-size:var(--text-fine);line-height:1.2;margin-top:0.125rem}.homepage-primary-cta .card{border-radius:var(--card-radius,0.5rem)}.homepage-primary-cta .btn-lg{padding:0.625rem 1.25rem;font-weight:600}/* Deal guide pick grid: product cards use h-100 to fill their column in   other contexts, but here each column also contains a "why this pick"   paragraph below the card. The stretched card was visually swallowing   the why text and pushing it past the bottom of the row. Make the card   size to its content and the column a flex column so card + why stack   predictably. */.deal-body .product-card.h-100{height:auto}.deal-body .row.g-3 > [class*="col-"]{display:flex;flex-direction:column}.deal-body .deal-pick-why{font-size:var(--font-size-sm);color:#3a3f44;margin-top:var(--space-2);flex:0 0 auto}/* Related-reading link grid inside deal-body */.deal-related-reading{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.deal-related-reading a{display:block;padding:var(--space-3) 1rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:.5rem;background:var(--bs-card-bg,#fff);text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease}.deal-related-reading a:hover{border-color:var(--bs-primary,#0d6efd);box-shadow:0 2px 8px rgba(13,110,253,.08)}.deal-related-reading .drr-label{font-weight:600;font-size:var(--font-size-sm);color:var(--bs-body-color,#1a1d20);line-height:1.3}.deal-related-reading .drr-blurb{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d);margin-top:var(--space-1);line-height:1.35}/* News-source citation list (real Google News articles that seeded the picks) */.deal-news-sources{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.deal-news-sources li{padding:var(--space-3) .85rem;background:var(--bs-tertiary-bg,#f8f9fa);border-left:3px solid var(--bs-primary,#0d6efd);border-radius:0 .35rem .35rem 0;font-size:var(--font-size-sm);line-height:1.45}.deal-news-sources a{color:var(--bs-body-color,#1a1d20);text-decoration:none;font-weight:600}.deal-news-sources a:hover{text-decoration:underline}.deal-news-sources .dns-source{font-size:var(--font-size-sm);color:var(--bs-secondary-color,#6c757d);margin-top:var(--space-1);display:block;font-weight:400;font-style:italic}
/* Skip-to-main rule — overrides the one inside the compressed block above.     
   Uses the standard left-clip pattern instead of top:-100% which is unreliable 
   when the containing block height is not the viewport. */
.skip-to-main{position:absolute;left:-10000px;top:auto;width:1px;height:1px;padding:0;overflow:hidden;background:#1d4ed8;color:#fff;text-decoration:none;font-weight:600;z-index:1080}
.skip-to-main:focus,.skip-to-main:focus-visible{position:static;width:auto;height:auto;padding:var(--space-3) 1.25rem;outline:2px solid #ffc107;box-shadow:0 4px 12px rgba(0,0,0,.3)}

/* F-32 (2026-07-28): PDP thumbnail gallery + click-to-zoom (Bootstrap modal).
   Zero new JS dependencies — thumbnails swap via data-src attributes read in
   app.js, and zoom opens the native Bootstrap .modal the page already loads. */
.pdp-thumb-strip{scroll-snap-type:x mandatory;scrollbar-width:thin;-webkit-overflow-scrolling:touch;scroll-padding:0 .5rem}
/* F-72 (2026-07-28): prevent the header nav from wrapping onto two lines on
   tablet widths by letting it stay on one row until the mobile offcanvas kicks in.

   FIX 2026-09-04: these selectors were previously self-concatenated, e.g.
   ".site-header-main-nav .navbar.site-header-main-nav .navbar". That form was
   presumably meant as a specificity bump, but doubling a *descendant* selector
   changes its meaning instead of just raising specificity: it demanded a single
   element carrying BOTH .navbar and .site-header-main-nav. In the real markup
   .site-header-main-nav sits on the <header> and .navbar on a child <nav>
   (template_header.php:905-906), so nothing matched and this entire block was
   dead. Restored to plain descendant selectors; where extra weight is genuinely
   needed, the doubled *simple* class idiom (.nav-link.nav-link) is used, which
   raises specificity without changing what is matched. */
@media (min-width:768px) and (max-width:1199.98px){
  .site-header-main-nav .navbar{flex-wrap:nowrap}
  .site-header-main-nav .navbar-collapse{flex-wrap:nowrap}
  .site-header-main-nav .navbar .nav{flex-wrap:nowrap;gap:.15rem}
  .site-header-main-nav .navbar .nav-link.nav-link{white-space:nowrap;padding-left:.65rem;padding-right:.65rem}
  .site-header-main-nav .navbar-brand{max-width:min(52vw,440px);padding-top:.7rem}
}

/* F-06 (2026-07-29): Fix wing-ad CSS overflow on tablets
   Hide wing ads on tablet widths to prevent horizontal overflow.

   FIX 2026-09-04: the @media prelude was missing its opening brace, so the
   parser swallowed ".site-wing" into the media condition and this rule never
   applied. The base .site-wing rule already defaults to display:none and only
   reveals at min-width:1668px, so the visible behaviour was accidentally
   correct — but this safety net was doing nothing. Brace restored. */
@media (max-width:1667px){
  .site-wing{display:none!important}
}

/* SECTION J (2026-09-08): text-logo wordmark + letter-mark icon styling.
   renderLogo() (Helpers/header_render_helpers.php) emits .text-logo-wrap with
   optional per-segment .text-logo-c1/.text-logo-c2 spans (VS splits a
   pipe-delimited logo_wordmark) and a prepended .text-logo-mark icon.
   --logo-color-1/2 intentionally stay unset so the wordmark tracks the active
   theme (Bootstrap primary / danger fallbacks). The .text-logo-wrap weight /
   letter-spacing bump (800 / -.02em) is applied on the existing rule near the
   top of this file, not duplicated here. */
.text-logo-c1,.text-logo-c3{color:var(--logo-color-1,var(--bs-primary))}
.text-logo-c2,.text-logo-c4{color:var(--logo-color-2,var(--btn-deals-bg,#d4220e))}
.text-logo-mark{height:1.1em;width:auto;vertical-align:-0.16em;margin-right:.16em;color:var(--logo-color-1,var(--bs-primary))}
/* Per-theme logo tuning: some Bootswatch primaries (Minty teal, Brite lime) are too pale to read on the near-white header. Swap the primary wordmark segments + mark to the theme's darker -text-emphasis shade and frame the wordmark. Add one [data-theme] group per theme that needs it. */
[data-theme="minty"] .text-logo-c1,[data-theme="minty"] .text-logo-c3,[data-theme="minty"] .text-logo-mark,[data-theme="cerulean"] .text-logo-c1,[data-theme="cerulean"] .text-logo-c3,[data-theme="cerulean"] .text-logo-mark{color:var(--bs-primary-text-emphasis)}
[data-theme="minty"] .text-logo-wrap{border:1.5px solid var(--bs-primary-text-emphasis);border-radius:.45rem;padding:.05rem .5rem}
/* Brite: Bootswatch Brite puts a 2px solid black border top+bottom on .navbar — the bottom one reads as a hard underline beneath the header. Drop it on this theme only (keep the top edge). */
[data-theme="brite"] .site-header-main-nav .navbar{border-bottom:0}
/* Brite (owner 2026-09-10): the theme's neo-brutalist border boxes the wordmark and its dark-lime --bs-primary makes the first word read muddy. Strip the frame; neutralise the first-word/mark to a plain high-contrast tone (keeps the red .SHOP accent). */
[data-theme="brite"] .text-logo-wrap{border:0;padding:0;background:none}
[data-theme="brite"] .text-logo-c1,[data-theme="brite"] .text-logo-c3,[data-theme="brite"] .text-logo-mark{color:var(--bs-emphasis-color)}
/* Default theme: bolder TLD and tighter wordmark (owner 2026-09-10). */
:root:not([data-theme]) .text-logo-tld{font-weight:600}
:root:not([data-theme]) .navbar-tagline-text{color:var(--bs-secondary-color,#6c757d)}

.pdp-thumb-strip::-webkit-scrollbar{height:4px}
.pdp-thumb-strip::-webkit-scrollbar-thumb{background:rgba(108,117,125,.4);border-radius:2px}
.pdp-thumb{width:80px;height:80px;scroll-snap-align:start;overflow:hidden;background:var(--bs-tertiary-bg,#f8f9fa);border:2px solid transparent;outline:0;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease;-webkit-tap-highlight-color:transparent}
.pdp-thumb:hover{transform:translateY(-2px)}
.pdp-thumb:focus-visible{border-color:var(--bs-primary,#0d6efd);box-shadow:0 0 0 3px rgba(13,110,253,.2)}
.pdp-thumb--active{border-color:var(--bs-primary,#0d6efd);box-shadow:0 0 0 2px rgba(13,110,253,.18)}
.pdp-thumb--active:focus-visible{box-shadow:0 0 0 3px rgba(13,110,253,.28)}
.pdp-thumb-img{width:100%;height:100%;object-fit:contain;display:block;background:#fff;padding:var(--space-1)}
.pdp-affiliate-btn{z-index:30;border-radius:8px!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:rgba(255,255,255,.9)!important}
.pdp-affiliate-btn:hover{background:#fff!important}
@media (max-width:767.98px){
  .pdp-thumb{width:64px;height:64px}
}

/* N72 (2026-07-03): auto-fit tagline — always one line under the logo, full text shown,   font-size scales with .navbar-brand's width via container query units (cqi). The brand   has container-type:inline-size and a max-width cap, so cqi resolves to a real pixel   value. clamp() keeps font between 0.5rem (legible on tiny phones) and 0.85rem (the   original desktop size). overflow:visible + text-overflow:clip + max-width:100% replace   the previous hidden/ellipsis/fixed-max-width combo so the AI-generated tagline is   never truncated with "..." — it shrinks instead of getting cut. */
.navbar-tagline-text{display:block;min-width:0;max-width:100%;overflow:visible;text-overflow:clip;white-space:nowrap;font-size:clamp(.82rem,3.7vw,.98rem);font-weight:400;line-height:1.2;color:var(--bs-secondary-color,#6c757d);text-align:center;align-self:center;margin-top:1px}
/* N72-TRACK (2026-09-16): make the text wordmark and the tagline share ONE width
   track so their left and right edges line up on every screen size, and so neither
   can ever overflow the header (which keeps both on the same row as the hamburger).

   Why this replaced the previous approach: the wordmark sized itself with
   `--logo-track:min(80vw,26rem)` inside a clamp, while the tagline used an unrelated
   `clamp(.82rem,3.7vw,.98rem)`. Two independent formulas cannot produce equal widths,
   and on mobile the wordmark's clamp floor pinned it at a constant 24px while the
   tagline kept growing with vw — measured deltas of 83-160px, with the tagline
   overflowing the brand box by up to 92px (320px) and the wordmark by 9px.

   The track is expressed in `vw`, NOT a percentage: `font-size:calc()` cannot
   resolve a percentage against the parent's width (percentages in font-size resolve
   against the inherited font-size), and `container-type:inline-size` + `cqi` is
   already documented above as broken here (it collapsed the brand's inline-size and
   rendered the tagline at ~10px). `vw` is the unit this header already relies on.

   The track mirrors the brand box arithmetic: viewport minus the container's
   horizontal padding (8px each side at <=400px, else 20px) minus the 52px hamburger
   slot — i.e. `100vw - 68px` (4.25rem) at <=400px and `100vw - 92px` (5.75rem) above.
   The offsets used below are deliberately a little LARGER than that so the track is a
   conservative under-estimate of the box and overflow is impossible. It is capped at
   26rem so the brand does not grow absurdly wide on desktop.

   IMPORTANT: neither element may be given a `max` cap that it would hit, because a cap
   (or a `min` floor) stops that element tracking the shared track and its edge then
   diverges from the other's. Only the tagline keeps a small floor for legibility; the
   wordmark has no cap beyond the track itself, so both stay aligned across the full
   range. Each element divides the track by its OWN character count, passed from PHP as
   --logo-chars / --tagline-chars. Deriving size from length is what makes this hold for
   arbitrarily long AI-generated taglines: a 63-char tagline renders smaller than a
   19-char one instead of overflowing. (A fixed assumed length was measured to overflow
   by 184px on longer text, which is why the char count is not hardcoded.)

   N97 (2026-09-17) — RECALIBRATED IN A REAL BROWSER. These divisors used to be .775 /
   .61, described as "calibrated against real Segoe UI glyph advances". Segoe UI is only a
   FALLBACK here: the wordmark renders in the custom "Inter Logo" family and the tagline in
   Inter, and both are woff2-only — so the offline glyph-metric tools that produced those
   numbers could not read the fonts that actually paint. Measured in Chromium at 1429px:

     wordmark  .text-logo-wrap       31.575px -> 338.63px  = 10.725 em  (0.6309 em/char)
     tagline   .navbar-tagline-text  15.155px -> 322.83px  = 21.302 em  (0.4734 em/char)

   i.e. the wordmark filled 81.4% of the track and the tagline only 77.6%, leaving the
   tagline 15.80px narrower — inset 7.90px on EACH side, because it is text-align:center.
   That is the "skewed font" the owner reported: not a font-size conflict, a calibration
   drift, and one that no static scan of this file can see.

   The divisors are now measured em/char values, and the fraction of the track they occupy
   is factored out into ONE shared variable, --brand-fill, so both elements scale by the
   same factor and cannot drift apart again:

     width = track * --brand-fill * (chars * emPerChar) / (chars * emPerChar) = track * fill

   To resize the whole brand, change --brand-fill alone — never one divisor on its own.
   .814 preserves the wordmark's shipped size. 1.0 would use the full track (a ~23% bigger
   logo) but overflows the 52vw tablet cap at 768-800px, so it is deliberately not the
   default.

   WHY THE TAGLINE DIVISOR LOOKS "OFF": the tagline's rendered width is a STEP FUNCTION of
   its font-size, because DirectWrite hints/snaps glyph advances. Swept 13->17px in 0.05px
   steps and the width only ever took 7 values (279.65 / 290.97 / 313.63 / 322.83 / 336.28 /
   356.81 / 370.27px) — a 20.5px jump at the 15.9->15.95px boundary. Exact width matching is
   therefore impossible for this string; the divisor only chooses WHICH bucket we land in.
   336.28px is the closest achievable to the wordmark's 338.63px (-2.35px = 0.7%, vs the old
   -15.80px = 4.9%). The divisor is set to put the font-size MID-bucket (15.57px, bucket
   15.25-15.90) rather than at its top edge, because landing one bucket high would make the
   tagline 18.19px WIDER than the wordmark — a bigger error than the bug being fixed. Both
   Inter and "Inter Logo" were confirmed loaded, so this is real hinting, not a fallback.
   Other caveats: the clamp floor takes over below ~315px viewports, and the 1.05rem ceiling
   takes over for taglines shorter than ~35 chars — both are legibility guards that
   intentionally outrank exact width matching. */
.navbar-brand{--brand-track:min(100vw - 6rem,26rem);--brand-fill:.814}
@media (max-width:400px){.navbar-brand{--brand-track:min(100vw - 4.5rem,26rem)}}
.navbar-brand .text-logo-wrap{font-size:calc(var(--brand-track) * var(--brand-fill) / (var(--logo-chars,13) * .6309))}
.navbar-brand .navbar-tagline-text{font-size:clamp(.58rem,calc(var(--brand-track) * var(--brand-fill) / (var(--tagline-chars,45) * .4832)),1.05rem)}
/* N72-FIX (2026-07-03): switched from cqi (container queries) to vw (viewport units).   Reason: on iPhone 12 (390px) the cqi clamp was rendering the tagline at ~10px because   container-type:inline-size on .navbar-brand made flex-basis treat content as 0 — the   brand's effective inline-size collapsed well below its max-width, so cqi resolved to   a tiny value and clamp landed in the middle of its range.   vw is rock-solid and viewport-scaled, which is what we actually want here. On mobile,   viewport ≈ available width (the navbar fills the row), so vw scaling is equivalent in   practice to "scale with available space" and avoids the flex-basis footgun.   3.7vw at the iPhone-12 viewport (390px) = 14.43px → clamped to 0.85rem max.   3.7vw at 320px = 11.84px = 0.74rem. Bumping min from .5rem to .72rem (~11.5px) keeps   the tagline readable on the narrowest phones; anything narrower drops below ~280px   viewports where this is no longer a "normal" mobile. */
/* The /directory/ feature was fully removed 2026-08-03 (DIR-0); routes 301 to
   home. Its .directory-scope token block (31 --directory-* props), the
   .directory-listing / .directory-profile rules, and directory.css were all
   removed 2026-09-07 — nothing consumes them. */

/* ADS: AGENTB 2026-07-31 — Smart AdSlot wrapper (see x_docs/ad-rotation-system-design-2026-07-31.md §6) */
.ad-zone { display: block; position: relative; contain: layout style; }
.ad-zone[data-source="banner"]  { /* operator-controlled house ad */ }
.ad-zone[data-source="adsense"] { /* AdSense unit or auto-ads filled */ }
.ad-zone[data-source="none"]    { display: none; } /* KIMI-QW-30: suppress empty house-ad slot (no sample placeholder) */
.ad-zone-priority { /* marker class only, no visual */ }
/* House-banner creatives scale to the zone width (a 728 or 800 source both fill the container); real AdSense <ins> units are untouched. */
.ad-zone img,
.ad-zone iframe { display: block; width: 100%; max-width: 100%; height: auto; margin-inline: auto; }

/* photo-mode + product-fan hero rules removed 2026-09-10 — dead since Phase 1a (motif+text hero only). */
/* HERO-OVERFLOW-1 (2026-09-14) — homepage horizontal overflow; TWO independent causes.
   Measured in a real browser at a 1024px viewport: documentElement.scrollWidth 1036 vs
   clientWidth 1009 => 27px of overflow, i.e. a horizontal scrollbar. SITE_REVIEW_2026-09-14
   reported the symptom (42px @1024, 22px @390) and attributed it to the decorative motif;
   the motif was only half of it. Both causes are fixed here.

   (a) ROOT CAUSE — `min-height:320px` on this rule fights the inline `aspect-ratio:16/5`
       that enhanced_hero_manager.php applies to the hero for desktop. With the ratio
       active, Chrome treats the min-height-clamped height as definite and derives the
       WIDTH from it: 320 * 16/5 = 1024px, no matter how narrow the container is. At a
       1024px viewport the hero's container is 986px, so the hero stuck out by 38px.
       `width:100%` makes the width definite, so the ratio can only drive the HEIGHT (the
       intended direction) and `min-height` still acts as the height floor it was meant to
       be (height stays 320px — verified). Do NOT swap this for `max-width:100%`: it also
       clears the desktop overflow, but it would additionally cap the deliberate
       full-bleed rule at max-width:991.98px (width:calc(100% + 24px)) and break the
       edge-to-edge mobile hero.

   (b) The decorative motif (.hero-bg-svg) was separately positioned with a NEGATIVE right
       offset. enhanced_hero_manager.php's own comment claims that offset "was tightened
       to right:0" when the clip was dropped, but site.css was never updated and the
       -3% / -12% values survived — so the motif hung off the already-too-wide hero.
       Both breakpoints are now 0. `overflow-x:clip` stays as a permanent guard so no
       decorative child can create document-level overflow again; `clip` (not `hidden`) is
       deliberate, because `hidden` would force overflow-y to `auto` and turn the hero into
       a scroll container, while `clip` leaves the vertical axis `visible`.

   Re-verify after any hero change: document.documentElement.scrollWidth === clientWidth
   at 390 / 768 / 1024 / 1440. */
.hero-light-default{width:100%;overflow-x:clip;background-color:var(--bs-primary-bg-subtle);background-image:var(--hero-bg-img,none);background-size:cover;background-position:center;background-repeat:no-repeat;border:1px solid #e9ecef;min-height:280px;}
.hero-light-default .hero-bg-svg{position:absolute;top:50%;right:-8%;transform:translateY(-50%);width:min(52vw,680px);height:auto;aspect-ratio:1/1;opacity:.20;pointer-events:none;z-index:0;}
.hero-light-default .hero-bg-svg.hero-bg-icon{width:auto;height:auto;font-size:min(42vw,560px);line-height:1;}@keyframes heroMotifDrift{0%,100%{rotate:0deg;translate:0 0}50%{rotate:-2.5deg;translate:-1% -1.6%}}.hero-light-default .hero-bg-svg{animation:heroMotifDrift 16s ease-in-out infinite;will-change:rotate,translate}@media (prefers-reduced-motion:reduce){.hero-light-default .hero-bg-svg{animation:none}}
.hero-light-default .hero-text-container{z-index:2;}
.hero-light-default .hero-stat-tile{background:rgba(13,110,253,.06);border:1px solid rgba(13,110,253,.15);backdrop-filter:none;color:#212529;}
.hero-light-default .hero-stat-tile:hover{background:rgba(13,110,253,.12);border-color:rgba(13,110,253,.3);}
.hero-light-default .hero-stat-label{color:#626a72!important;opacity:1;}
/* HERO-OVERFLOW-1b (2026-09-14): this full-bleed rule used viewport units —
   margin-inline:calc((100% - 100vw)/2). `100vw` INCLUDES the classic scrollbar gutter
   (~15px on Windows), so whenever a scrollbar is present the hero was laid out wider
   than the visible area and started ~7px left of the viewport (clipped only by
   body.view-home{overflow-x:clip}, i.e. masked rather than fixed). It is now derived
   from the Bootstrap gutter instead, which is deterministic: with the row's -12px and
   the hero's own width:calc(100% + 24px) (see the 991.98px block below) the box lands
   exactly on the viewport edges, with or without a scrollbar. */
@media (max-width:991.98px){.main-content-area > .row > .col-12 > .site-hero-final{margin-inline:calc(-1 * var(--bs-gutter-x,1.5rem) * .5);}}
@media (max-width:767.98px){.hero-light-default .hero-bg-svg{font-size:min(100vw,1000px);width:min(100vw,1000px);top:5%;transform:translateY(0);opacity:.14;right:2%;}}

/* SUI-03: share overlay — always visible, top-left over product image */
.product-share-group{opacity:1;transition:opacity .2s ease-in-out;}
@media (max-width:767.98px){.product-detail-image-container:hover .product-share-group,.product-detail-image-container:focus-within .product-share-group.product-detail-image-container:hover .product-share-group,.product-detail-image-container:focus-within .product-share-group{opacity:1;}}

/* =============================================================================
   Static pages (/pages/*) — unified layout, typography, spacing
   Semantic HTML (h1–h6, p, section, header) styled here; keep markup naked.
   ============================================================================= */

/* Hero contrast fix — overrides compressed block above; all text must read on primary bg */
.static-page-hero,
.static-page-hero h1,
.static-page-hero h2,
.static-page-hero h3,
.static-page-hero h4,
.static-page-hero h5,
.static-page-hero h6,
.static-page-hero p,
.static-page-hero .lead,
.static-page-hero small,
.static-page-hero a,
.static-page-hero .bi,
.static-page-hero [class*="text-"] {
  color: #fff !important;
}
.static-page-hero p {
  font-size: var(--lead-size, var(--font-size-base));
  line-height: var(--body-line-height, 1.5);
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--space-2);
}
.static-page-hero p:last-child { margin-bottom: 0; }
.static-page-hero p + p,
.static-page-hero .opacity-90 {
  opacity: 0.92;
}
.static-page-hero a:hover { opacity: 0.85; }

/* Page shell */
.static-page,
.static-page-content {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}
.static-page > section,
.static-page-content > section {
  padding-top: var(--space-6);
  margin-bottom: var(--space-6);
}
.static-page > section:first-child,
.static-page-content > section:first-child {
  padding-top: var(--space-5);
}

/* Section intros — centered h2 + subtitle */
.static-page section > header,
.static-page-content section > header {
  text-align: center;
  margin-bottom: var(--space-5);
}
.static-page section > header p,
.static-page-content section > header p {
  color: var(--text-muted, var(--bs-secondary-color));
  font-size: var(--lead-size, var(--font-size-base));
  line-height: var(--body-line-height, 1.5);
  max-width: 38rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
}

/* Cards inside static pages */
.static-page .card,
.static-page-content .card {
  border-radius: var(--radius-md);
}
.static-page .card-body,
.static-page-content .card-body {
  padding: var(--space-5);
}
.static-page .card h4,
.static-page .card h5,
.static-page-content .card h4,
.static-page-content .card h5 {
  margin-bottom: var(--space-2);
}
.static-page .card p:last-child,
.static-page-content .card p:last-child {
  margin-bottom: 0;
}

/* Feature row — icon + text (about, partner, guides) */
.static-page .feature-icon {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: var(--space-3);
}
.static-page .feature-icon .bi { font-size:var(--font-size-lg); }
.static-page .feature-icon--primary { background: rgba(var(--bs-primary-rgb), 0.12); color: var(--bs-primary); }
.static-page .feature-icon--success { background: rgba(var(--bs-success-rgb), 0.12); color: var(--bs-success); }
.static-page .feature-icon--warning { background: rgba(var(--bs-warning-rgb), 0.15); color: var(--bs-warning-text-emphasis, #664d03); }
.static-page .feature-icon--info { background: rgba(var(--bs-info-rgb), 0.12); color: var(--bs-info); }
.static-page .feature-icon.mx-auto { display: inline-flex; }

/* Large avatar / expert portrait circle */
.static-page .avatar-lg {
  width: 7.5rem;
  height: 7.5rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--bs-primary-rgb), 0.1);
}
.static-page .avatar-lg .bi { font-size: 2.5rem; color: var(--bs-primary); }

/* Stat numbers in cards */
.static-page .stat-value {
  font-size: var(--h2-size);
  font-weight:700;
  line-height: 1.1;
  margin-bottom: var(--space-2);
}
.static-page .card .display-4 {
  font-size: clamp(2rem, 2vw + 0.75rem, 3rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
  white-space: nowrap;
  display: block;
}
.static-page .stat-value--success { color: var(--bs-success); }
.static-page .stat-value--primary { color: var(--bs-primary); }
.static-page .stat-value--warning { color: var(--bs-warning-text-emphasis, #664d03); }
.static-page .stat-value--info { color: var(--bs-info-text-emphasis, #055160); }

.domain-for-sale-title {
  display: block;
  max-width: 100%;
  font-size: clamp(1.5rem, 2.5vw + 0.75rem, 4rem);
  line-height: 1.05;
  letter-spacing: -0.04em;
  white-space: nowrap;
  background: linear-gradient(90deg, #0d6efd, #6610f2);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.domain-sale-proof-card {
  color: var(--bs-body-color);
  min-width: 0;
}

.domain-sale-proof-label {
  color: var(--bs-secondary-color) !important;
}

.domain-sale-proof-value {
  line-height: 1.35;
  overflow-wrap: normal;
  word-break: normal;
}

.domain-sale-domain-value {
  font-size: clamp(0.72rem, 1vw, 1rem);
}

/* CTA block at page bottom */
.static-page .cta-card,
.static-page-content .cta-card {
  margin-top: var(--space-6);
  margin-bottom: var(--space-6);
  border-radius: var(--radius-md);
}

/* Contact page specifics */
.static-page .partnership-accent {
  width: 5px;
  background: var(--bs-primary);
}
.static-page .benefit-label {
  font-size: var(--font-size-sm);
  font-weight: 600;
  margin-bottom: var(--space-1);
}
.static-page .benefit-desc {
  font-size: var(--font-size-sm);
  color: var(--bs-secondary-color);
}

/* Quiet legal footer strip */
.static-page .legal-strip {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-2);
  border-top: 1px solid var(--bs-border-color);
  font-size: var(--font-size-sm);
  color: var(--bs-secondary-color);
}
.static-page .legal-strip strong { color: var(--bs-body-color); }
.static-page .legal-strip a { color: var(--bs-secondary-color); }

/* Prose / legal long-form — headings follow global scale */
.static-page-content h2,
.static-page section > h2 {
  margin-top: var(--space-4);
}
.static-page-content h3,
.static-page-content h4 {
  margin-top: var(--space-3);
}
.static-page-content ul,
.static-page-content ol {
  margin-bottom: var(--space-3);
  padding-left: var(--space-5);
}
.static-page-content li {
  margin-bottom: var(--space-2);
  line-height: var(--body-line-height, 1.5);
}

@media (max-width: 767.98px) {
  .static-page-hero .static-page-hero{ padding: var(--space-7) var(--space-4); }
  .static-page > section,
  .static-page-content > section .static-page > section,
  .static-page-content > section{
    padding-top: var(--space-5);
    margin-bottom: var(--space-5);
  }
  .static-page .card-body,
  .static-page-content .card-body .static-page .card-body,
  .static-page-content .card-body{
    padding: var(--space-4);
  }
}



h1 {
  font-size: var(--h1-size);
  font-weight: var(--h1-weight);
  line-height: var(--h1-line-height);
  margin-bottom: var(--h1-margin-bottom);
  font-family: var(--font-family-display);
}
h2 {
  font-size: var(--h2-size);
  font-weight: var(--h2-weight);
  line-height: var(--h2-line-height);
  margin-bottom: var(--h2-margin-bottom);
  font-family: var(--font-family-display);
}
h3 {
  font-size: var(--h3-size);
  font-weight: var(--h3-weight);
  line-height: var(--h3-line-height);
  margin-bottom: var(--h3-margin-bottom);
}
h4 {
  font-size: var(--h4-size);
  font-weight: var(--h4-weight);
  line-height: var(--h4-line-height);
  margin-bottom: var(--h4-margin-bottom);
}
h5 {
  font-size: var(--h5-size);
  font-weight: var(--h5-weight);
  line-height: var(--h5-line-height);
  margin-bottom: var(--h5-margin-bottom);
}
h6 {
  font-size: var(--h6-size);
  font-weight: var(--h6-weight);
  line-height: var(--h6-line-height);
  margin-bottom: var(--h6-margin-bottom);
}
p {
  font-size: var(--body-size);
  line-height: var(--body-line-height);
  margin-bottom: var(--body-margin-bottom);
  color: var(--bs-body-color, #212529);
}
.lead {
  font-size: var(--lead-size);
  font-weight: var(--font-weight-normal, 400);
  line-height: var(--body-line-height);
  margin-bottom: var(--body-margin-bottom);
}

/* Listing / insider page headers — .ph h1 is a normal <h1> (no size fork).
   Only the bottom margin is tightened for the compact stats header. */
.ph h1 {
  margin-bottom: var(--space-1);
}
.ph p {
  font-size: var(--body-size);
  line-height: var(--body-line-height);
  color: var(--text-muted);
  margin: 0 0 var(--space-2);
}

/* Homepage & site hero — h1 is a normal <h1>; only colour/lead differ */
.hero-text-container p,
.hero-text-container p.fs-5,
.hero-text-container .fs-5 {
  font-size: var(--lead-size);
  line-height: var(--body-line-height);
  margin-bottom: var(--space-3);
}
/* Legacy heading utility aliases */
.text-heading-lg {
  font-size: var(--h1-size);
  font-weight: var(--h1-weight);
  line-height: var(--h1-line-height);
}
.text-heading-md {
  font-size: var(--h2-size);
  font-weight: var(--h2-weight);
  line-height: var(--h2-line-height);
}
.text-heading-sm {
  font-size: var(--h3-size);
  font-weight: var(--h3-weight);
  line-height: var(--h3-line-height);
}

/* Editorial / category prose blocks — headings are normal h2-h4 (naked);
   only the muted paragraph colour is specific here. */
.category-editorial p,
.brand-editorial p,
.store-editorial p {
  font-size: var(--body-size);
  line-height: var(--body-line-height);
  color: var(--text-muted);
}

/* Bootstrap .h4/.h5/.h6 on semantic headings — keep level size */
h2.h4, h2.h5, h2.h6 {
  font-size: var(--h2-size);
  font-weight: var(--h2-weight);
  line-height: var(--h2-line-height);
}
h3.h4, h3.h5, h3.h6 {
  font-size: var(--h3-size);
  font-weight: var(--h3-weight);
  line-height: var(--h3-line-height);
}

/* Exceptions — not primary page titles */
.navbar-brand h1 {
  font-size: clamp(1rem, 6.2vw, 1.6rem);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 0;
}
.header-title {
  font-size:var(--font-size-md);
  font-weight: 600;
  line-height: 1.3;
  margin-bottom: 0;
}

/* =============================================================================
   Filter rows (fsr-section) — restore chip visibility
   .fsr had overflow:hidden while .fsr__wrap could flex-shrink to 0, clipping links.
   ============================================================================= */
.fsr-section {
  margin-top: var(--space-6);
  padding: 1rem 1.125rem;
  border: 1px solid var(--bs-border-color,#dee2e6);
  border-radius: var(--radius-md,.5rem);
  background: var(--bs-body-bg,#fff);
}

/* Higher specificity beats minified .fsr__label{width:100%} + overflow:hidden clip */
.fsr-section .fsr {
  display: flex;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 0.4rem;
  padding: .35rem 0;
  font-size:var(--font-size-sm);
  overflow: visible;
}

.fsr-section .fsr + .fsr {
  margin-top: var(--space-4);
}

.fsr-section .fsr__label {
  width: auto;
  max-width: none;
  margin-bottom: var(--space-2);
  white-space: nowrap;
  flex: 0 0 auto;
  padding: 0;
  font-weight: 700;
  color: var(--bs-body-color,#212529);
}

.fsr-section .fsr__wrap {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.fsr-section .fsr__wrap::-webkit-scrollbar {
  display: none;
}

.fsr-section .fsr__track {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.35rem;
  align-items: center;
}

.fsr-section .fsr__track a {
  display: inline-flex;
  align-items: center;
  padding: .3rem .6rem;
  border: 1px solid var(--bs-border-color,#dee2e6);
  border-radius: 999px;
  background: var(--bs-tertiary-bg,#f8f9fa);
  font-size: var(--text-fine);
  font-weight: 400;
  line-height: 1.3;
  white-space: nowrap;
  color: var(--bs-link-color, #0d6efd);
  text-decoration: none;
}

.fsr-section .fsr__track a:hover {
  color: var(--bs-link-hover-color, #0b5ed7);
  border-color: var(--bs-primary,#0d6efd);
  background: var(--bs-primary-bg-subtle,#cfe2ff);
  text-decoration: none;
}

.mobile-links-label {
  margin-bottom: var(--space-2);
  padding: 0;
}

.mobile-links-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.mobile-links-group a {
  display: inline;
  font-size: var(--text-fine);
  font-weight: 400;
  line-height: 1.3;
  white-space: nowrap;
  color: var(--bs-link-color, #0d6efd);
  text-decoration: underline;
}

.mobile-links-group a:hover {
  color: var(--bs-link-hover-color, #0b5ed7);
  text-decoration: underline;
}

.category-upcoming-holidays a {
  display: inline;
  font-size: var(--font-size-base);
  font-weight: 400;
  line-height: 1.3;
  color: var(--bs-link-color, #0d6efd);
  text-decoration: underline;
}

.category-upcoming-holidays a:hover {
  color: var(--bs-link-hover-color, #0b5ed7);
  text-decoration: underline;
}

.category-upcoming-holidays {
  padding: 1rem 1.125rem;
  border: 1px solid var(--bs-border-color, #dee2e6);
  border-radius: var(--radius-md, .5rem);
  background: var(--bs-tertiary-bg, #f8f9fa);
}
.category-upcoming-holidays__heading {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 1rem; margin-bottom: .85rem;
}
.category-upcoming-holidays__heading h2 { font-size: 1.15rem; }
.category-upcoming-holidays__eyebrow {
  flex: 0 0 auto; padding: .25rem .55rem; border-radius: 999px;
  background: var(--bs-primary-bg-subtle, #cfe2ff); color: var(--bs-primary, #0d6efd);
  font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
.category-upcoming-holidays__list { display: grid; gap: .5rem; }
.category-upcoming-holidays__item {
  display: block !important; padding: .6rem .7rem; border: 1px solid var(--bs-border-color, #dee2e6);
  border-radius: var(--radius-sm, .375rem); background: var(--bs-body-bg, #fff);
  line-height: 1.35 !important; text-decoration: none !important;
}
.category-upcoming-holidays__item:hover { border-color: var(--bs-primary, #0d6efd); }
@media (max-width: 575.98px) {
  .category-upcoming-holidays__heading { display: block; }
  .category-upcoming-holidays__eyebrow { display: inline-block; margin-top: .65rem; }
}

/* Keep the related-link panel visually aligned with the holiday and filter panels. */
.internal-linking-engine {
  margin-top: 1.5rem !important;
}
.internal-linking-engine > .card {
  border: 1px solid var(--bs-border-color,#dee2e6) !important;
  border-radius: var(--radius-md,.5rem) !important;
  background: var(--bs-body-bg,#fff);
  box-shadow: none !important;
}
.internal-linking-engine .card-body { padding: 1rem 1.125rem; }
.internal-linking-engine h2 {
  margin-bottom: .85rem !important;
  font-size: 1.15rem;
}
.internal-linking-engine h3 {
  margin: 0 0 .55rem;
  font-size: .82rem;
  font-weight: 700;
  color: var(--bs-body-color,#212529);
}
.internal-linking-engine ul {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin: 0;
}
.internal-linking-engine li { margin: 0; }
.internal-linking-engine li a {
  display: inline-flex;
  align-items: center;
  padding: .3rem .6rem;
  border: 1px solid var(--bs-border-color,#dee2e6);
  border-radius: 999px;
  background: var(--bs-tertiary-bg,#f8f9fa);
  color: var(--bs-link-color,#0d6efd);
  font-size: var(--text-fine);
  text-decoration: none;
}
.internal-linking-engine li a:hover {
  border-color: var(--bs-primary,#0d6efd);
  background: var(--bs-primary-bg-subtle,#cfe2ff);
  text-decoration: none;
}

/* AGENTA 2026-08-17: Reduce excessive white space site-wide.
   Root cause: 68 previously-broken var(--space-N) declarations were restored
   (see site.css.before_repair_2026-08-16.bak), which added var(--space-5)/--space-6
   margins on top of existing Bootstrap my-5 (48px) section margins and the
   footer's pt-5 (48px) top padding, producing 100-150px gaps between content
   and footer across all page types. These overrides tighten the most common
   offenders without changing Bootstrap utility classes. */
/* NOTE: Bootstrap 5 utilities ship with !important (e.g. .pt-5 =>
   padding-top:3rem!important), so this override needs !important too,
   otherwise the footer keeps the 48px top padding instead of 24px. */
.footer-bs { padding-top: 1.5rem !important; }
.pagination { margin-bottom: 0.5rem; }
.tab-content { margin-bottom: 1rem; }
/* Last child of <main>: cap the bottom margin so the gap to the footer
   is consistent regardless of the page type's last section. */
main > *:last-child { margin-bottom: 1.5rem !important; }

/* AGENTA 2026-08-17 (PDP whitespace): The product detail page reuses the
   global sticky-footer pattern (body.min-vh-100 + main.flex-grow-1 +
   footer.mt-auto). When the PDP content is shorter than the viewport this
   stretches <main> and leaves a large empty band between the "You Might Also
   Like" / "Related Items" cards and the footer. Scope the fix to .view-product
   so the footer sits a small, consistent distance below the content rather than
   being pushed to the bottom of the viewport (which created the gap). */
/* Bootstrap 5 ships .min-vh-100 and .flex-grow-1 with !important, so the
   overrides below also need !important (and higher specificity) to win and
   stop <main> from stretching and leaving the empty band. */
body.view-product { min-height: 0 !important; }
body.view-product main { flex-grow: 0 !important; }
body.view-product footer.footer-bs { margin-top: 1.75rem !important; }

/* Inline "Editor's pick" in deal / blog bodies (DRY rewrite 2026-09-07).
   This is ONLY a float + sizing wrapper now — the card inside it is the
   standard ProductCardRenderer grid card, same as everywhere else. The bespoke
   `.product-card--compact-layout` / `.compact-*` fork and its pile of
   `!important` overrides were deleted; there is one product card again. */
.deal-inline-product {
  width: 210px;
  max-width: 45%;
  margin: 0.25rem 0 0.75rem;
  font-size:var(--font-size-sm);
}
.deal-inline-product--start { float: left;  margin: 0.35rem 1.25rem 0.5rem 0; }
.deal-inline-product--end   { float: right; margin: 0.35rem 0 0.5rem 1.25rem; }
.deal-inline-product .product-card { font-size:var(--font-size-sm); }
.deal-body .editorial-section-title{clear:none}
.product-card-coupon { color: var(--bs-success, #198754); }
@media (max-width: 575.98px) {
  .deal-inline-product { float: none !important; width: 100%; max-width: 100%; margin: 1rem 0 !important; }
}
/* Bound floats: every section heading starts below any active inline embed. */
.editorial-section-title { clear: both; }

/* Q5 (2026-09-10): woven-in product card for holiday-guide bodies (and later
   deal/blog). Centered block up to 1/3 the body column; full width on phones.
   The card inside keeps its standard ProductCardRenderer styling. */
.holiday-guide-body .article-inline-product{width:210px;max-width:45%;margin:.35rem 0 .75rem;font-size:var(--font-size-sm)}
.holiday-guide-body .article-inline-product--start{float:left;margin-right:1.25rem}
.holiday-guide-body .article-inline-product--end{float:right;margin-left:1.25rem}
@media (max-width: 768px) { .holiday-guide-body .article-inline-product { float:none; width:100%; max-width:100%; margin:1rem 0; } }

/* AGENTB 2026-08-19 — unified footer affiliate-disclosure note (E-E-A-T / FTC).
   Replaces the old full-width primary-blue strip, which read as a cheap banner
   jammed against the footer columns. Now a contained, theme-aware "transparency
   note" card: soft tertiary background + hairline border, muted text, primary
   icon + link, and clear breathing room (margin-bottom) before the footer links.
   Uses Bootstrap theme vars so it stays legible on light AND dark footers. */
.site-affiliate-bar {
    background: var(--bs-tertiary-bg, #f8f9fa);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 0.5rem;
    color: var(--bs-secondary-color, #6c757d);
    font-size: 0.8125rem;
    line-height: 1.45;
    margin-bottom: 1.5rem; /* separate from the footer link columns */
}
.site-affiliate-bar__inner {
    padding: 0.625rem 0.875rem;
}
.site-affiliate-bar__text {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.8125rem;
}
.site-affiliate-bar__text .bi {
    color: var(--bs-primary, #0d6efd);
    font-size:var(--font-size-sm);
    flex-shrink: 0;
}
.site-affiliate-bar a,
.site-affiliate-bar__link {
    color: var(--bs-primary, #0d6efd);
    text-decoration: none;
    white-space: nowrap;
}
.site-affiliate-bar__link {
    font-size: 0.8125rem;
}
.site-affiliate-bar__link:hover,
.site-affiliate-bar__link:focus {
    color: var(--bs-primary, #0d6efd);
    text-decoration: underline;
}

/* Author headshot on the About / author-bio page (E-E-A-T real-person signal). */
.author-headshot {
    width: 160px;
    height: 160px;
    object-fit: cover;
    border: 3px solid var(--bs-border-color, #dee2e6);
}
.author-headshot-fallback {
    width: 160px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    border-radius: 50%;
    background: var(--bs-primary-bg-subtle, #e7f1ff);
    color: var(--bs-primary, #0d6efd);
    font-size: 3.5rem;
}

/* A4 (2026-09-06): disable hover micro-animations for users who prefer reduced motion */
@media (prefers-reduced-motion: reduce) {
    .js-product-card.card:hover,
    .product-card.card:hover,
    .ctp-card:hover {
        transition: none !important;
        transform: none !important;
    }
    /* PDP-B: the CTA heartbeat pulse is an `animation`, not a transition/transform,
       so it is NOT covered by the rules above — disable it explicitly for
       reduced-motion users (the .animate-pulse declaration itself stays outside
       any media query, per the brief). */
    .product-cta-btn.animate-pulse {
        animation: none !important;
    }
}

/* PDP-B (2026-09-08): CTA "heartbeat" pulse — a gentle expanding-then-fading ring
   (box-shadow) that nudges conversion without distracting. 2s, ease-out, infinite.
   Scoped to the product CTA (.product-cta-btn.animate-pulse is emitted by
   product_info_renderer.php / product_detail_renderer.php). Paused on :hover the
   instant the user is about to click. Deliberately OUTSIDE any media query so it
   runs for normal users; reduced-motion users are covered by the block above.
   NOTE: the legacy @keyframes slideInLeft this was slated to sit near is gone
   (only a comment on line 53) — placed by the reduced-motion governance block. */
@keyframes ctaPulse {
  0%   { box-shadow: 0 0 0 0 rgba(var(--bs-primary-rgb,13,110,253), .5); }
  70%  { box-shadow: 0 0 0 12px rgba(var(--bs-primary-rgb,13,110,253), 0); }
  100% { box-shadow: 0 0 0 0 rgba(var(--bs-primary-rgb,13,110,253), 0); }
}
.product-cta-btn.animate-pulse{
  animation: ctaPulse 2s ease-out infinite;
}
.product-cta-btn.animate-pulse:hover{
  animation-play-state: paused;
}

.related-deal-img-wrap {
    background-image: var(--product-img-fallback) !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
}

/* Admin Products list: cap the table body and stick its header so the admin
   page itself never grows a full-window scrollbar (?section=products, 50 rows).
   Scoped to the class added on that one table; site.css is the stylesheet
   index.php loads for admin sections. */
.scrollable-table-card {
    max-height: 65vh;
    overflow-y: auto;
}
.scrollable-table-card thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: #212529;
}

/* Holiday guide page — body wrapping + layout (moved from HolidayGuideRenderer.php, 2026-09-06) */
.holiday-guide-body { overflow-wrap: break-word; word-break: break-word; }
.holiday-guide-body p { overflow-wrap: break-word; word-break: break-word; hyphens: auto; }
/* Contain the woven-in inline product cards (.article-inline-product, above).
   .holiday-guide-body is a plain block, so its height does NOT include its floats.
   When the inline-product plan lands a card after the final paragraph, that card is
   the article's last child: it floats past the article's bottom edge into the next
   section, the section's divider rule is drawn across the card, and — because a
   Bootstrap .row is display:flex (a BFC) — the whole "picked for this guide" row is
   pushed right and shrunk to half width. Observed 2026-09-18 on /holidays/thanksgiving/. */
.holiday-guide-body::after { content: ""; display: block; clear: both; }
.holiday-guide-page .holiday-section-divider { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--bs-border-color); }
.holiday-guide-page .ad-zone { min-height: auto !important; margin: 1rem 0; }
.holiday-guide-page .ad-zone[data-source="none"] { display: none; margin: 0; }
.holiday-guide-page .holiday-product-grid .col-product-card { display: flex; }
.holiday-guide-page .holiday-product-grid .col-product-card > * { width: 100%; }
@media (min-width: 768px) {
  .view-holiday_guide_page .col-md-3 { align-self: flex-start; }
  .view-holiday_guide_page .site-sidebar { position: sticky; top: 1rem; }
}

.product-description-container { margin-bottom: 0; }
.product-description-text { display: block; margin-top: 0; margin-bottom: 0; }
.product-description-text > :last-child { margin-bottom: 0; }

.product-card .card-body { padding: var(--space-2) var(--space-3); }
.product-card-img { padding: 0; }

.hp-section-link{text-decoration:underline;text-decoration-color:rgba(var(--bs-body-color-rgb,0,0,0),.25);text-underline-offset:.25em;text-decoration-thickness:1px;transition:text-decoration-thickness .15s,text-decoration-color .15s}
.hp-section-link:hover{text-decoration-color:currentColor;text-decoration-thickness:3px}
.hp-section-link-icon{font-size:.65em;margin-left:.35em;opacity:.55;vertical-align:.1em;transition:opacity .15s,transform .15s}
.hp-section-link:hover .hp-section-link-icon{opacity:1;transform:translate(2px,-2px)}
h2:has(.hp-section-link){margin-bottom:var(--space-4)}

@media (max-width:575.98px) {
  .hero-btn-grid { grid-template-columns: 1fr; }
}

@media (max-width:991.98px) {
  body.view-home {
    overflow-x: clip;
  }
  .main-content-area .site-hero-final {
    width: calc(100% + 24px);
    left: auto;
    margin-left: -12px;
    margin-right: 0;
    transform: none;
    border-radius: 0 !important;
    /* aspect-ratio:16/5 is set inline (enhanced_hero_manager.php) for the
       desktop hero. On narrow widths that ratio makes the box far too
       short for its actual content (headline + paragraph + 3 buttons +
       stats row), so the content overflows the box and visually overlaps
       whatever section comes next in the DOM. Let height follow content
       on mobile instead. */
    aspect-ratio: auto !important;
  }
  .main-content-area .site-hero-final .hero-text-container {
    width: 100%;
    max-width: 100%;
  }
}

/* Homepage and shared content refinements. */
.homepage-categories-section{margin-top:0!important}
.homepage-main-row{align-items:flex-start}
.author-bio-card .author-card-meta>p:first-child{font-size:.8125rem}
.author-bio-card .author-card-meta h2{font-size:var(--font-size-md);line-height:1.2}
.author-bio-card .author-card-meta>p:last-child{font-size:.8125rem;line-height:1.4}
.footer-bs .newsletter-intro,.footer-bs #newsletter-form{width:90%;margin-inline:auto}
.footer-bs #newsletter-form .btn{width:100%}
.hero-light-default .hero-bg-svg.hero-bg-icon{font-size:min(36vw,560px)}
@media (max-width:767.98px){
  .footer-bs>.container-xl>.row> [class*=col-]{flex:0 0 100%;max-width:100%}
}
@media (max-width:767.98px){.hero-light-default .hero-bg-svg.hero-bg-icon{font-size:min(52vw,520px);transform:translateY(-8px)}}
@media (min-width:992px){.hero-light-default .hero-bg-svg.hero-bg-icon{font-size:min(30vw,480px);transform:translateY(calc(-50% + 12px))}}
