body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#202124;background:#fff;line-height:1.55}.announcement{background:#0f172a;color:#fff;text-align:center;padding:8px 16px;font-size:14px}.site-header{display:grid;grid-template-columns:auto minmax(220px,360px) 1fr auto;align-items:center;gap:18px;padding:16px 32px;border-bottom:1px solid #e5e7eb;position:sticky;top:0;background:#fff;z-index:2}.brand{font-weight:800;font-size:22px;color:#111;text-decoration:none}.site-search{display:flex}.site-search input,.newsletter input,.site-footer input,.contact-form input,.contact-form textarea,.contact-form select,.filter-grid select,.purchase-controls input,.purchase-controls select{border:1px solid #cbd5e1;border-radius:6px;padding:9px;width:100%;box-sizing:border-box}.site-search button,.site-footer button{border:1px solid #1f5a96;background:#1f5a96;color:#fff;border-radius:6px;padding:9px 12px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}button:disabled{opacity:.65;cursor:not-allowed}nav{display:flex;gap:12px;flex-wrap:wrap}nav a,.site-footer a{color:#1f5a96;text-decoration:none}.utility-nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:14px}.utility-nav a{color:#111;text-decoration:none}.badge{background:#1f5a96;color:#fff;border-radius:999px;padding:1px 6px}.breadcrumbs{max-width:1180px;margin:18px auto 0;padding:0 32px;display:flex;gap:8px;color:#64748b}.hero,.product-detail{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:36px;align-items:start;padding:52px 32px;max-width:1180px;margin:auto}.page-hero,.band{padding:36px 32px;max-width:1180px;margin:auto}.eyebrow{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#5f6368;font-weight:700}h1{font-size:44px;line-height:1.08;margin:8px 0 16px}h2{font-size:28px;margin:0 0 20px}h3{font-size:20px}.freshness,.updated{color:#5f6368}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #1f5a96;background:#1f5a96;color:#fff;padding:10px 14px;border-radius:6px;text-decoration:none;cursor:pointer;box-sizing:border-box}.button.secondary{background:#fff;color:#1f5a96}.text-link{color:#1f5a96;font-weight:700;text-decoration:none}.category-grid,.evidence-grid,.review-grid,.pros-cons{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:18px}.card{border:1px solid #e5e7eb;border-radius:8px;padding:16px;background:#fff}.card img,.product-media img{max-width:100%;height:190px;object-fit:contain;display:block;margin:auto}.product-media{background:#f8fafc;border-radius:8px;padding:18px;margin:0}.product-detail .gallery{position:sticky;top:96px}.product-detail>.gallery,.product-detail>div:first-child{min-height:0}.product-detail>div:first-child .product-media{display:grid;place-items:center;min-height:336px;padding:24px}.product-detail>div:first-child .product-media img{height:300px}.buy-panel{position:sticky;top:96px}.product-media figcaption{min-height:34px;max-height:38px;overflow:hidden;color:#475569;font-size:13px}.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.thumbs img{height:72px;object-fit:contain;border:1px solid #e5e7eb;border-radius:6px}.buy-panel{border:1px solid #e5e7eb;border-radius:8px;padding:22px;background:#fff}.price{font-size:24px;font-weight:800}.rating,.mini-score{font-weight:700;color:#334155}.product-highlights{border:1px solid #e2e8f0;background:#f8fafc;border-radius:8px;padding:14px;margin:16px 0}.product-highlights h2{font-size:16px;margin:0 0 10px}.product-highlights ul{display:grid;gap:8px;list-style:none;margin:0;padding:0}.product-highlights li{display:grid;grid-template-columns:126px minmax(0,1fr);gap:8px;align-items:start}.product-highlights strong{color:#111827}.product-highlights span{color:#475569;overflow-wrap:anywhere}.section-jump{max-width:1180px;margin:0 auto;padding:0 32px 18px;display:flex;gap:8px;flex-wrap:wrap}.section-jump a{border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:999px;padding:8px 12px;font-weight:700}.mobile-sticky-actions{display:none}.purchase-controls,.filter-grid,.contact-form form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:18px 0}.decision-panel,.signal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.decision-panel div,.signal-grid div{border:1px solid #dbeafe;background:#f8fbff;border-radius:8px;padding:12px;min-width:0}.decision-panel span,.signal-grid span{display:block;color:#64748b;font-size:13px}.decision-panel strong,.signal-grid strong{display:block;color:#111827;font-size:17px;line-height:1.25;overflow-wrap:anywhere}.purchase-actions .button{min-width:180px}.fulfillment,.score-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:14px}.score-card strong{display:block;font-size:34px}.score-card span{color:#64748b}.card-facts{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.card-facts span,.compare-note{border:1px solid #e2e8f0;background:#f8fafc;color:#475569;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:700}.product-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:start}.product-card .product-media{grid-row:1/8;padding:10px}.product-card .product-media img{height:132px}.product-card .product-media figcaption{min-height:0;max-height:32px}.product-card h3{min-height:0;margin:0 0 6px}.product-card .card-summary{min-height:0;margin:0 0 6px;color:#475569}.product-card .price{font-size:21px;margin:4px 0}.product-card .mini-score{margin:4px 0}.product-card .actions{margin-top:4px}.trust-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;max-width:1180px;margin:0 auto;padding:18px 32px}.trust-strip span,.brand-strip span{border:1px solid #dbeafe;background:#eff6ff;color:#1e3a8a;border-radius:6px;padding:10px;text-align:center;font-weight:700}.brand-strip{display:flex;gap:10px;flex-wrap:wrap}.split{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:20px}.home-hero{align-items:stretch}.hero-copy{display:flex;flex-direction:column;justify-content:center}.hero-proof{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:18px 0}.hero-proof span{background:#f8fafc;border:1px solid #dbeafe;border-radius:8px;padding:10px;font-weight:700;color:#1e3a8a}.hero-pick{border:1px solid #dbeafe;border-radius:12px;background:#f8fbff;padding:18px}.hero-pick .product-media{background:#fff}.hero-pick-details{margin-top:14px}.hero-pick h2{font-size:22px;margin:4px 0 8px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:18px}.section-heading h2{margin-bottom:0}.intent-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.home-category-card{display:flex;flex-direction:column}.home-category-card img{height:150px}.home-category-card .button{margin-top:auto}.category-intent{font-weight:800;color:#111827;margin-bottom:6px}.recommendation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.recommendation-card{border-color:#bfdbfe;background:#f8fbff}.recommendation-card h3{min-height:58px}.home-product-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.home-product-card{display:flex;flex-direction:column}.home-product-card img{height:150px}.home-product-card h3{font-size:18px;min-height:54px}.home-product-card .price{font-size:20px;margin:6px 0}.home-product-card .button{margin-top:auto}.specs div{display:grid;grid-template-columns:190px 1fr;padding:10px 0;border-bottom:1px solid #eee}.specs dt{font-weight:700}.faq details{border:1px solid #e5e7eb;border-radius:8px;padding:14px;margin:10px 0}#editor-review,#specifications,#review-snapshot,#comparison,#product-qa{scroll-margin-top:96px}blockquote{border-left:4px solid #1f5a96;margin:18px 0;padding:10px 18px;background:#f8fafc}.comparison{overflow-x:auto;max-width:100%}table{width:100%;border-collapse:collapse;background:#fff;table-layout:fixed}th,td{border:1px solid #e5e7eb;padding:10px;text-align:left;vertical-align:top;overflow-wrap:anywhere;word-break:normal}th{background:#f8fafc}.rating-bars p{display:grid;grid-template-columns:70px 1fr;gap:10px}.rating-bars span{display:block;height:12px;background:#1f5a96;border-radius:999px}.avatar{width:54px;height:54px;border-radius:50%;background:#1f5a96;color:#fff;display:grid;place-items:center;font-weight:800;font-size:24px}.content-section{margin-bottom:28px}.toc ul{columns:2}.newsletter form{display:flex;gap:10px;max-width:520px}.site-footer{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:24px;background:#111827;color:#fff;padding:36px 32px}.site-footer a{display:block;color:#bfdbfe;margin:6px 0}.site-footer input{margin:4px 0}.sr-only{position:absolute;left:-9999px}@media(max-width:900px){.site-header{grid-template-columns:1fr}.hero,.product-detail,.split,.recommendation-grid{grid-template-columns:1fr}.buy-panel,.product-detail .gallery{position:static}.product-detail>div:first-child{min-height:0}.product-detail>div:first-child .product-media{min-height:0}.page-hero,.band,.hero,.product-detail,.breadcrumbs,.section-jump{padding-left:18px;padding-right:18px}h1{font-size:32px}.section-heading{align-items:start;flex-direction:column}.newsletter form{display:grid}.specs div{grid-template-columns:1fr}}@media(max-width:560px){body{padding-bottom:78px}.decision-panel,.signal-grid{grid-template-columns:1fr}.product-highlights li{grid-template-columns:1fr;gap:2px}.section-jump{overflow-x:visible;flex-wrap:wrap;padding-bottom:12px}.section-jump a{white-space:nowrap}.mobile-sticky-actions{position:fixed;left:12px;right:12px;bottom:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;z-index:5;background:rgba(255,255,255,.96);border:1px solid #dbeafe;border-radius:8px;padding:8px;box-shadow:0 10px 30px rgba(15,23,42,.18)}.mobile-sticky-actions .button{min-height:44px;padding:8px 10px}.button,.purchase-actions .button{width:100%;box-sizing:border-box}.product-grid{grid-template-columns:1fr;gap:12px}.product-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;padding:10px}.product-card .product-media{grid-row:1/7;padding:8px}.product-card .product-media img{height:104px}.product-card .product-media figcaption{display:none}.product-card h3,.home-product-card h3{min-height:0;font-size:15px;margin:0}.product-card .eyebrow{margin:0}.product-card .card-summary{display:none}.product-card .price{font-size:18px;margin:0}.product-card .mini-score{font-size:12px;margin:0}.product-card .card-facts{display:none}.product-card .actions{margin-top:2px}.product-card .button{width:auto;min-width:0;padding:7px 9px}.product-card .compare-note{display:none}.card img,.product-media img{height:180px}.product-media figcaption{min-height:0}.thumbs{grid-template-columns:repeat(2,1fr)}table{font-size:13px}th,td{padding:8px 6px}}:root{--sf-ink:#111827;--sf-muted:#64748b;--sf-blue:#1f5a96;--sf-teal:#0f766e;--sf-gold:#b7791f;--sf-line:#dbeafe;--sf-panel:#f8fbff;--sf-warm:#fff7ed}body{background:linear-gradient(180deg,#f8fbff 0,#fff 260px,#fff 100%)}.site-header{box-shadow:0 10px 30px rgba(15,23,42,.06)}.brand{display:inline-flex;align-items:center;gap:9px}.brand:before{content:"";width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--sf-blue),var(--sf-teal));box-shadow:inset 0 0 0 3px rgba(255,255,255,.35)}.hero,.page-hero{position:relative;overflow:hidden}.home-hero,.category-hero{border:1px solid #e6eef8;background:linear-gradient(135deg,#ffffff 0,#f8fbff 48%,#fff7ed 100%);border-radius:18px;margin-top:22px;box-shadow:0 24px 60px rgba(15,23,42,.08)}.home-hero:before,.category-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,90,150,.08) 1px,transparent 1px),linear-gradient(180deg,rgba(15,118,110,.06) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(90deg,transparent 0,#000 24%,#000 76%,transparent 100%);pointer-events:none}.hero-copy,.page-hero-copy,.hero-pick,.category-hero-art{position:relative}.hero-copy>p:not(.eyebrow):first-of-type,.page-hero-copy>p:not(.eyebrow):first-of-type{font-size:18px;color:#334155;max-width:680px}.hero-proof span,.trust-strip span,.signal-grid div,.decision-panel div,.media-facts div{box-shadow:0 8px 22px rgba(15,23,42,.04)}.hero-proof span{display:flex;align-items:center;gap:8px}.hero-proof span:before,.trust-strip span:before,.signal-grid div:before{content:"";width:18px;height:18px;flex:0 0 18px;border-radius:5px;background:linear-gradient(135deg,var(--sf-blue),var(--sf-teal));box-shadow:inset 0 0 0 3px rgba(255,255,255,.42)}.trust-strip span{display:flex;align-items:center;justify-content:center;gap:8px}.card{box-shadow:0 12px 30px rgba(15,23,42,.05);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(15,23,42,.09);border-color:#bfdbfe}.product-media,.card img{background:linear-gradient(135deg,#f8fafc,#eef6ff)}.hero-pick{box-shadow:0 18px 46px rgba(31,90,150,.12)}.hero-pick .product-media,.product-detail .product-media{background:radial-gradient(circle at 50% 38%,#fff 0,#fff 34%,#eaf3ff 35%,#f8fbff 100%)}.hero-pick-details{border-top:1px solid #dbeafe;padding-top:12px}.category-hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:center}.category-hero-art{border:1px solid #dbeafe;background:#fff;border-radius:16px;padding:16px;box-shadow:0 18px 46px rgba(15,23,42,.08)}.category-hero-art img{width:100%;height:210px;object-fit:contain;display:block}.category-hero-art div{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.category-hero-art span{background:#eff6ff;color:#1e3a8a;border-radius:8px;padding:9px;text-align:center;font-weight:800;font-size:13px}.home-category-card,.home-product-card,.product-card{overflow:hidden}.home-category-card img,.home-product-card img{width:100%;border-radius:8px;background:linear-gradient(135deg,#f8fafc,#eef6ff)}.home-category-card h3,.home-product-card h3,.product-card h3{line-height:1.22}.recommendation-card{display:grid;grid-template-columns:126px minmax(0,1fr);gap:14px;align-items:center;background:linear-gradient(135deg,#f8fbff,#fff)}.recommendation-media{display:grid;place-items:center;border:1px solid #dbeafe;background:#fff;border-radius:10px;padding:10px;min-height:148px}.recommendation-media img{width:100%;height:126px;object-fit:contain}.recommendation-card h3{min-height:0;margin:4px 0}.recommendation-card .price{margin:6px 0}.button{box-shadow:0 8px 18px rgba(31,90,150,.16)}.button.secondary{box-shadow:none}.section-heading{border-bottom:1px solid #e6eef8;padding-bottom:12px}.product-card{background:linear-gradient(135deg,#fff,#fbfdff)}.product-card .product-media{border:1px solid #e6eef8}.card-facts span,.compare-note{background:#fff}.buy-panel{box-shadow:0 18px 46px rgba(15,23,42,.08)}.product-highlights li:before,.media-checklist li:marker{color:var(--sf-teal)}.score-card{background:linear-gradient(135deg,#f8fbff,#fff7ed)}.site-footer{background:linear-gradient(135deg,#0f172a,#111827 58%,#102a43)}@media(min-width:901px){.product-detail{grid-template-columns:minmax(360px,.9fr) minmax(360px,1fr);gap:28px;padding-top:34px;padding-bottom:28px}.product-detail .media-column{position:sticky;top:96px;align-self:start}.product-detail .gallery{position:static}.product-detail .product-media{padding:16px}.product-detail>.media-column .product-media{min-height:0}.product-detail>.media-column .product-media img{height:250px}.product-detail .single-image .product-media{min-height:292px}.buy-panel{padding:18px}.buy-panel h1{font-size:36px;margin-bottom:10px}.buy-panel .summary{margin:0 0 10px}.product-highlights{margin:12px 0}.decision-panel{margin:12px 0}.fulfillment{padding:12px;margin-top:12px}.fulfillment p{margin:6px 0}.trust-strip{padding-top:10px;padding-bottom:10px}.section-jump{padding-bottom:12px}.media-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.media-facts div{border:1px solid #dbeafe;background:#f8fbff;border-radius:8px;padding:10px;min-width:0}.media-facts span{display:block;color:#64748b;font-size:12px}.media-facts strong{display:block;color:#111827;font-size:14px;line-height:1.25;overflow-wrap:anywhere}.media-checklist{border:1px solid #e2e8f0;background:#fff;border-radius:8px;margin-top:12px;padding:12px}.media-checklist p{margin:0 0 8px}.media-checklist strong,.media-checklist span{display:block}.media-checklist strong{font-size:15px;color:#111827}.media-checklist span{color:#64748b;font-size:13px;line-height:1.35}.media-checklist ul{margin:0;padding-left:18px;color:#334155;font-weight:700;font-size:13px}.media-checklist li{margin:5px 0}}@media(max-width:900px){.home-hero,.category-hero{border-radius:0;border-left:0;border-right:0;margin-top:12px}.category-hero{grid-template-columns:1fr}.category-hero-art{display:none}.recommendation-card{grid-template-columns:96px minmax(0,1fr)}.recommendation-media{min-height:108px;padding:8px}.recommendation-media img{height:88px}.media-facts,.media-checklist{display:none}}@media(max-width:560px){.home-hero,.category-hero{box-shadow:none}.hero-copy>p:not(.eyebrow):first-of-type,.page-hero-copy>p:not(.eyebrow):first-of-type{font-size:15px}.trust-strip span{justify-content:flex-start;text-align:left}.recommendation-grid{gap:12px}.recommendation-card h3{font-size:15px}.recommendation-card .button{width:auto;padding:7px 9px}}.home-product-card,.home-category-card,.recommendation-card{position:relative}.home-product-card:before,.home-category-card:before,.recommendation-card:before{content:"";position:absolute;left:16px;top:16px;width:28px;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--sf-blue),var(--sf-teal));opacity:.75}.home-product-card>a:first-child,.home-category-card>a:first-child{display:grid;place-items:center;border:1px solid #e6eef8;border-radius:10px;background:radial-gradient(circle at 50% 45%,#fff 0,#fff 38%,#eef6ff 39%,#f8fbff 100%);padding:8px;margin-bottom:12px}.home-product-card>a:first-child img,.home-category-card>a:first-child img{background:transparent}.home-product-card .freshness{font-size:12px;line-height:1.35}.home-category-card{gap:8px}.home-category-card h3{margin:0;min-height:50px}.category-meta{display:flex;gap:6px;flex-wrap:wrap;margin:0}.category-meta span{display:inline-flex;align-items:center;gap:5px;border:1px solid #dbeafe;background:#f8fbff;color:#1e3a8a;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;line-height:1.15}.category-meta .icon{width:13px;height:13px;color:#0f766e}.category-path{margin:0;color:#475569;font-size:13px;line-height:1.35;max-height:54px;overflow:hidden}.product-card .card-summary{font-size:14px;line-height:1.45}.product-card .actions,.home-product-card .button,.recommendation-card .button{align-self:start}.section-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.pagination{display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:20px}.page-link{min-width:38px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #bfdbfe;border-radius:8px;background:#fff;color:#1f5a96;font-weight:800;padding:0 10px;text-decoration:none}.page-link.current{background:#1f5a96;color:#fff;border-color:#1f5a96}.category-tools{padding-top:22px}.signal-grid div{position:relative;padding-left:44px}.signal-grid div:before{position:absolute;left:14px;top:15px}.comparison{border-radius:8px;box-shadow:0 12px 30px rgba(15,23,42,.04)}.faq details{background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.035)}@media(min-width:901px){.home-product-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.home-product-card{padding:14px}.home-product-card img{height:128px}.home-product-card h3{font-size:16px;min-height:44px}.home-product-card .price{font-size:18px}.home-category-card{padding:14px}.home-category-card img{height:132px}.home-category-card h3{font-size:18px}.product-card{grid-template-columns:132px minmax(0,1fr)}.product-card .product-media img{height:116px}.product-card .price{font-size:19px}.product-card .card-summary{max-height:42px;overflow:hidden}.recommendation-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:560px){.hero-proof{grid-template-columns:1fr 1fr}.hero-proof span{font-size:12px;padding:8px}.trust-strip{grid-template-columns:1fr;gap:6px}.trust-strip span{font-size:12px;padding:8px 10px}.section-meta{justify-content:flex-start}.home-product-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.home-product-card{padding:10px}.home-product-card>a:first-child{padding:6px;margin-bottom:8px}.home-product-card img{height:94px}.home-product-card h3{font-size:13px;line-height:1.2;min-height:44px}.home-product-card .price{font-size:16px;margin:4px 0}.home-product-card .mini-score,.home-product-card .freshness{font-size:11px;line-height:1.25}.home-product-card .button{min-height:34px;padding:6px 8px;font-size:12px}.home-category-card img{height:118px}.home-category-card h3{min-height:0;font-size:14px}.category-meta span{font-size:10px;padding:4px 6px}.category-path{display:none}.recommendation-card{padding:10px;grid-template-columns:76px minmax(0,1fr);gap:10px}.recommendation-media{min-height:88px}.recommendation-media img{height:70px}.recommendation-card p:not(.eyebrow):not(.price):not(.mini-score){display:none}.recommendation-card .price{font-size:16px}.recommendation-card .mini-score{font-size:11px}.recommendation-card .button{min-height:32px;font-size:12px}.brand-strip span{font-size:11px}.product-card{box-shadow:0 10px 24px rgba(15,23,42,.06)}}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:#1f2937;font-size:15px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,.brand,.price,.button{font-family:"Aptos Display",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:#111827;letter-spacing:0}h1{font-weight:850}h2{font-weight:800}h3{font-weight:760}.brand{font-weight:850}.eyebrow{letter-spacing:.06em;color:#64748b}.summary,.card-summary,.freshness,.updated,p,li,td,dd{color:#475569}.price{color:#0f172a;font-weight:850}.mini-score,.rating{color:#334155}a{color:#155e75;text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:#0f766e;text-decoration:underline}.card h3 a,.home-product-card h3 a,.home-category-card h3 a,.recommendation-card h3 a,.product-card h3 a{color:#0f172a;text-decoration:none}.card h3 a:hover,.home-product-card h3 a:hover,.home-category-card h3 a:hover,.recommendation-card h3 a:hover,.product-card h3 a:hover{color:#155e75;text-decoration:underline}.text-link,nav a,.breadcrumbs a,.site-footer a{color:#1f5a96}.button,.button:hover{color:#fff;text-decoration:none}.button.secondary{color:#1f5a96}.button.secondary:hover{color:#0f766e;text-decoration:none;border-color:#0f766e}.site-footer h2,.site-footer p{color:#fff}.site-footer a{color:#c7e0ff}.brand-strip span,.card-facts span,.compare-note,.trust-strip span{font-size:12px}.home-product-card .eyebrow,.product-card .eyebrow{font-size:11px}.product-card h3,.home-product-card h3{font-weight:780}.category-intent{color:#111827}.site-search input{font-size:13px}@media(max-width:560px){body{font-size:14px}h1{font-size:30px}.home-product-card h3{font-size:13px}.product-card h3{font-size:14px}.button{font-weight:760}.site-footer h2{font-size:18px}}.subcategory-panel{border:1px solid #dbeafe;background:linear-gradient(180deg,#fff,#f8fbff);border-radius:10px;overflow:hidden;margin:4px 0 12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}.subcategory-panel summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 11px;cursor:pointer;list-style:none;color:#0f172a;font-weight:850}.subcategory-panel summary::-webkit-details-marker{display:none}.subcategory-panel summary:before{content:"";width:8px;height:8px;border-right:2px solid #0f766e;border-bottom:2px solid #0f766e;transform:rotate(-45deg);transition:transform .18s ease}.subcategory-panel[open] summary:before{transform:rotate(45deg)}.subcategory-panel summary span{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subcategory-panel summary strong{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;border-radius:999px;background:#eff6ff;color:#1f5a96;font-size:11px}.subcategory-list{display:grid;gap:6px;margin:0;padding:0 10px 10px;list-style:none;animation:subcategory-reveal .22s ease}.subcategory-list li{min-width:0}.subcategory-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #e6eef8;background:#fff;border-radius:8px;padding:8px 9px;color:#0f172a;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.subcategory-list a:hover{transform:translateX(3px);border-color:#bfdbfe;box-shadow:0 8px 18px rgba(31,90,150,.08);text-decoration:none}.subcategory-name{font-size:13px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count-badge{min-width:30px;border-radius:999px;background:#eff6ff;color:#1f5a96;text-align:center;font-size:11px;font-weight:850;padding:3px 7px}.subcategory-empty{margin:0 10px 10px;border:1px dashed #cfe4fb;border-radius:8px;background:#fff;color:#64748b;font-size:13px;font-weight:700;line-height:1.35;padding:9px;animation:subcategory-reveal .22s ease}@keyframes subcategory-reveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.subcategory-list,.subcategory-empty,.subcategory-panel summary:before,.subcategory-list a{animation:none;transition:none}}@media(max-width:560px){.subcategory-panel summary{padding:8px 9px}.subcategory-panel summary span{font-size:11px}.subcategory-list{gap:5px;padding:0 8px 8px}.subcategory-list a{padding:7px}.subcategory-name{font-size:12px}.count-badge{min-width:26px;padding:2px 6px}.subcategory-empty{margin:0 8px 8px;font-size:12px}}.recommendation-grid{align-items:stretch}.recommendation-card{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto 154px auto auto auto;gap:12px;align-items:stretch;padding:16px;background:linear-gradient(180deg,#fff 0,#f8fbff 100%);border-color:#dbeafe;min-height:0}.recommendation-card:before{display:none}.recommendation-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.recommendation-badge{display:inline-flex;align-items:center;gap:7px;color:#0f172a;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.recommendation-rank{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:#eff6ff;color:#1f5a96;font-size:12px;font-weight:850}.icon{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.recommendation-badge .icon{color:#0f766e}.recommendation-media{min-height:0;height:154px;padding:12px;border-radius:12px;background:radial-gradient(circle at 50% 45%,#fff 0,#fff 37%,#edf6ff 38%,#f8fbff 100%);box-shadow:inset 0 0 0 1px rgba(191,219,254,.7)}.recommendation-media img{height:128px;width:100%;object-fit:contain;background:transparent}.recommendation-body{min-height:92px}.recommendation-category{margin:0 0 6px;color:#64748b;font-size:13px;font-weight:700}.recommendation-card h3{min-height:0;margin:0;font-size:20px;line-height:1.18}.recommendation-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.recommendation-meta span{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:9px 8px;min-width:0}.recommendation-meta strong,.recommendation-meta small{display:block}.recommendation-meta strong{color:#0f172a;font-size:15px;line-height:1.15;overflow-wrap:anywhere}.recommendation-meta small{color:#64748b;font-size:11px;font-weight:750;margin-top:3px}.recommendation-cta{width:100%;gap:8px}.recommendation-cta .icon{width:16px;height:16px}@media(max-width:900px){.recommendation-card{grid-template-columns:1fr!important;grid-template-rows:auto 128px auto auto auto;padding:14px}.recommendation-media{height:128px}.recommendation-media img{height:104px}.recommendation-body{min-height:0}.recommendation-card h3{font-size:17px}.recommendation-meta strong{font-size:14px}}@media(max-width:560px){.recommendation-grid{display:grid;grid-template-columns:1fr;gap:12px}.recommendation-card{grid-template-columns:96px minmax(0,1fr)!important;grid-template-rows:auto auto auto;gap:10px;align-items:center}.recommendation-top{grid-column:1/3}.recommendation-media{grid-row:2/4;width:96px;height:104px;padding:8px}.recommendation-media img{height:84px}.recommendation-body{grid-column:2;grid-row:2}.recommendation-card h3{font-size:15px;line-height:1.2}.recommendation-category{display:block!important;font-size:12px}.recommendation-meta{grid-column:2;grid-row:3;grid-template-columns:repeat(3,1fr);gap:5px}.recommendation-meta span{padding:6px 5px}.recommendation-meta strong{font-size:12px}.recommendation-meta small{font-size:10px}.recommendation-cta{grid-column:1/3;min-height:36px}}.product-card{display:grid!important;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:stretch;padding:14px;background:linear-gradient(135deg,#fff,#fbfdff);position:relative}.product-card:before{display:none}.product-card-media{position:relative;display:grid;align-content:start;gap:8px}.product-card-media .product-media{grid-row:auto!important;height:100%;min-height:174px;display:grid;place-items:center;border:1px solid #e6eef8;border-radius:12px;background:radial-gradient(circle at 50% 42%,#fff 0,#fff 35%,#edf6ff 36%,#f8fbff 100%);padding:10px;margin:0}.product-card-media .product-media img{height:120px}.product-card-media .product-media figcaption{font-size:11px;line-height:1.2;max-height:30px;color:#64748b}.product-card-media .compare-note{position:absolute;left:8px;bottom:8px;border-color:#bfdbfe;background:#fff;color:#1f5a96}.product-card-body{display:grid;grid-template-rows:auto auto auto auto auto auto;align-content:start;gap:8px;min-width:0}.product-card-body .eyebrow{margin:0}.product-card-body h3{margin:0;font-size:19px;line-height:1.18}.product-card-body .card-summary{margin:0;max-height:42px;overflow:hidden}.product-card-metrics{display:grid;grid-template-columns:1.15fr .9fr .9fr;gap:8px}.product-card-metrics span{border:1px solid #e2e8f0;background:#fff;border-radius:8px;padding:8px;min-width:0}.product-card-metrics strong,.product-card-metrics small{display:block}.product-card-metrics strong{font-size:14px;line-height:1.15;color:#0f172a;overflow-wrap:anywhere}.product-card-metrics small{font-size:10px;color:#64748b;font-weight:800;margin-top:3px;text-transform:uppercase;letter-spacing:.04em}.card-facts span{display:inline-flex;align-items:center;gap:5px}.card-facts .icon{width:13px;height:13px;color:#0f766e}.product-card .actions{margin-top:0;align-items:center}.product-card .button{gap:7px}.product-card .button .icon,.purchase-actions .icon{width:15px;height:15px}.decision-panel div{position:relative;padding-left:44px}.decision-panel div>.icon{position:absolute;left:13px;top:14px;width:20px;height:20px;color:#0f766e}.buy-panel{background:linear-gradient(180deg,#fff 0,#fbfdff 100%)}.buy-panel .price{display:inline-flex;align-items:center;gap:10px;font-size:28px}.buy-panel .price:before{content:"";width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,var(--sf-blue),var(--sf-teal));box-shadow:inset 0 0 0 5px rgba(255,255,255,.42)}.purchase-actions{gap:10px}.purchase-actions .button{gap:8px}.product-highlights{background:linear-gradient(135deg,#f8fbff,#fff);box-shadow:0 10px 24px rgba(15,23,42,.04)}.fulfillment{background:linear-gradient(135deg,#fff,#f8fbff)}@media(min-width:901px){.product-grid{grid-template-columns:repeat(auto-fit,minmax(460px,1fr))}.category-tools+.band .product-grid .product-card{min-height:266px}}@media(max-width:560px){.product-card{grid-template-columns:92px minmax(0,1fr)!important;gap:10px;padding:10px}.product-card-media .product-media{min-height:122px;padding:7px}.product-card-media .product-media img{height:86px}.product-card-media .product-media figcaption{display:none}.product-card-body{gap:5px}.product-card-body h3{font-size:14px;line-height:1.18}.product-card-body .card-summary{display:none}.product-card-metrics{grid-template-columns:1fr 1fr 1fr;gap:5px}.product-card-metrics span{padding:5px 4px}.product-card-metrics strong{font-size:11px}.product-card-metrics small{font-size:9px}.product-card .card-facts{display:flex;font-size:10px;margin:0}.product-card .card-facts span{padding:4px 5px}.product-card .actions{gap:6px}.product-card .button{min-height:32px;font-size:12px;padding:6px 8px}.decision-panel div{padding-left:42px}.buy-panel .price{font-size:23px}.purchase-actions .button{justify-content:center}}.band>h2{display:flex;align-items:center;gap:10px;color:#0f172a}.band>h2:before{content:"";width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,var(--sf-blue),var(--sf-teal));box-shadow:inset 0 0 0 5px rgba(255,255,255,.38);flex:0 0 auto}.product-detail+.mobile-sticky-actions+.trust-strip+.section-jump,.section-jump{align-items:center}.section-jump a{display:inline-flex;align-items:center;gap:7px;border-radius:8px;background:#fff;border-color:#cfe4fb;box-shadow:0 8px 18px rgba(15,23,42,.04)}.section-jump a:before{content:"";width:8px;height:8px;border-radius:999px;background:#0f766e}.review-grid{align-items:stretch}.review-grid>div:not(.score-card){border:1px solid #e6eef8;border-radius:8px;background:linear-gradient(135deg,#fff,#f8fbff);padding:18px;box-shadow:0 12px 28px rgba(15,23,42,.04)}.score-card{display:grid;align-content:center;min-height:126px;border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fff 55%,#f8fbff);position:relative;overflow:hidden}.score-card:after{content:"";position:absolute;right:-24px;top:-24px;width:92px;height:92px;border-radius:999px;background:rgba(15,118,110,.1)}blockquote{border-left:0;border-radius:8px;background:#eff6ff;color:#334155;position:relative;padding:14px 16px 14px 42px}blockquote:before{content:"";position:absolute;left:15px;top:16px;width:15px;height:15px;border-radius:5px;background:#1f5a96}.pros-cons article{border:1px solid #e6eef8;border-radius:8px;background:#fff;padding:16px;box-shadow:0 10px 24px rgba(15,23,42,.035)}.pros-cons h3{margin-top:0}.pros-cons li{margin:6px 0}.specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.specs div{border:1px solid #e6eef8!important;border-radius:8px;padding:12px!important;background:linear-gradient(135deg,#fff,#fbfdff);display:grid!important;grid-template-columns:150px minmax(0,1fr)!important;gap:12px;align-items:start}.specs dt{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.specs dd{margin:0;color:#0f172a;font-weight:700;overflow-wrap:anywhere}.rating-bars{border:1px solid #e6eef8;border-radius:8px;background:#fff;padding:16px;box-shadow:0 10px 24px rgba(15,23,42,.035)}.rating-bars p{align-items:center;margin:10px 0;color:#334155;font-weight:700}.rating-bars span{height:10px;background:linear-gradient(90deg,var(--sf-blue),var(--sf-teal));box-shadow:0 4px 10px rgba(31,90,150,.16)}.comparison table{border-spacing:0}.comparison th{background:#f1f7ff;color:#0f172a;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.comparison td,.comparison th{border-color:#e6eef8}.comparison td:first-child a{font-weight:800}.faq details{border-color:#e6eef8;background:linear-gradient(135deg,#fff,#fbfdff)}.faq summary{cursor:pointer;color:#0f172a;font-weight:800}.category-tools .signal-grid div{background:linear-gradient(135deg,#fff,#f8fbff);border-radius:8px}.category-grid .card{display:grid;grid-template-rows:auto auto 1fr;gap:8px}.category-grid .card img{height:170px;border-radius:8px;object-fit:contain;background:radial-gradient(circle at 50% 45%,#fff 0,#fff 38%,#eef6ff 39%,#f8fbff 100%)}@media(min-width:901px){.band{padding-top:34px;padding-bottom:34px}.product-detail~.band[id]{border-top:1px solid #edf2f7}.product-detail~.band[id]+.band[id]{padding-top:28px}.category-tools+.band .product-grid{gap:20px}.category-tools+.band .product-card{border-color:#dbeafe}.category-tools+.band .product-card:hover{transform:translateY(-3px)}}@media(max-width:900px){.specs{grid-template-columns:1fr}.specs div{grid-template-columns:1fr!important;gap:4px}.review-grid>div:not(.score-card),.pros-cons article,.rating-bars{padding:14px}}@media(max-width:560px){.band>h2{font-size:22px}.band>h2:before{width:18px;height:18px;border-radius:6px}.section-jump{gap:6px}.section-jump a{font-size:12px;padding:7px 9px}.review-grid{gap:12px}.score-card{min-height:96px}.score-card strong{font-size:30px}.pros-cons{gap:10px}.pros-cons article{padding:12px}.specs div{padding:10px!important}.comparison{box-shadow:none}.comparison table{width:100%;min-width:0;font-size:10px}.comparison th,.comparison td{padding:6px 4px}.comparison th{font-size:9px;letter-spacing:0}.category-grid .card img{height:142px}.category-tools .section-heading{gap:8px}.category-tools .signal-grid{gap:8px}}:root{--sf-ink:#171a1d;--sf-muted:#626a70;--sf-accent:#087f5b;--sf-accent-dark:#075f46;--sf-line:#dfe3e2;--sf-soft:#f4f7f5;--sf-warm:#f4e7cc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#fff;color:var(--sf-ink)}.announcement{background:#171a1d;padding:7px 24px;font-size:12px}.site-header{grid-template-columns:auto minmax(260px,420px) minmax(0,1fr);gap:24px;padding:14px max(24px,calc((100vw - 1240px)/2));border-color:var(--sf-line);box-shadow:none}.brand:before{border-radius:2px;background:var(--sf-accent);box-shadow:none}.site-search input{border-radius:3px;border-color:#bdc5c1;padding:10px 12px}.site-search button{border-radius:0 3px 3px 0;border-color:var(--sf-accent);background:var(--sf-accent);min-width:76px}.site-header nav{justify-content:flex-end;gap:18px}.site-header nav a{color:#303633;font-size:13px;font-weight:700}.hero,.page-hero,.band,.product-detail,.breadcrumbs,.section-jump{max-width:1240px}.home-hero,.category-hero{margin-top:0;border:0;border-bottom:1px solid var(--sf-line);border-radius:0;background:#fff;box-shadow:none}.home-hero:before,.category-hero:before,.home-product-card:before,.home-category-card:before,.band>h2:before{display:none}.home-hero{min-height:510px}.hero-pick,.category-hero-art,.buy-panel,.card,.product-media,.product-highlights,.fulfillment,.signal-grid div,.subcategory-panel,.subcategory-list a,.specs div,.faq details{border-radius:4px!important;box-shadow:none!important;background:#fff}.hero-pick{border:1px solid var(--sf-line);display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.65fr);gap:20px;align-items:center}.hero-pick .product-media{border:0}.hero-pick-details{border:0;margin:0;padding:0}.hero-proof span{border:0;border-left:3px solid var(--sf-accent);border-radius:0;background:var(--sf-soft);box-shadow:none;color:#2f3934}.hero-proof span:before,.signal-grid div:before{display:none}.eyebrow{color:var(--sf-accent-dark);letter-spacing:0;font-size:12px}.category-path{text-transform:none}.section-heading{align-items:center;border-color:var(--sf-line);padding-bottom:14px}.band{padding-top:44px;padding-bottom:44px}.card{border-color:var(--sf-line);transition:border-color .15s ease,transform .15s ease}.card:hover{border-color:#97aaa1;box-shadow:none;transform:translateY(-2px)}.intent-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.home-category-card{padding:14px}.home-category-card>a:first-child,.home-product-card>a:first-child{border:0;border-radius:0;background:var(--sf-soft);margin:-2px -2px 10px;padding:10px}.home-category-card h3{min-height:0}.subcategory-panel{border-color:var(--sf-line);background:var(--sf-soft)}.subcategory-list a{border-color:var(--sf-line)}.home-product-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.home-product-card{padding:14px}.home-product-card img{height:170px}.home-product-card h3{font-size:16px;min-height:46px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.product-card{grid-template-columns:138px minmax(0,1fr);padding:14px;border-color:var(--sf-line);background:#fff}.product-card-media .product-media{border:0;background:var(--sf-soft);border-radius:2px!important}.product-card-body h3{font-size:17px}.product-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.product-card-metrics span{border:0;border-radius:2px;background:var(--sf-soft)}.product-card-metrics small{letter-spacing:0;text-transform:none}.card-facts span{border:0;border-radius:2px;background:var(--sf-soft)}.button{border-color:var(--sf-accent);border-radius:3px;background:var(--sf-accent);box-shadow:none;color:#fff}.button:hover{border-color:var(--sf-accent-dark);background:var(--sf-accent-dark)}.button.secondary{border-color:#8ba198;color:var(--sf-accent-dark)}.text-link{color:var(--sf-accent-dark)}.category-tools{background:var(--sf-soft);max-width:none;padding-left:max(32px,calc((100vw - 1240px)/2));padding-right:max(32px,calc((100vw - 1240px)/2))}.category-tools .section-heading,.category-tools .signal-grid{max-width:1240px;margin-left:auto;margin-right:auto}.signal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--sf-line)}.signal-grid div{padding:18px;background:#fff!important}.buy-panel{border-color:var(--sf-line)}.buy-panel .price:before{display:none}.product-highlights{border-color:var(--sf-line);background:var(--sf-soft)}.fulfillment{border-color:var(--sf-line);background:#fff}.section-jump a{border-color:var(--sf-line);border-radius:3px;background:#fff;color:var(--sf-accent-dark);box-shadow:none}.section-jump a:before{background:var(--sf-accent)}.prose{max-width:760px;font-size:17px;line-height:1.75}.specs{gap:1px;background:var(--sf-line)}.specs div{border:0!important;border-radius:0!important;background:#fff!important}.pagination{margin-top:28px}.page-link{border-color:#aebbb5;border-radius:3px;color:var(--sf-accent-dark)}.page-link.current{border-color:var(--sf-accent);background:var(--sf-accent)}.empty-state{grid-column:1/-1;border-top:1px solid var(--sf-line);padding:40px 0}.policy,.toc,.content-section{max-width:800px}.toc ul{line-height:1.9}.site-footer{grid-template-columns:2fr 1fr 1fr;padding:44px max(24px,calc((100vw - 1240px)/2));background:#171a1d}.site-footer h2{font-size:16px}.footer-brand{font-size:22px;font-weight:800;color:#fff!important}@media(max-width:1050px){.site-header{grid-template-columns:auto 1fr}.site-header nav{grid-column:1/-1;justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.site-header nav a{white-space:nowrap}.intent-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.home-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){html{scroll-behavior:auto}body{padding-bottom:76px}.announcement{text-align:left;padding:6px 16px}.site-header{position:relative;grid-template-columns:1fr;padding:12px 16px;gap:10px}.site-header nav{grid-column:auto;gap:14px}.site-search{order:2}.site-header nav{order:3}.hero,.product-detail,.page-hero,.band,.breadcrumbs,.section-jump{padding-left:16px;padding-right:16px}.home-hero{min-height:0;padding-top:30px;padding-bottom:30px}.home-hero,.category-hero{border-top:1px solid var(--sf-line)}.hero-pick{grid-template-columns:1fr;padding:12px}.hero-pick-details{padding:0 4px 4px}.hero-proof{grid-template-columns:1fr 1fr}.intent-grid{grid-template-columns:1fr}.home-category-card{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px}.home-category-card>a:first-child{grid-row:1/5;margin:0}.home-category-card img{height:96px}.home-category-card .subcategory-panel,.home-category-card>.button{grid-column:1/-1}.home-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-product-card img{height:108px}.product-grid{grid-template-columns:1fr}.product-card{grid-template-columns:96px minmax(0,1fr)!important}.product-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-tools{padding-left:16px;padding-right:16px}.section-heading{align-items:flex-start}.site-footer{grid-template-columns:1fr 1fr;padding:32px 16px 100px}.site-footer section:first-child{grid-column:1/-1}.prose{font-size:15px}.page-link{min-width:42px;min-height:42px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card{transition:none}}.catalog-stats{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:4px 10px;align-items:baseline;max-width:430px;margin:24px 0}.catalog-stats strong{font-size:28px;color:var(--sf-ink)}.catalog-stats span{color:var(--sf-muted);font-weight:700}.category-directory-intro{max-width:760px;margin:-4px 0 18px;color:var(--sf-muted);line-height:1.55}.department-directory-more{margin-top:18px;border-top:1px solid var(--sf-line);border-bottom:1px solid var(--sf-line);padding:14px 0}.department-directory-more summary{cursor:pointer;color:var(--sf-accent-dark);font-weight:800;list-style-position:inside}.department-directory-more>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;margin-top:14px}.department-directory-more a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--sf-line);border-radius:6px;color:var(--sf-ink);text-decoration:none}.department-directory-more a:hover{border-color:var(--sf-accent);color:var(--sf-accent-dark)}.department-directory-more a span{color:var(--sf-muted);font-size:12px;font-weight:800}.category-subcategories .subcategory-list{max-width:920px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.category-subcategories .subcategory-list a{min-height:42px}.header-menu{position:relative}.header-menu summary{display:inline-flex;align-items:center;gap:7px;cursor:pointer;list-style:none;color:#303633;font-size:13px;font-weight:700;padding:7px 0}.header-menu summary::-webkit-details-marker{display:none}.header-menu summary:after{content:"";width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px)}.header-menu[open] summary:after{transform:rotate(225deg) translate(-1px,-1px)}.header-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:20;display:grid;min-width:240px;gap:4px;padding:12px;background:#fff;border:1px solid var(--sf-line);box-shadow:0 16px 34px rgba(15,23,42,.14)}.header-menu-panel a{display:block;padding:8px 10px;color:var(--sf-ink)!important;text-decoration:none;white-space:nowrap}.header-menu-panel a:hover{background:var(--sf-soft);color:var(--sf-accent-dark)!important}.header-menu-label{margin:0 10px 4px;color:var(--sf-muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.header-menu-all{border-top:1px solid var(--sf-line);margin-top:4px;padding-top:12px!important;color:var(--sf-accent-dark)!important;font-weight:800}.intent-grid{align-items:start}.home-category-card{align-self:start;min-width:0}.home-category-card .category-meta{display:flex!important;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 4px;min-width:0}.home-category-card .category-meta .category-pill{width:auto!important;height:auto!important;min-width:0!important;min-height:0!important;max-width:100%;aspect-ratio:auto!important;display:inline-flex!important;align-items:center;justify-content:flex-start;gap:5px;border:1px solid var(--sf-line);background:var(--sf-soft);color:var(--sf-accent-dark);border-radius:999px!important;padding:5px 8px!important;font-size:11px!important;font-weight:800;line-height:1.15!important;box-shadow:none!important;text-align:left;white-space:nowrap}.home-category-card .category-meta .category-pill .icon{width:13px;height:13px;flex:0 0 13px}@media(max-width:1050px){.home-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media(max-width:700px){.site-header nav{overflow:visible;flex-wrap:wrap;row-gap:8px}.header-menu-panel{position:static;min-width:0;margin:2px 0 4px;padding:8px}.header-menu-panel a{white-space:normal}.home-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.catalog-stats{margin:18px 0}.catalog-stats strong{font-size:22px}.category-directory-intro{margin-top:-8px}.category-subcategories .subcategory-list,.department-directory-more>div{grid-template-columns:1fr}}@media(max-width:560px){.home-product-grid{grid-template-columns:1fr!important}.home-product-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:3px 10px;padding:10px}.home-product-card>a:first-child{grid-row:1/7}.home-product-card>a:first-child img{width:92px;height:104px}.home-product-card .eyebrow,.home-product-card h3,.home-product-card .price,.home-product-card .mini-score,.home-product-card .freshness,.home-product-card>.button{grid-column:2;margin:0}.home-product-card h3{font-size:15px}.home-product-card .price{font-size:18px}.home-product-card>.button{justify-self:start;width:auto;padding:7px 10px;min-height:36px}.department-directory-more{padding:12px 0}}.article-body{max-width:840px;background:#fff;border-top:3px solid var(--sf-accent,#087f5b);font-size:17px;line-height:1.8}.article-body h2{margin-top:34px;padding-top:12px;border-top:1px solid var(--sf-line,#dfe3e2);font-size:26px}.article-body h3{margin-top:26px;font-size:20px}.article-body p,.article-body li{color:#37443f}.article-body a{color:var(--sf-accent-dark,#075f46);font-weight:700;text-decoration:underline;text-decoration-color:#9ab7aa;text-underline-offset:3px}.article-related{background:var(--sf-soft,#f4f7f5)}.article-related .card{border-color:var(--sf-line,#dfe3e2);background:#fff}.article-related .section-heading{margin-bottom:20px}.article-related .evidence-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.article-related .card h3{font-size:18px}.article-related .card .button{margin-top:8px}@media(max-width:700px){.article-body{font-size:16px;line-height:1.7}.article-body h2{font-size:22px}.article-related .evidence-grid{grid-template-columns:1fr}}.contact-form .wide{grid-column:1/-1}.contact-form .consent{display:flex;align-items:flex-start;gap:9px}.contact-form .consent input{width:auto;margin-top:5px}.contact-form .form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.buyer-band{padding-top:18px;padding-bottom:18px}.buyer-intro{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(320px,1fr);align-items:end;gap:40px;margin-bottom:22px}.buyer-intro h2{margin-bottom:0}.buyer-intro>p{max-width:690px;margin:0;color:var(--sf-muted)}.buyer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--sf-line);border-bottom:1px solid var(--sf-line)}.buyer-grid div{display:grid;align-content:start;gap:8px;min-height:130px;padding:24px 20px;border-right:1px solid var(--sf-line)}.buyer-grid div:last-child{border-right:0}.buyer-grid strong{color:var(--sf-ink);font-size:17px}.buyer-grid span{color:var(--sf-muted);font-size:14px;line-height:1.5}@media(max-width:900px){.buyer-intro{grid-template-columns:1fr;gap:10px}.buyer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.buyer-grid div:nth-child(2){border-right:0}.buyer-grid div:nth-child(-n+2){border-bottom:1px solid var(--sf-line)}}@media(max-width:560px){.buyer-grid{grid-template-columns:1fr}.buyer-grid div{min-height:0;border-right:0;border-bottom:1px solid var(--sf-line);padding:18px 0}.buyer-grid div:nth-child(2){border-bottom:1px solid var(--sf-line)}.buyer-grid div:last-child{border-bottom:0}}.brand,.footer-brand{display:inline-flex;align-items:center;gap:10px;width:max-content;text-decoration:none}.brand:before{display:none}.brand-mark{display:block;width:40px;height:40px;flex:0 0 40px}.brand-wordmark{display:inline-flex;align-items:baseline;gap:5px;color:var(--sf-ink);font-size:18px;line-height:1;white-space:nowrap}.brand-wordmark strong{font-size:22px;font-weight:900}.brand-wordmark span{font-weight:650}.footer-brand .brand-wordmark{color:#fff}.footer-brand .brand-mark{width:36px;height:36px;flex-basis:36px;padding:2px;background:#fff;border-radius:4px;box-sizing:border-box}@media(max-width:700px){.brand-mark{width:36px;height:36px;flex-basis:36px}.brand-wordmark{font-size:17px}.brand-wordmark strong{font-size:20px}}.home-category-card{overflow:visible!important;position:relative;z-index:1}.home-category-card:has(.subcategory-panel[open]){z-index:30}.subcategory-panel{position:relative;overflow:visible!important}.subcategory-panel summary{position:relative;z-index:2}.subcategory-flyout{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:40;min-width:240px;padding:10px;background:#fff;border:1px solid var(--sf-line);box-shadow:0 18px 42px rgba(15,23,42,.18)!important;opacity:0;transform:translateY(-8px) scale(.98);transform-origin:top center;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.subcategory-panel[open] .subcategory-flyout{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.subcategory-flyout .subcategory-list{padding:0!important}.subcategory-flyout .subcategory-empty{margin:0!important}.gallery{position:relative}.gallery .product-media{cursor:zoom-in;transition:transform .18s ease,box-shadow .18s ease}.gallery .product-media:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(15,23,42,.1)!important}.gallery .product-media img{transition:opacity .16s ease,transform .22s ease}.gallery.is-switching .product-media img{opacity:.25;transform:scale(.96)}.gallery-zoom{position:absolute;right:12px;top:12px;z-index:3;border:1px solid var(--sf-line);background:rgba(255,255,255,.92);color:var(--sf-accent-dark);border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(15,23,42,.1)}.gallery-zoom:hover{border-color:var(--sf-accent);background:#fff}.thumbs{grid-template-columns:repeat(6,minmax(0,1fr));align-items:center}.gallery-thumb{border:1px solid transparent;background:#fff;border-radius:4px;padding:4px;cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.gallery-thumb img{width:100%;height:72px;object-fit:contain;border:0!important;border-radius:3px}.gallery-thumb:hover,.gallery-thumb.is-active{border-color:var(--sf-accent);transform:translateY(-2px);box-shadow:0 10px 22px rgba(8,127,91,.14)}.image-lightbox{position:fixed;inset:0;z-index:2147483600;display:grid;place-items:center;padding:34px;background:rgba(15,23,42,.72);opacity:0;transition:opacity .18s ease}.image-lightbox.is-visible{opacity:1}.image-lightbox img{max-width:min(1100px,92vw);max-height:88vh;object-fit:contain;background:#fff;border-radius:6px;box-shadow:0 28px 90px rgba(0,0,0,.35);transform:scale(.96);transition:transform .2s ease}.image-lightbox.is-visible img{transform:scale(1)}.image-lightbox-close{position:fixed;right:22px;top:18px;width:42px;height:42px;border:0;border-radius:999px;background:#fff;color:#111827;font-size:30px;line-height:1;cursor:pointer}.image-lightbox-open{overflow:hidden}@media(max-width:700px){.subcategory-flyout{position:absolute;min-width:min(86vw,320px)}.thumbs{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-thumb img{height:64px}.gallery-zoom{position:static;width:100%;margin:8px 0 0}.image-lightbox{padding:18px}.image-lightbox-close{right:12px;top:12px}}@media(prefers-reduced-motion:reduce){.subcategory-flyout,.gallery .product-media,.gallery .product-media img,.gallery-thumb,.image-lightbox,.image-lightbox img{transition:none!important}}.product-media.product-media-hover,.home-product-media.product-media-hover{position:relative;overflow:hidden;touch-action:pan-y;-webkit-user-select:none;user-select:none}.product-media-stack{position:relative;display:grid;place-items:center;width:100%}.product-media-stack img{grid-area:1/1;-webkit-user-drag:none}.product-primary-image{z-index:1}.product-secondary-image{display:none!important;z-index:2;pointer-events:none}.product-secondary-image.hover{display:none!important}.product-secondary-images-nav{list-style:none;position:absolute;left:0;bottom:6px;width:100%;display:flex;margin:0;padding:0;z-index:20;opacity:0;pointer-events:none;justify-content:center;gap:5px;transition:opacity .22s linear}.product-media-hover:hover .product-secondary-images-nav{opacity:1}@media(hover:none),(pointer:coarse){.product-secondary-images-nav{opacity:1}}.product-secondary-images-nav li{width:6px;height:6px;border-radius:3px;background:rgba(255,255,255,.95);box-shadow:0 0 0 1px rgba(23,26,29,.2);opacity:.65;transition:opacity .22s ease,background .22s ease}.product-secondary-images-nav li.active{opacity:1;background:var(--sf-accent,#087f5b);box-shadow:0 0 0 1px var(--sf-accent,#087f5b)}.home-product-card .home-product-media{display:grid;place-items:center}.home-product-card .home-product-media .product-media-stack{width:100%}@media(min-width:901px){.product-card{grid-template-columns:200px minmax(0,1fr)!important}.product-card-media .product-media{min-height:0!important}.product-card-media .product-media img{height:176px}}@media(max-width:560px){.product-card{grid-template-columns:120px minmax(0,1fr)!important}.product-card-media .product-media img{height:112px}}@media(prefers-reduced-motion:reduce){.product-secondary-images-nav,.product-secondary-images-nav li{transition:none!important}}
/* bundled: storefront-theme.css */
@charset "UTF-8";
/* ==========================================================================
   DPJ Wholesale · 前台主题 · 基础与全站外框
   --------------------------------------------------------------------------
   背景：前台样式此前由 StorefrontRenderer 内联拼接 15 层 CSS，层与层互相覆盖，
   且 :root 里存在两套冲突的调色板（蓝色 #1f5a96 与绿色 #087f5b），导致页眉导航
   在英文长类目名下换行错乱、间距与字阶不统一。

   本文件由 page() 在内联 <style> 之后以 <link> 引入，同优先级下凭"后加载"稳定取胜。
   要覆盖旧层里带 !important 的声明时，本文件显式使用 !important 并就近注释原因。

   文件划分（每个 ≤600 行）：
   - storefront-theme.css（本文件）：设计令牌、基础版式、页眉、页脚、按钮、表单
   - storefront-home.css：首页专属板块（主视觉、买家条、分类与商品栅格、卡片）
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 设计令牌（Design tokens）
   重定义旧层同名变量 → 整站调色板一次性收口为"墨黑 + 品牌绿"体系。
   -------------------------------------------------------------------------- */
:root {
  /* 文本 */
  --sf-ink: #16191c;          /* 主标题 / 深色文本 */
  --sf-ink-soft: #3f474b;     /* 正文 */
  --sf-muted: #6d767a;        /* 次要说明、元信息 */
  --sf-faint: #98a1a5;        /* 更弱的提示 */

  /* 品牌绿（沿用前台既有识别色，统一深浅档位） */
  --sf-accent: #0b7a53;
  --sf-accent-dark: #08603f;
  --sf-accent-soft: #e9f4ee;
  --sf-accent-line: #cfe6db;

  /* 兼容旧层引用（旧层把 --sf-blue/--sf-teal 当品牌色用，这里统一指向品牌绿） */
  --sf-blue: #0b7a53;
  --sf-teal: #0b7a53;
  --sf-gold: #9a6b1f;

  /* 表面与描边 */
  --sf-surface: #ffffff;
  --sf-canvas: #ffffff;
  --sf-soft: #f5f8f6;
  --sf-panel: #f5f8f6;
  --sf-warm: #f7f1e6;
  --sf-line: #e2e7e4;
  --sf-line-soft: #eef1ef;

  /* 圆角 */
  --sf-radius-xs: 4px;
  --sf-radius-sm: 6px;
  --sf-radius: 8px;
  --sf-radius-lg: 12px;
  --sf-pill: 999px;

  /* 版心与栅格 */
  --sf-container: 1240px;
  --sf-gutter: 32px;

  /* 阴影（分层，避免"到处都是重投影"） */
  --sf-shadow-xs: 0 1px 2px rgba(18, 26, 32, .05);
  --sf-shadow-sm: 0 2px 8px rgba(18, 26, 32, .06);
  --sf-shadow-md: 0 10px 28px rgba(18, 26, 32, .10);
  --sf-shadow-lg: 0 18px 48px rgba(18, 26, 32, .16);

  /* 动效 */
  --sf-ease: cubic-bezier(.22, .61, .36, 1);
  --sf-fast: .15s;
  --sf-base: .22s;
  --sf-slow: .34s;

  /* 字体栈：不引入 Web Font，直接用系统字体，零网络开销且各平台观感现代 */
  --sf-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
    "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  --sf-font-display: var(--sf-font);
}

/* --------------------------------------------------------------------------
   2. 基础重置与版式
   -------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--sf-font);
  font-size: 16px;
  line-height: 1.6;
  color: var(--sf-ink-soft);
  background: var(--sf-canvas);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; height: auto; }

/* 字阶：标题用更深字重 + 收紧字距，形成清晰视觉层次 */
h1, h2, h3, h4 {
  margin: 0 0 .5em;
  font-family: var(--sf-font-display);
  color: var(--sf-ink);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -.015em;
}

h1 { font-size: clamp(28px, 4vw, 46px); line-height: 1.1; }
h2 { font-size: clamp(21px, 2.3vw, 30px); }
h3 { font-size: 17px; font-weight: 750; line-height: 1.35; letter-spacing: -.005em; }

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--sf-accent-dark); text-decoration: none; }
a:hover { color: var(--sf-accent); }

/* 只有键盘导航才显示焦点环，鼠标点击不出现，兼顾可访问性与观感 */
:focus-visible {
  outline: 2px solid var(--sf-accent);
  outline-offset: 2px;
  border-radius: var(--sf-radius-xs);
}

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

/* 跳转到主内容：键盘用户第一个 Tab 命中 */
.skip-link {
  position: absolute;
  left: 50%; top: 0;
  transform: translate(-50%, -120%);
  z-index: 200;
  padding: 10px 18px;
  background: var(--sf-ink);
  color: #fff;
  border-radius: 0 0 var(--sf-radius-sm) var(--sf-radius-sm);
  font-size: 14px;
  font-weight: 700;
  transition: transform var(--sf-fast) var(--sf-ease);
}
.skip-link:focus, .skip-link:focus-visible { transform: translate(-50%, 0); color: #fff; }

/* 通栏容器：所有 section 共用同一版心与左右留白 */
.band,
.hero,
.page-hero,
.product-detail,
.breadcrumbs,
.section-jump,
.category-tools {
  width: 100%;
  max-width: var(--sf-container);
  margin-inline: auto;
  padding-inline: var(--sf-gutter);
}

/* 通用文本件 */
.eyebrow {
  margin: 0 0 8px;
  color: var(--sf-accent-dark);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.freshness,
.updated { color: var(--sf-muted); font-size: 13px; }
.price {
  margin: 6px 0 8px;
  color: var(--sf-ink);
  font-size: 19px;
  font-weight: 850;
  letter-spacing: -.01em;
}
.mini-score { margin: 0 0 6px; color: var(--sf-muted); font-size: 13px; }

/* --------------------------------------------------------------------------
   3. 公告条
   -------------------------------------------------------------------------- */
.announcement {
  padding: 7px 24px;
  background: var(--sf-ink);
  color: #f1f4f2;
  text-align: center;
  font-size: 12.5px;
  letter-spacing: .01em;
}

/* --------------------------------------------------------------------------
   4. 页眉（品牌 / 搜索 / 导航，单行栅格，永不换行错乱）
   旧实现把 8 个长英文类目名平铺进 flex 容器，窄屏必然折成多行且右对齐参差；
   现改为「Departments + Help」两个下拉菜单，结构稳定、观感克制。
   -------------------------------------------------------------------------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 90;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: "brand search nav";
  align-items: center;
  gap: clamp(16px, 2.4vw, 40px);
  /* 左右留白与 .band/.hero 的版心内容边缘严格对齐（否则页眉会比正文宽出 32px） */
  padding: 12px max(var(--sf-gutter), calc((100vw - var(--sf-container)) / 2 + var(--sf-gutter)));
  background: rgba(255, 255, 255, .94);
  backdrop-filter: saturate(1.6) blur(10px);
  border-bottom: 1px solid var(--sf-line);
  box-shadow: none;
}

/* 品牌区 */
.site-header .brand { grid-area: brand; }
.brand,
.footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: max-content;
  text-decoration: none;
}
.brand:before { display: none; }               /* 关闭旧层的装饰方块 */
.brand-mark { display: block; width: 38px; height: 38px; flex: 0 0 38px; }
.brand-wordmark {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  color: var(--sf-ink);
  font-size: 17px;
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
}
.brand-wordmark strong { font-size: 21px; font-weight: 900; letter-spacing: -.02em; }

/* 搜索表单 */
.site-header .site-search { grid-area: search; }
.site-search {
  display: flex;
  min-width: 0;
  max-width: 520px;
  width: 100%;
  justify-self: start;
}
.site-search input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 10px 14px;
  font-size: 14px;
  font-family: inherit;
  color: var(--sf-ink);
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-right: 0;
  border-radius: var(--sf-radius-sm) 0 0 var(--sf-radius-sm);
  transition: border-color var(--sf-fast) var(--sf-ease), box-shadow var(--sf-fast) var(--sf-ease);
}
.site-search input::placeholder { color: var(--sf-faint); }
.site-search input:focus {
  outline: none;
  border-color: var(--sf-accent);
  box-shadow: inset 0 0 0 1px var(--sf-accent);
}
.site-search button {
  flex: 0 0 auto;
  min-width: 84px;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  color: #fff;
  background: var(--sf-accent);
  border: 1px solid var(--sf-accent);
  border-radius: 0 var(--sf-radius-sm) var(--sf-radius-sm) 0;
  cursor: pointer;
  transition: background var(--sf-fast) var(--sf-ease);
}
.site-search button:hover { background: var(--sf-accent-dark); border-color: var(--sf-accent-dark); }

/* 导航区：两个下拉菜单 */
.site-header > nav {
  grid-area: nav;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  justify-content: flex-end;
  overflow: visible;
  padding-bottom: 0;
}

.header-menu { position: relative; }

.header-menu > summary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 12px;
  color: var(--sf-ink);
  font-size: 13.5px;
  font-weight: 700;
  list-style: none;
  cursor: pointer;
  border-radius: var(--sf-radius-sm);
  transition: background var(--sf-fast) var(--sf-ease), color var(--sf-fast) var(--sf-ease);
}
.header-menu > summary::-webkit-details-marker { display: none; }
.header-menu > summary::marker { content: ""; }
.header-menu > summary:hover { background: var(--sf-soft); color: var(--sf-accent-dark); }
.header-menu > summary:after {
  content: "";
  width: 6px; height: 6px;
  border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor;
  transform: rotate(45deg) translate(-2px, -2px);
  transition: transform var(--sf-base) var(--sf-ease);
}
.header-menu[open] > summary:after { transform: rotate(225deg) translate(-1px, -1px); }

/* 下拉面板
   注意：<details> 关闭时其内容由浏览器置为不渲染（等价 display:none），
   因此这里不能用 transition 做入场（关闭态没有可过渡的起始计算样式），
   改用 keyframes —— 元素重新参与渲染时动画会重新播放，效果稳定。 */
.header-menu > .header-menu-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  z-index: 120;
  display: grid;
  gap: 2px;
  min-width: 268px;
  max-width: min(92vw, 680px);
  max-height: min(72vh, 560px);
  overflow: auto;
  padding: 10px;
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: var(--sf-radius);
  box-shadow: var(--sf-shadow-lg);
}
.header-menu[open] > .header-menu-panel {
  animation: sf-panel-in var(--sf-base) var(--sf-ease) both;
}
@keyframes sf-panel-in { from { opacity: 0; transform: translateY(-6px) scale(.99); } to { opacity: 1; transform: none; } }

/* 页眉工具入口：直接列出公司/政策页面（原 Departments 下拉已移除，
   类目导航由首页左栏 .hero-departments 承担）。 */
.header-utility {
  display: flex;
  align-items: center;
  flex-wrap: wrap;                               /* 窄屏自动换行，避免撑出横向滚动条 */
  gap: clamp(12px, 1.4vw, 18px);
}
.header-utility a {
  color: var(--sf-ink-soft);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--sf-fast) var(--sf-ease);
}
.header-utility a:hover { color: var(--sf-accent-dark); }

.header-menu-panel a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  color: var(--sf-ink) !important;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  border-radius: var(--sf-radius-xs);
  transition: background var(--sf-fast) var(--sf-ease), color var(--sf-fast) var(--sf-ease);
}
.header-menu-panel a:hover {
  background: var(--sf-soft);
  color: var(--sf-accent-dark) !important;
  text-decoration: none;
}
.header-menu-panel a small { color: var(--sf-muted); font-weight: 650; font-size: 12px; }

/* --------------------------------------------------------------------------
   5. 面包屑
   首页只有 "Home" 一级，属冗余信息 → 只在首页隐藏（:has 退化时仍可见，不影响功能）。
   -------------------------------------------------------------------------- */
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding-top: 16px;
  padding-bottom: 4px;
  color: var(--sf-muted);
  font-size: 13.5px;
}
.breadcrumbs span { color: var(--sf-faint); } .breadcrumbs a { color: var(--sf-muted); } .breadcrumbs a:hover { color: var(--sf-accent-dark); }
.breadcrumbs:has(+ .home-hero) { display: none; }

/* --------------------------------------------------------------------------
   6. 按钮
   统一为两种：主按钮（品牌绿实心）与次按钮（描边）。三态齐全，过渡克制。
   -------------------------------------------------------------------------- */
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: auto;
  min-height: 44px;
  padding: 11px 20px;
  font-family: inherit;
  font-size: 14.5px;
  font-weight: 750;
  line-height: 1;
  color: #fff;
  background: var(--sf-accent);
  border: 1px solid var(--sf-accent);
  border-radius: var(--sf-radius-sm);
  box-shadow: none;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--sf-fast) var(--sf-ease),
    border-color var(--sf-fast) var(--sf-ease),
    transform var(--sf-fast) var(--sf-ease),
    box-shadow var(--sf-fast) var(--sf-ease);
}
.button:hover {
  background: var(--sf-accent-dark);
  border-color: var(--sf-accent-dark);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: var(--sf-shadow-sm);
  text-decoration: none;
}
.button:active { transform: translateY(0); box-shadow: none; }
.button.secondary {
  color: var(--sf-ink);
  background: var(--sf-surface);
  border-color: var(--sf-line);
  box-shadow: none;
}
.button.secondary:hover {
  color: var(--sf-accent-dark);
  background: var(--sf-accent-soft);
  border-color: var(--sf-accent-line);
}
.text-link { color: var(--sf-accent-dark); font-weight: 750; } .text-link:hover { color: var(--sf-accent); text-decoration: underline; }

/* --------------------------------------------------------------------------
   7. 表单控件（页眉搜索、页脚订阅、询盘表单共用一套外观）
   -------------------------------------------------------------------------- */
.contact-form input, .contact-form textarea, .contact-form select, .newsletter input,
.site-footer input, .filter-grid select, .purchase-controls input, .purchase-controls select {
  width: 100%;
  padding: 10px 12px;
  font-family: inherit;
  font-size: 14px;
  color: var(--sf-ink);
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: var(--sf-radius-sm);
  transition: border-color var(--sf-fast) var(--sf-ease), box-shadow var(--sf-fast) var(--sf-ease);
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus,
.newsletter input:focus, .site-footer input:focus, .filter-grid select:focus,
.purchase-controls input:focus, .purchase-controls select:focus {
  outline: none;
  border-color: var(--sf-accent);
  box-shadow: 0 0 0 3px var(--sf-accent-soft);
}
.site-footer button {
  padding: 10px 18px;
  font-family: inherit;
  font-weight: 700;
  color: #fff;
  background: var(--sf-accent);
  border: 1px solid var(--sf-accent);
  border-radius: var(--sf-radius-sm);
  cursor: pointer;
}
.site-footer button:hover { background: var(--sf-accent-dark); }

/* --------------------------------------------------------------------------
   8. 页脚
   -------------------------------------------------------------------------- */
.site-footer {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr;
  gap: 40px;
  margin-top: 24px;
  padding: 52px max(var(--sf-gutter), calc((100vw - var(--sf-container)) / 2 + var(--sf-gutter))) 44px;
  background: var(--sf-ink);
  color: #b9c1bd;
}
.site-footer h2 {
  margin: 0 0 14px;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.site-footer p { color: #9aa39f; font-size: 14.5px; max-width: 42ch; }
.site-footer a { display: block; margin: 9px 0; color: #cfd7d3; font-size: 14.5px; }
.site-footer a:hover { color: #fff; text-decoration: none; }
.footer-brand { margin-bottom: 14px; }
.footer-brand .brand-wordmark { color: #fff; }
.footer-brand .brand-mark {
  width: 36px;
  height: 36px;
  flex-basis: 36px;
  padding: 3px;
  background: #fff;
  border-radius: var(--sf-radius-xs);
}

/* --------------------------------------------------------------------------
   9. 响应式（外框部分）
   断点与旧层保持一致（1050 / 900 / 700 / 560），避免出现"层与层用到不同断点"。
   -------------------------------------------------------------------------- */
@media (max-width: 1050px) {
  :root { --sf-gutter: 24px; }
}

@media (max-width: 900px) {
  .site-header {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "brand nav" "search search";
    row-gap: 10px;
  }
  .site-search { max-width: none; }
  .site-header > nav { flex-wrap: wrap; row-gap: 6px; }
}

@media (max-width: 700px) {
  :root { --sf-gutter: 16px; }
  .site-header {
    position: static;                            /* 移动端不吸顶，给内容让出高度 */
    gap: 10px;
    padding: 12px 16px;
  }
  .site-header > nav { justify-content: flex-end; }
  /* 浮层改为就地展开，避免小屏遮挡内容 */
  .header-menu > .header-menu-panel {
    position: static;
    min-width: 0;
    width: 100%;
    max-width: none;
    margin-top: 6px;
    box-shadow: none;
    transform: none;
  }
  .header-menu-panel a { white-space: normal; }
  .site-footer {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    padding: 40px 16px 90px;                     /* 底部留白避开客服浮窗 */
  }
  .site-footer section:first-child { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .site-header { grid-template-columns: 1fr; grid-template-areas: "brand" "search" "nav"; }
  .site-header > nav { justify-content: flex-start; }
  .site-footer { grid-template-columns: 1fr; }
}

/* --------------------------------------------------------------------------
   10. 动效降级
   尊重系统「减少动态效果」设置：只保留必要的即时状态变化。
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .button:hover { transform: none; }
}

/* bundled: storefront-home.css */
@charset "UTF-8";
/* ==========================================================================
   DPJ Wholesale · 前台主题 · 首页板块
   --------------------------------------------------------------------------
   只承载首页专属区块：主视觉、买家说明条、分类栅格与目录、商品栅格与卡片。
   设计令牌与页眉页脚等全站外框见 storefront-theme.css；本文件在其后加载，
   因此对旧内联层的同特异性声明同样凭"后加载"取胜。

   与旧层的冲突处理原则：
   - 旧层用 !important 锁死的属性（卡片圆角/阴影、商品栅格列数），
     这里也显式 !important，并就近注释，避免"改了没生效"的隐性问题。
   - 旧层用 `.home-product-card>a:first-child`（特异性 0,2,1）写的封面描边，
     这里用 `> a.home-product-media` 取同特异性靠后加载取胜。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 首页主视觉（Hero）
   -------------------------------------------------------------------------- */
/* 首页主视觉：左栏 = 商品分类导航（首屏可见），右栏 = 文案 + 推荐商品。
   两栏布局把原来独占一屏下方整条的分类区块收进首屏，纵向高度因此省出一整段。 */
.home-hero {
  display: grid;
  /* 左栏最小值要 ≥320px：一级分类名最长需 172px，扣掉缩略图/展开按钮/间距后
     316px 会把 "Tools & Home Improvement" 截断（用户截图反馈）。 */
  grid-template-columns: minmax(320px, 344px) minmax(0, 1fr);
  gap: clamp(20px, 2.4vw, 36px);
  align-items: start;
  padding-block: clamp(20px, 2.2vw, 34px);
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: var(--sf-surface);
  min-height: 0;
}
.home-hero:before { display: none; }           /* 关闭旧层的网格纹理 */

.hero-main {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(288px, .96fr);
  gap: clamp(22px, 2.6vw, 40px);
  /* stretch：文案列与精选卡等高，文案内部再用 space-between 把
     eyebrow/标题/摘要（上）、数据（中）、按钮（下）撑满整列。
     旧层把 .hero-copy 设成 justify-content:center，会让文案块悬在
     列中间、上下各留一截空白（用户截图反馈的"很多留白"）。 */
  align-items: stretch;
}

.hero-copy {
  position: relative;
  /* 与左栏/精选卡等高：标题块贴顶，操作按钮压到底（与精选卡的 View product 对齐），
     中间只留一段呼吸，而不是上下各留一截空白。 */
  justify-content: space-between;
}
.hero-copy-lead { display: flex; flex-direction: column; }
.hero-copy-lead > .eyebrow { margin-bottom: 12px; }
/* 底部单元：数据 + 主行动按钮贴底，与精选卡的 View product 形成一条基准线 */
.hero-copy-foot { display: flex; flex-direction: column; gap: 18px; }
.hero-copy-foot .catalog-stats { margin: 0; }
/* 精选卡按自身高度贴顶，不被 stretch 拉长 */
.hero-pick { align-self: start; }
.home-hero h1 { margin-bottom: 16px; }

.hero-summary,
.hero-copy > p:not(.eyebrow):first-of-type {
  max-width: 620px;
  font-size: 17px;
  line-height: 1.68;
  color: var(--sf-ink-soft);
}

/* 商品数 / 类目数：内联数据条，用粗体数字承担视觉重点 */
.catalog-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
  margin: 24px 0 28px;
  padding: 0;
}
.catalog-stats strong {
  color: var(--sf-ink);
  font-size: 26px;
  font-weight: 850;
  letter-spacing: -.02em;
}
.catalog-stats span { color: var(--sf-muted); font-size: 13.5px; font-weight: 600; }
.catalog-stats span + strong { margin-left: 16px; }

.actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* 右侧推荐商品卡 */
.hero-pick {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 14px;
  background: var(--sf-soft);
  border: 1px solid var(--sf-line);
  /* 旧层用 !important 把卡片圆角锁成 4px、阴影锁成 none，这里必须同样提权才能接管 */
  border-radius: var(--sf-radius-lg) !important;
  box-shadow: var(--sf-shadow-sm) !important;
}
.hero-pick .product-media {
  margin: 0;
  border: 0;
  border-radius: var(--sf-radius);
  background: var(--sf-surface);
}
.hero-pick .product-media img {
  /* 高度让精选卡与左栏（12 行 ≈640px）基本等高：右侧不再比左栏矮一截，
     也不会高出一段把文案列拉长、在文案内部留下空洞 */
  height: 225px;
  width: 100%;
  object-fit: contain;
  display: block;
  margin: auto;
  padding: 12px;
}
.hero-pick .product-media figcaption {
  padding: 0 12px 10px;
  color: var(--sf-muted);
  font-size: 11.5px;
  text-align: center;
}
.hero-pick-details {
  margin-top: 12px;
  padding: 16px 8px 6px;
  border-top: 1px solid var(--sf-line);
}
.hero-pick-details h2 { margin: 6px 0 10px; font-size: 20px; }
.hero-pick-details .price { margin: 0 0 8px; font-size: 22px; }
.hero-pick-details .button { margin-top: 14px; width: 100%; }

/* --------------------------------------------------------------------------
   2. 区块与区块标题
   -------------------------------------------------------------------------- */
.band { padding-block: clamp(32px, 4vw, 56px); }

.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--sf-line);
}
.section-heading h2 { margin-bottom: 0; }
.section-heading .eyebrow { margin-bottom: 6px; }
.section-heading .text-link,
.section-heading .freshness { padding-bottom: 4px; white-space: nowrap; }

.category-directory-intro {
  max-width: 760px;
  margin: -6px 0 24px;
  color: var(--sf-muted);
  font-size: 15px;
}

/* --------------------------------------------------------------------------
   3. 买家类型条（Built for resale）
   -------------------------------------------------------------------------- */
.buyer-band {
  border-top: 1px solid var(--sf-line);
  border-bottom: 1px solid var(--sf-line);
}
.buyer-intro {
  display: grid;
  grid-template-columns: minmax(240px, .72fr) minmax(320px, 1fr);
  gap: clamp(20px, 3vw, 48px);
  align-items: end;
  margin-bottom: 28px;
}
.buyer-intro p { margin: 0; color: var(--sf-ink-soft); font-size: 16px; }
.buyer-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--sf-line);
}
.buyer-grid > div {
  padding: 22px 22px 22px 0;
  border-right: 1px solid var(--sf-line);
}
.buyer-grid > div:last-child { border-right: 0; }
.buyer-grid > div:not(:first-child) { padding-left: 22px; }
.buyer-grid strong {
  display: block;
  margin-bottom: 6px;
  color: var(--sf-ink);
  font-size: 15.5px;
  font-weight: 800;
}
.buyer-grid span { color: var(--sf-muted); font-size: 14px; line-height: 1.55; }

/* --------------------------------------------------------------------------
   4. 分类卡片栅格与目录
   -------------------------------------------------------------------------- */
.intent-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: 18px;
  margin: 0;
}

.home-category-card {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px;
  overflow: visible !important;                 /* 子类目浮层需要溢出可见 */
}
.home-category-card:hover { z-index: 30; }

.home-category-card > a:first-child {
  display: grid;
  place-items: center;
  margin: 0 0 10px;
  padding: 8px;
  border: 1px solid var(--sf-line-soft);
  border-radius: var(--sf-radius);
  background: var(--sf-soft);
}
.home-category-card > a:first-child img {
  width: 100%;
  height: 132px;
  object-fit: contain;
  border-radius: var(--sf-radius-xs);
  background: transparent;
  transition: transform var(--sf-slow) var(--sf-ease);
}
.home-category-card:hover > a:first-child img { transform: scale(1.045); }

.home-category-card h3 { margin: 0; min-height: 0; font-size: 16.5px; }
.home-category-card h3 a { color: var(--sf-ink); }
.home-category-card h3 a:hover { color: var(--sf-accent-dark); text-decoration: none; }
.home-category-card .button { margin-top: auto; }

.category-meta { display: flex !important; flex-wrap: wrap; gap: 6px; margin: 0 0 6px; }
.category-meta span,
.category-pill {
  display: inline-flex !important;
  align-items: center;
  gap: 5px;
  width: auto !important;
  height: auto !important;
  padding: 5px 9px !important;
  color: var(--sf-accent-dark);
  background: var(--sf-accent-soft);
  border: 1px solid var(--sf-accent-line) !important;
  border-radius: var(--sf-pill) !important;
  font-size: 11.5px;
  font-weight: 750;
  line-height: 1.2;
}
.category-pill .icon { width: 13px; height: 13px; }

/* 子类目浮层（展开面板由旧层的内联样式定位，这里只保证视觉一致） */
.subcategory-panel { position: relative; overflow: visible !important; }
.subcategory-panel > summary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  color: var(--sf-ink-soft);
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: var(--sf-radius-xs);
  font-size: 12.5px;
  font-weight: 700;
  list-style: none;
  cursor: pointer;
  transition: border-color var(--sf-fast) var(--sf-ease), background var(--sf-fast) var(--sf-ease);
}
.subcategory-panel > summary::-webkit-details-marker { display: none; }
.subcategory-panel > summary::marker { content: ""; }
.subcategory-panel > summary:hover { border-color: var(--sf-accent-line); background: var(--sf-accent-soft); }
.subcategory-panel > summary strong { color: var(--sf-muted); font-weight: 750; }

/* 完整类目目录（details 折叠） */
.department-directory-more { margin-top: 22px; }
.department-directory-more > summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  color: var(--sf-accent-dark);
  background: var(--sf-accent-soft);
  border: 1px solid var(--sf-accent-line);
  border-radius: var(--sf-radius-sm);
  font-size: 14px;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}
.department-directory-more > summary::-webkit-details-marker { display: none; }
.department-directory-more > summary::marker { content: ""; }
.department-directory-more > div {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 4px;
  margin-top: 14px;
  padding: 14px;
  background: var(--sf-soft);
  border: 1px solid var(--sf-line);
  border-radius: var(--sf-radius);
}
.department-directory-more a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  color: var(--sf-ink-soft);
  font-size: 14px;
  border-radius: var(--sf-radius-xs);
}
.department-directory-more a:hover { background: var(--sf-surface); color: var(--sf-accent-dark); text-decoration: none; }
.department-directory-more a span { color: var(--sf-muted); font-size: 12.5px; }


/* --------------------------------------------------------------------------
   5. 商品栅格与卡片
   -------------------------------------------------------------------------- */
.home-product-grid {
  display: grid;
  /* 旧层在 1050/700/560 三档都用 !important 写了列数，这里同步提权 */
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
  gap: 18px;
  margin: 0;
}

.card {
  padding: 14px;
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: var(--sf-radius) !important;    /* 覆盖旧层 border-radius:4px!important */
  box-shadow: var(--sf-shadow-xs) !important;   /* 覆盖旧层 box-shadow:none!important */
  transition: border-color var(--sf-base) var(--sf-ease),
    box-shadow var(--sf-base) var(--sf-ease),
    transform var(--sf-base) var(--sf-ease);
}
.card:hover {
  transform: translateY(-3px);
  border-color: var(--sf-accent-line);
  box-shadow: var(--sf-shadow-md) !important;
}

.home-product-card,
.home-category-card,
.recommendation-card { position: relative; }
/* 关闭旧层在卡片左上角画的渐变短横线 */
.home-product-card:before,
.home-category-card:before,
.recommendation-card:before { display: none; }

.home-product-card { display: flex; flex-direction: column; gap: 0; }

/* 商品卡封面：旧层用 `.home-product-card>a:first-child`（特异性 0,2,1）设置描边与内边距，
   这里用 `> a.home-product-media` 取同特异性并靠后加载取胜，避免旧的浅蓝描边残留。 */
.home-product-card > a.home-product-media {
  display: block;
  margin: 0 0 12px;
  padding: 0;
  border: 1px solid var(--sf-line-soft);
  border-radius: var(--sf-radius);
  background: var(--sf-soft);
  overflow: hidden;
}
.home-product-media img,
.home-product-card img {
  width: 100%;
  height: 172px;
  object-fit: contain;
  display: block;
  padding: 10px;
  background: transparent;
  border-radius: 0;
  transition: transform var(--sf-slow) var(--sf-ease);
}
.home-product-card:hover .home-product-media img { transform: scale(1.05); }

/* 多图堆叠容器：主图铺满，副图悬停切换（交互逻辑由内联脚本驱动） */
.product-media-stack { position: relative; display: block; width: 100%; height: 172px; }
.product-media-stack .product-primary-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.home-product-card .eyebrow { margin: 0 0 6px; font-size: 11px; }
.home-product-card h3 { margin: 0 0 6px; font-size: 15.5px; }
.home-product-card h3 a { color: var(--sf-ink); }
.home-product-card h3 a:hover { color: var(--sf-accent-dark); text-decoration: none; }
.home-product-card .price { margin: 0 0 4px; font-size: 17px; }
.home-product-card .mini-score { margin: 0 0 4px; font-size: 12.5px; }
.home-product-card .freshness {
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.35;
  color: var(--sf-muted);
}
.home-product-card .button { margin-top: auto; width: 100%; }

/* --------------------------------------------------------------------------
   6. 响应式（首页部分）
   -------------------------------------------------------------------------- */
@media (max-width: 1200px) {
  /* 窄下来之后左栏也不能低于 300px，否则又回到截断问题 */
  .home-hero { grid-template-columns: minmax(300px, 312px) minmax(0, 1fr); gap: 22px; }
  .hero-main { grid-template-columns: minmax(0, 1fr) minmax(248px, .84fr); gap: 20px; }
  .hero-pick .product-media img { height: 260px; }
}

/* 左栏 + 右双栏已经放不下时改为上下堆叠：分类栏仍在首屏最上方。
   （分类栏自身的响应式规则在 storefront-departments.css，那里加载更晚，
     同特异性的媒体规则必须跟在自己的基础规则之后才不会被覆盖。） */
@media (max-width: 980px) {
  .home-hero { grid-template-columns: 1fr; gap: 26px; }
}

@media (max-width: 1050px) {
  .buyer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .buyer-grid > div:nth-child(2n) { border-right: 0; }
  .buyer-grid > div:nth-child(n + 3) { border-top: 1px solid var(--sf-line); }
  .home-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

@media (max-width: 900px) {
  .buyer-intro { grid-template-columns: 1fr; align-items: start; gap: 12px; }
  .hero-summary,
  .hero-copy > p:not(.eyebrow):first-of-type { font-size: 16px; }
}

@media (max-width: 700px) {
  .home-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 10px; }
  .catalog-stats strong { font-size: 22px; }
  .hero-main { grid-template-columns: 1fr; gap: 20px; }
}

@media (max-width: 560px) {
  .home-product-grid { grid-template-columns: 1fr !important; }
  .buyer-grid { grid-template-columns: 1fr; }
  .buyer-grid > div { padding: 16px 0 !important; border-right: 0; border-top: 1px solid var(--sf-line); }
  .buyer-grid > div:first-child { border-top: 0; }
  .actions .button { width: 100%; }
  .hero-pick .product-media img { height: 200px; }
}

/* --------------------------------------------------------------------------
   7. 动效降级
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .card:hover { transform: none; }
  .home-product-card:hover .home-product-media img,
  .home-category-card:hover > a:first-child img { transform: none; }
}

/* bundled: storefront-departments.css */
@charset "UTF-8";
/* ==========================================================================
   DPJ Wholesale · 前台主题 · 首屏左侧分类栏
   --------------------------------------------------------------------------
   首页首屏左栏的商品分类模块：一级分类行式列表 + 二级/三级右展浮层。
   从 storefront-home.css 拆出（该文件有 600 行上限），在 storefront-home.css
   之后加载，只覆盖与首屏左栏相关的选择器。

   层级表达：
   - 一级：左栏每一行（缩略图 + 名称 + 计数 + 展开按钮）
   - 二级：行右侧浮层里的卡片列表，带商品数徽标
   - 三级：二级卡片下方缩进列表，左侧细竖线标识从属关系
   ========================================================================== */

/* --------------------------------------------------------------------------
   4b. 首屏左侧分类栏（一级行内列表 + 二级/三级右展浮层）
   --------------------------------------------------------------------------
   与下方分类栅格共用同一套卡片标记（.home-category-card），这里只把它压缩成
   单列行式列表：一级分类一行一个（缩略图 + 名称 + 计数 + 展开按钮），
   二级/三级放到右边的浮层里，因此首屏纵向只需要 12 行的高度就能放下整棵目录。
   -------------------------------------------------------------------------- */
.hero-departments {
  position: relative;
  z-index: 2;                                   /* 浮层要盖住右栏内容 */
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 14px;
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: var(--sf-radius-lg);
  box-shadow: var(--sf-shadow-xs);
  overflow: visible;                            /* 右展浮层不能被裁剪 */
}

.hero-departments-head { display: flex; flex-direction: column; gap: 2px; }
.hero-departments-head .eyebrow { margin: 0; font-size: 10.5px; }
.hero-departments-head h2 { margin: 0; font-size: 17px; }
.hero-departments-note {
  margin: 0;
  color: var(--sf-muted);
  font-size: 10.5px;
  line-height: 1.35;
}

/* 一级列表：覆盖栅格，改成单列紧凑行 */
.hero-departments .intent-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  align-items: start;
}

.hero-departments .home-category-card {
  display: grid;
  /* 名称列必须放得下最长的一级分类名（Tools & Home Improvement / Cell Phones &
     Accessories 实测约 172px @13px），否则会被省略号截断。
     展开按钮压到 34px 就是为了把这 22px 让给名称列。 */
  grid-template-columns: 28px minmax(0, 1fr) auto;
  grid-template-areas:
    "thumb name toggle"
    "thumb meta toggle";
  gap: 1px 8px;
  align-items: center;
  min-height: 36px;                        /* +1px 透明描边 = 38px 行高 */
  padding: 3px 8px;
  /* 默认无描边无阴影，靠 hover/focus 显形，避免 12 行描边堆成噪声 */
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--sf-radius-sm) !important;
  box-shadow: none !important;
}
.hero-departments .home-category-card:hover,
.hero-departments .home-category-card:focus-within {
  background: var(--sf-accent-soft);
  border-color: var(--sf-accent-line);
  transform: none;                              /* 行式列表不做位移，否则整列会抖动 */
  box-shadow: none !important;
}
.hero-departments .home-category-card > a:first-child {
  grid-area: thumb;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 2px;
  border: 1px solid var(--sf-line-soft);
  border-radius: var(--sf-radius-xs);
  background: var(--sf-soft);
}
.hero-departments .home-category-card > a:first-child img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: none;
}
.hero-departments .home-category-card:hover > a:first-child img { transform: none; }
.hero-departments .home-category-card h3 {
  grid-area: name;
  margin: 0;
  font-size: 12.5px;
  line-height: 1.2;
  /* 超长类目名截断，保证每行等高、按钮列对齐 */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hero-departments .home-category-card .category-meta {
  grid-area: meta;
  margin: 0;
  gap: 4px;
  /* 行式列表里必须保持单行：一旦换行每行会多出 20px，12 行就超出首屏 */
  flex-wrap: nowrap;
  overflow: hidden;
}
.hero-departments .home-category-card .category-pill,
.hero-departments .home-category-card .category-meta span {
  padding: 0 !important;
  color: var(--sf-muted);
  background: transparent;
  border-color: transparent !important;
  /* 旧层用 !important 锁了 11px/1.15，这里同样提权 */
  font-size: 10.5px !important;
  line-height: 1.2 !important;
  white-space: nowrap;
}
.hero-departments .home-category-card .category-pill .icon { display: none; }
/* 子类目数量已由右侧展开按钮上的徽标承担，行内不再重复一遍。
   旧层把 .category-pill 的 display 锁成了 inline-flex!important，这里同样要提权。 */
.hero-departments .home-category-card .category-pill-children { display: none !important; }
/* 整行本身就是入口，去掉重复的"Browse category"按钮 */
.hero-departments .home-category-card > .button { display: none; }

.hero-departments .home-category-card .subcategory-panel {
  grid-area: toggle;
  /* 面板只负责折叠状态与展开按钮；浮层是它的兄弟节点（见渲染层注释） */
  position: static;
  /* 旧层给面板留了 margin:4px 0 12px，行式列表必须清零，否则每行凭空高 16px */
  margin: 0;
  border: 0;
  background: none;
}
.hero-departments .home-category-card { position: relative; }

/* 展开态：旧层是靠 `.subcategory-panel[open] .subcategory-flyout` 选的，
   浮层移出 <details> 之后改用 :has() 保持同样的显隐行为 */
.hero-departments .home-category-card:has(.subcategory-panel[open]) .subcategory-flyout {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.hero-departments .subcategory-panel > summary {
  gap: 3px;
  padding: 3px 7px;
  border-radius: var(--sf-pill) !important;
  font-size: 10.5px;
  /* 固定窄宽度：名称列需要 172px 才不截断，按钮每省 1px 就直接变成名称宽度 */
  min-width: 34px;
  justify-content: center;
}
/* "Subcategories" 文案视觉隐藏，只留数字徽标；标签仍保留给读屏 */
.hero-departments .subcategory-panel > summary .subcategory-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* 二级/三级：向右展开的浮层，不再把卡片撑高 */
.hero-departments .subcategory-flyout {
  left: calc(100% + 8px);
  right: auto;
  top: 0;
  /* 宽度要放得下"Computers & Accessories""Headphones, Earbuds & Accessories"
     这类长二级名 + 商品数徽标，否则二级名会被省略号截断，层级反而看不清 */
  width: min(620px, 50vw);
  max-height: min(74vh, 620px);
  overflow-y: auto;
  padding: 14px;
  border-radius: var(--sf-radius) !important;
  box-shadow: var(--sf-shadow-lg) !important;
}
.hero-departments .subcategory-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 6px;
  padding: 0 !important;
}
.hero-departments .subcategory-item { min-width: 0; }
.hero-departments .subcategory-list > .subcategory-item > a {
  padding: 7px 9px;
  border-color: var(--sf-line-soft);
  background: var(--sf-surface);
}
.hero-departments .subcategory-list > .subcategory-item > a:hover {
  border-color: var(--sf-accent-line);
  background: var(--sf-accent-soft);
}
/* 三级分类：缩进 + 左侧细竖线表达层级，字号再降一档 */
.hero-departments .subcategory-sublist {
  display: grid;
  gap: 1px;
  margin: 4px 0 2px 9px;
  padding: 0 0 0 9px;
  border-left: 2px solid var(--sf-accent-line);
  list-style: none;
}
.hero-departments .subcategory-sublist a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 3px 4px;
  color: var(--sf-ink-soft);
  background: transparent;
  border: 0;
  border-radius: var(--sf-radius-xs);
  text-decoration: none;
}
.hero-departments .subcategory-sublist a:hover {
  color: var(--sf-accent-dark);
  background: var(--sf-accent-soft);
  transform: none;
  box-shadow: none;
  text-decoration: none;
}
.hero-departments .subcategory-sublist .subcategory-name {
  font-size: 11.5px;
  font-weight: 600;
}
.hero-departments .subcategory-sublist .count-badge {
  min-width: 0;
  padding: 0;
  color: var(--sf-muted);
  background: transparent;
  font-size: 10.5px;
}

/* 底部：折叠目录开关 + 全站搜索并排成一行，省下原来两行的高度 */
.hero-departments-foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin-top: 2px;
  padding-top: 8px;
  border-top: 1px solid var(--sf-line);
}
.hero-departments .department-directory-more {
  margin: 0;
  border-top: 0;
  border-bottom: 0;
  padding: 0;
}
.hero-departments .department-directory-more > summary {
  justify-content: flex-start;
  width: 100%;
  padding: 5px 8px;
  font-size: 12px;
}
/* 折叠目录自己滚动，避免 40+ 个部门把左栏拉得比首屏还高 */
.hero-departments .department-directory-more > div {
  grid-template-columns: 1fr;
  max-height: 264px;
  overflow-y: auto;
  gap: 2px;
  margin-top: 8px;
  padding: 8px;
}
.hero-departments .department-directory-more a { padding: 5px 8px; font-size: 12.5px; }

.hero-departments-all {
  display: block;
  padding: 5px 8px;
  border: 1px solid var(--sf-line-soft);
  border-radius: var(--sf-radius-xs);
  color: var(--sf-accent-dark);
  font-size: 12px;
  font-weight: 750;
  text-align: center;
  white-space: nowrap;
  text-decoration: none;
}
.hero-departments-all:hover { color: var(--sf-ink); border-color: var(--sf-accent-line); }

/* --------------------------------------------------------------------------
   响应式：分类栏自身
   -------------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .hero-departments { padding: 12px; }
  /* 窄屏名称列只有 171px，字号降半号留出截断余量 */
  .hero-departments .home-category-card h3 { font-size: 12px; }
}

/* 退回单栏后左栏占满整行，右展浮层会溢出视口 —— 改为在本行下方展开。
   一级列表保持单列：卡片占满整栏宽度，浮层的 left/right:0 才等于"整栏宽"，
   在双列排布下浮层只会覆盖半栏、看起来像错位。 */
@media (max-width: 980px) {
  .hero-departments { order: -1; }
  .hero-departments .subcategory-flyout {
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    width: auto;
    /* 旧层在 700px 以下塞了 min-width:min(86vw,320px)，窄屏会把浮层撑出视口 */
    min-width: 0;
    max-height: 62vh;
  }
}

@media (max-width: 700px) {
  .hero-departments .subcategory-list { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .hero-departments { padding: 12px; }
  .hero-departments .intent-grid { grid-template-columns: 1fr; }
  .hero-departments .home-category-card .category-meta { display: none !important; }
  .hero-departments-foot { grid-template-columns: 1fr; gap: 6px; }
  .hero-departments-all { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-departments .home-category-card,
  .hero-departments .subcategory-list > .subcategory-item > a { transition: none; }
}

/* bundled: storefront-content.css */
/* ==========================================================================
   DPJ Wholesale · 公开内容页视觉
   --------------------------------------------------------------------------
   作用：让 About us / Shipping / Returns / Buyer protection / FAQ / Contact /
   Privacy / Terms / Knowledge pages 摆脱"裸 hero + 纯文本"的单调观感，做成
   "图文并茂"的导购型内容页：插画 hero、关键数据条、流程时间线、图标主题卡
   和提示 callout。设计令牌复用 storefront-theme.css 的 --sf-* 系列。

   加载位置：在 page() 的内联 <style> 之后作为最后一张 <link>，凭"后加载"
   压住旧层。版本号取文件内容哈希（themeStylesheet() 自动算），文件一改
   浏览器立即拉新版，不受 CDN/边缘缓存拖累。

   文件划分（每个 ≤600 行）：
   - storefront-theme.css   设计令牌、基础版式、页眉、页脚、按钮、表单
   - storefront-home.css    首页专属板块
   - storefront-departments.css  首屏左侧分类栏
   - storefront-content.css 本文件：内容页视觉积木
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 通用：内容页容器、可达性工具
   -------------------------------------------------------------------------- */
.content-page {
  position: relative;
  display: block;
  padding-block: 8px 32px;
}

.content-band {
  width: 100%;
  max-width: var(--sf-container);
  margin-inline: auto;
  padding: 28px var(--sf-gutter);
}
.content-band + .content-band { padding-top: 0; }

.content-band__title {
  margin: 0 0 18px;
  font-size: 22px;
  letter-spacing: -.01em;
  color: var(--sf-ink);
}

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  border: 0; clip: rect(0 0 0 0);
  overflow: hidden; white-space: nowrap;
}

/* --------------------------------------------------------------------------
   2. 视觉 Hero：左侧文案、右侧插画
   -------------------------------------------------------------------------- */
.content-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  align-items: center;
  gap: 32px;
  max-width: var(--sf-container);
  margin: 24px auto 8px;
  padding: 40px var(--sf-gutter) 44px;
  background:
    radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--sf-accent) 14%, transparent) 0, transparent 55%),
    linear-gradient(180deg, var(--sf-accent-soft) 0%, #fff 100%);
  border: 1px solid var(--sf-accent-line);
  border-radius: 20px;
  overflow: hidden;
}
.content-hero::after {
  /* 装饰性同心圆（极淡），用伪元素避免和插画冲突 */
  content: "";
  position: absolute;
  right: -120px; top: -80px;
  width: 360px; height: 360px;
  border-radius: 50%;
  border: 1px solid var(--sf-accent-line);
  box-shadow: 0 0 0 40px rgba(255,255,255,.6) inset, 0 0 0 41px var(--sf-accent-line) inset;
  opacity: .55;
  pointer-events: none;
}

.content-hero__copy { position: relative; z-index: 1; }
.content-hero__eyebrow {
  display: inline-block;
  margin: 0 0 10px;
  padding: 4px 12px;
  background: #fff;
  border: 1px solid var(--sf-accent-line);
  color: var(--sf-accent-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: var(--sf-pill);
}
.content-hero__title {
  margin: 0 0 12px;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.15;
  letter-spacing: -.02em;
  color: var(--sf-ink);
}
.content-hero__summary {
  margin: 0 0 18px;
  max-width: 56ch;
  font-size: 16px;
  line-height: 1.6;
  color: var(--sf-ink-soft);
}
.content-hero__meta {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
}
.content-hero__meta li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: rgba(255,255,255,.85);
  border: 1px solid var(--sf-line);
  border-radius: var(--sf-pill);
  font-size: 12px;
  color: var(--sf-muted);
}

.content-hero__art {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 260px;
  color: var(--sf-accent);
}
.content-illustration {
  width: 100%;
  max-width: 520px;
  height: auto;
  display: block;
}
.content-illustration__bg { opacity: .35; }

/* --------------------------------------------------------------------------
   3. 一眼概览（Quick facts）
   -------------------------------------------------------------------------- */
.content-quickfacts__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}
.content-quickfact {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 12px;
  align-items: start;
  padding: 14px 16px;
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: 14px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.content-quickfact:hover {
  transform: translateY(-1px);
  border-color: var(--sf-accent-line);
  box-shadow: 0 6px 18px rgba(11,122,83,.08);
}
.content-quickfact__icon {
  grid-row: 1 / span 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  background: var(--sf-accent-soft);
  color: var(--sf-accent-dark);
  border-radius: 12px;
}
.content-quickfact__label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--sf-muted);
}
.content-quickfact__value {
  font-size: 15px;
  font-weight: 600;
  color: var(--sf-ink);
  line-height: 1.35;
}

/* --------------------------------------------------------------------------
   4. 目录 chips
   -------------------------------------------------------------------------- */
.content-toc-chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 10px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.content-toc-chips__eyebrow {
  margin: 0 6px 0 0;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--sf-muted);
}
.content-toc-chips ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.content-toc-chips__chip {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  background: var(--sf-accent-soft);
  color: var(--sf-accent-dark);
  border: 1px solid var(--sf-accent-line);
  border-radius: var(--sf-pill);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.content-toc-chips__chip:hover {
  background: var(--sf-accent);
  color: #fff;
  transform: translateY(-1px);
}

/* --------------------------------------------------------------------------
   5. 流程时间线（Steps）
   -------------------------------------------------------------------------- */
.content-steps__list {
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  position: relative;
}
.content-step {
  position: relative;
  padding: 18px 18px 20px;
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: 14px;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  column-gap: 14px;
  align-items: start;
}
.content-step__num {
  grid-row: 1 / span 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  background: var(--sf-accent);
  color: #fff;
  border-radius: 12px;
  position: relative;
  font-weight: 700;
}
.content-step__num b {
  position: relative;
  z-index: 1;
  font-size: 18px;
  line-height: 1;
}
.content-step__num .content-mini-icon {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  opacity: .15;
}
.content-step__body h3 {
  margin: 0 0 4px;
  font-size: 15px;
  color: var(--sf-ink);
}
.content-step__body p {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--sf-ink-soft);
}
.content-step__connector {
  position: absolute;
  width: 32px; height: 14px;
  right: -25px; top: 22px;
  z-index: 1;
  color: var(--sf-accent);
}

/* --------------------------------------------------------------------------
   6. 主题卡（Topic cards）
   -------------------------------------------------------------------------- */
.content-topics__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.content-topic-card {
  position: relative;
  padding: 24px 24px 22px;
  background: var(--sf-surface);
  border: 1px solid var(--sf-line);
  border-radius: 16px;
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.content-topic-card:hover {
  transform: translateY(-1px);
  border-color: var(--sf-accent-line);
  box-shadow: 0 8px 22px rgba(11,122,83,.07);
}
.content-topic-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  background: var(--sf-accent-soft);
  color: var(--sf-accent-dark);
  border-radius: 12px;
  margin-bottom: 12px;
}
.content-topic-card__title {
  margin: 0 0 8px;
  font-size: 17px;
  color: var(--sf-ink);
  letter-spacing: -.01em;
}
.content-topic-card__body {
  margin: 0 0 12px;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--sf-ink-soft);
}
.content-topic-card__checklist {
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  gap: 6px;
}
.content-topic-card__checklist li {
  display: grid;
  grid-template-columns: 18px 1fr;
  column-gap: 8px;
  align-items: start;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--sf-ink-soft);
}
.content-topic-card__checklist .content-mini-icon {
  width: 18px; height: 18px;
  margin-top: 2px;
  color: var(--sf-accent-dark);
  stroke-width: 2.4;
}

/* --------------------------------------------------------------------------
   7. Callout（强调提示框）
   -------------------------------------------------------------------------- */
.content-callout {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  column-gap: 14px;
  align-items: start;
  margin: 8px var(--sf-gutter) 32px;
  padding: 18px 20px;
  background: var(--sf-accent-soft);
  border: 1px solid var(--sf-accent-line);
  border-left: 4px solid var(--sf-accent);
  border-radius: 12px;
  max-width: calc(var(--sf-container) - var(--sf-gutter) * 2);
  margin-inline: auto;
}
.content-callout--warn {
  background: #fff7ed;
  border-color: #f5d0a8;
  border-left-color: #c2410c;
}
.content-callout--warn .content-callout__icon { color: #c2410c; background: #fde6cf; }
.content-callout--success {
  background: #ecfdf5;
  border-color: #a7e3c1;
  border-left-color: var(--sf-accent-dark);
}
.content-callout--info .content-callout__icon { color: var(--sf-accent-dark); background: var(--sf-accent-soft); }
.content-callout__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border-radius: 12px;
}
.content-callout__body h3 {
  margin: 0 0 4px;
  font-size: 16px;
  color: var(--sf-ink);
}
.content-callout__body p {
  margin: 0;
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--sf-ink-soft);
}

/* --------------------------------------------------------------------------
   8. 数据条（Stat strip）
   -------------------------------------------------------------------------- */
.content-stats__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}
.content-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 18px 20px;
  background: var(--sf-accent-soft);
  border: 1px solid var(--sf-accent-line);
  border-radius: 14px;
}
.content-stat__value {
  font-size: clamp(28px, 3vw, 34px);
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--sf-accent-dark);
  line-height: 1.1;
}
.content-stat__label {
  font-size: 13px;
  font-weight: 600;
  color: var(--sf-ink);
}
.content-stat__hint {
  font-size: 12px;
  color: var(--sf-muted);
}

/* --------------------------------------------------------------------------
   9. 小图标 / 插画尺寸
   -------------------------------------------------------------------------- */
.content-mini-icon {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}
.content-mini-icon[fill]:not([fill="none"]) circle,
.content-mini-icon[fill]:not([fill="none"]) rect { stroke: none; }
.content-illustration { color: var(--sf-accent); }

/* --------------------------------------------------------------------------
   10. 响应式
   -------------------------------------------------------------------------- */
@media (max-width: 960px) {
  .content-hero {
    grid-template-columns: 1fr;
    padding: 28px 22px 32px;
    margin: 18px 16px 8px;
  }
  .content-hero__art { min-height: 200px; order: -1; }
  .content-band { padding-inline: 22px; }
  .content-callout { margin-inline: 22px; }
  .content-topics__grid { grid-template-columns: 1fr; }
  .content-steps__list { grid-template-columns: 1fr 1fr; }
  .content-step__connector { display: none; }
}
@media (max-width: 640px) {
  .content-steps__list { grid-template-columns: 1fr; }
  .content-quickfacts__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 420px) {
  .content-quickfacts__grid { grid-template-columns: 1fr; }
  .content-hero__title { font-size: 28px; }
}