/*! RevuPress structural CSS — the only frontend asset, zero JS. Token registry (source of truth): RVP_Render_Helpers::theme_tokens() — keep in sync. */
.rvp{
--rvp-card-bg:#fff;
--rvp-text:#1f2937;
--rvp-muted:#6b7280;
--rvp-accent:#2563eb;
--rvp-star:#f5a623;
--rvp-star-empty:#d6d3cd;
--rvp-border:#e5e7eb;
--rvp-radius:14px;
--rvp-gap:1.1rem;
--rvp-pad:1.25rem;
--rvp-shadow:0 1px 2px rgba(16,24,40,.06),0 6px 18px rgba(16,24,40,.06);
--rvp-reply-bg:#f3f4f6;
--rvp-font:inherit;
margin:0;padding:0;list-style:none;color:var(--rvp-text);font-family:var(--rvp-font);line-height:1.55;font-size:1rem}
.rvp *{box-sizing:border-box}
.rvp-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Stars: fractional fill via --rvp-star-fill */
.rvp-stars{position:relative;display:inline-block;line-height:1;color:var(--rvp-star-empty);letter-spacing:.1em;white-space:nowrap}
.rvp-stars::before,.rvp-stars-fill::before{content:"★★★★★"}
.rvp-stars-fill{position:absolute;top:0;left:0;width:var(--rvp-star-fill,100%);overflow:hidden;color:var(--rvp-star)}
/* Card anatomy */
.rvp-card{background:var(--rvp-card-bg);border-radius:var(--rvp-radius);box-shadow:var(--rvp-shadow);padding:var(--rvp-pad)}
.rvp-head{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}
.rvp-avatar{width:40px;height:40px;border-radius:50%;flex:none;display:block;object-fit:cover}
.rvp-id{display:flex;flex-direction:column;min-width:0;flex:1}
.rvp-name{font-weight:600}
.rvp-date,.rvp-attr,.rvp-fresh{color:var(--rvp-muted);font-size:.82em;text-decoration:none}
a.rvp-attr:hover{color:var(--rvp-accent)}
.rvp-text{margin:0;overflow-wrap:anywhere;white-space:pre-line}
.rvp-src{margin-top:.8rem;display:flex;gap:.6rem;align-items:center}
/* Truncation: checkbox hack, zero JS */
.rvp-truncated .rvp-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--rvp-lines,4);overflow:hidden}
.rvp-more-toggle:checked~.rvp-text{display:block;-webkit-line-clamp:unset}
.rvp-more{display:inline-block;margin-top:.3rem;color:var(--rvp-accent);font-size:.85em;font-weight:600;cursor:pointer}
.rvp-more-toggle:checked~.rvp-more .rvp-more-open,.rvp-more-toggle:not(:checked)~.rvp-more .rvp-more-close{display:none}
.rvp-more-toggle:focus-visible~.rvp-more{outline:2px solid var(--rvp-accent);outline-offset:2px}
/* Owner reply */
.rvp-reply{margin-top:.8rem;padding:.7rem .9rem;background:var(--rvp-reply-bg);border-radius:calc(var(--rvp-radius)/2)}
.rvp-reply-label{display:block;font-size:.8em;font-weight:600;color:var(--rvp-muted);margin-bottom:.25rem}
.rvp-reply-text{margin:0;font-size:.92em}
/* modern-grid */
.rvp-t-modern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:var(--rvp-gap)}
/* minimal-list */
.rvp-t-minimal-list .rvp-row{padding:var(--rvp-gap) 0;border-bottom:1px solid var(--rvp-border)}
.rvp-t-minimal-list .rvp-row:last-child{border-bottom:0}
.rvp-t-minimal-list article{display:flex;gap:.9rem}
.rvp-t-minimal-list .rvp-col{flex:1;min-width:0}
.rvp-t-minimal-list .rvp-head{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:.6rem;margin-bottom:.35rem}
/* carousel-clean: CSS scroll-snap */
.rvp-t-carousel-clean{display:flex;gap:var(--rvp-gap);overflow-x:auto;scroll-snap-type:x mandatory;padding:.25rem .25rem 1rem;-webkit-overflow-scrolling:touch;scrollbar-color:var(--rvp-border) transparent}
.rvp-t-carousel-clean .rvp-slide{flex:0 0 min(320px,85%);scroll-snap-align:start;display:flex}
.rvp-t-carousel-clean article{display:flex;flex-direction:column;gap:.6rem}
.rvp-t-carousel-clean .rvp-head{margin:auto 0 0}
/* masonry-wall: CSS columns */
.rvp-t-masonry-wall{columns:280px;column-gap:var(--rvp-gap)}
.rvp-t-masonry-wall .rvp-card{break-inside:avoid;margin-bottom:var(--rvp-gap)}
/* badge-inline */
.rvp-t-badge-inline{display:inline-flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.rvp-badge{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .85rem;background:var(--rvp-card-bg);border:1px solid var(--rvp-border);border-radius:999px;box-shadow:var(--rvp-shadow);color:inherit;text-decoration:none;font-size:.95em}
.rvp-badge-avg{font-weight:700}
.rvp-badge-count{color:var(--rvp-muted)}
/* spotlight */
.rvp-t-spotlight .rvp-card{max-width:42rem;margin:0 auto;text-align:center;padding:calc(var(--rvp-pad)*1.6)}
.rvp-t-spotlight .rvp-stars{font-size:1.5em}
.rvp-t-spotlight .rvp-quote{margin:.9rem 0 0;font-size:1.2em;line-height:1.6}
.rvp-t-spotlight .rvp-head{justify-content:center;margin:1.1rem 0 0}
.rvp-t-spotlight .rvp-id{flex:none;text-align:left}
/* compact-sidebar */
.rvp-t-compact-sidebar{display:flex;flex-direction:column;gap:calc(var(--rvp-gap)*.7);font-size:.88rem}
.rvp-t-compact-sidebar .rvp-card{padding:calc(var(--rvp-pad)*.7)}
.rvp-t-compact-sidebar .rvp-avatar{width:30px;height:30px}
.rvp-t-compact-sidebar .rvp-head{margin-bottom:.4rem}
/* See-all link (FTC mitigation) */
.rvp-seeall{margin:.9rem 0 0;text-align:center;font-size:.85em}
.rvp-seeall a{color:var(--rvp-muted,#6b7280);text-decoration:underline;text-underline-offset:2px}
.rvp-seeall a:hover{color:var(--rvp-accent,#2563eb)}
/* Compliance disclaimer */
.rvp-disclaimer{margin:.6rem 0 0;text-align:center;font-size:.78em;line-height:1.5;color:var(--rvp-muted,#6b7280)}
.rvp-disclaimer a{color:inherit;text-decoration:underline;text-underline-offset:2px}
/* CTA link/button + QR */
.rvp-btn{display:inline-block;padding:.6em 1.25em;background:var(--rvp-accent,#2563eb);color:#fff;border-radius:8px;text-decoration:none;font-weight:600}
.rvp-btn:hover{opacity:.9;color:#fff}
.rvp-link-text{color:var(--rvp-accent,#2563eb);font-weight:600}
.rvp-qr-wrap{display:inline-block;max-width:100%}
.rvp-qr-wrap svg{display:block;width:100%;height:auto}
