/* Viva partner store — colour tokens (tools/site-store/runtime.js). Loaded last.
   --vv-accent / --vv-accent-2 / --vv-on-accent are set by js/store.js from the partner's colours. */
:root{--vv-accent:#3B9EFF;--vv-accent-2:#5AA9F5;--vv-on-accent:#06121e;--green:var(--vv-accent);--green-dark:var(--vv-accent-2);--blue:var(--vv-accent);--blue-dark:var(--vv-accent-2)}
.rnav-mk{border-bottom-color:var(--vv-accent)}
.rnav-nm .vv-sub{display:block;font-family:var(--body),sans-serif;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--vv-accent);margin-top:2px;max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rnav-nm .vv-sub:empty{display:none}
.vv-logo{height:30px;width:auto;max-width:92px;object-fit:contain;border-radius:6px;margin-right:2px;background:#fff;padding:2px}
.rnav-cta,.btn-g,.btn-b,.rc-co,.submit,#submit-btn,.pbtn{color:var(--vv-on-accent)!important}
/* PERSONALIZATION (Kevin, 2026-09-26; the data is RepOS storePersonalization.resolve). The hero is Riser's
   short clip unless the partner has a photo; then the photo shows and the clip is hidden. A photo does not
   move, so it shows for reduced motion too. */
img.hero-video[hidden]{display:none!important}
html.vv-hero-photo video.hero-video{display:none}
@media(prefers-reduced-motion:reduce){img.hero-video:not([hidden]){display:block}}
/* accents in the partner's colour: the hero eyebrow and the emphasised half of the headline; links in the
   page body in their link colour (checked readable on the page by RepOS). The footer, legal and checkout
   copy stay Viva's. */
html.vv-accented .hero .ey,html.vv-accented .hero h1 em{color:var(--vv-accent)}
html.vv-linked main a:not([class]),html.vv-linked section a:not([class]){color:var(--vv-link)}
/* background preset "black" (a partner's own dark theme; Paulo's black / neon) */
html.vv-bg-black{--paper:#000;--white:#0c0c0c;--ink:#fff;--ink-soft:#cfcfcf;--line:#2a2a2a;--mint:#121800;--sky:#0e1300}
html.vv-bg-black body{background:#000;color:#fff}
html.vv-bg-black .rnav{background:rgba(0,0,0,.88)}
html.vv-bg-black .hero-scrim{background:linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.66) 42%,rgba(0,0,0,.2) 72%,rgba(0,0,0,.08) 100%),linear-gradient(0deg,#000 0%,rgba(0,0,0,0) 40%)}
/* Prices stay hidden until this store's partner-price answer arrives (or 4s pass), so a slow
   network never shows MAP for a moment and then flips to the partner's price. */
html:not(.prices-ready) .price,html:not(.prices-ready) .buybox .price,html:not(.prices-ready) .pprice{visibility:hidden}
/* An unknown or unreadable store: only the notice shows. */
html.store-missing body>*:not(.vv-missing):not(script){display:none!important}
.vv-missing{max-width:560px;margin:0 auto;padding:96px 20px;text-align:center}
.vv-missing h1{font-size:28px;margin:0 0 12px}.vv-missing p{color:var(--ink-soft)}.vv-missing a{color:var(--vv-accent)}
/* A PROSPECT's store (RepOS prospectStores.js): who it was prepared for, and the way to make it theirs. */
.vv-prospect{background:#0b1b2b;color:#fff;font-size:13px;line-height:1.45;text-align:center;padding:8px 16px}
.vv-prospect a{color:#fff;font-weight:700;text-decoration:underline;margin-left:6px}
