/* VR Blocks — lean, theme-agnostic styles. BEM, no framework deps.
   Falls back to system fonts/colors; inherits theme tokens where present. */

.vr-blocks-notice {
  border: 1px dashed #b8b8b8;
  background: #fafafa;
  color: #444;
  padding: 16px 18px;
  border-radius: 6px;
  font: 14px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* ---------- VR Listings ---------- */
.vr-listings { padding: 48px 0; }
.vr-listings__inner { max-width: 1280px; margin: 0 auto; padding: 0 20px; }
.vr-listings__head { margin-bottom: 28px; }
.vr-listings__sub {
  margin: 0 0 6px;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .65;
}
.vr-listings__title { margin: 0; font-size: clamp(1.5rem, 3vw, 2.2rem); line-height: 1.1; }

.vr-listings__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 24px;
}
.vr-listings__item { min-width: 0; }

/* Tabs */
.vr-listings__tablist {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  list-style: none;
  margin: 0 0 22px;
  padding: 0 0 10px;
  border-bottom: 1px solid rgba(0,0,0,.1);
}
.vr-listings__tab {
  text-decoration: none;
  font-size: 13px;
  letter-spacing: .08em;
  color: inherit;
  opacity: .55;
  padding-bottom: 8px;
}
.vr-listings__tab.is-active { opacity: 1; border-bottom: 2px solid currentColor; }
.vr-listings__panel { display: none; }
.vr-listings__panel.is-active { display: block; }

/* ---------- VR Testimonials ---------- */
.vr-testimonials { padding: 56px 0; }
.vr-testimonials__inner { max-width: 1160px; margin: 0 auto; padding: 0 20px; }
.vr-testimonials__head { margin-bottom: 32px; }
.vr-testimonials__eyebrow-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.vr-testimonials__rule { width: 36px; height: 1px; background: currentColor; opacity: .4; }
.vr-testimonials__eyebrow {
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .7;
}
.vr-testimonials__heading { margin: 0; font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.15; }

.vr-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}
.vr-testimonials__card {
  position: relative;
  margin: 0;
  padding: 28px 26px;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 8px;
  background: rgba(0,0,0,.015);
}
.vr-testimonials__mark {
  display: block;
  font-size: 40px;
  line-height: 1;
  opacity: .25;
  margin-bottom: 8px;
}
.vr-testimonials__quote { margin: 0 0 18px; font-size: 1.02rem; line-height: 1.55; }
.vr-testimonials__caption { display: flex; flex-direction: column; gap: 2px; }
.vr-testimonials__name { font-weight: 600; }
.vr-testimonials__meta { font-size: 13px; opacity: .65; }

.vr-testimonials--slider .vr-testimonials__grid {
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 1fr);
  grid-template-columns: none;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.vr-testimonials--slider .vr-testimonials__card { scroll-snap-align: start; }

/* =========================================================================
   Calls to action and case studies.
   Every color, face, size, space and radius comes from the site's published
   design tokens (/design-system). Fallbacks only cover a theme with no tokens.
   ========================================================================= */
.vr-cta,
.vr-case-promo,
.vr-case-promos {
  --vrb-text: var(--vr-color-text, #18181b);
  --vrb-muted: var(--vr-color-muted, #52525b);
  --vrb-surface: var(--vr-color-surface, #fff);
  --vrb-subtle: var(--vr-color-surface-subtle, #f7f7f5);
  --vrb-rule: var(--vr-color-rule, #e4e4e7);
  --vrb-accent: var(--vr-color-accent, #245b57);
  --vrb-on-accent: var(--vr-color-on-accent, #fff);
  --vrb-inverse: var(--vr-color-inverse, #18181b);
  --vrb-on-inverse: var(--vr-color-on-inverse, #fff);
  --vrb-muted-inverse: var(--vr-color-muted-on-inverse, #d4d4d8);
  --vrb-display: var(--vr-font-display, Georgia, serif);
  --vrb-body: var(--vr-font-body, system-ui, sans-serif);
  --vrb-radius: var(--vr-radius-control, 0);
  font-family: var(--vrb-body);
  font-size: var(--vr-type-body, 1rem);
  font-weight: var(--vr-weight-body, 400);
  line-height: var(--vr-line-body, 1.6);
  color: var(--vrb-text);
}
.vr-cta *, .vr-case-promo *, .vr-case-promos * { box-sizing: border-box; }
.vr-cta__icon, .vr-case-promo__icon {
  width: 1em; height: 1em; flex: none;
  fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}

/* ---------- Call to action ---------- */
.vr-cta { display: grid; gap: var(--vr-space-6, 1.5rem); margin-block: var(--vr-space-12, 3rem); }
.vr-cta__body { display: flex; flex-direction: column; align-items: flex-start; gap: var(--vr-space-3, .75rem); min-width: 0; }
.vr-cta__eyebrow { margin: 0; font-size: var(--vr-type-small, .875rem); font-weight: var(--vr-weight-strong, 600); letter-spacing: .08em; text-transform: uppercase; color: var(--vrb-accent); }
.vr-cta .vr-cta__heading {
  margin: 0; color: inherit;
  font-family: var(--vrb-display); font-weight: var(--vr-weight-display, 400);
  font-size: var(--vr-type-h3, 1.75rem); line-height: var(--vr-line-heading, 1.15);
  letter-spacing: -.015em; text-wrap: balance;
}
.vr-cta .vr-cta__text { margin: 0; max-width: 60ch; color: var(--vrb-muted); }
.vr-cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--vr-space-3, .75rem) var(--vr-space-6, 1.5rem); margin-top: var(--vr-space-2, .5rem); }

/* Button primitive matches the design system's .vr-button. */
.vr-cta .vr-cta__button:is(:link, :visited),
.vr-case-promo .vr-case-promo__button:is(:link, :visited) {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--vr-space-2, .5rem);
  min-height: 44px; padding: var(--vr-space-3, .75rem) var(--vr-space-6, 1.5rem);
  border: 1px solid var(--vrb-text); border-radius: var(--vrb-radius);
  background: var(--vrb-text); color: var(--vrb-surface);
  font: inherit; font-weight: var(--vr-weight-strong, 600); font-size: var(--vr-type-small, .875rem);
  text-decoration: none; transition: background-color .2s, border-color .2s, color .2s;
}
.vr-cta .vr-cta__button:hover,
.vr-cta .vr-cta__button:focus-visible,
.vr-case-promo .vr-case-promo__button:hover,
.vr-case-promo .vr-case-promo__button:focus-visible {
  background: var(--vrb-accent); border-color: var(--vrb-accent); color: var(--vrb-on-accent);
}
.vr-cta .vr-cta__button--secondary:is(:link, :visited) { background: transparent; color: var(--vrb-text); }
.vr-cta .vr-cta__button--secondary:hover, .vr-cta .vr-cta__button--secondary:focus-visible { background: var(--vrb-text); border-color: var(--vrb-text); color: var(--vrb-surface); }
.vr-cta .vr-cta__phone:is(:link, :visited) { display: inline-flex; align-items: center; gap: var(--vr-space-2, .5rem); color: inherit; font-weight: var(--vr-weight-strong, 600); text-decoration: none; }
.vr-cta .vr-cta__phone span { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.vr-cta a:focus-visible, .vr-case-promo a:focus-visible, a.vr-case-promo:focus-visible { outline: 2px solid var(--vrb-accent); outline-offset: 4px; }
/* Agent: the site's portrait treatment (4:5, the --vr radius, face-weighted crop like the split portrait), name, then one line per credential. */
.vr-cta__agent { display: flex; align-items: flex-start; gap: var(--vr-space-4, 1rem); margin-top: var(--vr-space-3, .75rem); }
.vr-cta__agent-photo { flex: none; width: 5rem; height: auto; aspect-ratio: 4 / 5; border-radius: var(--vrb-radius); object-fit: cover; object-position: 50% 22%; }
.vr-cta .vr-cta__agent-text { margin: 0; display: flex; flex-direction: column; gap: var(--vr-space-1, .25rem); min-width: 0; line-height: 1.35; }
.vr-cta .vr-cta__agent-name { margin: 0; font-weight: var(--vr-weight-strong, 600); }
.vr-cta .vr-cta__agent-name a:is(:link, :visited) { color: inherit; }
.vr-cta .vr-cta__agent-meta { display: flex; flex-direction: column; gap: var(--vr-space-2, .5rem); margin: 0; padding: 0; list-style: none; font-size: var(--vr-type-small, .875rem); color: var(--vrb-muted); font-variant-numeric: lining-nums tabular-nums; }
.vr-cta .vr-cta__agent-meta li { margin: 0; padding: 0; }
.vr-cta .vr-cta__note { margin: var(--vr-space-2, .5rem) 0 0; font-size: var(--vr-type-small, .875rem); color: var(--vrb-muted); }

/* band: inverse panel */
.vr-cta--band { background: var(--vrb-inverse); color: var(--vrb-on-inverse); padding: clamp(var(--vr-space-8, 2rem), 5vw, var(--vr-space-12, 3rem)); }
.vr-cta--band .vr-cta__text, .vr-cta--band .vr-cta__agent-meta, .vr-cta--band .vr-cta__note { color: var(--vrb-muted-inverse); }
.vr-cta--band .vr-cta__eyebrow { color: var(--vrb-muted-inverse); }
.vr-cta--band .vr-cta__button:is(:link, :visited) { background: var(--vrb-on-inverse); border-color: var(--vrb-on-inverse); color: var(--vrb-inverse); }
.vr-cta--band .vr-cta__button--secondary:is(:link, :visited) { background: transparent; color: var(--vrb-on-inverse); }
.vr-cta--band .vr-cta__button:hover,
.vr-cta--band .vr-cta__button:focus-visible { background: var(--vrb-accent); border-color: var(--vrb-accent); color: var(--vrb-on-accent); }
.vr-cta--band a:focus-visible { outline-color: var(--vrb-on-inverse); }
.vr-cta--band.vr-cta--has-media { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); align-items: center; padding: 0; gap: 0; }
.vr-cta--band.vr-cta--has-media .vr-cta__body { padding: clamp(var(--vr-space-8, 2rem), 5vw, var(--vr-space-12, 3rem)); }
.vr-cta--band .vr-cta__media, .vr-cta--split .vr-cta__media { position: relative; height: 100%; min-height: 14rem; }
.vr-cta--band .vr-cta__media img { position: absolute; inset: 0; }
.vr-cta__media img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* card: bordered */
.vr-cta--card { border: 1px solid var(--vrb-rule); background: var(--vrb-surface); padding: var(--vr-space-6, 1.5rem); }
.vr-cta--card .vr-cta__heading { font-size: var(--vr-type-h4, 1.375rem); }
.vr-cta--card .vr-cta__button:is(:link, :visited) { width: 100%; }
/* Card (sidebars): photo above the text, so each credential gets the full card width and stays on one line. */
.vr-cta--card .vr-cta__agent { flex-direction: column; gap: var(--vr-space-4, 1rem); align-self: stretch; margin-top: var(--vr-space-3, .75rem); padding-top: var(--vr-space-6, 1.5rem); border-top: 1px solid var(--vrb-rule); }
.vr-cta--card .vr-cta__agent-photo { width: 6rem; }

/* split: photo beside copy */
.vr-cta--split { grid-template-columns: minmax(0, 1fr); align-items: center; gap: clamp(var(--vr-space-6, 1.5rem), 4vw, var(--vr-space-12, 3rem)); }
.vr-cta--split.vr-cta--has-media { grid-template-columns: minmax(12rem, .8fr) minmax(0, 1.2fr); }
.vr-cta--split .vr-cta__heading { font-size: var(--vr-type-h2, 2.25rem); }
.vr-cta--portrait .vr-cta__media { aspect-ratio: 4 / 5; height: auto; min-height: 0; }
.vr-cta--portrait .vr-cta__media img { object-position: 50% 22%; }
.vr-cta__agent-text--below { order: -1; }
.vr-cta--split .vr-cta__agent-meta { flex-flow: row wrap; gap: var(--vr-space-1, .25rem) var(--vr-space-3, .75rem); }
/* Every item carries its hairline; the list's clipped left edge hides the one that starts each wrapped row. */
.vr-cta--split .vr-cta__agent-meta { overflow: hidden; margin-left: calc(-1 * var(--vr-space-3, .75rem)); }
.vr-cta--split .vr-cta__agent-meta li { margin-left: -1px; padding-left: var(--vr-space-3, .75rem); border-left: 1px solid var(--vrb-rule); }

/* inline: ruled strip */
.vr-cta--inline { display: block; border-block: 1px solid var(--vrb-rule); border-top-color: var(--vrb-text); padding-block: var(--vr-space-4, 1rem); }
.vr-cta--inline .vr-cta__body { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--vr-space-1, .25rem) var(--vr-space-6, 1.5rem); }
.vr-cta--inline .vr-cta__body > * { grid-column: 1; }
.vr-cta--inline .vr-cta__heading { font-size: var(--vr-type-h5, 1.25rem); }
.vr-cta--inline .vr-cta__actions { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
@media (max-width: 39.99rem) {
  .vr-cta--inline .vr-cta__body { grid-template-columns: minmax(0, 1fr); }
  .vr-cta--inline .vr-cta__actions { grid-column: 1; grid-row: auto; margin-top: var(--vr-space-2, .5rem); }
}

@media (max-width: 47.99rem) {
  .vr-cta--band.vr-cta--has-media, .vr-cta--split.vr-cta--has-media { grid-template-columns: minmax(0, 1fr); }
  .vr-cta--band .vr-cta__media { min-height: 0; aspect-ratio: 16 / 9; }
  .vr-cta--portrait .vr-cta__media { max-width: 18rem; }
}

/* ---------- Case study promos ---------- */
.vr-case-promos { margin-block: var(--vr-space-12, 3rem); }
.vr-case-promos .vr-case-promos__heading { margin: 0 0 var(--vr-space-6, 1.5rem); font-family: var(--vrb-display); font-weight: var(--vr-weight-display, 400); font-size: var(--vr-type-h3, 1.75rem); line-height: var(--vr-line-heading, 1.15); }
.vr-case-promos__list { display: grid; gap: var(--vr-space-6, 1.5rem); }
.vr-case-promos--grid .vr-case-promos__list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }

a.vr-case-promo--card:is(:link, :visited) { color: var(--vrb-text); text-decoration: none; }
a.vr-case-promo--card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); border: 1px solid var(--vrb-rule); background: var(--vrb-surface); color: var(--vrb-text); text-decoration: none; overflow: hidden; transition: border-color .2s; }
.vr-case-promos--grid a.vr-case-promo--card { grid-template-columns: minmax(0, 1fr); }
a.vr-case-promo--card:hover { border-color: var(--vrb-text); }
.vr-case-promo--card .vr-case-promo__media { display: block; overflow: hidden; }
.vr-case-promo .vr-case-promo__img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
a.vr-case-promo--card:hover .vr-case-promo__img { transform: scale(1.03); }
.vr-case-promo--card .vr-case-promo__body { display: flex; flex-direction: column; gap: var(--vr-space-2, .5rem); padding: var(--vr-space-6, 1.5rem); }
.vr-case-promo__stat { color: var(--vrb-accent); font-weight: var(--vr-weight-strong, 600); font-size: var(--vr-type-small, .875rem); font-variant-numeric: lining-nums; }
.vr-case-promo--card .vr-case-promo__title { font-family: var(--vrb-display); font-weight: var(--vr-weight-display, 400); font-size: var(--vr-type-h4, 1.375rem); line-height: var(--vr-line-heading, 1.15); text-wrap: balance; font-variant-numeric: lining-nums; }
.vr-case-promo__summary { color: var(--vrb-muted); font-size: var(--vr-type-small, .875rem); }
.vr-case-promo__more { display: inline-flex; align-items: center; gap: var(--vr-space-2, .5rem); margin-top: auto; padding-top: var(--vr-space-2, .5rem); color: var(--vrb-text); font-weight: var(--vr-weight-strong, 600); font-size: var(--vr-type-small, .875rem); text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }

.vr-case-promo--strip { display: flex; flex-wrap: wrap; align-items: center; gap: var(--vr-space-3, .75rem) var(--vr-space-6, 1.5rem); margin-block: var(--vr-space-8, 2rem); padding-block: var(--vr-space-4, 1rem); border-block: 1px solid var(--vrb-rule); border-top-color: var(--vrb-text); }
.vr-case-promo__avatar { width: 3.25rem; height: 3.25rem; border-radius: 50%; object-fit: cover; object-position: 50% 20%; flex: none; }
.vr-case-promo .vr-case-promo__line { flex: 1 1 18rem; margin: 0; }
.vr-case-promo--strip .vr-case-promo__stat { font-size: inherit; }

.vr-case-promo--feature { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); background: var(--vrb-inverse); color: var(--vrb-on-inverse); margin-block: var(--vr-space-12, 3rem); }
.vr-case-promo--feature .vr-case-promo__media { position: relative; min-height: 22rem; }
.vr-case-promo--feature .vr-case-promo__img { position: absolute; inset: 0; aspect-ratio: auto; }
.vr-case-promo--feature .vr-case-promo__body { display: flex; flex-direction: column; align-items: flex-start; gap: var(--vr-space-4, 1rem); padding: clamp(var(--vr-space-8, 2rem), 5vw, var(--vr-space-12, 3rem)); }
.vr-case-promo .vr-case-promo__eyebrow { margin: 0; font-size: var(--vr-type-small, .875rem); font-weight: var(--vr-weight-strong, 600); letter-spacing: .08em; text-transform: uppercase; color: var(--vrb-muted-inverse); }
.vr-case-promo--feature .vr-case-promo__title { margin: 0; color: inherit; font-family: var(--vrb-display); font-weight: var(--vr-weight-display, 400); font-size: var(--vr-type-h2, 2.25rem); line-height: var(--vr-line-heading, 1.15); text-wrap: balance; font-variant-numeric: lining-nums; }
.vr-case-promo--feature .vr-case-promo__summary { margin: 0; color: var(--vrb-muted-inverse); font-size: var(--vr-type-body, 1rem); }
.vr-case-promo__ledger { display: grid; grid-template-columns: 1fr 1fr; width: 100%; margin: var(--vr-space-2, .5rem) 0; border-top: 1px solid color-mix(in srgb, var(--vrb-on-inverse) 30%, transparent); }
.vr-case-promo__ledger div { padding: var(--vr-space-3, .75rem) 0; border-bottom: 1px solid color-mix(in srgb, var(--vrb-on-inverse) 18%, transparent); }
.vr-case-promo__ledger div:nth-child(odd) { padding-right: var(--vr-space-3, .75rem); }
.vr-case-promo__ledger div:nth-child(even) { padding-left: var(--vr-space-3, .75rem); border-left: 1px solid color-mix(in srgb, var(--vrb-on-inverse) 18%, transparent); }
.vr-case-promo__ledger dt { margin: 0; font-size: var(--vr-type-small, .875rem); color: var(--vrb-muted-inverse); }
.vr-case-promo__ledger dd { margin: 0; font-family: var(--vrb-display); font-size: var(--vr-type-h4, 1.375rem); font-variant-numeric: lining-nums tabular-nums; }
.vr-case-promo--feature .vr-case-promo__button:is(:link, :visited) { background: var(--vrb-on-inverse); border-color: var(--vrb-on-inverse); color: var(--vrb-inverse); }
.vr-case-promo--feature .vr-case-promo__button:hover, .vr-case-promo--feature .vr-case-promo__button:focus-visible { background: var(--vrb-accent); border-color: var(--vrb-accent); color: var(--vrb-on-accent); }
.vr-case-promo--feature a:focus-visible { outline-color: var(--vrb-on-inverse); }

@media (max-width: 47.99rem) {
  a.vr-case-promo--card, .vr-case-promo--feature { grid-template-columns: minmax(0, 1fr); }
  .vr-case-promo--feature .vr-case-promo__media { min-height: 0; }
  .vr-case-promo--feature .vr-case-promo__img { position: static; aspect-ratio: 16 / 10; }
}

/* ---------- Core block styles (registered in inc/patterns.php) ---------- */
.wp-block-table.is-style-vr-ledger table { width: 100%; border-collapse: collapse; border: 0; font-variant-numeric: tabular-nums; }
.wp-block-table.is-style-vr-ledger :is(td, th) { padding: var(--vr-space-3, .75rem) var(--vr-space-4, 1rem) var(--vr-space-3, .75rem) 0; border: 0; border-bottom: 1px solid var(--vr-color-rule, #e4e4e7); text-align: left; vertical-align: top; }
.wp-block-table.is-style-vr-ledger tr:first-child :is(td, th) { border-top: 1px solid var(--vr-color-text, #18181b); }
.wp-block-table.is-style-vr-ledger td:first-child { width: 44%; color: var(--vr-color-muted, #52525b); }
.wp-block-table.is-style-vr-ledger figcaption { order: -1; margin: 0 0 var(--vr-space-3, .75rem); caption-side: top; text-align: left; color: var(--vr-color-text, #18181b); font-family: var(--vr-font-display, Georgia, serif); font-size: var(--vr-type-h5, 1.25rem); }
.wp-block-table.is-style-vr-ledger { display: flex; flex-direction: column; }

.wp-block-list.is-style-vr-takeaways { list-style: none; padding-inline-start: 0; }
.wp-block-list.is-style-vr-takeaways > li { margin: 0; padding: var(--vr-space-4, 1rem) 0; border-top: 1px solid var(--vr-color-rule, #e4e4e7); }
.wp-block-list.is-style-vr-takeaways > li:last-child { border-bottom: 1px solid var(--vr-color-rule, #e4e4e7); }
.wp-block-list.is-style-vr-takeaways > li > strong:first-child { display: block; margin-bottom: var(--vr-space-1, .25rem); font-family: var(--vr-font-display, Georgia, serif); font-weight: var(--vr-weight-display, 400); font-size: var(--vr-type-h4, 1.375rem); line-height: var(--vr-line-heading, 1.15); color: var(--vr-color-text, #18181b); }

.wp-block-group.is-style-vr-reviews { margin-block: var(--vr-space-12, 3rem); padding: clamp(var(--vr-space-6, 1.5rem), 5vw, var(--vr-space-12, 3rem)); background: var(--vr-color-inverse, #18181b); color: var(--vr-color-on-inverse, #fff); }
.wp-block-group.is-style-vr-reviews > :first-child { margin-top: 0; }
.wp-block-group.is-style-vr-reviews :is(h2, h3, h4) { color: inherit; margin-top: 0; }
.wp-block-group.is-style-vr-reviews a { color: inherit; }
.wp-block-group.is-style-vr-reviews .wp-block-quote,
.wp-block-group.is-style-vr-reviews .wp-block-quote p { color: inherit; }
.wp-block-quote.is-style-vr-review { margin: var(--vr-space-6, 1.5rem) 0 0; padding: var(--vr-space-6, 1.5rem) 0 0; border: 0; border-top: 1px solid color-mix(in srgb, currentColor 25%, transparent); font-family: var(--vr-font-display, Georgia, serif); font-size: var(--vr-type-h5, 1.25rem); font-style: normal; line-height: 1.5; }
.wp-block-quote.is-style-vr-review p { font: inherit; margin: 0 0 var(--vr-space-3, .75rem); }
.wp-block-quote.is-style-vr-review cite { display: block; font-family: var(--vr-font-body, system-ui, sans-serif); font-size: var(--vr-type-small, .875rem); font-style: normal; color: var(--vr-color-muted, #52525b); }
.wp-block-group.is-style-vr-reviews .wp-block-quote.is-style-vr-review cite { color: var(--vr-color-muted-on-inverse, #d4d4d8); }

.wp-block-media-text.is-style-vr-callout { margin-block: var(--vr-space-8, 2rem); padding: var(--vr-space-6, 1.5rem); border: 1px solid var(--vr-color-rule, #e4e4e7); background: var(--vr-color-surface, #fff); gap: var(--vr-space-6, 1.5rem); }
.wp-block-media-text.is-style-vr-callout .wp-block-media-text__content { padding: 0; font-size: var(--vr-type-small, .875rem); }
.wp-block-media-text.is-style-vr-callout .wp-block-media-text__media img { aspect-ratio: 3 / 4; object-fit: cover; }

.wp-block-columns.is-style-vr-photo-pair { gap: var(--vr-space-3, .75rem); margin-block: var(--vr-space-8, 2rem); }
.wp-block-columns.is-style-vr-photo-pair .wp-block-image { margin: 0; }
.wp-block-columns.is-style-vr-photo-pair .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

@media (prefers-reduced-motion: reduce) {
  .vr-cta *, .vr-case-promo, .vr-case-promo * { transition: none !important; }
}

/* Imported tenant link CSS can force every content link's color with !important
   (e.g. `main a:not(.g-btn)` set to black with !important). Button and inverse-surface
   foregrounds are component-owned so they stay readable on their own backgrounds. */
.vr-cta .vr-cta__button:is(:link, :visited),
.vr-case-promo .vr-case-promo__button:is(:link, :visited) { color: var(--vrb-surface) !important; }
.vr-cta .vr-cta__button:is(:hover, :focus-visible),
.vr-case-promo .vr-case-promo__button:is(:hover, :focus-visible) { color: var(--vrb-on-accent) !important; }
.vr-cta .vr-cta__button--secondary:is(:link, :visited) { color: var(--vrb-text) !important; }
.vr-cta .vr-cta__button--secondary:is(:hover, :focus-visible) { color: var(--vrb-surface) !important; }
.vr-cta--band .vr-cta__button:is(:link, :visited),
.vr-case-promo--feature .vr-case-promo__button:is(:link, :visited) { color: var(--vrb-inverse) !important; }
.vr-cta--band .vr-cta__button--secondary:is(:link, :visited),
.vr-cta--band a:not(.vr-cta__button):is(:link, :visited) { color: var(--vrb-on-inverse) !important; }
.vr-cta--band .vr-cta__button:is(:hover, :focus-visible),
.vr-case-promo--feature .vr-case-promo__button:is(:hover, :focus-visible) { color: var(--vrb-on-accent) !important; }
.wp-block-group.is-style-vr-reviews a:is(:link, :visited) { color: inherit !important; }

/* ---------- Poster-first video (inc/video.php) ---------- */
.vr-video { position: relative; aspect-ratio: 16 / 9; max-width: 100%; margin-block: 0; overflow: hidden; background: var(--vr-color-inverse, #18181b); }
.vr-video__play { position: absolute; inset: 0; display: block; color: var(--vr-color-on-inverse, #fff); }
.vr-video .vr-video__poster { width: 100%; max-width: none; height: 100%; margin: 0; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.16, 1, .3, 1); }
.vr-video__icon { position: absolute; left: 50%; top: 50%; width: 4.5rem; height: 4.5rem; transform: translate(-50%, -50%); transition: transform .25s cubic-bezier(.16, 1, .3, 1); }
.vr-video__icon circle { fill: color-mix(in srgb, var(--vr-color-inverse, #18181b) 60%, transparent); }
.vr-video__icon path { fill: var(--vr-color-on-inverse, #fff); }
.vr-video__play:hover .vr-video__icon, .vr-video__play:focus-visible .vr-video__icon { transform: translate(-50%, -50%) scale(1.08); }
.vr-video__play:hover .vr-video__poster { transform: scale(1.02); }
.vr-video__play:focus-visible { outline: 2px solid var(--vr-color-accent, #245b57); outline-offset: -4px; }
.vr-video__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.vr-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (prefers-reduced-motion: reduce) { .vr-video__poster, .vr-video__icon { transition: none; } }
