/* Shopping tools use the same editorial palette on every page. */
.shopping-page [hidden] { display:none!important; }
.shopping-page .shopping-main .eyebrow { color:#5f754f; }
.product-photo { position:relative; }
.image-unavailable { position:absolute; left:8px; right:8px; bottom:8px; color:#5d7350; text-align:center; font-size:10px; }
.product-photo.is-placeholder img { opacity:.7; }
.home .category-card { text-decoration:none; }
.home .results-tools { justify-content:space-between; align-items:center; }
.home .search-autocomplete { background:#f7faf2; border-color:#b8cba8; box-shadow:0 18px 40px #193b2024; }
.home .search-autocomplete button { color:#223a27; grid-template-columns:44px minmax(0,1fr) 16px; gap:12px; }
.home .search-autocomplete button:hover,.home .search-autocomplete button[aria-selected=true] { background:#e3edd8; }
.home .search-autocomplete button img,.suggestion-symbol { width:42px; height:42px; object-fit:contain; background:#fff; border-radius:8px; padding:5px; }
.home .search-autocomplete .suggestion-symbol { display:grid; place-items:center; font-size:25px; color:#557940; }
.suggestion-copy { display:grid; gap:3px; }
.home .search-autocomplete .suggestion-copy { color:#253f28; }
.suggestion-copy small { color:#5c7450; font-size:10px; }
.home .featured-card h3 a,.home .group-main h3 a { color:inherit; text-decoration:none; }
.home .featured-card h3 a:hover,.home .group-main h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.variant-description { font-size:12px; color:#52684a; line-height:1.65; margin:5px 0 12px; overflow-wrap:anywhere; }
.product-tools { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }
.product-tools button { display:inline-flex; align-items:center; gap:6px; padding:7px 11px; font:inherit; font-size:11px; line-height:1.5; color:#3e6034; border:1px solid #c7d7bd; border-radius:8px; background:#f4f8ee; cursor:pointer; }
.product-tools button:hover,.product-tools button[aria-pressed=true] { color:#244822; background:#dceec9; border-color:#8db673; }
.product-tools .heart-icon { width:16px; height:16px; flex-shrink:0; fill:transparent; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transform-origin:center; overflow:visible; transition:fill 150ms ease,color 150ms ease; }
.product-tools button[data-save-kind="favorites"][aria-pressed="true"] { color:#853648; background:#fff0f3; border-color:#e6b7c2; }
.product-tools button[data-save-kind="favorites"][aria-pressed="true"] .heart-icon { color:#c23250; fill:currentColor; stroke:currentColor; }
@media(prefers-reduced-motion:reduce) { .product-tools .heart-icon { transition:none; } }
.comparison-dock { position:fixed; bottom:20px; left:50%; transform:translateX(-50%); z-index:90; padding:12px 22px; border-radius:13px; color:#effde7; background:#1c3823; box-shadow:0 12px 30px #15251a3b; text-decoration:none; display:flex; align-items:center; gap:12px; font-size:13px; border:1px solid #406240; }
.comparison-dock[hidden] { display:none; }
.specification-filters { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding-top:16px; border-top:1px solid #cbd9be; }
.specification-filters[hidden] { display:none; }
.shopping-main { max-width:1240px; width:calc(100% - 64px); margin:0 auto; padding:44px 0 72px; }
.shopping-main h1 { color:#183a20; font-size:clamp(32px,4vw,54px); letter-spacing:-.045em; line-height:1.12; margin:16px 0 28px; overflow-wrap:anywhere; }
.shopping-main h2 { color:#25472a; font-size:26px; letter-spacing:-.035em; }
.shopping-main p { color:#536b4d; line-height:1.8; }
.shopping-main .primary-link { background:#274b2b; color:#fff; border:1px solid #274b2b; border-radius:9px; padding:12px 18px; font:inherit; font-size:13px; text-decoration:none; display:inline-flex; justify-content:center; align-items:center; cursor:pointer; }
.shopping-main .primary-link:hover { background:#163721; color:#fff; }
.shopping-main a { color:#31582c; text-underline-offset:4px; }
.shopping-main .detail-note { font-size:12px; color:#617657; }
.product-detail-hero { display:grid; grid-template-columns:1fr 1.15fr; gap:38px; background:#fafcf6; border:1px solid #d1dfc8; padding:30px; border-radius:22px; }
.detail-image { display:grid; place-items:center; background:#f0f5e9; border-radius:16px; min-width:0; }
.detail-image .product-photo { width:100%; height:340px; padding:26px; display:grid; place-items:center; }
.detail-image img { width:100%; height:100%; object-fit:contain; max-height:300px; }
.detail-specs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:25px 0 18px; }
.detail-specs div { border-top:1px solid #d7e1ce; padding-top:10px; min-width:0; }
.detail-specs dt { color:#607357; font-size:11px; }
.detail-specs dd { margin:3px 0 0; color:#28482c; font-size:14px; overflow-wrap:anywhere; }
.detail-offers,.detail-history { margin-top:36px; }
.detail-offer { display:grid; grid-template-columns:1fr 1fr 190px; gap:24px; align-items:center; background:#fbfcf7; border:1px solid #d1dfc6; padding:22px; border-radius:14px; margin-bottom:12px; }
.detail-offer small { display:block; color:#5e7354; font-size:11px; margin-top:5px; }
.detail-offer dl { margin:0; }
.detail-offer dl div { display:flex; justify-content:space-between; gap:18px; padding:4px 0; font-size:13px; color:#53704a; }
.detail-offer dd { margin:0; font-weight:650; color:#284c29; }
.detail-offer .detail-total { border-top:1px solid #d3dfc7; margin-top:5px; font-size:16px; }
.price-observations { list-style:none; padding:0; margin:16px 0; }
.price-observations li { display:flex; gap:20px; justify-content:space-between; padding:12px 0; border-top:1px solid #d0ddc4; font-size:12px; color:#53704b; }
.shopping-controls { display:flex; flex-wrap:wrap; gap:12px; margin:20px 0; }
.shopping-controls button { cursor:pointer; color:#3a5d30; background:#e6eedd; border:1px solid #c1d4b1; padding:10px 16px; border-radius:8px; font:inherit; font-size:12px; }
.saved-grid,.shop-directory { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.saved-card,.shop-directory>a { background:#f9fcf3; border:1px solid #d0dec4; padding:22px; border-radius:14px; text-decoration:none; }
.saved-card img { width:100%; height:180px; object-fit:contain; background:#fff; border-radius:10px; margin-bottom:16px; }
.saved-card>a { display:grid; gap:8px; text-decoration:none; }
.saved-card p { margin:12px 0 4px; font-size:13px; }
.saved-card small { color:#617555; font-size:11px; }
.shopping-empty { padding:30px; border:1px dashed #bed2ab; border-radius:15px; background:#ecf3e3; }
.comparison-scroll { overflow-x:auto; border:1px solid #c9d9bc; border-radius:14px; }
.model-comparison { width:100%; min-width:680px; border-collapse:collapse; background:#f9fcf4; font-size:13px; }
.model-comparison th,.model-comparison td { border-bottom:1px solid #d3dfc7; border-right:1px solid #d3dfc7; padding:18px; text-align:left; vertical-align:top; color:#365a30; }
.model-comparison tbody th { min-width:145px; background:#e8f0de; }
.model-comparison thead th { min-width:170px; max-width:300px; }
.comparison-photo { display:block; width:120px; height:90px; object-fit:contain; background:#fff; border-radius:9px; padding:8px; margin-bottom:15px; }
.related-models { margin-top:32px; }
.related-models:empty,.landing-specs:empty { display:none; }
.related-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.related-grid a { display:grid; gap:6px; padding:18px; border:1px solid #cadcbb; border-radius:12px; background:#ecf4e2; text-decoration:none; }
.related-grid small { color:#56744b; font-size:11px; overflow-wrap:anywhere; }
.model-comparison tr.is-different td { background:#e5f0d9; color:#294a24; }
.landing-search { display:flex; gap:12px; background:#e6eddd; border:1px solid #cbd9be; border-radius:13px; padding:16px; }
.landing-search input,.landing-specs select { background:#fbfcf6; color:#27452a; border:1px solid #bccfac; border-radius:8px; padding:12px; min-width:0; font:inherit; }
.landing-search input { flex:1; }
.landing-specs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin:18px 0; }
.landing-specs label { display:grid; gap:6px; color:#4b653f; font-size:12px; }
.landing-advice { margin-top:28px; border-left:3px solid #97b978; background:#e9efdf; padding:22px; border-radius:0 12px 12px 0; }
.shopping-page .product-group { display:grid; grid-template-columns:140px minmax(0,1fr) 240px; gap:22px; padding:22px; background:#fbfcf6; border:1px solid #d3dfc7; border-radius:15px; margin:16px 0; }
.shopping-page .product-photo { height:150px; display:grid; place-items:center; background:#f0f4e9; border-radius:12px; padding:10px; }
.shopping-page .product-photo img { width:100%; height:100%; object-fit:contain; }
.shopping-page .detail-image .product-photo { height:340px; padding:26px; background:transparent; }
.shopping-page .group-main h3 { margin:8px 0; font-size:19px; line-height:1.4; }
.shopping-page .variant-chips { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:6px; }
.shopping-page .variant-chips li { background:#e6eddd; border:1px solid #cfdac2; border-radius:6px; padding:4px 7px; font-size:10px; color:#527046; }
.shopping-page .group-shop { margin:9px 0 3px; font-size:13px; }
.shopping-page .group-main small { color:#617455; font-size:11px; }
.shopping-page .group-prices div { display:flex; justify-content:space-between; gap:10px; padding:6px 0; font-size:12px; color:#536c49; }
.shopping-page .group-prices dd { margin:0; font-weight:650; color:#31552b; }
.shopping-page .group-prices .group-total { border-top:1px solid #d3ddc8; font-size:16px; }
.shopping-page .button { display:block; background:#2c512e; color:#fff; border-radius:8px; padding:12px; text-align:center; text-decoration:none; font-size:12px; }
.shopping-page .group-offers { grid-column:1/-1; border-top:1px solid #d3dfc7; padding-top:14px; }
.shopping-page .shop-row { display:grid; grid-template-columns:1fr 240px 150px; gap:20px; align-items:center; border-bottom:1px solid #d3dfc7; padding:14px 0; }
.shopping-page .shop-row small { display:block; color:#617455; font-size:11px; }
@media(max-width:1000px) { .product-detail-hero { gap:22px; padding:22px; }.detail-offer { grid-template-columns:1fr 1fr; }.detail-offer>.primary-link { grid-column:2; }.saved-grid,.shop-directory { grid-template-columns:repeat(2,minmax(0,1fr)); }.shopping-page .product-group { grid-template-columns:100px minmax(0,1fr); }.shopping-page .group-buy { grid-column:2; }.landing-specs { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) { .shopping-main { width:calc(100% - 40px); padding-top:25px; }.product-detail-hero,.detail-offer { grid-template-columns:1fr; }.detail-offer>.primary-link { grid-column:auto; }.detail-image .product-photo { height:240px; }.detail-image img { max-height:200px; }.detail-specs { gap:10px; }.saved-grid,.shop-directory { grid-template-columns:1fr; }.landing-search { flex-wrap:wrap; padding:12px; }.landing-search input,.landing-search button { width:100%; flex:auto; }.shopping-page .product-group { grid-template-columns:80px minmax(0,1fr); gap:12px; padding:16px; }.shopping-page .group-buy { grid-column:1/-1; }.shopping-page .shop-row { grid-template-columns:1fr; gap:8px; }.specification-filters { grid-template-columns:1fr 1fr; }.comparison-dock { width:max-content; max-width:calc(100% - 40px); bottom:12px; }.price-observations li { flex-wrap:wrap; gap:8px 16px; }.shopping-page .header-inner { gap:10px; } }
@media(prefers-reduced-motion:reduce) { .shopping-page * { scroll-behavior:auto!important; transition:none!important; } }
@media(max-width:680px) { .shopping-page .detail-image .product-photo { height:220px; padding:16px; }.comparison-dock { bottom:calc(12px + env(safe-area-inset-bottom)); } }
@media(max-width:680px) { .related-grid { grid-template-columns:1fr; } }
