/* =========================================================
   Report Builder — /report/{slug}
   Loaded after style.css; reuses :root tokens.
   ========================================================= */

.rb { max-width: 1240px; }
/* Overflow safety — long words/titles never force a section wider than the screen */
.rb-hero__title, .rb-card__title, .rvtest__title, .rssd__colhead, .rs-card, .rb-chap__title, .rs__h, .rvvid__cap { overflow-wrap: anywhere; }
.rvtest__videos, .rvtest__track { max-width: 100%; }

/* On the builder, the site header is NOT sticky — only the stepper sticks. */
.nav { position: static; }

/* ---------- 2-column layout: build form + floating live card ---------- */
.rb-layout { display: grid; grid-template-columns: minmax(0, 1fr) 332px; gap: 30px; align-items: start; }
.rb-layout > * { min-width: 0; }   /* both columns must be able to shrink (the certs marquee is width:max-content) */
.rb-certs__marquee { min-width: 0; }

/* ---------- Live summary card (sticky, right) ---------- */
.rb-live { position: sticky; top: 100px; }
.rb-live__card {
  background: #fff; border: 1px solid #ececf4; border-radius: 18px; padding: 22px 22px 20px;
  box-shadow: 0 1px 2px rgba(16,18,60,.05), 0 24px 60px rgba(16,18,60,.10);
}
.rb-live__eyebrow { display: flex; align-items: center; justify-content: space-between;
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.rb-live__live { display: inline-flex; align-items: center; gap: 6px; color: var(--indigo); }
.rb-live__pulse { width: 7px; height: 7px; border-radius: 50%; background: #16a34a; box-shadow: 0 0 0 0 rgba(22,163,74,.5); animation: lvPulse 1.8s infinite; }
@keyframes lvPulse { 0% { box-shadow: 0 0 0 0 rgba(22,163,74,.45); } 70% { box-shadow: 0 0 0 7px rgba(22,163,74,0); } 100% { box-shadow: 0 0 0 0 rgba(22,163,74,0); } }

.rb-live__pages { display: flex; align-items: baseline; gap: 8px; margin: 14px 0 4px; }
.rb-live__pagesn { font-family: var(--font-head); font-size: 2.4rem; font-weight: 500; line-height: 1; color: var(--ink); letter-spacing: -.02em; }
.rb-live__pagesl { color: var(--muted); font-size: .95rem; }

.rb-live__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1px; background: #ececf4;
  border: 1px solid #ececf4; border-radius: 12px; overflow: hidden; margin: 14px 0 16px; }
.rb-live__cell { background: #fff; padding: 12px 14px; }
.rb-live__cell b { display: block; font-family: var(--font-head); font-size: 1.5rem; font-weight: 600; color: var(--indigo); line-height: 1.1; }
.rb-live__cell span { font-size: .8rem; color: var(--muted); }

.rb-live__meta { font-size: .82rem; color: var(--ink-soft); line-height: 1.5; margin-bottom: 14px; }
.rb-live__meta b { color: var(--ink); font-weight: 600; }
.rb-live__dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #16a34a; margin-right: 4px; vertical-align: middle; }
.rb-live__stat { transition: opacity .25s var(--ease); }

.rb-live__step { background: rgba(20,184,166,.10); color: #0e9aa7; border-radius: 10px; padding: 9px 12px;
  font-size: .82rem; font-weight: 500; text-align: center; margin-bottom: 14px; }
.rb-live__step::before { content: "✓ "; font-weight: 700; }

.rb-live__cta { width: 100%; justify-content: center; font-size: 1rem; padding: 14px; border-radius: 30px;
  background: linear-gradient(135deg, var(--accent), var(--indigo)); box-shadow: 0 10px 24px rgba(58,54,224,.28); }
.rb-live__fine { text-align: center; font-size: .76rem; color: var(--muted); margin: 12px 0 0px; }

.rb-live__ghost { width: 100%; padding: 11px; border: 1px solid #d8dae8; border-radius: 11px; background: #fff;
  color: var(--indigo); font-weight: 500; font-size: .9rem; cursor: pointer; transition: border-color .15s, background .15s; }
.rb-live__ghost:hover { border-color: var(--indigo); background: #f7f7fd; }
.rb-live__link { display: block; width: 100%; margin-top: 8px; background: none; border: none; cursor: pointer;
  color: var(--muted); font-size: .82rem; text-decoration: underline; text-underline-offset: 2px; }
.rb-live__link:hover { color: var(--indigo); }

.rb-live__guarantee { display: flex; gap: 9px; align-items: flex-start; margin-top: 16px; padding-top: 16px;
  border-top: 1px solid #f0f0f6; font-size: .8rem; color: var(--ink-soft); line-height: 1.45; }
.rb-live__guarantee svg { color: #16a34a; flex-shrink: 0; margin-top: 1px; }
.rb-live__guarantee b { color: var(--ink); font-weight: 600; }
.rb-live__badges { display: flex; gap: 8px; justify-content: center; margin-top: 14px; }
.rb-live__badges span { font-size: .72rem; color: var(--muted); position: relative; padding-left: 13px; }
.rb-live__badges span::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 6px; height: 6px; border-radius: 50%; background: #16a34a; }

/* count tween flash */
.rb-live__cell b.is-bump, .rb-live__pagesn.is-bump { animation: lvBump .35s var(--ease); }
@keyframes lvBump { 0% { transform: scale(1); } 40% { transform: scale(1.12); color: var(--accent); } 100% { transform: scale(1); } }

@media (max-width: 980px) {
  .rb-layout { grid-template-columns: 1fr; }
  .rb-live { position: static; margin-top: 8px; }
  .rb-live__card { max-width: 460px; margin: 0 auto; }
}

/* =========================================================
   Static showcase sections (preview · compare · trust · FAQ)
   ========================================================= */
.rs { max-width: 1080px; margin: clamp(2.8rem,6vw,4.6rem) auto 0; padding: 0 clamp(1rem,3vw,1.5rem); }
.rs__h { text-align: center; font-family: var(--font-head); font-weight: 600; color: var(--navy, #0a0e3f); font-size: clamp(1.55rem,3.6vw,2.1rem); letter-spacing: -.01em; }
.rs__sub { text-align: center; color: var(--ink-soft); max-width: 620px; margin: .65rem auto 0; line-height: 1.55; font-size: clamp(1rem,2vw,1.08rem); }

/* preview cards */
.rs-preview { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 22px; margin-top: clamp(1.6rem,4vw,2.4rem); }
.rs-card { background: #fff; border: 1px solid #ececf4; border-radius: 18px; padding: 22px 24px; box-shadow: 0 1px 2px rgba(16,18,60,.05), 0 14px 40px rgba(16,18,60,.06); }
.rs-card__top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 22px; gap: 12px; }
.rs-card__t { font-family: var(--font-head); font-weight: 600; color: var(--ink); font-size: 1.05rem; }
.rs-card__s { color: var(--muted); font-size: .85rem; margin-top: 3px; }
.rs-cagr { background: rgba(58,54,224,.10); color: var(--indigo); border-radius: 9px; padding: 6px 11px; font-size: .75rem; white-space: nowrap; }
.rs-cagr b { font-size: .95rem; font-weight: 600; }
.rs-bars { display: flex; align-items: flex-end; gap: 6px; height: 232px; padding-bottom: 24px; }
.rs-bar { flex: 1; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; position: relative; }
.rs-bar__v { font-size: 10px; color: var(--muted); margin-bottom: 6px; white-space: nowrap; }
.rs-bar__fill { width: 100%; max-width: 44px; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, #5b57e8, #3a36e0); transition: background .15s; }
.rs-bar:hover .rs-bar__fill { background: linear-gradient(180deg, #4f46ff, #2a27c4); }
.rs-bar__y { position: absolute; bottom: -22px; left: -4px; right: -4px; text-align: center; font-size: 11px; color: var(--muted); }
.rs-shares { display: flex; flex-direction: column; gap: 17px; padding-top: 4px; }
.rs-share__row { display: flex; justify-content: space-between; font-size: .92rem; color: var(--ink); margin-bottom: 7px; }
.rs-share__row b { font-weight: 600; }
.rs-share__track { height: 9px; border-radius: 99px; background: #eef0f6; overflow: hidden; }
.rs-share__track span { display: block; height: 100%; border-radius: 99px; }
.rs-preview__cta { text-align: center; margin-top: 26px; }

/* comparison — scroll showdown (winner lights up row-by-row; loser desaturates + crumbles) */
.rs--compare { max-width: 1000px; }
.rssd { position: relative; }
.rssd__head { text-align: center; margin-bottom: clamp(2rem,5vw,3rem); }
.rssd__eyebrow { margin: 0 0 .55rem; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--indigo); }
.rssd__title { margin: 0; font-family: var(--font-head); font-weight: 600; color: var(--navy,#0a0e3f); font-size: clamp(1.8rem,4.2vw,2.5rem); letter-spacing: -.02em; }
.rssd__title span { font-style: italic; font-weight: 500; color: var(--indigo); }
.rssd__hint { margin: .9rem 0 0; font-size: .85rem; color: var(--muted); }

.rssd__arena { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 46px minmax(0,1fr); gap: clamp(.4rem,1.5vw,1rem); max-width: 920px; margin: 0 auto; align-items: start; }
.rssd__col { border-radius: 18px; padding: clamp(1.3rem,3vw,2rem); background: #fff; }
.rssd__col--win { border: 1px solid #e4e6fb; box-shadow: 0 22px 64px rgba(58,54,224,.14); }
.rssd__col--lose { border: 1px solid #ececf4; transition: filter .25s linear, opacity .25s linear; }
.rssd__colhead { font-family: var(--font-head); font-weight: 600; font-size: 1.12rem; margin-bottom: 1.1rem; padding-bottom: .9rem; border-bottom: 1px solid #eef0f6; }
.rssd__col--win .rssd__colhead { color: var(--indigo); }
.rssd__col--lose .rssd__colhead { color: var(--muted); }
.rssd__badge { display: inline-block; margin-right: .55rem; vertical-align: 2px; background: linear-gradient(90deg,#ffd24a,#ffae20); color: #3a2c00; font-size: .56rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; }
.rssd__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .9rem; }
.rssd__row { display: flex; align-items: flex-start; gap: .7rem; font-size: .98rem; line-height: 1.4; }
.rssd__col--win .rssd__row { color: var(--ink); }
.rssd__col--lose .rssd__row { color: var(--ink-soft); }
.rssd__mark { flex: none; width: 24px; height: 24px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.rssd__mark--yes { background: #16a34a; color: #fff; box-shadow: 0 3px 10px rgba(22,163,74,.4); }
.rssd__mark--no { background: #f1f1f6; color: #b9becf; transition: background .4s, color .4s; }

/* Center playhead — descends with scroll */
.rssd__spine { position: relative; align-self: stretch; }
.rssd__spine::before { content: ''; position: absolute; left: 50%; top: 6px; bottom: 6px; width: 2px; transform: translateX(-50%); background: linear-gradient(#e4e6fb,#eef0f6); border-radius: 2px; }
.rssd__dot { position: absolute; left: 50%; top: calc(var(--p,0) * 100%); transform: translate(-50%,-50%); width: 15px; height: 15px; border-radius: 50%; background: var(--indigo); box-shadow: 0 0 0 5px rgba(58,54,224,.14), 0 0 18px rgba(58,54,224,.6); }

/* Scroll-driven states — armed by JS (.rssd--play) so no-JS / reduced-motion show everything */
.rssd--play .rssd__col--win .rssd__row { opacity: .22; transform: translateX(-10px); transition: opacity .5s var(--ease), transform .5s var(--ease); }
.rssd--play .rssd__col--win .rssd__row .rssd__mark--yes { transform: scale(.4); transition: transform .45s var(--ease); }
.rssd--play .rssd__col--win .rssd__row.is-on { opacity: 1; transform: none; }
.rssd--play .rssd__col--win .rssd__row.is-on .rssd__mark--yes { transform: scale(1); }
.rssd--play .rssd__col--lose .rssd__row { transition: opacity .55s var(--ease), transform .55s var(--ease); }
.rssd--play .rssd__col--lose .rssd__row.is-out { opacity: .25; transform: translateY(12px) rotate(-1.2deg); }
.rssd--play .rssd__col--lose .rssd__row.is-out .rssd__mark--no { background: rgba(239,68,68,.14); color: #ef4444; }

@media (max-width: 720px) {
  .rssd__arena { grid-template-columns: 1fr; gap: 1.4rem; }
  .rssd__spine { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .rssd--play .rssd__col--win .rssd__row,
  .rssd--play .rssd__col--win .rssd__row .rssd__mark--yes { opacity: 1 !important; transform: none !important; }
  .rssd__col--lose { filter: none !important; opacity: 1 !important; }
}

/* ---------- Customer testimonials (intro + VMR mosaic + video carousel) ---------- */
.rvtest { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: clamp(2rem,5vw,4rem); align-items: center; }
.rvtest__eyebrow { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1rem; font-size: .8rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.rvtest__plus { color: var(--teal,#14b8a6); font-weight: 700; font-size: 1.05rem; line-height: 1; }
.rvtest__title { margin: 0; font-family: var(--font-head); font-weight: 500; font-size: clamp(1.9rem,4.4vw,3rem); line-height: 1.1; letter-spacing: -.02em; color: var(--ink); }
.rvtest__title span { color: var(--indigo); }
.rvtest__sub { margin: 1.1rem 0 0; max-width: 30rem; color: var(--ink-soft); font-size: 1.02rem; line-height: 1.65; }
.rvtest__metrics { display: flex; flex-wrap: wrap; gap: clamp(1.2rem,3vw,2.2rem); margin-top: 1.6rem; }
.rvtest__metrics b { display: block; font-family: var(--font-head); font-weight: 600; font-size: clamp(1.1rem,2.4vw,1.4rem); color: var(--ink); }
.rvtest__metrics span { font-size: .8rem; color: var(--muted); }
.rvtest__art { text-align: center; }
.rvtest__art img { max-width: 100%; height: auto; display: block; margin: 0 auto; }

.rvtest__videos { margin-top: clamp(2.4rem,5vw,3.6rem); }
.rvtest__vhead { margin-bottom: 1.3rem; }
.rvtest__veyebrow { margin: 0 0 .25rem; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--indigo); }
.rvtest__vtitle { margin: 0; font-family: var(--font-head); font-weight: 500; font-size: clamp(1.3rem,2.8vw,1.8rem); letter-spacing: -.01em; color: var(--ink); }
.rvtest__track { display: flex; gap: 1.25rem; overflow-x: auto; padding: .4rem .2rem 1.4rem; scrollbar-width: none; -webkit-overflow-scrolling: touch;
  -webkit-mask-image: linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);
          mask-image: linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent); }
.rvtest__track::-webkit-scrollbar { display: none; }
.rvvid { flex: 0 0 clamp(280px, 78vw, 360px); }
.rvvid__play { position: relative; display: block; width: 100%; aspect-ratio: 16/9; margin: 0; padding: 0; border: 0; border-radius: 16px; overflow: hidden; cursor: pointer; background: #0a0d22; box-shadow: var(--shadow-sm); transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.rvvid__play:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.rvvid__thumb { width: 100%; height: 100%; object-fit: cover; display: block; }
.rvvid__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,13,34,0) 45%, rgba(10,13,34,.5)); }
.rvvid__btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 58px; height: 58px; border-radius: 50%; background: rgba(255,255,255,.95); color: #ff0033; display: flex; align-items: center; justify-content: center; padding-left: 3px; box-shadow: 0 8px 24px rgba(0,0,0,.3); transition: transform .18s var(--ease); }
.rvvid__play:hover .rvvid__btn { transform: translate(-50%,-50%) scale(1.08); }
.rvvid__yt { position: absolute; left: 12px; bottom: 10px; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; opacity: .9; }
.rvvid__iframe { width: 100%; aspect-ratio: 16/9; border: 0; border-radius: 16px; display: block; background: #000; box-shadow: var(--shadow-md); }
.rvvid__cap { margin: .9rem .2rem 0; font-size: .92rem; line-height: 1.45; color: var(--ink); font-weight: 500; }
@media (max-width: 860px) {
  .rvtest { grid-template-columns: 1fr; }
  .rvtest__art { order: -1; max-width: 460px; margin: 0 auto; }
}
@media (prefers-reduced-motion: reduce) { .rvtest__track { scroll-behavior: auto; } }

/* FAQ accordion (native <details>, no JS) */
.rs-faq { max-width: 820px; margin: clamp(1.6rem,4vw,2.2rem) auto 0; display: flex; flex-direction: column; gap: 12px; }
.rs-faq__item { background: #fff; border: 1px solid #ececf4; border-radius: 14px; padding: 2px 20px; transition: border-color .15s, box-shadow .15s; }
.rs-faq__item[open] { border-color: #d8dae8; box-shadow: 0 10px 30px rgba(16,18,60,.07); }
.rs-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 14px; cursor: pointer; list-style: none; padding: 16px 0; font-family: var(--font-head); font-weight: 500; color: var(--ink); font-size: 1.02rem; }
.rs-faq__q::-webkit-details-marker { display: none; }
.rs-faq__chev { color: var(--muted); flex-shrink: 0; transition: transform .2s var(--ease); }
.rs-faq__item[open] .rs-faq__chev { transform: rotate(180deg); color: var(--indigo); }
.rs-faq__a { padding: 0 0 18px; color: var(--ink-soft); line-height: 1.65; font-size: .96rem; }
.rs-faq__a b { color: var(--ink); font-weight: 600; }

@media (max-width: 760px) {
  .rs-preview { grid-template-columns: 1fr; }
}

/* ---------- Hero ---------- */
.rb-hero { text-align: center; padding-top: clamp(1rem, 3vw, 2rem); }
.rb-hero__badge {
  display: inline-flex; align-items: center; gap: .55rem;
  background: rgba(58,54,224,.08); color: var(--indigo);
  font-size: .76rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
  padding: .5rem 1rem; border-radius: 999px;
}
.rb-pulse { width: 8px; height: 8px; border-radius: 50%; background: var(--indigo); box-shadow: 0 0 0 0 rgba(58,54,224,.5); animation: rbPulse 1.6s var(--ease) infinite; }
@keyframes rbPulse { 70% { box-shadow: 0 0 0 8px rgba(58,54,224,0);} 100% { box-shadow: 0 0 0 0 rgba(58,54,224,0);} }

.rb-hero__title {
  font-family: var(--font-head); font-weight: 500; letter-spacing: -.03em;
  font-size: clamp(2rem, 5.4vw, 3rem); line-height: 1.05; margin: 1.1rem 0 .9rem;
}
.rb-hero__sub { max-width: 720px; margin: 0 auto; color: var(--ink-soft); font-size: clamp(1rem,2vw,1.10rem); line-height: 1.55; }
.rb-hero__sub b { color: var(--ink); font-weight: 500; }

.rb-intel {
  display: inline-flex; align-items: center; gap: .6rem; margin-top: 1.4rem;
  background: #fff; border: 1px solid var(--line); border-radius: 999px;
  padding: .5rem 1.1rem; box-shadow: var(--shadow-sm); font-size: .9rem; color: var(--ink-soft);
}
.rb-intel__spin { width: 15px; height: 15px; border-radius: 50%; border: 2px solid rgba(58,54,224,.25); border-top-color: var(--indigo); animation: rbSpin .9s linear infinite; }
@keyframes rbSpin { to { transform: rotate(360deg); } }
.rb-intel__text { transition: opacity .3s var(--ease); }

/* ---------- What's inside (stats) ---------- */
.rb-stats {
  margin: clamp(2rem,4vw,3rem) auto 0; display: grid; gap: 1px;
  grid-template-columns: repeat(7, 1fr); background: var(--line);
  border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden;
}
.rb-stat { background: #fff; padding: 1.3rem .6rem; display: flex; flex-direction: column; align-items: center; gap: .25rem; }
.rb-stat__n { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.1rem,2.4vw,1.7rem); color: var(--ink); letter-spacing: -.02em; }
.rb-stat__l { font-size: .74rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.rb-stat--export .rb-stat__n { color: var(--indigo); font-size: clamp(.95rem,2vw,1.2rem); }

/* ---------- Trusted-by stripe (scrolling client logos, grayscale) ---------- */
.rb-trust { display: flex; align-items: center; gap: 1.6rem; margin: clamp(1.4rem,3vw,2.2rem) 0 0; }
.rb-trust__label { flex: none; max-width: 215px; font-size: .68rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); line-height: 1.45; }
.rb-trust__marquee { position: relative; flex: 1 1 auto; min-width: 0; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
          mask-image: linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.rb-trust__track { display: flex; align-items: center; width: max-content; animation: rbTrustScroll 42s linear infinite; }
.rb-trust__logo { height: 26px; width: auto; margin-right: 3.4rem; flex: none;
  filter: grayscale(1); opacity: .5; transition: filter .25s var(--ease), opacity .25s var(--ease); }
.rb-trust__logo:hover { filter: none; opacity: 1; }
.rb-trust:hover .rb-trust__track { animation-play-state: paused; }
@keyframes rbTrustScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 760px) {
  .rb-trust { flex-direction: column; align-items: flex-start; gap: .7rem; }
  .rb-trust__label { max-width: none; }
  .rb-trust__marquee { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .rb-trust__track { animation: none; } }

/* ---------- Certifications strip (under the live card, scrolling, sticky-aligned) ---------- */
.rb-certs { margin-top: .85rem; padding: .8rem 1rem .9rem; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow-sm); }
.rb-certs__label { margin: 0 0 .6rem; text-align: center; font-size: .62rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.rb-certs__marquee { position: relative; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent);
          mask-image: linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent); }
.rb-certs__track { display: flex; align-items: center; width: max-content; animation: rbCertScroll 26s linear infinite; }
/* Uniform box per logo + object-fit so round badges and wide wordmarks share one footprint */
.rb-certs__cell { flex: none; width: 110px; height: 100px; margin-right: 1.4rem; display: flex; align-items: center; justify-content: center; }
.rb-certs__logo { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; opacity: .85; transition: opacity .25s var(--ease); }
.rb-certs__logo:hover { opacity: 1; }
.rb-certs:hover .rb-certs__track { animation-play-state: paused; }
@keyframes rbCertScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .rb-certs__track { animation: none; } }

/* ---------- Stepper ---------- */
.rb-steps {
  list-style: none; display: flex; padding: .7rem .6rem .55rem; margin: clamp(2.5rem,5vw,4rem) 0 1.5rem;
  position: sticky; top: 0; z-index: 30;
  background: rgba(255,255,255,.92); backdrop-filter: saturate(160%) blur(12px);
  border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-sm);
}
.rb-steps__i {
  flex: 1; min-width: 0; position: relative; cursor: pointer; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: .55rem;
  padding-top: .35rem;
}
/* connector from the previous node */
.rb-steps__i::before {
  content: ""; position: absolute; top: calc(.35rem + 18px); right: 50%; width: 100%; height: 3px;
  background: #e6e5ef; z-index: 1; transform: translateY(-50%); border-radius: 3px;
  transition: background .4s var(--ease);
}
.rb-steps__i:first-child::before { display: none; }
/* Final "Report ready" tile — a real, clickable step with a book icon */
.rb-steps__book { display: inline-flex; align-items: center; justify-content: center; }
.rb-steps__icon { width: 34px; height: 34px; object-fit: contain; display: block; }
/* white version of the report icon when the final step lights up (active/done) */
.rb-steps__i.is-final.is-active .rb-steps__icon,
.rb-steps__i.is-final.is-done .rb-steps__icon { filter: brightness(0) invert(1); }
.rb-steps__i.is-final .rb-steps__node { background: #eef0fb; color: var(--indigo); }
.rb-steps__i.is-final.is-active .rb-steps__node,
.rb-steps__i.is-final.is-done .rb-steps__node {
  background: linear-gradient(135deg,#3a36e0,#6a4bff); color: #fff;
  box-shadow: 0 0 0 5px rgba(58,54,224,.16), 0 10px 24px rgba(58,54,224,.4);
}
.rb-steps__i.is-final.is-active .rb-steps__lbl,
.rb-steps__i.is-final.is-done .rb-steps__lbl { color: var(--ink); font-weight: 500; }

/* Limit feedback toast (countries / companies caps) */
.rb-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 12px); background: var(--ink); color: #fff; padding: .7rem 1rem; border-radius: 10px; font-size: .9rem; box-shadow: var(--shadow-md); opacity: 0; pointer-events: none; transition: opacity .2s var(--ease), transform .2s var(--ease); z-index: 60; }
.rb-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

.rb-steps__node {
  position: relative; z-index: 2; width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center; background: #edecf5; color: var(--ink-soft);
  font-size: .95rem; font-weight: 600; border: 2px solid transparent;
  box-shadow: 0 1px 2px rgba(16,18,60,.06);
  transition: background .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease), transform .25s var(--ease);
}
.rb-steps__i:hover:not(.is-active) .rb-steps__node { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.rb-steps__tick { display: none; }
.rb-steps__lbl { font-size: .9rem; color: var(--muted); transition: color .2s var(--ease); white-space: nowrap; }

/* completed */
.rb-steps__i.is-done .rb-steps__node { background: #1faa6b; color: #fff; }
.rb-steps__i.is-done .rb-steps__num { display: none; }
.rb-steps__i.is-done .rb-steps__tick { display: block; animation: rbTick .35s var(--ease); }
.rb-steps__i.is-done .rb-steps__lbl { color: var(--ink); }
.rb-steps__i.is-done::before { background: #1faa6b; }

/* active */
.rb-steps__i.is-active .rb-steps__node { background: linear-gradient(135deg,#3a36e0,#6a4bff); color: #fff; transform: scale(1.1); box-shadow: 0 0 0 5px rgba(58,54,224,.16), 0 10px 24px rgba(58,54,224,.38); }
.rb-steps__i.is-active .rb-steps__lbl { color: var(--ink); font-weight: 500; }
.rb-steps__i.is-active::before { background: linear-gradient(90deg, #1faa6b, var(--indigo)); }

@keyframes rbTick { from { transform: scale(0) rotate(-12deg); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* ---------- 4-step flow: report-ready badge ---------- */
.rb-card__no--book { background: linear-gradient(135deg,#3a36e0,#6a4bff); color: #fff; }
.rb-review .rb-cta { margin-top: 1.2rem; }

/* ---------- Cards ---------- */
.rb-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(1.3rem,3vw,2rem); margin-bottom: 1.4rem; box-shadow: var(--shadow-sm); scroll-margin-top: 130px; }
.rb-card--done { background: linear-gradient(180deg, #f3fbf7, #fff); border-color: #cdeede; }
.rb-card__head { display: flex; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.rb-card__no { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--indigo); color: #fff; display: grid; place-items: center; font-weight: 500; }
.rb-card__ico { flex: none; width: 34px; height: 34px; border-radius: 50%; background: #1faa6b; color: #fff; display: grid; place-items: center; }
.rb-card__step { font-size: .74rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.rb-card__title { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.2rem,2.6vw,1.55rem); letter-spacing: -.02em; }
.rb-card__hint { color: var(--ink-soft); font-size: .92rem; margin-top: .3rem; max-width: 60ch; }

.rb-allbtn { margin-left: auto; display: inline-flex; align-items: center; gap: .5rem; font-size: .88rem; color: var(--ink-soft); cursor: pointer; white-space: nowrap; }
.rb-chip { background: #eafaf2; color: #138a55; border-radius: 999px; padding: .4rem 1rem; font-size: .9rem; font-weight: 500; }

/* ---------- Custom checkbox ---------- */
.rb-chk { position: relative; display: inline-flex; align-items: center; cursor: pointer; }
.rb-chk input { position: absolute; opacity: 0; width: 0; height: 0; }
.rb-chk__box { width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid #c7c9d6; background: #fff; transition: .15s var(--ease); flex: none; position: relative; }
.rb-chk input:checked + .rb-chk__box { background: var(--indigo); border-color: var(--indigo); }
.rb-chk input:checked + .rb-chk__box::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.rb-chk input:focus-visible + .rb-chk__box { box-shadow: 0 0 0 3px rgba(58,54,224,.25); }

/* ---------- Chapters accordion ---------- */
.rb-chapters { margin-top: 1.6rem; display: flex; flex-direction: column; gap: .7rem; }
.rb-chap { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; transition: border-color .2s var(--ease), box-shadow .2s var(--ease); }
.rb-chap:hover { border-color: #d6d4f5; box-shadow: var(--shadow-sm); }
.rb-chap__bar { display: flex; align-items: center; gap: .9rem; padding: .9rem 1.1rem; }
.rb-chap__cb { } /* hidden input handled by .rb-chk */
.rb-chap__toggle { flex: 1; display: flex; align-items: center; gap: .8rem; background: none; border: none; cursor: pointer; text-align: left; padding: 0; font-family: inherit; }
.rb-chap__no { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .06em; color: var(--muted); background: #f3f3f8; padding: .25rem .5rem; border-radius: 6px; white-space: nowrap; }
.rb-chap__title { font-size: 1.04rem; color: var(--ink); flex: 1; }
.rb-chap__count { font-size: .8rem; color: var(--muted); white-space: nowrap; }
.rb-chap__chev { color: var(--muted); transition: transform .3s var(--ease); flex: none; }
.rb-chap.is-open .rb-chap__chev { transform: rotate(180deg); }

.rb-tag { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; padding: .22rem .55rem; border-radius: 999px; font-weight: 500; white-space: nowrap; }
.rb-tag--fixed { background: #eef0ff; color: var(--indigo); }
.rb-tag--dyn { background: #fff1e9; color: #d2691b; }

.rb-chap__body { border-top: 1px dashed var(--line); padding: .4rem 1.1rem 1rem 3.4rem; background: #fcfcfe; }
.rb-secs { list-style: none; padding: 0; columns: 2; column-gap: 2rem; }
.rb-secs li { break-inside: avoid; padding: .42rem 0; font-size: 1rem; color: var(--ink-soft); display: flex; gap: .55rem; }
.rb-secs__no { font-family: var(--font-mono); font-size: .9rem; color: var(--indigo); flex: none; min-width: 2.4em; }

/* dimmed when chapter unchecked */
.rb-chap.is-off { opacity: .5; }

/* ---------- Geography ---------- */
.rb-geo { margin-top: 1.6rem; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.rb-region { border: 1px solid var(--line); border-radius: 14px; padding: 1.1rem 1.2rem; }
.rb-region__head { gap: .7rem; }
.rb-region__name { font-size: 1.02rem; color: var(--ink); font-weight: 500; }
.rb-countries { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .9rem; padding-left: 1.9rem; }
.rb-pill { display: inline-flex; align-items: center; gap: .45rem; background: #f4f4f8; border: 1px solid #ededf3; border-radius: 999px; padding: .4rem .8rem .4rem .55rem; font-size: .85rem; color: #34354a; cursor: pointer; transition: .15s var(--ease); }
.rb-pill:hover { border-color: var(--indigo); }
.rb-pill input { accent-color: var(--indigo); width: 15px; height: 15px; }
.rb-flag { width: 20px; height: 15px; border-radius: 3px; object-fit: cover; flex: none; box-shadow: 0 0 0 1px rgba(0,0,0,.07); }
.rb-flag--globe { display: inline-grid; place-items: center; width: 18px; height: 18px; box-shadow: none; color: var(--muted); }
.rb-pill:has(input:checked) { background: #eef0ff; border-color: #c9caf6; }
.rb-pill--co { padding: .5rem 1rem .5rem .65rem; font-size: .9rem; }

/* Per-region add-country control */
.rb-region__add { display: flex; gap: .5rem; margin-top: .9rem; padding-left: 1.9rem; }
.rb-region__input { flex: 1; min-width: 0; border: 1px solid var(--line); border-radius: 10px; padding: .5rem .75rem; font-size: .85rem; outline: none; transition: border-color .2s var(--ease); }
.rb-region__input:focus { border-color: var(--indigo); box-shadow: 0 0 0 3px rgba(58,54,224,.1); }
.rb-region__addbtn { border: 1px dashed #c7c9d6; background: #fff; color: var(--indigo); border-radius: 10px; padding: .5rem .85rem; font-size: .82rem; font-weight: 500; cursor: pointer; white-space: nowrap; transition: .15s var(--ease); }
.rb-region__addbtn:hover { border-color: var(--indigo); background: rgba(58,54,224,.05); }

.rb-addrow { display: flex; gap: .7rem; margin-top: 1.4rem; flex-wrap: wrap; }
.rb-input { flex: 1 1 260px; border: 1.5px solid var(--line); border-radius: 12px; padding: .8rem 1rem; font-size: .95rem; outline: none; transition: border-color .2s var(--ease); }
.rb-input:focus { border-color: var(--indigo); box-shadow: 0 0 0 3px rgba(58,54,224,.12); }

/* "Specific countries only" toggle (switch) */
.rb-switch { margin-left: auto; display: inline-flex; align-items: center; gap: .6rem; cursor: pointer; font-size: .88rem; color: var(--ink-soft); white-space: nowrap; user-select: none; }
.rb-switch input { position: absolute; opacity: 0; width: 0; height: 0; }
.rb-switch__track { position: relative; width: 42px; height: 24px; border-radius: 999px; background: #d4d6e3; transition: background .2s var(--ease); flex: none; }
.rb-switch__thumb { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .2s var(--ease); }
.rb-switch input:checked + .rb-switch__track { background: var(--indigo); }
.rb-switch input:checked + .rb-switch__track .rb-switch__thumb { transform: translateX(18px); }
.rb-switch input:focus-visible + .rb-switch__track { box-shadow: 0 0 0 3px rgba(58,54,224,.25); }
.rb-switch__lbl { font-weight: 500; }

/* Specific-countries mode: hide the default region grid, show the 1–10 picker */
.rb-geo__shint { display: none; margin: 0; color: var(--ink-soft); font-size: .95rem; }
.rb-geo.is-single { display: block; }
.rb-geo.is-single .rb-geo__shint { display: block; margin-bottom: 1rem; }
.rb-geo.is-single .rb-region:not(.rb-region--custom) { display: none; }

/* Removable custom-country chip */
.rb-pill--rm { padding-right: .35rem; cursor: default; }
.rb-pill__x { border: 0; background: none; cursor: pointer; color: var(--muted); font-size: 1.15rem; line-height: 1; padding: 0 .2rem; }
.rb-pill__x:hover { color: #e5484d; }

/* ---------- Companies ---------- */
.rb-companies { margin-top: 1.6rem; display: flex; flex-wrap: wrap; gap: .6rem; }
.rb-empty { color: var(--ink-soft); font-size: .95rem; line-height: 1.5; max-width: 70ch; }
.rb-profile { margin-top: 1.8rem; background: linear-gradient(135deg, #f7f7ff, #fdfbf7); border: 1px solid var(--line); border-radius: 16px; padding: 1.4rem 1.5rem; }
.rb-profile__head { font-weight: 500; color: var(--ink); margin-bottom: 1rem; }
.rb-profile__grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2,1fr); gap: .6rem 1.5rem; }
.rb-profile__grid li { display: flex; align-items: center; gap: .55rem; font-size: .92rem; color: var(--ink-soft); }
.rb-profile__grid svg { color: #1faa6b; flex: none; }

/* ---------- Build CTA ---------- */
.rb-cta {
  position: relative; overflow: hidden;
  margin-top: 1.8rem; border-radius: var(--radius-lg); padding: clamp(1.6rem,4vw,2.6rem);
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap;
  background: radial-gradient(120% 160% at 0% 0%, #2a27c4 0%, #3a36e0 45%, #6a4bff 100%); color: #fff;
  box-shadow: 0 24px 60px rgba(58,54,224,.32);
}
/* Up-and-right growth arrow watermark, recoloured white over the indigo */
.rb-cta::after {
  content: ''; position: absolute; z-index: 0; pointer-events: none; right: 10px; bottom: 0px;
  width: min(440px, 50%); aspect-ratio: 850 / 350;
  background: url("../../images/cross-arrow.png") right bottom / contain no-repeat;
  filter: brightness(0) invert(1); opacity: .15;
}
.rb-cta > * { position: relative; z-index: 1; }
.rb-cta h2 { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.3rem,3vw,1.9rem); letter-spacing: -.02em; }
.rb-cta p { color: rgba(255,255,255,.85); margin-top: .4rem; font-size: .95rem; }
.rb-cta__btn { background: #fff; color: var(--indigo); padding: 1rem 1.8rem; font-size: 1.05rem; box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.rb-cta__btn:hover { background: #fff; color: var(--indigo-600); transform: translateY(-2px); }

/* ---------- Email modal ---------- */
.rb-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 1.2rem; }
.rb-modal[hidden] { display: none; }
.rb-modal__backdrop { position: absolute; inset: 0; background: rgba(10,13,34,.55); backdrop-filter: blur(4px); animation: rbFade .25s var(--ease); }
.rb-modal__panel { position: relative; width: min(520px, 100%); background: #fff; border-radius: var(--radius-lg); padding: clamp(1.6rem,4vw,2.6rem); box-shadow: var(--shadow-lg); animation: rbPop .3s var(--ease); }
@keyframes rbFade { from { opacity: 0; } }
@keyframes rbPop { from { opacity: 0; transform: translateY(16px) scale(.98); } }
.rb-modal__x { position: absolute; right: 1.1rem; top: .9rem; background: none; border: none; font-size: 1.6rem; line-height: 1; color: var(--muted); cursor: pointer; }
.rb-modal__kicker { display: inline-flex; align-items: center; gap: .5rem; color: var(--indigo); font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; }
.rb-modal__title { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.3rem,3vw,1.7rem); letter-spacing: -.02em; margin: .8rem 0 .6rem; line-height: 1.15; }
.rb-modal__text { color: var(--ink-soft); font-size: .96rem; line-height: 1.5; }
.rb-modal__form { margin-top: 1.4rem; }
.rb-field { display: block; }
.rb-field span { display: block; font-size: .82rem; color: var(--ink-soft); margin-bottom: .4rem; }
.rb-field input { width: 100%; border: 1.5px solid var(--line); border-radius: 12px; padding: .9rem 1rem; font-size: 1rem; outline: none; transition: border-color .2s var(--ease); }
.rb-field input:focus { border-color: var(--indigo); box-shadow: 0 0 0 3px rgba(58,54,224,.12); }
.rb-field--bad input, .rb-field input:invalid:not(:placeholder-shown) { }
.rb-field__err { color: #d6334b; font-size: .85rem; margin-top: .5rem; }
.rb-modal__submit { width: 100%; justify-content: center; margin-top: 1.1rem; padding: 1rem; font-size: 1.02rem; }
.rb-modal__fine { font-size: .78rem; color: var(--muted); text-align: center; margin-top: .9rem; line-height: 1.4; }
.rb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* ---------- Social login buttons ---------- */
.rb-social { display: grid; gap: .7rem; margin-top: 1.4rem; }
.rb-social__btn {
  display: flex; align-items: center; justify-content: center; gap: .7rem;
  border: 1.5px solid var(--line); border-radius: 12px; padding: .85rem 1rem;
  font-weight: 500; color: var(--ink); background: #fff; transition: .18s var(--ease);
}
.rb-social__btn:hover { border-color: #c7c9d6; background: #fafafe; transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.rb-or { display: flex; align-items: center; gap: 1rem; margin: 1.3rem 0 .4rem; color: var(--muted); font-size: .82rem; }
.rb-or::before, .rb-or::after { content: ""; flex: 1; height: 1px; background: var(--line); }

/* ---------- OTP screen (bg-2) ---------- */
.rb-otp {
  position: fixed; inset: 0; z-index: 250; display: grid; place-items: center; padding: 1.2rem;
  background: #ffffff url("../../images/bg-2.svg") center/cover no-repeat;
}
.rb-otp[hidden] { display: none; }
.rb-otp__card {
  width: min(520px, 100%); background: rgba(255,255,255,.97); border-radius: var(--radius-lg);
  padding: clamp(1.8rem,5vw,3rem); text-align: center; box-shadow: var(--shadow-lg);
  animation: rbPop .35s var(--ease);
}
.rb-otp__ready { display: inline-flex; align-items: center; gap: .5rem; color: #138a55; font-size: .82rem; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.rb-otp__check { width: 22px; height: 22px; border-radius: 50%; background: #1faa6b; color: #fff; display: grid; place-items: center; }
.rb-otp__title { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.5rem,4vw,2.1rem); letter-spacing: -.02em; margin: .8rem 0 .5rem; line-height: 1.12; }
.rb-otp__sub { color: var(--ink-soft); font-size: .96rem; line-height: 1.5; }
.rb-otp__sub b { color: var(--ink); }
.rb-otp__boxes { display: flex; justify-content: center; gap: .6rem; margin: 1.8rem 0 .6rem; }
.rb-otp__box {
  width: 52px; height: 60px; text-align: center; font-size: 1.6rem; font-weight: 500;
  border: 1.5px solid var(--line); border-radius: 12px; outline: none; color: var(--ink);
  transition: border-color .15s var(--ease), box-shadow .15s var(--ease);
}
.rb-otp__box:focus { border-color: var(--indigo); box-shadow: 0 0 0 4px rgba(58,54,224,.14); }
.rb-otp__err { color: #d6334b; font-size: .88rem; margin: .3rem 0; }
.rb-otp__verify { width: 100%; justify-content: center; padding: 1rem; font-size: 1.02rem; margin-top: 1rem; }
.rb-otp__foot { display: flex; justify-content: center; gap: 1.4rem; margin-top: 1.2rem; }
.rb-otp__link { background: none; border: none; cursor: pointer; color: var(--indigo); font-size: .9rem; font-family: inherit; }
.rb-otp__link:disabled { color: var(--muted); cursor: default; }
.rb-otp__dev { margin-top: 1.2rem; font-size: .8rem; color: var(--muted); background: #f3f3f8; border-radius: 8px; padding: .5rem; }

/* ---------- Workspace (report-view) ---------- */
.rv { max-width: none; margin: 0; padding: clamp(1.5rem,3vw,2.5rem) clamp(1rem,4vw,3rem) 5rem; position: relative; }
.rvgen { max-width: 900px; margin-left: auto; margin-right: auto; }
.rv__hi { display: inline-flex; align-items: center; gap: .55rem; color: var(--ink-soft); font-size: .9rem; }
.rv__hi b { color: var(--ink); }
.rv__title { font-family: var(--font-head); font-weight: 500; letter-spacing: -.03em; font-size: clamp(2rem,5vw,3rem); margin: 1rem 0 .6rem; line-height: 1.05; }
.rv__sub { color: var(--ink-soft); font-size: 1.05rem; max-width: 60ch; }
.rv__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin: 2.2rem 0; }
.rv__stat { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 1.3rem; box-shadow: var(--shadow-sm); }
.rv__n { display: block; font-family: var(--font-head); font-weight: 500; font-size: 1.7rem; color: var(--indigo); }
.rv__l { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
.rv__panels { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.rv__panel { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 1.4rem 1.5rem; }
.rv__panel h2 { font-family: var(--font-head); font-weight: 500; font-size: 1.1rem; margin-bottom: 1rem; }
.rv__tags { display: flex; flex-wrap: wrap; gap: .5rem; }
.rv__tag { background: #eef0ff; color: var(--indigo); border-radius: 999px; padding: .35rem .8rem; font-size: .82rem; }
.rv__muted { color: var(--muted); font-size: .9rem; }
.rv__note { margin-top: 1.6rem; background: linear-gradient(135deg,#f7f7ff,#fdfbf7); border: 1px solid var(--line); border-radius: 16px; padding: 1.4rem 1.6rem; color: var(--ink-soft); line-height: 1.6; }
.rv__note b { color: var(--ink); }
.rv__actions { display: flex; gap: 1rem; margin-top: 2rem; flex-wrap: wrap; }

/* ---------- Generation experience ---------- */
.rvgen {
  margin-top: 2rem; text-align: center;
  background: radial-gradient(120% 140% at 50% -10%, #1a1f6b 0%, #0c1138 60%, #080a26 100%);
  color: #fff; border-radius: var(--radius-lg); padding: clamp(2.5rem,6vw,4.5rem) 1.5rem;
  position: relative; overflow: hidden;
}
.rvgen[hidden] { display: none; }
.rvgen::after {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.10) 1px, transparent 1px);
  background-size: 22px 22px; opacity: .4; pointer-events: none;
}
.rvgen > * { position: relative; z-index: 1; }
.rvgen__brain { display: inline-flex; gap: .55rem; margin-bottom: 1.6rem; }
.rvgen__brain span { width: 14px; height: 14px; border-radius: 50%; background: #8b5cf6; animation: rbBrain 1s var(--ease) infinite; }
.rvgen__brain span:nth-child(2){ animation-delay:.12s; background:#6a4bff; }
.rvgen__brain span:nth-child(3){ animation-delay:.24s; background:#b794ff; }
.rvgen__brain span:nth-child(4){ animation-delay:.36s; background:#4f46ff; }
.rvgen__head { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.4rem,3.4vw,2.2rem); letter-spacing:-.02em; }
.rvgen__line { color: #c9cbf2; margin-top: .9rem; min-height: 1.5em; transition: opacity .3s var(--ease); font-size: 1.02rem; }
.rvgen__bar { margin: 1.8rem auto 0; max-width: 560px; height: 8px; border-radius: 999px; background: rgba(255,255,255,.14); overflow: hidden; }
.rvgen__bar i { display: block; height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg,#6a4bff,#b794ff); transition: width .5s var(--ease); }
.rvgen__meta { margin-top: .9rem; color: #aeb1e0; font-size: .9rem; }
.rvgen__facts { list-style: none; padding: 0; margin: 2.2rem auto 0; max-width: 640px; display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.rvgen__facts li { font-size: .82rem; color: #b9bced; line-height: 1.4; }
.rvgen__facts b { display: block; color: #fff; font-size: 1.05rem; font-weight: 500; margin-bottom: .2rem; }

/* Market-data chips shown on the build / reused-loader screen */
.rvgen__stats { list-style: none; padding: 0; margin: 1.6rem auto 0; max-width: 560px; display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }
.rvgen__stats li { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 12px; padding: .55rem .95rem; min-width: 118px; }
.rvgen__stats span { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; color: #aeb1e0; margin-bottom: .15rem; }
.rvgen__stats b { color: #fff; font-weight: 500; font-size: 1.02rem; }

/* ---------- Ready state ---------- */
.rvready[hidden] { display: none; }
.rvready__badge { display: inline-flex; align-items: center; gap: .5rem; color: #138a55; font-size: .8rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; margin-top: 2rem; }
.rvready__title { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.5rem,3.6vw,2.3rem); letter-spacing:-.02em; margin: .8rem 0 .5rem; }
.rvready__sub { color: var(--ink-soft); font-size: 1.05rem; max-width: 64ch; }

@media (max-width: 600px) {
  .rvgen__facts { grid-template-columns: 1fr; }
}

/* =========================================================
   REPORT APP (Study)
   ========================================================= */
.rvapp[hidden] { display: none; }
.rvapp__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.rvapp__eyebrow { display: inline-flex; align-items: center; gap: .5rem; color: var(--indigo); font-size: .76rem; text-transform: uppercase; letter-spacing: .12em; }
.rvapp__market { font-family: var(--font-head); font-weight: 500; letter-spacing: -.03em; font-size: clamp(1.7rem,4.4vw,2.4rem); line-height: 1.05; margin-top: .5rem; }
.rvapp__titlerow { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.rvapp__sample {
  display: inline-flex; align-items: center; gap: .45rem;
  background: #fff; border: 1.5px solid var(--indigo); color: var(--indigo);
  border-radius: 999px; padding: .42rem .9rem; font-size: .85rem; font-weight: 500;
  white-space: nowrap; transition: background .18s var(--ease), color .18s var(--ease), transform .18s var(--ease);
}
.rvapp__sample:hover { background: var(--indigo); color: #fff; transform: translateY(-1px); }
.rvapp__dl {
  display: inline-flex; align-items: center; gap: .45rem;
  background: var(--indigo); border: 1.5px solid var(--indigo); color: #fff;
  border-radius: 999px; padding: .42rem .9rem; font-size: .85rem; font-weight: 500;
  white-space: nowrap; cursor: pointer; font-family: inherit;
  transition: background .18s var(--ease), transform .18s var(--ease), box-shadow .18s var(--ease);
}
.rvapp__dl:hover { background: #2a27c4; border-color: #2a27c4; transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.rvapp__user { font-size: .85rem; color: var(--muted); }

/* Live sync indicator in the eyebrow */
.rvlive { display: inline-flex; align-items: center; gap: .35rem; margin-left: .8rem; font-size: .7rem; font-weight: 500; color: #14b8a6; opacity: .55; transition: opacity .25s var(--ease); }
.rvlive.is-live { opacity: 1; }
.rvlive__dot { width: 6px; height: 6px; border-radius: 50%; background: #14b8a6; box-shadow: 0 0 0 0 rgba(20,184,166,.6); animation: rvLivePulse 1.8s infinite; }
@keyframes rvLivePulse { 70% { box-shadow: 0 0 0 6px rgba(20,184,166,0);} 100% { box-shadow: 0 0 0 0 rgba(20,184,166,0);} }

/* Tabs */
.rvtabs { display: flex; gap: .3rem; border-bottom: 1px solid var(--line); margin-bottom: 1.2rem; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; }
.rvtabs::-webkit-scrollbar { display: none; }
.rvtab { background: none; border: none; cursor: pointer; font-family: inherit; font-size: .98rem; color: var(--ink-soft); padding: .8rem 1.1rem; border-bottom: 2px solid transparent; display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap; scroll-snap-align: start; transition: color .2s var(--ease); }
.rvtab:hover { color: var(--ink); }
.rvtab.is-active { color: var(--indigo); border-bottom-color: var(--indigo); font-weight: 500; }
.rvtab.is-locked:hover { color: var(--ink); }
.rvtab svg { color: var(--indigo); width: 15px; height: 15px; flex: none; opacity: .9; }
@media (max-width: 640px) {
  .rvtabs { gap: .1rem; margin-bottom: 1rem; }
  .rvtab { font-size: .9rem; padding: .65rem .6rem; gap: .3rem; }
  .rvtab svg { width: 13px; height: 13px; }
  .rvapp__head { align-items: flex-start; }
  .rvapp__user { font-size: .78rem; word-break: break-all; }
}

.rvpanel[hidden] { display: none; }

/* Unlock banner */
.rvunlock { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  background: linear-gradient(120deg, #eef0ff, #f7f1ff); border: 1px solid #dcdcff; border-radius: 16px; padding: 1rem 1.4rem; margin-bottom: 1.4rem; }
.rvunlock__txt { color: var(--ink-soft); font-size: .95rem; }
.rvunlock__txt b { color: var(--ink); }

/* ===================== Unlock CTA — split layout (left pitch + right pricing card) */
.rvbuy {
  margin-top: 2.4rem; border-radius: 22px; overflow: hidden; position: relative; color: #fff;
  background: linear-gradient(135deg, #1f1a8c 0%, #2a27c4 35%, #4b3df0 70%, #5d49ff 100%);
  box-shadow: 0 30px 70px rgba(58,54,224,.35);
}
.rvbuy::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .35;
  background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px);
  background-size: 24px 24px;
}
/* Growth-arrow watermark rising from the blue pitch toward the white pricing card */
.rvbuy::before {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  left: 25%; bottom: 0%; width: min(500px, 50%); aspect-ratio: 850 / 350;
  background: url("../../images/cross-arrow.png") center / contain no-repeat;
  filter: brightness(0) invert(1); opacity: .14;
}
@media (max-width: 820px) { .rvbuy::before { display: none; } }
.rvbuy__in {
  position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, 1fr);
  gap: clamp(1.6rem, 4vw, 3rem); padding: clamp(2rem, 4.5vw, 3.2rem);
  align-items: start;
}

/* ---- Left: pitch ---- */
.rvbuy__left { min-width: 0; }
.rvbuy__eyebrow {
  display: inline-flex; align-items: center; gap: .55rem; font-size: .76rem;
  text-transform: uppercase; letter-spacing: .16em; color: #ffffff; font-weight: 500;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18);
  padding: .45rem .9rem; border-radius: 999px;
}
.rvbuy__eyebrow .rb-pulse { background: #5dffa9; box-shadow: 0 0 0 0 rgba(93,255,169,.6); }
.rvbuy__title {
  font-family: var(--font-head); font-weight: 500; letter-spacing: -.025em;
  font-size: clamp(1.7rem, 3.6vw, 2.6rem); line-height: 1.08; margin: 1rem 0 .7rem; color: #fff;
}
.rvbuy__sub { color: rgba(255,255,255,.85); max-width: 560px; line-height: 1.55; font-size: 1rem; }
.rvbuy__list {
  list-style: none; padding: 0; margin: 1.8rem 0 1.6rem;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem 1.6rem; max-width: 620px;
}
.rvbuy__list li { position: relative; padding-left: 2rem; color: #ffffff; font-size: .95rem; line-height: 1.45; }
.rvbuy__list li::before {
  content: "\2713"; position: absolute; left: 0; top: 1px;
  width: 22px; height: 22px; border-radius: 50%;
  background: rgba(255,255,255,.16); color: #fff; font-size: .72rem;
  display: grid; place-items: center;
}
.rvbuy__trust { color: rgba(255,255,255,.78); font-size: .85rem; display: inline-flex; align-items: center; gap: .65rem; margin-top: .3rem; }
.rvbuy__dots { display: inline-flex; }
.rvbuy__dots i { width: 22px; height: 22px; border-radius: 50%; display: inline-block; border: 2px solid rgba(31,26,140,.85); margin-left: -8px; }
.rvbuy__dots i:nth-child(1) { background: #6a4bff; margin-left: 0; }
.rvbuy__dots i:nth-child(2) { background: #b292ff; }
.rvbuy__dots i:nth-child(3) { background: #5dffa9; }

/* Compliance / trust badges (bottom-left of the pitch) */
.rvbuy__certs {
  list-style: none; padding: 0; margin: 1.6rem 0 0;
  display: flex; flex-wrap: wrap; align-items: center; gap: .85rem;
}
.rvbuy__certs li {
  display: inline-flex; align-items: center; justify-content: center;
  background: #ffffff; border: 1px solid rgba(255,255,255,.6);
  border-radius: 14px; padding: .75rem 1.1rem; min-width: 96px; height: 72px;
  box-shadow: 0 8px 20px rgba(15,13,46,.22);
  transition: transform .18s var(--ease), box-shadow .18s var(--ease);
}
.rvbuy__certs li:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(15,13,46,.28); }
.rvbuy__certs img { display: block; max-height: 60px; max-width: 140px; width: auto; height: auto; object-fit: contain; }

/* ---- Right: pricing card ---- */
.rvbuy__card {
  position: relative; background: #ffffff; color: var(--ink); border-radius: 18px; padding: 1.6rem 1.5rem;
  box-shadow: 0 24px 56px rgba(15,13,46,.32); display: flex; flex-direction: column; gap: .8rem;
}
.rvbuy__ssl { position: absolute; top: 3rem; right: 2rem; width: clamp(48px, 9vw, 150px); height: auto; opacity: .95; pointer-events: none; }
.rvbuy__cardEy { font-size: .72rem; text-transform: uppercase; letter-spacing: .18em; color: var(--muted); margin: 0 0 .15rem; font-weight: 500; }
.rvbuy__priceRow { display: flex; align-items: baseline; gap: .9rem; flex-wrap: wrap; margin: 0; }
.rvbuy__priceNow { font-family: var(--font-head); font-weight: 500; letter-spacing: -.03em; font-size: clamp(2.6rem, 5vw, 3.4rem); color: var(--ink); line-height: 1; }
.rvbuy__priceWas { display: inline-flex; flex-direction: column; align-items: flex-start; gap: .15rem; line-height: 1.1; }
.rvbuy__priceWas s { color: var(--muted); font-size: 1.05rem; text-decoration-thickness: 1.5px; }
.rvbuy__save { color: #14b8a6; font-weight: 500; font-size: .9rem; }
.rvbuy__cardSub { color: var(--ink-soft); font-size: .9rem; margin: 0; }
.rvbuy__rule { border: 0; height: 1px; background: var(--line); margin: .9rem 0 .5rem; }
.rvbuy__cardList { list-style: none; padding: 0; margin: 0 0 .5rem; display: flex; flex-direction: column; gap: .55rem; }
.rvbuy__cardList li { position: relative; padding-left: 1.6rem; color: var(--ink); font-size: .95rem; line-height: 1.5; }
.rvbuy__cardList li::before {
  content: "\2713"; position: absolute; left: 0; top: 2px;
  color: var(--indigo); font-weight: 700; font-size: .95rem;
}
.rvbuy__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  width: 100%; padding: 1.05rem 1.4rem; font: inherit; font-size: 1.04rem; font-weight: 500;
  background: linear-gradient(135deg, #3a36e0 0%, #5d49ff 100%); color: #fff;
  border: 0; border-radius: 14px; cursor: pointer;
  box-shadow: 0 14px 34px rgba(58,54,224,.32);
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), filter .18s var(--ease);
  margin-top: .25rem;
}
.rvbuy__btn:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgba(58,54,224,.38); filter: brightness(1.05); }
.rvbuy__btn svg { transition: transform .18s var(--ease); }
.rvbuy__btn:hover svg { transform: translateX(3px); }
.rvbuy__cardFine { display: inline-flex; align-items: center; gap: .4rem; justify-content: center; font-size: .82rem; color: var(--muted); margin: 0; }
.rvbuy__cardFine svg { color: var(--muted); }
.rvbuy__mbg {
  display: flex; align-items: flex-start; gap: .55rem;
  background: #edfaf3; border: 1px solid #b9ead0; color: #0f6e44;
  border-radius: 12px; padding: .65rem .8rem; font-size: .86rem; line-height: 1.45; margin: .3rem 0 0;
}
.rvbuy__mbg b { color: #0a4d30; font-weight: 500; }
.rvbuy__mbg svg { color: #14b8a6; margin-top: 1px; flex: none; }

/* Responsive */
@media (max-width: 880px) {
  .rvbuy__in { grid-template-columns: 1fr; }
  .rvbuy__card { order: 2; }
}
@media (max-width: 560px) {
  .rvbuy__list { grid-template-columns: 1fr; }
}

/* Inline paywall — the unlock pricing block rendered inside the reading pane when a
   guest opens a locked section. Compact two-column (pitch + pointers left, white card
   right) with the certifications in a full-width footer, sized to sit within the first
   pane without scrolling. Reuses the bottom CTA's look at a tighter scale. */
.rvbuy--inline { margin: 0; border-radius: 18px; box-shadow: 0 18px 48px rgba(58,54,224,.28); }
.rvbuy--inline .rvbuy__in--cols {
  grid-template-columns: minmax(0, 1.2fr) minmax(232px, .82fr);
  gap: clamp(1.1rem, 2.5vw, 1.8rem);
  padding: clamp(1.3rem, 2.6vw, 1.9rem);
  align-items: center;
}
/* tighter typography so the whole block stays above the fold */
.rvbuy--inline .rvbuy__eyebrow { margin-bottom: .5rem; font-size: .68rem; }
.rvbuy--inline .rvbuy__title { font-size: clamp(1.35rem, 2.4vw, 1.95rem); line-height: 1.12; }
.rvbuy--inline .rvbuy__sub { font-size: .9rem; margin: .5rem 0 0; max-width: none; }
.rvbuy--inline .rvbuy__list { margin: .9rem 0 0; gap: .45rem 1.1rem; }
.rvbuy--inline .rvbuy__list li { font-size: .85rem; padding-left: 1.7rem; }
.rvbuy--inline .rvbuy__list li::before { width: 18px; height: 18px; font-size: .62rem; }
.rvbuy--inline .rvbuy__card { padding: 1.1rem 1.2rem; }
.rvbuy--inline .rvbuy__cardEy { font-size: .66rem; }
.rvbuy--inline .rvbuy__priceNow { font-size: clamp(2rem, 4vw, 2.6rem); }
.rvbuy--inline .rvbuy__priceWas s { font-size: .95rem; }
.rvbuy--inline .rvbuy__save { font-size: .82rem; }
.rvbuy--inline .rvbuy__cardSub { font-size: .82rem; }
.rvbuy--inline .rvbuy__rule { margin: .7rem 0 .45rem; }
.rvbuy--inline .rvbuy__cardList { margin-bottom: .45rem; gap: .4rem; }
.rvbuy--inline .rvbuy__cardList li { font-size: .86rem; padding-left: 1.5rem; }
.rvbuy--inline .rvbuy__btn { width: 100%; padding: .8rem 1rem; margin-top: .3rem; }
.rvbuy--inline .rvbuy__cardFine { font-size: .76rem; flex-wrap: wrap; }
.rvbuy--inline .rvbuy__cardFine b { color: var(--ink-soft); font-weight: 500; }
/* Full-width footer: trust line + compliance badges below the two columns */
.rvbuy__foot {
  position: relative; z-index: 1;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1rem 1.4rem; border-top: 1px solid rgba(255,255,255,.14);
  padding: clamp(.9rem, 2vw, 1.2rem) clamp(1.3rem, 2.6vw, 1.9rem) clamp(1.1rem, 2.4vw, 1.5rem);
}
.rvbuy__foot .rvbuy__trust { margin: 0; }
.rvbuy__foot .rvbuy__certs { margin: 0; gap: .6rem; }
.rvbuy__foot .rvbuy__certs li { height: 52px; min-width: 76px; padding: .45rem .7rem; border-radius: 11px; }
.rvbuy__foot .rvbuy__certs img { max-height: 32px; max-width: 100px; }

/* ===== Visualize — 6 KPI hero cards (rebuilt, filled live by report-viz.js) ===== */
.rvkcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(212px, 1fr)); gap: 14px; margin: 0 0 24px; }
.rvkcard {
  position: relative; overflow: hidden; border-radius: 16px; padding: 17px 18px 15px;
  color: #fff; min-height: 132px; display: flex; flex-direction: column; gap: 9px;
  box-shadow: 0 14px 34px rgba(20, 20, 50, .16);
  animation: rvkIn .5s var(--ease) both; animation-delay: calc(var(--d, 0) * 65ms);
}
.rvkcard::after { content: ""; position: absolute; right: -34px; top: -34px; width: 124px; height: 124px; border-radius: 50%; background: rgba(255, 255, 255, .12); pointer-events: none; }
.rvkcard__head { display: flex; align-items: center; gap: 8px; font-size: .72rem; font-weight: 500; text-transform: uppercase; letter-spacing: .1em; opacity: .95; position: relative; z-index: 1; }
.rvkcard__ico { display: inline-flex; opacity: .92; }
.rvkcard__val { font-family: var(--font-head); font-weight: 500; letter-spacing: -.02em; font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.04; position: relative; z-index: 1; }
.rvkcard__sub { font-size: .82rem; opacity: .92; margin-top: auto; position: relative; z-index: 1; }
.rvkcard[data-kpi="largest"] .rvkcard__val,
.rvkcard[data-kpi="fastest"] .rvkcard__val { font-size: clamp(1.15rem, 2vw, 1.42rem); }
.rvkcard--indigo { background: linear-gradient(135deg, #3a36e0, #5b57e8); }
.rvkcard--violet { background: linear-gradient(135deg, #6a4bff, #8b5cf6); }
.rvkcard--teal   { background: linear-gradient(135deg, #0ea5a0, #14b8a6); }
.rvkcard--amber  { background: linear-gradient(135deg, #f59e0b, #f97316); }
.rvkcard--blue   { background: linear-gradient(135deg, #2563eb, #38bdf8); }
.rvkcard--rose   { background: linear-gradient(135deg, #e11d8f, #f43f5e); }
@keyframes rvkIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rvkcard { animation: none; } }
@media (max-width: 560px) { .rvkcards { grid-template-columns: repeat(2, 1fr); } }

/* ===== Visualize — header + ECharts dashboard ===== */
.rvviz__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px 20px; margin: 0 0 1.1rem; flex-wrap: wrap; }
.rvviz__head { margin: 0; min-width: 220px; flex: 1 1 240px; }
.rvviz__title { font-family: var(--font-head); font-weight: 500; letter-spacing: -.02em; font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin: 0; color: var(--ink); }
.rvviz__sub { color: var(--ink-soft); margin: .25rem 0 0; font-size: .95rem; }
.rvviz__live { display: inline-flex; align-items: center; gap: .35rem; font-size: .58rem; font-weight: 500; text-transform: uppercase; letter-spacing: .07em; color: var(--indigo); background: rgba(58,54,224,.08); border-radius: 99px; padding: .22rem .5rem; white-space: nowrap; vertical-align: middle; position: relative; top: -3px; margin-left: .4rem; }
.rvviz__filters { flex: 0 1 auto; }
.rvviz__charts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rvchart { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px 16px 14px; box-shadow: 0 8px 24px rgba(20,20,50,.05); min-width: 0; display: flex; flex-direction: column; }

/* Preview lock — slides up over a demo chart on hover, only while the Visualizer is locked */
.rvchart__lock { position: absolute; inset: 0; z-index: 4; border: 0; cursor: pointer; font: inherit; width: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .55rem; text-align: center;
  color: #fff; background: linear-gradient(160deg, rgba(31,26,140,.9), rgba(58,54,224,.88) 60%, rgba(93,73,255,.9));
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
  transform: translateY(101%); opacity: 0; transition: transform .38s var(--ease), opacity .25s var(--ease); }
.rvviz--locked .rvchart:hover .rvchart__lock,
.rvviz--locked .rvchart:focus-within .rvchart__lock { transform: translateY(0); opacity: 1; }
.rvchart__lockIco { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.16); box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); }
.rvchart__lockT { font-family: var(--font-head); font-weight: 500; font-size: 1.05rem; padding: 0 1rem; }
.rvchart__lockP { font-size: .82rem; opacity: .92; letter-spacing: .02em; }
.rvchart--wide { grid-column: 1 / -1; }
.rvchart__head { display: flex; align-items: flex-start; justify-content: space-between; gap: .6rem; margin-bottom: .6rem; }
.rvchart__t { font-weight: 500; font-size: 1rem; color: var(--ink); margin: 0; }
.rvchart__s { font-size: .8rem; color: var(--muted); margin: .1rem 0 0; }
.rvchart__badge { font-size: .64rem; text-transform: uppercase; letter-spacing: .08em; color: var(--indigo); background: rgba(58,54,224,.09); border-radius: 99px; padding: .25rem .6rem; white-space: nowrap; height: fit-content; }
.rvchart__plot { width: 100%; height: 300px; }
.rvchart--wide .rvchart__plot { height: 340px; }
.rvchart__read { font-size: .85rem; color: var(--ink-soft); line-height: 1.55; margin: .7rem 0 0; padding-top: .7rem; border-top: 1px dashed var(--line); }
.rvchart__read b { color: var(--ink); font-weight: 500; }
.rvtable__wrap { overflow-x: auto; }
.rvtable { width: 100%; border-collapse: collapse; font-size: .85rem; }
.rvtable th, .rvtable td { padding: .55rem .7rem; text-align: right; border-bottom: 1px solid var(--line); white-space: nowrap; }
.rvtable th:first-child, .rvtable td:first-child { text-align: left; }
.rvtable thead th { color: var(--muted); font-weight: 500; font-size: .76rem; text-transform: uppercase; letter-spacing: .04em; }
.rvtable tbody tr:hover { background: #f7f7fd; }
.rvtable tfoot td { font-weight: 600; color: var(--ink); border-top: 2px solid var(--line); }
@media (max-width: 820px) { .rvviz__charts { grid-template-columns: 1fr; } .rvchart--wide { grid-column: auto; } }

/* ===== Visualize — interactive filter bar ===== */
.rvf { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 10px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 8px 10px; margin: 0; box-shadow: 0 8px 22px rgba(20,20,50,.06); }
.rvf__icon { display: inline-flex; align-items: center; color: var(--indigo); margin-right: auto; padding: 0 .2rem; }
.rvf__g { display: flex; flex-direction: row; align-items: center; gap: 6px; min-width: 0; }
.rvf__g--yr { flex-direction: row; align-items: center; gap: 6px; }
.rvf__lbl { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); font-weight: 500; }
.rvf__g--yr .rvf__lbl { align-self: center; }
.rvf__sel { font-family: inherit; font-size: .86rem; color: var(--ink); background: #f7f7fb; border: 1px solid var(--line); border-radius: 9px; padding: .5rem .7rem; cursor: pointer; }
.rvf__dash { color: var(--muted); }
.rvf__ms { position: relative; }
.rvf__msBtn { display: inline-flex; align-items: center; gap: .4rem; font-family: inherit; font-size: .86rem; color: var(--ink); background: #f7f7fb; border: 1px solid var(--line); border-radius: 9px; padding: .5rem .7rem; cursor: pointer; min-width: 118px; justify-content: space-between; }
.rvf__msBtn[aria-expanded="true"] { border-color: var(--indigo); box-shadow: 0 0 0 3px rgba(58,54,224,.12); }
.rvf__msBtn:hover, .rvf__sel:hover { border-color: #c7c7e6; }
.rvf__ms.is-active .rvf__msBtn { border-color: var(--indigo); color: var(--indigo); background: rgba(58,54,224,.07); }
.rvf__msPop { position: absolute; z-index: 30; top: calc(100% + 6px); right: 0; left: auto; min-width: 210px; max-height: 280px; overflow: auto; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 44px rgba(15,13,46,.18); padding: 6px; }
.rvf__opt { display: flex; align-items: center; gap: .55rem; padding: .45rem .55rem; border-radius: 8px; font-size: .86rem; color: var(--ink); cursor: pointer; }
.rvf__opt:hover { background: #f5f5fb; }
.rvf__opt--all { border-bottom: 1px solid var(--line); border-radius: 0; margin-bottom: 4px; }
.rvf__opt input { accent-color: var(--indigo); width: 15px; height: 15px; flex: none; }
.rvf__reset { margin-left: auto; align-self: center; font-family: inherit; font-size: .82rem; color: var(--indigo); background: none; border: 1px solid var(--line); border-radius: 9px; padding: .5rem .8rem; cursor: pointer; }
.rvf__reset:hover { background: rgba(58,54,224,.06); border-color: var(--indigo); }
@media (max-width: 680px) { .rvf__reset { margin-left: 0; } .rvf__msBtn, .rvf__sel { min-width: 0; } }

/* ===== Visualize — payment-success modal ===== */
.rvvizmodal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; background: rgba(10,14,63,.45); backdrop-filter: blur(3px); opacity: 0; transition: opacity .2s var(--ease); padding: 1rem; }
.rvvizmodal.is-in { opacity: 1; }
.rvvizmodal__card { background: #fff; border-radius: 20px; padding: 2rem 2rem 1.6rem; max-width: 420px; width: 100%; text-align: center; box-shadow: 0 30px 80px rgba(10,14,63,.4); transform: translateY(10px) scale(.98); transition: transform .25s var(--ease); }
.rvvizmodal.is-in .rvvizmodal__card { transform: none; }
.rvvizmodal__ico { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 1rem; color: #fff; background: linear-gradient(135deg, #14b8a6, #3a36e0); box-shadow: 0 12px 30px rgba(20,184,166,.4); }
.rvvizmodal__h { font-family: var(--font-head); font-weight: 500; font-size: 1.4rem; color: var(--ink); margin: 0 0 .4rem; }
.rvvizmodal__p { color: var(--ink-soft); line-height: 1.6; margin: 0 0 1.3rem; font-size: .95rem; }
.rvvizmodal__ok { width: 100%; }

/* ===== Visualize — 3-column dashboard ===== */
.rvviz__pay { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin: 0 0 18px; padding: 18px 22px; border-radius: 18px; color: #fff; background: linear-gradient(135deg, #1f1a8c, #3a36e0 55%, #5d49ff); box-shadow: 0 18px 44px rgba(58,54,224,.30); position: relative; overflow: hidden; }
.rvviz__pay::after { content: ""; position: absolute; right: -40px; top: -40px; width: 160px; height: 160px; border-radius: 50%; background: rgba(255,255,255,.10); }
.rvviz__payL { display: flex; align-items: center; gap: 14px; position: relative; z-index: 1; min-width: 0; }
.rvviz__payIco { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: rgba(255,255,255,.16); flex: none; }
.rvviz__payT { margin: 0; font-weight: 500; font-size: 1.1rem; }
.rvviz__payS { margin: .2rem 0 0; font-size: .9rem; color: rgba(255,255,255,.85); }
.rvviz__payR { display: flex; align-items: center; gap: 14px; position: relative; z-index: 1; flex-wrap: wrap; }
.rvviz__payPrice { font-family: var(--font-head); font-weight: 500; font-size: 1.6rem; line-height: 1; white-space: nowrap; }
.rvviz__payPrice em { font-style: normal; font-size: .72rem; opacity: .82; margin-left: .25rem; }

/* ============================================================
   Premium add-on tabs (Benchmarking / GTM / Pitch / Board / Sales)
   ============================================================ */
.rvad { --rvad: #3a36e0; }
.rvad__head { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.4rem; }
.rvad__ico { flex: none; width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; color: #fff; background: var(--rvad); box-shadow: 0 10px 22px rgba(16,18,60,.18); }
.rvad__headTxt { min-width: 0; }
.rvad__eyebrow { margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rvad); }
.rvad__title { margin: .2rem 0 0; font-family: var(--font-head); font-weight: 500; font-size: clamp(1.4rem,3vw,1.9rem); letter-spacing: -.02em; color: var(--ink); }
.rvad__tag { margin: .3rem 0 0; color: var(--ink-soft); font-size: 1rem; line-height: 1.5; }
.rvad__badge { margin-left: auto; flex: none; align-self: flex-start; background: #eafaf2; color: #138a55; border-radius: 999px; padding: .35rem .8rem; font-size: .8rem; font-weight: 600; white-space: nowrap; }

/* payment banner (locked states) */
.rvad__pay { display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap;
  padding: 1.05rem 1.3rem 1.05rem 1.15rem; border-radius: 16px; margin-bottom: 1.6rem;
  background: #fbfcfe; border: 1px solid #e6e8f2; border-left: 4px solid var(--rvad); }
.rvad__payL { display: flex; align-items: center; gap: .85rem; min-width: 0; flex: 1 1 320px; }
.rvad__payIco { flex: none; width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; color: var(--rvad); background: #f2f3fb; }
.rvad__payT { margin: 0; font-weight: 600; color: var(--ink); font-size: 1rem; }
.rvad__payS { margin: .2rem 0 0; color: var(--ink-soft); font-size: .9rem; line-height: 1.45; }
.rvad__payR { display: flex; align-items: center; gap: 1rem; flex: none; }
.rvad__payPrice { font-family: var(--font-head); font-weight: 600; font-size: 1.1rem; color: var(--ink); white-space: nowrap; }
.rvad__payPrice em { font-style: normal; font-size: .7rem; color: var(--muted); font-weight: 400; display: block; }
.btn.rvad__btn { background: var(--rvad); border-color: var(--rvad); }
.btn.rvad__btn:hover { background: var(--rvad); filter: brightness(.93); transform: translateY(-1px); }

/* unlocked "being prepared" banner */
.rvad__ready { display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.3rem; border-radius: 16px; margin-bottom: 1.6rem; background: linear-gradient(180deg,#f3fbf7,#fff); border: 1px solid #cdeede; }
.rvad__readyIco { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #1faa6b; }
.rvad__readyT { margin: 0; font-weight: 600; color: var(--ink); }
.rvad__readyS { margin: .2rem 0 0; color: var(--ink-soft); font-size: .92rem; line-height: 1.5; }

/* what-you-get + sample slides */
.rvad__body { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.35fr); gap: clamp(1.2rem,3vw,2.4rem); align-items: start; }
.rvad__h { margin: 0 0 .9rem; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.rvad__hsub { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--muted); }
.rvad__getsList { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .8rem; }
.rvad__getsList li { display: flex; align-items: flex-start; gap: .6rem; color: var(--ink); font-size: .98rem; line-height: 1.45; }
.rvad__getsList svg { flex: none; margin-top: 3px; color: var(--rvad); }

.rvad__samples { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.rvad__card { position: relative; overflow: hidden; border: 1px solid #ececf4; border-radius: 14px; background: #fff; box-shadow: var(--shadow-sm); transition: transform .2s var(--ease), box-shadow .2s var(--ease); }
.rvad__card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.rvad__mock { padding: 14px 16px 4px; background: linear-gradient(180deg,#fafbff,#fff); }
.rvad__mock svg { display: block; }
.rvad__cardT { padding: .35rem .95rem 1rem; }
.rvad__cardT b { display: block; font-size: .95rem; color: var(--ink); }
.rvad__cardT span { font-size: .82rem; color: var(--muted); }

/* animated slide-up lock (only while the add-on is locked) */
.rvad__lock { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .55rem;
  color: #fff; background: rgba(16,16,40,.74); backdrop-filter: blur(2px);
  transform: translateY(101%); opacity: 0; transition: transform .35s var(--ease), opacity .25s var(--ease); }
.rvad--locked .rvad__card:hover .rvad__lock,
.rvad--locked .rvad__card:focus-within .rvad__lock { transform: translateY(0); opacity: 1; }
.rvad__lockIco { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--rvad); box-shadow: 0 6px 18px rgba(0,0,0,.35); }
.rvad__lockTxt { font-size: .84rem; font-weight: 600; }

@media (max-width: 860px) { .rvad__body { grid-template-columns: 1fr; } }
@media (max-width: 520px) {
  .rvad__samples { grid-template-columns: 1fr; }
  .rvad__pay { flex-direction: column; align-items: stretch; }
  .rvad__payR { justify-content: space-between; }
  .rvad__lock { transform: translateY(0); opacity: 1; }   /* touch: no hover — show the lock */
}

.rvviz__grid { display: grid; grid-template-columns: 190px minmax(0, 1fr) 252px; gap: 18px; align-items: start; }
.rvviz__main { min-width: 0; }
#viz-kpis { scroll-margin-top: 84px; }
.rvchart { scroll-margin-top: 84px; }

.rvviz__nav { position: sticky; top: 74px; align-self: start; max-height: calc(100vh - 96px); overflow: auto; padding: 6px 0; }
.rvnav__t { font-size: .66rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); font-weight: 500; margin: 0 0 .5rem .6rem; }
.rvnav__link { display: block; padding: .42rem .65rem; margin: 1px 0; font-size: .84rem; color: var(--ink-soft); text-decoration: none; border-left: 2px solid transparent; border-radius: 0 8px 8px 0; transition: color .15s, background .15s, border-color .15s; }
.rvnav__link:hover { color: var(--indigo); background: rgba(58,54,224,.05); }
.rvnav__link.is-active { color: var(--indigo); font-weight: 500; border-left-color: var(--indigo); background: rgba(58,54,224,.07); }

.rvviz__side { position: sticky; top: 74px; align-self: start; }
.rvviz__sideCard { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 14px; box-shadow: 0 8px 22px rgba(20,20,50,.06); max-height: calc(100vh - 96px); overflow: auto; }
.rvviz__sideT { display: flex; align-items: center; gap: .45rem; font-size: .7rem; text-transform: uppercase; letter-spacing: .09em; color: var(--indigo); font-weight: 500; margin: 0 0 .8rem; }
.rvviz__side .rvf { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 12px; background: none; border: 0; box-shadow: none; padding: 0; margin: 0; }
.rvviz__side .rvf__icon { display: none; }
.rvviz__side .rvf__g { flex-direction: column; align-items: stretch; gap: 5px; }
.rvviz__side .rvf__g--yr { flex-direction: row; align-items: center; flex-wrap: wrap; }
.rvviz__side .rvf__sel, .rvviz__side .rvf__msBtn { width: 100%; }
.rvviz__side .rvf__g--yr .rvf__sel { flex: 1; width: auto; }
.rvviz__side .rvf__msPop { left: 0; right: auto; min-width: 100%; }
.rvviz__side .rvf__reset { width: 100%; margin: 2px 0 0; }

@media (max-width: 1080px) {
  .rvviz__grid { grid-template-columns: 1fr; }
  .rvviz__nav { display: none; }
  .rvviz__side { position: static; order: -1; }
  .rvviz__sideCard { max-height: none; }
  .rvviz__side .rvf { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
  .rvviz__side .rvf__g { flex-direction: column; }
  .rvviz__side .rvf__sel, .rvviz__side .rvf__msBtn { width: auto; }
}

/* ===== Visualize — BI chart polish (hover lift, toolbar, focus mode) ===== */
.rvchart { transition: box-shadow .2s var(--ease), transform .2s var(--ease), border-color .2s var(--ease); }
.rvchart:hover { box-shadow: 0 16px 40px rgba(20,20,50,.12); border-color: #e2e2f2; transform: translateY(-2px); }
.rvchart__hd { display: flex; align-items: center; gap: 8px; }
.rvchart__tools { display: inline-flex; gap: 4px; opacity: 0; transform: translateY(-2px); transition: opacity .18s var(--ease), transform .18s var(--ease); }
.rvchart:hover .rvchart__tools, .rvchart:focus-within .rvchart__tools { opacity: 1; transform: none; }
.rvchart__tool { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; border: 1px solid var(--line); background: #fff; color: var(--muted); cursor: pointer; transition: color .15s, border-color .15s, background .15s; }
.rvchart__tool:hover { color: var(--indigo); border-color: var(--indigo); background: rgba(58,54,224,.06); }

.rvfocus { position: fixed; inset: 0; z-index: 1100; display: grid; place-items: center; background: rgba(10,14,63,.5); backdrop-filter: blur(3px); opacity: 0; transition: opacity .2s var(--ease); padding: 2rem; }
.rvfocus.is-in { opacity: 1; }
.rvfocus__card { background: #fff; border-radius: 18px; width: min(980px, 96vw); max-height: 92vh; padding: 18px 20px 20px; box-shadow: 0 40px 90px rgba(10,14,63,.45); transform: scale(.97); transition: transform .25s var(--ease); display: flex; flex-direction: column; }
.rvfocus.is-in .rvfocus__card { transform: none; }
.rvfocus__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 12px; }
.rvfocus__top h3 { margin: 0; font-family: var(--font-head); font-weight: 500; font-size: 1.2rem; color: var(--ink); }
.rvfocus__x { font-size: 1.7rem; line-height: 1; background: none; border: none; color: var(--muted); cursor: pointer; padding: 0 .3rem; }
.rvfocus__x:hover { color: var(--ink); }
.rvfocus__plot { flex: 1; min-height: 62vh; width: 100%; }
@media (max-width: 700px) { .rvchart__tools { opacity: 1; transform: none; } }
.rvf__toggle { display: flex; align-items: center; gap: .5rem; font-size: .82rem; color: var(--ink-soft); cursor: pointer; user-select: none; }
.rvf__toggle input { accent-color: var(--indigo); width: 15px; height: 15px; flex: none; }
.rvviz__ppt { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; margin: 16px 0 0; padding: .7rem .9rem; font-family: inherit; font-size: .88rem; font-weight: 500; color: #fff; background: linear-gradient(135deg, #D24726, #B7361A); border: 0; border-radius: 11px; cursor: pointer; box-shadow: 0 8px 20px rgba(183,54,26,.30); transition: transform .15s var(--ease), box-shadow .15s var(--ease), filter .15s var(--ease); }
.rvviz__ppt:hover { transform: translateY(-1px); box-shadow: 0 12px 26px rgba(183,54,26,.40); filter: brightness(1.05); }
.rvviz__ppt:disabled { opacity: .7; cursor: default; transform: none; }
.rvviz__ppt .rvviz__pptIco { display: inline-flex; line-height: 0; }
.rvviz__ppt .rvviz__pptLock { margin-left: .15rem; opacity: .92; }
.rvviz__ppt.is-locked { background: linear-gradient(135deg, #b06a55, #92543f); box-shadow: 0 8px 20px rgba(146,84,63,.28); }
.rvviz__ppt.is-locked:hover { filter: none; transform: none; box-shadow: 0 8px 20px rgba(146,84,63,.28); }
.rvlock__sec { font-weight: 500; }
@media (max-width: 720px) {
  .rvbuy--inline .rvbuy__in--cols { grid-template-columns: 1fr; }
  .rvbuy__foot { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 480px) {
  .rvbuy--inline .rvbuy__list { grid-template-columns: 1fr; }
}

/* Study layout — 3 columns: TOC · content · figures/tables index */
.rvstudy { display: grid; grid-template-columns: 300px minmax(0, 1fr) 300px; gap: 1rem; align-items: start; }
@media (max-width: 1280px) {
  .rvstudy { grid-template-columns: 260px minmax(0, 1fr); }
  /* The figures/tables index column drops, but downloads stay reachable as a full-width bar */
  .rvindex { grid-column: 1 / -1; display: block; position: static; max-height: none; overflow: visible; border: 0; background: none; box-shadow: none; }
  .rvindex__tabs, .rvindex__pane { display: none; }
  .rvdl { flex-direction: row; flex-wrap: wrap; gap: .6rem; padding: 0; border-top: 0; margin-top: .2rem; }
  .rvdl__btn { flex: 1 1 200px; max-width: 300px; }
}
@media (max-width: 960px)  {
  .rvstudy { grid-template-columns: 1fr; }
  .rvtoc { position: static; max-height: none; }
}

/* ---------- Right pane: List of Figures / List of Tables ---------- */
.rvindex {
  position: sticky; top: 80px; max-height: calc(100vh - 110px); overflow: hidden;
  border: 1px solid var(--line); border-radius: 16px; background: #fff; display: flex; flex-direction: column;
}

/* Downloads — stacked (PDF red / Excel green), pinned to the bottom of the figures card. */
.rvdl { display: flex; flex-direction: column; gap: .5rem; padding: .7rem; border-top: 1px solid var(--line); background: #fff; flex: none; margin-top: auto; }
.rvdl__btn {
  display: inline-flex; align-items: center; gap: .55rem; width: 100%;
  padding: .6rem .7rem; border-radius: 11px; font: inherit; font-size: .85rem; font-weight: 600;
  background: #fff; cursor: pointer; text-align: left; border: 1.5px solid currentColor;
  transition: background .15s var(--ease), color .15s var(--ease), transform .12s var(--ease), box-shadow .15s var(--ease);
}
.rvdl__btn svg { flex: none; }
.rvdl__btn > span:not(.rvdl__lock) { flex: 1; }
.rvdl__btn--pdf { color: #d93025; }   /* PDF red */
.rvdl__btn--xls { color: #1c7c43; }   /* Excel green */
.rvdl__btn:not(.is-locked):hover { color: #fff; transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.rvdl__btn--pdf:not(.is-locked):hover { background: #d93025; border-color: #d93025; }
.rvdl__btn--xls:not(.is-locked):hover { background: #1c7c43; border-color: #1c7c43; }
.rvdl__btn.is-locked { cursor: not-allowed; background: #fafafe; opacity: .72; }
.rvdl__lock { margin-left: auto; display: inline-flex; }
.rvdl__lock svg { width: 14px; height: 14px; }

.rvindex__tabs { display: flex; border-bottom: 1px solid var(--line); padding: .35rem .35rem 0 .35rem; gap: .25rem; flex: none; }
.rvindex__tab {
  flex: 1; background: none; border: 0; cursor: pointer; font: inherit; font-size: .82rem; font-weight: 500;
  color: var(--ink-soft); padding: .65rem .4rem; border-bottom: 2px solid transparent; margin-bottom: -1px;
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  transition: color .15s var(--ease), border-color .15s var(--ease);
}
.rvindex__tab:hover { color: var(--ink); }
.rvindex__tab.is-active { color: var(--indigo); border-bottom-color: var(--indigo); }
.rvindex__count {
  display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 18px;
  padding: 0 6px; font-size: .68rem; font-weight: 500; border-radius: 999px;
  background: #f3f3fb; color: var(--ink-soft);
}
.rvindex__tab.is-active .rvindex__count { background: rgba(58,54,224,.1); color: var(--indigo); }
.rvindex__pane { overflow-y: auto; padding: .45rem; flex: 1 1 auto; }
.rvindex__empty { font-size: .82rem; color: var(--muted); padding: .9rem .6rem; line-height: 1.55; }
.rvindex__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .15rem; }
.rvindex__item {
  width: 100%; background: none; border: 0; cursor: pointer; font: inherit; text-align: left;
  display: grid; grid-template-columns: 36px 1fr auto; gap: .5rem; align-items: baseline;
  padding: .55rem .6rem; border-radius: 8px; color: var(--ink); line-height: 1.35;
  transition: background .15s var(--ease), color .15s var(--ease);
}
.rvindex__item:hover { background: #f5f5fb; color: var(--indigo); }
.rvindex__no { font-family: var(--font-mono, Menlo, Consolas, monospace); font-size: .78rem; color: var(--indigo); font-weight: 500; }
.rvindex__title { font-size: .86rem; color: inherit; }
.rvindex__meta { font-size: .72rem; color: var(--muted); white-space: nowrap; }
.rvindex__item.is-locked .rvindex__title { color: var(--ink-soft); }
.rvindex__item.is-locked .rvindex__meta svg { color: var(--muted); }
.rvindex__lock { display: inline-flex; }

/* Brief flash when content scrolls to a figure/table from the index */
.rvfig.is-flash, .rvdoc__body table.is-flash {
  animation: rvFlash 1.4s ease-out;
}
@keyframes rvFlash {
  0%   { box-shadow: 0 0 0 0 rgba(58,54,224,0); outline: 2px solid rgba(58,54,224,.55); outline-offset: 4px; }
  60%  { box-shadow: 0 0 0 6px rgba(58,54,224,.10); outline-color: rgba(58,54,224,.30); }
  100% { box-shadow: 0 0 0 0 rgba(58,54,224,0); outline-color: rgba(58,54,224,0); }
}
.rvtoc { position: sticky; top: 80px; max-height: calc(100vh - 110px); overflow-y: auto; border: 1px solid var(--line); border-radius: 16px; background: #fff; padding: .6rem; }
.rvchap { border-radius: 12px; overflow: hidden; }
.rvchap + .rvchap { margin-top: .15rem; }
.rvchap__head { width: 100%; display: flex; align-items: center; gap: .6rem; background: none; border: none; cursor: pointer; font-family: inherit; text-align: left; padding: .75rem .7rem; border-radius: 10px; transition: background .15s var(--ease); }
.rvchap__head:hover { background: #f5f5fb; }
.rvchap__no { font-family: var(--font-mono); font-size: .68rem; color: var(--muted); background: #f1f1f8; padding: .2rem .45rem; border-radius: 6px; white-space: nowrap; }
.rvchap__title { flex: 1; font-size: .95rem; color: var(--ink); }
.rvchap__chev { color: var(--muted); transition: transform .25s var(--ease); flex: none; }
.rvchap.is-open .rvchap__chev { transform: rotate(180deg); }
.rvchap.is-locked .rvchap__title { color: var(--ink-soft); }
.rvchap.is-locked .rvchap__head svg { color: var(--indigo); }

.rvchap__secs { list-style: none; margin: 0 0 .3rem; padding: 0 0 0 .3rem; }
.rvchap__secs[hidden] { display: none; }
.rvsec { width: 100%; display: flex; align-items: center; gap: .5rem; background: none; border: none; cursor: pointer; font-family: inherit; text-align: left; padding: .5rem .6rem; border-radius: 8px; color: var(--ink-soft); transition: background .15s var(--ease), color .15s var(--ease); }
.rvsec:hover { background: #f5f5fb; color: var(--ink); }
.rvsec.is-current { background: rgba(58,54,224,.08); color: var(--indigo); }
.rvsec__no { font-family: var(--font-mono); font-size: .72rem; color: var(--muted); flex: none; min-width: 2.4em; }
.rvsec__t { flex: 1; font-size: .88rem; line-height: 1.3; }
.rvsec__lock { color: var(--indigo); display: inline-flex; flex: none; }
.rvsec.is-locked { color: var(--muted); }

/* Content panel */
.rvcontent { min-height: 60vh; border: 1px solid var(--line); border-radius: 16px; background: #fff; padding: clamp(1.5rem,4vw,2rem); box-shadow: var(--shadow-sm); scroll-margin-top: 88px; }
.rvcontent__empty { color: var(--muted); display: grid; place-items: center; min-height: 40vh; text-align: center; }
.rvdoc { max-width: 100%; }    /* fill the content panel — no wasted right-side whitespace */
.rvdoc__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.6rem; border-bottom: 1px solid var(--line); padding-bottom: 1.2rem; }
.rvdoc__crumb { font-family: var(--font-mono); font-size: .76rem; color: var(--muted); letter-spacing: .02em; }
.rvdoc__title { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.5rem,3vw,1.6rem); letter-spacing: -.02em; margin: .4rem 0 0; line-height: 1.15; }
.rvdoc__ask {
  flex: none; display: inline-flex; align-items: center; gap: .45rem; cursor: pointer;
  background: rgba(58,54,224,.08); color: var(--indigo); border: 1px solid rgba(58,54,224,.2);
  border-radius: 999px; padding: .5rem .9rem; font-family: inherit; font-size: .85rem; font-weight: 500;
  transition: background .15s var(--ease), transform .15s var(--ease); white-space: nowrap;
}
.rvdoc__ask:hover { background: var(--indigo); color: #fff; transform: translateY(-1px); }
@media (max-width: 560px) { .rvdoc__top { flex-direction: column; } .rvdoc__ask { align-self: flex-start; } }

/* ---------- Rich RB / generated HTML ---------- */
.rvdoc__body { color: #111; line-height: 1.6; font-size: 1rem; text-align: justify; -webkit-hyphens: auto; hyphens: auto; }
.rvdoc__body h1, .rvdoc__body h2, .rvdoc__body h3, .rvdoc__body h4, .rvdoc__body h5, .rvdoc__body li, .rvdoc__body th, .rvdoc__body td { text-align: left; hyphens: manual; }
.rvdoc__body > *:first-child { margin-top: 0; }
.rvdoc__body p { margin: 0 0 1.15rem; }
.rvdoc__body strong, .rvdoc__body b { font-weight: 600; color: var(--ink); }
.rvdoc__body em, .rvdoc__body i { font-style: italic; }
.rvdoc__body a { color: var(--indigo); text-decoration: underline; text-underline-offset: 2px; }
.rvdoc__body a:hover { color: var(--indigo-600); }

.rvdoc__body h1, .rvdoc__body h2, .rvdoc__body h3, .rvdoc__body h4, .rvdoc__body h5 {
  font-family: var(--font-head); font-weight: 500; color: var(--ink); letter-spacing: -.01em; line-height: 1.25;
  margin: 2rem 0 .8rem;
}
.rvdoc__body h2 { font-size: 1.5rem; padding-bottom: .5rem; border-bottom: 1px solid var(--line); }
.rvdoc__body h3 { font-size: 1.25rem; }
.rvdoc__body h4 { font-size: 1.08rem; }
.rvdoc__body h5 { font-size: .98rem; color: var(--ink-soft); text-transform: uppercase; letter-spacing: .06em; }

.rvdoc__body ul, .rvdoc__body ol { margin: 0 0 1.2rem; padding-left: 1.4rem; }
.rvdoc__body li { margin: 0 0 .5rem; padding-left: .2rem; }
.rvdoc__body ul li::marker { color: var(--indigo); }
.rvdoc__body ol li::marker { color: var(--indigo); font-weight: 600; }

.rvdoc__body blockquote {
  margin: 1.4rem 0; padding: .9rem 1.3rem; border-left: 3px solid var(--indigo);
  background: #f7f7ff; border-radius: 0 12px 12px 0; color: var(--ink-soft); font-style: italic;
}
.rvdoc__body hr { border: none; border-top: 1px solid var(--line); margin: 2rem 0; }
.rvdoc__body code { font-family: var(--font-mono); font-size: .9em; background: #f1f1f8; padding: .12em .4em; border-radius: 5px; }

/* Images & auto-generated infographic assets */
.rvdoc__body img { max-width: 100%; height: auto; border-radius: 12px; display: block; }
.rvdoc__body figure { margin: 1.6rem 0; }
.rvdoc__body figcaption { font-size: .85rem; color: var(--muted); text-align: center; margin-top: .6rem; }
.rvdoc__body .rvfig__art { background: #fafafe; border: 1px solid var(--line); border-radius: 14px; padding: 1rem 1.2rem; box-shadow: var(--shadow-sm); }
.rvdoc__body .rvfig--wide .rvfig__art { padding: 1.1rem; background: #fbfbfe; }
.rvdoc__body .rvfig__svg { display: block; width: 100%; height: auto; }
.rvdoc__body .rvfig__cap { font-size: .85rem; color: var(--muted); text-align: center; margin-top: .6rem; }
.rvdoc__body .rb-auto-asset {
  margin: 1.8rem auto; padding: .9rem; background: #fafafe; border: 1px solid var(--line);
  border-radius: 16px; box-shadow: var(--shadow-sm); text-align: center;
}
.rvdoc__body .rb-auto-asset img { margin: 0 auto; border-radius: 10px; }
.rvdoc__body .rb-auto-asset figcaption,
.rvdoc__body .rb-auto-asset .caption { margin-top: .7rem; }

/* Tables */
.rvdoc__body table { border-collapse: collapse; width: 100%; margin: 1.6rem 0; font-size: .92rem; border-radius: 12px; overflow: hidden; box-shadow: var(--shadow-sm); }
.rvdoc__body thead th, .rvdoc__body tr:first-child th { background: #3b4acc; color: #fff; font-weight: 500; }
.rvdoc__body th, .rvdoc__body td { border: 1px solid var(--line); padding: .7rem .9rem; text-align: left; vertical-align: top; }
.rvdoc__body tbody tr:nth-child(even) { background: #fafafe; }
.rvdoc__body tbody tr:hover { background: #f4f4fb; }

.rb-prep { color: var(--ink-soft); font-style: italic; }

@media (max-width: 600px) {
  .rvdoc__body { font-size: 1rem; }
  .rvdoc__body table { display: block; overflow-x: auto; white-space: nowrap; box-shadow: none; }
}

/* Loading (on-demand section) */
.rvload { display: grid; place-items: center; min-height: 44vh; text-align: center; gap: 1.2rem; }
.rvload__spin { width: 40px; height: 40px; border-radius: 50%; border: 3px solid rgba(58,54,224,.2); border-top-color: var(--indigo); animation: rbSpin .9s linear infinite; }
.rvload__line { color: var(--ink-soft); transition: opacity .25s var(--ease); }

/* Section being finalized by the research team (paid, not yet approved) */
.rvprep { text-align: center; padding: 2.6rem 1rem; color: var(--ink-soft); }
.rvprep__spin { width: 34px; height: 34px; border-radius: 50%; border: 3px solid rgba(58,54,224,.2); border-top-color: var(--indigo); margin: 0 auto 1.1rem; animation: rbSpin .9s linear infinite; }
.rvprep h3 { font-family: var(--font-head); font-weight: 500; color: var(--ink); margin-bottom: .5rem; }
.rvprep p { max-width: 540px; margin: 0 auto; line-height: 1.6; }

/* Section being compiled on-demand (paid, generating now from VMR data) */
.rvcompile { text-align: center; padding: 2.8rem 1rem; color: var(--ink-soft); }
.rvcompile__orb { display: inline-flex; gap: .5rem; margin-bottom: 1.3rem; }
.rvcompile__orb span { width: 12px; height: 12px; border-radius: 50%;
  background: linear-gradient(135deg, var(--indigo), var(--teal, #14b8a6));
  animation: rvPulse 1.2s ease-in-out infinite; }
.rvcompile__orb span:nth-child(2) { animation-delay: .18s; }
.rvcompile__orb span:nth-child(3) { animation-delay: .36s; }
.rvcompile h3 { font-family: var(--font-head); font-weight: 500; color: var(--ink); margin-bottom: .55rem; font-size: 1.25rem; }
.rvcompile p { max-width: 560px; margin: 0 auto 1.4rem; line-height: 1.65; }
.rvcompile__bar { width: min(320px, 70%); height: 4px; margin: 0 auto; border-radius: 99px;
  background: rgba(58,54,224,.12); overflow: hidden; }
.rvcompile__bar i { display: block; width: 40%; height: 100%; border-radius: 99px;
  background: linear-gradient(90deg, var(--indigo), var(--teal, #14b8a6));
  animation: rvSlide 1.25s var(--ease) infinite; }
@keyframes rvPulse { 0%,100% { transform: scale(.7); opacity: .45; } 50% { transform: scale(1); opacity: 1; } }
@keyframes rvSlide { 0% { transform: translateX(-120%); } 100% { transform: translateX(320%); } }

/* Embedded section charts (phase 2 — live ECharts) */
.vmi-chart { margin: 1.4rem 0; padding: 1rem 1.1rem 1.2rem; border: 1px solid #ececf4; border-radius: 14px; background: #fff; }
.vmi-chart__title { font-family: var(--font-head); font-weight: 500; color: var(--ink); font-size: 1rem; margin-bottom: .6rem; }
.vmi-chart__canvas { width: 100%; height: 360px; }
.vmi-chart__note { margin-top: .5rem; font-size: .82rem; color: var(--muted); }
.vmi-chart__load { display: grid; place-items: center; height: 360px; color: var(--muted); font-size: .9rem; }

/* Rebrand research-built data tables ([TABLE:*]) to the VMI palette.
   Tables arrive with inline styles, so these scoped overrides use !important. */
.rvdoc__body .rb-data-table,
.rvdoc__body .rb-dual-tables { margin: 1.3rem 0 !important; }
.rvdoc__body .rb-data-table h5 { color: var(--ink, #14142b) !important; font-weight: 500 !important; font-family: var(--font-head) !important; font-size: 1rem !important; margin: 0 0 .6rem !important; }
.rvdoc__body .rb-data-table > div { border-radius: 12px !important; overflow: hidden !important; box-shadow: 0 1px 2px rgba(16,18,60,.06), 0 6px 18px rgba(16,18,60,.05) !important; border: 1px solid #ececf4 !important; }
.rvdoc__body .market-table { width: 100% !important; border-collapse: separate !important; border-spacing: 0 !important; font-family: var(--font-body) !important; font-size: .9rem !important; }
.rvdoc__body .market-table thead th { background: linear-gradient(135deg, #4f46ff, #3a36e0) !important; color: #fff !important; border: none !important; font-weight: 500 !important; padding: 11px 13px !important; text-align: center !important; white-space: nowrap !important; }
.rvdoc__body .market-table thead th:first-child { text-align: left !important; }
.rvdoc__body .market-table tbody td { border: none !important; border-bottom: 1px solid #eef0f6 !important; color: #2b2b40 !important; padding: 9px 13px !important; text-align: right !important; }
.rvdoc__body .market-table tbody td:first-child { text-align: left !important; color: var(--ink, #14142b) !important; }
.rvdoc__body .market-table tbody tr:nth-child(even) td { background: #f7f7fd !important; }
.rvdoc__body .market-table tbody tr:last-child td { background: rgba(58,54,224,.07) !important; color: var(--indigo, #3a36e0) !important; font-weight: 500 !important; border-bottom: none !important; }
/* Interactive polish: row hover highlight + chart hover lift */
.rvdoc__body .market-table tbody tr:hover td { background: #eef0ff !important; transition: background .14s var(--ease); }
.rvdoc__body .market-table tbody tr:last-child:hover td { background: rgba(58,54,224,.12) !important; }
.vmi-chart { transition: box-shadow .2s var(--ease); }
.vmi-chart:hover { box-shadow: 0 6px 22px rgba(16,18,60,.09); }

/* Paywall in content */
.rvlockbox { text-align: center; max-width: 480px; margin: 0 auto; padding: clamp(1.5rem,5vw,3rem) 0; }
.rvlockbox__ico { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 1.2rem; background: rgba(58,54,224,.1); color: var(--indigo); }
.rvlockbox h2 { font-family: var(--font-head); font-weight: 500; font-size: 1.5rem; margin-bottom: .6rem; }
.rvlockbox p { color: var(--ink-soft); line-height: 1.6; margin-bottom: 1.4rem; }
.rvlockbox__fine { font-size: .8rem; color: var(--muted); margin-top: 1rem; }

/* ============================================================
   Visualize Report — KPI cards + chart rows with strategic read-outs
   White section background. Brand indigo/teal palette throughout.
   ============================================================ */

.rvpanel[data-panel="visualize"] { background: #fff; }
.rvviz { display: block; background: #fff; }

/* ----- Unlock banner (non-paid) ----- */
.rvviz__banner {
  display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap;
  background: linear-gradient(120deg, #1b1a52 0%, #2a27c4 45%, #4b3df0 85%, #6a4bff 100%);
  color: #fff; border-radius: 18px; padding: 1.2rem 1.5rem; margin-bottom: 1.6rem;
  box-shadow: 0 8px 24px rgba(58,54,224,.18);
}
.rvviz__bannerL { display: flex; align-items: flex-start; gap: .9rem; }
.rvviz__bannerL svg { flex: none; opacity: .9; margin-top: 2px; }
.rvviz__bannerT { font-weight: 500; font-size: 1rem; margin: 0 0 .15rem; }
.rvviz__bannerS { font-size: .9rem; color: rgba(255,255,255,.85); margin: 0; line-height: 1.5; }
.rvviz__bannerS b { color: #fff; font-weight: 500; }
.rvviz__banner .btn { background: #fff; color: var(--indigo); border-color: #fff; white-space: nowrap; }
.rvviz__banner .btn:hover { background: #f3f3ff; }

/* ----- 4 KPI hero cards ----- */
.rvkpi { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.8rem; }
.rvkpi__card {
  position: relative; background: #fff; border: 1px solid var(--line); border-radius: 16px;
  padding: 1.4rem 1.4rem 1.3rem; box-shadow: 0 1px 2px rgba(20,20,40,.04); overflow: hidden;
  transition: box-shadow .2s var(--ease), transform .2s var(--ease), border-color .2s var(--ease);
}
.rvkpi__card::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55;
  background: linear-gradient(180deg, rgba(58,54,224,.04) 0%, rgba(58,54,224,0) 60%);
}
.rvkpi__card:hover { box-shadow: 0 10px 28px rgba(58,54,224,.12); transform: translateY(-3px); border-color: #d6d4f5; }
.rvkpi__rule { position: absolute; left: 1.4rem; top: 1.15rem; width: 36px; height: 3px; border-radius: 2px; background: linear-gradient(90deg, #3a36e0, #14b8a6); z-index: 1; }
.rvkpi__lbl { position: relative; z-index: 1; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); margin: 1.4rem 0 .45rem; }
.rvkpi__val { position: relative; z-index: 1; font-family: var(--font-head); font-weight: 500; font-size: clamp(1.85rem, 3.6vw, 2.35rem); letter-spacing: -.025em; color: var(--ink); line-height: 1; margin: 0 0 .45rem; }
.rvkpi__sub { position: relative; z-index: 1; font-size: .85rem; color: var(--ink-soft); margin: 0; }
.rvkpi__up { color: #14b8a6; font-weight: 500; }
@media (max-width: 980px) { .rvkpi { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .rvkpi { grid-template-columns: 1fr; } }

/* ----- Chart rows (chart | strategic read-outs) ----- */
.rvviz__rows { display: flex; flex-direction: column; gap: 1.4rem; }

.rvviz__card {
  background: #fff; border: 1px solid var(--line); border-radius: 18px;
  padding: 1.2rem 1.3rem; box-shadow: var(--shadow-sm); position: relative;
  transition: box-shadow .2s var(--ease);
}
.rvviz__card:hover { box-shadow: 0 8px 24px rgba(20,20,40,.06); }

.rvviz__cardHead {
  display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: flex-start;
  margin-bottom: 1rem; padding-bottom: .9rem; border-bottom: 1px solid var(--line);
}
.rvviz__cardT { font-family: var(--font-head); font-weight: 500; font-size: 1.05rem; letter-spacing: -.01em; color: var(--ink); margin: 0; line-height: 1.25; }
.rvviz__cardS { font-size: .8rem; color: var(--muted); margin: .25rem 0 0; }

/* Tools (filters + export) */
.rvviz__tools { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; justify-content: flex-end; }
.rvviz__filters { display: inline-flex; padding: 1px; }
.rvviz__filt {
  background: transparent; border: 0; padding: .35rem .8rem; border-radius: 999px;
  font: inherit; font-size: .8rem; color: var(--ink-soft); cursor: pointer; white-space: nowrap;
  transition: background .15s var(--ease), color .15s var(--ease);
}
.rvviz__filt:hover { color: var(--ink); }
.rvviz__filt.is-on { background: #fff; color: var(--indigo); font-weight: 500; box-shadow: 0 1px 3px rgba(20,20,40,.08); }

.rvviz__exportWrap { position: relative; }
.rvviz__export {
  display: inline-flex; align-items: center; gap: .35rem; background: #fff; border: 1px solid var(--line);
  border-radius: 10px; padding: .42rem .75rem; font: inherit; font-size: .82rem; color: var(--ink-soft);
  cursor: pointer; transition: border-color .15s var(--ease), color .15s var(--ease);
}
.rvviz__export:hover { border-color: var(--indigo); color: var(--indigo); }
.rvviz__exportMenu {
  position: absolute; right: 0; top: calc(100% + 6px); min-width: 200px; z-index: 10;
  background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-md);
  padding: .35rem; display: flex; flex-direction: column;
}
.rvviz__exportMenu button {
  text-align: left; background: transparent; border: 0; padding: .55rem .7rem; border-radius: 8px;
  font: inherit; font-size: .88rem; color: var(--ink); cursor: pointer;
}
.rvviz__exportMenu button:hover { background: #f3f3fb; color: var(--indigo); }

/* Chart + read-outs split row */
.rvviz__row { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 1.3rem; align-items: stretch; }
.rvviz__canvasWrap { position: relative; min-height: 340px; }
.rvviz__canvasWrap canvas { width: 100% !important; height: 100% !important; display: block; }
.rvviz__badge {
  position: absolute; top: 8px; right: 8px;
  display: inline-flex; align-items: center; gap: .3rem; font-size: .68rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: .08em; color: var(--indigo);
  background: rgba(58,54,224,.08); border-radius: 999px; padding: .22rem .55rem;
}

/* "Demo" diagonal watermark — only on non-paid cards (subtle, behind canvas) */
.rvviz__card.is-demo .rvviz__canvasWrap::after {
  content: 'DEMO'; position: absolute; inset: 0; display: grid; place-items: center;
  font-family: var(--font-head); font-size: clamp(1.6rem, 3.6vw, 2.4rem); font-weight: 500;
  color: rgba(58,54,224,.04); letter-spacing: .45em; transform: rotate(-18deg);
  pointer-events: none; user-select: none; z-index: 0;
}
.rvviz__canvasWrap canvas { position: relative; z-index: 1; }

/* Strategic read-outs panel — branded deep-indigo gradient */
.rvviz__readouts {
  position: relative; overflow: hidden;
  background: linear-gradient(160deg, #0f0d2e 0%, #1b1a52 38%, #2a27c4 78%, #3a36e0 100%);
  color: #fff; border-radius: 16px; padding: 1.4rem 1.4rem; display: flex; flex-direction: column; gap: 1.1rem;
  box-shadow: 0 8px 24px rgba(20,20,40,.18);
}
.rvviz__readouts::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .45;
  background-image: radial-gradient(rgba(255,255,255,.10) 1px, transparent 1px);
  background-size: 22px 22px;
}
.rvviz__readoutsT {
  position: relative; font-family: var(--font-head); font-weight: 500; font-size: 1.1rem;
  letter-spacing: -.01em; margin: 0; color: #fff;
}
.rvviz__readoutsT::before {
  content: ""; display: inline-block; width: 6px; height: 18px; border-radius: 3px;
  background: linear-gradient(180deg, #6a4bff, #14b8a6); margin-right: .55rem; vertical-align: -3px;
}
.rvviz__readoutsList { position: relative; list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .9rem; }
.rvviz__readoutsList li { display: grid; grid-template-columns: 28px 1fr; gap: .75rem; align-items: flex-start; }
.rvviz__readoutsN {
  width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center;
  background: rgba(255,255,255,.14); color: #ffffff; font-size: .8rem; font-weight: 500;
  border: 1px solid rgba(255,255,255,.18);
}
.rvviz__readoutsB { font-size: .92rem; color: #e8e7f7; line-height: 1.6; }
.rvviz__readoutsB b { color: #ffffff; font-weight: 500; }

@media (max-width: 980px) {
  .rvviz__cardHead { grid-template-columns: 1fr; }
  .rvviz__tools { justify-content: flex-start; }
  .rvviz__row { grid-template-columns: 1fr; }
  .rvviz__canvasWrap { min-height: 300px; }
}

/* ----- Footer CTA ----- */
.rvviz__foot {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  margin-top: 1.6rem; padding: 1.1rem 1.3rem; background: #fafafe; border: 1px solid var(--line);
  border-radius: 14px; color: var(--ink-soft); font-size: .92rem;
}
.rvviz__foot b { color: var(--ink); font-weight: 500; }
.rvviz__foot .btn { white-space: nowrap; }
@media (max-width: 720px) {
  .rvviz__banner { flex-direction: column; align-items: flex-start; }
  .rvviz__foot { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   Companies Mentioned — listing + side panel
   ============================================================ */
.rvpanel[data-panel="companies"] { background: #fff; }
.rvco { display: block; background: #fff; }

/* Unlock banner (non-paid only) */
.rvco__banner {
  display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; flex-wrap: wrap;
  background: linear-gradient(120deg, #1b1a52 0%, #2a27c4 45%, #4b3df0 85%, #6a4bff 100%);
  color: #fff; border-radius: 18px; padding: 1.2rem 1.5rem; margin-bottom: 1.6rem;
  box-shadow: 0 8px 24px rgba(58,54,224,.18);
}
.rvco__bannerL { display: flex; align-items: flex-start; gap: .9rem; }
.rvco__bannerL svg { flex: none; opacity: .9; margin-top: 2px; }
.rvco__bannerT { font-weight: 500; font-size: 1rem; margin: 0 0 .15rem; }
.rvco__bannerS { font-size: .9rem; color: rgba(255,255,255,.85); margin: 0; line-height: 1.5; }
.rvco__banner .btn { background: #fff; color: var(--indigo); border-color: #fff; white-space: nowrap; }
.rvco__banner .btn:hover { background: #f3f3ff; }

.rvco__head { margin-bottom: 1.2rem; }
.rvco__title { font-family: var(--font-head); font-weight: 500; font-size: clamp(1.3rem, 2.6vw, 1.7rem); letter-spacing: -.02em; color: var(--ink); margin: 0; }
.rvco__sub { color: var(--ink-soft); font-size: .92rem; margin: .3rem 0 0; }

/* Layout: companies grid (left) + "what every profile includes" (right) */
.rvco__layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 1.4rem; align-items: start; }

.rvco__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.rvco__empty { padding: 2rem; background: #fafafe; border: 1px dashed var(--line); border-radius: 14px; color: var(--ink-soft); text-align: center; }

.rvco__card {
  position: relative; display: grid; grid-template-columns: 44px 1fr auto auto; gap: .9rem;
  align-items: center; padding: .85rem 1rem; background: #fff; border: 1px solid var(--line);
  border-radius: 14px; box-shadow: 0 1px 2px rgba(20,20,40,.04); text-decoration: none;
  color: inherit; cursor: pointer;
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s var(--ease);
}
.rvco__card:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(58,54,224,.10); border-color: #d6d4f5; }
.rvco__card.is-locked { cursor: pointer; }
.rvco__avatar {
  width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center;
  background: linear-gradient(135deg, #3a36e0 0%, #6a4bff 100%); color: #fff;
  font-family: var(--font-head); font-weight: 500; font-size: 1.05rem; letter-spacing: -.01em;
  box-shadow: 0 4px 10px rgba(58,54,224,.22); flex: none;
}
.rvco__cardBody { min-width: 0; }
.rvco__cardName { font-family: var(--font-head); font-weight: 500; font-size: .98rem; color: var(--ink); margin: 0; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rvco__cardMeta { font-size: .78rem; color: var(--muted); margin: .15rem 0 0; }
.rvco__cardStatus {
  display: inline-flex; align-items: center; gap: .3rem; font-size: .72rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: .08em; padding: .25rem .55rem; border-radius: 999px; white-space: nowrap;
}
.rvco__cardStatus.is-ready  { background: #eafaf2; color: #0a4d30; }
.rvco__cardStatus.is-wait   { background: #fff4e3; color: #8a4a00; }
.rvco__cardStatus.is-locked { background: rgba(58,54,224,.08); color: var(--indigo); }
.rvco__cardArrow { color: var(--muted); transition: transform .18s var(--ease), color .18s var(--ease); }
.rvco__card:hover .rvco__cardArrow { color: var(--indigo); transform: translateX(3px); }

/* "Every profile contains" side panel — indigo gradient (matches the read-outs style) */
.rvco__includes {
  position: relative; overflow: hidden;
  background: linear-gradient(160deg, #0f0d2e 0%, #1b1a52 38%, #2a27c4 78%, #3a36e0 100%);
  color: #fff; border-radius: 16px; padding: 1.4rem 1.4rem;
  box-shadow: 0 8px 24px rgba(20,20,40,.18);
}
.rvco__includes::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .45;
  background-image: radial-gradient(rgba(255,255,255,.10) 1px, transparent 1px);
  background-size: 22px 22px;
}
.rvco__includesT {
  position: relative; font-family: var(--font-head); font-weight: 500; font-size: 1.05rem;
  letter-spacing: -.01em; margin: 0 0 .9rem;
}
.rvco__includesT::before {
  content: ""; display: inline-block; width: 6px; height: 18px; border-radius: 3px;
  background: linear-gradient(180deg, #6a4bff, #14b8a6); margin-right: .55rem; vertical-align: -3px;
}
.rvco__includesList { position: relative; list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .55rem; }
.rvco__includesList li { display: grid; grid-template-columns: 16px 1fr; gap: .55rem; align-items: flex-start; font-size: .9rem; color: #e8e7f7; line-height: 1.5; }
.rvco__includesList svg { color: #5dffa9; margin-top: 4px; }
.rvco__includesCta { position: relative; width: 100%; margin-top: 1.1rem; background: #fff; color: var(--indigo); border: 0; }
.rvco__includesCta:hover { background: #f3f3ff; color: var(--indigo); }
.rvco__includesNote { position: relative; font-size: .82rem; color: rgba(255,255,255,.78); margin: 1rem 0 0; line-height: 1.5; }

@media (max-width: 960px) {
  .rvco__layout { grid-template-columns: 1fr; }
  .rvco__grid { grid-template-columns: 1fr; }
}

/* Premium tab panels */
.rvpremium { text-align: center; max-width: 520px; margin: 0 auto; padding: clamp(2rem,6vw,4rem) 1rem; }
.rvpremium__ico { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 1.2rem; background: rgba(58,54,224,.1); color: var(--indigo); }
.rvpremium h3 { font-family: var(--font-head); font-weight: 500; font-size: 1.5rem; margin-bottom: .6rem; }
.rvpremium p { color: var(--ink-soft); line-height: 1.6; margin-bottom: 1.4rem; }

/* Add-ons */
.rvaddons { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: 1.6rem; }
.rvaddon { display: inline-flex; align-items: center; gap: .5rem; border: 1px solid var(--line); border-radius: 12px; padding: .8rem 1.2rem; cursor: pointer; background: #fff; font-size: .92rem; color: var(--ink); transition: .15s var(--ease); }
.rvaddon:hover { border-color: var(--indigo); }
.rvaddon.is-locked { color: var(--muted); background: #fafafe; }
.rvaddon.is-locked svg { color: var(--indigo); }

/* Toast */
.rvtoast { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(20px); background: #0b0b16; color: #fff; padding: .8rem 1.3rem; border-radius: 999px; font-size: .9rem; box-shadow: var(--shadow-md); opacity: 0; pointer-events: none; transition: .3s var(--ease); z-index: 400; }
.rvtoast.is-on { opacity: 1; transform: translateX(-50%) translateY(0); }

@media (max-width: 820px) {
  .rvstudy { grid-template-columns: 1fr; }
  .rvtoc { position: static; max-height: none; }
}

/* =========================================================
   RESEARCH DESK (right drawer)
   ========================================================= */
/* Bottom-right floating action button — classic spot, never overlaps the
   right-side Figures/Tables index pane or the page chrome. Collapses to a
   compact circle on small screens. */
.rvdesk__fab {
  position: fixed; right: 24px; bottom: 24px; z-index: 90;
  display: inline-flex; align-items: center; gap: .55rem;
  background: linear-gradient(135deg, #3a36e0 0%, #5d49ff 100%); color: #fff;
  border: none; cursor: pointer; font-family: inherit; font-weight: 500; font-size: .92rem;
  padding: .85rem 1.2rem; border-radius: 999px;
  box-shadow: 0 14px 32px rgba(58,54,224,.32), 0 4px 10px rgba(15,13,46,.18);
  transition: transform .18s var(--ease), box-shadow .18s var(--ease), filter .18s var(--ease);
}
.rvdesk__fab:hover  { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(58,54,224,.38), 0 6px 14px rgba(15,13,46,.22); filter: brightness(1.04); }
.rvdesk__fab:active { transform: translateY(0); }
.rvdesk__fab svg    { flex: none; }
@media (max-width: 720px) {
  /* Drop the label, keep a circular icon-only button so it doesn't dominate small screens. */
  .rvdesk__fab { padding: 14px; border-radius: 50%; right: 16px; bottom: 16px; font-size: 0; gap: 0; }
  .rvdesk__fab svg { width: 20px; height: 20px; }
}

.rvdesk {
  position: fixed; top: 0; right: 0; height: 100vh; width: min(420px, 92vw); z-index: 120;
  background: #fff; box-shadow: -20px 0 60px rgba(16,18,60,.18);
  display: flex; flex-direction: column; transform: translateX(100%); transition: transform .35s var(--ease);
}
.rvdesk.is-open { transform: translateX(0); }
.rvdesk__top { display: flex; align-items: center; justify-content: space-between; padding: 1.1rem 1.3rem; border-bottom: 1px solid var(--line); }
.rvdesk__top strong { font-family: var(--font-head); font-weight: 500; font-size: 1.1rem; }
.rvdesk__close { background: none; border: none; font-size: 1.6rem; line-height: 1; color: var(--muted); cursor: pointer; }
.rvdesk__tabs { display: flex; gap: .3rem; padding: .6rem 1.1rem 0; border-bottom: 1px solid var(--line); }
.rvdesk__tab { background: none; border: none; cursor: pointer; font-family: inherit; font-size: .9rem; color: var(--ink-soft); padding: .6rem .4rem; border-bottom: 2px solid transparent; }
.rvdesk__tab.is-active { color: var(--indigo); border-bottom-color: var(--indigo); font-weight: 500; }
.rvdesk__panel { flex: 1; min-height: 0; display: flex; flex-direction: column; padding: 1.1rem 1.3rem; overflow: hidden; }
.rvdesk__panel[hidden] { display: none; }

/* Chat */
.rvchat { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: .6rem; padding-right: .3rem; }
.rvchat__sys { background: #f5f5fb; color: var(--ink-soft); font-size: .85rem; border-radius: 12px; padding: .8rem 1rem; line-height: 1.4; }
.rvmsg { display: flex; }
.rvmsg--out { justify-content: flex-end; }
.rvmsg__b { display: inline-block; max-width: 82%; padding: .6rem .85rem; border-radius: 14px; font-size: .9rem; line-height: 1.4; }
.rvmsg--out .rvmsg__b { background: var(--indigo); color: #fff; border-bottom-right-radius: 4px; }
.rvmsg--in .rvmsg__b { background: #f1f1f8; color: var(--ink); border-bottom-left-radius: 4px; }
.rvchat__form { display: flex; gap: .5rem; margin-top: .9rem; }
.rvchat__form input { flex: 1; border: 1.5px solid var(--line); border-radius: 12px; padding: .7rem .9rem; outline: none; font-size: .92rem; }
.rvchat__form input:focus { border-color: var(--indigo); }
.rvchat__form .btn { padding: .7rem .9rem; }
.rvchat__form input:disabled, .rvchat__form .btn:disabled { opacity: .55; cursor: not-allowed; background: #f5f5fb; }
.rvchat__lock { display: grid; grid-template-columns: 24px 1fr; gap: .55rem .8rem; align-items: start; background: #f7f7fc; border: 1px dashed #cfcdf3; border-radius: 12px; padding: .9rem 1rem; margin-top: .8rem; }
.rvchat__lock svg { color: var(--indigo); margin-top: 2px; }
.rvchat__lock p { font-size: .88rem; color: var(--ink-soft); line-height: 1.45; margin: 0; }
.rvchat__lock p + p { margin-top: .25rem; }
.rvchat__lock .btn { grid-column: 1 / -1; justify-self: stretch; padding: .55rem .9rem; font-size: .9rem; margin-top: .35rem; }
.rvchat__meter { font-size: .78rem; color: var(--muted); text-align: right; margin: .45rem .2rem 0; }

/* Team */
.rvteam__intro { color: var(--ink-soft); font-size: .9rem; line-height: 1.5; margin-bottom: 1rem; }
.rvteam__form { display: flex; gap: .5rem; }
.rvteam__form input { flex: 1; border: 1.5px solid var(--line); border-radius: 12px; padding: .7rem .9rem; outline: none; font-size: .92rem; }
.rvteam__form input:focus { border-color: var(--indigo); }
.rvteam__err { color: #d6334b; font-size: .82rem; margin-top: .5rem; }
.rvteam__list { margin-top: 1.4rem; overflow-y: auto; }
.rvteam__owner { font-size: .9rem; color: var(--ink-soft); padding: .6rem 0; border-bottom: 1px solid var(--line); }
.rvteam__member { display: flex; align-items: center; justify-content: space-between; padding: .7rem 0; border-bottom: 1px solid var(--line); font-size: .9rem; }
.rvteam__badge { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--indigo); background: #eef0ff; border-radius: 999px; padding: .2rem .6rem; }

@media (max-width: 720px) {
  .rv__grid { grid-template-columns: repeat(2,1fr); }
  .rv__panels { grid-template-columns: 1fr; }
  .rb-otp__box { width: 44px; height: 52px; font-size: 1.3rem; }
}

/* ---------- Building overlay (teaser) ---------- */
.rb-overlay { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; background: rgba(8,10,30,.92); }
.rb-overlay[hidden] { display: none; }
.rb-overlay__core { text-align: center; color: #fff; width: min(440px, 90%); }
.rb-overlay__line { margin-top: 1.8rem; font-size: 1.05rem; min-height: 1.5em; transition: opacity .3s var(--ease); }
.rb-overlay__bar { margin-top: 1.4rem; height: 5px; border-radius: 999px; background: rgba(255,255,255,.15); overflow: hidden; }
.rb-overlay__bar i { display: block; height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg, #6a4bff, #b794ff); transition: width .5s var(--ease); }
.rb-brain { display: inline-flex; gap: .5rem; }
.rb-brain span { width: 14px; height: 14px; border-radius: 50%; background: #8b5cf6; animation: rbBrain 1s var(--ease) infinite; }
.rb-brain span:nth-child(2) { animation-delay: .15s; background: #6a4bff; }
.rb-brain span:nth-child(3) { animation-delay: .3s; background: #b794ff; }
@keyframes rbBrain { 0%,100% { transform: translateY(0); opacity: .6; } 50% { transform: translateY(-12px); opacity: 1; } }

/* ---------- Responsive ---------- */
@media (max-width: 820px) {
  .rb-stats { grid-template-columns: repeat(4, 1fr); }
  .rb-geo { grid-template-columns: minmax(0,1fr); }
  .rb-secs { columns: 1; }
  .rb-profile__grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .rb-stats { grid-template-columns: repeat(2, 1fr); }
  .rb-steps { padding: .55rem .35rem .5rem; }
  .rb-steps__i { gap: .4rem; }
  .rb-steps__node { width: 30px; height: 30px; font-size: .82rem; }
  .rb-steps__tick { width: 15px; height: 15px; }
  .rb-steps__i::before { top: calc(.35rem + 15px); }
  /* let labels wrap instead of overflowing the bar on narrow phones */
  .rb-steps__lbl { font-size: .72rem; white-space: normal; line-height: 1.2; max-width: 9ch; }
  .rb-chap__count { display: none; }
  .rb-cta { flex-direction: column; align-items: flex-start; }
  .rb-cta__btn { width: 100%; justify-content: center; }
  .rb-allbtn { margin-left: 0; }
  /* reclaim the country indent on small phones so region cards never overflow */
  .rb-countries, .rb-region__add { padding-left: 0; }
  .rb-region { padding: 1rem; }
}
@media (max-width: 390px) {
  .rb-steps__node { width: 27px; height: 27px; font-size: .76rem; }
  .rb-steps__i::before { top: calc(.35rem + 13.5px); }
  .rb-steps__lbl { font-size: .64rem; max-width: 8ch; }
}
@media (prefers-reduced-motion: reduce) {
  .rb-intel__spin, .rb-pulse, .rb-brain span { animation: none; }
}

/* =========================================================
   "See what you're unlocking" — interactive screenshot slider (rvsw)
   ========================================================= */
.rvsw { position: relative; max-width: 1040px; margin: 0 auto; outline: none; }
.rvsw::before {                                   /* soft brand glow behind the frame */
  content: ""; position: absolute; left: 50%; top: 40%; width: 78%; height: 62%;
  transform: translate(-50%, -50%); z-index: 0; pointer-events: none;
  background: radial-gradient(60% 60% at 50% 50%, rgba(79,70,255,.18), transparent 70%);
  filter: blur(10px);
}
.rvsw__eyebrow { text-align: center; font-size: .8rem; font-weight: 600; letter-spacing: .14em;
  text-transform: uppercase; color: var(--indigo, #3a36e0); }
.rvsw .rs__h { margin-top: .5rem; }

.rvsw__stage { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center;
  gap: clamp(.4rem, 2vw, 1.1rem); margin-top: clamp(1.5rem, 4vw, 2.2rem); }

.rvsw__nav { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
  background: #fff; border: 1px solid var(--line, #e9e9f0); color: var(--navy, #0a0e3f);
  box-shadow: 0 10px 26px rgba(16,18,60,.12); cursor: pointer;
  transition: transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease; }
.rvsw__nav:hover { background: var(--indigo, #3a36e0); color: #fff; transform: translateY(-2px); box-shadow: 0 14px 32px rgba(58,54,224,.34); }
.rvsw__nav:active { transform: translateY(0) scale(.96); }

/* browser-window frame */
.rvsw__frame { flex: 1 1 auto; min-width: 0; max-width: 860px; background: #fff; border: 1px solid var(--line, #e9e9f0);
  border-radius: 18px; overflow: hidden; box-shadow: 0 2px 4px rgba(16,18,60,.05), 0 40px 90px rgba(16,18,60,.22); }
.rvsw__frame::before { content: ""; display: block; height: 4px;
  background: linear-gradient(90deg, var(--indigo, #3a36e0), #7a5cff 55%, #b44de0); }
.rvsw__chrome { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--line, #eceef6); background: #fbfbfe; }
.rvsw__tl { width: 11px; height: 11px; border-radius: 50%; background: #e2e3ee; }
.rvsw__tl:nth-child(1) { background: #ff5f57; } .rvsw__tl:nth-child(2) { background: #febc2e; } .rvsw__tl:nth-child(3) { background: #28c840; }
.rvsw__url { display: inline-flex; align-items: center; gap: 6px; margin: 0 auto; padding: 4px 14px; border-radius: 999px;
  background: #f0f1f8; color: #8a8fa8; font-size: .74rem; letter-spacing: .01em; max-width: 70%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rvsw__url svg { color: #28c840; flex: none; }

.rvsw__viewport { position: relative; aspect-ratio: 100 / 47; background: #0f1230; overflow: hidden; }
.rvsw__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transform: scale(1.04);
  transition: opacity .55s var(--ease, cubic-bezier(.22,.61,.36,1)), transform .8s var(--ease, cubic-bezier(.22,.61,.36,1)); }
.rvsw__slide img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.rvsw__slide.is-active { opacity: 1; transform: scale(1); z-index: 2; }
.rvsw__slide.is-active img { animation: rvswKen 6s ease forwards; }
@keyframes rvswKen { from { transform: scale(1); } to { transform: scale(1.05); } }

.rvsw__progress { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255,255,255,.18); z-index: 3; }
.rvsw__progress i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--indigo, #3a36e0), #b44de0); }

/* animated caption (only active shown) */
.rvsw__caps { position: relative; min-height: 62px; margin: 1.1rem auto 0; max-width: 640px; z-index: 1; }
.rvsw__cap { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; gap: 14px;
  text-align: left; opacity: 0; transform: translateY(8px); transition: opacity .4s ease, transform .4s ease; pointer-events: none; }
.rvsw__cap.is-active { opacity: 1; transform: none; }
.rvsw__num { flex: none; font-family: var(--font-head, inherit); font-weight: 600; font-size: 1.5rem; color: var(--indigo, #3a36e0); letter-spacing: -.02em; }
.rvsw__num i { font-style: normal; font-size: .85rem; color: var(--muted, #8d90a6); font-weight: 500; }
.rvsw__captxt b { display: block; font-family: var(--font-head, inherit); font-weight: 600; font-size: 1.08rem; color: var(--ink, #14142b); }
.rvsw__captxt > span { display: block; font-size: .9rem; color: var(--ink-soft, #4a4a63); margin-top: 2px; line-height: 1.5; }

/* thumbnail strip */
.rvsw__thumbs { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: 1.3rem auto 0; max-width: 720px; }
.rvsw__thumb { flex: none; width: 78px; height: 46px; padding: 0; border: 2px solid transparent; border-radius: 9px; overflow: hidden;
  background: #eef0f8; cursor: pointer; opacity: .5; filter: saturate(.85);
  transition: opacity .2s ease, transform .2s ease, border-color .2s ease, filter .2s ease; }
.rvsw__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.rvsw__thumb:hover { opacity: .85; transform: translateY(-2px); }
.rvsw__thumb.is-active { opacity: 1; filter: none; border-color: var(--indigo, #3a36e0); transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(58,54,224,.28); }

.rvsw__cta { display: flex; flex-direction: column; align-items: center; gap: .6rem; margin-top: 1.7rem; }
.rvsw__note { font-size: .82rem; color: var(--muted, #8d90a6); }

@media (max-width: 620px) {
  .rvsw__nav { width: 40px; height: 40px; }
  .rvsw__caps { min-height: 76px; }
  .rvsw__cap { flex-direction: row; }
  .rvsw__thumb { width: 62px; height: 38px; }
  .rvsw__url { max-width: 60%; font-size: .68rem; }
}
@media (prefers-reduced-motion: reduce) {
  .rvsw__slide, .rvsw__slide.is-active img, .rvsw__cap { transition: opacity .2s ease; animation: none; }
  .rvsw__slide.is-active { transform: none; }
}
