/* vivi-plover: hand port of Plover FSE look (Inter/Cardo, dark chrome, blue accents) */
@font-face{font-family:'Inter';src:url('../fonts/Inter-VariableFont_slnt,wght.woff2') format('woff2');font-weight:300 900;font-display:swap}
@font-face{font-family:'Cardo';src:url('../fonts/cardo_normal_400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Cardo';src:url('../fonts/cardo_normal_700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--pv-950:#09090b;--pv-800:#27272a;--pv-600:#61616a;--pv-400:#ceced5;--pv-200:#f4f4f5;--pv-0:#fff;--pv-blue:#3b82f6;--pv-cyan:#22d3ee;--pv-grad:linear-gradient(135deg,#314edf 0%,#22eaee 100%)}
*{box-sizing:border-box}
body{margin:0;font-family:'Inter',system-ui,sans-serif;background:var(--pv-0);color:var(--pv-950);font-size:1.125rem;line-height:1.7}
a{color:var(--pv-blue)}
.pv-wrap{max-width:1280px;margin:0 auto;padding:0 2rem}
.pv-narrow{max-width:720px;margin:0 auto;padding:0 2rem}
/* header dark */
.pv-header{background:var(--pv-950);color:var(--pv-0)}
.pv-topbar{height:4px;background:linear-gradient(90deg,#f472b6,#a78bfa,#22d3ee,#34d399)}
.pv-head{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem 0}
.pv-brand{display:flex;align-items:center;gap:.9rem;text-decoration:none;color:var(--pv-0)}
.pv-logo{width:44px;height:44px;border-radius:50%;background:var(--pv-grad);display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:1.2rem;color:#fff;flex:0 0 auto}
.pv-brand b{display:block;text-transform:uppercase;letter-spacing:.14em;font-size:1rem}
.pv-brand small{display:block;color:var(--pv-400);font-size:.8rem}
.pv-nav{display:flex;align-items:center;gap:1.4rem}
.pv-nav a{color:var(--pv-0);text-decoration:none;font-size:.95rem}
.pv-nav a:hover{color:var(--pv-cyan)}
.pv-cta{background:var(--pv-grad);color:#fff !important;border-radius:9999px;padding:.55rem 1.3rem;font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em}
.pv-search{display:flex;background:var(--pv-800);border-radius:9999px;padding:.25rem .25rem .25rem 1rem}
.pv-search input{background:transparent;border:0;color:#fff;outline:none;width:150px;font-size:.9rem}
.pv-search button{background:var(--pv-grad);border:0;color:#fff;border-radius:9999px;padding:.4rem .9rem;cursor:pointer;font-size:.8rem}
/* hero */
.pv-hero{background:var(--pv-950);color:#fff;text-align:center;padding:4rem 2rem 3.4rem}
.pv-hero h1{font-family:'Cardo',serif;font-size:clamp(2.4rem,5vw,4rem);margin:0 0 .8rem;font-weight:700}
.pv-hero h1 span{background:var(--pv-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.pv-hero p{color:var(--pv-400);margin:0}
/* grid */
.pv-section{padding:3rem 0}
.pv-sec-title{font-family:'Cardo',serif;text-align:center;font-size:2rem;margin:0 0 2rem}
.pv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.pv-card{border:1px solid var(--pv-200);border-radius:1rem;padding:1.6rem;background:#fff;display:flex;flex-direction:column;gap:.7rem}
.pv-eyebrow{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--pv-blue)}
.pv-card h3{font-family:'Cardo',serif;font-size:1.35rem;line-height:1.35;margin:0}
.pv-card h3 a{color:var(--pv-950);text-decoration:none}
.pv-card h3 a:hover{color:var(--pv-blue)}
.pv-meta{font-size:.82rem;color:var(--pv-600)}
.pv-more{margin-top:auto;font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;text-decoration:none}
/* list rows */
.pv-list{display:flex;flex-direction:column;gap:1.2rem}
/* archive body (origin GeneratePress cards + RankMath pagination) */
.pv-arch{max-width:1020px}
.pv-archive article{border:1px solid var(--pv-200);border-radius:1rem;padding:1.4rem 1.6rem;background:#fff;margin:0 0 1.2rem}
.pv-archive .wp-block-post-title,.pv-archive .entry-title{font-family:'Cardo',serif;font-size:1.5rem;margin:.2rem 0 .4rem}
.pv-archive .wp-block-post-title a,.pv-archive .entry-title a{color:var(--pv-950);text-decoration:none}
.pv-archive img{max-width:100%;height:auto;border-radius:.6rem}
.pv-archive .page-numbers{display:inline-block;margin:0 .25rem;padding:.5rem .95rem;border:1px solid var(--pv-200);border-radius:9999px;text-decoration:none;color:var(--pv-950)}
.pv-archive .page-numbers.current{background:var(--pv-950);color:#fff}
.pv-archive .wp-block-query-pagination{margin:2rem 0;text-align:center}
/* homepage extras */
.pv-center{text-align:center;margin-top:2rem}
.pv-alt{background:var(--pv-200)}
.pv-pgrid{grid-template-columns:repeat(4,1fr)}
.pv-pcard img{width:100%;height:220px;object-fit:contain;background:#fff;border-radius:.6rem}
.pv-row{border:1px solid var(--pv-200);border-radius:1rem;padding:1.4rem 1.6rem;background:#fff}
.pv-row h2{font-family:'Cardo',serif;font-size:1.5rem;margin:.2rem 0 .4rem}
.pv-row h2 a{color:var(--pv-950);text-decoration:none}
.pv-row h2 a:hover{color:var(--pv-blue)}
/* single */
.pv-single{padding:3rem 0}
.pv-single .pv-narrow{max-width:1020px}
.pv-entry .product-content{grid-template-columns:1fr !important;gap:18px}
.pv-entry .product-image-wrapper{max-width:460px;margin:0 auto}
.pv-entry .rank-circle{margin:0}
.pv-single h1{font-family:'Cardo',serif;font-size:clamp(1.9rem,4vw,3rem);line-height:1.2;margin:.6rem 0 1rem}
.pv-entry img{max-width:100%;height:auto;border-radius:1rem}
.pv-entry table{max-width:100%}
.pv-pill{display:inline-block;border:1px solid var(--pv-400);border-radius:9999px;padding:.2rem .9rem;font-size:.8rem;margin:.2rem .3rem .2rem 0}
.pv-disclose{background:#f0f9ff;border:1px solid #bae6fd;border-radius:1rem;padding:1rem 1.3rem;font-size:.95rem;margin-bottom:1.5rem}
/* pages */
.pv-pages{margin:2rem 0;text-align:center}
.pv-pages a{display:inline-block;margin:0 .25rem;padding:.5rem .95rem;border:1px solid var(--pv-200);border-radius:9999px;text-decoration:none;color:var(--pv-950)}
.pv-pages a:hover{background:var(--pv-950);color:#fff}
/* footer dark */
.pv-footer{background:var(--pv-950);color:var(--pv-400);margin-top:3rem}
.pv-cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem;padding:3rem 0}
.pv-footer h4{color:#fff;font-size:.85rem;text-transform:uppercase;letter-spacing:.12em;margin:0 0 1rem}
.pv-footer ul{list-style:none;margin:0;padding:0}
.pv-footer li{margin:.45rem 0}
.pv-footer li a{color:var(--pv-400);text-decoration:none;font-size:.92rem}
.pv-footer li a:hover{color:var(--pv-cyan)}
.pv-bottom{border-top:1px solid var(--pv-800);padding:1.2rem 0;display:flex;justify-content:space-between;gap:1rem;font-size:.85rem;flex-wrap:wrap}
.pv-bottom a{color:var(--pv-400)}
@media(max-width:900px){.pv-grid{grid-template-columns:1fr}.pv-cols{grid-template-columns:1fr 1fr}.pv-head{flex-wrap:wrap}.pv-nav{flex-wrap:wrap}}
.pv-cardimg{margin:-1.6rem -1.6rem .4rem;border-radius:1rem 1rem 0 0;overflow:hidden;line-height:0;background:#eef1f5}
.pv-cardimg img{width:100%;height:190px;object-fit:cover;display:block;transition:transform .25s}
.pv-card:hover .pv-cardimg img{transform:scale(1.03)}

/* ===== vivi-plover: BestReviews landing blocks (/product/) - origin class port ===== */
/* origin ships zero CSS here; without this the 5 category blocks are bare divs */
.pv-entry .categories--header-intro{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--pv-600);margin:0 0 .4rem}
.pv-entry [class*="landingcategories--category-wrapper"]{border-top:1px solid var(--pv-200);padding:2rem 0 .4rem;margin:0 0 .6rem}
.pv-entry [class*="landingcategories--category-wrapper"]:first-of-type{border-top:0;padding-top:.4rem}
.pv-entry .components-sectiontitle{margin:0 0 .5rem}
.pv-entry .components-section--title{font-family:'Cardo',serif;font-size:1.6rem;line-height:1.25;margin:0;color:var(--pv-950)}
.pv-entry .components-subcategorylist{font-size:.95rem;line-height:1.8;color:var(--pv-600);margin:0 0 1.1rem}
.pv-entry .components-subcategorylist a{color:var(--pv-blue);text-decoration:none}
.pv-entry .components-subcategorylist a:hover{text-decoration:underline}
.pv-entry .components-morecontentlink{margin:.2rem 0 0;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.pv-entry .components-morecontentlink a{color:var(--pv-blue);text-decoration:none}
.pv-entry .components-morecontentlink a:hover{text-decoration:underline}
/* feature + list columns */
.pv-entry .category-layout{display:grid;grid-template-columns:1fr;gap:1.3rem;align-items:start}
@media(min-width:860px){.pv-entry .category-layout{grid-template-columns:1.12fr 1fr}}
.pv-entry [class*="--article--image-holder"]{display:block;margin:0 0 .9rem}
.pv-entry [class*="--article--image-holder"] img{width:100%;display:block}
.pv-entry .right-section .articleslist,.pv-entry .right-section [class*="components-articleslist"]{display:flex;flex-direction:column;gap:.9rem}
.pv-entry .right-section article.article{display:grid;grid-template-columns:118px 1fr;gap:.9rem;align-items:start;margin:0;padding:1rem}
.pv-entry .right-section .article-image-wrapper{grid-row:1/3}
.pv-entry .right-section .article-image-wrapper img{width:100%;display:block}
/* metadata / byline / excerpt */
.pv-entry .components-metadata{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--pv-600);margin:0 0 .35rem}
.pv-entry .components-metadata--category{color:var(--pv-blue);text-decoration:none}
.pv-entry .components-titleauthor{margin:0 0 .5rem}
.pv-entry .components-titleauthor--title{font-family:'Cardo',serif;font-size:1.2rem;line-height:1.35;margin:0;font-weight:700}
.pv-entry .components-titleauthor--title a{color:var(--pv-950);text-decoration:none}
.pv-entry .components-titleauthor--title a:hover{color:var(--pv-blue)}
.pv-entry .components-titleauthor--author{font-size:.84rem;color:var(--pv-600);margin:.35rem 0 0}
.pv-entry .components-titleauthor--author a{color:var(--pv-600);text-decoration:underline}
.pv-entry .excerpt,.pv-entry .article-description>p{font-size:.97rem;line-height:1.65;color:var(--pv-800);margin:0 0 .6rem}
/* right-list rows are denser than the feature card */
.pv-entry .right-section .components-titleauthor--title{font-size:1.02rem}
/* who is bestreviews */
.pv-entry .blocksv4-bestreviews-common-whoisbestreviews{background:var(--pv-200);border-radius:1rem;padding:1.9rem 1.7rem;margin:1.8rem 0 0}
.pv-entry .block--whoisbestreviews--container{display:grid;grid-template-columns:1fr;gap:1.6rem}
@media(min-width:860px){.pv-entry .block--whoisbestreviews--container{grid-template-columns:1.25fr 1fr}}
.pv-entry .block--whoisbestreviews--our-mission--title{font-family:'Cardo',serif;font-size:1.5rem;margin:0 0 .5rem;color:var(--pv-950)}
.pv-entry .block--whoisbestreviews--our-mission--description{font-size:1.02rem;line-height:1.7;margin:0 0 1.1rem;color:var(--pv-800)}
.pv-entry .block--whoisbestreviews--our-mission--description span{font-weight:700;color:var(--pv-950)}
.pv-entry .prgrsv{position:relative;overflow:hidden;border-radius:.6rem;background:var(--pv-0)}
.pv-entry .prgrsv>img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}
.pv-entry .block--whoisbestreviews--our--mission-page-counter{border-left:3px solid var(--pv-blue);padding:.2rem 0 .2rem .9rem;margin:1.1rem 0;font-size:.96rem;line-height:1.7;color:var(--pv-800)}
.pv-entry .pagecounter-pre-inner,.pv-entry .pagecounter-inner{margin:0}
.pv-entry .highlight--gold{font-weight:700;color:var(--pv-950);background:linear-gradient(transparent 62%,#fde68a 62%);padding:0 .1em}
.pv-entry .block--whoisbestreviews--about--us--button{display:inline-block;text-decoration:none}
.pv-entry .block--whoisbestreviews--our-mission--button{background:var(--pv-grad);color:#fff;border:0;border-radius:9999px;padding:.6rem 1.5rem;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;font-family:inherit}
.pv-entry .block--whoisbestreviews--missions{display:grid;grid-template-columns:1fr;gap:1rem;margin:1.5rem 0 0}
@media(min-width:640px){.pv-entry .block--whoisbestreviews--missions{grid-template-columns:repeat(3,1fr)}}
.pv-entry .block--whoisbestreviews--mission{background:var(--pv-0);border:1px solid var(--pv-200);border-radius:.8rem;padding:1.1rem 1.1rem 1.2rem}
.pv-entry .block--whoisbestreviews--mission--image-team img{width:56px;height:56px;border-radius:50%;object-fit:cover;display:block}
.pv-entry .block--whoisbestreviews--mission--title{font-family:'Cardo',serif;font-size:1.1rem;margin:.7rem 0 .4rem;color:var(--pv-950)}
.pv-entry .block--whoisbestreviews--mission--title span{color:var(--pv-blue)}
.pv-entry .block--whoisbestreviews--mission--description{font-size:.92rem;line-height:1.6;color:var(--pv-600);margin:0}
/* experts strip */
.pv-entry .blocksv4-bestreviews-landing-landingexperts{margin:1.9rem 0 0;padding-top:1.6rem;border-top:1px solid var(--pv-200)}
.pv-entry .block--landingexperts-wrapper{max-width:100%}
.pv-entry .block--landingexperts--experts--list{position:relative;overflow:hidden}
.pv-entry .block--landingexperts--experts--list .prev-button,.pv-entry .block--landingexperts--experts--list .next-button{display:none}
.pv-entry .block--landingexperts--experts--list--experts-holder{display:flex;flex-wrap:wrap;gap:1.1rem;justify-content:flex-start}
.pv-entry .block--landingexperts--expert{position:relative;display:flex;flex-direction:column;align-items:center;gap:.45rem;width:92px;text-align:center;text-decoration:none}
.pv-entry .block--landingexperts--expert img{width:64px;height:64px;border-radius:50%;object-fit:cover;display:block;border:2px solid var(--pv-200)}
.pv-entry .block--landingexperts--expert:hover img{border-color:var(--pv-blue)}
.pv-entry .block--landingexperts--experts--list--tooltip{display:block;font-size:.78rem;line-height:1.35;font-weight:700;color:var(--pv-950)}
.pv-entry .block--landingexperts--experts--list--tooltip>span{display:block;font-weight:400;font-size:.7rem;color:var(--pv-600)}

/* ---- /product/ category bar + All Categories mega menu (v4) ---- */
.pv-cats{background:#f7f8fa;border-bottom:1px solid #e3e6ea;position:relative;z-index:60}
.pv-cats-in{max-width:1184px;margin:0 auto;padding:0 20px;display:flex;align-items:stretch;gap:0}
.pv-cats-btn{appearance:none;border:0;background:#12233d;color:#fff;font:inherit;font-weight:700;
 font-size:.92rem;padding:11px 18px;cursor:pointer;display:flex;align-items:center;gap:9px;
 white-space:nowrap;border-radius:0;letter-spacing:.01em}
.pv-cats-btn:hover,.pv-cats.is-open .pv-cats-btn{background:#1d3a63}
.pv-cats-btn:focus-visible{outline:3px solid #f0a500;outline-offset:-3px}
.pv-cats-ico{width:15px;height:11px;position:relative;display:inline-block;flex:none}
.pv-cats-ico:before,.pv-cats-ico:after{content:"";position:absolute;left:0;right:0;height:2px;background:#fff;display:block}
.pv-cats-ico:before{top:0}.pv-cats-ico:after{bottom:0}
.pv-cats-ico{box-shadow:inset 0 4.5px 0 #fff}
.pv-cats-row{list-style:none;display:flex;align-items:stretch;margin:0;padding:0;overflow-x:auto;
 overflow-y:hidden;flex:1;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.pv-cats-row::-webkit-scrollbar{height:5px}
.pv-cats-row::-webkit-scrollbar-thumb{background:#c8cdd4;border-radius:3px}
.pv-cats-row li{display:flex}
.pv-cats-row a{display:flex;align-items:center;padding:11px 12px;color:#26313f;text-decoration:none;
 font-size:.9rem;font-weight:600;white-space:nowrap;border-bottom:3px solid transparent}
.pv-cats-row a:hover{color:#12233d;border-bottom-color:#f0a500;background:#eef1f5}

.pv-mega{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:3px solid #f0a500;
 box-shadow:0 14px 34px rgba(12,22,38,.17);max-height:78vh;overflow-y:auto;z-index:70}
.pv-mega[hidden]{display:none}
.pv-mega-in{max-width:1184px;margin:0 auto;padding:22px 20px 28px;display:grid;
 grid-template-columns:repeat(5,minmax(0,1fr));gap:22px 26px}
.pv-mega-grp{min-width:0}
.pv-mega-h{margin:0 0 9px;font-size:.79rem;letter-spacing:.09em;text-transform:uppercase;
 color:#7a869a;border-bottom:1px solid #e7eaee;padding-bottom:6px}
.pv-mega-h-a{color:#7a869a;text-decoration:none}
.pv-mega-h-a:hover{color:#12233d}
.pv-mega-list{list-style:none;margin:0;padding:0}
.pv-mega-cat{margin:0 0 9px}
.pv-mega-cat-a{display:flex;align-items:baseline;gap:6px;font-weight:700;font-size:.95rem;
 color:#12233d;text-decoration:none}
.pv-mega-cat-a:hover{color:#b3701a;text-decoration:underline}
.pv-n{font-size:.71rem;font-weight:600;color:#8b95a5;background:#eef1f5;border-radius:9px;padding:1px 6px}
.pv-mega-sub{list-style:none;margin:4px 0 0;padding:0 0 0 9px;border-left:2px solid #e7eaee}
.pv-mega-sub a{display:block;padding:2px 0;font-size:.845rem;color:#4a5666;text-decoration:none;line-height:1.35}
.pv-mega-sub a:hover{color:#b3701a;text-decoration:underline}

/* ---- static All Categories directory ---- */
.pv-cat-jump{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0 0 6px}
.pv-cat-jump a{display:inline-block;padding:6px 13px;background:#eef1f5;border-radius:15px;
 color:#26313f;text-decoration:none;font-size:.87rem;font-weight:600}
.pv-cat-jump a:hover{background:#12233d;color:#fff}
.pv-cat-intro{color:#55606e;margin:0 0 20px;max-width:70ch}
.pv-cat-grp{margin:0 0 34px}
.pv-cat-grp-h{margin:0 0 14px;font-size:1.22rem;border-bottom:2px solid #12233d;padding-bottom:7px}
.pv-cat-grp-h a{color:#12233d;text-decoration:none}
.pv-cat-grp-h a:hover{color:#b3701a}
.pv-cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px}
.pv-cat-card{background:#fff;border:1px solid #e3e6ea;border-radius:6px;padding:14px 16px}
.pv-cat-card h3{margin:0 0 7px;font-size:1.02rem}
.pv-cat-card h3 a{color:#12233d;text-decoration:none}
.pv-cat-card h3 a:hover{color:#b3701a;text-decoration:underline}
.pv-cat-card ul{list-style:none;margin:0;padding:0;columns:2;column-gap:16px}
.pv-cat-card li{break-inside:avoid;padding:1.5px 0}
.pv-cat-card li a{color:#5a6575;text-decoration:none;font-size:.855rem;line-height:1.4;display:block}
.pv-cat-card li a:hover{color:#b3701a;text-decoration:underline}
.pv-cat-none{margin:0;color:#8b95a5;font-size:.85rem;font-style:italic}

@media (max-width:1080px){.pv-mega-in{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){
 .pv-cats-in{padding:0 12px;flex-wrap:wrap}
 .pv-cats-btn{width:100%;justify-content:center;padding:10px 14px}
 .pv-cats-row{width:100%;border-top:1px solid #e3e6ea}
 .pv-mega-in{grid-template-columns:1fr;gap:18px;padding:16px 14px 22px}
 .pv-cat-card ul{columns:1}
}
@media print{.pv-cats,.pv-cats-row{display:none}}

/* ===== v5: 内页（show.html）结构化重排：新闻头图/正文排版/侧栏/相关卡片 ===== */
.pv-progress{position:fixed;left:0;top:0;height:3px;width:100%;background:var(--pv-grad);
 transform:scaleX(0);transform-origin:0 0;z-index:200;pointer-events:none}
.pv-art{max-width:1184px;margin:0 auto;padding:26px 20px 8px;display:grid;
 grid-template-columns:minmax(0,1fr) 320px;gap:36px;align-items:start}
@media(max-width:1000px){.pv-art{grid-template-columns:1fr;gap:24px}}
/* 面包屑 + 标题区 */
.pv-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;
 font-size:.78rem;letter-spacing:.07em;text-transform:uppercase;color:#7a869a}
.pv-crumb a{color:#12233d;text-decoration:none;font-weight:700}
.pv-crumb a:hover{color:#3b82f6}
.pv-sep{color:#c8cdd4}
.pv-crumb-cur{color:#7a869a}
.pv-art-head{border-bottom:1px solid #e3e6ea;padding-bottom:18px;margin:0 0 24px}
.pv-art-eyebrow{display:inline-block;background:var(--pv-grad);color:#fff;font-size:.7rem;
 font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:5px 12px;
 border-radius:9999px;margin:0 0 14px}
.pv-art-title{font-family:'Cardo',serif;font-weight:700;color:#09090b;
 font-size:clamp(1.85rem,3.6vw,2.8rem);line-height:1.18;margin:0 0 16px}
.pv-art-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:.84rem;color:#7a869a}
.pv-art-chip{font-weight:700;color:#12233d;letter-spacing:.09em;text-transform:uppercase}
.pv-art-dot{width:4px;height:4px;border-radius:50%;background:#c8cdd4;display:inline-block}
.pv-art-read{color:#7a869a}
.pv-art-share{margin-left:auto;display:flex;gap:8px}
.pv-sh{display:inline-flex;align-items:center;height:32px;padding:0 13px;background:#fff;
 border:1px solid #e3e6ea;border-radius:9999px;font-size:.78rem;font-weight:600;
 color:#26313f;text-decoration:none}
.pv-sh:hover{background:#12233d;border-color:#12233d;color:#fff}
/* 正文：源站 WordPress/Tribune 结构接管 */
.pv-art-body .entry-header,.pv-art-body .article-share,.pv-art-body .sharedaddy,
.pv-art-body .article-bottom-share,.pv-art-body .article-sidebar,.pv-art-body .dfp-ad,
.pv-art-body [class*="htlad"],.pv-art-body .blueconic-under-article-rec,.pv-art-body .recirc,
.pv-art-body .newsletter-simple,.pv-art-body .newsletter-nav,.pv-art-body .newsletter-item,
.pv-art-body .show-digisubs-push,.pv-art-body .sign-up-button,.pv-art-body .subscribe-button,
.pv-art-body .prompt,.pv-art-body .trinity-tts-pb,.pv-art-body .bump-view{display:none}
.pv-art-body .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
 clip:rect(0 0 0 0);white-space:nowrap;border:0}
.pv-art-body .article-content-wrapper,.pv-art-body .article-content,.pv-art-body .article-body{
 display:block!important;max-width:none!important;width:auto!important;padding:0;margin:0}
.pv-art-body .header-features{margin:0 0 20px}
.pv-art-body .header-features figure{margin:0 0 14px}
.pv-art-body .header-features figure img{width:100%;height:auto;display:block;border-radius:12px;
 box-shadow:0 20px 44px -26px rgba(9,9,11,.5)}
.pv-art-body .header-features figcaption{margin-top:9px;font-size:.82rem;color:#7a869a;
 border-left:3px solid #e3e6ea;padding-left:11px;line-height:1.5}
.pv-art-body .header-features .meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;
 font-size:.85rem;color:#7a869a;padding-top:13px;border-top:1px solid #eef1f5}
.pv-art-body .header-features .coauthor-avatar-container{display:inline-flex;align-items:center}
.pv-art-body .header-features .avatar{width:52px!important;height:52px!important;max-width:52px;
 border-radius:50%;object-fit:cover;box-shadow:none;display:block;flex:0 0 auto}
.pv-art-body .header-features .byline{color:#27272a;font-weight:600;font-size:.92rem}
.pv-art-body .body-copy,.pv-art-body .article-body{font-size:1.09rem;line-height:1.85;color:#27272a}
.pv-art-body .body-copy p,.pv-art-body .article-body p{margin:0 0 1.25em}
.pv-art-body .body-copy>p:first-of-type::first-letter{float:left;font-family:'Cardo',serif;
 font-size:3.4rem;line-height:.86;padding:.04em .12em 0 0;font-weight:700;color:#09090b}
.pv-art-body h2{font-family:'Cardo',serif;font-size:1.55rem;line-height:1.3;color:#09090b;
 margin:2em 0 .7em;padding-left:14px;border-left:4px solid #3b82f6}
.pv-art-body h3{font-size:1.18rem;line-height:1.4;color:#18181b;margin:1.6em 0 .6em}
.pv-art-body h4{font-size:1rem;color:#3f3f46;margin:1.4em 0 .5em;letter-spacing:.06em;
 text-transform:uppercase}
.pv-art-body .body-copy a,.pv-art-body .article-body a{color:#1d4ed8;
 text-decoration:underline;text-underline-offset:2px}
.pv-art-body .body-copy a:hover,.pv-art-body .article-body a:hover{color:#0f172a}
.pv-art-body ul,.pv-art-body ol{padding-left:1.35em;margin:0 0 1.25em}
.pv-art-body li{margin:.35em 0}
.pv-art-body blockquote{margin:1.7em 0;padding:16px 20px;background:#f7f9fc;
 border-left:4px solid #12233d;border-radius:0 10px 10px 0;font-family:'Cardo',serif;
 font-style:italic;font-size:1.12rem;line-height:1.65;color:#18181b}
.pv-art-body figure{margin:1.7em 0}
.pv-art-body img{max-width:100%;height:auto;display:block;border-radius:12px}
.pv-art-body figcaption{margin-top:9px;font-size:.82rem;color:#7a869a;line-height:1.5}
.pv-art-body hr{border:0;border-top:1px solid #e3e6ea;margin:2.2em 0}
.pv-art-body table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:.92rem;
 display:block;overflow-x:auto}
.pv-art-body th,.pv-art-body td{border:1px solid #e3e6ea;padding:9px 11px;text-align:left;vertical-align:top}
.pv-art-body th{background:#f1f5f9;font-weight:700;color:#12233d}
.pv-art-body iframe{max-width:100%;border:0}
/* 文末标签条 */
.pv-art-foot{margin:28px 0 0;padding:16px 0;border-top:1px solid #e3e6ea;
 border-bottom:1px solid #e3e6ea}
.pv-art-topics{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.pv-art-topics-l{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
 color:#7a869a;margin-right:4px}
.pv-art-topics .pv-pill{text-decoration:none;color:#26313f;cursor:pointer}
.pv-art-topics .pv-pill:hover{background:#12233d;border-color:#12233d;color:#fff}
/* 侧栏 */
.pv-rank li:nth-child(n+8){display:none}
.pv-rel-card:nth-child(n+7){display:none}
.pv-art-side{position:sticky;top:18px;display:flex;flex-direction:column;gap:18px}
@media(max-width:1000px){.pv-art-side{position:static}}
.pv-box{background:#fff;border:1px solid #e3e6ea;border-radius:12px;padding:16px 18px}
.pv-box-h{margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid #12233d;
 font-size:.79rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#12233d}
.pv-rank{list-style:none;margin:0;padding:0;counter-reset:pv-rk}
.pv-rank li{counter-increment:pv-rk;display:flex;gap:11px;align-items:flex-start;
 padding:9px 0;border-bottom:1px dashed #e8ebef}
.pv-rank li:last-child{border-bottom:0;padding-bottom:0}
.pv-rank li::before{content:counter(pv-rk);flex:0 0 24px;height:24px;border-radius:7px;
 background:#eef1f5;color:#12233d;font-size:.78rem;font-weight:700;
 display:flex;align-items:center;justify-content:center}
.pv-rank li:hover::before{background:var(--pv-grad);color:#fff}
.pv-rank a{color:#27272a;text-decoration:none;font-size:.9rem;line-height:1.45}
.pv-rank a:hover{color:#3b82f6;text-decoration:underline}
.pv-box-list{list-style:none;margin:0;padding:0}
.pv-box-list li{border-bottom:1px solid #f1f3f5}
.pv-box-list li:last-child{border-bottom:0}
.pv-box-list a{display:block;padding:8px 2px;color:#3f3f46;text-decoration:none;font-size:.9rem}
.pv-box-list a:hover{color:#3b82f6}
.pv-box-cta{background:#12233d;border-color:#12233d;color:#c8cfda}
.pv-box-cta .pv-box-h{color:#fff;border-color:#31456b}
.pv-box-cta p{margin:0 0 13px;font-size:.9rem;line-height:1.6}
.pv-btn{display:inline-block;background:var(--pv-grad);color:#fff!important;text-decoration:none;
 border-radius:9999px;padding:.55rem 1.25rem;font-weight:700;font-size:.78rem;
 letter-spacing:.08em;text-transform:uppercase}
/* 相关卡片 */
.pv-rel{max-width:1184px;margin:10px auto 0;padding:30px 20px 8px;border-top:1px solid #e3e6ea}
.pv-rel .pv-sec-title{text-align:left;font-size:1.5rem;margin:0 0 18px;padding-left:12px;
 border-left:4px solid #3b82f6}
.pv-rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.pv-rel-grid{grid-template-columns:1fr}}
.pv-rel-card{background:#fff;border:1px solid #e3e6ea;border-radius:12px;padding:16px 18px;
 display:flex;flex-direction:column;gap:10px;transition:border-color .18s,transform .18s,box-shadow .18s}
.pv-rel-card:hover{border-color:#3b82f6;transform:translateY(-2px);
 box-shadow:0 16px 30px -20px rgba(9,9,11,.45)}
.pv-rel-card h3{margin:0;font-family:'Cardo',serif;font-size:1.06rem;line-height:1.4}
.pv-rel-card h3 a{color:#09090b;text-decoration:none}
.pv-rel-card h3 a:hover{color:#3b82f6}
.pv-rel-more{margin-top:auto;font-size:.74rem;font-weight:700;letter-spacing:.1em;
 text-transform:uppercase;color:#3b82f6}
@media print{.pv-art-side,.pv-rel,.pv-art-share,.pv-progress{display:none}}

/* ===== v5: 评测页（/product/articles/…，bestreviews Expert Shopper 结构） ===== */
.pv-rev .article-breadcrumbs{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;
 color:#7a869a;margin:0 0 12px}
.pv-rev .article-breadcrumbs a{color:#12233d;text-decoration:none;font-weight:700}
.pv-rev .article-breadcrumbs a:hover{color:#3b82f6}
.pv-rev .article-title{font-family:'Cardo',serif;font-weight:700;color:#09090b;
 font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.2;margin:0 0 14px}
.pv-rev .article-byline-wrapper{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;
 font-size:.88rem;color:#6b7280;padding-bottom:14px;border-bottom:1px solid #e3e6ea;margin:0 0 20px}
.pv-rev .article-author{color:#27272a;font-weight:600}
.pv-rev .article-author a{color:#1d4ed8;text-decoration:underline}
.pv-rev .article-date{color:#7a869a}
.pv-rev .widget-expert-shopper-header-image{margin:0 0 4px}
.pv-rev .widget-article-img img{width:100%;height:auto;display:block;border-radius:12px;
 box-shadow:0 20px 44px -26px rgba(9,9,11,.5)}
.pv-rev .article-caption,.pv-rev .image-caption{margin-top:9px;font-size:.82rem;color:#7a869a;
 border-left:3px solid #e3e6ea;padding-left:11px;line-height:1.5}
.pv-rev .components-contenttexteditor{font-size:1.08rem;line-height:1.85;color:#27272a}
.pv-rev .components-contenttexteditor p{margin:0 0 1.25em}
.pv-rev .components-contenttexteditor h2{font-family:'Cardo',serif;font-weight:700;color:#09090b;
 font-size:1.5rem;line-height:1.3;margin:1.9em 0 .7em;padding-left:14px;border-left:4px solid #3b82f6}
.pv-rev .components-contenttexteditor h3{font-size:1.15rem;line-height:1.4;color:#18181b;margin:1.5em 0 .5em}
.pv-rev .components-contenttexteditor a{color:#1d4ed8;text-decoration:underline;text-underline-offset:2px}
.pv-rev .components-contenttexteditor ul,.pv-rev .components-contenttexteditor ol{padding-left:1.35em;margin:0 0 1.25em}
.pv-rev .components-contenttexteditor li{margin:.35em 0}
.pv-rev .components-contenttexteditor table{width:100%;border-collapse:collapse;margin:1.5em 0;font-size:.92rem;display:block;overflow-x:auto}
.pv-rev .components-contenttexteditor th,.pv-rev .components-contenttexteditor td{border:1px solid #e3e6ea;padding:9px 11px;text-align:left}
.pv-rev .components-contenttexteditor th{background:#f1f5f9;color:#12233d}
.pv-rev .addmediawidget{margin:1.7em 0}
.pv-rev .addmediawidget img{width:100%;height:auto;display:block;border-radius:12px}
.pv-rev .buttonwidget{margin:.9em 0}
.pv-rev .button{display:inline-block;background:var(--pv-grad);color:#fff!important;text-decoration:none;
 border-radius:9999px;padding:.68rem 1.6rem;font-weight:700;font-size:.85rem;letter-spacing:.03em}
.pv-rev .button:hover{filter:brightness(1.08);color:#fff!important}
.pv-rev .br-youtube-frame-wrapper{margin:1.6em 0}
.pv-rev .br-youtube-frame-inner{position:relative;padding-top:56.25%;border-radius:12px;overflow:hidden;background:#0b1220}
.pv-rev .br-youtube-frame-inner iframe{position:absolute;left:0;top:0;width:100%;height:100%;border:0}
.pv-rev .components-sharetool{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:2.2em 0 0;
 padding:14px 0;border-top:1px solid #e3e6ea;border-bottom:1px solid #e3e6ea}
.pv-rev .components-sharetool .--title{font-size:.76rem;font-weight:700;letter-spacing:.12em;
 text-transform:uppercase;color:#7a869a}
.pv-rev .components-sharetool .--icons{display:flex;flex-wrap:wrap;gap:8px}
.pv-rev .components-sharetool .--icons a{display:inline-flex;align-items:center;height:32px;padding:0 13px;
 border:1px solid #e3e6ea;border-radius:9999px;background:#fff;font-size:.78rem;font-weight:600;
 color:#26313f;text-decoration:none}
.pv-rev .components-sharetool .--icons a:hover{background:#12233d;border-color:#12233d;color:#fff}
.pv-rev .expert-shopper-sidebar{margin:2.2em 0 0;background:#f7f9fc;border:1px solid #e3e6ea;
 border-radius:12px;padding:20px 22px}
.pv-rev .components-subscribebox--title{font-family:'Cardo',serif;font-size:1.25rem;color:#09090b;margin:0 0 .4rem}
.pv-rev .sub-title{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#3b82f6;margin:0 0 6px}
.pv-rev .components-subscribebox--text{color:#4a5666;font-size:.95rem;line-height:1.6;margin:0 0 12px}
.pv-rev .components-emailsubscribeform{display:flex;flex-wrap:wrap;gap:9px}
.pv-rev .components-emailsubscribeform input{flex:1 1 220px;min-width:0;height:40px;padding:0 13px;
 border:1px solid #d7dce3;border-radius:8px;font:inherit;font-size:.92rem;background:#fff}
.pv-rev .components-emailsubscribeform input:focus{outline:2px solid #3b82f6;outline-offset:1px}
.pv-rev .components-emailsubscribeform button{height:40px;padding:0 1.4rem;border:0;border-radius:8px;
 background:var(--pv-grad);color:#fff;font:inherit;font-weight:700;font-size:.82rem;
 letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.pv-rev .components-esdrawer,.pv-rev .top-offset-no-ads>.ad-slot,.pv-rev [class*="advert"]{display:none}
@media(max-width:640px){.pv-rev .article-byline-wrapper{gap:6px 12px}}

/* ============================================================
   vivi-plover: product matrix (source widget-productmatrix)
   535 cached /product/* pages render this markup with zero
   matching rules in plover.css, so the cards stacked up raw.
   Layout = stacked horizontal boxes: 220px image | details,
   pros/cons strip under each card.
   ============================================================ */
.pv-entry .product-matrix-chubby-info{margin:0 0 1.3rem}
.pv-entry .product-matrix-chubby-info .info-text{font-size:.86rem;line-height:1.6;color:var(--pv-600)}
.pv-entry .product-matrix-chubby-info .info-text a{color:var(--pv-blue);font-weight:600}
.pv-entry .product-matrix-chubby-info .breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin:.75rem 0 0;font-size:.8rem;color:var(--pv-600)}
.pv-entry .product-matrix-chubby-info .breadcrumbs a{color:var(--pv-600);text-decoration:none}
.pv-entry .product-matrix-chubby-info .breadcrumbs a:hover{color:var(--pv-blue)}
.pv-entry .product-matrix-chubby-info .breadcrumbs a::after{content:"/";margin-left:.35rem;color:var(--pv-400)}
.pv-entry .product-matrix-chubby-info .breadcrumbs a:last-child::after{content:none}
.pv-entry .header-text{font-family:'Cardo',serif;font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.18;margin:.5rem 0 .35rem;color:var(--pv-950)}
.pv-entry .last-updated{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--pv-600)}

/* matrix + card */
.pv-entry .product-vertical-matrix{margin:1.4rem 0 0}
.pv-entry .product-list{display:flex;flex-direction:column;gap:1.5rem}
.pv-entry .product-list--product-holder{position:relative;border:1px solid var(--pv-200);border-radius:1rem;background:#fff;box-shadow:0 1px 2px rgba(9,9,11,.05);transition:border-color .18s ease,box-shadow .18s ease}
.pv-entry .product-list--product-holder:hover{border-color:var(--pv-blue);box-shadow:0 8px 24px rgba(9,9,11,.08)}
.pv-entry .product-list--product-holder>a.item.product{display:grid;grid-template-columns:220px minmax(0,1fr);gap:1.6rem;padding:1.5rem;text-decoration:none;color:inherit}
.pv-entry .product-image-container{align-self:start;overflow:hidden;border:1px solid var(--pv-200);border-radius:.8rem;background:var(--pv-200);display:flex;align-items:center;justify-content:center;padding:.6rem}
.pv-entry .product-image-container img{display:block;width:100%;max-width:180px;height:auto;margin:0 auto;border-radius:.4rem;transition:transform .3s ease}
.pv-entry .product-list--product-holder:hover .product-image-container img{transform:scale(1.05)}
.pv-entry .product-details{display:flex;flex-direction:column;gap:.55rem;min-width:0}

/* badge: source ships two per card (is-mobile / not-mobile) */
.pv-entry .badge{display:none}
.pv-entry .badge:has(strong){display:inline-flex;align-items:center;align-self:flex-start;justify-self:start;background:var(--pv-950);color:#fff;border-radius:9999px;padding:.3rem .85rem;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;line-height:1.3}
.pv-entry .badge strong{font-weight:800}
.pv-entry .badge.badge-is-mobile{display:none}
.pv-entry .product-list--product-holder.bestbest .badge{background:#314edf}
.pv-entry .product-list--product-holder.bestbucks .badge{background:#b45309}

/* details */
.pv-entry .product-brand-model-container{margin:.15rem 0 0}
.pv-entry .product-brand{font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--pv-blue)}
.pv-entry .product-model{font-family:'Cardo',serif;font-size:1.3rem;line-height:1.3;margin:.15rem 0 0;color:var(--pv-950)}
.pv-entry .product-info-headline{font-size:1rem;font-weight:700;color:var(--pv-950);margin:.35rem 0 .15rem}
.pv-entry .product-info-bottom{font-size:.94rem;line-height:1.65;color:var(--pv-600);margin:0}
.pv-entry .product-store-container{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap;margin-top:auto;padding-top:.75rem}
.pv-entry .product-store{display:none}
.pv-entry .components-storelogo{margin-left:auto}
.pv-entry .product-button.amazon-btn.amazon-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.6rem 1.6rem;border-radius:9999px;background:#314edf;color:#fff;font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;transition:background .18s ease}
.pv-entry .product-button.amazon-btn.amazon-button::after{content:"Check Price at Amazon"}
.pv-entry .product-list--product-holder:hover .product-button.amazon-button{background:#2740c4}

/* pros / cons (source toggles it with JS we do not ship -> always open) */
.pv-entry .pros-cons-section{border-top:1px solid var(--pv-200);background:#fafafb;padding:1.1rem 1.5rem 1.4rem;border-radius:0 0 1rem 1rem}
.pv-entry .pros-cons-top-horizontal-divider{display:none}
.pv-entry .pros-cons-header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.pv-entry .pros-cons-header{font-family:'Cardo',serif;font-size:1.05rem;margin:0;color:var(--pv-950)}
.pv-entry .pros-cons-arrow{display:none}
.pv-entry .pros-cons-wrapper{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);gap:1.5rem;margin:.7rem 0 0}
.pv-entry .pros-cons-vertical-divider{background:var(--pv-200);width:1px;align-self:stretch}
.pv-entry .pros-cons-title{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--pv-blue);margin:0 0 .45rem}
.pv-entry .cons-side .pros-cons-title{color:#be185d}
.pv-entry .pros-cons-content ul{margin:0;padding-left:1.15rem;font-size:.92rem;line-height:1.6;color:var(--pv-800)}
.pv-entry .pros-cons-content li{margin:.3rem 0}

/* the source body already carries breadcrumbs + h1, so the theme's
   duplicate Home>title pair on top of it is dropped (:has() graceful-off) */
.pv-arch:has(.widget-productmatrix)>p:first-child,.pv-arch:has(.widget-productmatrix)>.pv-sec-title{display:none}

@media(max-width:760px){
.pv-entry .product-list--product-holder>a.item.product{grid-template-columns:1fr;gap:1.05rem;padding:1.1rem}
.pv-entry .badge.badge-is-mobile:has(strong){display:inline-flex}
.pv-entry .badge.badge-not-mobile:has(strong){display:none}
.pv-entry .product-image-container img{max-width:160px}
.pv-entry .components-storelogo{margin-left:0;width:100%}
.pv-entry .product-button.amazon-btn.amazon-button{width:100%}
.pv-entry .pros-cons-section{padding:1rem 1.1rem 1.2rem}
.pv-entry .pros-cons-wrapper{grid-template-columns:minmax(0,1fr);gap:1rem}
.pv-entry .pros-cons-vertical-divider{display:none}
}

/* ============================================================
   vivi-plover: remaining source widgets on review pages
   (howwetestedoptions / aps / buyingguide / ourtoppicks /
    crosslinking).  700+ cached pages carry these with zero
    rules in plover.css, so everything under the product matrix
    rendered as bare source markup.  Same card language as the
    block above: --pv-200 hairline, 1rem radius, #314edf CTA,
    Cardo for headings.
   ============================================================ */

/* --- widget-howwetestedoptions: How We Tested --------------- */
.pv-entry .how-we-tested--wrapper{display:flex;flex-wrap:wrap;gap:1.4rem;align-items:flex-start;margin:2rem 0 0;padding:1.5rem;border:1px solid var(--pv-200);border-radius:1rem;background:var(--pv-0);box-shadow:0 1px 2px rgba(9,9,11,.05)}
.pv-entry .how-we-tested--wrapper--text-holder{flex:1 1 100%;min-width:0}
.pv-entry .how-we-tested--wrapper--text-holder--title{font-family:'Cardo',serif;font-size:1.3rem;line-height:1.3;margin:0 0 .5rem;color:var(--pv-950)}
.pv-entry .how-we-tested--wrapper--text-holder--text p{font-size:.93rem;line-height:1.65;color:var(--pv-600);margin:0}
.pv-entry .how-we-tested--text--insight-link{display:inline-flex;align-items:center;gap:.45rem;margin-top:.7rem;font-size:.82rem;font-weight:700;letter-spacing:.03em;color:var(--pv-blue)}
.pv-entry .how-we-tested--text--insight-link .right-arrow::after{content:"\2192";font-size:.95rem;line-height:1}
.pv-entry .how-we-tested--wrapper--specs-holder{display:flex;flex-wrap:wrap;gap:.8rem;flex:1 1 330px;min-width:0}
.pv-entry .how-we-tested--wrapper--specs-holder--consumers,.pv-entry .how-we-tested--wrapper--specs-holder--models,.pv-entry .how-we-tested--wrapper--specs-holder--hours{flex:1 1 110px;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.3rem;padding:.95rem .7rem;border:1px solid var(--pv-200);border-radius:.8rem;background:var(--pv-200)}
.pv-entry .how-we-tested--wrapper--specs-holder--box--icon{display:none}
.pv-entry .how-we-tested--wrapper--specs-holder--box--number{font-family:'Cardo',serif;font-size:1.55rem;font-weight:700;line-height:1.1;color:var(--pv-blue)}
.pv-entry .how-we-tested--wrapper--specs-holder--box--number--overwrite{font-size:.95rem;font-weight:600;line-height:1.35;color:var(--pv-950)}
.pv-entry .how-we-tested--wrapper--specs-holder--box--text--semi-bold{display:block;font-size:.67rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;line-height:1.35;color:var(--pv-600)}
.pv-entry .how-we-tested--wrapper--consumers .how-we-tested--wrapper--specs-holder--box--text--overwrite,.pv-entry .how-we-tested--wrapper--specs-holder--consumers .how-we-tested--wrapper--specs-holder--box--text{margin:0}
.pv-entry .how-we-tested--wrapper--img-holder{flex:1 1 200px;max-width:290px;min-width:0}
.pv-entry .how-we-tested--wrapper--img-holder img{display:block;width:100%;height:auto;border-radius:.8rem}

/* --- widget-aps: Shop Similar Products ---------------------- */
.pv-entry .components-apsproducts-apsproducts{margin:2rem 0 0;padding:1.4rem 1.5rem 1.5rem;border:1px solid var(--pv-200);border-radius:1rem;background:#fafafb}
.pv-entry .aps-widget-title{font-family:'Cardo',serif;font-size:1.3rem;line-height:1.3;margin:0;color:var(--pv-950)}
.pv-entry .aps-widget-subtitle{display:block;margin:.2rem 0 0;font-size:.84rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--pv-600)}
.pv-entry .aps-widget{display:grid;grid-template-columns:repeat(auto-fill,minmax(166px,1fr));gap:1rem;margin-top:1.1rem}
.pv-entry .aps-widget>.product-link{display:flex;flex-direction:column;gap:.5rem;padding:.9rem;border:1px solid var(--pv-200);border-radius:.9rem;background:var(--pv-0);text-decoration:none;color:inherit;transition:border-color .18s ease,box-shadow .18s ease}
.pv-entry .aps-widget>.product-link:hover{border-color:var(--pv-blue);box-shadow:0 6px 18px rgba(9,9,11,.07)}
.pv-entry .aps-widget .product-image{display:flex;align-items:center;justify-content:center;padding:.45rem;background:var(--pv-200);border-radius:.7rem}
.pv-entry .aps-widget .product-image img{display:block;width:100%;height:auto;max-height:134px;object-fit:contain;border-radius:.4rem}
.pv-entry .aps-widget .product-brand{font-size:.67rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--pv-blue);margin:.15rem 0 0}
.pv-entry .aps-widget .product-model{font-family:'Cardo',serif;font-size:.99rem;line-height:1.32;margin:0;color:var(--pv-950)}
.pv-entry .aps-widget .check-price-btn-wrapper{margin-top:auto;padding-top:.45rem}
.pv-entry .aps-widget .check-price-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:38px;border-radius:9999px;background:#314edf;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:background .18s ease}
.pv-entry .aps-widget>.product-link:hover .check-price-btn{background:#2740c4}

/* --- widget-buyingguide: TOC + prose + inline product cards - */
.pv-entry .topic-table-contents{margin:1.7rem 0 0}
.pv-entry .topic-table-contents-inner{max-width:100%}
.pv-entry .table-contents-sticky{border:1px solid var(--pv-200);border-left:3px solid var(--pv-blue);border-radius:.6rem;background:#fafafb;padding:1rem 1.2rem}
.pv-entry .table-contents-sticky h3{font-family:'Cardo',serif;font-size:1rem;letter-spacing:.02em;margin:0 0 .5rem;color:var(--pv-950)}
.pv-entry .topic-table-item{display:block;padding:.3rem 0;font-size:.88rem;line-height:1.5;color:var(--pv-800);text-decoration:none;transition:color .15s ease}
.pv-entry .topic-table-item:hover{color:var(--pv-blue);text-decoration:underline}
.pv-entry .bying-guide-wrapper{margin:1.7rem 0 0}
.pv-entry .components-contenttexteditor>h2{font-family:'Cardo',serif;font-size:1.72rem;line-height:1.2;margin:0 0 .2rem;color:var(--pv-950)}
.pv-entry .components-contenttexteditor .title-bar{display:block;font-family:'Roboto',sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--pv-blue);margin:0 0 .3rem}
.pv-entry .buying-guide-author-section{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;margin:.6rem 0 1.1rem;padding-bottom:.9rem;border-bottom:1px solid var(--pv-200);font-size:.86rem;color:var(--pv-600)}
.pv-entry .buying-guide-author-section a{color:var(--pv-blue);font-weight:600;text-decoration:none}
.pv-entry .buying-guide-author-section a:hover{text-decoration:underline}
.pv-entry .google-preferred-source-wrapper{display:none}
.pv-entry .components-productcontentcardprices{margin:1.4rem 0}
.pv-entry .product--card--link--wrapper{display:block;text-decoration:none;color:inherit}
.pv-entry .components--content--product{border:1px solid var(--pv-200);border-radius:1rem;background:var(--pv-0);box-shadow:0 1px 2px rgba(9,9,11,.05);transition:border-color .18s ease,box-shadow .18s ease}
.pv-entry .product--card--link--wrapper:hover .components--content--product{border-color:var(--pv-blue);box-shadow:0 8px 24px rgba(9,9,11,.08)}
.pv-entry .components--content--product--inner{position:relative;display:grid;grid-template-columns:190px minmax(0,1fr);gap:1.4rem;padding:1.5rem}
.pv-entry .components--content--product .product-badge{position:absolute;top:1rem;right:1.2rem;z-index:2;display:inline-flex;align-items:center;background:#314edf;color:#fff;border-radius:9999px;padding:.32rem .85rem;font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;line-height:1.3}
.pv-entry .components--content--product .product-badge>span{display:none}
.pv-entry .components--content--product .product-badge.cyan{background:var(--pv-cyan);color:var(--pv-950)}
.pv-entry .components--content--product .product-badge.green{background:#16a34a;color:#fff}
.pv-entry .components--content--product .product-badge-triangle{display:none}
.pv-entry .components--content--product--image{display:flex;align-items:center;justify-content:center;padding:.6rem;background:var(--pv-200);border-radius:.8rem}
.pv-entry .components--content--product--image img{display:block;width:100%;height:auto;max-height:190px;object-fit:contain;border-radius:.4rem}
.pv-entry .components--content--product--content{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.pv-entry .components--content--product--content--brand{font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--pv-blue)}
.pv-entry .components--content--product--content--model{font-family:'Cardo',serif;font-size:1.22rem;line-height:1.3;margin:.1rem 0 0;color:var(--pv-950)}
.pv-entry .components--content--product--content--title{font-size:.96rem;font-weight:700;margin:.35rem 0 0;color:var(--pv-950)}
.pv-entry .components--content--product--content--bottom{font-size:.9rem;line-height:1.6;color:var(--pv-600);margin:.2rem 0 0}
.pv-entry .components--content--product--content--price{margin:.7rem 0 0}
.pv-entry .components--content--product .check-price{display:inline-flex;align-items:center;gap:.35rem;min-height:42px;padding:.55rem 1.35rem;border:0;border-radius:9999px;background:var(--pv-950);color:#fff;font-size:.84rem;font-weight:700;letter-spacing:.03em;font-family:inherit;cursor:pointer;pointer-events:none}
.pv-entry .components--content--product .check-price .original-price{font-weight:800}
.pv-entry .components--content--product .check-price .store-name{opacity:.7;font-weight:500}
.pv-entry .components--content--product .buttonwidget{margin:.7rem 0 0}
.pv-entry .components--content--product .buttonwidget .button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.55rem 1.4rem;border-radius:9999px;background:#314edf;color:#fff;font-size:.82rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;transition:background .18s ease}
.pv-entry .components--content--product .buttonwidget .button:hover{background:#2740c4}

/* --- widget-ourtoppicks: horizontal product carousel -------- */
.pv-entry .our-top-picks-widget-title{font-family:'Cardo',serif;font-size:1.55rem;line-height:1.2;margin:2rem 0 1rem;color:var(--pv-950)}
.pv-entry .our-top-picks-carousel{position:relative}
.pv-entry .our-top-picks-carousel .carousel-arrow{display:none}
.pv-entry .our-top-picks-viewport{overflow:visible}
.pv-entry .our-top-picks{display:flex;gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.2rem .2rem 1rem;margin:-.2rem -.2rem 0;scrollbar-width:thin}
.pv-entry .our-top-picks .slide{flex:0 0 276px;scroll-snap-align:start;min-width:0}
.pv-entry .our-top-picks .slide-inner{height:100%}
.pv-entry .our-top-picks .product-link{display:flex;flex-direction:column;height:100%;padding:1.2rem;border:1px solid var(--pv-200);border-radius:1rem;background:var(--pv-0);text-decoration:none;color:inherit;box-shadow:0 1px 2px rgba(9,9,11,.05);transition:border-color .18s ease,box-shadow .18s ease}
.pv-entry .our-top-picks .product-link:hover{border-color:var(--pv-blue);box-shadow:0 8px 24px rgba(9,9,11,.08)}
.pv-entry .our-top-picks .img-holder{display:flex;align-items:center;justify-content:center;padding:.6rem;background:var(--pv-200);border-radius:.8rem}
.pv-entry .our-top-picks .img-holder img{display:block;width:100%;height:auto;max-height:158px;object-fit:contain;border-radius:.4rem}
.pv-entry .our-top-picks .badges{margin:.85rem 0 0}
.pv-entry .our-top-picks .badges>div{display:inline-flex;align-items:center;border-radius:9999px;padding:.3rem .85rem;font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;line-height:1.3;background:#314edf;color:#fff}
.pv-entry .our-top-picks .best-bang-badge{background:#b45309}
.pv-entry .our-top-picks .top-pick-badge{background:var(--pv-950)}
.pv-entry .our-top-picks .badges>div>span{font-weight:500;opacity:.85}
.pv-entry .our-top-picks .product-title{font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--pv-blue);margin:.9rem 0 0}
.pv-entry .our-top-picks .product-model{font-family:'Cardo',serif;font-size:1.12rem;line-height:1.32;margin:.15rem 0 0;color:var(--pv-950)}
.pv-entry .our-top-picks .product-bottom-line{font-size:.65rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--pv-600);margin:.9rem 0 0}
.pv-entry .our-top-picks .product-testing-notes{font-size:.87rem;line-height:1.6;color:var(--pv-600);margin:.35rem 0 0}
.pv-entry .our-top-picks .product-read-more-wrapper{margin-top:auto;padding-top:1rem}
.pv-entry .our-top-picks .product-read-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;border-radius:9999px;background:#314edf;color:#fff;font-size:.82rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;transition:background .18s ease}
.pv-entry .our-top-picks .product-link:hover .product-read-more{background:#2740c4}
.pv-entry .our-top-picks .components-storelogo{display:none}

/* --- widget-crosslinking: related link columns -------------- */
.pv-entry .cross-linking-wrapper{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.6rem;margin:2rem 0 0;padding:1.4rem 1.5rem 1.5rem;border:1px solid var(--pv-200);border-radius:1rem;background:#fafafb}
.pv-entry .cross-linking-wrapper .column{min-width:0}
.pv-entry .cross-linking-column-title{font-family:'Cardo',serif;font-size:1.05rem;line-height:1.3;margin:0 0 .6rem;padding-bottom:.55rem;border-bottom:1px solid var(--pv-200);color:var(--pv-950)}
.pv-entry .cross-linking-wrapper .list-items{list-style:none;margin:0;padding:0}
.pv-entry .cross-linking-wrapper .list-item{margin:0}
.pv-entry .cross-linking-wrapper .list-item a{display:block;padding:.42rem 0;font-size:.89rem;line-height:1.45;color:var(--pv-800);text-decoration:none;transition:color .15s ease}
.pv-entry .cross-linking-wrapper .list-item+.list-item a{border-top:1px dashed var(--pv-200)}
.pv-entry .cross-linking-wrapper .list-item a:hover{color:var(--pv-blue);text-decoration:underline}
.pv-entry .cross-linking-wrapper .toggle-button{display:none}

/* --- small screens ----------------------------------------- */
@media(max-width:760px){
.pv-entry .how-we-tested--wrapper{padding:1.15rem 1.1rem 1.2rem}
.pv-entry .how-we-tested--wrapper--specs-holder{flex:1 1 100%}
.pv-entry .how-we-tested--wrapper--specs-holder--consumers,.pv-entry .how-we-tested--wrapper--specs-holder--models,.pv-entry .how-we-tested--wrapper--specs-holder--hours{flex:1 1 100px}
.pv-entry .how-we-tested--wrapper--img-holder{flex:1 1 100%;max-width:100%}
.pv-entry .components-apsproducts-apsproducts{padding:1.15rem 1.1rem 1.2rem}
.pv-entry .components--content--product--inner{grid-template-columns:1fr;gap:1rem;padding:1.2rem}
.pv-entry .components--content--product .product-badge{top:.8rem;right:.9rem}
.pv-entry .table-contents-sticky{padding:.9rem 1rem}
.pv-entry .components-contenttexteditor>h2{font-size:1.4rem}
.pv-entry .our-top-picks-widget-title{font-size:1.3rem}
.pv-entry .our-top-picks .slide{flex:0 0 82%}
.pv-entry .cross-linking-wrapper{padding:1.15rem 1.1rem 1.2rem;gap:1.3rem}
}

/* ============================================================
   vivi-plover: render-pass fixes (slice_04..06 review)
   1. .product-badge-no-badge is an empty container that still
      inherits the base pill background -> rendered as a ~30px
      blue chip on all 10 cards with no award. Inner text is
      empty on every occurrence, so dropping it loses nothing.
   2. .buttonwidget sits in the prose flow (right after </p>),
      NOT inside .components--content--product, so the card-
      scoped rule never matched and "Shop Now" fell back to a
      bare blue text link.
   ============================================================ */
.pv-entry .components--content--product .product-badge-no-badge{display:none}
.pv-entry .buttonwidget{margin:1.3rem 0 1.7rem}
.pv-entry .buttonwidget .button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.6rem 1.6rem;border-radius:9999px;background:#314edf;color:#fff;font-size:.83rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;transition:background .18s ease}
.pv-entry .buttonwidget .button:hover{background:#2740c4}
@media(max-width:760px){
.pv-entry .buttonwidget .button{width:100%}
}

/* ============================================================
   vivi-plover: postslist (category archive "Articles" feed)
   list.html renders {$body} inside .pv-archive, so the rule at
   line 46 already supplies the card chrome. What had zero
   rules was everything INSIDE .postslist--post: date, title,
   byline and teaser all fell through to the theme's bare `a`
   style, so four different fields rendered as four identical
   blue underlined links stacked under the thumbnail, with the
   image floated nowhere and the whole block reading flat.
   Fix = hierarchy: eyebrow date / Cardo serif title / muted
   byline / grey non-link-looking teaser + a floated 16:9 thumb.
   ============================================================ */
.pv-entry .postslist-holder{margin:2.6rem 0 0}
.pv-entry .postslist--header-holder{display:flex;flex-direction:column;gap:.3rem;margin:0 0 1.4rem;padding-bottom:.9rem;border-bottom:1px solid var(--pv-200)}
.pv-entry .postslist--header{font-family:'Cardo',serif;font-size:1.8rem;line-height:1.15;margin:0;color:var(--pv-950)}
.pv-entry .postslist--subheader{font-size:.93rem;line-height:1.55;color:var(--pv-600)}
.pv-entry .postslist{margin:0}
.pv-entry .postslist--post{position:relative;overflow:hidden}
.pv-entry .postslist--post--thumbnail-link{float:left;display:block;width:210px;margin:.15rem 1.5rem .6rem 0;border-radius:.7rem;overflow:hidden;background:var(--pv-200)}
.pv-entry .postslist--post--thumbnail{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:.7rem}
.pv-entry .postslist--post--meta{margin:.1rem 0 0}
.pv-entry .postslist--post--date{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--pv-blue)}
.pv-entry .postslist--post--title{font-family:'Cardo',serif;font-size:1.3rem;line-height:1.28;margin:.4rem 0 0;color:var(--pv-950)}
.pv-entry .postslist--post--title a{color:inherit;text-decoration:none;transition:color .15s ease}
.pv-entry .postslist--post--title a:hover{color:var(--pv-blue)}
.pv-entry .postslist--post--author{font-size:.83rem;line-height:1.5;color:var(--pv-600);margin:.4rem 0 0}
.pv-entry .postslist--post--author a{color:var(--pv-blue);font-weight:600;text-decoration:none}
.pv-entry .postslist--post--author a:hover{text-decoration:underline}
.pv-entry .postlist-post--teaser{display:block;margin:.65rem 0 0;font-size:.92rem;line-height:1.62;color:var(--pv-600);text-decoration:none;transition:color .15s ease}
.pv-entry .postlist-post--teaser:hover{color:var(--pv-blue)}
.pv-entry .postslist--post.ad{display:block;padding:.8rem 1.6rem;text-align:center}
.pv-entry .postslist--post.ad .components-htlbidadsdisplay{min-height:0}
.pv-entry .postslist--post--ad-hint{font-size:.66rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--pv-400)}

@media(max-width:760px){
.pv-entry .postslist--post{padding:1.1rem 1.15rem 1.2rem}
.pv-entry .postslist--post--thumbnail-link{float:none;width:100%;margin:0 0 .9rem}
.pv-entry .postslist--header{font-size:1.5rem}
.pv-entry .postslist--post--title{font-size:1.18rem}
.pv-entry .postslist--post.ad{padding:.75rem 1.15rem}
}

/* ============================================================
   vivi-plover: tag landing archive (date/tag archive list)
   /2026/10/02/ renders through show.html, so its wrapper is
   .pv-entry .pv-art-body -- NOT .pv-archive. Every list rule
   above is scoped to `.pv-archive .entry-title` / `.pv-archive
   article`, so all ten selectors missed: each headline fell
   through to the browser's bare `a` (blue + underlined) while
   still being caught by `.pv-art-body h2`, which stamps the
   article-body subheading treatment on it (Cardo + 4px blue
   left bar). Net effect: a list that looked like raw markup.
   Also: .pv-art-body figure has 1.7em margins but the lazy
   placeholder is a 1x1 data: URI, so every card carried ~55px
   of dead air above it. The figure is hidden while it still
   points at the placeholder and re-shows itself the moment a
   real src lands -- no layout change when the pipeline is fixed.
   ============================================================ */
.pv-art-body section.landing{margin:0}
.pv-art-body section.landing .content-wrapper,
.pv-art-body section.landing .tag-content{margin:0;padding:0;max-width:none}
.pv-art-body section.landing h1.tag-name{font-family:'Cardo',serif;font-size:1.5rem;line-height:1.2;margin:0 0 .9rem;color:var(--pv-950)}
.pv-art-body section.landing h1.tag-name:empty{display:none}
.pv-art-body section.landing .load-more-wrapper{display:flex;flex-direction:column;gap:1.1rem;margin:0}
.pv-art-body section.landing .tag-search-view{display:flex;gap:1.5rem;align-items:flex-start;margin:0;padding:1.25rem 1.35rem;border:1px solid var(--pv-200);border-radius:1rem;background:#fff;box-shadow:0 1px 2px rgba(9,9,11,.05)}
.pv-art-body section.landing .tag-search-view figure{flex:0 0 232px;margin:0}
.pv-art-body section.landing .tag-search-view figure a{display:block;border-radius:.7rem;overflow:hidden;background:var(--pv-200)}
.pv-art-body section.landing .image-wrapper{display:block}
.pv-art-body section.landing .image-wrapper img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:.7rem}
.pv-art-body section.landing .tag-search-view figure:has(img[src^="data:"]){display:none}
.pv-art-body section.landing .article-info{flex:1 1 auto;min-width:0}
.pv-art-body section.landing h2.entry-title{border-left:0;padding-left:0;margin:0;font-family:'Cardo',serif;font-size:1.34rem;line-height:1.3;font-weight:700;color:var(--pv-950)}
.pv-art-body section.landing h2.entry-title a{color:inherit;text-decoration:none;transition:color .15s ease}
.pv-art-body section.landing h2.entry-title a:hover{color:var(--pv-blue)}
.pv-art-body section.landing .dfm-title{display:inline}
.pv-art-body section.landing .entry-meta{display:flex;flex-wrap:wrap;gap:.3rem .8rem;align-items:baseline;margin:.55rem 0 0}
.pv-art-body section.landing .byline{font-size:.83rem;line-height:1.5;color:var(--pv-600)}
.pv-art-body section.landing .byline a{color:var(--pv-blue);font-weight:600;text-decoration:none}
.pv-art-body section.landing .byline a:hover{text-decoration:underline}
.pv-art-body section.landing time{font-size:.78rem;line-height:1.5;color:var(--pv-400)}
.pv-art-body section.landing .excerpt{margin:.6rem 0 0;font-size:.93rem;line-height:1.62;color:var(--pv-600)}
.pv-art-body section.landing .load-more{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.7rem 1.6rem;border-radius:9999px;background:var(--pv-950);color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;transition:background .18s ease}
.pv-art-body section.landing .load-more:hover{background:var(--pv-blue)}
.pv-art-body section.landing .sidebar-ad-container,
.pv-art-body section.landing .dfm-page-bottom-flex-container{display:none}

@media(max-width:760px){
.pv-art-body section.landing .tag-search-view{flex-direction:column;gap:.9rem;padding:1.05rem 1.1rem 1.15rem}
.pv-art-body section.landing .tag-search-view figure{flex:0 0 auto;width:100%}
.pv-art-body section.landing h2.entry-title{font-size:1.18rem}
.pv-art-body section.landing .load-more{width:100%;min-height:46px}
}
