/* Review Manager for HVAC: "the reply that sounds like you". Deep charcoal with warm gold stars and a coral accent,
   and a phone as the centerpiece on the LEFT, so it reads differently from the Ads (royal blue, technician), SEO Audit
   (teal AI card on the right) and Rank Tracker (violet dusk, leaderboard on the right) heroes. Below the hero it is the
   same road-map system as hvac-rank.css: phones and tablets stack the stops along a vertical road; from 1280px up each
   stop is a full-width row and hvac-review.js draws the winding road from measured positions. Only this page loads
   this file. Sections are marked as modules in the template so the page can be cloned into a standalone sales page. */

.rb-review-manager-page {
  --rb-bg: #141417;
  background: var(--rb-bg);
  color: #f6f3ee;
}
.rv-main { min-width: 0; }
.rv-main > footer { width: auto; margin: 0; padding-inline: 24px; }
.rv :is(a, button, summary, input):focus-visible { outline: 3px solid #ffc23d; outline-offset: 3px; }

/* ---------------------------------------------------------------- shared */
.rv {
  --ink: #1c1b20;
  --ink2: #45434d;
  --muted: #6b6873;
  --char: #141417;
  --gold: #ffc23d;
  --gold-deep: #9a6700;
  --coral: #ff6b5b;
  --rose: #e11d48;
  --go: #16a34a;
  --asphalt: #45464d;
  --road-edge: #fbf8f2;
  display: block;
  overflow: hidden;
  color: var(--ink);
  font-family: "DM Sans", sans-serif;
  background:
    radial-gradient(ellipse 40% 30% at 0% 28%, rgba(255, 107, 91, .12), transparent 70%),
    radial-gradient(ellipse 40% 30% at 100% 62%, rgba(255, 194, 61, .16), transparent 70%),
    linear-gradient(180deg, #f6f1e8 0%, #faf7f1 40%, #f8f4ec 72%, #f3eee5 100%);
}
.rv *, .rv *::before, .rv *::after { box-sizing: border-box; }
:where(.rv) :where(h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote) { margin: 0; padding: 0; }
:where(.rv) :where(ul, ol) { list-style: none; }
.rv img { display: block; max-width: none; }
.rv svg { display: block; overflow: visible; }
.rv h1, .rv h2, .rv h3, .rv-pin b, .rv-brand__logo {
  font-family: "Space Grotesk", sans-serif;
  font-weight: 700;
  letter-spacing: -0.015em;
}
.rv h1 em, .rv h2 em { font-family: inherit; font-style: normal; letter-spacing: inherit; }
.rv-i { width: 22px; height: 22px; flex: 0 0 auto; }
.rv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rv-st { display: inline-block !important; width: 13px; height: 13px; color: var(--gold); vertical-align: -1px; }
.rv .rv-stars { width: 104px; height: auto; color: #f5b301; }
.rv .rv-stars--sm { width: 70px; }
.rv-cap { color: var(--muted); font-size: 12px; }
.rv-dark .rv-cap { color: #a8a3b0; }

.rv-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 22px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: linear-gradient(180deg, #ff8272 0%, #f2513f 100%);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .25) inset, 0 10px 24px rgba(242, 81, 63, .32);
  color: #fff;
  font: 700 16px/1.1 "DM Sans", sans-serif;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease;
}
.rv-btn:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 0 0 1px rgba(255, 255, 255, .35) inset, 0 14px 30px rgba(242, 81, 63, .45); }
.rv-btn .rv-i { width: 18px; height: 18px; }
.rv-btn--ghost { border-color: rgba(255, 236, 214, .6); background: rgba(20, 20, 23, .35); box-shadow: none; color: #fff; }
.rv-btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, .1); box-shadow: none; color: #fff; }
.rv-btn--ink { border-color: rgba(28, 27, 32, .28); background: #fff; color: var(--ink); }
.rv-btn--ink:hover { border-color: var(--ink); background: #fff; color: var(--ink); }
.rv-actions { display: flex; flex-wrap: wrap; gap: 12px; }

.rv-note { font-family: "Caveat", cursive; font-weight: 700; font-size: 30px; line-height: .95; color: #3a2a12; }
.rv-note u { color: var(--rose); text-decoration-thickness: 2px; text-underline-offset: 4px; }

.rv-checks { display: flex; flex-direction: column; gap: 9px; }
.rv-checks li { display: flex; align-items: flex-start; gap: 10px; font-size: 15.5px; font-weight: 500; line-height: 1.3; }
.rv-checks svg { width: 20px; height: 20px; flex: 0 0 auto; }
.rv-ok { color: var(--go); }
.rv-no { color: #b4b0ba; }
.rv-try { display: flex; align-items: center; gap: 8px; color: #c2410c; font-size: 15px; font-weight: 700; }
.rv-try .rv-i { width: 20px; height: 20px; }

.rv-card {
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff, #fdfbf7);
  box-shadow: 0 10px 24px rgba(28, 27, 32, .09), 0 2px 5px rgba(28, 27, 32, .05), 0 0 0 1px rgba(28, 27, 32, .06);
}
/* Dark cards with crisp UI inside (house style), charcoal with a warm hairline for this page. */
.rv-dark {
  border: 1px solid rgba(255, 214, 150, .2);
  border-radius: 16px;
  background: linear-gradient(160deg, #2a2830 0%, #1c1b21 55%, #151418 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 2px 4px rgba(20, 20, 23, .18), 0 16px 30px -8px rgba(20, 20, 23, .4), 0 36px 64px -20px rgba(20, 20, 23, .5);
  color: #f1ede6;
}
.rv-chip { display: inline-flex; align-items: center; padding: 4px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; font-style: normal; line-height: 1.1; white-space: nowrap; }
.rv-chip--go { background: rgba(22, 163, 74, .16); color: #22c55e; }
.rv-chip--wait { background: rgba(255, 107, 91, .16); color: #ff7a6b; }
.rv-card .rv-chip--go { background: #dcfce7; color: #166534; }
.rv-card .rv-chip--wait { background: #ffe4df; color: #b42318; }

/* A grid cell that JS fills with hidden copies of every text it will show, so typing never shifts the layout. */
.rv-stack { display: grid; }
.rv-stack > * { grid-area: 1 / 1; }
.rv-stack > .rv-ghost { visibility: hidden; }
.rv-typing::after { content: ""; display: inline-block; width: 2px; height: 1em; margin-left: 2px; vertical-align: -.14em; background: currentColor; animation: rv-caret .8s steps(1) infinite; }
@keyframes rv-caret { 50% { opacity: 0; } }

/* Reviewer line shared by the hero, stop 1 and stop 3. */
.rv-rev__who { display: flex; align-items: center; gap: 10px; }
.rv-rev__who > i { display: grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: var(--c); color: #fff; font: 700 15px/1 "Space Grotesk", sans-serif; font-style: normal; }
.rv-rev__who > span { display: grid; gap: 3px; min-width: 0; }
.rv-rev__who b { font-size: 15px; line-height: 1.1; }
.rv-new { margin-left: auto; padding: 4px 9px; border-radius: 999px; background: var(--coral); color: #fff; font-size: 11.5px; font-style: normal; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.rv-when { margin-left: auto; color: #a8a3b0; font-size: 12.5px; font-style: normal; }
.rv-reply__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: 12.5px; }
.rv-reply__head b { font-size: 13px; }

/* ---------------------------------------------------------------- hero */
.rv-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding-bottom: 40px;
  background:
    radial-gradient(ellipse 50% 45% at 22% 62%, rgba(255, 107, 91, .22), transparent 70%),
    radial-gradient(ellipse 45% 40% at 80% 20%, rgba(255, 194, 61, .14), transparent 70%),
    linear-gradient(180deg, #141417 0%, #1b1a1f 60%, #1f1c1d 100%);
  color: #fff;
}
/* Scattered gold stars (CSS only), dimmer toward the copy. */
.rv-hero__stars {
  position: absolute;
  inset: 0;
  opacity: .55;
  background-image:
    radial-gradient(circle at 12% 18%, #ffc23d 0 1.6px, transparent 2.4px),
    radial-gradient(circle at 34% 8%, #ffe3a0 0 1.1px, transparent 1.9px),
    radial-gradient(circle at 58% 26%, #ffc23d 0 1.3px, transparent 2px),
    radial-gradient(circle at 82% 12%, #ffe3a0 0 1.6px, transparent 2.4px),
    radial-gradient(circle at 92% 44%, #ffc23d 0 1.1px, transparent 1.9px),
    radial-gradient(circle at 6% 70%, #ffe3a0 0 1.3px, transparent 2px),
    radial-gradient(circle at 44% 88%, #ffc23d 0 1.6px, transparent 2.4px),
    radial-gradient(circle at 72% 78%, #ffe3a0 0 1.1px, transparent 1.9px);
  background-size: 520px 420px;
  pointer-events: none;
}
.rv-hero__copy, .rv-stage { position: relative; z-index: 2; }
.rv-hero__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; width: min(100% - 32px, 640px); margin: 0 auto; padding: 30px 0 0; }
.rv-brand { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.rv-brand__logo { display: flex; align-items: center; gap: 10px; color: #fff; font-size: 30px; line-height: 1; letter-spacing: -0.02em; }
.rv-brand__logo svg { width: 36px; height: 32px; }
.rv-eyebrow { color: #f3d9b0; font-size: 14px; font-weight: 600; line-height: 1.3; }
.rv h1 { margin: 0; color: #fff; font-size: clamp(34px, 8.4vw, 50px); line-height: 1.04; letter-spacing: -0.025em; text-wrap: balance; }
.rv h1 em { display: block; margin-top: 6px; color: var(--gold); }
.rv-hero__sub { max-width: 580px; color: #e9e3da; font-size: 17px; line-height: 1.5; text-wrap: pretty; }
.rv-signals { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.rv-signals li { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; }
.rv-signals .rv-ok { width: 22px; height: 22px; color: var(--gold); }

/* The phone: a Google-style review feed where a new review lands and the owner reply types itself out. */
.rv-stage { display: grid; justify-items: center; gap: 18px; width: min(100% - 32px, 420px); margin: 32px auto 0; }
.rv-phone { position: relative; width: min(100%, 360px); }
.rv-phone::before { content: ""; position: absolute; z-index: -1; inset: -50px -40px; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 194, 61, .22), transparent); pointer-events: none; }
.rv-phone__screen {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 14px 12px 12px;
  border: 10px solid #0b0b0d;
  border-radius: 46px;
  background: linear-gradient(180deg, #f7f4ee 0%, #efeae1 100%);
  box-shadow: 0 0 0 2px #5b5750, 0 0 0 3px #2a2826, 0 40px 70px -20px rgba(0, 0, 0, .7), 0 0 0 10px rgba(255, 194, 61, .06);
  color: var(--ink);
}
.rv-phone__screen::before { content: ""; position: absolute; top: 6px; left: 50%; width: 92px; height: 24px; border-radius: 999px; background: #0b0b0d; transform: translateX(-50%); }
.rv-phone__status { display: flex; align-items: center; justify-content: space-between; padding: 0 14px; font-size: 13px; }
.rv-phone__status span { display: flex; gap: 3px; }
.rv-phone__status i { width: 5px; height: 9px; border-radius: 1px; background: var(--ink); }
.rv-phone__bar { width: 110px; height: 4px; margin: 4px auto 0; border-radius: 999px; background: #1c1b20; }
.rv-phone__cap { margin-top: 12px; color: #b7b0a6; font-size: 11.5px; text-align: center; }
.rv-feed { display: grid; gap: 10px; }
.rv-feed__biz { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 14px; background: #fff; box-shadow: 0 1px 0 rgba(28, 27, 32, .06); }
.rv-feed__biz img { width: 38px; height: 38px; border-radius: 10px; }
.rv-feed__biz p { display: grid; gap: 3px; }
.rv-feed__biz b { font-size: 14.5px; }
.rv-feed__biz span { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 12px; }
.rv-feed__biz em { color: var(--ink); font-style: normal; font-weight: 700; }
.rv-rev { display: grid; gap: 10px; padding: 12px; border-radius: 16px; background: #fff; box-shadow: 0 12px 26px -12px rgba(28, 27, 32, .35), 0 0 0 1px rgba(28, 27, 32, .05); }
.rv-rev__text { color: var(--ink); font-size: 14px; line-height: 1.45; }
.rv-reply { display: grid; gap: 7px; padding: 10px 12px; border-left: 3px solid var(--coral); border-radius: 4px 12px 12px 4px; background: #fbf4ee; }
.rv-reply__head span { color: var(--muted); font-weight: 600; }
.rv-reply__text { color: var(--ink2); font-size: 13.5px; line-height: 1.45; }
.rv-feed.is-arriving .rv-rev { animation: rv-arrive .6s cubic-bezier(.3, 1.3, .5, 1) both; }
@keyframes rv-arrive { from { opacity: 0; transform: translateY(-18px) scale(.97); } }
.rv-feed.is-thinking .rv-reply__text { color: transparent; }
.rv-feed.is-thinking .rv-reply__text::before { content: "Writing a reply…"; position: absolute; color: var(--muted); font-style: italic; }
.rv-feed .rv-reply .rv-stack { position: relative; }

.rv-note--hero {
  position: relative;
  container-type: inline-size;
  justify-self: end;
  width: min(100%, 250px);
  padding: 12px 16px 14px;
  border: 1px solid rgba(255, 230, 200, .28);
  border-radius: 14px;
  background: rgba(30, 28, 32, .66);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  color: #fff;
  font-size: 30px;
  transform: rotate(-4deg);
}
.rv-note--hero u { color: var(--gold); }

/* ---------------------------------------------------------------- road + steps (phones first) */
.rv-course { position: relative; }
.rv .rv-road, .rv .rv-drive { display: none; }
.rv-step { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 20px; max-width: 780px; margin: 0 auto; padding: 34px 16px 34px 76px; }
.rv-step::before, .rv-finish::before { content: ""; position: absolute; left: 20px; top: 0; bottom: 0; width: 22px; background: var(--asphalt); box-shadow: 0 0 0 2.5px var(--road-edge), 0 0 0 3.5px #d8d0c3; }
.rv-step::after, .rv-finish::after { content: ""; position: absolute; left: 30px; top: 0; bottom: 0; border-left: 2px dashed #fff; }
.rv-step > * { min-width: 0; }
.rv-pin { position: absolute; z-index: 1; left: 0; top: 20px; width: 62px; height: 78px; filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .3)); }
.rv-pin svg { width: 100%; height: 100%; color: var(--pin); }
.rv-pin b { position: absolute; left: 0; right: 0; top: 8px; color: #fff; font-size: 36px; text-align: center; }
@keyframes rv-pin-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
.rv-step.is-in .rv-pin, .rv:not(.rv-motion) .rv-pin { animation: rv-pin-bob 2.6s ease-in-out infinite; }
.rv-step:nth-of-type(even) .rv-pin { animation-delay: -1.3s; }
.rv h2 { font-size: clamp(26px, 6.4vw, 32px); line-height: 1.08; }
.rv-intro { display: grid; gap: 12px; align-content: start; }
.rv-aside { display: grid; gap: 14px; }
.rv-sub { color: var(--ink2); font-size: 16px; line-height: 1.45; text-wrap: pretty; }
.rv-visual { display: grid; gap: 16px; min-width: 0; }

/* Stop 1: voice picker */
.rv-voices__label { color: var(--ink); font: 700 15px/1.2 "Space Grotesk", sans-serif; }
.rv-voices__pick { display: flex; flex-wrap: wrap; gap: 8px; }
.rv-voices__pick button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 13px;
  border: 1px solid rgba(28, 27, 32, .14);
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font: 600 14px/1.1 "DM Sans", sans-serif;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .15s ease;
}
.rv-voices__pick button .rv-i { width: 17px; height: 17px; color: #c2410c; }
.rv-voices__pick button:hover { border-color: var(--coral); }
.rv-voices__pick button[aria-pressed="true"] { border-color: var(--char); background: var(--char); color: #fff; }
.rv-voices__pick button[aria-pressed="true"] .rv-i { color: var(--gold); }
.rv-voices__card { display: grid; gap: 12px; padding: 18px; }
.rv-voices__review { color: #f1ede6; font-size: 15.5px; line-height: 1.5; }
.rv-voices__reply { display: grid; gap: 8px; padding: 12px 14px; border-left: 3px solid var(--coral); border-radius: 4px 12px 12px 4px; background: rgba(255, 255, 255, .05); }
.rv-voices__reply .rv-reply__head span { padding: 3px 9px; border-radius: 999px; background: rgba(255, 194, 61, .16); color: var(--gold); font-weight: 700; }
.rv-voices__text { color: #fff; font-size: 16px; line-height: 1.5; }

.rv-voices__rev { display: grid; gap: 10px; }
.rv .rv-stars[data-n="4"] path:nth-child(5) { opacity: .22; }
.rv-shim { display: none; align-content: start; gap: 9px; }
.rv-shim em { display: flex; align-items: center; gap: 7px; color: var(--gold); font-size: 13px; font-weight: 700; }
.rv-shim em::before { content: ""; width: 15px; height: 15px; flex: 0 0 auto; background: currentColor; clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); animation: rv-spin 1.4s linear infinite; }
@keyframes rv-spin { to { transform: rotate(1turn); } }
.rv-shim i { display: block; height: 11px; border-radius: 6px; background: linear-gradient(90deg, rgba(255, 255, 255, .07) 0%, rgba(255, 214, 150, .26) 45%, rgba(255, 255, 255, .07) 90%) 0 0 / 220% 100%; animation: rv-shimmer 1.2s linear infinite; }
.rv-shim i:nth-of-type(2) { width: 92%; }
.rv-shim i:nth-of-type(3) { width: 64%; }
@keyframes rv-shimmer { from { background-position: 120% 0; } to { background-position: -120% 0; } }
.rv-voices__card.is-thinking .rv-shim { display: grid; }
.rv-voices__card.is-thinking .rv-voices__text { visibility: hidden; }

/* One-look rule: stops 2 to 6 are each ONE card telling ONE story, with a big status line that says in plain words
   what is happening. The card's data-state picks what shows; hvac-review.js steps it one change at a time.
   The HTML ships the final state (no JS, reduced motion). Variants share one .rv-stack cell so nothing shifts. */
.rv-solo { justify-items: start; }
.rv-solo > .rv-dark, .rv-solo > .rv-card, .rv-tough__stage { width: 100%; max-width: 580px; }
.rv-solo__rule { max-width: 580px; color: var(--ink); font-size: 16px; font-weight: 700; line-height: 1.4; }
.rv-solo .rv-note { justify-self: end; max-width: 100%; }
.rv-status { font: 700 18px/1.25 "Space Grotesk", sans-serif; }
.rv-status > span, .rv-hold__status > span { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-radius: 12px; }
.rv-status .rv-i { width: 24px; height: 24px; }
.rv-status > span[data-when="new"], .rv-status > span[data-when="done"] { background: rgba(255, 255, 255, .07); color: #f1ede6; }
.rv-status > span[data-when="wait"] { background: rgba(255, 194, 61, .16); color: var(--gold); }
.rv-status > span[data-when="go"], .rv-status > span[data-when="sent"] { background: rgba(34, 197, 94, .16); color: #4ade80; }
.rv-job .rv-status > span[data-when="done"] { color: #4ade80; }
[data-state] .rv-stack > [data-when] { visibility: hidden; }
.is-arriving.rv-story .rv-story__rev, .is-arriving.rv-tough__stage .rv-hold, .rv-mail.is-arriving { animation: rv-arrive .6s cubic-bezier(.3, 1.3, .5, 1) both; }
.rv-mail.is-waiting { opacity: 0; }

/* Stop 2: came in at night -> reply ready, waiting -> posted */
.rv-story { display: grid; gap: 14px; padding: 18px; }
.rv-story__in { display: flex; align-items: center; gap: 12px; }
.rv-story__in .rv-i { width: 34px; height: 34px; color: #c7d2fe; }
.rv-story__in span { display: grid; gap: 3px; }
.rv-story__in small { color: #a8a3b0; font-size: 13px; font-weight: 700; }
.rv-story__in b { color: #fff; font: 700 30px/1 "Space Grotesk", sans-serif; font-variant-numeric: tabular-nums; }
.rv-story__rev { display: grid; gap: 10px; padding: 12px; border-radius: 12px; background: rgba(255, 255, 255, .05); }
.rv-story__text { color: #e6e1e8; font-size: 15px; line-height: 1.45; }
.rv-story__reply { display: grid; gap: 7px; padding: 10px 12px; border-left: 3px solid var(--coral); border-radius: 4px 12px 12px 4px; background: rgba(255, 255, 255, .05); }
.rv-story__rtext { color: #fff; font-size: 15px; line-height: 1.45; }
.rv-story__none { color: #8f8a97; font-size: 14px; font-style: italic; }
.rv-story .rv-shim, .rv-tough__stage .rv-shim { display: grid; }
.rv-story:not([data-state="new"]) .rv-story__none,
.rv-story:not([data-state="writing"]) .rv-shim,
.rv-story:is([data-state="new"], [data-state="writing"]) .rv-story__rtext { visibility: hidden; }
.rv-story:is([data-state="new"], [data-state="writing"]) [data-when="new"],
.rv-story[data-state="wait"] [data-when="wait"],
.rv-story[data-state="go"] [data-when="go"] { visibility: visible; }

/* Stop 3: a static setting pill and one 1-star review that waits for your OK */
.rv-setting { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 999px; background: var(--char); color: #f1ede6; font-size: 15px; }
.rv-setting b { color: var(--gold); }
.rv-setting .rv-st { width: 16px; height: 16px; }
.rv-tough__stage { display: grid; gap: 12px; }
.rv-toast { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border-radius: 16px; background: rgba(28, 27, 32, .92); box-shadow: 0 14px 30px -12px rgba(20, 20, 23, .55); color: #d9d4dd; font-size: 14px; line-height: 1.35; transition: opacity .35s ease, transform .45s cubic-bezier(.3, 1.3, .5, 1); }
.rv-toast .rv-i { width: 34px; height: 34px; padding: 7px; border-radius: 9px; background: #2563eb; color: #fff; }
.rv-toast span { display: grid; gap: 2px; }
.rv-toast small { color: #a8a3b0; font-size: 12.5px; font-weight: 700; }
.rv-toast b { color: #fff; font-size: 15px; }
.rv-tough__stage:is([data-state="arrive"], [data-state="writing"]) .rv-toast { opacity: 0; transform: translateY(-10px); }
.rv-hold { display: grid; gap: 10px; padding: 16px; }
.rv-hold .rv-stars--sm { color: #f5b301; }
.rv-hold__review { color: var(--ink2); font-size: 15px; line-height: 1.45; }
.rv-hold__draft { display: grid; gap: 5px; padding: 11px 12px; border-left: 3px solid var(--coral); border-radius: 4px 10px 10px 4px; background: #fbf4ee; color: var(--ink); font-size: 14.5px; line-height: 1.45; }
.rv-hold__label { color: #c2410c; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.rv-hold .rv-shim em { color: #c2410c; }
.rv-hold .rv-shim i { background: linear-gradient(90deg, rgba(28, 27, 32, .06) 0%, rgba(255, 107, 91, .28) 45%, rgba(28, 27, 32, .06) 90%) 0 0 / 220% 100%; }
.rv-tough__stage[data-state="arrive"] .rv-hold__draft .rv-stack > *,
.rv-tough__stage:not([data-state="writing"]) .rv-shim,
.rv-tough__stage[data-state="writing"] .rv-hold__text { visibility: hidden; }
.rv-hold__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.rv-hold__status { justify-items: start; font-size: 15px; font-weight: 800; }
.rv-hold__status .rv-i { width: 18px; height: 18px; }
.rv-hold__status > span { padding: 7px 12px; border-radius: 999px; }
.rv-hold__status [data-when="hold"] { background: #ffe4df; color: #b42318; }
.rv-hold__status [data-when="ok"] { background: #fff4d6; color: #8a5a00; }
.rv-hold__status [data-when="done"] { background: #dcfce7; color: #166534; }
.rv-tough__stage:is([data-state="arrive"], [data-state="writing"], [data-state="email"], [data-state="press"]) [data-when="hold"],
.rv-tough__stage[data-state="ok"] [data-when="ok"],
.rv-tough__stage[data-state="done"] [data-when="done"] { visibility: visible; }
.rv-hold__btns { display: flex; gap: 8px; transition: opacity .3s ease; }
.rv-hold__btns span { padding: 9px 16px; border-radius: 9px; font-size: 14px; font-weight: 700; transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease; }
.rv-hold__edit { box-shadow: inset 0 0 0 1px rgba(28, 27, 32, .18); color: var(--ink); }
.rv-hold__ok { background: var(--go); color: #fff; }
.rv-tough__stage:is([data-state="arrive"], [data-state="writing"]) .rv-hold__btns { opacity: .35; }
.rv-tough__stage[data-state="press"] .rv-hold__ok { transform: scale(.94); box-shadow: 0 0 0 4px rgba(22, 163, 74, .3); background: #15803d; }
.rv-tough__stage:is([data-state="ok"], [data-state="done"]) .rv-hold__btns { visibility: hidden; }

/* Stop 4: one job: marked done -> a few hours later -> text sent */
.rv-job { display: grid; gap: 14px; padding: 18px; }
.rv-job__head { display: flex; align-items: center; gap: 12px; }
.rv-job__ico { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(34, 197, 94, .16); color: #4ade80; }
.rv-job__head > span:last-child { display: grid; gap: 2px; }
.rv-job__head b { color: #fff; font: 700 18px/1.2 "Space Grotesk", sans-serif; }
.rv-job__head small { color: #a8a3b0; font-size: 13px; }
.rv-job[data-state="done"] [data-when="done"], .rv-job[data-state="wait"] [data-when="wait"], .rv-job[data-state="sent"] [data-when="sent"] { visibility: visible; }
.rv-sms { display: grid; gap: 6px; padding: 14px; border-radius: 22px; background: #fff; color: var(--ink); transition: opacity .35s ease, transform .5s cubic-bezier(.3, 1.3, .5, 1); }
.rv-job:not([data-state="sent"]) .rv-sms { opacity: 0; transform: translateY(14px) scale(.97); }
.rv-sms__from { display: flex; align-items: center; gap: 8px; font-size: 13.5px; }
.rv-sms__from img { width: 28px; height: 28px; border-radius: 8px; }
.rv-sms__bubble { max-width: 340px; padding: 11px 13px; border-radius: 18px 18px 18px 6px; background: #ecebf0; color: var(--ink); font-size: 15px; line-height: 1.4; }
.rv-sms__link { display: block; margin-top: 6px; color: #1d4ed8; font-weight: 700; text-decoration: underline; }
.rv-sms__time { color: var(--muted); font-size: 11.5px; }

/* Stop 5: old reviews, oldest first, one row at a time */
.rv-back { display: grid; gap: 12px; padding: 18px; }
.rv-back__title { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; font: 700 17px/1.2 "Space Grotesk", sans-serif; }
.rv-back__title small { color: #a8a3b0; font: 600 13px/1.2 "DM Sans", sans-serif; }
.rv-back__list { display: grid; gap: 6px; }
.rv-back__list li { display: grid; grid-template-columns: 96px 40px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px; background: rgba(255, 255, 255, .05); font-size: 14px; }
.rv-back__list em { color: #a8a3b0; font-size: 12.5px; font-style: normal; }
.rv-back__list b { display: flex; align-items: center; gap: 2px; font: 700 14px/1 "Space Grotesk", sans-serif; }
.rv-back__list span { overflow: hidden; color: #ece8e1; white-space: nowrap; text-overflow: ellipsis; }
.rv-back__list li > i { justify-items: end; font-style: normal; }
.rv-chip--none { background: rgba(255, 255, 255, .08); color: #a8a3b0; }
.rv-back__list li[data-state="none"] [data-when="none"], .rv-back__list li[data-state="done"] [data-when="done"], .rv-back__list li[data-state="wait"] [data-when="wait"] { visibility: visible; }
.rv-back__list li.is-flash .rv-chip { animation: rv-pop .5s ease both; }
@keyframes rv-pop { 40% { transform: scale(1.12); } }

/* Stop 6: the morning email, each reply under its review */
.rv-mail { display: grid; gap: 10px; padding: 16px; transition: opacity .3s ease; }
.rv-mail__top { display: flex; justify-content: space-between; color: var(--muted); font-size: 13px; }
.rv-mail__top span { display: flex; align-items: center; gap: 6px; }
.rv-mail__top .rv-i { width: 17px; height: 17px; }
.rv-mail__top b { color: var(--ink); font: 700 18px/1 "Space Grotesk", sans-serif; }
.rv-mail__from { display: flex; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid rgba(28, 27, 32, .08); }
.rv-mail__from i { display: grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; background: var(--coral); color: #fff; font: 700 15px/1 "Space Grotesk", sans-serif; font-style: normal; }
.rv-mail__from span { display: grid; gap: 2px; color: var(--muted); font-size: 13px; }
.rv-mail__from b { color: var(--ink); font-size: 15px; }
.rv-mail__row { display: grid; gap: 5px; padding-bottom: 10px; border-bottom: 1px solid rgba(28, 27, 32, .06); }
.rv-mail__row > p:first-child { display: grid; grid-template-columns: 40px auto minmax(0, 1fr); align-items: center; gap: 8px; font-size: 14px; }
.rv-mail__row b { display: flex; align-items: center; gap: 2px; font: 700 14px/1 "Space Grotesk", sans-serif; }
.rv-mail__row span { font-weight: 700; }
.rv-mail__row small { overflow: hidden; color: var(--muted); font-size: 13px; white-space: nowrap; text-overflow: ellipsis; }
.rv-mail__reply { overflow: hidden; margin-left: 48px; padding: 6px 10px; border-left: 3px solid var(--coral); border-radius: 3px 8px 8px 3px; background: #fbf4ee; color: var(--ink2); font-size: 13.5px; white-space: nowrap; text-overflow: ellipsis; }
.rv-mail__reply em { margin-right: 6px; color: #c2410c; font-size: 12px; font-style: normal; font-weight: 800; }

/* Finish band: a big gold star where the road ends */
.rv-finish { position: relative; display: grid; gap: 16px; max-width: 780px; margin: 0 auto; padding: 30px 16px 44px 76px; }
.rv-finish > * { position: relative; z-index: 2; }
.rv-bigstar { width: 120px; height: auto; }
.rv-finish__copy { display: grid; gap: 10px; }
.rv-finish__copy h2 { font-size: clamp(24px, 5.6vw, 30px); }
.rv-finish__copy p { color: var(--ink2); font-size: 15.5px; line-height: 1.45; }
.rv-note--out { justify-self: end; transform: rotate(-5deg); }

/* ---------------------------------------------------------------- sample reviews (same design as the other road pages) */
.rv-reviews { position: relative; z-index: 3; display: grid; gap: 26px; padding: 48px 16px 56px; background: linear-gradient(180deg, #f5efe4 0%, #faf6ef 100%); scroll-margin-top: 186px; }
.rv-reviews__head, .rv-get__head { display: grid; justify-items: center; gap: 10px; max-width: 700px; margin: 0 auto; text-align: center; }
.rv-reviews__label { padding: 4px 12px; border-radius: 999px; background: rgba(28, 27, 32, .06); color: var(--muted); font-size: 13px; font-weight: 600; }
.rv-reviews__grid { display: grid; gap: 18px; width: 100%; max-width: 1280px; margin: 0 auto; }
.rv-review { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 24px 22px 22px; border-radius: 18px; background: linear-gradient(180deg, #fff 0%, #fdfcfa 100%); box-shadow: 0 16px 34px rgba(28, 27, 32, .1), 0 2px 6px rgba(28, 27, 32, .05), 0 0 0 1px rgba(28, 27, 32, .06); }
.rv-review::before { content: ""; position: absolute; inset: 0 22px auto; height: 3px; border-radius: 0 0 3px 3px; background: var(--av); opacity: .85; }
.rv-review::after { content: "\201C"; position: absolute; top: 6px; right: 18px; color: color-mix(in srgb, var(--av) 16%, transparent); font: 700 84px/1 Georgia, serif; pointer-events: none; }
.rv-review .rv-stars { filter: drop-shadow(0 1px 1px rgba(181, 120, 0, .25)); }
.rv-review blockquote { flex: 1 1 auto; }
.rv-review blockquote p { color: var(--ink); font-size: 16px; line-height: 1.55; text-wrap: pretty; }
.rv-review figcaption { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid rgba(28, 27, 32, .08); }
.rv-review__av { display: grid; place-items: center; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(145deg, color-mix(in srgb, var(--av) 78%, #fff), var(--av)); box-shadow: 0 6px 14px color-mix(in srgb, var(--av) 35%, transparent), inset 0 1px rgba(255, 255, 255, .35); color: #fff; font: 700 16px/1 "Space Grotesk", sans-serif; letter-spacing: .02em; }
.rv-review figcaption b { display: block; color: var(--ink); font-size: 16px; }
.rv-review figcaption small { display: block; color: var(--muted); font-size: 13.5px; line-height: 1.35; }

/* ---------------------------------------------------------------- how you get it */
.rv-get { position: relative; z-index: 3; display: grid; gap: 26px; padding: 52px 16px 56px; background: #fffdf9; scroll-margin-top: 186px; }
.rv-vs { display: grid; width: 100%; max-width: 980px; margin: 0 auto; overflow: hidden; border-radius: 16px; background: #fff; box-shadow: 0 16px 34px rgba(28, 27, 32, .08), 0 0 0 1px rgba(28, 27, 32, .07); }
.rv-vs__head, .rv-vs__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.rv-vs__head span { padding: 12px 16px; color: var(--muted); font-size: 12.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.rv-vs__head span:last-child { background: var(--char); color: var(--gold); }
.rv-vs__row span { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; border-top: 1px solid rgba(28, 27, 32, .07); font-size: 16px; line-height: 1.4; }
.rv-vs__row span:first-child { color: var(--muted); }
.rv-vs__row span:last-child { background: #fff8ec; color: var(--ink); font-weight: 600; }
.rv-vs__row svg { width: 20px; height: 20px; flex: 0 0 auto; margin-top: 1px; }
.rv-plan { display: grid; gap: 20px; width: 100%; max-width: 980px; margin: 0 auto; padding: 24px; border-radius: 18px; background: linear-gradient(160deg, #2a2830 0%, #1c1b21 60%, #151418 100%); box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .45); color: #f1ede6; }
.rv-plan h3 { color: #fff; font-size: 24px; line-height: 1.15; }
.rv-plan__copy { display: grid; gap: 14px; }
.rv-plan__list { display: grid; gap: 10px; }
.rv-plan__list li { display: flex; align-items: flex-start; gap: 10px; color: #ddd7cf; font-size: 15.5px; line-height: 1.45; }
.rv-plan__list b { color: #fff; }
.rv-plan__list .rv-ok { width: 20px; height: 20px; margin-top: 2px; color: var(--gold); }
.rv-plan .rv-btn--ink { border-color: rgba(255, 236, 214, .6); background: transparent; color: #fff; }
.rv-plan .rv-btn--ink:hover { border-color: #fff; background: rgba(255, 255, 255, .08); color: #fff; }

/* ---------------------------------------------------------------- FAQ */
.rv-close { position: relative; z-index: 3; padding: 44px 16px 52px; background: linear-gradient(180deg, #1c1b21 0%, #141417 100%); color: #fff; }
.rv-faq { display: grid; gap: 10px; max-width: 980px; margin: 0 auto; }
.rv-faq h2 { margin-bottom: 6px; color: #fff; font-size: clamp(24px, 5.4vw, 30px); }
.rv-faq details { border: 1px solid rgba(255, 236, 214, .16); border-radius: 10px; background: rgba(255, 255, 255, .04); }
.rv-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 16px; color: #fff; font-size: 16px; font-weight: 700; list-style: none; cursor: pointer; }
.rv-faq summary::-webkit-details-marker { display: none; }
.rv-faq .rv-plus { flex: 0 0 auto; width: 18px; height: 18px; color: #d8c7ad; transition: transform .25s ease; }
.rv-faq details[open] .rv-plus { transform: rotate(45deg); }
.rv-faq details p { padding: 0 16px 15px; color: #ddd7cf; font-size: 16px; line-height: 1.55; }

/* ---------------------------------------------------------------- motion */
.rv-motion .rv-reveal { opacity: 0; transform: translateY(26px); transition: opacity .6s cubic-bezier(.22, .8, .24, 1), transform .6s cubic-bezier(.22, .8, .24, 1); }
.rv-motion .rv-reveal.is-in { opacity: 1; transform: none; }
.rv-motion .rv-pin { transition: transform .5s cubic-bezier(.3, 1.6, .5, 1), filter .4s ease; }
.rv-motion .rv-step:not(.is-in) .rv-pin { transform: translateY(-28px) scale(.8); filter: grayscale(1) opacity(.55); }
.rv-motion .rv-bigstar { transform-origin: center; animation: rv-star 3.2s ease-in-out infinite; }
@keyframes rv-star { 0%, 100% { transform: rotate(0) scale(1); } 50% { transform: rotate(10deg) scale(1.06); } }

/* ---------------------------------------------------------------- tablets */
@media (min-width: 700px) {
  .rv-hero__copy { padding-top: 40px; }
  .rv-finish { grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 24px; }
  .rv-note--out { grid-column: 1 / -1; }
  .rv-reviews__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rv-plan { grid-template-columns: minmax(0, 1fr) auto; align-items: end; padding: 30px; }
  .rv-plan .rv-actions { flex-direction: column; }
  .rv-close { padding: 52px clamp(24px, 5vw, 64px) 60px; }
}
@media (min-width: 1100px) {
  .rv-solo { grid-template-columns: minmax(0, 580px) minmax(0, 1fr); grid-auto-flow: dense; column-gap: 36px; align-items: center; }
  .rv-solo > :is(.rv-dark, .rv-card, .rv-tough__stage) { grid-column: 1; grid-row: 1 / span 3; }
  .rv-solo > .rv-setting { grid-column: 1; grid-row: auto; justify-self: start; }
  .rv-tough > .rv-tough__stage { grid-row: 2 / span 3; }
  .rv-solo > :is(.rv-solo__rule, .rv-solo__cap, .rv-note) { grid-column: 2; }
  .rv-solo .rv-note { justify-self: start; }
}
@media (min-width: 1100px) { .rv-reviews__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; } }

/* ---------------------------------------------------------------- desktop rows */
@media (min-width: 1280px) {
  /* Phone on the left, copy on the right: the mirror of the SEO Audit and Rank Tracker heroes. */
  .rv-hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; min-height: clamp(620px, 40vw, 740px); padding-bottom: 0; }
  .rv-hero__copy { grid-column: 2; grid-row: 1; gap: 18px; width: auto; margin: 0; padding: 44px clamp(40px, 4.4vw, 80px) 60px 12px; }
  .rv-brand__logo { font-size: 34px; }
  .rv-brand__logo svg { width: 40px; height: 36px; }
  .rv-eyebrow { font-size: 15px; }
  .rv h1 { font-size: clamp(40px, 3.1vw, 60px); }
  .rv-hero__sub { font-size: clamp(16px, 1.1vw, 19px); }
  .rv-stage { position: relative; grid-column: 1; grid-row: 1; width: min(100%, 400px); margin: 30px auto 40px clamp(40px, 5vw, 110px); }
  .rv-note--hero { justify-self: end; width: 220px; margin: -6px -40px 0 0; font-size: 30px; transform: rotate(-3deg); }

  .rv-course { --edge: 92px; max-width: 1680px; margin: 0 auto; padding: 36px var(--edge) 0; }
  .rv .rv-road { position: absolute; left: 0; top: 0; z-index: 1; display: block; pointer-events: none; }
  .rv-road path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
  .rv-road__edge { stroke: var(--road-edge); stroke-width: 36; filter: drop-shadow(0 2px 3px rgba(40, 30, 20, .25)); }
  .rv-road__top { stroke: var(--asphalt); stroke-width: 30; }
  .rv-road__line { stroke: #fff; stroke-width: 2; stroke-dasharray: 12 10; stroke-linecap: butt !important; }
  .rv .rv-drive { position: absolute; z-index: 4; left: 0; top: 0; display: block; width: 140px; visibility: hidden; filter: drop-shadow(0 7px 5px rgba(20, 20, 40, .28)); pointer-events: none; will-change: transform; }
  .rv .rv-drive.is-placed { visibility: visible; }
  .rv-drive img { width: 100%; height: auto; }
  .rv-drive__right, .rv-drive.is-right .rv-drive__left { display: none !important; }
  .rv-drive.is-right .rv-drive__right { display: block !important; }

  .rv-step {
    z-index: 2;
    grid-template-columns: minmax(330px, .72fr) minmax(0, 1.45fr);
    grid-template-areas: "intro visual";
    align-items: start;
    column-gap: clamp(28px, 3vw, 56px);
    max-width: none;
    margin: 0;
    padding: 58px 36px 58px 104px;
  }
  .rv-intro { grid-area: intro; padding-top: 14px; }
  .rv-visual { grid-area: visual; }
  .rv-step::before, .rv-step::after, .rv-finish::before, .rv-finish::after { content: none; }
  .rv-pin { left: 17px; top: 28px; width: 80px; height: 100px; }
  .rv-pin b { top: 12px; font-size: 42px; }
  .rv h2 { font-size: clamp(27px, 1.95vw, 34px); line-height: 1.06; }
  .rv-voices { grid-template-columns: minmax(0, 1fr) auto; }
  .rv-voices__pick, .rv-voices__card { grid-column: 1 / -1; }
  .rv-note--s1 { grid-column: 2; justify-self: end; font-size: 34px; }
  .rv-solo .rv-note { font-size: 34px; }

  .rv-finish {
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: "star copy note";
    align-items: center;
    column-gap: clamp(24px, 3vw, 48px);
    max-width: none;
    margin: 10px 0 0 104px;
    padding: 26px 32px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .9);
    box-shadow: 0 16px 36px rgba(28, 27, 32, .1), 0 0 0 1px rgba(28, 27, 32, .05);
  }
  .rv-bigstar { grid-area: star; width: 110px; }
  .rv-finish__copy { grid-area: copy; }
  .rv-finish__copy h2 { font-size: clamp(24px, 1.7vw, 30px); }
  .rv-note--out { grid-column: auto; grid-area: note; font-size: 34px; }
  .rv-course::after { content: ""; display: block; height: 96px; }

  .rv-reviews, .rv-get { gap: 30px; padding: 64px clamp(40px, 5vw, 96px) 72px; }
  .rv-close { padding: 60px clamp(40px, 5vw, 96px) 68px; }
}

@media (min-width: 1280px) and (max-width: 1799px) {
  /* With the side panel open the course is ~1150px wide: visuals get the full row under a two-column intro. */
  .rv-step { grid-template-columns: minmax(0, 1fr); grid-template-areas: "intro" "visual"; row-gap: 26px; }
  .rv-step .rv-intro { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 40px; align-items: start; }
  .rv-step .rv-intro > :is(h2, .rv-sub) { grid-column: 1; }
  .rv-step .rv-intro > :is(.rv-checks, .rv-try, .rv-aside) { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
  .rv-finish { grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "star copy" "star note"; row-gap: 8px; }
  .rv-note--out { justify-self: end; }
  .rv h1 { font-size: clamp(38px, 3.2vw, 48px); }
  .rv-stage { width: min(100%, 370px); margin-left: clamp(28px, 3vw, 56px); }
  .rv-note--hero { width: 200px; margin-right: -24px; font-size: 28px; }
}

@media (max-width: 1180px) { .rv-step, .rv-reviews, .rv-get { scroll-margin-top: 236px; } }
@media (min-width: 1181px) { .rv-step { scroll-margin-top: 186px; } }
@media (max-width: 850px) { .rv-step, .rv-reviews, .rv-get { scroll-margin-top: 218px; } }
@media (max-width: 699px) {
  .rv-vs__head span:first-child { display: none; }
  .rv-vs__head, .rv-vs__row { grid-template-columns: minmax(0, 1fr); }
  .rv-vs__row span:first-child { padding-bottom: 4px; border-top: 1px solid rgba(28, 27, 32, .07); font-size: 14px; }
  .rv-vs__row span:last-child { border-top: 0; }
}
@media (max-width: 459px) {
  .rv-back__list li { grid-template-columns: 38px minmax(0, 1fr); row-gap: 6px; }
  .rv-back__list em { grid-column: 1 / -1; }
  .rv-back__list li > i { grid-column: 1 / -1; justify-items: start; }
  .rv-voices__pick button { padding: 8px 11px; font-size: 13px; }
  .rv-back__list span { white-space: normal; }
  .rv-story, .rv-job, .rv-back { padding: 14px; }
  .rv-story__in b { font-size: 26px; }
  .rv-status { font-size: 16px; }
  .rv-mail__row small { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .rv-btn, .rv-voices__pick button, .rv-toast, .rv-sms, .rv-hold__btns, .rv-hold__btns span, .rv-mail, .rv-faq .rv-plus { transition: none !important; }
  .rv-pin, .rv-bigstar, .rv-shim i, .rv-shim em::before, .rv-typing::after, .rv-feed .rv-rev, .rv-chip, .rv-story__rev, .rv-hold, .rv-mail { animation: none !important; }
  .rv-motion .rv-reveal, .rv-motion .rv-pin { opacity: 1 !important; transform: none !important; transition: none !important; }
  .rv-motion .rv-pin { filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .3)) !important; }
}

/* ReBoost AI Reviews plans (owner, Oct 17 2026): /hvac-google-reviews, three cards from functions/src/config/aiReviewsPricing.json
   (scripts/marketing_page_extras.mjs). "ReBoost" is always brand blue (#1565d8 on light, #5aa9ff on dark). */
.rv .rb { color: #1565d8; }
.rv-hero .rb, .rv-tier--top .rb { color: #5aa9ff; }
.rv-get__head--plans { margin-top: 18px; }
.rv-get__head--plans h2 em { color: var(--coral); font-style: normal; }
.rv-tiers { display: grid; gap: 18px; width: 100%; max-width: 1100px; margin: 0 auto; }
.rv-tier { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 26px 22px 24px; border: 1px solid rgba(28, 27, 32, .12); border-radius: 18px; background: #fff; box-shadow: 0 18px 40px -26px rgba(0, 0, 0, .35); color: var(--ink); }
.rv-tier--top { border-color: transparent; background: linear-gradient(160deg, #2a2830 0%, #1c1b21 60%, #151418 100%); box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .45); color: #f1ede6; }
.rv-tier__flag { position: absolute; top: -13px; left: 22px; padding: 5px 12px; border-radius: 999px; background: var(--gold); color: #1c1b20; font: 800 12.5px/1 "DM Sans", sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.rv-tier__name { font: 700 19px/1.25 "Space Grotesk", sans-serif; }
.rv-tier__name b { display: block; font-size: 26px; }
.rv-tier--top .rv-tier__name { color: #fff; }
.rv-tier__price { display: flex; align-items: baseline; gap: 8px; }
.rv-tier__price b { font: 700 46px/1 "Space Grotesk", sans-serif; }
.rv-tier__price span { color: var(--muted); font-size: 16px; }
.rv-tier--top .rv-tier__price span { color: #c9c2b8; }
.rv-tier__best { color: var(--ink2); font-size: 15.5px; line-height: 1.45; }
.rv-tier--top .rv-tier__best { color: #ddd7cf; }
.rv-tier .rv-plan__list { margin-bottom: 6px; }
.rv-tier:not(.rv-tier--top) .rv-plan__list li { color: var(--ink2); }
.rv-tier:not(.rv-tier--top) .rv-plan__list b { color: var(--ink); }
.rv-tier:not(.rv-tier--top) .rv-plan__list .rv-ok { color: var(--go); }
.rv-tier .rv-btn { width: 100%; margin-top: auto; }
.rv-tiers__note { max-width: 700px; margin: 0 auto; color: var(--ink2); font-size: 15.5px; text-align: center; }
.rv-tiers__note a { color: var(--ink); font-weight: 700; }
@media (min-width: 900px) {
  .rv-tiers { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
}
